EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
通过定时器的方式实现流水灯延时,并通过外部中断改变流水灯样式。两种样式分别为:(1)4个led为一组交替亮灭,延时1s;(2)从左往右逐个点亮(同一时刻只有一个灯亮),延时1s。 #include <reg51.h>
9 s- p* v5 b7 t: w1 H#define uchar unsigned char
* y/ S5 c5 F* D$ C& Xuchar count;% X2 ^0 L/ t$ l" P0 k8 y3 U# y
sbit k=P3^2;& d1 @! N( A }) \0 E$ ^! {
void main(void)$ c$ c! @- D- X# w2 r1 |
{EA=1;9 |! M V, Q0 l. D
IT0=1;" x' c+ H: r9 q, q: _3 z; c) x7 F' L$ S
EX0=1;
- U. D9 D6 `; t& _' Q/ m1 ATMOD=0x01;- R- E$ l* v' B4 n( z
TH0=0X3C;
' p7 o5 ]5 w7 ?% ~! G- i% K9 hTL0=0XB0;) U2 L" s& S/ [/ n
ET0=1;
, x. E0 z- b9 QTR0=1; 1 y; f, w2 D4 U) S- `
P1=0x0F;
, F, |2 K. A a0 D+ l" U, m i ~while(1)" U5 T9 k* u8 l1 r
;}
2 h0 X. w' _2 @- Yvoid INTO()interrupt 08 X4 n4 z1 c9 ]) v" X5 [
{
8 P" u' U. i$ ~5 o/ k0 |uchar i;& w; p$ F# b# B8 E/ r3 G" E/ r. ~
while(1)2 ]) r- V c2 j4 O) x1 r
{
& E. w5 m- o% {9 a7 @P1=0x0f;
1 E$ ^* W- A* T- \. z+ Yfor(i=0;i<8;i++)
1 U! ]+ h7 n& [) }1 W( j/ v: b. x{P1>>=1;}3 }- }$ q" T4 z1 o
}
* p! n9 h$ q u; J8 j* b}
. g+ H+ _: W1 d) Svoid timer0() interrupt 1- u, v, m/ c. C$ ^5 \4 m D' {
{5 E0 j& Y4 J* s. U
TH0=0X3C;
2 h% z8 M5 G0 Q* V s TL0=0XB0;% M1 T! [# H: c& a, s
count++;
0 `: H1 z+ t. j if(k==0)
( G. ^+ O+ H# \ N, I4 p9 f {
5 G$ [* ~! k! B# j" R+ G if(count==20)& ` A7 Y/ S( S) i; t; l' f
{ X- O: A, G) O) I- r
count=0;. h( v2 _ }3 p. T
P1=~P1;} Z: b/ m' e9 Z+ b% @/ P1 i c
}* F3 ~9 n3 Q3 U3 E
else
5 T0 [) C; I3 x {if(count==20)% n( Z P2 I8 a( F" l9 J1 ?1 R$ L
{' F$ g j/ [# o V- o5 P" g
count=0;9 N$ b5 e2 J% x a3 B) Y
P1>>1;}}}3 I" V, |3 {$ W
这个程序烧录进去失败了,哪里有问题呀? ( |$ P# B% c6 q% P" R$ X
|