EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
通过定时器的方式实现流水灯延时,并通过外部中断改变流水灯样式。两种样式分别为:(1)4个led为一组交替亮灭,延时1s;(2)从左往右逐个点亮(同一时刻只有一个灯亮),延时1s。 #include <reg51.h>: A2 I' I6 r, A) z
#define uchar unsigned char
- a6 {8 Z& h# {; `uchar count;0 A# y1 U0 O' t Z5 Y" p
sbit k=P3^2;% A7 G: f# f$ [
void main(void)9 L5 \# e- u! N( s' ^
{EA=1;! D3 o7 t$ ]" F+ A. l
IT0=1;
; J% k9 M z9 P* \9 U2 |EX0=1;
0 S d6 p& J" Q! L2 b4 H( TTMOD=0x01;
- k' T, U! w! @9 ^TH0=0X3C;
2 r( ?9 A; o7 p) n9 R8 z. n oTL0=0XB0;
& `$ ~& E8 \, Q S$ L; f9 MET0=1;
5 q7 K$ t8 W- a8 c/ ]; `, HTR0=1; ' D1 j& X; f5 I& n+ m
P1=0x0F;
" T! W6 G6 q C5 t! Zwhile(1)0 V5 I1 u& e3 J6 G' t
;}
% v& m4 c+ I! f0 @3 @void INTO()interrupt 0& ~" n2 q m& z0 e O
{* r4 H: F7 S% |' B7 S6 f) i
uchar i;
( _" n* ` ?3 {) Owhile(1)
- n+ {# A# G( y{
7 X+ n7 D0 l3 VP1=0x0f;
, `6 ?& P4 Z C% t. ]0 q1 Nfor(i=0;i<8;i++)- V- `1 G2 J/ K9 x& \- y
{P1>>=1;}
& c6 X) F4 A. s- t. H7 n4 G+ D1 ?}3 V, h5 O, P' S3 U- R
} ~" r0 K- w/ a* p f: c* [: O
void timer0() interrupt 1
% s f1 b) M! u( D8 K0 p{" B! K9 a w$ O+ _2 s
TH0=0X3C;
$ |6 b: l$ f( s+ U7 ?$ I TL0=0XB0;- K8 {- i% ^ u
count++;
* Q$ c5 G) O. m6 ~2 ^ if(k==0)/ i$ w5 e! }" ?7 k: e
{
0 v! L4 j: J1 }% ^ if(count==20)
/ M& i, {; k+ a" Q9 A" j; o5 M" X {
6 }9 K3 M$ B, G2 T, m+ o6 l count=0;" y; ~$ V, k1 {$ ^
P1=~P1;}
2 J& x! J7 f4 {9 q }
4 o4 J4 |- Y: @+ W W else
. `- w( ?$ _" ?' k3 ~0 j {if(count==20)! Z( s2 @- i) U4 E- @: R% a
{# n/ a. S8 J* ^ f
count=0;. N2 S" A) {" U5 z F' m7 ]
P1>>1;}}}
/ S& t- v5 `8 V/ Z这个程序烧录进去失败了,哪里有问题呀? / J, p% A' q" |# t
|