找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

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

  [复制链接]

12

主题

418

帖子

3623

积分

EDA365版主(50)

Rank: 5

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

EDA365欢迎您!

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

x
本帖最后由 ArthurGXH 于 2012-2-20 21:39 编辑 . v# i8 D4 g& E1 w
* |0 m9 E2 j+ i+ {. B/ t" k
首先我要声明的是,此帖不是做广告,不是宣传某种单片机。我仅用这个公司的单片机做过一个产品和一个工具。他们的资料非常好,比一般的书籍好。

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
6 z2 u9 t0 V( S# C! n) a5 v/ {谢谢  已经找到答案了  定时器0中断写错了  应该是interrupt 1

8 [, @9 F" r7 P( L9 _0 J" q' l不用客气,找到问题就好。

31

主题

113

帖子

-1万

积分

未知游客(0)

积分
-11465
33#
发表于 2012-7-27 09:55 | 只看该作者
ArthurGXH 发表于 2012-7-26 21:44
1 d; J- u5 a1 N/ e% K以后请附上原理图,否则别人也只能猜测( N5 b% }& k! L# ?0 R
调试方法:    $ _( K0 c3 I- Y/ A2 q" o  M$ f  c
    1.  猜测display函数有问题,dula、weila ...
8 C$ ?/ q0 q# X. h6 A* \
谢谢  已经找到答案了  定时器0中断写错了  应该是interrupt 1

12

主题

418

帖子

3623

积分

EDA365版主(50)

Rank: 5

积分
3623
32#
 楼主| 发表于 2012-7-26 21:44 | 只看该作者
本帖最后由 ArthurGXH 于 2012-7-26 21:51 编辑
$ T8 T8 ]* E$ J1 o5 l, Y3 t" _
zhuxiaoxing 发表于 2012-7-26 09:57 2 w# I+ U. h2 b+ X
谢谢楼主.顺便请教个程序.我想用定时器中段实现两个数码管显示00--59;结果数码管一直显示00;不知道问题出在 ...

) a8 @. t7 Z$ N0 [
4 d+ a6 N1 @: A/ C+ S" b以后请附上原理图,否则别人也只能猜测
' o# ~- r% r* Y6 Z8 B1 E' L调试方法:   
5 z- B, B& G! w7 K1 _9 b) D( X: j    1.  猜测display函数有问题,dula、weila是公共端,P0是a~g段对吗?  P0=table[shi]; P0=table[ge]; 应该是要显示的数据,显示了并没有延时,而是再一次又一次的赋值,再延时,这样查表显示的内容根本看不到,而是看到后面的定值(当然有锁存器的例外)。1 Z& G% O' Y% |+ l
    2. 验证一下中断是否正常工作。若没有仿真器,可以在程序的每秒处亮灭LED 或通过串口发送一些数据到电脑。5 Y6 m; \/ S: I6 o  ?" k4 h) M8 @; M0 r* V
    3. 充分发挥想像力,一点一点的缩小范围。
1 c  r" C3 `5 G: c" r; ?7 f

12

主题

418

帖子

3623

积分

EDA365版主(50)

Rank: 5

积分
3623
31#
 楼主| 发表于 2012-7-26 20:59 | 只看该作者
本帖最后由 ArthurGXH 于 2012-7-26 21:50 编辑 ; a$ H6 f( c% W: I
tony_wuy 发表于 2012-7-26 15:54 8 t: z+ k0 J9 `
说实在的,如果工作中用STC的,还是要慎重,谁用过谁知道,学习之用还行!
$ }, h& W) {5 k! G- o
3 v$ [+ s/ E# r! S/ o
很多人对我说最好别用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
+ }+ p6 r, {- j手册当然是好资料,不是说我是不是老手的问题,单片机老手编程照样需要对应的手册,毕竟单片机编程是基于硬 ...

4 z1 L6 G" q' g( T& y! ]呵呵  有道理  有空来帮我看看下面那个问题啊

31

主题

113

帖子

-1万

积分

未知游客(0)

积分
-11465
28#
发表于 2012-7-26 09:57 | 只看该作者
谢谢楼主.顺便请教个程序.我想用定时器中段实现两个数码管显示00--59;结果数码管一直显示00;不知道问题出在哪,
' }6 U5 J9 e, O5 Y. Q3 [/ c* M5 o2 i# ?程序如下:
: j/ t4 l. V2 c; a#include<reg52.h>+ q% w- Q9 T) b$ t
#define uchar unsigned char         //定义uchar uint7 S: i; Z; i# M9 L7 W) D. I, V
#define uint unsigned int
0 H0 B5 I4 g6 p% Gsbit dula=P2^2;                         //定义数码管段显示' ~; d1 O8 q2 R; l; P( I
sbit weila=P2^3;                //定义数码管位显示( n. J2 k% L, W* A7 k
uchar code table[]={                //定义数码管显示从0--91 i- e  ], k7 D) G
0x3f,0x06,0x5b,
1 f, f( k- {- Q! @; C1 v) c0x4f,0x66,0x6d,& q8 j* J1 w5 u; L" y, V! Y; f
0x7d,0x07,0x7f,0x6f};
! n2 Q6 t# _9 }+ Q* r* G. E! `. S2 ~* A( F  E/ S( q4 q
void display(uchar,uchar);        //声明数码管显示函数
+ ?! @, B' D9 nvoid delay(uint);                //申明延时函数+ @9 s6 D' _3 {7 v9 f" c3 ]
uchar num,num1,shi,ge;
+ n, P1 J8 d# ~& r) Vvoid main()                        //主函数
( o  ?4 [$ ]* t3 z) ~6 @2 M5 Q{' V  Y6 p: Q0 g9 q  s1 t6 O+ Q
  TMOD=0X01;                        //定时方式选择
  q1 R9 {' {3 c3 u, j- ~, J" K  TH0=(65536-45872)/256;        //写定时初值) ?  K2 ]8 ^. D: l+ B; T
  TL0=(65536-45872)%256;) \+ s8 K& A& |  Q
  EA=1;        //开启总中断
# I0 U* ]) r8 L* ^( w  ET0=1;        //开定时器0中断
6 a3 M/ x4 o. a  |6 G4 W  TR0=1;        //启动定时器0% ]% u  e; l* s0 @
  while(1)% _' o2 ^! m+ D# P8 I
  {
: {* d2 Q0 g% a    display(shi,ge);                //数码管显示函数
0 t! n6 |: W& Z! `7 D4 P1 C* N% c, C6 J  }
' v  r$ e6 c$ u3 @3 _}! Y/ D/ g8 L2 E. I

/ Q, X, i5 N! @+ B' dvoid display(uchar shi,uchar ge)        //显示函数
9 g$ d/ d' Q8 ]0 O2 a+ r0 P{
* E: z# d3 T. k/ l: t   dula=1;                        //打开段选/ i' z3 ^( d, v8 j/ z
   P0=table[shi];& k2 L0 i, h0 _+ g9 w. t
   dula=0;0 k8 c, C, E3 e8 L# r0 \
   P0=0xff;                        //重置P0 防止数码管乱码
+ E- S4 o- ~4 |. Z4 B6 S) \   weila=1;
' y- v. A) D6 Y, W. d+ \: g   P0=0xfe;
- P: u* B/ y$ [* A/ s! f% n: `* S   weila=0;6 a( R+ }! Z; R* u
   delay(5);  T) e% P  l7 j$ Q# P
  . O& z) F3 D4 ?& p0 O* k8 ^+ S% k0 L
   dula=1;6 F3 W/ F) Z9 K! o( Y; R
   P0=table[ge];
$ v/ J, t1 |) A% d- K$ O   dula=0;
* h9 p- |: C' p8 b: g% o$ R8 {4 I   P0=0xff;4 l/ s$ Y. e) @
   weila=1;1 p# @1 t) t1 U# V, Y8 r
   P0=0xfd;
2 S" ?! N# z7 W8 R) U" d: m: B   weila=0;
* U  K& ~) `& W" C   delay(5);
- Y0 I# }( _0 Y1 O) y7 W+ B}6 p# L) f( x& p# Z) z
  \- [* @( a4 p: M/ a; p0 k
void delay(uint xms)    //延时函数 延时xms ms
" C% l1 @& i5 d: b- R{  @  j/ A! c( S+ J8 l
   uint i,j;
8 X- C2 Y) q$ S  l2 `7 S. s   for(i=xms;i>0;i--)
4 X. x1 _/ m  \/ S$ w' c    for(j=110;j>0;j--);
1 J1 T! n$ d7 @5 V5 W% p2 I }3 ^4 t3 r1 t0 ]# w
5 z5 |# F+ c: E# h
void T0_Time() interrupt 3   //定时器0中断 定时方式1
" O! @6 j( i4 P4 Q- W{' ^" I5 b6 M! q  H: X
TH0=(65536-45872)/256;
3 H; W* \5 H9 n0 N% ^$ w: z0 J TL0=(65536-45872)%256;
- `. B- E' X4 H+ \  c num1++;
' B; l( \$ @8 n8 c if(num1==20)      //检测到1s了没有
! D( V9 X# \  a. [' z   {* ~8 }2 J9 W" Y3 x5 [  s. `- b
    num1=0;' Q/ H% Z8 y3 v( _5 W! A
    num++;. y% X& a* V" ^3 P6 A( Y: ]
    if(num==60)   //实现两个数码管从00--59* G0 G% {6 t" u4 L
    num=0;
$ R1 z2 r" W# f4 t4 x5 s+ d    shi=num/10;2 W, i7 p7 `6 @1 m, j1 b' @2 w7 b5 K
    ge=num%10;
8 x( r" @& J/ P+ M2 o- r) o+ \) U! `    }
6 ^4 q( k2 o& H! s  w}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

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

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

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

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

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