求用C语言编写的交通灯程序,C51单片机控制,无左转右转

用四盏双色灯模拟,P1口控制;南北红灯亮30秒,同时东西绿灯亮25秒,绿灯闪烁3次(间隔为1秒),然后黄灯亮2秒;然后东西与南北互换一下;重复;

//以下代码经过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.这样如上表的时间和红、绿、黄出现的顺序依次出现这样行人和车辆就能安全畅通的通行。
温馨提示:内容为网友见解,仅供参考
无其他回答

求用C语言编写的交通灯程序,C51单片机控制,无左转右转
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...

c51单片机c语言交通灯的程序
void delay(int ms);\/\/延时子程序 void key();\/\/按键扫描子程序 void key_to1();\/\/键处理子程序 void key_to2();void key_to3();void display();\/\/显示子程序 void logo(); \/\/开机LOGO void Buzzer();\/\/主程序 void main(){ TMOD=0X01;TH0=0XD8;TL0=0XF0;EA=1;ET0=1;...

c51单片机c语言交通灯的程序
使用C语言为C51单片机编写交通灯控制程序是完全可行的,通过合理地设置定时器、I\/O端口以及逻辑控制,可以实现交通灯的定时切换和状态显示。接下来,我将详细解释如何为C51单片机使用C语言编写交通灯控制程序。首先,我们需要了解C51单片机的基本结构和资源,包括其I\/O端口、定时器\/计数器等。通常,交通灯系...

c51单片机控制交通灯要求用汇编语言
SNF EQU 00H ; 南北通行标志位 EWF EQU 01H ; 东西通行标志位 URF EQU 02H ; 紧急事件标志位 ORG 0000H LJMP MAIN ; 上电转主程序 ORG 000BH ; 定时中断入口 LJMP DSZD ORG 0003H ; 紧急中断入口 LJMP URZD ORG 0030H MAIN: LCALL IN...

C51单片机程序设计题,要求用C语言做,模拟交通灯控制单片机电路,答案要...
程序有不严谨地方还得调试修改 include <REGX51.H> define STATUS_1S1 define STATUS_2S2 define STATUS_3S3 define STATUS_4S4 define STATUS_5S5 define STATUS_15S15 define STATUS_28S28 define STATUS_29S29 define STATUS_30S30 unsigned char flag,status,status_temp=1,status_temp_;sbit ...

基于51单片机控制交通灯的电路图与C语言程序
四、软件程序(C语言)以下是整个设计的软件程序,直接可以编译成*。Hex代码。通过以上电路,下载到单片机,可直接运行。\/\/***\/\/ \/\/程序名:十字路口交通灯控制 \/\/编写人:黄庭剑 \/\/初写时间:2009年1月2日 \/\/程序功能:南北为车行道,延时60秒;东西方向为人行道,延时20秒,且在最后3秒黄灯显示2...

80c51单片机交通灯程序
;正常运行交通灯 LP1:MOV P1,#61H CLR P3.2 CLR P3.3 CLR P3.4 SETB P3.5 ;1,3 路口红灯亮,2,4 路口绿灯亮 LCALL DELAY1 MOV B,#04H ;设置循环次数为4次 M:MOV P1,#51H CLR P3.5 SETB P3.4 ;1,3路口红灯亮,2,4路口黄灯亮 LCALL DELAY2 MOV P1,#41H CL...

...帮忙设计一个交通灯控制的C语言程序。谢谢。。(汇编指令太麻烦咯...
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, Operation_Type=1;void DelayMS(uint...

我在做一个单片机交通灯程序(c51),要求是控制一个十字路口的两组红...
给你一个思路:假设是单纯的红绿灯,无黄灯的话,设红灯30秒,绿灯30秒。需要两个状态量,方向Dir(1:东西,0:南北),东西灯颜色LightcolorEW,南北灯颜色LightcolorNS。此刻,东西方向亮红灯,则Dir=1,LightcolorEW=red,LightcolorNS=green。对相应端口赋值即可。只需要东西方向与南北方向相反。...

基于51单片机的交通灯控制设计
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; \/\/闪烁次数,操作类型变量 《单片机C语言程序设计实训100例---基于8051和PROTEUS仿真》案例 5 上海师范大学信息与机电工程学院—倪继锋...

相似回答