基于8051单片机的交通灯的设计与实现.docx
《基于8051单片机的交通灯的设计与实现.docx》由会员分享,可在线阅读,更多相关《基于8051单片机的交通灯的设计与实现.docx(20页珍藏版)》请在冰点文库上搜索。
基于8051单片机的交通灯的设计与实现
1前言
在经济发展的现代,中国社会的进步不断加快,群众的日常生活的生活较以往有着显著的提高,多数的群众按照自身的状况和工作的步行需求,有针对性的选择属于自身的工具。
如今,每家每户都会有一辆小汽车,然而道路的数量的多少是一定的,车的数量增加的很快,车的数量与道路的数量极其不匹配,造成交通方面的车辆较为严重拥堵情况。
对上述的出现的交通问题应该进行相关处理,各自省份的城市为解决该状况,针对上述情况出台针对性政策,为控制路上拥堵情况,出台如下措施,如尾号限行,摇号等措施,交通压力得到了一定的缓解。
但是私家车数量不断增长,这些办法只能从表面上解决问题,但是没有处理其问题的根本。
应针对性处理,对城市中老化交通信号灯控制器更换为处理其问题的直接方法。
在民众出行的日常生活中,在红绿灯通行和等待用时方面,是变化幅度很小的;导致应急车辆未在规定的时限内过路口,别的道路上却没有车处于空闲状态。
因而,研发一套处理方案,能对现有信号灯不足及增加特殊情况方案优化。
新系统,能够特殊处理,并且解决市里车辆拥堵问题。
2方案的设计
本次设计的城市交通信号灯控制系统的核心由8051单片机控制,且进行信号的检测,工具为传感器,对象是对车流量和社会应急车辆,组成两个检测模块,分别为相应车流量和社会应急车辆。
当单片机检测的信号,是有效时,执行相应子程序,并根据子程序输出。
只有明确了本次设计需要做什么,才能设计出一个比较完美的红绿灯控制器。
在实时通行策划设计,检测车流量和社会应急车辆准确度的最为主要,因而需谨慎选择传感器;然后研究和设计方案,如供电方案、显示方案等。
图2-1交通通行状态
若一十字路口的方位,通常有东西南北方向,在随意一个时间段内,经由交通灯程序运行结果,能够同行的,只有东、西、南、北这四个方向中的一个,显示绿色信号灯;则别的剩余的三个别的方向为红灯,在红灯亮时,车辆和行人必须在路口等待,红灯亮一会;在通行和禁止上,会调换,在其过渡期间,在灯色是绿换红间时,显示的灯色为黄;以此循环灯色。
就交通路口而言,在其信号灯系统,当其东西方向设置信号灯为红色,当其熄灭时,这一瞬信号灯显示为绿色;另一角度上,就系统的南北方向而言,在其设置信号灯为黄色时,当其熄灭时,这一瞬信号灯显示为红色,初始状态处记录下用时,时长20s。
此状态下的信号灯系统,南北可通行,东西就不能通行了。
东西方向绿灯熄灭,南北红灯亮,黄灯再亮,然后计时5秒;在此交通信号灯状态下,车前轮越过白线的车辆可以通行,而车前轮没有越过白线的车辆需等待红绿灯状态改变。
当设置的方向是南北信号灯,为红色时,当其熄灭时,瞬间绿灯亮;东西方黄灯灭,瞬间红灯亮,开始计时25秒;交通信号灯系统在此状态下,道路的东西的两个方向可以行驶,而方向为南北时则不能通行。
当设置的方向是南北信号灯,为绿色时,当其熄灭时,瞬间黄灯亮,其东西方向中设置的信号灯的颜色为红色,并记下用时5s;在红色信号灯状态处,车前轮越过白线的车辆可以通行,而车前轮没有越过白线的车辆需等红绿灯号转变。
表2-1表示的是该路口交通信号状态关系:
(信号灯熄灭为状态0,信号灯点亮为状态1)
表2-1交通信号状态关系表
状态1
状态2
状态3
状态4
东西车道
禁行
等待变换
通行
等待变换
南北车道
通行
等待变换
禁行
等待变换
东西红灯
1
1
0
0
东西黄灯
0
0
0
1
东西绿灯
0
0
1
0
南北红灯
0
0
1
1
南北绿灯
1
0
0
0
南北黄灯
0
1
0
0
对交通信号灯控制进行设计,此路口的四个方向的走向路口均进行了红绿黄3个LED灯和2个七段数码显示管的安装,当车辆经过装载交通信号灯系统时路口,正如我们日常生活中知道的,红灯停,绿灯行,黄灯亮了等一等,该设计就是采取了这种方式,简单易懂。
3交通信号灯硬件部分设计
3.1硬件部分的总体设计
针对硬件的设计,8051单片机为系统的核心;8个7位数码管组成路口计时模块,共四组,一组为按个数码管,一个为十位,另一为个位,倒计期间;红绿灯显示系统是由3个发光二极管组成,在每个路口,车辆等待的时间及剩余通行时间用一组进行告知。
针对设计原理和特点作为出发点,设计了其硬件部分电路分车流量检测电路、社会应急车辆检测电路等硬件模块[2]。
将硬件部分电路整体图和PCB图在附录中表示。
硬件系统框图如图3-1所示。
图3-1系统硬件框图
3.2单片机模块设计
最小应用系统就是能够满足单片机应用的最简单的电路,电路图如图3-2所示。
图3-2单片机最小系统图
晶振电路相当于与电阻并联的电容器和与电容器串联的电路的两端网络等效于该网络。
两段网络的谐振点分为两个点,并联谐振产生较高的频率,而串联谐振产生较低的频率。
实验中使用的负载电容参数主要为15pF或12.5pF。
每天选择22pF的负载电容。
组件引脚的等效输入电容对实验有一定影响[3]。
单片机的平均运行速度为12M,最大不超过24M。
本实验中的晶体振荡器电路可保持单片机的正常运行速度,这大约是1200万。
当启动计算机并且重置电路处于重置状态时,默认情况下将还原寄存器的原始值。
系统CPU和其他硬件处于其最原始的状态。
因此,按重置按钮,然后重新启动运行不正常的程序。
3.3电源电路设计
设计中需要供电,由+5V直流稳压电源对8051单片机等电子元件完成。
但在控制系统的应用场地无5V电源,其电压只有220V电源。
若想得到相对平稳的直流电压,需电解电容C1滤波。
若想得到稳定的+5V的直流电压,需用稳压LM7805稳压,图3-3为电路。
图3-3电源电路
3.4硬件输入方案的设计
3.4.1车流量检测电路设计
随着人们生活质量越来越高,家用汽车的数量也在增多,但是城市的道路是有限的,家用汽车的数量和道路不成正比,导致他们之间出现矛盾,城市也慢慢变得拥挤。
设计师为控制交通减少堵塞,需要对交通控制系统不断的进行更新,因为车辆出行存在高峰期和低谷期,所以交通信号灯仍然存在不足。
因为7:
00到9:
00是上班的早高峰,出现拥堵的概率也相对会增加[5]。
笔者进行的设计是制定了简单有效的方案,根据实时监控车流量变化。
笔者用设计出简单控制系统,并且是以单片机等电气设备及电子零件等完成设计的,对车流量检测,并之后调整优化通行,有助解决交通不出现交通拥堵的现象。
在设计期间,采用对射式红外线传感器,是针对车流量检测传感器的选择上。
整个检测电路的核心是8051单片机,构成是由红外信号发生器和红外信号接收器。
针对信号是红外发射与接收是由红外线传感器完成的。
其检测车流量的原理是,在路两侧灯杆离地面一米位置时,放置红外信号发生器和红外信号接收器,放置安装在相应高度东西南北方向。
单个工作周期内,信号发生器发出红外信号后,接收发射出红外信号是其导通唯一条件,相应输出电信号,是高电平;若车辆经过,红外信号被车辆挡住的,因而红外信号难以被接收器接收,当输出电信号为低电平。
因而控制器根据输出电信号的情况来判断是否有车辆通过的,然后由系统的核心单片机对结果计数,结束单周期后,对收集数据处理,可知期间车辆数A,于系统中,并设置标准时间为20秒,黄灯时长5s,则通行总时为25s,两秒钟通过一辆车为标准状态下,绿灯点亮时长0.5倍为标准通过车辆,则设B辆车为周期标准,对比通过车辆数A与标准通过车辆10亮,出现B-A大于0,则下个周期,绿灯在该方向时候,通行时为15s,少了5s,黄灯亮5s,绿灯显示时长应大于等于15s;出现A-B大于0,则下个周期通过时间为25秒,多了5s,黄灯亮5s,绿灯显示时长应小于等于30s。
红外信号被信号接收器接收后,检测器检测到,则证明有车辆经过,对车辆计数+1由累加器完成,检测继续进行[6]。
单片机读取数字信号,是由红外接收器所接收信号经模数转换而成的数字信号,然后由比较器LM393后输出数字信号。
如图3-4为红外线传感器。
图3-4对射式红外传感器
3.4.2社会应急车辆检测及接口电路设计
在对电路设计期间,被选用红外传感器作为检测,针对社会应急车辆。
红外信号发生装置放置社会应急车辆上,分别就东南西北方向,放置交通信号灯灯杆红外信号接收装置,用于检测社会应急车辆情况,外部中断程序单片机调用,并运行,当出现蜂鸣器响起时,则为示警,向行人和司机提示,即将有应急车辆,信号灯显示为绿色仅在社会应急车辆所行交通信号灯,别的红绿灯都会变为红色,为社会应急车辆让路,确保社会应急车辆可以及时执行任务。
当应急车辆过去以后,最初道路的状态复原。
社会应急车辆出任务时,图3-5为导通红外信号发生器开关电源,38Khz红外线由NE555震荡电路使红外发射管发出
图3-5应急车辆红外信号发生器
应急车辆的信号被红外信号接收器接收就表示社会应急车辆马上到达,外部中断子程序被运行[7]。
在此次设计中,采用红外接收器为TFMS5380,有以下特征:
接收器和前置放大器组合。
可选频率为30KHZ~56KHZ,较大。
能屏蔽干扰,来自于特强光及电场。
PCM频率过滤器放置在内部。
易敏感,传送距离远。
无需接外置组件。
芯片功耗低。
由TFMS5380芯片接收红外信号输送至单片机引脚P3.2,执行相应中断程序,最高的引脚P3.2在单片机中优先被中断,能确保社会应急车辆在最短时间内过。
将其内部结构集成到芯片所得如图3-6所示。
图3-6应急车辆红外信号接收器
3.5控制系统输出通道设计
3.5.1LED灯显示及接口电路设计
主要功能就是控制交通信号灯的材质是交通LED,不仅亮还省电,设计所用3个发光二极管和2个8段数码管效果一样,共四组。
又东西南北相对交通信号灯相同逻辑,因而只需控制东路口及南的交通信号灯,或者西北。
因单片机口输出电流小,在驱动信号灯时候,能显示更亮。
其控制逻辑如第二章通行方案中。
图3-7为电路图
图3-7交通状态灯显示电路
3.5.2倒计时显示及接口电路设计
就LED数码管构成方式而言,不复杂,是数码管存在形式之一,其有两种主要方式[8]。
为进行区分其主要方式,区分是以电极的阴阳,一种为共阳极,另一个是共阴极。
接下来,八段数码管应该先进行介绍。
图3-8为数码管。
数码管数量为八个,通常来说,显示数字的为前七个,作为dp使用为最后一个,也是小数点。
针对八段数码管而言,笔者在使用期间中,出现了海量的困难,需要笔者攻克。
上文中提到的电极问题就是一个比较关键的点,不同电极是共阳极和共阴极,在不同的八段管中有不同的接法。
图3-8八段数码管及接法
然后用七段数码管来完善交通灯的设计。
在交通灯倒计时,数码管应该停在dp位,此时有一定特殊性,笔者是准备共阴极七段数码管。
编码可通过将数的不同编码依次输入不同发光二极管中完成,不同的编码和不同的数字一一对应,字形码就是这个编码的集合。
LED显示器的工作方式分为两种,分别是静态工作方式和动态工作方式。
前者的原理可表述为:
数码管的每个段选位由单片机一个引脚来控制,如连在一起的单片机引脚P0口和数码管接口,由单片机送入高电平字形码所控制数码管中点亮的内容,数码管完成点亮的保持,显示新字形码所含内容时只有当至下个阶段接收到新字形码后才出现。
本次设计中电路复杂,所以单单采用静态显示的工作方式作为设计输出通道有点不足。
其主要优点和动态显示工作方式所能实现的功能是一样,但后者工作方式需要的单片机引脚小,与比静态显示工作方式相比,并且前者的硬件电路简单。
由于单片机输出电流小所驱动显示电路较暗,为行驶在更远处的人员和行人能清楚知道信号灯所显示内容,因而加上74HC245芯片对八段数码管和三色的LED灯驱动,图3-9为芯片电路图。
图3-9驱动芯片电路图
3.5.3蜂鸣器示警电路设计
笔者的本次毕设中,连接一起的是蜂鸣器在电路中和社会应急车辆检测模块,当蜂鸣器发出蜂鸣声,则说明检测模块收到社会应急车辆发出通行信号,蜂鸣器电路接通,行人和在该路口附近的的过往车辆可知晓情况。
PNP工作方式的三极管为本次设计驱动蜂鸣器,当引脚接口P2.7输出高电平信号为一个持续且稳定时,三极管电路的状态为断开,当蜂鸣器发出蜂鸣声,行人被提示,则说明三极管电路导通,是由于检测应急车辆时,单片机接收的检测信号输出一个低电平。
图3-10为蜂鸣器示警电路如所示。
图3-10蜂鸣器电路
4交通信号灯控制软件设计
4.1主程序设计
在交通信号灯控制器设计中实际上由多个独立子程序设计模块组合成的软件部分控制程序设计,其子程序模块主要是:
软件延时,车流量采样,社会应急车辆检测,中断,深夜黄灯等子程序。
如图4-1为主流程图。
图4-1主流程图
4.2子程序设计
4.2.1车流量异常通过子程序设计
在不同段完成不同车流量检测是车流量检测目的,且是主要。
采样计数和处理响应两个部分是对车流量检测模块设计软件。
针对周期内经过路口车辆计数,为采样计数,用A表示将该周期内车流量数据;B为绿灯点亮时间0.5,比较车流量A与标准车流量,做出响应是以对比结果为依据,从而调整通行时间,是针对下一通行周期车辆。
在设计期间,出现A-B大于0时,绿色交通信号灯点亮时间最低为15秒,减少5秒;出现B-A大于0时,绿色交通信号灯点亮时间最低为30秒,增加5秒。
图4-2车流量异常通过子程序
4.2.2社会应急车辆检测子程序设计
在经济改革后,不仅使人居住环境向好,但是交通压力的剧增却成为了现代城市的居住问题。
火灾、车祸的出现,就救援而言,社会应急车辆极为重要,特别是消防车、急救车等车辆能够救助,并且及时,交通信号灯转换时间在十字路口处的等待耽误应急车辆对被救助的市民进度,若火势不能控制,病人则无法及时救治,甚至一个家庭会因此而不幸,这不单单是财产方面的,更危急生命,时间等价于生命。
为避免这些问题,笔者建立对应的解决方案是针对社会应急车辆未及时通过十字路口问题:
当社会应急车辆通过路口时,要求速度是快速的,控制器接收应急车辆的通过信号,中断子程序被执行,蜂鸣器出现响应,即蜂鸣声出现,示意附近行人和其他车辆有社会应急车辆将通过,唯有社会应急车辆所行方向路口信号灯显示为绿色,其余路口信号灯全部为红色交通,持续15s,结束后现场进行恢复,车辆可以走了。
流程图如图4-3所示。
图4-3应急车辆通过子程序
4.2.3状态灯显示子程序设计
本设计中,定时中断服务程序控制行车和行人的通行。
单片机P0和P2口向交通信号灯的端口输送控制码实现了两方面,分别是状态灯显示和交通灯计时。
表2-1的状态转换如图4-4所示。
图4-4状态灯倒计时显示子程序
4.2.4软件延时子程序
由于红绿灯停留时间非常短是在倒计状态,这样会导致行人和车辆看不清倒计时的值,因而需要延长的时间,是停留方面的,从而行人和车辆能清楚知晓倒计时并能更安全通过[9]。
笔者在设计中采用晶振的晶振频率为12MHZ的8051单片机,该时钟周期是0.0833us,根据1/12MHZ计算,从而由周期为12个时钟构成的机器周期是该控制器设计[10]。
然后计算执行多少指令可以达到达到1ms的延时根据机器周期运行时间,则定义1ms延时时长。
图4-5为延时1msc的子程序流程图。
图4-5延时子程序设计
4.2.5深夜黄灯程序的设计
在笔者的设计中,时间为晚上00:
00至凌晨06:
00期间,就城市而言,其大部分民众已经进入休息状态,行驶的在道路上的车就其程度而言,很大降低,其中大部分公共交通是停运,剩下交通需求能被交通资源完全满足。
因而,无需交通信号灯对交通方面的工作进行指导,所以就该阶段的时间而言,经车流量检测模块对其检测,持续的周期是三,并且是连续的,最小周期为东南西北方向的通过车辆,从而执行深夜模式子程序,全部交通信号灯亮,表示能够通行,同时警告司机行驶应该注重安全方面,在路口处应该慢行。
图4-6为深夜模式黄灯子程序流程图
图4-6深夜模式子程序流程
5系统仿真
在正常显示时十字路口交通信号灯,东西通行,南北不行,如图5-1所示;图5-2为道路东西绿灯转换成红灯之间的转换时间黄灯示警:
图5-1南北方向通行
图5-2东西方向黄灯等待
应急车辆执行任务期间,遇到十字路口,在其往东行驶期间,交通出现拥堵,交通信号灯控制器通过子程序执行应急车辆,使应急车辆得到及时通过,如图5-3所示:
图5-3应急车辆向东行驶
深夜时,路口通行车辆为一天中通行车流量的低谷期,此时将开启深夜模式,图5-4为其状态显示:
图5-4深夜模式