您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 基于单片机的交通信号灯模拟控制系统
本毕业论文由单片机系统、LED显示、交通灯演示系统组成。系统包括基本的交通灯的功能,还具有倒计时、时间设置、紧急情况处理、分时段调整信号灯的点亮时间以及根据具体情况手动控制等功能。关键词:倒计时89C51芯片MCU-basedsimulationsystemfortrafficlights(MajorofAppliedElectronicTechnology,InformationandEngineeringCollegeBiaoZhang)Abstract:Thissystemconsistsofsingle-chipmicrocomputersystem,LEDdisplay,trafficlightpresentationsystem.Systemincludesthebasicfunctionsoftrafficlights,alsohasacountdown,thetimesetting,emergencyhandling,attimestoadjustthelightsignalinaccordancewiththespecificcircumstancesoftimeandmanualcontrolfunctions.Keywords:countdown89C51引言随着我国国民经济的迅速发展,城市街道车辆大幅度增长,给城市交通带来巨大压力,交通拥堵已经成为影响城市可持续发展的一个全局性问题。而街道各十字路口,又是车辆通行的瓶颈所在。已有的许多建立在精确模型基础上的交通系统控制方案都存在着一定的局限性。研究车辆通行规律,找出提高十字路口车辆通行效率的有效方法,对缓解交通阻塞,提高畅通率具有十分现实的意义。地面道路是一个庞大的网络,交通状况十分复杂,使目前交通灯控制器的单一时段控制已不能满足现代交通流量的多变性,特别是在交通流量高峰时,往往会造成交通路口的通过率下降,甚至出现交通混乱现象,城市的交通拥挤问题正逐渐引起人们的注意。道路平面交叉口(简称交叉口)是交通网中通行能力的“隘口”和交通事故的“多发源”,国内外城市的交通事故约有一半发生在交叉口。因此,交叉口这个事故多发源不能不引起人们的高度关注。随着交通技术、电子技术的发展及微机技术的应用,人们设计出了适应各种需要的交通检测器、信号控制机和交通信号灯。1方案的论证及确定题目要求系统紧急情况处理,我们讨论了两种方案。方案一:采用8255扩展I/O口及键盘,显示等。该方案的优点是:使用灵活可编程,并且有RAM,及计数器。若用该方案,可提供较多I/O口,但操作起来稍显复杂。方案二:采用89C51来控制键盘及数码管显示。该芯片有较宽的工作电压(2.7V-6V),128*8B内置RAM,4KB可在线重复编程的闪烁存储器。完全可以满足系统需求,由于不需要外部EPROM芯片,可以简化电路设计。由于该系统对于交通灯及LED的控制,只用单片机本身的I/O口就可实现,且本身的计数器及RAM已经够用,故选择方案二。2电路的设计及原理的分析2.1系统总框图及工作原理设计思路:设一个字路口,1,3为南北方向,2,4为东西方向。一开始1,3路口红绿灯亮通车,2,4路口红灯亮,同时LED开始倒计时。一段时间后,1,3路口绿灯灭,黄灯开始闪烁,然后等LED倒计时完毕1,3路口红灯亮,同时2,4路口绿灯亮通车,LED重新倒计时开始。一段时间后2,4路口绿灯灭,黄灯开始闪烁,等LED倒计时完毕2,4路口红灯亮,同时1,3路口绿灯亮通车。接下去重复上述过程。LED倒计时的手动控制:设计根据车流量的大小,设置了6个倒计时时间。分别是15s,30s,45s,60s,75s,90s。系统正常工作时,按一下按键2,LED闪烁,这时便可以通过按键1调节倒计时时间。按照按的次数不同循环显示。选定时间后按按键2系统开始正常工作。警车情况:警车情况由按键1来模拟。当系统正常工作时,按下按键1,黄灯闪烁,然后四路灯全部红灯。再按下按键1系统开始重新工作;按键3为复位键。2.2硬件电路的设计由于整个系统由AT89C51芯片控制。简单模拟一个十字路口的交通灯的工作情况。四路共12盏交通灯(4红,4黄,4绿)采用发光二极管模拟。倒计时功能用两个共阳LED数码管来实现。按键1用来模拟警车通过时的情况。按键2用来确定是否根据不同的车流量调节LED数码管倒计时的时间。所以本系统主要的驱动电路有两部分,分别是数码管的驱动电路和红绿灯驱动电路。2.2.1数码管显示驱动电路数码管显示驱动电路采用“三极管驱动的并行LED数码管动态扫描显示”(图2)。三极管用于位选起到开关的作用,P1口作为段选。当三极管基极高电平时,三极管截止,数码管不工作。基极低电平时,三极管导通,数码管公共端为高电平,数码管工作同时点亮。然后通过程序的设置使用按键1和按键2来改变数码管上显示的数字。2.2.2红绿灯显示驱动电路2.2.3系统整体电路图本设计主要是由LED数码管驱动电路,红绿灯驱动电路,AT89C51微控制器三部分组成。系统的整体电路如图4:3硬件主要器件的介绍主芯片:AT89C51单片机由中央处理器(CPU),内部数据存储器(内RAM),内部程序存储器(内部ROM),2个16位的定时器/计数器,4个8位的I/O口(PO、Pl、PZ、P3),1个全双工的可编程串行口,时钟电路,中断系统,8部分组成。结构图如图5:发光二极管:本设计使用的是普通单色发光二极管,它具有体积小、工作电压低、工作电流小、发光均匀稳定、响应速度快、寿命长等优点,可用各种直流、交流、脉冲等电源驱动点亮。由于它属于电流控制型半导体器件,使用时需串接合适的限流电阻。4系统的实际应用本系统只是对一个十字路口交通灯工作情况的简单模拟,如果要应用到实际中去,还要改进。首先是灯的改进,如果要应用到实际中去的话,灯就得用大功率高亮度的LED。其次是倒计时LED数码管也要改为大型的LED数码管。这样一来原本的驱动电路就要改进。此外在倒计时时间的调整和警车通过等特殊情况的功能上要改进为自动检测和控制功能。这样才能达到实际应用的目的。4.1实际应用的驱动电路由于实际交通信号灯的功率都在10W~20W,因此要使用高功率驱动电路。下面是驱动芯片AMC7150的实际应用电路图(图6):AMC7150最多可以驱动8个LED可以调节频率AMC7150则内建PWM(脉冲宽度调变)与功率晶体管,只需五颗外部零件。该组件输入工作电压在4V~40V间,最高驱动电流达1.5安培,可以驱动24W的高功率LED。工作频率可由外部电容控制而达200KHz,只要调整外部电阻值即可达到变更输出电流的目的。4.2动态车辆检测实际应用中根据车流量大小来调整倒计时时间的长短是全自动的,这就需要一个能对过往车辆检测的电路系统,以随时确定车流量的大小,以便对倒计时时间的调整,使交通秩序达到最好状态。为此,系统将加入一个动态车辆检测电路(图7)。其工作情况是埋设在各车道安全线前方路面下的环形线圈传感器与振荡器匹配,形成一定频率的周期信号。该信号经施密特整形电路转化为脉宽信号后可作为计数脉冲。当有车辆通过该环形线圈时,线圈磁场发生变化,从而导致计数脉冲数量的变化。将100ms时间内没有车通过时的频率计数作为基准计数Base,实际计数为Num。当NumBase0时,就可判定有车辆通过。4.3警车声的自动识别由于警车声的频率是特定的,因此只要将收集的频率和警车频率比较,如果相同,则可以判定有警车开过路口,此时交通灯就可以作出相应的反映。如果不同则判定无警车通过。为了提高判定的精确度,可以取警车的三个不同频率来做判定。程序流程图6系统调试本毕业论文调试分键盘模块、信号灯模块、倒计时模块。各个独立模块功能调试成功后,将这些模块程序通过主程序合并在一起,最后再对合并后的总程序进行调试。各软件模块首先要通过PC和仿真器进行软件调试,当仿真效果符合要求后,再烧写进单片机看能否在实际电路板上正常工作。编程语言的软件设计采用MCS-51汇编语言编写,所使用的调试软件包括伟福KeiluVision2和MedWin2.39,所使用的仿真器有INSIGHT公司的ME-52A仿真器。数码管问题:虽然本次设计的最终方案是采用共阳极的七段数码管实现显示功能,最初数码管显示不正常,出现闪烁现象。通过调试发现这是由于延时时间选择不当造成的和一些电源的电压可能不够的原因够成的。由于数码管是采用动态显示方式,为了使人眼产生视觉暂留效果,每一次显示时都必须加入适当的时间。通过上述的改变,以基本实现正常。发光二极管的问题:在设计调试的时候由于一接电源,数个二极管始终不亮,最后用万用表测试了下,才知道原来因为电流过大,二极管被击穿了!于是我在二极管和芯片之间连上了限流电阻,结果表明上述问题基本解决,但还是有个别的二极管还是存在少许问题,我个人认为是二极管本身的材质引起的,而不是软件问题。结论与谢辞系统采用51系列单片机AT89C51为中心器件来设计交通灯控制器,实现了能根据实际车流量通过按键的P3口设置红、绿灯燃亮时间的功能;显示时间直接通过P1口输出;交通灯信号通过平常PC口输出;系统设计简便、实用性强、操作简单、程序设计简便。系统不足之处不能控制车的左、右转、以及自动根据车流改变红绿灯时间等。这是由于本身地理位置以及车流量情况所定,如果有需要可以设计扩充原系统来实现。由于个人的能力有限有些地方还有不足,但此毕业设计锻炼了个人的能力和处理事情的能力,对以前所学的一些软件个程序的编写也有了很大的认识。通过这次毕业设计,使我得到了一次用专业知识、专业技能分析和解决问题全面系统的锻炼。使我在单片机的基本原理、单片机应用系统开发过程,以及在常用编程设计思路技巧(特别是汇编语言)的掌握方面都能向前迈了一大步,为日后成为合格的应用型人才打下良好的基础。在本文即将结束之际,我要由衷地感谢在我毕业设计阶段,乃至3年大学学习生活中帮助过我的师长与同学。在毕业设计完成的过程中得到了许多老师和单位领导的帮助,学院的老师们严谨治学的教学使我受益非浅。本论文的选题、研究内容、研究方法及论文的形成是在范灵芝老师支持、鼓励和悉心指导下完成的,她是我获得深思熟虑的意见和概念清晰的见解的来源,她不惜花费自己时间对本论文提出许多意见和建议,既激发了我的灵感,又给了我持久不断的鼓励。在论文完成的过程中倾注了导师大量的心血,在论文完成之际,特向我尊敬的老师表示衷心的感谢。18962559869组装及调试划分出相互独立的电路模块,便于分别安装调试。每安装好一个模块,就上电测试一下。(1)硬件调试:硬件调试是利用DVCC实验与开发系统、基本测试仪器(万用表、示波器等),检查用户系统硬件中存在的故障。其中硬件调试可分为静态调试与动态调试两步进行。静态调试是在用户系统未工作时的一种硬件检测。第一步:目测。检查外部的各种元件或者是电路是否有断点。第二步用万用表测试。先用万用表复核目测中有疑问的连接点,再检测各种电源线与地线之间是否有短路现象。第三步加电检测。给板加电,检测所有插座或是器件的电源端是否符合要求的值第四步是联机检查。因为只有用单片机开发系统才能完成对用户系统的调试。动态调试是在用户系统工作的情况下发现和排除用户系统硬件中存在的器件内部故障、器件连接逻辑错误等的一种硬件检查。动态调试的一般方法是由近及远、由分到合。由分到合是指首先按逻辑功能将用户系统硬件电路分为若干块,当调试电路时,与该元件无关的器件全部从用户系统中去掉,这样可以将故障范围限定在某个局部的电路上。当各块电路无故障后,将各电路逐块加入系统中,在对各块电路功能及各电路间可能存在的相互联系进行调试。由分到合的调试既告完成。由近及远是将信号流经的各器件按照距离单片机的逻辑距离进行由近及远的分层,然后分层调试。调试时,仍采用去掉无关元件的方法,逐层调试下去,就会定位故障元件了。(2)软件调试:软件调试是通过对程序的汇编、连接、执行来发现程序中存在的语法错误与逻辑错误并加以排除纠正的过程。用软件WAVE6000进行调试。设计总结这次课程设计碰到了不少
本文标题:基于单片机的交通信号灯模拟控制系统
链接地址:https://www.777doc.com/doc-2573886 .html