智能交通灯设计-毕业设计_第1页
智能交通灯设计-毕业设计_第2页
智能交通灯设计-毕业设计_第3页
智能交通灯设计-毕业设计_第4页
智能交通灯设计-毕业设计_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

1、本科生毕业论文(设计)系(院) 专 业 电子信息工程 论文题目 智能交通灯 学生姓名 指导教师 (姓名及职称)班 级 学 号 完成日期:年月智能交通灯设计xx物理与电子工程学院 电子信息工程 【摘 要】在现代社会中,交通灯是交通系统中的重要组成部分,而很多的交通灯都存在一定的缺陷,灯亮的时间很多是固定的,降低了交通运作的效率。本论文以中、小城市为研究对象,结合单片机应用技术和交通工程基础,对智能交通灯系统进行了研究。本文章采用STC89C51单片机的交通灯控制系统,该系统采集在一定时间内经过的车流量,根据车流量的大小而改变红绿灯的时间。该系统抗干扰能力强、成本低、智能控制等特点。【关键词】交通

2、灯 车流量 倒计时 智能控制 目录1. 绪论21.1. 交通灯的发展21.2. 课题研究的背景21.3. 课题研究的主要内容21.4. 课题研究方案11.4.1. 系统总体方案21.5. 课题研究的意义32. 单元电路设计32.1. 单片机概述32.2. 74HC573芯片简介42.3. 光电开关概述42.4. 报警电路设计52.5.流程图62.6.系统设计73调试与系统仿真83.1.系统仿真83.2.调试12总结与思考14参考文献15附录I 系统原理图17附录II 元器件安装与焊接181 元器件的安装182元器件的焊接18附录III 程序设计181.程序设计18附录IIII 元件清单331.

3、 绪论1.1. 交通灯的发展1858年,英国出现了在早的交通信号灯,通过燃煤的红、蓝的信号灯。1868年,英国出现了煤气信号灯,红色表示停止,绿色表示注意。1914年,美国出现了用电控制的红绿黄等。1918年,出现了带控制的红绿灯。通过压力传感。信号灯是交通史上的一项伟大的发明,对道路的管理有着重要的意义。1.2. 课题研究的背景在我们的生活中有很多的交通灯,传统的交通灯主要有一下三方面的缺陷:(1)车辆放行时间相同,车辆多的一方容易出现车辆堆积。(2)当某方向无车时,恰好是该方向上的车辆通行时间。(3)当一方向车流量很大时,不能自动延长绿灯时间,降低了通行的效率。因此,本系统利用红外光电开关

4、检测车流量,根据车流量的大小而控制红绿灯的时间,采用STC89C51单片机进行智能控制。本系统易操控、抗干扰能力强、适用于大多数路口,因此具有很高的价值。1.3. 课题研究的主要内容(1)交通灯的原理。(2)交通灯的硬件设计。(3)车流量检测系统。(4)程序设计。1.4. 课题研究方案1.4.1. 系统总体方案红绿灯显示模块数码管显示模块车流量检测信号STC89C51单片机电源模块图1 系统总体结构框图1.5. 课题研究的意义在当今飞速发展的时代,交通工具对我们有很大的帮助,各种工具的增加,交通堵塞成为一个严重的问题,对于交通的管理成为重要的一部分,交通管理直接影响到交通的效率,本设计根据车流

5、浪的大小智能控制红绿灯的时间,极大的提高了交通效率,减少堵塞,避免堵塞交通事故。2. 单元电路设计2.1. 单片机概述STC89C51最高工作频率80MHZ,工作在5V电源下,片内含可反复擦除1000次的只读程序存储器,2个16位定时器/计数器,32个I/O口,具有上电自动复位和按键手动复位功能,适应环境能力强,可工作在-75到+85,STC89C51可直接编程,不需要编程器。图2 STC89C51实物图2.2. 74HC573芯片简介74HC573八路锁存器,属于高新能的COMS器件,在与单片机连接时不需要新的驱动,直接可以使用,74HC573的输出与输入一样,对单片机输出的数据有很好的寄存

