基于单片机控制的交通灯设计
基于单片机控制的交通灯设计
作者:邵 军
来源:《中国新技术新产品》2010年第14期
摘要:当今,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。与传统的红绿灯相比,单片机在信号灯上的应用,使信号灯蕴含了生命,特别是自动检测和控制能力的提高,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。使用单片机进行交通灯的设计,可以提高交通指示灯的智能化,简化操作程序,突出实用性,并可根据实际情况进行功能拓展。
关键词:单片机;交通灯;闯红灯;检测车流量
1 红绿灯信号的规定
1968年,联合国《道路交通和道路标志信号协定》对各种信号灯的含义作了规定。绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行横道的行人优先通行。红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。 2 交通管理的方案论证
东西、南北两干道交于一个十字路口,各干道有一组红、黄、绿三色的指示灯,指挥车辆和行人安全通行。红灯亮禁止通行,绿灯亮允许通行。黄灯亮提示人们注意红、绿灯的状态即将切换,且黄灯燃亮时间为东西、南北两干道的公共停车时间。设东西道比南北道的车流量大,指示灯燃亮的方案如图1和表1所示:
路口指示灯工作情况说明:当2、4方向为红灯,此道车辆禁止通行,2、4道行人可通过;1、3道为绿灯,此道车辆通过,行人禁止通行。时间为60秒。黄灯闪烁5秒,警示车辆和行人红、绿灯的状态即将切换。当2、4方向为绿灯,此道车辆通行;1、3方向为红灯,1、3道车辆禁止通过,行人通行。时间为80秒。 2、4方向车流大 通行时间长。这样如上表的时间和红、绿、黄出现的顺序依次出现这样行人和车辆就能安全畅通的通行。此表可根据车流量动态设定红绿灯初始值。
3 系统硬件设计
龙源期刊网 http://www.qikan.com.cn
选用设备:8051单片机一片,8255并行通用接口芯片一片,74LS07两片,MAX692'看门狗'一片,共阴极的七段数码管两个双向晶闸管若干,7805三端稳压电源一个,红、黄、绿交通灯各两个,开关键盘、连线若干。 系统总框图如图2所示。
开关键盘输入交通灯初始时间,通过8051单片机P1输入到系统。由8051单片机的定时器每秒钟通过P0口向8255的数据口送信息,由8255的PA 口显示红、绿、黄灯的燃亮情况;由8255的PC口显示每个灯的燃亮时间。8051通过设置各个信号等的燃亮时间、通过8031设置,绿、红时间分别为60秒、80秒循环由8051的 P0口向8255的数据口输出。通过8051单片机的P3.0位来控制系统是工作或设置初值,当.牌位0就对系统进行初始化,为1系统就开始工作。红灯倒计时时间,当有车辆闯红灯时,启动蜂鸣器进行报警,3S后然后恢复正常。增加每次绿灯时间车流量检测的功能,并且通过查询P2.0端口的电平是否为低,开关按下为低电平,双位数码管显示车流量,直到下一次绿灯时间重新记入。绿灯时间倒计时完毕,重新循环。 4控制器的软件设计 4.1每秒钟的设定
延时方法可以有两种一中是利用MCS-51内部定时器才生溢出中断来确定1秒的时间,另一种是采用软延时的方法。 4.2计数器硬件延时
计数器初值计算。定时器工作时必须给计数器送计数器初值,这个值是送到TH和TL中的。他是以加法记数的,并能从全1到全0时自动产生溢出中断请求。因此,我们可以把计数器记满为零所需的计数值设定为C和计数初值设定为TC 可得到如下计算通式: TC=M-C
式中,M为计数器摸值,该值和计数器工作方式有关。在方式0时M为213 ;在方式1时M的值为216;在方式2和3为28。 计算公式 T=(M-TC)T计数 或TC=M-T/T计数
龙源期刊网 http://www.qikan.com.cn
T计数是单片机时钟周期TCLK的12倍;TC为定时初值,如单片机的主脉冲频率为TCLK12MHZ,经过12分频:
方式0TMAX=213×1微秒=8.192毫秒 方式1TMAX=216×1微秒=65.536毫秒
显然1秒钟已经超过了计数器的最大定时间,所以我们只有采用定时器和软件相结合的办法才能解决这个问题。
1秒的方法。我们采用在主程序中设定一个初值为20的软件计数器和使T0定时50毫秒.这样每当T0到50毫秒时CPU就响应它的溢出中断请求,进入他的中断服务子程序。在中断服务子程序中,CPU先使软件计数器减1,然后判断它是否为零。为零表示1秒已到可以返回到输出时间显示程序。 4.3软件延时
MCS-51的工作频率为2-12MHZ,我们选用的8051单片机的工作频率为6MHZ。机器周期与主频有关,机器周期是主频的12倍,所以一个机器周期的时间为12*(1/6M)=2us。我们可以知道具体每条指令的周期数,这样我们就可以通过指令的执行条数来确定1秒的时间。 4.4时间及信号灯的显示
4.4.1 8051并行口的扩展。8051虽然有4个8位I/O端口,但真正能提供借用的只有P1口,因为P2和P0口通常用于传送外部传送地址和数据,P3口也有它的第二功能。因此,8031通常需要扩展。由于我们用外部输入设定红绿灯倒计时初值、数码管的输出显示、红绿黄信号灯的显示都要用到一个I/O端口,显然8031的端口是不够,需要扩展。扩展的方法有两种:(1)借用外部RAM地址来扩展I/O端口;(2)采用I/O接口新片来扩充。我们用8255并行接口信片来扩展I/O端口。
4.4.2 显示原理。当定时器定时为1秒,时程序跳转到时间显示及信号灯显示子程序,它将依次显示信号灯时间 ,同时一直显示信号灯的颜色,这时在返回定时子程序定时一秒,在显示黄灯的下一个时间,这样依次把所有的灯色的时间显示完后在重新给时间计数器赋初值 ,重新进入循环。
4.4.3 8255PA口输出信号接信号灯。由于发光二极管为共阳极接法,输出端口为低电平,对应的二极管发光,所以可以用置位方法点亮红,绿,黄发光二极管。
龙源期刊网 http://www.qikan.com.cn
4.4.4 8255输出信号与数码管的连接。LED 灯的显示原理:通过同名管脚上所加电平的高低来控制发光二极管是否点量而显示不同的字形如 SP,g,f,e,d,c,b,a管角上加上7FH所以SP上为0伏,不亮其余为TTL高电平,全亮则显示为8。
4.4.5 8255与8051的连接。用8051的P0 口的 p0.7 连接8255的片选信号CS 我们用8031的地址采用全译码方式,当p0.7 =0 时片选有效,其他无效,p0.1 p 0.1用于选择8255端口。 4.5 程序设计流程图如图4所示 5 总结
本系统采用MSC-51系列单片机Intel8051和可编程并行I/O接口芯片8255A为中心器件来设计交通灯控制器,实现了能根据实际车流量通过8031芯片的P1口设置红、绿灯燃亮时间的功能;红绿灯循环点亮,倒计时剩5秒时黄灯闪烁警示;车辆闯红灯报警;绿灯时间可检测车流量并可通过双位数码管显示。系统不足之处是不能控制车的左、右转、以及自动根据车流改变红绿灯时间等。 参考文献
[1]陈忠平.单片机原理及接口[M].北京:清华大学出版社,1997. [2]李丹明. 单片机原理与应用[M].东南大学出版社, 2000.
[3]李群芳, 黄建.单片机微型计算机与接口技术[M].北京:北京电子工业出版社,2001.
因篇幅问题不能全部显示,请点此查看更多更全内容