基于红外检测的智能交通信号灯系统设计任广禄_第1页
基于红外检测的智能交通信号灯系统设计任广禄_第2页
基于红外检测的智能交通信号灯系统设计任广禄_第3页
基于红外检测的智能交通信号灯系统设计任广禄_第4页
基于红外检测的智能交通信号灯系统设计任广禄_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

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

文档简介

基于红外检测的智能交通信号灯系统设计作者:任广禄摘要交通灯是现代交通非常重要的一个组成部分,一套好的交通灯系统往往对提升城市交通运输效率,降低事故发生率有至关重要的影响。本系统由单片机系统、双电源供电系统、交通灯演示系统、中断系统组成。选用单片机作为此次设计的控制系统主要是考虑到单片机的通用性和廉价性。通用性是指单片机的电路以及编辑语言相对比其他控制模块来说更加简单和通用,这个特点使得往后功能的添加以及系统的维护来说更加简便和易行。廉价性是单片机相对于其他的控制模块来说成本更低,一块成熟的STC89C52的成本不过10元,加上其他的外围电路成本也不超过100元,无论是开发成本和维护成本都能够得到很好的控制。本设计选用STC89C52主要也就是基于上述的两个原因。本交通灯系统选用了LED灯和双位数码管来模拟显示交通灯切换状态。双电源供电系统采用的是主电源和后备电源供电的方案。双电源供电方案主要是为了应对市电突然掉电或者出现故障的情况,对于持续的保持整体系统的正常工作具有重要意义,其原理主要是利用二极管的向单向导电性所带来的开关功能来实现双电源瞬时的切换。中断系统所实现的功能是在有特定需要的情况下实现对交通灯状态的控制。这些状态包括全红灯和高低峰即时切换。本系统除了实现最基本的交通灯功能以外,还可实现高低峰分时段控制方案以应对不同时段的不同交通状况,城市的交通早晚时段的流量往往能够达到最大,分时控制对于提高城市交通效率有非常重要的作用。关键词:单片机;STC89C52;交通灯;分时系统;双电源

