单片机交通灯所有资料下载:
LED模拟交通灯.rar
(45.06 KB, 下载次数: 24)
源程序:
- #include<reg51.h>
- #define uchar unsigned char
- #define uint unsigned int
- sbit RED_A=P0^0;
- sbit YELLOW_A=P0^1;
- sbit GREEN_A=P0^2;//东西向灯
- sbit RED_B=P0^3;
- sbit YELLOW_B=P0^4;
- sbit GREEN_B=P0^5;//南北向灯
- uchar Flash_Count=0,a=1; //闪烁次数,操作类型变量
- void delay(uint x)
- { uchar i;
- while(x--)
- {
- for(i=0;i<120;i++);
- }
- }
- //延时
- void Traffic_Light()
- {
- switch(a)
- {
- case 1://东西向绿灯与南北向红灯亮
- RED_A=1;YELLOW_A=1;GREEN_A=0;
- RED_B=0;YELLOW_B=1;GREEN_B=1;
- delay(2000);
- a=2;
- break;
- case 2://东西向黄灯闪烁,绿灯关闭
- delay(300);
- YELLOW_A=~YELLOW_A;GREEN_A=1;
- if(++Flash_Count!=10)//闪烁5 次
- return;
- Flash_Count=0;
- a=3;
- break;
- case 3://东西向红灯亮,南北向绿灯亮
- RED_A=0;YELLOW_A=1;GREEN_A=1;
- RED_B=1;YELLOW_B=1;GREEN_B=0;
- delay(2000);
- a=4;
- break;
- case 4://南北向黄灯闪烁5次,绿灯关闭
- delay(300);
- YELLOW_B=~YELLOW_B;GREEN_B=1;
- if(++Flash_Count!=10)//闪烁5 次
- return;
- Flash_Count=0;
- a=1;
- }
- }
- void main()
- {
- while(1)
- {
- Traffic_Light();
- }
- }
复制代码
|