徐万明 陈克林 杨 敏 田绍东 杨思阳 周 爽
(黔东南民族职业技术学院,贵州 凯里 556000)
随着社会经济的不断发展,人民生活水平的不断攀升,城市化进程的不断加快,机动车辆的不断增多,城乡交通拥堵问题也不断突显。交通信号灯,尤其是智能、移动式交通信号设备的运用为车人流较大、环境复杂路段的交通畅通保障起到至关重要的作用。
交通信号灯不仅是维系道路交通的指示工具,更是科技成果应用的具体体现。单片机技术作为能够实现交通信号控制系统设计的主流技术,是各高等院校电子信息等专业技能培养的核心课程,是理论和实践结合紧密的课程。通过选定一处交通繁忙十字路口,引导学生观察该路口交通信号灯对人流、车流的疏导,记录交通灯显示状态,并应用单片机技术,实现所观察交通信号灯的显示功能模拟,完成交通信号灯演示平台硬软件设计。
为使拟设计的交通信号灯演示平台源于生活,贴近生活,体现学以致用的育人理念,特选定位于学校附近且人流车流较大的凯里高铁南站十字路口(东西南北双向均为八车道)交通信号灯作为本次设计的模拟对象。
所模拟的交通信号灯十字路口其东西南北均有双向八车道,各路口信号灯灯杆上有两位数码管一个,用于倒计时显示;交通信号灯12只,每3只为1组,共计4组,每组均有红黄绿三色组成,分别用于左转向、直行、人行指示。
通过对模拟对象运行显示规律的观察,该交通信号灯由四种通行模式循环构成,即:南北向直行(东西向禁行)→南北向左转(东西向禁行)→东西向直行(南北向禁行)→东西向左转(南北向禁行)→南北向直行(东西向禁行)。其通行模式下的显示状态如下:
模式一:南北向直行(东西向禁行)
状态1:南北向直行绿灯亮、人行绿灯亮、左转红灯亮,数码管显示27s倒计时;东西向直行、人行、左转均为红灯亮,数码管显示50s倒计时。
状态2:南北向直行黄灯亮、人行黄灯亮、左转红灯亮,数码管显3s倒计时;东西向直行、人行、左转均为红灯亮,数码管显示23s倒计时。
模式二:南北向左转(东西向禁行)
状态3:南北向直行红灯亮、人行红灯亮、左转绿灯亮,数码管显示17s倒计时;东西向直行、人行、左转均为红灯亮,数码管显示20s倒计时。
状态4:南北向直行红灯亮、人行红灯亮、左转黄灯亮,数码管显示3s倒计时;东西向直行、人行、左转均为红灯亮,数码管显示3s倒计时。
模式三:东西向直行(南北向禁行)
状态5:东西向直行绿灯亮、人行绿灯亮、左转红灯亮,数码管显示27s倒计时;南北向直行、人行、左转均为红灯亮,数码管显示50s倒计时。
状态6:东西向直行黄灯亮、人行黄灯亮、左转红灯亮,数码管显3s倒计时;南北向直行、人行、左转均为红灯亮,数码管显示23s倒计时。
模式四:东西向左转(南北向禁行)模式
状态7:东西向直行红灯亮、人行红灯亮、左转绿灯亮,数码管显示17s倒计时;南北向直行、人行、左转均为红灯亮,数码管显示20s倒计时。
状态8:东西向直行红灯亮、人行红灯亮、左转黄灯亮,数码管显示3s倒计时;南北向直行、人行、左转均为红灯亮,数码管显示3s倒计时。
基于对模拟对象的观察及其显示状态的总结,所设计的交通信号灯模拟演示平台需完成四种模式下的8种状态循环显示功能。考虑到本设计主要用于单片机课程实践教学,重在培养学生系统设计及创新驱动能力,结合单片机课程主讲机型及市场主流机型,选定具有51内核架构的8位单片机作为本设计的控制核心,配以外设晶振电路、复位电路、矩阵按键控制电路、数据缓冲电路、数码管刷新电路、数码管显示电路及LED指示电路等,完成既满足模拟对象显示要求,又具有显示倒计时可调控功能的交通信号灯设计。
图1 交通信号灯演示平台设计原理框图
硬件设计中,充分发挥Proteus的电路设计及仿真功能,在其虚拟环境下进行系统的调试与仿真。
以宏晶科技STC89C52RC单片机为控制核心,系统设计为5V直流供电系统,如图2所示。
其中,电容C1、C2(20pF),无源晶振Y1等组成晶振电路,分别连接至单片机XTAL1,XTAL2引脚,为单片机系统提供11.0592MHz的基准时钟信号。由电阻R1(18Ω)、R2(4.7KΩ)、电容C3(0.1uF)、按键K0等组成复位电路,连接至单片机的RST引脚,为单片机系统提供上电复位和手动复位功能,解决程序运行死机或跑飞等现象,提高系统运行效率。
将单片机P0口作为数据输出接口,向交通信号灯显示外设提供控制数据;将P1口作为交通信号灯显示外设的动态刷新接口,用于传输刷新数据;将P2口作为人机对话接口,用于接收由矩阵按键输入到单片机的控制数据;将P3口作为功能扩展接口,另作他用。
STC89C52RC单片机内部自带8KB Flash存储器,512B数据存储器,其容量足够本设计要求,不需对存储器进行外部扩展,因此PSEN及ALE引脚悬空,EA引脚接5V电源。
图2 交通信号灯主控电路
74HC245双向数据缓冲器能够在70mA电流下稳定工作,而交通信号灯数码管显示和LED指示均由发光二极管组成,属电流驱动器件,需要足够大且稳定的电流才能正常工作。为保证单片机I/O口能够稳定驱动交通信号灯显示电路,特在单片机P0口和交通信号灯显示模块之间连接74HC245,起到电流驱动缓冲,防止回流,保障数据传输通道畅通的作用。
图3 数据缓冲电路
虽本系统单片机引脚资源富余,但考虑到数字电子技术教学中缺乏译码器系统应用的实践训练,结合后续显示外设的数量,引进4选16译码器74154,分配单片机的P1.0、P1.1、P1.2、P1.3口与其输入选择端连接,并将其输出端与交通信号灯东南西北方向的数码管和LED控制端连接(见图4、图6、图7),以0.5ms/次的速度,实现6ms内完成12只控制端的动态刷新。
图4 数码管、LED动态刷新电路
为实现人机对话,拓展交通灯信号通禁时间人工可调功能,系统特设计4×4矩阵按键电路(如图5所示),并分配P2口与其连接,扫描采集按键输入信息。
图5 矩阵按键电路
其中0~9为数字键,用于输入所需调整通禁的时间;EAST、SOUTH、WEST、NORTH为功能按键,分别用于控制东南西北四个方向的禁通时间设置;ENTER键为功能确定键;ESC键为错误输入时的取消键。注意,在进行通禁时间设置时,一定要符合东南西北四方向的时间循环显示逻辑,否则会出现显示混乱。
本交通信号灯显示电路布局设计模拟凯里高铁南站十字路口交通信号灯东南西北向布置(如图6所示)。东南西北各向分别有4组LED灯,每组都由红黄绿三色LED组成。其中数码管用于显示车人通禁时间;数码管左侧横向3只红黄绿LED灯用于指示车辆左转通禁;数码管右侧横向3只红黄绿LED灯用于指示车辆直行通禁;数码管两侧纵向3只红黄绿LED灯用于指示人行道上行人通禁。
图6 交通信号灯东南西北向显示布局
选择该显示电路布局方式,主要想引导学生课题选择可源于生活,培养学生学以致用、不断创新的能力。
各向数码管引脚与数据缓冲器74HC245输出端连接,接收显示P0口传输的数据,各组红黄绿LED灯亮灭指示由P0口数据控制。为实现数码管、LED的动态显示,东南西北各向的数码管及LED灯工作情况均受单片机P1口控制,且由4选16译码器每0.5ms进行一次显示刷新,12只控制引脚共需6ms,实现所有显示元件的动态刷新,完成交通信号灯的显示功能。
图7 北向(north)数码管显示、LED指示电路
软件采用基于单片机的C语言设计,并在Keil环境下对软件进行调试编译。
主程序完成系统的初始化,定时判断,交通信号灯显示数据刷新,按键动作判断,按键功能函数调用,中断等待等。其流程图如图8所示。
图8 主程序流程图
中断子程序完成定时器初值重载,矩阵按键扫描,数码管及LED动态刷新,1s标志位设置等功能。其流程图所图9所示。
本设计在Proteus+Keil环境下进行硬软件仿真,运用Altium Designer进行PCB设计,采用热传印法制作印制电路板,完成元器件焊接,并经系统调试,其显示逻辑和状态与所模拟交通信号灯一致,符合设计要求。通过对各向通禁时间的人工设置,其显示效果达到预期,实现各向倒计时人工可调功能。
图9 中断服务子程序流程图
将本设计引入单片机课程实践教学,向学生进行模拟演示,极大地增强了学生单片机学习兴趣。以演示为背景,项目驱动为动力,融入单片机课程设计,在一定程度上,可提升学生单片机系统设计与应用能力。基于对交通信号灯不同显示状态的需求,引导学生对其软件进行修改,设计多种显示方式,实现对学生创新能力的培养。
[1]宋雪松,李冬明,崔长胜.手把手教你学51单片机(C语言版)[M].北京:清华大学出版社,2014.
[2]胡汉才.单片机原理及其接口技术[M].北京:清华大学出版社,2010.