车辆闯红灯监控系统设计目的当今世界,随着科学技术的发展,人民生活水平不断提高,城市现代化程度不断提高,交通需求和交通量迅速增长,城市交通网络中交通拥挤日益严重,道路运输所带来的交通拥堵、交通事故和环境污染等负面效应也日益突出,逐步成为经济和社会发展中的全球性共同问题。交通问题已经日益成为世界性的难题,城市交通事故、交通阻塞和交通污染问题愈加突出。为了解决车和路的矛盾,常用的有两种方法:一是控制需求,最直接的办法就是限制车辆的增加;二是增加供给,也就是修路。但是这两个办法都有其局限性。交通是社会发展和人民生活水平提高的基本条件,经济的发展必然带来出行的增加,而且在我国汽车工业正处在起步阶段的时期,因此限制车辆的增加不是解决问题的好方法。而采取增加供给,即大量修筑道路基础设施的方法,在资源、环境矛盾越来越突出的今天,面对越来越拥挤的交通,有限的源和财力以及环境的压力,也将受到限制。这就需要依靠除限制需求和提供道路设施之外的其他方法来满足日益增长的交通需求。交通系统正是解决这一矛盾的途径之一。这样,就出现了哲宁化的车辆闯红灯监控系统。设计要求智能化车辆闯红灯监控系统是将先进的信息技术、数据通讯传输技术、电子传感技术、电子控制技术及计算机处理技术等有效的集成运用于整个地面交通管理系统而建立的一种在大范围内、全方位发挥作用的实时、准确、高效的综合交通运输管理系统。对城市交通流进行智能控制,可以使道路畅通,提高交通效率。合理进行交通控制可以对交通流进行有效的引导和调度,使交通保持在一个平稳的运行状态,从而避免或缓和交通拥挤状况,大大提高交通运输的运行效率,还可以减少交通事故,增加交通安全,降低污染程度,节省能源消耗,本文就是通过对交叉路口交通信号的智能控制,达到优化路口交通流的目的。设计方法本课程设计是关于十字路口交通灯的控制电路根据设定好的周期时间能够指挥车辆在十字路口完成左转和直行交替运行。在相同的时间里提高通车的质量、效率。并能在高峰期根据实际状况结合方程式控制按钮来调整主次干道的通车时间,降低交通拥挤堵塞现象。并使交通控制系统具有紧急控制,使救护车、救护车通过时,使两个方向均亮红灯,救护车和消防车通过后,恢复原来状态,增加对出现特殊情况的处理能力。本次设计的总体思路是:东西方向通行时间是20s,南北方向通行时间是35s,黄灯亮的时间是5s。刚开始时东西方向同行,经过20s后黄灯亮,延时5s,接着南北方向通行,通行时间是35s。如此循环反复,使十字路口的交通秩序井然有序的进行。本系统采用了一片89C51单片机,一片8路同相三态双向总线收发器74LS245芯片,一片respack8排阻,两个Led数码管,红黄绿发光二极管各四个,七个按钮开关,一个蜂鸣器,以及其他元器件和若干导线。通过按钮开关可以控制数码管的复位、清零以及数字的增大、减小等功能,还可以在紧急情况时使东西南北四个方向同时亮红灯,以便能够对紧急情况及时的进行处理。设计方案及原理设计方案设计交通灯的方案有很多,有应用CPLD实现交通信号灯控制器的设计,有应用PLC实现对交通灯控制系统的设计,有应用单片机实现对交通信号灯设计的方法。由于AT89C51单片机自带有2个计数器,5个中断源,能满足系统的设计要求。用单片机设计不但设计简单,而且成本低。用其设计的交通灯也满足了要求,所以本课程设计采用单片机设计车辆闯红灯监控系统。设计一个十字路口交通灯控制电路,根据设定好的周期时间能够指挥车辆在十字路口完成左转和直行交替运行。在相同的时间里提高通车的质量、效率。并能在高峰期根据实际状况结合方程式控制按钮来调整主次干道的通车时间,降低交通拥挤堵塞现象。并使交通控制系统具有紧急控制,使救护车、救护车通过时,使两个方向均亮红灯,救护车和消防车通过后,恢复原来状态,增加对出现特殊情况的处理能力。设计原理采用单片机的P2.1、P2.2、P2.3、P2.4、P2.5、P2.6口直接和交通灯连接,P0口以及P1.O、P1.1口通过respack排阻与LED数码管相连。控制程序放在89C51单片机中,在十字路口的四组红、黄、绿交通灯中,由单片机的P2.1、P2.2、P2.3、P2.4、P2.5、P2.6口控制,由于交通灯为发光二极管且阳极通过限流电阻和电源正极连接,因此I/O口输出低电平时,与之相连的相应指示灯会亮,并通过LED数码管显示时间倒计时。I/O输出高电平时,相应指示灯会灭。紧急车请求通过的信号由人工控制,以中断方式输入单片机。无紧急车通过时,P3.1口通过电阻和电源正极连接为高电平,不产生中断,单片机执行主程序,有紧急车通过时,P3.1口采用人工方法接地为低电平,产生中断请求,单片机执行中断服务程序,让紧急车通过,紧急车通过后,P3.1口变为高电平,返回主程序。系统组成框图如下:电源电路复位电路AT89C51单片机晶振电路两位七段数码管显示东西南北方向通道时间东西方向LED显示电路按键电路驱动电路驱动拦路南北方向LED显示电路图1.车辆闯红灯控制系统总体组成框图硬件设计系统的硬件电路图如下图2所示:该电路原理图是在设计思路和方案的基础上,根据设计要求,在能够满足所要实现的功能的基础上,在Proteus环境下进行模拟和仿真出来的。该图用单片机的P2口和十二个发光二极管链接,通过对P2口高低电平的控制来完成对数码管发光与否的控制。P0口与LED数码管相连,并通过respack排阻驱动使数码管可以按照要求来显示计时时间。P2口与数码管相连时还使用了上拉电阻,其作用是给数码管提供一个高电平而使其能够发光。七个按键开关均接地,其目的是给相应的各个接口提供低电平。XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51R110kR210kR310kR410kR1010kR1110kD1LED-REDD2LED-REDD3LED-REDD4LED-REDD5LED-YELLOWD6LED-YELLOWD7LED-YELLOWD8LED-YELLOWD9LED-GREEND10LED-GREEND11LED-GREEND12LED-GREEN234567891RP1RESPACK-8A02B018A13B117A24B216A35B315A46B414A57B513A68B612A79B711CE19AB/BA1U274LS245LS1SOUNDERR51kQ1MPSL51图2.系统的硬件电路图软件设计系统的程序流程图如下图3所示:开始初始化设定初值红灯倒计时倒计时完毕绿灯倒计时黄灯闪烁5s黄灯闪烁5s结束倒计时完毕YNYNYN图3.系统的程序流程图程序清单如下:#includereg51.h#defineucharunsignedchar#defineuintunsignedintuchardatabuf[4];//缓冲区uchardatasec_dx=20;//东西数默认uchardatasec_nb=30;//南北默认值uchardataset_timedx=20;uchardataset_timenb=30;intn;uchardatab;//定时器中断次数sbitk1=P1^6;//定义5组开关sbitk2=P1^7;sbitk3=P2^7;sbitk4=P3^0;sbitk5=P3^1;sbitYellow_nb=P2^5;//南北黄灯标志sbitYellow_dx=P2^2;//东西黄灯标志sbitGreen_nb=P2^4;sbitGreen_dx=P2^1;sbitBuzz=P3^7;//蜂鸣器bitBuzzer_Indicate;bittime=0;//灯状态循环标志bitset=1;//调时方向切换键标志ucharcodetable[11]={//共阴极字型码0x3f,//--00x06,//--10x5b,//--20x4f,//--30x66,//--40x6d,//--50x7d,//--60x07,//--70x7f,//--80x6f,//--90x00//--NULL};//函数的声明部分voiddelay(intms);//延时子程序voidkey();//按键扫描子程序voidkey_to1();//键处理子程序voidkey_to2();voidkey_to3();voiddisplay();//显示子程序voidlogo();//开机LOGOvoidBuzzer();//蜂鸣器子程序//主程序voidmain(){TMOD=0X01;//定时器0,工作方式1TH0=0XD8;TL0=0XF0;EA=1;//开中断ET0=1;//内部定时器T0开中断TR0=1;EX0=1;//外部中断0开中断EX1=1;//外部中断1开中断logo();//开机P2=0Xc3;//开始默认状态,东西绿灯,南北黄灯sec_nb=sec_dx+5;while(1){key();//调用按键扫描程序display();//调用显示程序Buzzer();}}//函数的定义部分voidkey()//按键扫描子程序{if(k1!=1){delay(10);if(k1!=1){while(k1!=1){key_to1();for(n=0;n40;n++){display();}}}}if(k2!=1){delay(10);if(k2!=1){while(k2!=1){key_to2();for(n=0;n40;n++){display();}}}}if(k3!=1){TR0=1;//启动定时器Buzzer_Indicate=0;sec_nb=set_timenb;//从中断回复,仍显示设置过的数值sec_dx=set_timedx;if(time==0){P2=0X99;sec_nb=sec_dx+5;}else{P2=0xC3;sec_dx=sec_nb+5;}}if(k4!=1){delay(5);if(k4!=1){while(k4!=1);set=!set;}}if(k5!=1){delay(5);if(k5!=1){while(k5!=1)key_to3();}}}voiddisplay()//显示子程序{buf[1]=sec_dx/10;//第1位东西秒十位buf[2]=sec_dx%10;//第2位东西秒个位buf[3]=sec_nb/10;//第3位南北秒十位buf[0]=sec_nb%10;//第4位南北秒个位P1=0xff;//初始灯为灭的P0=0x00;P1=0xfe;//片选LCD1P0=table[buf[1]];delay(1);P1=0xff;P0=0x00;P1=0xfd;//片选LCD2P0=table[buf[2]];delay(1);P1=0xff;P0=0x00;P1=0Xfb;//片选LCD3P0=table[buf[3]];delay(1);P1=0xff;P0=0x00;P1=0Xf7;P0=table[buf[0]];//片选LCD4delay(1);}voidtime0(void)interrupt1using1//定时中断子程序{b++;if(b==19)//定时器中断次数{b=0;sec_dx--;sec_nb--;if(sec_nb=5&&time==0)//东西黄灯闪{Green_dx=0;Yellow_dx=!Yellow_dx;}if(se