城市交通灯模拟系统哈尔滨工程大学学士学位论文.docx
《城市交通灯模拟系统哈尔滨工程大学学士学位论文.docx》由会员分享,可在线阅读,更多相关《城市交通灯模拟系统哈尔滨工程大学学士学位论文.docx(49页珍藏版)》请在冰豆网上搜索。
城市交通灯模拟系统哈尔滨工程大学学士学位论文
学号2010041127
密级____________
哈尔滨工程大学本科生毕业论文
城市交通灯模拟与控制系统设计
院(系)名称:
自动化学院
专业名称:
自动化
学生姓名:
支茂峰
指导教师:
吕淑平教授
孙伟讲师
哈尔滨工程大学
2014年6月
学号2010041127
密级___________
城市交通灯模拟与控制系统设计
Simulationandcontrolsystemdesignofcitytrafficlights
学生姓名:
支茂峰
所在学院:
自动化学院
所在专业:
自动化
指导教师:
吕淑平,孙伟
职称:
教授,讲师
所在单位:
哈尔滨工程大学
论文提交日期:
2014年6月14日
论文答辩日期:
2014年6月22日
学位授予单位:
哈尔滨工程大学
摘要
本论文的主要任务是设计一个基于单片机的城市交通灯模拟与控制系统。
整体思想是采用STC89C52单片机最小系统作为控制部分,控制数码管显示各个路口的通行或禁止通行剩余时间数,同时用发光二极管显示每个路口的通行状态,通过按键使整个系统工作在三种工作状态,夜间模式状态,禁行模式状态以及正常通行模式状态。
本设计结合了多种控制技术,通过对不同方案的比较、分析,确定了采用STC89C52单片机为控制器的整体设计方案。
本系统的硬件模块主要包括:
STC89C52单片机最小系统模块,按键电路模块,数码管显示电路模块以及发光二极管电路模块。
根据硬件设计编写了相应软件模块。
软件模块主要包括:
系统初始化模块,开机LOGO模块,数据处理模块,按键扫描模块,数码管显示模块,二极管点亮模块。
本系统具体完成了对城市交通灯的模拟与控制,再现了实际城市交通灯的工作流程。
该设计硬件电路简单,软件编写简单易懂,容易修改。
在传统红绿灯的基础上增加了夜间模式,禁行模式使交通灯更加人性化。
通过对系统进行多次测试,得出系统稳定,软硬件工作正常,本系统符合设计要求。
关键词:
STC89C52单片机;工作状态;城市交通灯
ABSTRACT
Themaintaskofthispaperistodesignamicrocontroller-basedurbantrafficlightsimulationandcontrolsystem.ThewholeideaistousethesmallestSTC89C52SCMsystemasacontrolpart,controlthedigitaltubetodisplaytheallowpassageremainingtimeorthenothoroughfareremainingtime.Simultaneouslywiththelight-emittingdiodedisplaysthestatusofeachintersectiontraffic.Buttontomakethewholesystemworkbythethreeworkingstate,nightmodestate,thestateoftheforbiddenlinemodeandnormaltrafficpatternsstate.
Thedesignincorporatesavarietyofcontroltechniquesbycomparingthedifferentprograms,analysis,determinedusingSTC89C52microcontrolleroveralldesignofthecontroller.Thesystem'shardwaremodulesinclude:
STC89C52SCMminimumsystemmodule,keycircuitmodule,thedigitaldisplaycircuitmoduleandalightemittingdiodecircuitmodule.Accordingtothehardwaredesignofthepreparationofthecorrespondingsoftwaremodules.Softwaremodulesinclude:
systeminitializationmodule,bootLOGOmodule,dataprocessingmodule,keyscanmodule,LEDdisplaymodule,LEDlightmodule.
Thespecificdesignofthesystemiscompletedthecitysimulationandcontroloftrafficlights,trafficlightstoreproducetheactualcityofworkflows.Thedesignofthehardwarecircuitissimple,softwaredevelopment,easytounderstand,easytomodify.Onthebasisofthetraditionaltrafficlightontheincreaseinnightmode,theforbiddenlinemodeenablestrafficlightsmorehumane.Thesystemthroughseveraltests,drawsystemstability,hardwareandsoftwaretoworkproperly,thesystemmeetsthedesignrequirements.
1.4论文主要工作(400)
2.2.1单片机STC89C52的内部结构
2.2.2单片机STC89C52的外部引脚
2.5串口pl2303简介
2.5本章小结
3.2.1stc89c52最小系统简介(150)
3.2.2复位电路设计(400)
3.2.3晶振电路设计(300)
3.2.3单片机的工作电源(50)
4.2系统初始化
4.4数据处理函数
4.8延时子程序
第1章绪论
1.1课题的研究背景及意义(说明从哪引用摘抄的)
随着经济的发展,越来越多的家庭拥有了自己的小汽车,车辆数目的增加直接导致的问题是交通日益拥堵,现代社会人们的生活已经不能离开交通信号灯。
城市交通信号灯是指红、黄、绿三种颜色为一组对交通进行指挥的信号灯。
最早的城市交通灯出现于1868年英国伦敦议会大厦的广场上。
当时的交通信号灯只有红、绿两种颜色。
随着工业水平的发展,车辆的种类越来越多,红、绿两种颜色的信号灯已经不能满足日益繁重的交通需要,随之而来的是红、黄、绿三种颜色的交通信号灯。
三色交通信号灯最早出现在纽约市的一座高塔上,由于三色信号灯的使用,交通压力得到了极大的缓解。
2011年中国的机动车保有量为2.17亿辆左右,2014年中国机动车保有量数次突破2.5亿辆。
从上面的数据可以看出中国的机动车数量非常之多,而且有继续增长的趋势。
机动车里有很大一部分是民用小汽车,也就是常说的私家车。
以前私家车主要集中在大中型城市。
由于经济的发展,人民生活水平日益提高,工业水平的不断提高,汽车的制造成本越来越低,直接导致的结果就是现代生活越来越多的人拥有了自己的小汽车,在县级城市也经常出现交通拥堵的现象。
交通问题的广泛化,严重化就迫使人们去想解决的方案。
城市交通信号灯的价值倍受关注,研发更实用,更可靠的城市交通信号灯也就越来越重要。
1.2城市交通灯的发展与现状(说明从哪引用摘抄的)
城市交通信号灯的发展经历了一个相当长的时期。
历史上第一个负责交通的信号灯是在1868年诞生于英国的伦敦的。
它是用来指挥火车的运行的,只有红绿两种颜色构成,只是在晚上使用。
随后美国的纽约出现了三种颜色的红绿灯,由红黄绿三种颜色代表三种颜色来指挥交通,这是最早的三色红绿灯,也是现在红绿灯的雏形。
随着时间的推移现在的城市交通灯再也不是以前那种控制方式了,以前用煤油灯,用手推的方式来切换不同的灯亮。
现在的城市交通灯各种各样,根据路口的不同,有三路口交通灯,四路口交通灯,单车道交通信号灯以及比较复杂的8车道城市信号交通灯。
本系统就是用来模拟与控制8车道城市交通信号灯。
由于各地交通规则的不同。
例如在中国行驶的车辆一律右侧通行,而在一些国家,如日本、英国等则是左侧通行。
这就导致不同地方的城市交通灯的点亮顺序与控制逻辑有所不同。
不管是左侧通行还是右侧通行,总的控制方式还是不变的。
截止到目前,世界上现实使用中的控制城市交通信号灯的系统最具有代表性使用最多的有SCOOT交通控制系统和SCATS控制系统。
前者在英国被广泛使用,后者在澳大利亚使用比较多。
SCATS系统使用的控制结构是分层递阶式的。
其控制中心由两台电脑设备构成,一台是监控计算机另一台是管理计算机。
两台计算机通过串行通信技术连接。
某一地区各个路口的信息连续的被监控计算机监控,监控计算机将监控得来的数据持续不断的发给管理计算机,然后管理计算机根据各路口的车流量信息来实时的控制各个交通路口的信号灯。
这种系统充分发挥了计算机处理数据大的优势,也体现出了网络技术的重要性。
其特点是结构可以根据情况改变,对信息的实时响应高,控制方案灵活。
SCOOT系统不同与SCATS系统,其广泛应用与英国的街头。
该系统可以根据车辆检测装置对不同位置的车流量进行实时跟踪,然后由电脑将这些数据传给一个交通模型,通过一个预先设置的算法输入各地的车辆实时信息,可以给出一个最优的交通信号灯的配置。
国内在城市交通灯这方面研究和应用的起步都比较晚。
在这方面我国主要采取的策略是引进新技术然后消化吸收,最后建立了一套自己的城市交通灯模拟与控制系统。
1.3基于单片机的城市交通灯模拟与控制系统简介
单片机控制的城市交通灯模拟与控制系统是指由单片机作为控制系统的交通信号灯模型。
它可以真实的模拟现实生活中的城市交通灯。
单片机是用来完成特定控制任务的一种电路集成芯片,也可以称其为微型计算机,由输入输出端口、控制器、存储器和运算器构成。
单片机的种类非常多,常见的有STC单片机,STC单片机是新一代增强型单片机,它是在8051内核的基础上发展起来的,具有和51单片机完全兼容的特性,其ID号全球唯一,具有抗干扰能力强,加密性好的有点。
PIC单片机是MICROCHIP公司生产的,具有功耗低,体积小,可靠性强等优点。
EMC单片机生产于台湾义隆公司,优点是价格便宜,缺点是抗干扰能力差。
ATMEL单片机是ATMEL公司的产品,它具有高集成度,低成本,低功耗的特点,满足多方面的设计工程的需要。
在现实生活中使用最广泛,学习资料最全面的是atmel公司的51系列单片机。
它具有价格便宜,体积小,容易学习等特点,被广泛用于工业设备,同时也倍受初学者的喜欢。
配合晶振、电源、复位电路以及串口输入设备可以构成单片机最小系统。
本系统就是由STC89C52单片机构成的单片机最小系统来完成系统的控制部分。
根据实际的交通灯用发光二极管代替交通信号灯,用数码管来代替倒计时装置,将其焊接在一块电路板上。
然后根据预先的设计思路画出电路图,通过导线与单片机最小系统连接。
然后再根据设计的硬件系统来编写相应的软件程序,最后通过串口装置将程序下载给单片机。
通过系统联调即可实现对交通灯的模拟。
1.4本文主要工作
分析比较了多种设计方案,最后确定了采用STC89C52单片机作为控制部分的设计方案。
根据STC89C52单片机的工作原理以及课题要求,设计了硬件部分。
硬件部分设计主要是根据实际的器件功能及引脚画出电路图,然后根据电路图在面包板上搭建电路。
最后的硬件模块分为:
STC89C52单片机最小系统模块,按键电路模块,数码管显示电路模块以及发光二极管电路模块。
根据硬件设计编写了相应软件模块。
软件模块主要包括:
系统初始化模块,开机LOGO模块,数据处理模块,按键扫描模块,数码管显示模块,二极管点亮模块。
设计好软硬件模块之后,要对其进行调试。
首先是软硬件分模块调试,先将一个软件模块下载给单片机,然后针对该模块的软硬件进行调试,记录调试中出现的问题并修改软硬件模块,在对剩余的模块分别调试。
其次是系统联调,系统联通是在确保各软硬件模块无误的情况下,将系统软件模块拼接在一起,硬件模块拼接在一起,进行整体调试,记录出现的错误并修改,直至系统能正常工作。
第2章系统总体设计
2.1总体设计
城市交通灯模拟与控制系统具有如下功能:
(1)能够真实的模拟再现现实的交通控制情景;
(2)通过按键可以改变系统的工作模式;
(3)通过按键可以改变各路口的通行时间,当通行时间不合逻辑时,能提示管理者;
(4)二极管可以配合数码管工作,来正确显示各种通行状态;
2.1.1交通灯总框图
所需设备:
AT89C52单片机芯片一块,74HC573锁存器六片,共阳极两位数码管LG5621CH四块,发光二极管红、黄、绿各16个,常开按键开关4个,PL2303串口装置一块。
系统框图如图2.1所示:
图2.1系统总框图
2.1.2系统工作原理
(1)在电脑上用C语言编写相应程序;
(2)通过串口装置将程序下载给STC89C52单片机搭建的最小系统;
(3)最小系统的输出接口接上74HC573锁存器,将输出信号锁存在锁存器中;
(4)锁存器将电压保持在有效电平,并且传递给数码管以点亮数码管显示数据,传递给发光二极管以点亮发光二极管显示通行状态,正常工作时候程序会进入大循环中,所以红绿灯会周而复始的被点亮,熄灭,从而来模拟实际的交通灯。
2.2交通规则设计
本系统为多车道城市交通灯模拟与控制系统,是用不同颜色的发光二极管与数码管配合来控制东、西、南、北四个方向的车辆以及行人的通行。
在这里规定西侧干道为路口1,北侧干道为路口2,东侧干道为路口3,南侧干道为路口4,。
各干道又分为左、中、右双车道,然后干道口停止线后为斑马线,即为该路口的人行道。
每个路口有十二个发光二极管来说明该路口为通行状态,或者等待状态。
其中红色发光二极管代表禁止通行,黄色发光二极管代表等一等,绿色发光二极管代表可以通行。
每个路口有一个数码管,数码管可以用来显示该路口直行以及左转通行或者等待时间。
实际的交通规则模拟图如下,即如图2.2所示:
图2.2交通模拟图
1S表示路口1直行,
1L表示路口1左转弯,
1R表示路口1右转弯,
1P表示路口1人行道;
2S表示路口2直行,
2L表示路口2左转弯,
2R表示路口2右转弯,
2P表示路口2人行道;
3S表示路口3直行,
3L表示路口3左转弯,
3R表示路口3右转弯,
3P表示路口三人行道;
4S表示路口4直行,
4L表示路口4左转弯,
4R表示路口4右转弯,
4P表示路口4人行道。
结合图2.1,有现实交通规则通行状态(绿灯)按如图2.3:
图2.3通行顺序图
2.3单片机STC89C52
2.3.1单片机STC89C52的内部结构
STC89C52是STC公司生产的一种功耗低性能高的微型控制器,flash存储空间为8k,其内核为MCS-51。
由于STC公司针对该种芯片做了很多改进,所以虽然该芯片用的仍然是经典的MCS-51内核,但是它具有了很多传统51单片机所没有的功能。
由于该种单片机的CPU为8位,而且拥有系统可编程的Flash,RAM存储空间为512字节,输入/输出接口有32个,拥有内置4K字节的EEPROM,拥有16位计数器/定时器3个,还有四个外部中断,全双工串行口。
强大的功能,低廉的价格,可靠的性能使其使用范围极为广泛。
简单的说,单片机STC89C52包括程序存储器(ROM)、中央处理器、数据存储器(RAM)、定时/计数器、串行接口、并行接口和中断系统等几个部分。
其三大总线是由地址总线、控制总线、数据总线构成。
(1)中央处理器
单片机的核心器件即为中央处理器,也就是CPU,它是一个能处理8位二进制代码或者数据的处理器。
中央处理器的主要任务的控制、调度和指挥系统单元的工作,使系统更加协调的工作,它能完成一些相应的运算而且具有输入输出的功能。
(2)存储器
存储器可以分为两大类,一类是程序存储器用来存放常数和固定的程序,简称ROM;一类是数据存储器用来存放可能变动的随机数据,简称RAM。
STC89C52有512字节的数据存储器。
(3)定时/计数器
单片机正常工作时不仅要完成运算工作,而且还要完成控制工作,这就使得单片机的在正常工作时离不开定时和计数。
STC89C52有3个16位的计数器/定时器。
(4)输入/输出接口
STC89C52有32个输入/输出(I/O)接口,分为4组,每组8个。
它可以用来与外界进行并行的数据传输。
(5)中断系统
STC89C52拥有外部中断、定时器中断、计数器中断和串口中断等几种中断形式。
各种中断都有其特定的用途,以满足不同系统的设计要求。
2.2.2单片机STC89C52的外部引脚
STC89C52有40个外部引脚,在这40个外部引脚中,有8个为一组的输入输出引脚4组,正电源引脚1个,地线引脚1个,外部振荡器的时钟引脚2个,控制引脚3个,复位线路引脚一个。
(1)电源和地线引脚各1个
Vcc:
电源正极引脚,序号为40,接电源正极,5V电压(可小幅度波动)。
Vss:
电源负极引脚,序号为20,接电源负极。
(2)时钟引脚
XTAL1:
XTAL1时钟引脚,序号为19,接片内震荡电路的输入端。
XTAL2:
XTAL2时钟引脚,序号为18,接片内震荡电路的输出端。
时钟电路在STC89C52单片机中具有非常重要的作用。
像人的心脏一样,心脏只有不停的跳动,人才能完成相应的动作。
时钟电路能给单片机提供统一的时间脉冲,STC89C52的各种功能的实现,数据的处理与运算,系统的控制都需要在一个统一的脉冲之下才能顺利的进行。
单片机有两种产生时钟的方式。
一种方式是片内时钟震荡方式,另一种是片外时钟震荡方式。
前者需要将18引脚和19引脚接震荡电容和石英晶体,后者是直接将外部脉冲信号输送给单片机,即直接连接19引脚和外部脉冲信号发生器同时将18引脚悬空。
(3)复位引脚
RST:
复位信号引脚,序号为9.
复位电路能够使系统复位,也就是如果复位信号起作用后,程序将会从程序存储器的0000H单元重新开始运行,同时将一些专业寄存器的值变为复位状态值。
在单片机正常运行时,只有在序号为9的引脚上出现2个或2个以上的连续时钟周期的有效电平才能使单片机进入复位状态。
复位电路设计将在下一章有专门介绍。
(4)控制引脚
PSEN:
对外部程序存储器进行读取的选通信号引脚,序号为29.当该引脚为负电平脉冲信号时,系统开始读取外部程序存储器中的程序。
ALE/PROG:
地址锁存允许信号引脚,序号为30.在访问外部存储器的时候,P0扩展的地址低8位地址信号由ALE来锁存;当系统不访问外部存储器数据的时候,ALE引脚会输出固定的脉冲频率(时钟震荡频率的六分之一),该脉冲可以用于定时器或者其它方面。
此外,在编写程序时,该引脚还可以用在输入编程脉冲,是一个复用引脚。
EA/Vpp:
内外程序存储器选择控制引脚,序号为31.在该引脚接低电平的时候,STC89C52取指令的位置是外部程序存储器;在该引脚接高电平的时候,STC89C52取指令的位置是内部程序存储器,只有当程序的长度超过了一定值(FlashROM的容量)时,单片机就会开始取外部程序存储器中的指令。
(5)输入/输出(I/O)引脚。
1)P0口有P0.0到P0.7八个引脚,序号为39到32。
P0口是一个的双向的漏极开路的8位I/O口,为使其正常工作,需要接上拉电阻。
每个引脚都可以单独的作为输入或者输出引脚,然是当作为输入引脚时,应先将要使用的引脚置1.P0口的第二个功能就是作为地址/数据总线。
当P0口作为地址引线时,它的八个端口输出的是一个8位地址;当P0口作为数据总线时,它的八个端口可以输入一个8位数据。
2)P1口有P0.0到P0.7八个引脚,序号为1到8。
P1组引脚由于已经内置了上拉电阻,所以正常工作时不需要外接上拉电阻。
它的八个端口也可以单独的作为输入输出接口使用,在作为输入接口时,要先将其置1。
另外P1.0和P1.1具有第二功能,前者可以作为定时/计数器2的外部输入,后者可以作为定时/计数器2捕获/重载触发信号和方向控制引脚。
3)P2口有P2.0到P2.7八个引脚,序号为21到28.P2组引脚也已经内置了上拉电阻,所以正常工作时不需要外接上拉电阻。
它的八个端口可以单独的作为输入输出端口,在作为输入端口时,要先将其置1.另外P2口具有第二功能,当访问外部存储器的时候,地址的高8位是由该口送出的。
4)P3口有P3.0到P3.7八个引脚,序号为10到17.该端口已经内置上拉电阻,正常工作时不需要外加上拉电阻。
它的八个端口可以单独作为输入输出端口工作,但是作为输入接口时,要先将其置1.另外P3口还具有如表2.4所示的第2功能。
表2.1P3口引脚第二功能
2.3.2锁存器74HC573简介
锁存器的种类繁多,但所要完成的任务大致都是一样的,即都是为了使数据得以保持。
在有锁存器的情况下,可以解决慢速的外部设备和快速的控制器不同步的问题。
如果给锁存器通入合适的控制电压,锁存器还能解决驱动问题,这时就省去了驱动装置,可以简化系统结构,使系统功能更容易实现。
它也能解决一个输入输出接口既可以作为输出端口又可以作为输入端口的问题。
在有锁存信号时,输入的状态才能被保持下来,一旦该信号改变后,数据就不能被保持下来。
锁存信号只有两个值1和0。
典型锁存器的逻辑电路是D触发器。
由若干个D触发器所构成的单次可以保持多位二进制数的时序逻辑电路称为锁存器。
74HC573一次能锁存8位二进制数据,属于8位锁存器。
74HC573的主要应用场合。
在一些运算电路中,锁存器可以作为暂存器使用。
锁存器之所以称为锁存器,是因为其输出端的输出信号可以被保存即输出信号可以保持不变,只有在锁存信号改变时新的数据才能被输出,直到下一次锁存信号到来之前输出信号都会保持在前一个数据。
在某些电路中,锁存器可以和单片机的输出接口连接起来,在这种电路中锁存器可以连接外电路,从而实现单片机对外部电路的分时控制,若锁存器连在多位数码管上,即可实现数码管的动态扫描。
如果外部线路不太复杂,外部设备不多且所需功率不高时,可以省去锁存器直接将外设连接控制装置如单片机。
74HC573有20个引脚,其引脚图2.5,使用逻辑图如图2.4。
图2.474HC573引脚
表2.2使用逻辑表
2.4程序编写语言
STC89C52单片机是城市交通灯模拟与控制系统的核心,数码管的数字显示,二极管的正确发光,通信装置的正确通信,都依赖于单片机。
而单片机能正常工作的必要前提是单片机内要有正确的程序。
所以选择合适的语言给单片机编程显得尤为重要。
目前来说,单片机主要语言有汇编语言,BASIC语言,C语言等。
这些语言各有优缺点。
汇编语言是面向机器的程序设计语言。
工作