6、与输出功能,同时具有一定的保持功能,当输入消失时,输出任然保持一定时间。74HC573特点:输入输出口分布在芯片的两侧,为电路提供简便的接口。 为单片机和负载提供传输口。 2.3. 光电开关概述光电开关广泛应用于各个产业中,光电开关对我们的生活有很大的帮助,不管是军事科技,还是生活电器都大量的使用这些传感器,光电开关对测速、计数、检测物体的存在、检测物体的大小都有着实际的运用。通过与其他传感器的对比,光电开关工作原理简单、成本低、实用价值高、抗干扰能力强,因此广泛应用在自动与半自动的产业中。光电开关通过发射一个脉冲信号,在一定的范围内,如果有物体经过,那么,光信号就会被反射回来,光电开关再将光

7、信号转换为电信号,将电信号送到单片机,经过一定的程序处理,对信号计数,在一定的时间内,单片通过程序处理,根据车流量的多少而改变红绿灯的时间,从而实现智能调节时间。 图3 红外开关2.4.报警电路设计将蜂鸣器接在P2.2口,蜂鸣器一段接电源,另一端接输入。蜂鸣器是由电磁线圈和振动膜组成,电流进过电磁线圈产生磁场使得振动膜片发出声音,单片机I/O口的电流很小,所以需要电路放大电流,加入一个三极管对电流放大,蜂鸣器才能正常工作。 本设计中蜂鸣器有着报警功能,当某一方向上是红灯时,这时如果有车经过,那么本系统就会提出警示,当时绿灯时,报警停止,报警对交通有着重要的作用,时刻提醒人们注意交通安全,对降低

8、交通事故很很大的帮助。图4 报警电路开始初始化赋车流量25车流量大于30吗车流量大于20小于30吗车流量小于20吗执行状态1 红绿灯计时50秒执行状态2 红绿灯计时40秒数码显示执行状态3 红绿灯计时30秒noyesno2.5. 流程图图5 流程图2.6.系统设计图6 系统总电路系统说明:接通电源后,首先南北方向绿灯,东西方向红灯,倒计时30秒,当倒计时25秒时,南北方向黄灯,倒计时5秒,5秒后,南北方向红灯,东西方向绿灯。本系统具有更具车流量智能调节红绿灯的时间,红外光电开关对车道上经过的车辆计数,每当一辆车经过是,红外光电开关便接收一个信号,将这个信号送T1口,T1口对信号计数,经过一分钟

9、,T1口将计数送入系统,根据相应的程序调节红绿灯显示的时间。本系统中分三个层次,当计数小于15的时候,进行30秒倒计时,当计数在15到25之间时,进行40秒倒计时,当计数大于25时,进行50秒倒计时。当某一方向红灯时,如果有车辆经过,这时系统将给出警报,蜂鸣器进行报警。同时,智能交通灯有7个按键,在单片机左边第9引脚的是复位引脚,当按下S1时,全部亮红灯,此时是紧急模式,全路禁行,以处理紧急情况;当按下S2时,全部亮绿灯,以备需时之用;当按下S3时,全部亮黄灯;当按下S4时,此时可以测试车流量的数据;当按下S5时,南北通行,而东西禁行;当按下S6时,东西通行,而南北禁行。3系统仿真与调试 3.

10、1.系统仿真图7 智能交通灯仿真图当接通电源时,南北方向通行,开始30秒倒计时,东西方向红灯,南北方向倒计时25秒后,亮黄灯,倒计时5秒后,南北方向红灯,东西方向绿灯。图8 接源显通电示当红外光电开关检测车流量小于20辆每分钟时,红路灯倒计时30秒;当红外光电开关检测车流量在20辆到30辆之间时,红路灯倒计时40秒;当红外光电开关检测车流量大于30辆每分钟时,红路灯倒计时50秒。图9 50S倒计时当按下S1时,全部亮红灯,此时是紧急模式,全路禁行,以处理紧急情况。图10 按下S1全路禁行当按下S2时,全部亮绿灯,以备需时之用。图11 按下S2全路绿灯当按下S3时,全部亮黄灯。图12 按下S3全

11、路黄灯当按下S4时,此时可以测试车流量的数据。此时南北车道的车流量为27辆每分钟。图13 按下S4车流量统计当按下S5时,南北通行,而东西禁行。图14 按下S5南北通行当按下S6时,东西通行,而南北禁行。图15 按下S6东西通行3.2.调试首先在proteus绘制电路图,绘制好电路图,加载程序,红绿灯显示正常,数码管出现乱码。图16 电路调试 检查程序,重新加载,同样是乱码。图17 电路调试检查硬件,仔细观察电路焊接,没有发现明显的线路问题,用万用表测试,经过几番测试,发现单片机的P0.3口脱焊,P0口正是连接数码管,改正过后再测试,显示正常。图18 电路正常显示总结与思考经过几个月的努力,智

