交通灯系统,除了开始按键,其他按钮都无效,希望各位大神能帮助解决一下
[复制链接]
#include"reg51.h"
typedef unsigned int u16;
typedef unsigned char u8;
u16 s;
u8 a;
u8 b;
sbit LED1=P2^0;
sbit LED2=P2^1;
sbit LED3=P2^2;
sbit LED4=P2^3;
sbit LED5=P2^4;
sbit LED6=P2^5;
sbit KEY1=P3^1;
sbit KEY2=P3^2;
sbit KEY3=P3^3;
void delay(u16 i)
{
while(i--);
}
void Timer0Init()
{
TMOD|=0X01;
TH0=0XFC;
TL0=0X18;
ET0=1;
TR0=1;
}
void deng()
{
Timer0Init();
while(1)
{
if(TF0==1)
{
TF0=0;
TH0=0XFC;
TL0=0X18;
s++;
}
if((s>=0)&&(s<10000)) //10s
{
LED1=~LED1;
LED4=~LED4;
}
if((s>=10000)&&(s<14000)) //4s
{
LED1=1;
LED2=~LED2;
LED5=~LED5;
LED3=1;
LED4=1;
LED6=1;
}
if((s>=14000)&&(s<17000)) //3s
{
LED1=1;
LED3=1;
LED4=1;
LED6=1;
while((a>=0)&&(a<6))
{
LED2=!LED2;
LED5=!LED5;
delay(50000);
a++;
}
}
if((s>=17000)&&(s<20000))
{
LED1=1;
LED2=1;
LED4=1;
LED5=1;
while((a<12)&&(a>=6))
{
LED3=!LED3;
LED6=!LED6;
delay(50000);
a++;
}
}
if(s==20000)
{
LED5=1;
LED6=1;
LED2=1;
LED3=1;
s=0;
a=0;
}
}
}
void main()
{
if(KEY2==1)
{
delay(100);
if(KEY2==1)
{
delay(100);
if(KEY1==0)
{
delay(100);
if(KEY1==0)
{
deng();
}
while(!KEY1);
}
}
while(!KEY2);
}
if(KEY3==0)
{
delay(100);
if(KEY3==0)
{
TF0=0;
TH0=0XFC;
TL0=0X18;
s=0;
deng();
}
while(!KEY3);
}
}
|