|
这是我这个月做的交通灯设计,
- #include<reg51.h>
- #define uint8 unsigned char
- #define uint16 unsigend short int
- sbit k1=P2^0;
- sbit k2=P2^1;
- sbit RED_N=P0^0;
- sbit GREEN_N=P0^1;
- sbit YELLOW_N=P0^2;
- sbit RED_E=P0^3;
- sbit GREEN_E=P0^4;
- sbit YELLOW_E=P0^5;
- void delay(uint8 x)
- {
- uint8 i;
- while(x--)
- {
- for(i=120;i>0;i--);
- }
- }
- uint8 num=1;
- void main()
- {
- while(1)
- {
- while(k1==0)
- {
- switch(num)
- {
- case 1:RED_N=1;GREEN_N=0;YELLOW_N=1;
- GREEN_E=1;RED_E=0;YELLOW_E=1;
- delay(2000);delay(2000); delay(2000);
- num=2;break;
- case 2:GREEN_N=1;RED_N=1;
- YELLOW_N=0;
- delay(500);
- YELLOW_N=1;
- delay(500);
- YELLOW_N=0;
- delay(500);
- YELLOW_N=1;
- delay(500);
- YELLOW_N=0;
- delay(500);
- YELLOW_N=1;
- delay(500);
- RED_E=0;GREEN_E=1;YELLOW_E=1;
- num=3;break;
- case 3:
- RED_N=0;GREEN_N=1;YELLOW_N=1;
- GREEN_E=0;RED_E=1;YELLOW_E=1;
- delay(2000);delay(2000);delay(2000);
- num=4;break;
- case 4:RED_N=0;GREEN_N=1;YELLOW_N=1;
- GREEN_E=1;RED_E=1;
- YELLOW_E=0;
- delay(500);
- YELLOW_E=1;
- delay(500);
- YELLOW_E=0;
- delay(500);
- YELLOW_E=1;
- delay(500);
- YELLOW_E=0;
- delay(500);
- YELLOW_E=1;
- delay(500);
- num=1;
- break;
-
- }
- }
- while(k2==0)
- {
- RED_N=0;GREEN_N=1;YELLOW_N=1;
- RED_E=0;GREEN_E=1;YELLOW_E=1;
- }
- }
- }
复制代码
|
|