1.任务描述
十字路口交通灯是城市的一项重要的设施,它调节着城市的交通运行,使城市运行有规律,使市民的出行更加方便,它是保证交通安全和道路畅通的关键。当前,国内大多数城市均采用“自动”红绿交通灯,它具有固定的“红灯—绿灯”转换间隔,并自动切换。它们一般由“通行与禁止时间控制显示”“红、黄、绿三色信号灯”和“方向指示灯”三部分组成。
本任务是设计一个十字路口交通灯控制器,具体要求如下:
(1)每个街口放置有红、绿、黄三种指示灯。
(2)按常规的交通灯控制规则共有五种通行状态:
初始状态0:东西红灯、南北红灯,持续X0秒。
状态1:南北绿灯通车,东西红灯,持续X1秒。
状态2:南北绿灯闪M次(表示此时可以通行,提醒车辆和行人加快通行)转亮黄灯,持续X2秒,东西仍为红灯。
状态3:东西绿灯通车,南北红灯,持续X3秒。
状态4:东西绿灯闪N次(表示此时可以通行,提醒车辆和行人加快通行)转亮黄灯,持续X4秒,南北仍为红灯。
(3)状态1~状态4循环运行。
(4)当有120、119等特种车辆通过时,系统自动转为特种车放行,其他车辆禁止状态。特种车辆通过Y秒钟后,系统自动恢复。
2.任务分析
本项目主要是运用单片机来设计一个简单的由红、黄、绿三色信号灯组成的十字路口交通灯控制器。按照设计要求,要完成任务,则需要解决以下几个问题:①单片机的选型;②单片机与四个方向红、黄、绿三色信号灯接口电路的构建;③各路口交通灯时间的设定;④单片机与外部中断按键接口电路的构建。
单片机的选型同前面项目。单片机与四个方向红、黄、绿三色信号灯接口电路的构建,主要要看十字路口状态,十字路口详细平面图如图6-6所示。
本项目主要学习单片机外部中断的应用,可以考虑设计一个简单的十字路口交通灯控制器,即只考虑四个方向设红、黄、绿三色信号灯,分别用单片机12个端口连接。
图6-6 十字路口平面图
各路口交通灯时间的设定,首先必须根据交通路况实际规律,通过统计来计算出各路口所需要的合理时间,将固定时间值预先“固化”在单片机中,使城市的交通灯按照规定的时间和顺序运行。当然也可设定为随时可更改,但这样会增加编程的难度,且要提供对应的按键接口电路。
3.任务实施
(1)总体设计。
(www.xing528.com)
图6-7 十字路口交通灯控制器的系统结构图
根据任务分析,十字路口交通灯可采用AT89S51单片机控制,需要12个I/O口控制东西南北四个方向的交通灯(红、黄、绿)。此外,根据设计要求,系统需要1个I/O口接入外部中断按键。系统结构图如图6-7所示。
整个系统工作时,四个方向的交通灯分别由红色、绿色和黄色的LED灯显示。120、119特种车辆的到来作为外部中断处理,系统中由独立按键来模拟。系统中各状态的时间采用软件延时实现。
(2)硬件设计。
实现该任务的硬件电路中包含的主要元器件为:AT89S51 1片,红色、黄色和绿色发光二极管各4个,按键1个,电阻和电容等若干。东西向的三色(红、绿、黄)交通灯分别由P2.0~P2.5控制,南北向的三色交通灯由P0.0~P0.5控制,低电平点亮。模拟特种车的按键接至P3.3口,作为外部中断1处理。十字路口交通灯控制器的原理图如图6-8所示。
图6-8 十字路口交通灯控制器的原理图
(3)软件设计。
①软件流程设计。
十字路口交通灯控制器的软件流程图如图6-9所示。软件采用模块化设计方法,模块说明如下:主程序模块、中断初始化模块、分别实现交通灯的状态0~状态4的5个模块、外部中断服务模块、软件延时模块等。
图6-9 十字路口交通灯控制器的软件流程图
②源程序如下:
(4)虚拟仿真。
十字路口交通灯控制器的Proteus仿真硬件电路图如图6-10所示,在Keil μVision3与Proteus环境下完成仿真调试。观察调试结果如下:12只LED灯分成东西向和南北向两组,各组指示灯均由两只相向的红色、黄色、绿色LED组成。无急救车到来时,交通灯按照正常规律进行切换与显示;有急救车到达时,东西向和南北向两组交通信号灯全变为红色,让急救车优先通过,其他车辆禁行。急救车辆通过Y秒钟后,系统自动恢复。调试结果若不符合设计要求,对硬件电路和软件进行检查重复调试。
图6-12 十字路口交通灯控制器的Proteus仿真硬件电路图
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。