#include <reg52.h>
sbit led1=P1^0;
sbit led2=P1^1;
sbit led3=P1^2;
int flag=1;
unsigned int timer,timer0=0;
void time0_init()
{
TMOD = 0x01;
TL0 = 0x00;
TH0 = 0x4c; //50ms
ET0=1;
TR0=1;
EA=1;
}
void main()
{
time0_init();
while(1)
{
timer=300;//15s绿灯
led1=0;
while(flag);
timer=100;//5s黄灯
flag=1;
led1=!led1;
led2=0;
while(flag);
timer=300;//15s红灯
flag=1;
led2=!led2;
led3=0;
while(flag);
flag=1;
led3=!led3;
}
}
void time0() interrupt 1
{
TL0 = 0x00;
TH0 = 0x4c;
timer0++;
if(timer0>=timer)
{
flag=0;
timer0=0;
}
else
{
flag=1;
}
}
51红绿灯闪烁
最新推荐文章于 2023-10-16 22:48:04 发布