摘要:针对城市交通控制问题,提出以AT89S51作为系统的控制核心,实现正常情况下各个方向信号灯的轮流指示及倒计时显示。系统能根据各方向车辆的实际通行情况及时切换通行方向,并保证紧急情况下特殊车辆的及时通行。最后利用Proteus仿真调试验证了系统设计的正确性。
随着经济与社会的快速发展,城市交通压力越来越大,如何通过有效的交通管理,实现人、车、路三者之间的协调,已经成为交管部门亟待解决的主要问题之一。除了通过多种交通出行方式缓解交通压力以外,在路面交通控制中,对交通信号灯的灵活有效控制,已经成为城市交通控制系统中重要组成部分。
传统的十字路口交通控制系统中,一般只采用红绿黄灯分方向轮流控制形式,没有考虑到实时的各方向路面车流辆情况,紧急突发事件的应急处理等,这样的控制显得不够灵活,无法达到最优的交通指挥目的。本文提出的智能交通灯控制系统,可通过对通行方向实际路面车辆有无的检测,及时切换通行方向,并针对紧急情况,保证特殊车辆的优先通行。此外,还可实现对各方向时间的倒计时显示,使交通指挥高效灵活。
1 系统设计要求
智能交通灯控制系统要求实现以下控制目的:
1)设东西道为A道,南北道为B道;A道放行60 s;B道放行30 s;绿灯放行,红灯停止;绿灯转红灯时,黄灯亮3 s。
2)当一道有车而另一道无车时,交通灯控制系统立即让有车的车道放行。
3)遇到特殊情况,可拨动应急开关,使各方向均为红灯,特殊车辆不受红灯限制,保证其顺利通过后将开关拨回原位,系统恢复原状态进行。
4)具有递减时间显示功能。
2 系统设计方案
系统的控制方案有多种,可采用PLC、CPLD、单片机或纯电路设计等设计方案。从控制的灵活性、实现的方便程度以及性价比等方面综合考虑,本设计采用AT89S51单片机作为控制核心器件。采用红、绿、黄灯各4个作为交通指示,采用霍尔传感器分别检测两个方向有无车辆通行。处理紧急车辆的开关接到外部中断引脚INT0。使用两位数码管进行递减时间显示,并采用动态扫描的显示方式。此外,单片机系统工作需要时钟电路和复位电路构成最小系统。
整个系统的组成框图如图1所示。
3 硬件电路设计
1)单片机最小系统:原理图如图2所示。AT89S51作为控制核心,加上时钟电路及复位电路组成单片机最小系统如图2所示。其中时钟电路的晶振频率为12 MHz,为单片机工作提供基本的工作时序。采用按键复位电路,在系统上电以及非正常工作时实现复位。
2)信号灯显示电路:采用12个交通灯模型来模拟实际交通信号灯,其中P1.0~P1.2输出控制A道的红、绿、黄灯,即P1口的1个输出引脚同时控制同一道上不同方向的两个信号灯,若驱动能力不够时可增加驱动电路以达到功率匹配。同理,P1.3~P1.5输出控制B道的红、绿、黄灯,交通灯模型在单片机输出引脚为高电平时点亮。原理图如图3所示。(注:为描述方便,单片机引脚表示方法如:P1.0引脚用P10符号表示。)
3)车辆检测输入:采用霍尔传感器进行车辆有无的检测,在每个方向车道的入口处安装一个霍尔传感器。当该方向车辆入口处有车辆时,霍尔传感器会发出一个脉冲,得到车辆的有无信号。本设计只在A、B道上各放置一个霍尔传感器(实际应是两个)。由于在Proteus仿真中没有霍尔传感器的模型,但是考虑到霍尔传感器发出的是单脉冲,此处可采用一个开关替代来进行仿真。车辆检测输入部分如图4所示。
4)紧急开关输入:当出现紧急情况需要特殊车辆优先通行时,可拨通紧急开关,紧急开关可接至外部中断0,此时各方向交通灯全红,等待特殊车辆通行后在关掉紧急开关,恢复信号灯的正常显示。紧急开关输入部分如图4所示。
5)倒计时显示电路:采用共阳极2位数码管进行60 s或30s递减时间显示,使用P0口输出LED显示器的段码,P2口输出LED显示器的位码。考虑到采用动态扫描方式,需增加驱动电路,故在P0口输出段码时先接至74HC573锁存器进行驱动,再接至LED数码管的段控端。通过P2口输出4个位码时经由74HC04反相驱动后再接到数码管的位控端。电路原理图如图5所示。
4 系统软件设计
根据系统控制要求及硬件原理图,软件采用汇编语言进行程序设计,主程序流程如图6所示。将A、B车道的传感器接至P3.6和P3.7,当P3.6=0表示A道有车辆通过;P3.6=1表示A道无车辆通过。同理,可判断B道车辆通行情况。
对紧急车辆的处理,采用外部中断的方式,由外部中断0服务程序处理。LED数码管显示采用动态扫描方式实现倒计时的显示,通过定时器T0进行20ms的定时,在定时器T0服务程序中实现十位和个位时间的轮流显示。由于篇幅限制,外部中断0服务程序和定时器0中断服务程序流程此处略。
5 Proteus仿真调试
软件采用汇编语言设计,在Keil C51集成开发环境下将编写的程序进行编译、调试,并生成目标文件(.hex)。此外,利用EDA仿真软件Proteus绘制出电路仿真原理图,CPU选择AT89S51。双击AT89S51,在出现的对话框中的“Program file”加入已生成的.hex文件,并进行仿真调试。调试成功后,正常情况下A、B道的红绿黄信号灯轮流亮并具有倒计时显示,按下紧急开关则A、B通道红灯一直亮直至松开紧急开关;若检测到当前通行道上无车而哦、另一道上有车时,能正确切换通行方向。正常情况下的仿真效果图如图7所示仿真显示当前A道红灯,B道路灯通行,倒计时时间为16 s。
6 结论
该设计以AT89S51单片机作为控制核心,能实现正常情况的通行指示,各方向车流情况不同的及时通行切换,以及紧急情况下的特殊通行,并通过Proteus软件的仿真调试验证了系统设计的正确性。与传统交通灯控制系统相比,该系统具有硬件结构简洁、控制灵活、维护方便等优点,在交通控制领域中具有较好的实用价值。