1.引言现代社会,红绿灯被安装在各个路口上,已经成为疏导行驶车辆最常见和最有效的方法和手段。
据调查显示,这一技术在19世纪就已出现了。
信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。
1968年,联合国《道路交通和道路标志信号协定》对各种信号灯的含义作了规定。
绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。
左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行横道的行人优先通行。
红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。
黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。
1.1交通信号灯应用现状随着世界范围内城市化和机动化进程的加快,城市交通越来越成为一个全球化的问题。
自改革开放以来,我国的城市规模和经济建设都有了飞速的发展,城市化进程在逐步加快,城市人口在急剧增加,车辆也越来越多,大量流动人口涌进城市,人员出行和物资交流频繁,随之而来的交通事故也发生地更加频繁,使城市交通面临着严峻的局势。
当前,全国大中城市普遍存在着道路拥挤、车辆堵塞矛盾,使原来不太突出的交通问题被提上了日程。
信号灯的出现,虽然使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有了明显效果。
同时随着人民的生活水平日渐提高,越来越多的汽车进入寻常老百姓的家庭,再加上政府大力发展的公交、出租车,车辆越来越多了。
这不仅要求道路要越来越宽阔,而且要求有新的交通管理模式的出台。
旧有的交通控制系统的弊病和人们越来越高的要求激化了市交通系统的管理机制不适应,使得对交通灯控制要求也就越来越高,交通灯的设计有很多实现的方法。
从交通灯的重要性看来,交通灯工作一定要是稳定可靠的。
如今红绿交通信号灯作为交管部门管理交通的重要工具之一,如何提供一个高效率的交通控制系统有着明显的必要性。
目前设计交通灯的方案有很多,有应用CPLD设计实现交通信号灯控制器方法;有应用PLC实现对交通灯控制系统的设计;有应用单片机实现对交通信号灯设计的方法。
国内的交通灯一般设在十字路口,在醒目位置用红、绿、黄三种颜色的指示灯。
加上一个倒计时的显示计时器来控制行车。
本系统就是在现有的基础上外加一些辅助功能,从而使交通信号倒计时系统功能更加完善、使用更加灵活。
1.2本设计完成的工作学习式交通信号倒计时系统主要在实验室完成,参考有关的书籍和资料,个人完成电路的设计、检查、调试,再根据自己的硬件用C语言编写的显示程序,然后进行调试,最终达到准确无误的倒计时显示。
在本系统中,采用顺序工作方式,实现时间的倒计时,硬件部分主要分两大块,由AT89C51和多个按键组成的控制模块,包括时钟电路、控制信号电路,时钟采用6MHZ晶振和30pF的电容来组成内部时钟方式,控制信号用手动开关来控制,P1口来控制,P2、P3口产生信号并通过共阳极数码管来显示,软件采用C语言来编写,子程序实现数据的倒计时控制并加以显示。
2.系统分析与方案论证2.1设计要求2.1.1设计基本要求⑴用AT89C51单片机为主芯片控制交通信号灯的整个系统,P1口用以连接七段显示数码管,P1口用以连接LED灯。
⑵合实际情况,确定红绿交通灯的亮灭方案。
⑶用七段显示数码管动态显示各个方向上的剩余时间。
⑷成硬件电路分析及设计。
⑸据交通灯控制系统框图,画出电路图。
⑹件编制并通过测试。
2.1.2设计提高要求⑴没有任何辅助芯片的情况下实现交通信号倒计时,这使设计成本大大降低。
⑵过按键实现各个模拟信号之间的转换、定时器的时间设计和方向选择功能。
⑶特定时间自动进行工作模式的转换。
2.2总体设计思想本毕业设计注重于对单片机最小系统的理论的理解,明白交通信号倒计时系统的工作原理,以便以后单片机领域的开发和研制打下基础,提高自己的设计能力,培养创新能力,丰富自己的知识理论,做到理论和实际结合。
我所做的学习式交通信号倒计时系统主要在实验室完成,参考有关的书籍和资料,个人完成电路的设计、检查、调试,再根据自己的硬件用C语言编写的显示程序,然后进行调试,最终达到准确无误的倒计时显示。
在这过程中需要选择适当的元件,合理的电路图,基本的故障排除和纠正能力,会使用基本的仪器对硬件进行调试,会熟练的运用C语言编写程序,会用相关的软件对自己的程序进行翻译,要耐心的反复检查、修改和调试,直到达到预期目的。
学习式交通信号倒计时系统采用顺序工作方式,实现时间的倒计时,硬件部分主要分两大块,由AT89C51和多个按键组成的控制模块,包括时钟电路、控制信号电路,时钟采用6MHZ晶振和30pF的电容来组成内部时钟方式,控制信号用手动开关来控制,P1口来控制,P2、P3口产生信号并通过共阳极数码管来显示,软件采用C语言来编写,子程序实现数据的倒计时控制并加以显示。
2.3 控制系统原理2.3.1红绿灯显示过程交通灯最基本的性能是颜色灯的显示,由于该系统在路口的各个方向上都设有时间倒计时,但为了给予人们充分缓冲的时间,在本系统中设置有黄灯显示。
假设东西、南北两干道交于一个单车道的十字路口,各路口有三组红黄绿三色的指示灯,整个系统用到12盏红灯、12盏绿灯,共24盏,指挥车辆和行人安全通行。
交通法规定:红灯亮,车辆禁止通行;绿灯亮,车辆允许通行;黄灯亮提示人们注意红、绿灯的状态即将切换,且黄灯燃亮时间为A、B两干道的公共停车时间。
当南北方向车辆可直行时,南北方向的人行道上可以通行;同理,当东西方向车辆可直行时,东西方向的人行道上可以通行。
另外还有左拐和右拐两种行驶方向,由于它们的设置和前面提到的设计方案基本相同,在此不再一一设置,只设计其中的两种情况,另外两种方向只需略加改变得到。
本课题假设A 道比B道的车流量大(A代表南北方向;B代表东西方向),以下分别是车道十字路口交通行驶情况和红绿指示灯燃亮的方案,都遵循上北下南,左西右东的规则。
图a 图b图1 红绿指示灯周期燃亮的方案图a东西方向车辆直走,同时东西方向上人行道可通行。
图b南北方向车辆直走,同时南北方向上人行道可通行。
表一周期燃亮方案表表一表明:⑴为黄灯时A、B两道同时为黄灯;以提示行人或车辆下一个灯色即将到来时间5秒。
⑵A到为红灯,A 道车辆禁止通行,A 道行人可通过;B 道为绿灯,B道车辆通过,行人禁止通行。
时间为20秒。
⑶A道绿灯,A 道车辆通行;B 道为红灯,B 道车辆禁止通过,行人通行。
时间为30秒。
A道车流大通行时间长⑷样如上表的时间和红、绿、黄出现的顺序依次出现这样行人和车辆就能安全畅通的通行。
⑸表可根据车流量动态设定3.电路设计3.1电路原理图2 电路原理图5 25 35 2……A道黄灯亮红灯亮黄灯亮绿灯亮黄灯亮红灯亮……B道黄灯亮绿灯亮黄灯亮红灯亮黄灯亮绿灯亮……3.2单片机电路AT89C51芯片是本系统设计的核心部件,外加部分晶振电路组成单片机最小系统来实现交通信号倒计时的控制,单片机从P2口接收控制信号,再通过P0或P1口输出各种控制信号用以控制数码管和二极管的正常作并为其提供所需的电压。
工图3 单片机最小系统3.3显示电路倒计时的显示主要用数码管来显示。
将数码管与单片机的P1口连接来显示。
当定时器定时为1秒,时程序跳转到时间显示及信号灯显示子程序,它将依次显示信号灯时间,同时一直显示信号灯的颜色,这时在返回定时子程序定时一秒,在显示黄灯的下一个时间,这样依次把所有的灯色的时间显示完后在重新给时间计数器赋初图4 显示电路值,重新进入循环。
3.4控制电路控制电路由13个开关按键来实现控制,按键与AT89C51芯片的P2口相连,按下按键,通过P2口输入到单片机芯片中,从而通过P1口输出,用数码管来显示设置状态。
例如,模拟违章、图5 按键控制高峰控制,数码管显示时间的重新设计等等。
……………………………………………………………精品资料推荐…………………………………………………3.5电源与取电电路由于数码管和二极管工作电压为220V,而单片机的工作电压只需要5V,因此,在原理图中一个实现二者的相互转换。
在本系统中,采用4.软件设计部分图6 取电电路4.1程序组成本系统主要由三大部分组成,即主函数,中断函数和键盘扫描函数组成,其中,中断函数用于实现数码管的倒计时显示以及交通灯亮的顺序控制;键盘扫描函数用于扫描是否有按键按下,从而转到相应的中断程序予以实现。
4.2计数器硬件延时4.2.1计数器初值计算定时器工作时必须给计数器送计数器初值,这个值是送到TH和TL中的。
他是以加法记数的,并能从全1到全0时自动产生溢出中断请求。
因此,我们可以把计数器记满为零所需的计数值设定为C和计数初值设定为TC可得到如下计算通式:TC=M-C式中,M为计数器模值,该值和计数器工作方式有关。
在方式0时M为213;在方式1时M的值为216;在方式2和3为284.2.2计算公式T=(M-TC)T计数或TC=M-T/T计数T计数是单片机时钟周期TCLK的12倍;TC为定时初值如单片机的主脉冲频率为TCLK12MHZ,经过12分频方式0TMAX=213*1微秒=8.192毫秒方式1TMAX=216*1微秒=65.536毫秒显然1秒钟已经超过了计数器的最大定时间,所以我们只有采用定时器和软件相结合的办法才能解决这个问题。
4.2.3 1秒的方法我们采用在主程序中设定一个初值为20的软件计数器和使T0定时50毫秒。
这样每当T0到50毫秒时CPU就响应它的溢出中断请求,进入他的中断服务子程序。
在中断服务子程序中,CPU先使软件计数器减1,然后判断它是否为零。
为零表示1秒已到可以返回到输出时间显示程序。
4.3软件延时AT89C51的工作频率为2-12MHZ,我们选用的89C51单片机的工作频率为6MHZ。
机器周期与主频有关,机器周期是主频的12倍,所以一个机器周期的时间为12*(1/6M)=2us。
我们可以知道具体每条指令的周期数,这样我们就可以通过指令的执行条数来确定1秒的时间。
由于软件延时方法简单灵活,本系统采用此种延时。
具体的延时程序分析:TR0 = 0;// 设置Timer0停止计数EA = 0;//关中断TH0 = 0xec;// 设置Timer0的高八位TR0 = 1; // 设置Timer0停止计数EA = 1; //开中断4.4 系统流程图4.4.1主程序流程图在主函数中对计数器进行初始化,设置数码管的初始状态为南北通行、东西禁止;调用键盘扫描函数来检测是否有按键按下,从而转入相应的中断处理函数执行相应的程序段;执行完毕,再转入主函数的下一条语句接着执行,从而形成一个死循环来控制单片机持续工作。
图 7 主函数流程图4.4.1 键盘扫描程序流程图键盘扫描函数用于扫描按键是否按下, 当有按键按下,延时一段时间转入中断处理 函数进行相应的处理;在本系统的设计中有 13个按键,所以,在下面的流程图中没有全 部体现出来,只列出了其中的一个状态的执 行过程,其他12个状态的执行过程与列出 的状态的执行过程相似,因此,在此不再一 一列出。