ABSTRACTThetrafficlightisanessentialpartofmoderntransportation.Areliabletrafficlightsystemplaysakeyroleforimprovingurbantransportationefficiencyandloweringtrafficaccidentodds.ThesystemconsistsofSCM,duplicatepowersupplysystenl,trafficlightdemonstrationsystemandinterruptionsystem.Consideringtheuniversalproperty,itchoosessinglechipasthemaincontrolchip.Universalpropertymeansthatcircuitandprogramminglanguageareeasierandmorecommonwhichrelyonthesinglechipthanthatofothercontrolchip.Itissimplerandmoreconvenienttoaddmorefunctionsandmaintainthesystem.Inexpensivemeansthatthesinglechipcostslessthanothercontrolchip.ASTC89C52costslessthan10RMB.itcostslessthan100RMBevenpulsingperipheralcircuits.Inthiswayitcancontrolthedevelopingcostandmaintenancecost.So,thissystemchoosesSTC89C52ascontrolchip.Thissystemadoptsadualpowersupplysystem,justasthemainandback-uppowersupply.Dualpowersupplyschemeismainlyinresponsetoasuddenpower-downormainsfailuresituation.Itissignificantforholdingthesystemworkcontinually.Theprincipleistouseone-waydiodeswitchconductivefeaturetoachievedualpowerswitchinginstantaneously.Interruptsystemistoachievethefunctionofaspecificneedinthecaseofspecialneedsofthesystenl.Thesestatesincludealltheredandhighorlowpeakswitchimmediately.Thissystemnotonlyachievesthemostbasicfeaturesofatrafficlight,butalsoimplenlentshighandlowpeaktimesharingcontrolschemetodealwiththedifferentperiodsofdifferentcitiesintrafficconditions.Thetrafficflowachievesitsmaximuminthemorningandevening.Sotheshared-timeofcontrolhasaveryimportantroleforimprovingurbantransportefficiency.KeyWords:SingleChip;STC89C52;TrafficLight;Time-SharedSystem;Duplicatepower图3-14交通灯演示系统电路图主电源和备用电源的切换功能电路如图3-15所示。图3-15主电源和备用电源切换功能电路该切换电路的原理是根据二极管的单向导电性[14]。单向导电性是指二极管的PN结加正向电压时,电阻值很小,PN结导通;加反向电压时,电阻值很大,PN结截止。当主电源正常工作时,由于二极管处于截止状态[10],由主电源供电,当主电源突然断开时,二极管导通,由电池组供电。此处选用双二极管串联工作原因是:当选用一个时,假设二极管处于截止状态,此时二极管阴极电位为5V,阳极电位为6V,所以电压差为lV,此时二极管一定处于导通状态,所以假设不成立。当主电源工作时电池组也提供电源,这会造成两个不同电压的电源并联,造成干电池组给主电源充电。而当选用两个二极管串联时,假设二极管处于截止状态,此时电压差为0.5V,0.5V<0.7V二极管截止,假设成立。而当主电源断开时,能提供电压为6V减去2个二极管的压降为4.6V,此电压能保证单片机正常工作[15]。3.3.4中断系统中断系统主要是负责高低峰方案和紧急方案的切换。电路图如图3-16所示。图3-16中断系统3.3.5车流量检测系统车流量检测系统由红外对管电路组成电路如图3-17所示图3-17流量监测系统将红外线发射管红外线接收管分别置于道路两侧,调整位置,使得当道路无车辆通过时,红外线接收管能稳定接收到红外线发射管发出的红外线。当道路上没有车辆通过时,红外线接收管保持导通状态,输出高电平;当道路上有车辆通过时,车辆阻挡红外线接收管,红外线接收管截止,输出低电平。系统可以根据低电平的脉冲数来计数,并将每分钟收到的脉冲数通过数码管显示出来,即路口的车流量。4.1断电调试为安全起见,防止硬件烧坏,首先进行断电调试,用万用表检测系统是否有短路象,再检查原理是否正确,各个线路的电平是否正常。经检测,未出现短路现象以及各个电平都正常。4.2通电调试(a).关掉交流电源开关,用万用表直流电压档测量稳压输出电压,测量结果只有4.2V,用12V电源直接接入7805输入端,测量输出电压达到4.99V。经检查分析为稳压芯片7805输入端电容没有接入,输入电压变化太大,造成7805无法稳压。经处理问题解决。(b).检查系统时钟是否正常工作,用万用表直流电压档测量XTAL1一与AXTAL2两端间的电压,检测到电压若为2.5V左右,则视为正常工作。(c).检查复位电路是否正常工作。(d).检查数码管显示和LED灯是否正常。4.3基本要求部分的测试与分析(a).系统上电后,显示交通灯基本状态,按中断按键,中断正常,直接进入S5状态,按复位按键,整个系统复位成功。(b).按高低峰切换按键,系统即时切换到高峰时段方案,再按下高低峰切换按键,系统即时切换到低峰时段方案,最后按下高低峰按键,系统重新进入预定流程。(c).在未进行任何的中断和复位操作时,交通灯按照预定流程进行,在高低峰两个设定时段内变化。本文探究了单片机在当今智能交通方面的应用。相对于其他解决方案来说,单片机具有成本低廉,通用性高,维护简单,软件灵活,成熟度高等优势。但是,单片机发展到现在也有存储空问较小、下游方案较少等局限性。本设计在实现相应功能的时候主要是考虑到现有的条件,采用成熟度高的STC89C52作为CPU的解决方案,同时用LED灯和双位数码管作为显示模块,软件则使用了移植性好的C语言。从功能需求上来看,已经能够满足实际需要。供电方案也采用了现在热门的双电源供电,电路结构简单,可靠性高,从一定程度上解决了实际中可能出现的由于电源引发的问题。高低峰分时管理方案作为灵活的交通灯状态方案,对提高交通运输系统的运行效率也有很大的帮助。单片机作为已经发展了30年的成熟产品,很多优势正在逐渐失去,让位于更加先进的芯片解决方案。但是作为成熟方案还是在很多领域能够发挥作用。[1]李广弟.单片机基础.北京:北京航空航天大学出版社,1996.[2]刘同法.单片机外围接口电路与工程实践.北京:北京航空航天大学出版社,2009.[3]王福瑞.单片微机测控系统设计大全.北京:北京航空航天大学出版社,1997.[4]余永权.89系列FLASH单片机原理与应用.北京:电子工业出版社,2000.[5]何立民.单片机高级教程-应用与设计.北京:北京航空航天大学出版社,2000.[6]康华光,邹寿彬.电子技术基础(数字部分).北京:高等教育出版社,2005.[7]谭浩强,C程序设计(第三版).北京:清华大学出版社,2005.[8]张伟,王丽等电路设计与制作ProtelDXP入门与提高.北京:人民邮电出版社2003[9]蔡美琴.MCS-51单片机系统及其应用.北京:高等教育出版社,1992.[10]李华.单片机原理与接口技术.北京:清华大学出版社,1992.[11]石东海.单片机数据通信技术从入门到精通,陕西:西安电子科技大学出版社,2004.[12]彭东明,韦友春.单片机实验教程.北京:北京理工大学出版社,2009.[13]林伸茂.8051单片机研究基础篇[M].北京:人民邮电出版社,2006.[14]徐以荣,冷增祥.电力电子基础[M].南京:东南大学出版社,1999.[15]刘光潭.中外集成电路简明速察手册.北京:电子工业出版社,1991./******************************************************本交通灯实现的功能:1、正常时可以分时段车流高峰与低峰进行控制2、可以紧急控制,让某些车通过3、可以人为设置为车流高峰区状态******************************************************/#include<reg52.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedintuchart,b,s,s1,s2,s3,s4,yellowtime,yellowflag,half_sec,sec,a;uinttime;sbitdula=P2^7;sbitdula=P2^6;bitg;//中断标志位ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};voiddelay(uintz)//延时函数{uchaix,y;for(x=z;x>0;x--);for(y=110;y>O;y--);}voidinit()//初始化函数{Half_sec=0;s=1;sec=20;t=0;g=0;time=5;ye1lowtime=5;yellowflag=0;s1=15;s2=10;s3=10;s4=20;IT1=0;//设置外部中断1为低电平触发ITO=0;//设置外部中断O为低电平触发EXO=l;//允许外部中断0EXI=1;TMOD=Ox01;//设置定时器为十六位工作方式THO=(65536-50000)/256;TLO=(65536-50000)%256;//设置定时时间为50MSEA=1;//总中断使能ETO=l;//定时器0中断开TRO=l;//定时器0}voidmain(){Init();/****************状态S1绿灯亮********************/wh11e(l){if((S==l)&&(yellowflag==O)){Pl=Oxd7;//设置车道灯P3=Oxed;//设置人行道灯dula=1;//打开段锁存器P0=table[(sec-yellowtime)/10];//存入段码,显示绿灯十位dula=0;//锁住段码PO=0xff;//消影wela=l;//打开位锁存器PO=Oxfe;//存入位选,设置某位数码管显示wela=0;PO=0;//消影delay(3);dula=l;PO=table[(sec-yellowtime)%10];//显示绿灯的个位dula=0;PO=0xff;wela=l;PO=0xfd;wela=0;PO=0;Delay(3);dula=l;PO=table[Sec/10];//显示红灯的十位dula=0;PO=0xff;wela=1;PO=Oxef;Wela=0;PO=0;Delay(3);dula=1;PO=table[sec%10];//显示红灯的个位dula=0;PO=0xff;wela=1;PO=0xdf;wela=0;PO=0;delay(3);}/****************状态S1,黄灯亮********************/if((s==l)&&(yellowflag==l)){if(half_sec%2){Pl=0xb7;//车道黄灯关P3=0xfd;//人行道绿灯关}else{Pl=0xf7;//车道黄灯开P3=Oxed;//人行道绿灯开}//前面十行实现黄灯闪烁dula=l;PO=table[sec/10];dula=0;PO=0xff;wela=1;P0=0xee;wela=0PO=0;delay(3);dula=l;PO=table[sec%10];dula=0;PO=0xff;wela=1;PO=Oxdd;wela=0;PO=0;delay(3);}/****************状态S2,绿灯亮********************/if((S==2)&&(yellowflag==0){P1=0x7d;//设P3=Oxbe;dula=l;PO=table[(sec/10)];//显示绿灯的十位dula=0;PO=0xff;wela=1;PO=Oxfe;wela=0;PO=O;delay(3);dula=lPO=table[(sec%10)];//显示绿灯的个位dula=0;PO=0xff;wela=1;PO=oxfd;wela=0;PO=0;delay(3);dula=l;PO=table[(sec-yellowtime)/10];//显示红灯的十位dula=O;PO=0xff;wela=l;PO=Oxef;wela=0;PO=0;delay(3);dula=1;P0=table[(sec-yellowtime)%10];//显示红灯的个位dula=0;PO=0xff;wela=l;PO=0xdf;wela=0;PO=0;delay(3);}/****************状态52,黄灯亮********************/if((S==2)&&(ye1lowflag==l)){if(half_sec%2)P1=0x7b;P3=0xbf;}else{Pl=0x7f;//前面四行实现黄灯闪烁P3=0xbe;}dula=l;PO=table[sec/10];dula=0;PO=0xff;wela=l;PO=0xee;wela=0;PO=0;delay(3);dula=l;PO=table[sec%10];dula=0;PO=0xff;wela=l;PO=0xdd;wela=0;PO=0:delay(3)}/****************状态53,绿灯亮********************/if((s==3)&&(yellowflag==0)){Pl=0xe7;//设置灯P3=0xbd;dula=1;PO=table[(sec-yellowtime)/10];//显示绿灯的十位dula=O;PO=0xff;wela=l;PO=0xfe;wela=0;PO=0;delay(3);dula=l;PO=table[(sec-yellowtime)%10];//显示绿灯的个位dula=0;PO=0xff;wela=l;PO=0xfd;wela=0;PO=0;delay(3);dula=l;PO=table[sec/10];//显示红灯的十位dula=0:PO=0xff;wela=1PO=0xef;wela=0;PO=0;delay(3);dula=l;PO=table[sec%10〕;//显示红灯的个位dula=0;PO=0xff;wela=1;PO=0xdf;wela=0;PO=0;delay(3);}/****************状态53,黄灯亮********************/if((S==3)&&(yellowflag==l)){if(ha1f_sec%2)P1=0xb7;elsePl=0xf7;//前面四行实现黄灯闪烁dula=l;PO=table[sec/10];dula=0;PO=0xff;wela=1:PO=0xee;wela=0PO=0;delay(3);dula=l;PO=table[sec%10];dula=0;PO=0xff;wela=1;PO=0xdd;wela=O;PO=0;delay(3);}/****************状态S4,绿灯亮********************/if((S==4)&&(yellowflag==0)){Pl=0x7e;//设置灯dula=1;PO=table[(sec/10)]显示绿灯的十位dula=0;PO=0xff;wela=1;PO=0xfe;wela=O;PO=0;delay(3);dula=lPO=table[(sec%10)];//显示绿灯的个位:dula=0PO=0xff;wela=1;PO=0xfd;wela=0;PO=0;delay(3)dula=l;PO=table[(sec-yellowtime)/10];//显示红灯的十位dula=0;PO=0xff;wela=1;PO=0xef;wela=0;PO=0;delay(3);dula=1;PO=table[(sec-yellowtime)%10];//显示红灯的个位dula=0;PO=0xff;wela=1;P0=0xdf;wela=0;PO=0;delay(3);}/****************状态S4,黄灯亮********************/if((S==4)&&(yellowflag==1)){if(halfsec%2)P1=0x7b;e1sePl=0x7f;//前面四行实现黄灯闪烁dula=1;PO=table[sec/10];dula=0;PO=0xff;wela=1;PO=0xee;wela=0;PO=0;delay(3);dula=1;PO=table[sec%10];dula=0;PO=0xff;wela=1;PO=0xdd;wela=0;PO=0;delay(3);}}}voidTimeO()interruptl{THO=(65536-50000)/256;TLO=(65536-50000)%256;//设置定时时间为50MSt++;if(t==10)//0.5秒{half_sec++;t=0;}if(hal

温馨提示

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

评论

0/150

提交评论