基于51单片机的交通灯控制设计
#定义uchar无符号字符
#定义uint无符号整数
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,Operation _ Type = 1;//闪光次数,操作类型变量
100例单片机C语言编程实训——基于8051和PROTEUS仿真。
五
上海师范大学信息与机电工程学院倪继峰
//延迟
无效延迟(uint x)
{
乌恰尔一世;
而(x-)for(I = 0;我& lt120;i++);
}
//红绿灯切换
void交通信号灯()
{
开关(操作类型)
{
案例1: //东西绿灯,南北红灯亮。
RED _ A = 1;YELLOW _ A = 1;GREEN _ A = 0;
RED _ B = 0;YELLOW _ B = 1;GREEN _ B = 1;
戴莱姆斯(2000年);
operation _ Type = 2;
打破;
情况二://东西闪黄灯,绿灯灭。
戴莱姆斯(300);
黄色_ A = ~黄色_ A;GREEN _ A = 1;
if(++Flash_Count!=10)返回;//闪烁5次
flash _ Count = 0;
operation _ Type = 3;
打破;
案例三://东西向红灯,南北向绿灯。
RED _ A = 0;YELLOW _ A = 1;GREEN _ A = 1;
RED _ B = 1;YELLOW _ B = 1;GREEN _ B = 0;
戴莱姆斯(2000年);
operation _ Type = 4;
打破;
情况四://南北黄灯闪5次。
戴莱姆斯(300);
YELLOW _ B = ~ YELLOW _ BGREEN _ B = 1;
if(++Flash_Count!=10)返回;
flash _ Count = 0;
operation _ Type = 1;
}
}
//主程序
void main()
{
while(1)Traffic _ Light();
}