sbit red_nb=P2^0;
......
void main()
{
TMOD=
TH0
TL0
ET0
TR0
while(1) //根據樓主所給,有4種狀態
{
state1;
state2;
state3;
state4;
}
}
void timer0() interrupt 1 //定時器0
{
TH0=0x3c;
TL0=0xb0;
counter++;
}
void state1() //控制南北紅燈亮,東西綠燈亮,30s
{
unsigned char temp = 30;
red_nb=1;
.....
green_dx=1;
while(1)
{
if( counter>19){counter=0;temp--} //每次counter=20,即1s,temp自減
if(temp) break; //當temp為0時,即30秒,退出狀態1,進入狀態2
}
}
沒經過測試,完全是5分誘惑不大。。