找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 4046|回复: 40
打印 上一主题 下一主题

针对初学51单片机的资料,想少走弯路就看看 , 有问有答啊

  [复制链接]

12

主题

418

帖子

3623

积分

EDA365版主(50)

Rank: 5

积分
3623
跳转到指定楼层
1#
发表于 2012-2-16 20:19 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

EDA365欢迎您!

您需要 登录 才可以下载或查看,没有帐号?注册

x
本帖最后由 ArthurGXH 于 2012-2-20 21:39 编辑
2 y# ]0 r' L0 `9 R# @0 u! A  a" H5 Q9 ?' Y6 f3 i! _
首先我要声明的是,此帖不是做广告,不是宣传某种单片机。我仅用这个公司的单片机做过一个产品和一个工具。他们的资料非常好,比一般的书籍好。

STC89C51RC-RD 系列用户手册.pdf

4.65 MB, 下载次数: 26143, 下载积分: 威望 -5

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏2 支持!支持!1 反对!反对!

56

主题

377

帖子

1749

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1749
推荐
发表于 2015-9-7 08:51 | 只看该作者
这个资料下载来看看

13

主题

197

帖子

2192

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
2192
40#
发表于 2015-2-7 14:02 | 只看该作者
不错

32

主题

554

帖子

927

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
927
39#
发表于 2012-11-27 10:26 | 只看该作者
路过,看看

0

主题

6

帖子

-8965

积分

未知游客(0)

积分
-8965
38#
发表于 2012-9-29 11:30 | 只看该作者
多谢分享

48

主题

667

帖子

6031

积分

五级会员(50)

Rank: 5

积分
6031
37#
发表于 2012-9-28 14:22 | 只看该作者
多谢这位兄弟,我也在学习阶段。

1

主题

253

帖子

498

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
498
36#
发表于 2012-9-26 09:13 | 只看该作者
谢谢分享,现在正在学习单片机,希望有帮助。

9

主题

112

帖子

553

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
553
35#
发表于 2012-9-21 23:53 | 只看该作者
没玩过单片机,只画过原理图。。

12

主题

418

帖子

3623

积分

EDA365版主(50)

Rank: 5

积分
3623
34#
 楼主| 发表于 2012-7-27 22:29 | 只看该作者
zhuxiaoxing 发表于 2012-7-27 09:55 $ R" M' ^0 H8 u6 P! {& |* t
谢谢  已经找到答案了  定时器0中断写错了  应该是interrupt 1
/ A6 s3 e3 T" ~8 f9 J1 x) ?
不用客气,找到问题就好。

31

主题

113

帖子

-1万

积分

未知游客(0)

积分
-11465
33#
发表于 2012-7-27 09:55 | 只看该作者
ArthurGXH 发表于 2012-7-26 21:44 + z8 N3 i* S# B' m$ u5 b
以后请附上原理图,否则别人也只能猜测
" F: J, R, x6 F6 t' Q4 z调试方法:    9 |! x/ ]' X# A, z0 u8 o
    1.  猜测display函数有问题,dula、weila ...
