EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
通过定时器的方式实现流水灯延时,并通过外部中断改变流水灯样式。两种样式分别为:(1)4个led为一组交替亮灭,延时1s;(2)从左往右逐个点亮(同一时刻只有一个灯亮),延时1s。 #include <reg51.h>
3 {9 z+ h+ I% Y( q, M3 ]#define uchar unsigned char
8 L5 f3 u3 Z& L( f9 xuchar count;+ K' t9 q$ J* G& ~4 I$ n% ?" H
sbit k=P3^2;' Y" Y! d, ^! j' H
void main(void)
0 Q3 f- C* B: M: c) b- i{EA=1;
! d& d# M# f& _/ U' pIT0=1;: A, H9 }0 f# |
EX0=1;
- L# J4 b1 ?! c" t$ _TMOD=0x01;
& m9 s4 t3 r, yTH0=0X3C;: D8 m- {& _2 w! E6 E7 k
TL0=0XB0;8 j4 J0 x0 R. ?- v" [
ET0=1;) ~* E' f k' @! R) r% j
TR0=1; ' Z7 W1 s9 g: H5 c2 m
P1=0x0F;5 U0 l2 A- P, @0 L3 H0 q
while(1) i5 Z0 o' h" e5 T
;}$ g" S4 H) [, S' s( V+ H. T; L
void INTO()interrupt 0/ B5 c- J7 W2 o3 g; M; y% g2 i0 r6 X
{
0 Q$ R9 C4 R1 b- l' Y( Auchar i;
. C7 W/ A5 J7 }: Awhile(1)
( [: W- j: b5 A$ i) k{9 o- J9 g M. I5 r8 l1 x0 o
P1=0x0f;$ b8 U( `- N! u' k+ r
for(i=0;i<8;i++)
$ ~5 U$ P) v' G1 Z b1 D$ i{P1>>=1;}
6 ]! w' N" ~- j6 _}
8 O* e8 @5 ^* E0 y" z! O}
/ v0 ]% F/ A/ |: w' v/ \4 Ivoid timer0() interrupt 1
X# y& y7 M6 S) j! _7 F7 T- r{; `3 A6 ~2 P* [) H0 L; @
TH0=0X3C;
4 D; c$ Y1 f% Q0 l TL0=0XB0;
& e. S) H+ k2 d) d& M4 l count++;
% p3 S$ t. b% f+ o) ?5 m( b if(k==0)) p" U* e, ]) |5 [5 d% J
{7 `' Q- T3 y' G4 ?
if(count==20)9 y v8 D5 O9 u" L1 \0 r
{! k) o: ]" X4 y
count=0;! |% i% l- o% g+ H, g, f% n2 h
P1=~P1;}
) Y2 t, V. D3 T- v }: v, P# j2 i( E- d1 L6 ]' b
else* z9 U/ [ j, O" e
{if(count==20)
# D% w1 V8 G; g; ?9 |$ e; a( U {9 M. \& P4 o/ F6 D# j! D
count=0;! g+ u6 X [; ?( Z" F# `
P1>>1;}}}
+ D1 r$ p0 a- y7 [7 p这个程序烧录进去失败了,哪里有问题呀? 2 o5 ^( R$ D2 n# g5 }, F/ l7 N
|