12、能交通灯基本完成了,在这次的实践操作中,我学到了很多书本少很难学到的知识,在焊接电路板的时候遇到很多困难,平时在书本上看到的一个非常简单的单片机在焊接的时候感觉很无力,对各个引脚的连接,感觉很繁杂,一不小心不是接反了,就是脱焊了,当然,经过几番拨弄,还是焊接完成。当然最头疼的还是在程序方面,在经过多次调试,多次修改,多次坚持下,勉强能正常显示了。这次的项目,对我自身的能力提升很大,一个产品是需要经过很大的过程才能完成,需要查阅很多的资料才能开始动手,对我是一个考验,更是一个学习的机会。这次的智能交通灯设计在我们的生活中有着广泛的应用前景,它成本低、稳定性高、安装简便、抗干扰能力强、特别是声光对

13、它的影响都很小,非常适用在交通路上。我相信,智能交通灯将很快运用在各个交通路口。参考文献 1 康光华.电子技术基础数字部分M.北京:高等教育出版社,2005:149-152,414-423.2 康光华.电子技术基础模拟部分M.北京:高等教育出版社,2005:54-90.3 燕庆明.电路分析教程M.北京:高等教育出版社,2003:62-86.4 武俊鹏,孟昭林等.数字电路与可编程技术实验教程M.哈尔滨:哈尔滨工程大学出版社,2007:348-352.5 潘永雄,沙河.电子线路CAD实用教程M.西安:西安电子科技大学出版社,2007:14-126.6 段大任,段里任.道路交通自动控制M.北京:人民

14、公安大学出版社,1999:31-42.7 任中民.交通灯数字控制系统的电路设计J.辽宁:辽宁省交通高等专科学校校报,2005,03:9-15.8 王鼎湘,李茂军.基于车流量的交通灯智能控制算法J.2015.6.9 诸一琦,程钦,吴丹程,侯军,朱静.基于车流量的智能交通控制系统设计J.常州大学学报.2013(4).10 脱建智.基于IAP15F2K61S2单片机的数码管动态显示器的研究与设计J.电子世界.2013(21).11 解荣康.智能交通系统:中国,CNUP.2011.08.10.12 脱建智.基于IAP15F2K61S2单片机的数码管动态显示器的研究与设计J.电子世界.2013(21).

15、13 谢晨娟,李震.智能交通控制系统J.科技信息.2014(12).14 付秀伟.大型路口智能交通灯设计J.河南科技.2013(17).15 何玲,吴恒玉,唐民丽.基于单片机的智能交通灯控制系统的研究与设计J.电子设计工程.2011(22).16 李盛春,孔令江,刘慕仁,郑容森.智能交通灯对交叉路口交通流的影响J. 物理学报. 2009(04) Intelligent traffic light designxxCollegeof Physics & Electronic Engineering Abstract in modern society, traffic lights are an

16、 important part of the traffic system, and a lot of traffic lights have some defects, the lights of a lot of time is fixed, reducing the efficiency of the traffic operation. This paper takes the middle and small city as the research object, combined with the single chip microcomputer application tec

17、hnology and traffic engineering foundation, the intelligent traffic light system has been studied. In this paper, the traffic lights control system using STC89C51 MCU, the system collected in a certain period of time through the traffic, according to the size of the traffic flow and change the time

18、of traffic lights. The system has the characteristics of strong anti-interference ability, low cost, intelligent control and so on.Key words traffic light Traffic detection The countdown Intelligent control附录I 系统原理图图19 系统总原理图附录II 元器件安装与焊接1元器件的安装 在电路板上安装元器件,对元器件的摆放有一定的规则,整个电路板应该整洁美观,元器件有立式、贴式等放置方法,对于

