找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

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

  [复制链接]

12

主题

418

帖子

3623

积分

EDA365版主(50)

Rank: 5

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

EDA365欢迎您!

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

x
本帖最后由 ArthurGXH 于 2012-2-20 21:39 编辑
$ Q/ I  h8 L: K
0 l+ @. W7 T) }$ W首先我要声明的是,此帖不是做广告,不是宣传某种单片机。我仅用这个公司的单片机做过一个产品和一个工具。他们的资料非常好,比一般的书籍好。

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
. N1 A) D' b) y' i谢谢  已经找到答案了  定时器0中断写错了  应该是interrupt 1
% c1 a# d0 z2 t+ ~1 {
不用客气,找到问题就好。

31

主题

113

帖子

-1万

积分

未知游客(0)

积分
-11465
33#
发表于 2012-7-27 09:55 | 只看该作者
ArthurGXH 发表于 2012-7-26 21:44   ~8 Y1 f* }  V, C
以后请附上原理图,否则别人也只能猜测
$ a9 J8 Z) Z! i7 Q+ U调试方法:    ! h+ H: R7 x+ H8 f
    1.  猜测display函数有问题,dula、weila ...

- J$ G2 `2 u' E$ I. N/ N/ `! M谢谢  已经找到答案了  定时器0中断写错了  应该是interrupt 1

12

主题

418

帖子

3623

积分

EDA365版主(50)

Rank: 5

积分
3623
32#
 楼主| 发表于 2012-7-26 21:44 | 只看该作者
本帖最后由 ArthurGXH 于 2012-7-26 21:51 编辑 0 d1 Q( b  `" v+ r4 _1 ~' B
zhuxiaoxing 发表于 2012-7-26 09:57 ) J% n  r1 h1 D1 ]6 |& T
谢谢楼主.顺便请教个程序.我想用定时器中段实现两个数码管显示00--59;结果数码管一直显示00;不知道问题出在 ...
) m' X# }& F0 c, F: w7 v/ a2 h) m

; i3 O% S2 K- J% a4 w, @! ]以后请附上原理图,否则别人也只能猜测7 G/ T! R8 p1 E5 l! V; ?
调试方法:    , J8 Z# O2 O* N) t: x3 {, O
    1.  猜测display函数有问题,dula、weila是公共端,P0是a~g段对吗?  P0=table[shi]; P0=table[ge]; 应该是要显示的数据,显示了并没有延时,而是再一次又一次的赋值,再延时,这样查表显示的内容根本看不到,而是看到后面的定值(当然有锁存器的例外)。
! [8 A0 [/ Z6 h3 a1 f0 Z# c    2. 验证一下中断是否正常工作。若没有仿真器,可以在程序的每秒处亮灭LED 或通过串口发送一些数据到电脑。2 @; I7 U1 s# \" T- R  E, h, w
    3. 充分发挥想像力,一点一点的缩小范围。
5 F3 ~/ P# J& L; b6 v

12

主题

418

帖子

3623

积分

EDA365版主(50)

Rank: 5

积分
3623
31#
 楼主| 发表于 2012-7-26 20:59 | 只看该作者
本帖最后由 ArthurGXH 于 2012-7-26 21:50 编辑 5 U" e- h, @" p: j) L: W
tony_wuy 发表于 2012-7-26 15:54 , V4 R9 t1 r; e6 u( a( J0 C
说实在的,如果工作中用STC的,还是要慎重,谁用过谁知道,学习之用还行!

" X8 o0 r$ \5 G$ F7 P
( r/ K2 ^' Z/ _$ t8 X' {# Q很多人对我说最好别用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
" ~$ D9 F7 J! _9 }手册当然是好资料,不是说我是不是老手的问题,单片机老手编程照样需要对应的手册,毕竟单片机编程是基于硬 ...
' h, B/ h. ]! P
呵呵  有道理  有空来帮我看看下面那个问题啊

31

主题

113

帖子

-1万

积分

未知游客(0)

积分
-11465
28#
发表于 2012-7-26 09:57 | 只看该作者
谢谢楼主.顺便请教个程序.我想用定时器中段实现两个数码管显示00--59;结果数码管一直显示00;不知道问题出在哪,
; H/ j2 C3 ?$ T+ G. h3 s* p程序如下:
2 l# I" [2 e' ~$ z: k7 G# w#include<reg52.h>1 x' v9 n: t& K; O# F# w5 x" y
#define uchar unsigned char         //定义uchar uint
- p$ _* t3 \% c4 A#define uint unsigned int+ u- A4 \. J8 Z6 F0 {# [6 w# @
sbit dula=P2^2;                         //定义数码管段显示
" x5 P: c) C0 m; H2 `4 o) w3 Hsbit weila=P2^3;                //定义数码管位显示* W7 d8 h3 y9 W/ e! g6 B
uchar code table[]={                //定义数码管显示从0--92 l' X3 N4 j- X5 w* y
0x3f,0x06,0x5b,
+ Q1 S6 f1 m5 C0x4f,0x66,0x6d,3 ~2 a6 q! x: C8 D- H! j
0x7d,0x07,0x7f,0x6f};
& E5 i# @" U6 ^' O' K, K) e+ K
8 `  Y* _5 D# e- p/ R+ svoid display(uchar,uchar);        //声明数码管显示函数) E5 \; m. c) u! w3 i# E
void delay(uint);                //申明延时函数3 N0 o  P/ ]' d) C0 F8 m% [
uchar num,num1,shi,ge;/ ^( X9 \% F" Q8 V: l
void main()                        //主函数8 [- d# U3 L& L$ o/ Y
{$ T) ?' o- I4 B
  TMOD=0X01;                        //定时方式选择
3 J1 z: D) a, K. B. k; P  TH0=(65536-45872)/256;        //写定时初值! x* v2 c0 W# _/ F5 c! \
  TL0=(65536-45872)%256;
  t  b9 |1 P8 f$ n# C$ j6 U/ e  EA=1;        //开启总中断& @* r* t) ^, n" J; K/ N! w$ x
  ET0=1;        //开定时器0中断
- }; E( ]& L" W* u! I  TR0=1;        //启动定时器0) T# f* ]! Z& g% T0 }( V, |
  while(1)
3 U* S8 r2 v% n8 f0 l7 R  {- j" }2 `. p9 {% L' Y
    display(shi,ge);                //数码管显示函数, ]( A+ n6 A5 f$ F
  }
