|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
刚学定时器,还不是太明白,定时器延时时间太长动态数码管就不显示了,老师不让用延时函数,我就不会做了。定时器怎么工作我倒是知道,但是具体怎么用我不懂,网上查了好多,也没搞清楚。
) g- }; i* O" F7 h6 E#include
S+ p9 _% |& F: f0 z+ O. ~! v#define uchar unsigned char
9 g+ B% l% l0 `: k& A# q. ~. U" p#define uint unsigned int9 g8 [# A& K( b. k
uint i;3 f6 G0 j) n' W
; B$ l- D- y. ychar ctime=0;
& X4 o6 `& h ^' V$ d8 u1 b/ Puchar code led[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
8 D' _$ r. M& }2 D7 j4 v/* void delayms(uint ms) //延时函数,延时一段时间/ J1 \8 ^& Z# ~* c
{( k2 S6 |+ X* B! N# R
uint j;; v! L. l! ]7 E" W1 s0 @! p' e
while(ms--)& f8 k8 X: e5 g9 |9 u
{for(j=0;j<120;j++);
' e: b( |8 @ I& O5 Z8 r, G }
# K% m1 h) H& q; k. X } */
) e3 g9 y; Q9 j; Zvoid main(); Y- ^' B( Z8 y- c% I
{! w; D& W# p$ ^& C) s4 B
TMOD=0X01; //设定定时器为工作方式1
* `' `' O$ J- { TH0=(65536-45872)/256; //装初值,11.0592 MHZ晶振定时50MS,计数值为45872) b5 x) \6 z4 N0 l& ?
TL0=(65536-45872)%256; % N% {6 R' X. e% s
EA=1; //打开总中断
: ]+ E$ ]3 Y0 H7 k( p ET0=1; //打开定时器中断
5 k3 k1 t5 H+ o0 J0 G# s: T/ v TR0=1; //启动定时器0' O" v- W) y) B, ]; X! d. [* x
P2=0xff;
# J9 x' b7 |. I& c& q( j& p while(1)
3 U6 Q d6 G! g: a+ s% | {
4 P4 g2 h) c: P" [ /* P0=led[ctime/10];5 d1 m6 R% U. I: ~) W
P2=led[ctime%10];
! w; z; e. x' ^; q/ w3 w */
, _0 M- g% [; V5 I) u, N P2=0xfb; //P2.0引脚输出低电平,DS0点亮
# u" o" t# G0 Y! ?0 w P0=led[ctime/10%10]; //数字1的段码
8 X0 A% {0 p7 m& _" f // delayms(10);% i2 W- L* V1 D! M
% }! z, _5 F" y( Y: e' z7 W P2=0xf7; //P2.1引脚输出低电平,DS1点亮
( U9 h3 k9 E; v P0=led[ctime%10]; //数字2的段码
/ i1 {6 `+ H+ t // delayms(10);
/ {6 t5 h; D+ L1 c- H" y }& N7 I( @5 J% C
}( @ C n# B8 |' B3 J
8 V- f4 V$ M6 `& _8 m; W
+ N% D/ \% m- ?; S# k
void time() interrupt 1 //定时器0中断服务程序
9 a! K1 T# w$ _, B4 b4 s; v g! r{
6 Q, m6 I' a1 \( M1 d1 K TH0=(65536-45872)/256; //重装初值- c$ T! @2 w2 \% A# ?. F
TL0=(65536-45872)%256;
4 |+ F$ |3 A) r6 |' b9 Z i++;
0 ] y6 C1 [, L" D6 G- | if(i==20) //如果i=20,说明1s时间到9 I* q" F j7 A" @; h, M
{
" r! n# q& a* b i=0;5 F, }" x1 i. A5 ^- h
( v( \. ^1 q* Q ctime++;+ ?0 H5 w3 n }3 q8 v h$ M
if(ctime>99)9 I4 ?' m/ n$ }" r
{
& w; {8 A9 c0 f& N b B1 t" E ctime=0;
7 U, u5 ]2 n ? y, G9 E, f }' K* f5 n) I4 X! n& |7 T: X; ^ s
} 5 v+ _# A( K2 b* p7 B" f
}
1 v+ s2 G. f# T+ y3 D |
|