19、不同的元器件应选择不同的放置方法,单片机、数码管等原件应贴紧电路板,三极管可以立放置在电路板上,露出一定的引脚。对于电源、按键一般放置在电路板的边缘部分,整个元器件的安装应有一定的计划和分类,以方便各个引脚连接简便。2元器件的焊接焊接是电路板中重要的一部分,焊接的质量直接影响整个系统的性能,因此,必须有良好的焊接,在焊接时首先姿势放好,检查元器件是否紧贴与整齐,先焊接矮的元件,再焊接高的元件,对焊接的时间,焊量的多少都应做好控制,一般一个焊点的焊接时间在2秒左右,其次,在焊接完成时,应仔细检查线路是否正确,然后用万用表等工具检测每条线路是否连通,对不好的焊点重汗,确保整个系统的质量。附录III

20、 程序设计1.程序设计 #include#include#define uchar unsigned char#define uint unsigned intsbit smg3=P14; / 南北个位sbit smg4=P13; / 南北十位sbit smg1=P24; /东西个位sbit smg2=P23; /东西十位sbit N_green=P27; / 南北绿灯sbit N_red=P25; / 南北红灯sbit N_yellow=P26; / 南北黄灯 sbit W_green=P12; / 东西绿灯sbit W_red=P10; / 东西红灯sbit W_yellow=P11; /

21、 东西黄灯sbit key1=P32;/全部亮红灯sbit key2=P37;/南北红灯东西绿灯sbit key3=P36;/南北绿灯东西红灯sbit key4=P33;/全亮绿灯sbit key5=P34;/全部黄灯亮sbit key6=P35;/ 检查键sbit ceju1=P16; /东西测距sbit ceju2=P15; /南北测距sbit speaker=P22;int js=0;uchar jishu1=0;/东西计数uchar jishu2=0;/南北计数uchar timeb=31;/南北通行时间uchar timew=31;/东西通行时间uchar flag1=0;/为0是南

22、北通行为1是东西通行uchar djs;uchar flag=0;/按下按键为1退出后为0uchar biao1=0;/东西测距标志uchar biao2=0;/南北测距标志unsigned char code table1=0xfd,0x18,0x57,0x5e, 0x3a,0x6e,0x6f,0x58, 0x7f,0x7e; /南北方向共阴极数码管段值unsigned char code table2=0xf7,0x12,0x3d,0x3b, 0x5a,0x6b,0x6f,0x32, 0x7f,0x7b; /东西方向共阴极数码管段值void delayms(int x)char i;whi

23、le(x-) for(i=150;i0;i-); void Timer0_init() js=0; TMOD=0x01; /定义定时器0工作模式 TH0=0x4c;/赋初值高位 TL0=0x00;/赋初值低位 TR0=1;/启动定时器 ET0=1;/开中断 EA=1;/开全局中断void led_lv() N_green=0; / 南北绿灯 N_red=1; / 南北红灯 N_yellow=1; / 南北黄灯 W_green=0; / 东西绿灯 W_red=1; / 东西红灯 W_yellow=1; / 东西黄灯 P0=0x00; void led_init() N_green=1; / 南北

24、绿灯 N_red=1; / 南北红灯 N_yellow=1; / 南北黄灯 W_green=1; / 东西绿灯 W_red=1; / 东西红灯 W_yellow=1; / 东西黄灯 P0=0x00; jishu1=0; jishu2=0; biao1=0; biao2=0; speaker=1; void condition_init() jishu1=0; jishu2=0; biao1=0; biao2=0; flag1=0; speaker=1; djs=timeb; void timer0() interrupt 1 using 1 TF0=0; TH0=0x4c;TL0=0x00;

