基于单片机的智能交通灯控制系统毕业设计.docx
《基于单片机的智能交通灯控制系统毕业设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的智能交通灯控制系统毕业设计.docx(39页珍藏版)》请在冰豆网上搜索。
![基于单片机的智能交通灯控制系统毕业设计.docx](https://file1.bdocx.com/fileroot1/2022-11/25/58fc1d98-1042-46c1-b725-e8e5c84ea990/58fc1d98-1042-46c1-b725-e8e5c84ea9901.gif)
基于单片机的智能交通灯控制系统毕业设计
学号:
201110231062
上海海事大学
本科生毕业设计(论文)
基于单片机的智能交通灯控制系统设计
学院:
物流工程学院
专业:
电气工程及其自动化
班级:
电气112班
姓名:
王志刚
指导教师:
李妮娜
完成日期:
年月日
承诺书
本人郑重承诺:
所呈交的毕业论文“基于单片机的智能交通灯控制系统设计”是在导师的指导下,严格按照学校和学院的有关规定由本人独立完成。
文中所引用的观点和参考资料均已标注并加以注释。
论文研究过程中不存在抄袭他人研究成果和伪造相关数据等行为。
如若出现任何侵犯他人知识产权等问题,本人愿意承担相关法律责任。
矚慫润厲钐瘗睞枥庑赖。
承诺人(签名):
______________
日期:
年月日
摘要
由于交通路口不同时刻车流量的大小是不确定的,而交通灯系统采用的是固定时间的控制方法,所以经常会造成道路有效利用时间的浪费,出现空等、道路拥堵等现象,影响了道路的畅通,因此改善交通灯控制系统,使其适应目前的交通状况,成为当前交通事业的热点。
针对传统的交通灯存在不能根据车流量的大小自动调整红绿灯时长的缺陷以及单片机性能日趋强大和稳定的特点,提出以单片机为控制核心的智能交通控制系统的设计。
聞創沟燴鐺險爱氇谴净。
关键词:
智能控制,交通灯,单片机
Abstract
Duetothetrafficintersectionateverymomentthesizeofthetrafficflowisuncertain,andthesystemoftrafficlightisfixedtimecontrolmethod,sooftencausedtheroadtoeffectiveuseoftimewaste,null,roadcongestionandotherphenomenon,affectingthesmoothroad.Therefore,toimprovethetrafficlightscontrolsystem,whichcanadapttothecurrenttrafficconditions,hasbecomethefocusofthecurrenttransportation.Sincethetraditionaltrafficlighthasnotaccordingtothesizeofthetrafficflowtoadjustthetrafficlightswhenthelengthofdefectsandtheperformanceoftheonechipcomputerhasbecomemoreandmorepowerfulandstable,andputforwardtoMCUasthecontrolcoreoftheintelligenttrafficcontrolsystemdesign.残骛楼諍锩瀨濟溆塹籟。
Keywords:
Intelligentcontrol,Trafficlights,SCM
第一章、引言
交通在人们的日常生活中的地位是十分重要的,良好的交通会给人们的生活带来很大的方便。
智能交通灯控制系统的出现和使用与重修一条额外的公路相比起来不管是在经济上还是在道路使用效率上都能收到颇好的效益,它的出现更加节约资源,提高交通运行效率,使交通管理人员有更多的精力和时间投入到交通控制上,为城市的道路交通事业带来更多的效益的同时,也为城市交通形象的创造发挥不可替代的作用。
仓嫗盤紲嘱珑詁鍬齊驁。
1.1智能交通灯的研究背景和意义
随着我国经济的发展、城市化及城镇化的加剧,各种机动车迅速普及,这一系列现状给我国的道路交通带来了严峻的考验,面对这一系列的状况,传统的交通灯的出现及使用,为我国的道路交通的管理带来很大的好处,其对交通的疏导、道路疏通能力的提高、交通事故的减少的作用十分显著。
然而,尽管传统的交通灯已发挥了其它工具不可替代的作用,但是随着城市的不断扩大,其很多不尽人意的地方也随之明显,比如说:
(1)有的十字路口,两路的通行时间相同,当一路的车流量减少时,该路的通行时间不会改变,出现空等现象,而另一路就出现车辆累积现象;
(2)在某些地段的红绿灯的时长不能随时间的改变而改变。
根据以上问题,基于传统的交通灯的智能型交通灯开始被人们所提出,根据人们的需求,智能交通灯不仅能实现传统交通灯的功能,而且还附加着其他十分有意义的功能,比如说
(1)车流量检测功能;
(2)闯红灯报警功能;(3)根据交通车流量大小来改变交通灯的显示时长等等。
这一些列的特殊功能,改善了道路交通情况,提高了道路的利用率,也给人们带来了很大的便利。
绽萬璉轆娛閬蛏鬮绾瀧。
1.2国内外交通灯现状
目前Australia的scats系统与UK的transyt系统与scoots系统是世界上广泛使用的比较典型的城市道路交通灯控制系统。
另外,在道路交通灯的发展过程中,自适应理论一直是世界各种研究机构研究的热点,比如英国的scoots和澳大利亚的scats系统都有着自适应理论的影子。
最近几年,国外对信号灯控制系统的研究仍热衷于自适应理论方向,其中Rhodes交通灯控制系统就是由美国亚利桑那大学所研制。
骁顾燁鶚巯瀆蕪領鲡赙。
我国的交通事业的起步较西方国家来说是比较晚的,并且在前期的时候前进得比较缓慢。
自1949年新中国成立之后,伴着我国各个方面的基础的成熟以及社会前进步伐的需求才开始向健全的道路交通控制系统领域进军,然而当时我国主要仍是引用国外的系统。
随着我国交通事业的发展,我国的交管部门以技术引进和自主创新为方针,抛弃了在我国一些大中城市里旧有的交通灯控制模式,而是采用某些科技前沿的控制技术,即使在普及率和规模上与世界发达国家有着很大差距,但在某些领域上的技术水准已处在世界领先水平。
瑣钋濺暧惲锟缟馭篩凉。
1.3设计任务和要求
本毕业设计的题目为《基于单片机的智能交通灯控制系统的设计》,大体就是以单片机为控制核心另外再结合其他外部硬件设计出一套带有特殊功能的道路交通灯系统。
鎦诗涇艳损楼紲鯗餳類。
设计任务及目的:
通过本次毕业设计,熟悉和掌握单片机的C语言的编写,学习和了解一些单片机的知识,最后理论联系实践,提高自己的实践能力;另外,通过智能交通信号灯控制系统的设计,掌握单片机的定时/计数器的使用,会编写单片机的简单程序,充分发挥个人能力,最终设计出一套带有特殊功能的交通灯控制系统,并用实物模拟出来。
栉缏歐锄棗鈕种鵑瑶锬。
设计要求:
所完成的系统
(1)能完成传统的交通灯系统的一般工作,即红绿灯指示;
(2)倒计时由数码管显示;(3)按按键次数模拟道路通过的车辆数目;(4)根据车流量的大小适当改变交通灯的显示时长。
辔烨棟剛殓攬瑤丽阄应。
第二章方案总体设计
本设计采用STC89C52RC单片机为控制单元,完成交通灯对道路交通的智能控制。
采用这样一套系统来解决了车辆通行和等待时的红绿灯时长不合理、交通路面利用率低等问题。
该系统相对于传统的交通灯来说其使用可靠、结构简单、费用低,实时性好、安装维护方便,有较好的发展前景。
系统在设计的时候需要注意一些如下细节上的问题。
峴扬斕滾澗辐滠兴渙藺。
2.1时间显示方案的选择
方案一:
选择数码管显示,对于数码管来说其工作电流低,一般在10毫安便可以正常工作,它体积小不占用电路板太大位置,另外它的使用的寿命长、可靠性较高,最后它的响应时间非常的短,一般低于0.1微秒,在电压电流很低的状况下数码管的亮度也比较高。
詩叁撻訥烬忧毀厉鋨骜。
方案二:
选择液晶屏显示,其最大的好处就是功耗小,虽然节约能源,但由于它自己不能发光,而是通过反射外界的光来显示相应的图案或字形,所以在光线不足时它显示得不够明显。
则鯤愜韋瘓賈晖园栋泷。
根据上面的两种方案的比较,本设计中交通灯的时间的显示器件采用方案一的数码管。
2.2按键方案的选择
方案一:
采用矩阵键盘,使用矩阵按键可以为单片机节省很多的I/O口,此时,余下的I/O口可以连接其它的器件,但是编程比较复杂。
胀鏝彈奥秘孫戶孪钇賻。
方案二:
采用独立按键,独立按键在开发板上共有八个,每一个按键需要连接一个I/O口即可实现信号输入,而编程简单。
鳃躋峽祷紉诵帮废掃減。
通过上述两种方案的比较,结合自己的设计的情况,首先,由于本设计最多使用三个按键,即南北向车流量的模拟按键、东西向车流量的模拟按键、复位按键,其次,单片机在连接了其他的模块后,还会剩下很多的I/O口,所以不怕I/O口不够,所以本毕业设计选择了独立按键,这样编程也比较简单。
稟虛嬪赈维哜妝扩踴粜。
2.3输入方案
本课程设计中输入主要是车流量检测的模拟按键和复位的按键两种输入情况。
方案一:
采用8155扩展I/O口及键盘,显示等。
该方案的优点是:
使用灵活可编程,并且有RAM及计数器。
如果采用此方案,可增加很多的I/O口,但是实现起来较为复杂。
陽簍埡鲑罷規呜旧岿錟。
方案二:
由于本设计中的输入量不是很多,所以可以让单片机的I/O口直接和独立按键连接,这样不仅编程简洁,使用方便,而且成本也低。
缺点是功能单一。
沩氣嘮戇苌鑿鑿槠谔應。
结合本设计的实际,在按键输入时并无太复杂的要求,所以选择方案二作为输入方案。
2.4编程语言选择方案
方案一:
使用汇编语言,汇编语言是最接近机器码语言的一种,使用该语言时占用的RAM少、程序执行快。
而然对于不一样的处理器来说,其可读可运行的汇编语言可能会存在不同,因此可移植性较低。
钡嵐縣緱虜荣产涛團蔺。
方案二:
使用C语言,C语言结构化高,易读取,可移植性高,是目前使用最广泛的一种编程语言。
但是它会占用较多的RAM,而且比汇编语言的执行效率低。
懨俠劑鈍触乐鹇烬觶騮。
结合实际的情况,由于实现毕业设计的现象的程序不是太大,对程序的执行效率要求也不是很高,所以本毕业设计选择了容易编写和看懂的C语言。
謾饱兗争詣繚鮐癞别瀘。
2.5总体设计方案
首先需要清楚地知道交通信号灯实际转变时的情况和规律。
本文中取生活中最常见的十字路口的交通信号灯为研究对象。
如图1所示。
呙铉們欤谦鸪饺竞荡赚。
图1、十字路口图
如图1知十字路口由横向和纵向的两干道交叉构成,我们可以定义其为东西向和南北向,每条干道应分别设有1组三色的交通灯。
红灯亮表示禁止通行;绿灯亮表示允许通行;黄灯闪烁时表示红、绿灯之间即将转变,之前通行的方向变为等待禁行、禁行的方向变为等待通行。
本设计设定起始状态1是东西向禁行,南北向通行;状态2是东西向通行,南北向禁行。
具体的情况是,首先打开电源,系统进入起始状态1,此时,东西向红灯点亮,南北向绿灯点亮,东西向车道的车流量开始检测,经过一段时间后,东西向红灯点亮,南北向绿灯熄灭,南北向黄灯闪烁,东西向车道的车流量继续检测,再经过一段时间后,系统进入状态2,东西向绿灯点亮,南北向红灯点亮,南北向车道的车流量开始检测,经过若干时间后,东西向红灯熄灭,东西向黄灯闪烁,南北向红灯点亮,南北向车道的车流量继续检测,经过若干时间后,返回到起始状态1,如此循环。
上述状态一个周期的变换可以总结如下表1:
莹谐龌蕲賞组靄绉嚴减。
干道
状态
东西向
南北向
红黄绿
红黄绿
1
1a
100
001
1b
100
010
2
2a
001
100
2b
010
100
表1、交通灯状态(1周期)
在本设计中,本应设有东西南北共4组交通灯,一共一十二盏,然而由于同一向上的两组交通灯的显示状况是一样的,所以,只需要六盏灯来表示东西向、南北向的交通灯,因此可用单片机P1口中的6个端口通过编写相应的程序来控制六个交通灯的运作,实现生活中交通信号灯的模拟。
麸肃鹏镟轿騍镣缚縟糶。
第三章硬件设计
3.1单片机最小系统
所谓单片机最小系统是指使单片机能够实现简单运行的最少的原件的组合,是保证单片正常运作的电路,不可缺少。
单片机最小系统一般来说是由四个部分构成的,分别是单片机、程序存储器、时钟电路和复位电路。
对于51单片机,其内部已经有程序存储器了,因此制作51单片机的最小系统除了需要单片机本身外,只需再连接一个时钟电路和一个复位电路就可以了。
如图2所示。
納畴鳗吶鄖禎銣腻鰲锬。
图2、单片机最小系统
3.1.1STC89C52单片机特性参数
STC89C52RC单片机的程序存储空间有8千字节;具有512字节的数据存储空间;内带2K字节EEPROM存储空间;可直接使用串口下载;8K字节程序存储空间;256字节数据存储空间。
風撵鲔貓铁频钙蓟纠庙。
●增强型的51单片机,其机器周期可分为6时钟12时钟两种,选型时根据实际情况进行选择,另外其代码与传统51单片机全部兼容。
灭嗳骇諗鋅猎輛觏馊藹。
●工作电压:
5.5V~3.3V(5V单片机)/3.8V~2.0V(3V单片机)
●工作频率范围:
0~40MHz,实际工频可达48MHz;
●用户应用程序空间为8Kbit,片上的RAM有512bit;
●32个通用I/O口,复位后为:
P0/P1/P2/P3是准双向口/弱上拉。
其P0口当用作总线扩展时,不加上拉;当用作输入输出口时,就要加上拉。
设计时要注意这点细节。
铹鸝饷飾镡閌赀诨癱骝。
●共3个16位定时/计数器,分别为T0,T1,T2.
3.1.2STC89C52RC主要引脚功能
STC89C52RC引脚图如图3所示,芯片的各引脚功能下文将给出解释。
图3、STC89C52引脚图
●VCC:
电源电压
●GND:
接地
●P0口:
P0口是一组八位双向I/O口。
P0口既可使用为地址/数据总线,也可以使用成通用的I/O口。
●P1口:
P1口是一组八位的双向输入输出端,内部有上拉电阻,P1端口是通用的。
●P2口:
P2口是一组八位的双向输入输出端,内部存在上拉电阻。
●P3口:
P3口是一组八位双的向输入输出端,内部存在上拉电阻。
●RST:
复位输入
●————PSEN:
程序储存允许指令端口,作用是接收读外部程序存储器时的选通信号。
●——EA/VPP:
外部访问允许
●XTAL1:
晶振的入口。
●XTAL2:
晶振的出口。
3.1.3STC89C52RC的中断源
STC89C52RC共有5个中断源,它们分别是片内串行口中断TI或RI、外中断INT0和INT1、片内定时/计数器溢出中断TF0,TF1,TF2,这5个中断源由两个特殊功能寄存器TCON和SCON控制。
攙閿频嵘陣澇諗谴隴泸。
3.1.4时钟电路
本次毕业设计中使用了一只12兆赫的晶振和两只30PF的贴片电容组成时钟电路。
另外构成时钟振荡器的是单片机内部的一个反相放大器,XTAL1和XTAL2分别为其输入端和输出端,两端并接一个石英晶体和两片电容即可组成一个自激振荡器。
电容器C1,C2对振荡频率有调节作用,电容C1和C2取值在在25-90PF之间,本设计里取的30皮法。
电路如图4所示。
趕輾雏纨颗锊讨跃满賺。
图4、时钟电路
3.1.5复位电路
由图3知道复位端子为9号脚,复位时只需在复位端RST上输入高电平即可。
一般在RST端和电源之间串接一个按键,按键一端接高电平,一端接复位端,当按键接通时,+5V电压就会立即输入复位端子。
手动按钮复位的电路如图5所示。
然而人为按按键的时候动作再快,按键由按下到接通的这段时间里,按键接通的时间也有几十毫秒,因此按键按一次足以满足复位时在时间上的需求。
其电路如图5所示。
夹覡闾辁駁档驀迁锬減。
图5、复位电路
3.2数码管显示电路
在此次毕业设计中,采用的是八位的共阴极数码管,每一位数码管由七段LDE和一个小圆点发光管组成(如图6所示),根据七段的LED的不同时间的显示来表示不同的字码。
对于数码管的显示,分为动态显示和静态显示两种,对于静态显示,其编程较简便,显示方面较稳定,然而需要大量的I/O口;对于动态显示,其编程复杂,但是需要的输入/输出端子较少。
根据具体情况,本设计选择了数码管动态显示的方案,实际上是利用了人们的视觉暂留效应。
视絀镘鸸鲚鐘脑钧欖粝。
图6、数码管
数码管动态显示原理:
数码管的点亮要考虑段选择与位选择两个的输入,由于采用的是8位共阴数码管,因此要点亮数码管,就必须先将位选选通,接下来就给段选输入数据,最后便可以显示相应的字符。
其电路接线图如图7所示。
实物连线时,由STC89C52的P0口送入初值,即是送入段码值,P3口送入位码值。
偽澀锟攢鴛擋緬铹鈞錠。
图7、数码管显示电路
有关8位共阴数码管的位码和段码,分别见表2和表3.
1
2
3
4
5
6
7
8
0xfe
0xfd
0xfb
0xf7
0xef
0xdf
0xbf
0x7f
表2、八位共阴数码管位码表
0
1
2
3
4
5
6
7
8
9
0x3f
0x06
0x5b
0x4f
0x66
0x6d
0x7d
0x07
0x7f
0x6f
表3、数码管0-9段码表
在数码管的显示电路中,74HC573锁存器几乎都是要用到的。
其引脚如图8所示:
图8、74HC573芯片引脚图
74HC573包含八进制三态非反转透明锁存器,是一种高性能硅门CMOS元件。
74HC573的八个锁存器都是透明的D型锁存器,当使能(G)为高时,Q输出将随数据(D)输入而变。
当使能为低时,输出将锁存在已建立的数据电平上。
输出控制不影响锁存器的内部工作,即老数据可以保持,甚至当输出被关闭时,新的数据也可以置入。
。
这种电路可以驱动大电容或低阻抗负载,可以直接与系统总线接口并驱动总线,而不需要外接口。
特别适用于缓冲寄存器,I/O通道,双向总线驱动器和工作寄存器。
緦徑铫膾龋轿级镗挢廟。
3.3车流量检测模拟电路
在本次毕业设计中,本设计用按键按的次数来代替车流量的大小,所以车流量的检测即是按按键,按键按一次表示检测到有一辆车通过。
实际连线中,使用外部独立按键与单片机连接,当按键按一次,单片机便计数一次,最终将总数进行分析,然后判断和改变交通灯的显示时长。
其接线图如图9所示。
騅憑钶銘侥张礫阵轸蔼。
图9、车流量检测模拟电路
在图中K1表示南北向车流量检测的模拟按键,K2表示东西向车流量检测的模拟按键,分别和单片机的P2口的P2.5和P2.6连接。
疠骐錾农剎貯狱颢幗騮。
3.4红绿灯显示电路
在本次交通灯的设计中,南北向和东西向各用三个发光二极管(红、黄、绿发光二极管各一个)来指示,所以本设计采用了单片机P1口的0-5号端子来控制六个发光二极管,这六个二极管是共阳极的。
实际电路图为图10所示。
镞锊过润启婭澗骆讕瀘。
图10、红绿灯电路图
这些发光二极管由于是共阳极的,所以只有在单片机P1口为低电平的时候才会亮,根据交通灯的亮灭规律,P1口各端子的状态可以总结为表4:
榿贰轲誊壟该槛鲻垲赛。
南北绿灯亮
南北红灯亮
南北黄灯亮
东西绿灯亮
东西红灯亮
东西黄灯亮
二进制码
11111110
11111101
11111011
11110111
11101111
11011111
十六进制码
0xfe
0xfd
0xfb
0xf7
0xef
0xdf
表4、红绿灯显示编码
由于该设计只用到了P1口0-5号六个端子,剩下的6、7号端子就为高电平。
3.5总体电路的设计
图11、总体电路图
由上面的总体电路图可以清楚的看出,本毕业设计以STC89C52为控制核心,外部连接电源模块,时间显示模块,和红绿灯显示模块,车流量检测模块,其各模块的结构关系如图11所示:
邁茑赚陉宾呗擷鹪讼凑。
图12、系统结构图
第四章软件设计
4.1KEILC51软件简介
KeilC51是美国KEILSOFTWARE公司出品的51系列兼容单片机C语言软件开发系统,其具有丰富的库函数、功能强大的继承开发调试工具、全windows界面,在开发大型软件时更能体现出高级语言C语言的优势。
C51已被完全集成到uVision2的集成开发环境中,这个集成开发环境包含:
编译器,汇编器,实时操作系统,项目管理器,调试器。
uVision2IDE可为它们提供单一而灵活的开发环境。
C51V7版本是目前最高效、灵活的8051开发平台。
它可以支持所有8051的衍生产品,也可以支持所有兼容的仿真器,同时支持其它第三方开发工具。
嵝硖贪塒廩袞悯倉華糲。
4.2程序流程图
程序流程图在程序分析时有很大的作用,也是分析程序时最基本、最重要的工具。
该栎谖碼戆沖巋鳧薩锭。
4.2.1主程序流程图
在本次毕业设计的程序设计中,其主程序的设计思想是:
首先定义各种变量,然后初始化参数,设定程序的初始状态s1:
东西向红灯亮,南北向绿灯亮,一段时间后东西向红灯依旧,南北向黄灯闪烁。
在东西向红灯亮的这段时间里,东西的车流量检测程序一直执行,直到南北黄灯闪烁结束;南北向黄灯结束后,程序进入状态s2:
东西向绿灯亮,南北向红灯亮,一段时间后,东西向黄灯闪烁,南北向红灯依旧,在南北向红灯亮的这一段时间里,南北向车流量检测程序一直执行,直到东西向黄灯闪烁结束,东西向黄灯结束以后程序再次跳入到初始状态s1即东西向红灯亮,南北向绿灯亮,以上为交通灯运行的一个周期,在这个周期中东西向和南北向的车流量的大小已经被单片机所记录,根据记录的车流量的大小,在下一个状态程序运行时,交通灯的显示时长会根据单片机上周期所记录的车流量的大小来改变。
本设计的主程序的运作流程图如图13所示:
劇妆诨貰攖苹埘呂仑庙。
图13、主程序流程图
4.2.2数码管显示子程序流程图
本文对于数码管显示的程序,其主要思路是,在初始化中已经定义好倒计时的起始时间,根据单片机内部时钟计时,当一秒已到时,红绿灯显示时长就减一秒,没到时仍然显示此时的时长时间,数码管显示的时候又分为十位和个位,其运作流程图如图14所示:
臠龍讹驄桠业變墊罗蘄。
图14、数码管显示子程序
4.2.3按键检测流程图
我们都知道,按键在按下与释放的瞬间都会出现抖动的情况,抖动的时长取决于按键的机械特性,通常在5到10毫秒之间。
如图15所示。
鰻順褛悦漚縫冁屜鸭骞。
图15、按键被按下时的电压变化
实验表明,在我们按下按键再立即释放的这个过程中,按键稳定闭合的时间大于二十毫秒,因此在按键检测时都要进行去抖的操作,对于按键消抖有专门的去抖电路,也有专门的去抖芯片,然而我们用一般的软件延时的方法就很容易的排除按键抖动的现象,而没有必要添加其它的的硬件电路。
而在本次设计中对按键的消抖采用的是判断标志位flag和交通灯的状态S来实现的,其原理是在按键第一个下降沿就执行相关的程序,而不是在按键稳定闭合的时候才开始执行。
穑釓虚绺滟鳗絲懷紓泺。
图16、软件消抖流程图
4.3部分程序介绍
由于本毕业设计采用的是C语言编程,所以程序的条理比较清晰,也很容易读懂,下面将本次毕业设计中的部分程序给予讲解。
隶誆荧鉴獫纲鴣攣駘賽。
4.3.1初始化程序
voidinit()
{
half_sec=0;
s=1;//交通灯状态选择标志
t=0;
count1=0;//南北向车流量
count2=0;//东西向车流量
sec=25;
ew_Rtime=15;
ns_Rti