满意答案
半個靈魂.留
2014.09.07
采纳率:49% 等级:9
已帮助:513人
//代码经Keil C51软件调试通
#include "reg51.h" //文件包含
//宏定义
#define uint unsigned int
#define uchar unsigned char
#define ON 0 //0候灯亮
#define OFF 1 //1候灯亮
//管脚定义
//南北道 黄灯亮3秒 红灯亮 30秒 黄灯3秒 绿灯38秒
//东西道 黄灯亮3秒 绿灯亮 28秒 黄灯3秒 红灯40秒
sbit PortDX_Yellow = P1^0; //东西向黄灯
sbit PortDX_Red = P1^1; //东西向红灯
sbit PortDX_Green = P1^2; //东西向绿灯
sbit PortNB_Yellow = P1^3; //南北向黄灯
sbit PortNB_Red = P1^4; //南北向红灯
sbit PortNB_Green = P1^5; //南北向绿灯
void delay(uint ms) // 毫秒级延(AT89C52 @ 11.0592MHz)
{
uint ti;
while(ms--)
{
for(ti=0;ti<112;ti++){}//112
}
}
/*==================== 主函数 ====================*/
void main(void)
{
delay(400); //机延400ms
while(1)
{
PortNB_Yellow = ON ;PortNB_Red = OFF;PortNB_Green = OFF;//南北黄灯亮3秒
PortDX_Yellow = ON ;PortDX_Red = OFF;PortDX_Green = OFF;//东西黄灯亮3秒
delay(3000);
PortNB_Yellow = OFF;PortNB_Red = ON ;PortNB_Green = OFF;//南北红灯亮28秒
PortDX_Yellow = OFF;PortDX_Red = OFF;PortDX_Green = ON ;//东西绿灯亮28秒
delay(28000);
PortNB_Yellow = OFF;PortNB_Red = ON ;PortNB_Green = OFF;//南北红灯亮2秒
PortDX_Yellow = ON ;PortDX_Red = OFF;PortDX_Green = OFF;//东西黄灯亮2秒
delay(2000);
PortNB_Yellow = ON ;PortNB_Red = OFF;PortNB_Green = OFF;//南北黄灯亮1秒
PortDX_Yellow = ON ;PortDX_Red = OFF;PortDX_Green = OFF;//东西黄灯亮1秒
delay(1000);
PortNB_Yellow = ON ;PortNB_Red = OFF;PortNB_Green = OFF;//南北黄灯亮2秒
PortDX_Yellow = OFF;PortDX_Red = ON ;PortDX_Green = OFF;//东西红灯亮2秒
delay(2000);
PortNB_Yellow = OFF;PortNB_Red = OFF;PortNB_Green = ON ;//南北绿灯亮38秒
PortDX_Yellow = OFF;PortDX_Red = ON ;PortDX_Green = OFF;//东西红灯亮38秒
delay(3800);
}
}
1.黄灯南北、东西两道同黄灯;提示行或车辆灯色即间 3秒
2.南北红灯南北道车辆禁止通行间30秒;南北道绿灯南北道车辆通间38秒
3.东西道绿灯东西道车辆通行间28秒;东西道红灯东西道车辆禁止通间40秒
4.表间红、绿、黄现顺序依现行车辆能安全畅通通行
00分享举报