智能交通灯控制系统设计_第1页
智能交通灯控制系统设计_第2页
智能交通灯控制系统设计_第3页
智能交通灯控制系统设计_第4页
智能交通灯控制系统设计_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2目录基于51的交通灯设计.2第一章系统简介.1引言.1第二章理论分析与计算.2第三章程序设计思路与流程图.63.2按键子程序流程图.73.3电源提供方案.73.5输入方案.8第四章软件设计.84.1软件总体流程图.84.2软件主要程序流程.94.2.2根据硬件实际情况编写数码管断码.104.2.3主函数部分.104.2.4数码管驱动子函数.134.2.5定时器初始化函数.144.2.6定时器中断子函数.144.2.7时间控制函数.14第五章系统调试与测试结果.155.1软件调试.155.2硬件调试.155.3软硬联调.155.3.1状态灯显示测试.155.3.2数码管的测试.165.3.3整体电路测试.165.3.4连接试验相关模块连线.16第六章参考文献.17第一章系统简介摘要:交通事业蓬勃发展,交通流量年年增长,大、中、小城市的汽车、摩托车等各种车辆与日俱增,道路交通繁忙,经常有严重堵车现象,特别是在交叉口,机动车、非机动车、行人来往非常混乱,为了在叉口的各条干道实现合理的科学分流。本人根据单片机具有物美价廉、功能强、使用方便灵活、可靠性高等特点,提出了一种用STC89c51单片机自动控制交通信号灯及时间显示的方法,同时给出了软硬件的实现方法,为交通指挥自动化提供了一种新的廉价手段,具有一定的推广意义。本文介绍了控制基本原理以及控制的表现,同时也介绍了城市交通信息系统的设计目标,开发途径及其系统结构与功能和数据地理编码、建库,同时,论述了系统中交通现状、交通管理、交通规划及背景信息查询模块的建造及应用。介绍了用于城市交叉路口的三色程控交通信号时间显示器的研制方案,对其电源供电、发光二极管构成的负载结构、灯色时间检测都给出了精巧合理的优化结构,大幅度地提高了产品可靠性并降低了制造成本。关键词:8051单片机;交通灯;自动控制;时间显示器;引言交通灯通常指由红、黄、绿三种颜色灯组成用来指挥交通的信号灯。绿灯亮时,准许车辆通行,黄灯亮时,已越过停止线的车辆可以继续通行;红灯亮时,禁止车辆通行。信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。1968年,联合国道路交通和道路标志信号协定对各种信号灯的含义作了规定。绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行横道的行人优先通行。红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。中国最早的马路红绿灯,是于1928年出现在上海的英租界。从最早的手牵皮带到20世纪50年代的电气控制,从采用计算机控制到现代化的电子定时监控,交通信号灯在科学化、自动化上不断地更新、发展和完善。交通指挥灯是非裔美国人加莱特摩根在1923年发明的。此前,铁路交通已经使用自动转换的灯光信号有一段时间了。但是由于火车是按固定的时刻表以单列方式运行的,而且火车要停下来不是很容易,因此铁路上使用的信号只有一种命令:通行。公路交通的红绿灯则不一样,它的职责在很大程度上是要告诉汽车司机把车辆停下来。开车的人谁也不愿意看到停车信号。美国夏威夷大学心理学家詹姆斯指出,人有一种将刹车和油门与自尊相互联系的倾向。他说:驾车者看到黄灯亮时,心里便暗暗作好加速的准备。如果此时红灯亮了,马上就会产生一种失望的感觉。他把交叉路口称作“心理动力区”。如果他的理论成立的话,这个区域在佛罗伊德心理学理论中应该是属于超我而非本能的范畴。新式的红绿灯能将闯红灯的人拍照下来。犯事的司机不久就会收到罚款单。有的红绿灯还具备监测车辆行驶速度的功能。最早的交通灯出现于一八六八年英国伦敦。那时的交通灯只有红、绿两色,经改良后,再增加一盏黄色的灯,红灯表示停止,黄灯表示准备,绿灯则表示通行。随着经济的发展,交通运输中出现了一些传统方法难以解决的问题。道路拥挤现象日趋严重,造成的经济损失越来越大,并一直保持大比例的增长。现在交通系统已不能满足经济发展的需求。由于生活水平的提高,人们对交通运输的安全性及服务水平提出了更高的要求。在交通中管理引入单片机交通灯控制代替交管人员在交叉路口服务,有助于提高交通运输的安全性、提高交通管理的服务质量。并在一定程度上尽可能的降低由道路拥挤造成的经济损失,同时也减小了工作人员的劳动强度。中国车辆数量不断增加,交通管制的工作量越来越大,利用计算机代替人进行高效交通管理是必然的发展趋势,而让计算机控制的交通灯拥有类似人类的感知智能,具有很强的现实意义,比如通过摄像机让交通灯控制系统获得视觉感知功能,就可以代替人类的眼睛,使系统根据所“看到”交通情况自适应改变管制策略,提高了交通管理的自动化水平,使得交通更高效、更顺畅。第二章理论分析与计算2.1交通灯显示时序的理论分析与计算对于一个交通路口来说,能在最短的时间内达到最大的车流量,就算是达到了最佳的性能,我们称在单位时间内多能达到的最大车流为车流量,用公式:车流量=车流/时间来表示。先设定一些标号如图1所示。图一说明:此图为直方图,上边为北路口灯,右边为东路口灯,下边为南路口灯,左边为西路口灯。图22所示为一种红绿灯规则的状态图,分别设定为S1、S2、S3、S4,交通灯以这四的状态为一个周期,循环执行(图2-1a)。图二请注意图21b和图21d,它们在一个时间段中四个方向都可以通车,这种状态能在一定的时间内达到较大的车流量,效率特别高。依据上述的车辆行驶的状态图,可以列出各个路口灯的逻辑表,由于相向的灯的状态图是一样的,所以只需写出相邻路口的灯的逻辑表;根据图23可以看出,相邻路口的灯它们的状态在相位上相差180。因此最终只需写出一组S1、S2、S3、S4的逻辑状态表。如表2所示。表1表2表中的“”代表是红灯亮(也代表逻辑上的0),“”是代表绿灯亮(也代表逻辑上的1),依上表,就可以向相应的端口送逻辑值。2交通灯显示时间的理论分析与计算东西和南北方向的放行时间的长短是依据路口的各个方向平时的车流量来设定,并且S1、S2、S3、S4各个状态保持的时间之有严格的对应关系,其公式如下所示。T-S1+T-S2=T-S3T-S2=T-S4T-S1=T-S3我们可以依据上述的标准来改变车辆的放行时间。按照一般的规则,一个十字路口可分为主干道和次干道,主干道的放行时间大于次干道的放行时间,我们设定值时也应以此为参考。三、电路图及设计文件1灯控制电路设计由于32个LED来实现红绿灯状态,若直接接在单片机的口线,路口倒计时的显示就不能实现,所以本次设计中采用一种新型的电路如图3所示。图3图中74LS04的作用是倒相和驱动,它输出的电流大约48mA,实际测试发现足以满足要求,而且发光管也能达到足够的亮度。观察图可以看出:两组发光管(一组红、一组绿)由于反相器的作用,其逻辑状态恰恰相反。图中和电阻串联的二极管的作用是为了分压,防止因上下两组发光管分压不同导致逻辑的错误。共四组和上述相同的电路分别代表东西南北四个方向的红绿灯,使用两片74LS04作为驱动。2倒计时显示电路设计前面已经分析过相向的灯的状态和倒计时都是相同的,所以为了节省,采用两组四个数码管作为倒计时的显示;同时为了节省口资源,采用串口显示的方式驱动数码管。见图4所示。图4第三章程序设计思路与流程图3.1主程序流程图主程序中主要是一个死循环,不停的循环四个状态,如图5所示。图53.2按键子程序流程图它包含倒计时调整和紧急状态两个状态。主程序中放了一个按键的判断指令,当有按键按下的时候,程序就自动的跳转到按键子程序处理。当检测到K2键按下的时候就自动返回到主程序。当出现紧急的情况的时候,按下K3或者K4就切换到紧急状态,当紧急事件处理完毕的时候,按下K2,就可以返回正常状态。3.3电源提供方案为使模块稳定工作,须有可靠电源。我们考虑了两种电源方案方案一:采用独立的稳压电源。此方案的优点是稳定可靠,且有各种成熟电路可供选用;缺点是各模块都采用独立电源,会使系统复杂,且可能影响电路电平。方案二:采用单片机控制模块提供电源。改方案的优点是系统简明扼要,节约成本;缺点是输出功率不高。综上所述,我们选择第二种方案。3.4显示界面方案该系统要求完成倒计时、状态灯等功能。基于上述原因,我们考虑了三种方案:方案一:完全采用数码管显示。这种方案只显示有限的符号和数码字苻,无法胜任题目要求。方案二:完全采用点阵式LED显示。这种方案实现复杂,且须完成大量的软件工作;但功能强大,可方便的显示各种英文字符,汉字,图形等。方案三:采用数码管与点阵LED相结合的方法因为设计既要求倒计时数字输出,又要求有状态灯输出等,为方便观看并考虑到现实情况,用数码管与LED灯分别显示时间与提示信息。这种方案既满足系统功能要求,又减少了系统实现的复杂度。权衡利弊,第三种方案可互补一二方案的优缺,我们决定采用方案三以实现系统的显示功能。3.5输入方案题目要求系统能手动设灯亮时间、夜间模式处理,我们讨论了两种方案:方案一:采用8155扩展I/O口及键盘,显示等。该方案的优点是:使用灵活可编程,并且有RAM,及计数器。若用该方案,可提供较多I/O口,但操作起来稍显复杂。方案二:直接在IO口线上接上按键开关。因为设计时精简和优化了电路,所以剩余的口资源还比较多,我们使用两个按键,分别是K1、K2由于该系统对于交通灯及数码管的控制,只用单片机本身的I/O口就可实现,且本身的计数器及RAM已经够用,故选择方案二。第四章软件设计硬件平台结构一旦确定,大的功能框架即形成。软件在硬件平台上构筑,完成各部分硬件的控制和协调。系统功能是由软硬件共同实现的,由于软件的可伸缩性,最终实现的系统功能可强可弱,差别可能很大。因此,如那件事本系统的灵魂。软件采用C语言,不仅易于编程和调试,也可减少软件故障率和提高软件的可靠性。同时,对软件进行全面测试也是检验错误排除故障的重要手段。由于变成多涉及到数值运算,比较复杂,这里我们选择移植性好、结构清晰、能进行复杂运算的C语言来实现编程。4.1软件总体流程图软件总体设计及流程图见图6,主要完成各部分的软件控制和协调。本系统主程序模块主要完成的工作是对系统的初始化,包括发送显示数据,LED的初始值设定,等待外部中断,以及根据所需要的功能进行相应的操作。其流程图如图15所示。初始化取键值判断当前状态倒计时LED颜色工作模式图6系统流程图主程序比较简单,初始化完成后,调用按键子程序,取得键值,并根据当前系统状态调用相应的子程序。4.2软件主要程序流程/*实验名:动态显示数码管实验*使用的IO:*实验效果:数码管显示76543210。*注意:当位选用P1口的时候注意可能会有一位不亮,那么调整J21*4.2.1定义并初始化IO#include/-定义使用的IO口-/#defineGPIO_DIGP0#defineGPIO_PLACEP1#defineGPIO_TRAFFICP2sbitRED10=P20;/上人行道红灯开始sbitGREEN10=P21;/上人行道绿灯sbitRED11=P22;sbitYELLOW11=P23;sbitGREEN11=P24;sbitRED00=P30;/右人行道红灯sbitGREEN00=P31;/右人行道绿灯sbitRED01=P25;sbitYELLOW01=P26;sbitGREEN01=P27;4.2.2根据硬件实际情况编写数码管断码/-定义全局变量-/unsignedcharcodeDIG_PLACE8=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;/位选控制查表的方法控制unsignedcharcodeDIG_CODE17=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;/0、1、2、3、4、5、6、7、8、9、A、b、C、d、E、F的显示码unsignedcharDisplayData8;/用来存放要显示的8位数的值unsignedcharTime,Second;/用来存放定时时间4.2.3主函数部分/-声明全局函数-/voidDigDisplay();/动态显示函数voidTimer0Cofig(void);/*函数名:main*函数功能:主函数*输入:无*输出:无*/voidmain(void)Second=1;Timer0Cofig();while(1)if(Second=70)Second=1;/-宝田路通行,30秒-/if(Second31)DisplayData0=0x00;DisplayData1=0x00;DisplayData2=DIG_CODE(30-Second)%100/10;DisplayData3=DIG_CODE(30-Second)%10;DisplayData4=0x00;DisplayData5=0x00;DisplayData6=DisplayData2;DisplayData7=DisplayData3;DigDisplay();/-宝田路通行-/GPIO_TRAFFIC=0xFF;/将所有的灯熄灭RED00=1;GREEN00=1;GREEN11=0;/宝田路绿灯亮GREEN10=0;/宝田路人行道绿灯亮RED01=0;/前进路红灯亮RED00=0;/前进路人行道红灯亮/-黄灯等待切换状态,5秒-/elseif(Second36)DisplayData0=0x00;DisplayData1=0x00;DisplayData2=DIG_CODE(35-Second)%100/10;DisplayData3=DIG_CODE(35-Second)%10;DisplayData4=0x00;DisplayData5=0x00;DisplayData6=DisplayData2;DisplayData7=DisplayData3;DigDisplay();/-黄灯阶段-/GPIO_TRAFFIC=0xFF;/将所有的灯熄灭RED00=1;GREEN00=1;YELLOW11=0;/宝田路黄灯亮RED10=0;/宝田路人行道红灯亮YELLOW01=0;/前进路红灯亮RED00=0;/前进路人行道红灯亮/-前进路通行-/elseif(Second66)DisplayData0=0x00;DisplayData1=0x00;DisplayData2=DIG_CODE(65-Second)%100/10;DisplayData3=DIG_CODE(65-Second)%10;DisplayData4=0x00;DisplayData5=0x00;DisplayData6=DisplayData2;DisplayData7=DisplayData3;DigDisplay();/-黄灯阶段-/GPIO_TRAFFIC=0xFF;/将所有的灯熄灭RED00=1;GREEN00=1;RED11=0;/宝田路红灯亮RED10=0;/宝田路人行道红灯亮GREEN01=0;/前进路绿灯亮GREEN00=0;/前进路人行道绿灯亮/-黄灯等待切换状态,5秒-/elseDisplayData0=0x00;DisplayData1=0x00;DisplayData2=DIG_CODE(70-Second)%100/10;DisplayData3=DIG_CODE(70-Second)%10;DisplayData4=0x00;DisplayData5=0x00;DisplayData6=DisplayData2;DisplayData7=DisplayData3;DigDisplay();/-黄灯阶段-/GPIO_TRAFFIC=0xFF;/将所有的灯熄灭RED00=1;GREEN00=1;YELLOW11=0;/宝田路黄灯亮RED10=0;/宝田路人行道红灯亮YELLOW01=0;/前进路红灯亮RED00=0;/前进路人行道红灯亮4.2.4数码管驱动子函数/*函数名:DigDisplay*函数功能:使用数码管显示*输入:无*输出:无*/voidDigDisplay()unsignedchari;unsignedintj;for(i=0;i8;i+)GPIO_PLACE=DIG_PLACEi;/发送位选GPIO_DIG=DisplayDatai;/发送段码j=10;/扫描间隔时间设定while(j-);GPIO_DIG=0x00;/消隐/*函数名:Timer0Cofig*函数功能:配置定时器*输入:无*输出:无*4.2.5定时器初始化函数voidTimer0Cofig(void)TMOD=0x01;/定时器0选择工作方式1TH0=0x3C;/设置初始值,定时50MSTL0=0xB0;EA=1;/打开总中断ET0=1;/打开定时器0中断TR0=1;/启动定时器04.2.6定时器中断子函数/*函数名:Timer0*函数功能:定时器0中断函数*输入:无*输出:无*/4.2.7时间控制函数voidTimer0()interrupt1TH0=0x3C;/设置初始值TL0=0xB0;Time+;if(Time=20)Second+;Time=0;第五章系统调试与测试结果因本设计本身要求稳定性高、免维护、抗干扰力强等功能,系统调试扯了验证数据处理的精度,确保判断的准确性外,同时必须确认各项的功能的正常运行。5.1软件调试打开Keil软件,新建工程;选择芯片;新建文档,把编写好代码编译并保存文件;把保存的工程文件下载到仿真软件中测试;编译程序;设置转换成16进制;运行程序的结果;5.2硬件调试城市交通灯控制系统的PCB电路板焊接,本设计采用三层板子:第一层板子主控制中心,包括复位电路、电源部分、串口下载部分及I/O接口。第二层板子添加外围电路所需的驱动电路及上拉电阻。第三层板子主要为数码显示管、显示方向的LED及调换模式的按钮。电路安装完成后,首先进行检查,即确定电路无虚焊、无短路、无断路,集成元器件是否安装正确,之后进行电路调

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论