: v  M" ~+ Z) N! }5 v- M% c  `) N}
/ x/ i: X( `' k  M% h. k: I. V$ B
& K5 ?( j* b+ m1 I( h  Uvoid display(uchar shi,uchar ge)        //显示函数* P1 U* I+ k3 T7 r( ?
{
) s- [' {& U7 w5 Z+ b* B4 X8 N3 |   dula=1;                        //打开段选6 [( x$ e0 _$ ^4 h
   P0=table[shi];
8 a) n# }- u$ L, D8 j# k1 l   dula=0;
. \+ @, l+ A% F/ h! U   P0=0xff;                        //重置P0 防止数码管乱码
0 c: l# U- o" _2 U3 h* j0 ~   weila=1;% p: S. ]$ ?3 e9 j3 ?
   P0=0xfe;
7 _9 ^" h. @8 T. T   weila=0;/ F& U: b7 Q( h. J- Z, a" u
   delay(5);
6 n$ ^. B+ k3 v$ w# n; R  5 m! j/ c6 h* w% g; ?! @
   dula=1;" \/ B2 I4 _3 \6 q' J; k! Z5 }8 l
   P0=table[ge];) A7 X, ]" R6 W* r
   dula=0;) }5 B. O- Z0 I+ q/ o* U* j) h7 G
   P0=0xff;
  t7 z% m/ |" z6 B# X( _   weila=1;
/ B, h( }- X1 b  w! o   P0=0xfd;, O6 W9 m/ X8 E! Z
   weila=0;
& J7 n5 F# A8 X   delay(5);
: A1 M: v1 c! z6 }2 O}
$ [" W6 [4 @3 ]2 R2 Q  {
" T( D  ]5 X- m  B0 lvoid delay(uint xms)    //延时函数 延时xms ms8 h. b+ ?* \: I& Z( k
{* T9 M* G, s, i8 f( `
   uint i,j;
3 |$ s* `/ F# s' a, T; ]   for(i=xms;i>0;i--)% W5 [1 [  I5 T9 [% o* N
    for(j=110;j>0;j--);, D  ?6 h  B" C/ g. E' e5 e: \
}( ?! ]; k3 M/ \5 ?3 {9 |2 i5 ]+ b( g

' L$ k' J6 A- j7 B( f, Dvoid T0_Time() interrupt 3   //定时器0中断 定时方式1
0 b% u+ ^: e1 X1 x2 h' ]2 y{: _$ V% a$ k) W+ y1 q
TH0=(65536-45872)/256;) S5 v4 G* S/ U4 E  A
TL0=(65536-45872)%256;
' W, F/ \6 z( T num1++;' J5 s5 d& l! `* Z+ W. I( p* g
if(num1==20)      //检测到1s了没有
+ e1 |' b- |; U4 t4 ~) n   {
* W" _) t- s0 ^! X; G- A( T    num1=0;
+ \( @" x2 S5 B( S- \- `4 u; I    num++;
8 q9 W- Y' \4 G# M! X. D. E) h) Q    if(num==60)   //实现两个数码管从00--599 c4 x- q* X' W& Z! W
    num=0;- x& d0 J4 v. o" k1 r$ l
    shi=num/10;6 I$ V( }7 W  R5 G( }
    ge=num%10;5 `" z0 a" n; v$ }: ^) f
    }3 k# x) p$ h' _
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

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

GMT+8, 2024-11-27 15:20 , Processed in 0.077825 second(s), 37 queries , Gzip On.

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

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

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