25、/重新赋高地位初值js+;if(js=22) js=0; djs-; /*/void main() Timer0_init(); /定时器0初始化 TMOD=0x21; /设置定时器1为工作方式2TH1=0xfd;TL1=0xfd;TR1=1;REN=1;SM0=0;SM1=1;EA=1;djs=timeb; while(1) if(flag1=0)/南北通行 if(!ceju1)speaker=0;else speaker=1; if(!ceju2) /南北测车流量 if(biao2=0) jishu2+;biao2=1; else biao2=0; if(djs=7) N_green=0;

26、 /定义北向绿灯端口 N_red=1; /定义北向红灯端口 N_yellow=1; /定义北向黄灯端口 W_green=1; /定义西向绿灯端口 W_red=0; /定义西向红灯端口 W_yellow=1; /定义西向黄灯端口 else N_green=1;/定义北向绿灯端口 N_red=1; /定义北向红灯端口 N_yellow=0; /定义北向黄灯端口 W_green=1; /定义西向绿灯端口 W_red=0; /定义西向红灯端口 W_yellow=1; /定义西向黄灯端口 P0=0X00; smg2=1; smg3=1; smg4=1; P0=table2(djs-1)%10; smg1

27、=0; delayms(3); P0=0X00; smg1=1; smg3=1; smg4=1; P0=table2(djs-1)/10; smg2=0; delayms(3); P0=0X00; smg1=1; smg2=1; smg4=1; P0=table1(djs-1)%10; smg3=0; delayms(3); P0=0X00; smg1=1; smg3=1; smg2=1; P0=table1(djs-1)/10; smg4=0; delayms(3); if(djs=0) if(jishu230) timeb=51; else if(jishu2=20) timeb=41;

28、else timeb=31; flag1=1; djs=timew; led_init(); if(flag1=1)/东西通行 if(!ceju2) speaker=0;else speaker=1; if(!ceju1) if(biao1=0) jishu1+;biao1=1; else biao1=0; if(djs=7) N_green=1; /定义北向绿灯端口 N_red=0; /定义北向红灯端口 N_yellow=1;/定义北向黄灯端口 W_green=0; /定义西向绿灯端口 W_red=1; /定义西向红灯端口 W_yellow=1; /定义西向黄灯端口 else N_green

29、=1; /定义北向绿灯端口 N_red=0; /定义北向红灯端口 N_yellow=1; /定义北向黄灯端口 W_green=1; /定义西向绿灯端口 W_red=1; /定义西向红灯端口 W_yellow=0; /定义西向黄灯端口 P0=0X00; smg2=1; smg3=1; smg4=1; P0=table2(djs-1)%10; smg1=0; delayms(3); P0=0X00; smg1=1; smg3=1; smg4=1; P0=table2(djs-1)/10; smg2=0; delayms(3); P0=0X00; smg1=1; smg2=1; smg4=1; P0

30、=table1(djs-1)%10; smg3=0; delayms(3); P0=0X00; smg1=1; smg3=1; smg2=1; P0=table1(djs-1)/10; smg4=0; delayms(3); if(djs=0) if(jishu130) timew=51; else if(jishu1=20) timew=41; else timew=31; flag1=0; djs=timeb; led_init(); if(key1=0) /全亮红灯 delayms(3);/此处表示出去抖动, if(key1=0)/再次判断是否按下停止按键 led_init(); W_r

31、ed=0; N_red=0; do while(!key1); /表示确实按下按键,松开按键后 先下执行 delayms(5); while(!key1); flag=1; while(flag=1) if(key1=0) delayms(3); if(key1=0) do while(!key1); /表示确实按下按键,松开按键后 先下执行 delayms(5); while(!key1); flag=0; led_init(); condition_init(); if(key2=0) /南北红东西绿 delayms(3); /此处表示出去抖动, if(key2=0) /再次判断是否按下停

32、止按键 led_init(); W_green=0; N_red=0; do while(!key2); /表示确实按下按键,松开按键后 先下执行 delayms(5); while(!key2); flag=1; while(flag=1) if(key2=0) delayms(3); if(key2=0) do while(!key2); /表示确实按下按键,松开按键后 先下执行 delayms(5); while(!key2); flag=0; led_init(); condition_init(); if(key3=0) /南北绿东西红 delayms(3); /此处表示出去抖动,

33、if(key3=0) /再次判断是否按下停止按键 led_init(); N_green=0; W_red=0; do while(!key3); /表示确实按下按键,松开按键后 先下执行 delayms(5); while(!key3); flag=1; while(flag=1) if(key3=0) delayms(3); if(key3=0) do while(!key3); /表示确实按下按键,松开按键后 先下执行 delayms(5); while(!key3); flag=0; led_init(); condition_init(); if(key4=0) /全亮绿灯 dela

34、yms(3); /此处表示出去抖动, if(key4=0) /再次判断是否按下停止按键 led_init(); led_lv(); do while(!key4); /表示确实按下按键,松开按键后 先下执行 delayms(5); while(!key4); flag=1; while(flag=1) if(key4=0) delayms(3); if(key4=0) do while(!key4); /表示确实按下按键,松开按键后 先下执行 delayms(5); while(!key4); flag=0; led_init(); condition_init(); if(key5=0) /全亮绿灯 delayms(3); /此处表示出去抖动,

温馨提示

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

评论

0/150

提交评论