- #include <REGX51.H>
- void delay(unsigned int a) //@12.000MHz
- {
- unsigned char i, j;
- while(a)
- {
- i = 2;
- j = 239;
- do
- {
- while (--j);
-
- } while (--i);
- a--;
- }
- }
- void main()
- {
- int b;
- while(1)
- {
- P1_0=0; //南北綠燈
- P1_4=0; //東西紅燈
- while(1)
- {
- if(P1_6==1) //東西通行
- {
- delay(20); //按鍵消抖
- while(P1_6==1);
- delay(20);
- P1_0=1; //南北綠燈熄滅
- for(b=0;b<5;b++) //黃燈閃爍
- {
- P1_2=0;
- delay(500);
- P1_2=1;
- delay(500);
- }
- P1_4=1; //東西紅燈熄滅
- P1_1=0; //南北紅燈
- P1_5=0; //東西綠燈
- }
- if(P1_7==1) //南北同行
- {
- delay(20);
- while(P1_7==1);
- delay(20); //按鍵消抖
- P1_5=1; //東西綠燈熄滅
- for(b=0;b<5;b++) //黃燈閃爍
- {
- P1_3=0;
- delay(500);
- P1_3=1;
- delay(500);
- }
- P1_1=1; //南北紅燈熄滅
- P1_0=0; //南北綠燈
- P1_4=0; //東西紅燈
- }
- }
- }
- }
復制代碼
|