毕业论文交通灯
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.引言
现代社会,红绿灯被安装在各个路口上,已经成为疏导行驶车辆最常见和最有效的方法和手段。
据调查显示,这一技术在19世纪就已出现了。
信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。
1968年,联合国《道路交通和道路标志信号协定》对各种信号灯的含义作了规定。
绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。
左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行横道的行人优先通行。
红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。
黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。
1.1交通信号灯应用现状
随着世界X围内城市化和机动化进程的加快,城市交通越来越成为一个全球化的问题。
自改革开放以来,我国的城市规模和经济建设都有了飞速的发展,城市化进程在逐步加快,城市人口在急剧增加,车辆也越来越多,大量流动人口涌进城市,人员出行和物资交流频繁,随之而来的交通事故也发生地更加频繁,使城市交通面临着严峻的局势。
当前,全国大中城市普遍存在着道路拥挤、车辆堵塞矛盾,使原来不太突出的交通问题被提上了日程。
信号灯的出现,虽然使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有了明显效果。
同时随着人民的生活水平日渐提高,越来越多的汽车进入寻常老百姓的家庭,再加上政府大力发展的公交、出租车,车辆越来越多了。
这不仅要求道路要越来越宽阔,而且要求有新的交通管理模式的出台。
旧有的交通控制系统的弊病和人们越来越高的要求激化了市交通系统的管理机制不适应,使得对交通灯控制要求也就越来越高,交通灯的设计有很多实现的方法。
从交通灯的重要性看来,交通灯工作一定要是稳定可靠的。
如今红绿交通信号灯作为交管部门管理交通的重要工具之一,如何提供一个高效率的交通控制系统有着明显的必要性。
目前设计交通灯的方案有很多,有应用CPLD设计实现交通信号灯控制器方法;有应用PLC实现对交通灯控制系统的设计;有应用单片机实现对交通信号灯设计的方法。
国内的交通灯一般设在十字路口,在醒目位置用红、绿、黄三种颜色的指示灯。
加上一个倒计时的显示计时器来控制行车。
本系统就是在现有的基础上外加一些辅助功能,从而使交通信号倒计时系统功能更加完善、使用更加灵活。
1.2本设计完成的工作
学习式交通信号倒计时系统主要在实验室完成,参考有关的书籍和资料,个人完成电路的设计、检查、调试,再根据自己的硬件用C语言编写的显示程序,然后进行调试,最终达到准确无误的倒计时显示。
在本系统中,采用顺序工作方式,实现时间的倒计时,硬件部分主要分两大块,由AT89C51和多个按键组成的控制模块,包括时钟电路、控制信号电路,时钟采用6MHZ晶振和30pF的电容来组成内部时钟方式,控制信号用手动开关来控制,P1口来控制,P2、P3口产生信号并通过共阳极数码管来显示,软件采用C语言来编写,子程序实现数据的倒计时控制并加以显示。
2.系统分析与方案论证
2.1设计要求
2.1.1设计基本要求
⑴用AT89C51单片机为主芯片控制交通信号灯的整个系统,P1口用以连接七段显示数码管,P1口用以连接LED灯。
⑵合实际情况,确定红绿交通灯的亮灭方案。
⑶用七段显示数码管动态显示各个方向上的剩余时间。
⑷成硬件电路分析及设计。
⑸据交通灯控制系统框图,画出电路图。
⑹件编制并通过测试。
2.1.2设计提高要求
⑴没有任何辅助芯片的情况下实现交通信号倒计时,这使设计成本大大降低。
⑵过按键实现各个模拟信号之间的转换、定时器的时间设计和方向选择功能。
⑶特定时间自动进行工作模式的转换。
2.2总体设计思想
本毕业设计注重于对单片机最小系统的理论的理解,明白交通信号倒计时系统的工作原理,以便以后单片机领域的开发和研制打下基础,提高自己的设计能力,培养创新能力,丰富自己的知识理论,做到理论和实际结合。
我所做的学习式交通信号倒计时系统主要在实验室完成,参考有关的书籍和资料,个人完成电路的设计、检查、调试,再根据自己的硬件用C语言编写的显示程序,然后进行调试,最终达到准确无误的倒计时显示。
在这过程中需要选择适当的元件,合理的电路图,基本的故障排除和纠正能力,会使用基本的仪器对硬件进行调试,会熟练的运用C语言编写程序,会用相关的软件对自己的程序进行翻译,要耐心的反复检查、修改和调试,直到达到预期目的。
学习式交通信号倒计时系统采用顺序工作方式,实现时间的倒计时,硬件部分主要分两大块,由AT89C51和多个按键组成的控制模块,包括时钟电路、控制信号电路,时钟采用6MHZ晶振和30pF的电容来组成内部时钟方式,控制信号用手动开关来控制,P1口来控制,P2、P3口产生信号并通过共阳极数码管来显示,软件采用C语言来编写,子程序实现数据的倒计时控制并加以显示。
2.3 控制系统原理
2.3.1红绿灯显示过程
交通灯最基本的性能是颜色灯的显示,由于该系统在路口的各个方向上都设有时间倒计时,但为了给予人们充分缓冲的时间,在本系统中设置有黄灯显示。
假设东西、南北两干道交于一个单车道的十字路口,各路口有三组红黄绿三色的指示灯,整个系统用到12盏红灯、12盏绿灯,共24盏,指挥车辆和行人安全通行。
交通法规定:红灯亮,车辆禁止通行;绿灯亮,车辆允许通行;黄灯亮提示人们注意红、绿灯的状态即将切换,且黄灯燃亮时间为A、B两干道的公共停车时间。
当南北方向车辆可直行时,南北方向的人行道上可以通行;同理,当东西方向车辆可直行时,东西方向的人行道上可以通行。
另外还有左拐和右拐两种行驶方向,由于它们的设置和前面提到的设计方案基本相同,在此不再一一设置,只设计其中的两种情况,另外两种方向只需略加改变得到。
本课题假设A 道比B道的车流量大(A代表南北方向;B代表东西方向),以下分别是车道十字路口交通行驶情况和红绿指示灯燃亮的方案,都遵循上北下南,左西右东的规则。
图a 图b
图1 红绿指示灯周期燃亮的方案
图a 东西方向车辆直走,同时东西方向上人行道可通行。
图b 南北方向车辆直走,同时南北方向上人行道可通行。
表一 周期燃亮方案表
表一表明:
⑴为黄灯时 A 、B 两道同时为黄
灯;以提示行人或车辆下一个灯色即将到来 时间 5秒。
⑵A 到为红灯,A 道车辆禁止通行,A 道行人可通过;B 道为绿灯,B 道车辆通过,行人禁止通行。
时间为20秒。
⑶ A 道绿灯,A 道车辆通行;B 道为红灯,B 道车辆禁止通过,行人通行。
时间为30秒。
A 道车流大 通行时间长
⑷样如上表的时间和红、绿、黄出现的顺序依次出现这样行人和车辆就能安全畅通的通行。
⑸表可根据车流量动态设定
3.电路设计
5 20
5 30
5 20
……
A 道
黄灯亮
红灯亮
黄灯亮
绿灯亮
黄灯亮
红灯亮
…
…
B 道
黄灯亮
绿灯亮
黄灯亮
红灯亮
黄灯亮
绿灯亮
…
…
3.1电路原理
图2 电路原理图
3.2单片机电路
AT89C51芯片是本系统设计的核心部件,
外加部分晶振电路组成单片机最小系统来
实现交通信号倒计时的控制,单片机从P2
口接收控制信号,再通过P0或P1口输出各
种控制信号用以控制数码管和二极管的正常作并为其
提供所需的电压。
工
图3 单片机最小系统
3.3显示电路
倒计时的显示主要用数码管来显示。
将数码管与单片机
的P1口连接来显示。
当定时器定时为1秒,时程序跳转
到时间显示及信号灯显示子程序,它将依次显示信号灯
时间,同时一直显示信号灯的颜色,这时在返回定时子
程序定时一秒,在显示黄灯的下一个时间,这样依次把
所有的灯色的时间显示完后在重新给时间计数器赋初图4 显示电路值,重新进入循环。
3.4控制电路
控制电路由13个开关按键来实现控制, 按键与AT89C51芯片的P2口相连,按下按键, 通过P2口输入到单片机芯片中,从而通过P1口
输出,用数码管来显示设置状态 。
例如,模拟违章、图5 按键控制 高峰控制,数码管显示时间的重新设计等等。
3.5 电源与取电电路
由于数码管和二极管工作电压为220V ,
而单片机的工作电压只需要5V ,因此, 在原理图中一个实现二者的相互转换。
在本系统中,采用
4.软件设计部分图6 取电电路
4.1程序组成
本系统主要由三大部分组成,即主函数,中断函数和键盘扫描函数组成,其中,中断函数用于实现数码管的倒计时显示以及交通灯亮的顺序控制;键盘扫描函数用于扫描是否有按键按下,从而转到相应的中断程序予以实现。
4.2计数器硬件延时 4.2.1 计数器初值计算
定时器工作时必须给计数器送计数器初值,这个值是送到TH 和TL 中的。
RS508
100μF
5.1K Ω(1/2W)
3.9K Ω
IN54081000μF
+24V
RS508
100μF
5.1K Ω(1/2W)
3.9K Ω
IN4007RS508
100μF
5.1K Ω(1/2W)
3.9K Ω
IN5408绿灯
黄灯
红灯
公共
V cc3
接黄灯
IN5408
他是以加法记数的,并能从全1到全0时自动产生溢出中断请求。
因此,我们可以把计数器记满为零所需的计数值设定为C和计数初值设定为TC可得到如下计算通式:
TC=M-C
式中,M为计数器模值,该值和计数器工作方式有关。
在方式0时M为213;在方式1时M的值为216;在方式2和3为28
4.2.2计算公式
T=(M-TC)T计数
或TC=M-T/T计数
T计数是单片机时钟周期TCLK的12倍;TC为定时初值
如单片机的主脉冲频率为TCLK12MHZ,经过12分频
方式0TMAX=213*1微秒=8.192毫秒
方式1TMAX=216*1微秒=65.536毫秒
显然1秒钟已经超过了计数器的最大定时间,所以我们只有采用定时器和软件相结合的办法才能解决这个问题。
4.2.3 1秒的方法
我们采用在主程序中设定一个初值为20的软件计数器和使T0定时50毫秒。
这样每当T0到50毫秒时CPU就响应它的溢出中断请求,进入他的中断服务子程序。
在中断服务子程序中,CPU先使软件计数器减1,然后判断它是否为零。
为零表示1秒已到可以返回到输出时间显示程序。
4.3软件延时
AT89C51的工作频率为2-12MHZ,我们选用的89C51单片机的工作频率为6MHZ。
机器周期与主频有关,机器周期是主频的12倍,所以一个机器周期的时间为12*(1/6M)=2us。
我们可以知道具体每条指令的周期数,这样我们就可以通过指令的执行条数来确定1秒的时间。
由于软件延时方法简单灵活,本系统采用此种延时。
具体的延时程序分析:
TR0 = 0;// 设置Timer0停止计数EA = 0;//关中断
TH0 = 0xec;// 设置Timer0的高八位
TL0 = 0x78;// 设置Timer0的低八位
TR0 = 1; // 设置Timer0停止计数
EA = 1; //开中断
4.4 系统流程图
4.4.1主程序流程图
在主函数中对计数器进行初始化,设置数码管的初始状态为南北通行、东西禁止;调用键盘扫
描函数来检测是否有按键按下,从而转入相应的
中断处理函数执行相应的程序段;执行完毕,再
转入主函数的下一条语句接着执行,从而形成一
个死循环来控制单片机持续工作。
图7 主函数流程图
4.4.1键盘扫描程序流程图
键盘扫描函数用于扫描按键是否按下,
当有按键按下,延时一段时间转入中断处理
函数进行相应的处理;在本系统的设计中有
13个按键,所以,在下面的流程图中没有全
部体现出来,只列出了其中的一个状态的执
行过程,其他12个状态的执行过程与列出
的状态的执行过程相似,因此,在此不再一
一列出。
8键盘扫描函数流程图4.4.3中断程序流程图
接收键盘扫描函数输入的状态,判断通行状态,若无键按下,则置状态标志flag为0;若有键按下,则置状态标志flag为1;接着判断是哪种模式,之后根据模式值来执行相应的操作;最后设定时间状态,然后结束。
4.5系统分块设计
⑴断函数初始化
对定时器进行中断初始化设:设置Timer0工作于模式1;设置定时器的初值为60535,即低8位(TL0)为0x77,高8位为(TH0)为0xec;设置定时器接受Timer0的中断;启动Timer0;设置图9中断函数流程图
系统接受中断;设置系统的初始工作状态为闲时模式。
系统工作每200次中断一次,即每1S中断一次(65335-60535)*200 =1000000 us。
显示LED灯的亮灭,七段显示数码管显示时间。
void timer0_init(void)//初始化
{ TMOD = 0x01;//设置模式1
TH0 = 0xec;//设置Timer0的高八位
TL0 = 0x78;//设置Timer0的低八位
TR0 = 1;// 开始Timer0计数
EA = 1;//开中断
ET0 = 1;//设置接受Timer0的中断
}
⑵中断函数
从P2口读入数据,从P0口输出数据。
将需要输入的数据送给各个临时变量,再将临时变量通过P1口输出,每执行一次先对临时变量清零。
void timer0_isr(void) interrupt 1
{TR0 = 0;//Timer0停止计数
EA = 0;//关中断
TH0 = 0xec;//设置Timer0的高八位
TL0 = 0x78;//设置Timer0的低八位
TR0 = 1;//Timer0开始计数
EA = 1;//开中断
if(time == 0 && nbrg == 1)
{time = nbt; //南北红绿灯时间
P0 = 0x0a;//南北绿闪转黄,东西红
nbrg = 0;//标示不显示南北红绿灯时间倒计时
nbyellow = 1;//标示显示南北黄灯时间倒计时
dxrg = 0;//标示不显示东西红绿灯时间倒计时
dxyellow = 0; //标示不显示东西黄灯时间倒计时
}
}
⑶键盘扫描函数
键盘扫描用以判断是否有按键按下,利用按键消抖可以有效地防止键抖。
主要先判断哪个键盘按下,按下延时一段时间再弹起置状态标志位为1;若按键已弹起且状态标志位为1,则可以判断有触发按键动作,可实现相应按键的功能。
由于键盘扫描函数是对13个按键的状态进行处理,因此本程序段只摘取了其中的一个状态进行解释说明。
if(peakORnorm == 0)
{
peakORnorm = 1;
delay(3000);
if(peakORnorm == 0)//高峰控制信号键按下
{peakORnorm_down = 1;
mode = 1; //模式1为高峰控制
}
}
5.系统调试
本系统调试成功。
由于本系统的实物设计需要设计4个电路板,实现复杂,因此本系统只是利用仿真软件进行了仿真,在仿真过程中,三个灯显示的顺序在时间上遇到了一些问题,通过反复调试,最终问题得以顺利解决。
另外,利用红外线自动检测车流量从而确定三个灯的显示时间才是最合理的,但红外线实现起来太复杂,所以本系统利用按键来实现,这在一定程度上实现了交通控制器的灵活控制,具有一定的应用价值。
⑴红绿灯显示模块
经过调试该模块可以使LED灯周期循环点亮,若某个方向上七段显示数码管在倒计时到0,则该方向上的LED灯变换到下一个显示状态。
其中,在红灯和绿灯的转换过程中,黄灯亮5秒,用以提醒人们,下一个状态即将到来,黄灯的设计大大降低了违章行驶行为,在预防车祸方面也发挥了重要作用。
另外,还可以根据各个路口车流量的大小,利用按键来调整红绿灯亮的时间,增加了系统的灵活性。
图7 红绿灯显示图
⑵按键模块
经过调试可以通过触发按键,实现对系统的控制。
本系统共设置11个按键,当按下模拟违章的开启按钮,喇叭会发出报警声,再按一次,则声音停止;当按下设定时间按钮,则可对三个灯点亮时间进行设置等等。
图8 按键控制图
结论
本系统就是充分利用了AT89C51单片机系列来设计交通灯控制器,实现了能根据实际车流量通过AT89C51芯片的P3口设置红、绿灯燃亮时间的功能;红绿灯循环点亮,倒计时剩3秒时绿灯闪烁三次之后黄灯亮,倒计时剩5秒时黄灯闪烁警示(交通灯信号通过P0口输出,显示时间直接通过89C51的P3口输入到数码管);车辆闯红灯报警;绿灯时间可检测车流量并可通过双位数码管显示。
系统不足之处不能控制行车的左、右转、以及自动根据车流改变红绿灯时间等。
这是由于本身地理位子以及车流量情况所定,如果有需要可以设计扩充原系统来实现。
通过这次毕业设计,使我得到了一次用专业知识、专业技能分析和解决问题全面系统的锻炼。
使我在单片机的基本原理、单片机应用系统开发过程,以及在常用编程设计思路技巧(特别是C语言)的掌握方面都能向前迈了一大步,为日后成为合格的应用型人才打下良好的基础。
致谢
为期一个学期的毕业设计终于接近尾声了,在整个毕业设计的过程当中,得到了老师们的精心指导和帮助,每当遇到问题时,老师们细致而又耐心的讲解,让我对自己更加自信,克服重重困难,最终顺利的完成了整个设计,在这短短的几个月里,不仅仅考察了大学五年自己所学要的东西,更重要的是把自己从课本里所了解的东西应用到实践应用中,检验了自己的能力。
虽然有过成功,有过失败,有过欢笑,有过泪水,但是过程其实才是最重要的。
通过本次毕业设计,我在陈付贵老师和白林峰指导老师的精心指导和严格要求下,获得了丰富的理论知识,并在设计过程中,翻阅大量的科技文献,针对设计内容的要求,对所学过的专业知识又认真细致的进行巩固和练习,在硬件和软件的组合上认真听取了老师们的意见,在很大程度上使这次设计顺利通过老师的审核和评定.在另一方面极大地提高了实践能力,并对当前电子领域的研究状况和发展方向有了一定的了解,单片机领域这对我今后进一步学习计算机方面的知识
有极大的帮助。
在此,我忠心感谢陈老师和白老师以及计科系各位老师的指导和支持。
在未来的工作和学习中,我将以更好的成绩来回报各位领导和老师,回报老师和母校的辛勤栽培,做一名优秀的大学毕业生,奉献社会。
参考文献
[1]吴振纲,陈虎.PLC 的人机接口与编程[J].微计算机信息,2005,8-1:21-23
[2]
[2]沙占友,孟志永,王彦朋.单片机及外围电路陆设计[M].:
电子工业,2006.
[3]周航慈.单片机程序设计基础[M].:航空航天大学出
版社,2003.
[4]胡汉才.单片机原理及其接口技术[M].:清华大学,2000:490-493.
[5] X文涛,赵文博.单片机语言C51程序设计技术[M].:人民邮电,2005:311-
322.
[6] 沈胜庆.嵌入式操作系统的内核研究[J].微计算机信息,2006, (2):72-74.
[7]王坤,杨文荣,冉峰,X涛,邓霜.一种新型电流运算放大器的设计[J].微计算机信
息,2006, (6):22- 11: 241- 242.
[8]X焕平. MSC-51单片机与RS-232C串行口连接[J]. XX
职业技术学院学报,14(4).2002:27-28
[9]贾转红,朱清林,敖发良. PC 机与多台单片机实时通信系统的
设计与实现[J]. 微计算机信息,2007,8-1:12-13
[10]晃阳. 单片机MCS-51 原理及应用开发教程[M]. : 清华大
学,2007
[11] 戴佳,戴卫星.51单片机C语言应用程序设计实例精讲[M].:电子工
业,2006,96-105.
[12]余锡存曹国华.单片机原理及接口技术[M].XX:XX电子科技大学,2000.7
[13]X毅刚,彭喜元,新编MCS-51单片机应用设计,第一版,XX工业大学,2003,25~
27,411~417
[14]何立民,单片机应用系统设计,:航天航空大学,2~5,46~50。