以单片机为核心,设计一个简单交通灯控制系统,设A车道与B车道交叉组成十字路口,A是主道,B是支道。设计要求如下:
(1) 用发光二极管模拟交通信号灯、两个方向分别设置红、绿、黄3种通行指示灯,用按键开关模拟车辆检测信号。
(2) 正常情况下,A、B两车道轮流放行, A车道放行40秒,其中5秒用于警告,B车道放行25秒,其中5秒用于警告。有计时牌显示路口通行转换剩余时间。
(3) 在交通繁忙时,交通信号灯控制系统应有手控开关,可人为地改变信号灯的状态,以缓解交通拥挤状况。在B车道放行期间,若A车道有车而B车道无车,按下开关K1使A车道放行15秒;在A车道放行期间,若B车道有车而A车道无车,按下开关K2使B车道放行15秒。
(4) 有特种车辆如119、120通过路口时,系统可转为特种车辆放行,其他车辆禁止通行的状态,15s后系统恢复正常管理。
(5) 两个方向放行的时间可以通过键盘设置。
用c语言写 由于本人c语言十分。。。单片机型号AT89C51 所以希望各位大哥帮帮忙啊 是我们的课程设计 跪求程序啊 万分感谢
硬件电路设计
此电中路设计采用AT89C51单片机,74LS47(数码管驱动)74LS373(数码管驱动输出锁存),8个数码管显示其延时值,四个红、黄、绿指示灯。硬件设计关键在于,延时显示时,要考虑到当个位数字显示时,要确保十位数字显示输出的不变。因此,可加输出锁存器。在延时最后三秒时,要让黄灯进行闪烁,并同时显示数字(这一步在软件设计上很关键)。
(1)电路连接图:
三、软件程序(C语言)
以下是整个设计的软件程序,直接可以编译成*。Hex代码。通过以上电路,下载到单片机,可直接运行。
#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 x)
{
uchar i;
while (x--) for (i=0;i<120;i++);
}
void Traffic_Light()
{
switch (Operation_Type)
{
case 1:
RED_A=1;YELLOW_A=1;GREEN_A=0;
RED_B=0;YELLOW_B=1;GREEN_B=1;
DelayMS(2000);
Operation_Type=2;
break;
case 2:
DelayMS(300);
YELLOW_A=!YELLOW_A;GREEN_A=1;
if(++Flash_Count!=10) return;
Flash_Count=0;
Operation_Type=3;
break;
case 3:
RED_A=0;YELLOW_A=1;GREEN_A=1;
RED_B=1;YELLOW_B=1;GREEN_B=0;
DelayMS(2000);
Operation_Type=4;
break;
case 4:
DelayMS(300);
YELLOW_B=!YELLOW_B;GREEN_B=1;
if(++Flash_Count!=10) return;
Flash_Count=0;
Operation_Type=1;
break;
}
}
void main()
{
while(1) Traffic_Light();
}
c51单片机c语言交通灯的程序
使用C语言为C51单片机编写交通灯控制程序是完全可行的,通过合理地设置定时器、I\/O端口以及逻辑控制,可以实现交通灯的定时切换和状态显示。接下来,我将详细解释如何为C51单片机使用C语言编写交通灯控制程序。首先,我们需要了解C51单片机的基本结构和资源,包括其I\/O端口、定时器\/计数器等。通常,交通灯系...
如何用c语言编程在单片机上做交通信号灯
(1)电路连接图:三、软件程序(C语言) 以下是整个设计的软件程序,直接可以编译成*。Hex代码。通过以上电路,下载到单片机,可直接运行。\/\/***\/\/\/程序名:十字路口交通灯控制\/\/编写人:黄庭剑\/\/初写时间:2009年1月2日\/\/程序功能:南北为车行道,延时60秒;东西方向为人行道,延时20秒,且在最后...
求用C语言编写的交通灯程序,C51单片机控制,无左转右转
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; \/\/东西方向...
c51单片机c语言交通灯的程序
void logo(); \/\/开机LOGO void Buzzer();\/\/主程序 void main(){ TMOD=0X01;TH0=0XD8;TL0=0XF0;EA=1;ET0=1;TR0=1;EX0=1;EX1=1;logo();P2=0Xc3;\/\/ 开始默认状态,东西绿灯,南北黄灯 sec_nb=sec_dx+5;while(1){ key(); \/\/调用按键扫描程序 display(); \/\/调用显示程序 ...
用51单片机编写城市道路交通灯c语言程序,有左转右转
case 4: \/\/南北向黄灯开始闪烁,绿灯关闭 LEDsng=0x0;LEDsns=0x0;if(++Time_Count!=8) return;Time_Count=0;YELLOW_B=~YELLOW_B;GREEN_A=0;if(++Flash_Count!=10) return; \/\/闪烁 Flash_Count=0;Operation_Type=1;break;} } void t1_isr() interrupt 3 { TR1=0;TH1=(65536-3000...
c语言模拟交通灯控制
c语言模拟交通灯控制 任务4模拟交通灯控制一、任务目的通过对模拟交通灯控制系统的制作,掌握定时器和中断系统的综合应用,进一步熟练软、硬件联调方法。二、任务要求设计并实现单片机交通灯控制系统,将... 任务4模拟交通灯控制一、 任务目的通过对模拟交通灯控制系统的制作,掌握定时器和中断系统的综合应用,进一步熟练软...
...帮忙设计一个交通灯控制的C语言程序。谢谢。。(汇编指令太麻烦咯...
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 x){ uchar i;while (x--) for (i=0;i<120;i++);} void Traffic...
如何用单片机制作交通灯
源程序中用6行sbit对东西和南北向的红、黄、绿指示灯分别进行定义,这样便于对它们进行单独控制。本例交通指示灯切换时间设置的较短,这样可在调试的时候较快观察到运行效果,可在调试运行本例后修改代码,使指示灯切换过程更接近于实际的交通指示灯切换过程。源程序代码:\/\/--- \/\/ 名称:LED模拟交...
用单片机模拟控制控制交通信号灯。 题目如下; 只要做出来,分不是问题...
要实现灯闪烁。红灯、绿灯、黄灯的点亮持续时间可以通过串口来修改,并在下一个循环中更新数值。作 者:温子祺 修改日期:2010\/5\/4 说 明:代码注释与讲解详见《51单片机C语言创新教程》温子祺等著,北京航空航天大学出版社 \/ include "stc.h"typedef unsigned char UINT8;typedef unsigned i...
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 ...