交通信号灯调试
编写交通信号灯控制程序。要求如下:
1.能够正常的南北东西走向红绿灯控制
2.红绿灯切换的时候,黄灯红灯要闪烁
3.使用插入代码功能,代码格式一定要符合C语言标准格式
首先我们打开keil_proteus中调试交通信号灯的电路图




根据题目要求我们知道这9个灯的闪烁要满足
能够正常的南北东西走向红绿灯控制
红绿灯切换的时候,黄灯红灯要闪烁
所以现在我们打开Keil uVision4开始编撰代码,编好的代码如下



#include <reg52.h>
#include "delay.h"
sbit W_E_R=P0^0;
sbit W_E_Y=P0^1;
sbit W_E_G=P0^2;
sbit N_S_R=P0^3;
sbit N_S_Y=P0^4;
sbit N_S_G=P0^5;
//给东西南北红绿黄灯进行命名
void main()
{
unsigned char i=0;
//四个路口红灯亮
W_E_R = 0;
N_S_R = 0;
delay1s();
//交通灯正常工作循环
while(1)
{
//东西红灯亮,南北绿灯亮10s延迟
W_E_R = 0;
N_S_R = 1;
N_S_G = 0;
delay10s();
//东西红灯亮,南北黄灯闪,3s延迟
for(i=0;i<3;i++)
{
W_E_R = 0;
N_S_Y = 0;
N_S_G = 1;
delay1s();
W_E_R = 1;
N_S_Y = 1;
delay1s();
}
//东西红灯闪,南北黄灯闪,3s延迟
W_E_R = 1;
N_S_Y = 1;
W_E_G = 0;
N_S_R = 0;
delay10s();
//东西绿灯亮,南北红灯亮,10s延迟
for(i=0;i<3;i++)
{
W_E_Y = 0;
N_S_R = 0;
W_E_G = 1;
delay1s();
W_E_Y = 1;
N_S_R = 1;
delay1s();
}
//东西黄灯闪,南北红灯闪,3s延迟
}
}
void delay1s()
{
unsigned char x = 0;
unsigned char i;
unsigned char y = 0;
while(y < 5)
{
x = 0;
while(x<250)
{
i = 0;
while(i<250)
{
i++;
}
x++;
}
y++;
}
}
void delay10s()
{
unsigned char x = 0;
unsigned char i;
unsigned char y = 0;
while(y < 50)
{
x = 0;
while(x<250)
{
i = 0;
while(i<250)
{
i++;
}
x++;
}
y++;
}
}
void delay1s(); void delay10s();
最后将代码输入到proteus中即可实现交通灯调试

浙公网安备 33010602011771号