8 R3 y3 A( r/ q" C: V. c. o% S0 K% p! W
谢谢  已经找到答案了  定时器0中断写错了  应该是interrupt 1

12

主题

418

帖子

3623

积分

EDA365版主(50)

Rank: 5

积分
3623
32#
 楼主| 发表于 2012-7-26 21:44 | 只看该作者
本帖最后由 ArthurGXH 于 2012-7-26 21:51 编辑 ( O; H. `7 k) [
zhuxiaoxing 发表于 2012-7-26 09:57 9 ^6 h) E% M6 ?
谢谢楼主.顺便请教个程序.我想用定时器中段实现两个数码管显示00--59;结果数码管一直显示00;不知道问题出在 ...

+ ~& @$ g. \0 y$ b9 y" B- j
! {: u1 }: G& Q9 w3 J- ~  Q  V以后请附上原理图,否则别人也只能猜测5 C0 E! Q3 \6 @% p" K1 |( l0 j. Y
调试方法:   
5 k" k) \! Y6 V7 D  c: ~+ \    1.  猜测display函数有问题,dula、weila是公共端,P0是a~g段对吗?  P0=table[shi]; P0=table[ge]; 应该是要显示的数据,显示了并没有延时,而是再一次又一次的赋值,再延时,这样查表显示的内容根本看不到,而是看到后面的定值(当然有锁存器的例外)。* H! m0 S) J0 R3 D" i
    2. 验证一下中断是否正常工作。若没有仿真器,可以在程序的每秒处亮灭LED 或通过串口发送一些数据到电脑。; a5 B4 i% a5 v2 X( U7 W% F  P
    3. 充分发挥想像力,一点一点的缩小范围。* i* q( [0 G& _$ u% u+ |

12

主题

418

帖子

3623

积分

EDA365版主(50)

Rank: 5

积分
3623
31#
 楼主| 发表于 2012-7-26 20:59 | 只看该作者
本帖最后由 ArthurGXH 于 2012-7-26 21:50 编辑
& \, X: O, |8 R$ f5 l6 s1 P
tony_wuy 发表于 2012-7-26 15:54
4 _( e; l# D3 Q8 n2 M说实在的,如果工作中用STC的,还是要慎重,谁用过谁知道,学习之用还行!

6 v+ O' {, A& J5 q# J8 P; f
+ {) v" a: q/ K0 t9 y4 E$ f很多人对我说最好别用STC的芯片,包括PIC的技术支持、实习的研究生等,但是我做了一个产品,什么问题也没有。想当年,用台湾民用级的芯片也一样做出稳定的产品,何况是STC的工业级芯片。所以只要有人对我说他用STC芯片出了什么问题,我都会说是你的设计有问题。 不过现在我很少用51,改用功能更强的PIC、ARM。

2

主题

26

帖子

101

积分

二级会员(20)

Rank: 2Rank: 2

积分
101
30#
发表于 2012-7-26 15:54 | 只看该作者
说实在的,如果工作中用STC的,还是要慎重,谁用过谁知道,学习之用还行!

31

主题

113

帖子

-1万

积分

未知游客(0)

积分
-11465
29#
发表于 2012-7-26 09:59 | 只看该作者
黑驴蹄子 发表于 2012-7-26 08:24 : f+ A; U# ^0 m& ?# f) a
手册当然是好资料,不是说我是不是老手的问题,单片机老手编程照样需要对应的手册,毕竟单片机编程是基于硬 ...
, }" X6 U* p$ D- E2 s. a1 y. r
呵呵  有道理  有空来帮我看看下面那个问题啊

31

主题

113

帖子

-1万

积分

未知游客(0)

积分
-11465
28#
发表于 2012-7-26 09:57 | 只看该作者
谢谢楼主.顺便请教个程序.我想用定时器中段实现两个数码管显示00--59;结果数码管一直显示00;不知道问题出在哪,
6 K! m" {- s' I  ?6 q( B9 @3 m1 O程序如下:2 W$ G: M& W4 I' j
#include<reg52.h>( e; ]4 q/ w9 ?" J  r% V
#define uchar unsigned char         //定义uchar uint
2 t3 Q$ ~$ a( U7 B#define uint unsigned int& J2 n1 H. ~4 C% E, J
sbit dula=P2^2;                         //定义数码管段显示2 J- [1 z$ s: D1 n5 L+ l; L
sbit weila=P2^3;                //定义数码管位显示% a5 ?7 l' n. A4 E! u. R
uchar code table[]={                //定义数码管显示从0--9
6 }" A5 r, {% J/ \! c0 B" _5 |0x3f,0x06,0x5b,' Z& ]* Y8 j2 V5 _; S/ ^
0x4f,0x66,0x6d,
( D. O6 m; d& K7 B0x7d,0x07,0x7f,0x6f};
* u% C  g% Z, o; @
- N/ @( R/ o7 x( a- b( mvoid display(uchar,uchar);        //声明数码管显示函数& ?; V: a8 @4 s+ m0 u2 v- I' O
void delay(uint);                //申明延时函数
$ N0 G9 e( }' R7 H6 buchar num,num1,shi,ge;" y5 h8 d3 A' O
void main()                        //主函数8 U) \! ]. Z' g) n- ]2 u
{# p7 v0 e$ F. |  @: y
  TMOD=0X01;                        //定时方式选择3 c2 C( D& g( r- H& q
  TH0=(65536-45872)/256;        //写定时初值" }$ @$ e; Q  V9 d3 Q9 u
  TL0=(65536-45872)%256;8 O2 X% p! c, u& b) Q2 t
  EA=1;        //开启总中断
, Y# Z: K8 |( M+ G" `$ a  ET0=1;        //开定时器0中断
, Y7 y: J( ^0 W- @) H' K) L  TR0=1;        //启动定时器0  ~3 I: M, U, u7 Q: _* M" {
  while(1). A5 c5 x; B& A) H; c  C
  {, [0 [' s; t1 N+ T% b
    display(shi,ge);                //数码管显示函数
; e% G) g$ W" R: K  }
1 q0 |" g+ i, `}
; e; l$ o8 A0 @- k
. G) r$ R& D9 }/ w3 Pvoid display(uchar shi,uchar ge)        //显示函数
/ |! x' b9 H7 J7 T0 n9 ~{" d8 w4 \9 d  |* ~* r
   dula=1;                        //打开段选
2 D6 \" r) O/ d+ k7 |, d/ ~. R/ Y   P0=table[shi];7 F5 d$ g5 M7 b/ r
   dula=0;$ c) h( E: [& ^+ N
   P0=0xff;                        //重置P0 防止数码管乱码
5 @- t" h' R% ?   weila=1;0 \9 ~  W  `$ }/ F7 F
   P0=0xfe;. }" A3 V: B8 T5 z. s- a* P1 \
   weila=0;; s( t% a2 x0 E1 c+ }
   delay(5);
5 S( |2 T2 n7 y6 ?7 _1 H  7 e* ]# l4 }# |) a- @. W; E
   dula=1;! u' g" ?9 B& B0 a  l8 l2 V
   P0=table[ge];0 x( S( `1 L2 A3 }/ R
   dula=0;
0 I7 p! {. R; X2 k  X. O# z; P   P0=0xff;
. a9 D9 P% U& ]   weila=1;! R4 S% {: ]& ]0 P0 H0 i' ?- C
   P0=0xfd;+ u/ p  `; q+ ]$ Z% @: J" U
   weila=0;' w( B5 E" y7 x& s( h4 k& S
   delay(5);: ]9 R  F3 R+ e7 K4 o8 m# p
}  Y& ^3 Z( A% {- T" N
- i2 J) d3 G0 E
void delay(uint xms)    //延时函数 延时xms ms
. j8 {' H! R7 p4 m{
: L6 F5 Q# t: O6 j6 d  y6 t   uint i,j;  T! j; P+ a* U1 o$ z2 b
   for(i=xms;i>0;i--)( Y7 D8 D1 B6 X, ?  n
    for(j=110;j>0;j--);
- E# E) j7 e* i2 h9 [ }
9 V- ]( N4 [+ X3 X
8 d- {( t2 q) q0 @6 U( Y7 _void T0_Time() interrupt 3   //定时器0中断 定时方式1. p' R% n" x' ~4 M( E8 s) U
{5 N3 L$ n# h4 {( F: u9 B
TH0=(65536-45872)/256;
+ C4 U1 s' G! ^3 X, h TL0=(65536-45872)%256;) A" `9 X$ @- i  C7 v' C
num1++;+ p5 t3 D# w7 g0 Z( ]+ m
if(num1==20)      //检测到1s了没有 + K* |8 ~2 O5 C' I$ B; @
   {6 _4 P" ]4 P/ ^8 w  G1 |
    num1=0;
' K7 ?' c& [1 h# Z    num++;5 s# t( i7 M4 h% q) ^
    if(num==60)   //实现两个数码管从00--59
7 Y: O  G, W4 a    num=0;: K5 i& h" e5 T7 s
    shi=num/10;6 z; @4 L/ F+ \0 x3 s' R! O5 c
    ge=num%10;
- y( V% I1 \2 j5 V; c" Q7 n    }+ F% V. c! h2 s+ y0 n, S6 N9 O
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

巢课

技术风云榜

关于我们|手机版|EDA365 ( 粤ICP备18020198号 )

GMT+8, 2025-2-19 06:16 , Processed in 0.069404 second(s), 37 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表