#include<reg51.h>
unsigned char t0,t1;
sbit green_A=P2^0;
sbit yellow_A=P2^1;
sbit red_A=P2^2;
sbit green_B=P2^3;
sbit yellow_B=P2^4;
sbit red_B=P2^5;
void delay_1s()
{
for(t0=0;t0<20;t0++)
{
TH0=0x3c;
TL0=0xb0;
TR0=1;
while(!TF0);
TF0=0;
}
}
void delay_s(int t)
{
for(t1=0;t1<t;t1++)
{
delay_1s();
}
}
void main()
{
int state=0;
int i;
TMOD=0x01;
while(1)
{
if(state>6)
{
state=0;
}
state++;
switch(state)
{
case 1:
{
green_A=0;
yellow_A=1;
red_A=1;
green_B=1;
yellow_B=1;
red_B=0;
delay_s(5);
break;
}
case 2:
{
for(i=0;i<5;i++)
{
green_A=!green_A;
yellow_A=1;
red_A=1;
green_B=1;
yellow_B=1;
red_B=0;
delay_s(1);
}
break;
}
case 3:
{
green_A=1;
yellow_A=0;
red_A=1;
green_B=1;
yellow_B=1;
red_B=0;
delay_s(5);
break;
}
case 4:
{
green_A=1;
yellow_A=1;
red_A=0;
green_B=0;
yellow_B=1;
red_B=1;
delay_s(5);
break;
}
case 5:
{
for(i=0;i<5;i++)
{
green_A=1;
yellow_A=1;
red_A=0;
green_B=!green_B;
yellow_B=1;
red_B=1;
delay_s(1);
}
break;
}
case 6:
{
green_A=1;
yellow_A=1;
red_A=0;
green_B=1;
yellow_B=0;
red_B=1;
delay_s(5);
break;
}
}
}
}
|