EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
通过定时器的方式实现流水灯延时,并通过外部中断改变流水灯样式。两种样式分别为:(1)4个led为一组交替亮灭,延时1s;(2)从左往右逐个点亮(同一时刻只有一个灯亮),延时1s。 #include <reg51.h>
8 ^3 p9 Y0 C* ~# P! w#define uchar unsigned char; y: K$ w: D* N2 n: | k/ j {
uchar count;
3 M, r; W) L5 j$ d' G( gsbit k=P3^2;8 \1 `3 Z$ L2 D, A& p
void main(void), h* {* S5 l$ Q4 r2 d
{EA=1;) `7 S; k* B/ T* A, G2 ^
IT0=1;
6 t! W3 H8 D+ W& m5 xEX0=1;$ g) d- C1 L" s; R5 `6 Z
TMOD=0x01;
# {2 n# q# L; dTH0=0X3C;
" [! y1 P, k: o3 ~TL0=0XB0;
- j5 s- R# J. _+ D( c5 i7 R, B, ~ET0=1;
. ?& w0 t: f+ f7 LTR0=1;
1 r7 a" i2 U7 A9 c1 a7 r& z: TP1=0x0F;+ r0 Y# M- w, E* U6 _+ r2 I4 |2 I! I
while(1)
. I: ^' R T" e7 \3 h! `;}
. D2 |, M( |! P i" L) yvoid INTO()interrupt 0) G+ }- ?9 p8 d' ]; E- {; u+ B. N7 Y
{
' h, H6 A- n T+ auchar i;
4 N B9 o; w8 h3 R5 ?; ]8 c8 ~! pwhile(1)
' w. j8 R% F! s: ]: o/ Q{
% v' \3 g0 y9 g3 S( ]% M9 XP1=0x0f;
! J* J r& o8 ufor(i=0;i<8;i++)3 j7 ]. A' k/ }
{P1>>=1;}$ B* Y$ a, x% i% y, ~
}) I4 ~7 e9 l$ O& c5 E
} H1 `4 @0 ]8 ~: ^' [( d* k
void timer0() interrupt 1
- E8 \" C" v" f{) P" v8 e3 g3 b. M3 \! {4 [- G
TH0=0X3C;
. e+ f) c) b! @: E4 o TL0=0XB0;
8 B d/ B7 U4 Z- U count++;' ~: n) ^9 M5 a) X/ l: ]) O: o
if(k==0)
3 F; c# }! g7 p, l/ N {
0 Y' V! B e1 A: i if(count==20)
. V6 F, v8 V+ q- Z {
6 z0 }' B& e0 Q& } count=0;
/ y: w/ c; f; i! F P1=~P1;}) M. B7 m* E! m* z" s
}; ?, }! _3 e7 ?$ S8 V: i
else7 A# R3 [2 _' W" F
{if(count==20)
! K* {, T7 y: O) y2 e V {
5 T" \5 F+ o2 W9 [. L count=0;
' e5 h3 O9 c. m+ O1 V+ B$ i* Y P1>>1;}}}
& I, j }! ?9 L9 Q9 v# U这个程序烧录进去失败了,哪里有问题呀?
* B* Z5 `3 N: I |