学位论文单片机交通灯报告.docx
《学位论文单片机交通灯报告.docx》由会员分享,可在线阅读,更多相关《学位论文单片机交通灯报告.docx(23页珍藏版)》请在冰豆网上搜索。
![学位论文单片机交通灯报告.docx](https://file1.bdocx.com/fileroot1/2023-1/4/e715fe7a-de6c-4415-b2d3-89a99c2a502b/e715fe7a-de6c-4415-b2d3-89a99c2a502b1.gif)
学位论文单片机交通灯报告
课程设计报告
课程名称:
《单片机原理及应用课程设计》
课题名称:
交通灯控制器
系部:
电气与信息工程学院
专业班级:
自动化09102
学生姓名:
指导教师:
完成时间:
2012年6月18日
报告成绩:
摘要
随着社会的发展与进步,城市交通灯逐渐成为人们安全出行中很重要的一部分,因此提供一个可靠、安全、便捷的交通灯控制装置有着现实的必要性。
综合应用数字电子技术、单片机原理、protel制图等课程方面的知识,设计一个采用STC89C51单片机控制的交通灯控制电路,硬件组成包含了微处理基本应用单元、倒计时电路、指示灯电路。
其中微处理基本应用单元包括有STC89C51单片机、复位电路、时钟电路,复位电路可以将单片机状态置于初始状态、时钟电路产生12MHz时钟信号、单片机实现对外来信息的处理;倒计时电路对指示灯的点亮情况进行倒计时;指示灯电路显示各交通灯信号。
由KeilC51编写的程序源代码包括主程序、交通灯系统控制子程序、时间中断子程序、数码管显示子程序、指示灯显示子程序等部分。
通过单片机实验板的具体实验,达到了预期设计要求。
关键词:
交通灯;微处理器;倒计时;LED
Abstract
Alongwiththedevelopmentofsocietyprogress,thetrafficlightsgraduallybecomeustoliveinveryimportantpartofit,thereforetoprovideareliable,safe,convenienttrafficcontrolsystemisofthepracticalnecessity.Thiscoursedesigncomprehensiveapplicationofdigitalelectronictechnologyandsingle-chipmicrocomputerprinciple,suchasprotelsoftwarecoursestheknowledgeoftherespect,designaSTC89C51usingsingle-chipmicrocomputercontroloftrafficlightcontrolcircuit.Thiscircuitincludemicrobasicapplicationunitandresetcircuitoftheclockcircuitofthecountdowncircuitoftheindicatorlightdisplaysection.Microbasicunitcanbeusedtorealizetheforeigninformationprocessingandresetcircuitofthesinglechipmicrocomputercanbeallstateintheinitialstate,clockcircuitofthe12MHzclocksignal,providecircuitofthecountdowntobrightenindicatoroncountdown,indicatorlightdisplaysectionshowseverytrafficlightsignals.ByKeilC51programsourcecode,includingthemainprogram,trafficlightsystemcontrolprocedure,timeinterruptsubroutines,digitalpipedisplaysubroutines,indicatorshowsthesonofprocedures,etc.ThroughthesimulationexperimentandProteussoftwareSCMexperimentboardexperiment,allcanappeartheexpectedphenomenon,meetthedesignrequirements.
keywords:
Trafficlights,Microprocessor,Countdown,LED
目录
摘要I
AbstractII
第一章概述(综述)1
1.1交通灯控制设计的意义1
1.2交通灯功能(与性能)1
1.3交通灯设计方案2
第二章交通灯控制系统硬件设计3
2.1微处理器基本应用单元3
2.1.1时钟电路3
2.1.2复位电路3
2.2复位部分3
2.3时钟电路部分4
2.4显示部分4
2.5路口指示灯部分5
第三章交通灯软件设计6
3.1接口定义(接口描述)6
3.2主程序6
3.3交通灯系统控制子程序7
3.4时间中断子程序7
3.5数码管显示子程序8
3.6指示灯显示程序8
第四章硬件仿真分析10
4.1单片机实验开发板仿真平台10
4.2仿真步骤10
4.3交通灯控制器仿真现象分析10
总结13
参考文献14
致谢15
附录1交通灯控制硬件电路图16
附录2交通灯控制程序源代码17
附录3单片机开发试验板原理图21
中央控制器(CPU21
74HC73动态LED共阴极数码管21
8路LED21
第一章概述
该设计在熟练掌握单片机原理及其应用技术的使用方法基础上,综合应用数字电子技术、单片机原理、protel软件等课程方面的知识,设计一个采用STC89C51单片机控制的交通灯控制电路。
1.1交通灯控制设计的意义
在社会经济快速发展,人们生活水平的日益提高的今天,对交通管制也提出了更高的要求,繁忙的道路交通受到越来越广泛的重视,因此提供一个可靠、安全、便捷的交通灯控制系统有着现实的必要性,与我们的生活息息相关。
十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。
靠的就是交通信号灯的自动指挥系统来实现这井然秩序。
交通信号灯是城市交通有序、安全、快速运行的重要保障,而保障交通信号灯正常工作就成了保障交通有序、安全、快速运行的关键。
为此,本设计采用STC89C51为中心器件来设计交通灯控制电路,其中包含了交通灯显示模块,调时模块,晶振电路,复位电路以及控制电路等,在源程序中直接设置红、绿、黄灯燃亮时间,三种颜色灯交替点亮,以达到交通通畅,人流车流和谐有序的目的。
1.2交通灯性能
单片机自动控制十字路口交通信号灯控制器,东西、南北两干道交于一个十字路口,在十字路中心有四个方向的交通指示灯,各干道有一组红、黄、绿三色的指示灯,指挥车辆和行人安全通行。
红灯亮禁止通行,绿灯亮允许通行。
黄灯亮提示人们注意红、绿灯的状态即将切换,且黄灯燃亮时间为东西、南北两干道的公共停车时间。
设东西道比南北道的车流量大,要求采用东西向通行80s南北向通行60s,黄灯闪烁时间为5s(不计入通行时间内)通行方式,。
指示灯燃亮的方案如下表1.1所示:
表1.1交通灯指示情况
60S
5S
80S
5S
……
东西道
红灯亮
黄灯亮
绿灯亮
黄灯亮
……
南北道
绿灯亮
黄灯亮
红灯亮
黄灯亮
……
说明:
(1)当东西方向为红灯,此道车辆禁止通行,东西道行人可通过;南北道为绿灯,此道车辆通过,行人禁止通行。
时间为60秒。
(2)黄灯闪烁5秒,警示车辆和行人红、绿灯的状态即将切换。
(3)当东西方向为绿灯,此道车辆通行;南北方向为红灯,南北道车辆禁止通过,行人通行。
时间为80秒。
东西方向车流大通行时间长。
(4)这样如上表的时间和红、绿、黄出现的顺序依次出现这样行人和车辆就能安全畅通的通行。
(5)此表可根据车流量动态设定红绿灯初始值。
1.3交通灯设计方案
交通灯控制器系统的设计较易实现,多种方案均可实施,但根据实际情况综合考虑需要选择一种最实用、最简洁、最经济的方案,此次设计主要根据单元电路来选择具体实施方案:
1、工作电源的选择
为使系统稳定工作,需要设计可靠的电源。
以下两种电源方案可以予以考虑:
方案一:
采用独立的稳压电源。
此方案的优点是稳定可靠,且有各种成熟的电路可供选用;缺点是各模块都采用独立电源,会使系统变得复杂,且可能影响电路电平。
方案二:
采用单片机控制模块提供电源。
改方案的优点是系统简明扼要,成本低廉;缺点是输出功率不高。
综合考虑,此次设计采用第二种方案。
2、记时显示模块的选择
系统设计要求完成倒计时显示功能,有以下两种方案可供选择:
方案一:
采用数码管显示。
这种方案只显示有限的符号和数码字符,设计简单,实现起来较方便。
方案二:
采用点阵式LED显示。
这种方案虽然功能强大,并可方便的显示各种英文字符,汉字,图形等,但要实现比较复杂,且须完成大量的软件工作。
由于所学知识和所掌握的资料有限,故此次设计选择第一种方案。
3、按键模块的选择
方案一:
采用8255扩展I/O口及键盘、显示等。
该方案的优点是:
使用灵活可编程,并且有RAM及计数器。
若用该方案,可提供较多I/O口,但操作起来稍显复杂。
方案二:
直接在I/O口线上接上按键开关。
由于该系统对于交通灯及数码管的控制,只用单片机本身的I/O口就可实现,且本身的计数器及RAM已经够用,故选择方案二。
系统的整体方案设计如图1.1所示。
以AT89C51单片机作为智能交通灯系统的控制核心。
从设计所完成的任务和要求来看,单一路口显示倒计时时间的数码管必须用两位,对于七段数码管,考虑到AT89C51单片机所能提供I/O接口的数量并结合自身编程的实际能力,倒计时显示装置中的数码管在本系统中采用静态显示;设置了3个按键来处理交通灯在实际应用中可能出现的
特殊情况,共使用3个I/O端口,其中P3.0接K1键,P3.1接K2键,P3.6接K3键;十字路口共需4组红绿灯,加上转换黄灯,一共是12只灯,须用6个端口进行控制,具体I/O接口分配:
P1.0~P1.2分别接东西方向的红、绿、黄共6盏信号灯,P1.3~P1.5分别接南北方向的红、绿、黄共6盏信号灯;AT89C51单片机的I/O口作为输出时,具有较大的吸收电流能力,因此可以选用共阳极数码管,这样从单片机的I/O口就可以直接驱动,从而简化硬件电路的设计。
第二章交通灯控制系统硬件设计
交通灯控制器的硬件组成主要包括:
微处理基本应用单元、复位电路部分、时钟电路部分、倒计时电路部分、指示灯显示部分。
2.1微处理器基本应用单元
STC89C51单片机包含中央处理器、数据存储器(RAM)、程序存储器(ROM)、定时/计数器、并行接口、串行接口和中断系统、时钟电路等几大单元以及数据总线、地址总线和控制总线等三大总线,现在就选取本次设计所需的重要部分分别加以说明。
2.1.1时钟电路
时钟电路产生AT89S51工作时所必需的控制信号,在时钟信号的控制下,严格按时序执行指令。
时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。
常用的时钟电路如图2.1所示。
2.1.2复位电路
复位是使单片机的片内电路初始化的操作,给复位脚RST加上大于2个机器周期(即24个时钟振荡周期)的高电平就使AT89S51复位。
在单片机的实际应用系统中,一般有两种复位操作形式:
1.上电复位;2.手动复位。
两种复位操作电路形式不同,其如图2.2和2.3所示。
2.2显示部分
图2.4显示电路
这里列出了共阴和共阳数码管的管脚平排列和内部结构。
数码管3、8管脚内部连在一起。
如果是共阴极则将其接到低电平。
如果是共阳极则
将其接高电平。
为了数码显示管的安全这里用电阻串联限流分压。
本次课程设计用的是共阴极静态显示数码管。
如图2.4所示。
2.3路口指示灯部分
采用红黄绿三种颜色的发光二极管共12个分为4组代表路口的交通灯。
东西、南北两干道交于一个十字路口,各干道有一组红、绿、黄三色的指示灯,指挥车辆和行人的安丘按通行。
红灯禁止通行,绿灯亮允许通行。
黄灯亮提示人们注意红、绿灯的状态即将切换,且黄灯燃亮时间为东西,南北两干道的公共停车时间。
情况如表2.1所示。
表2.1交通灯指示情况
60S
5S
80S
5S
……
东西道
红灯亮
黄灯亮
绿灯亮
黄灯亮
……
南北道
绿灯亮
黄灯亮
红灯亮
黄灯亮
……
上表说明东西路口红灯亮,南北路口绿灯亮,同时开始60s倒计时。
60s倒计时结束后开始5s倒计时,黄灯灯闪烁。
完成一次这样的转换要65s。
65s结束,南北路口红灯亮,东西路口绿灯亮,并重新80s倒计时,依次循环。
第三章交通灯软件设计
硬件设计完成后需要有与之相对应的软件设计才能发挥整个设计系统的功能与作用,本设计由KeilC51编写的程序源代码,包括主程序、交通灯系统控制子程序、时间中断子程序、数码管显示子程序、指示灯显示子程序等部分。
3.1接口定义
交通灯控制器的核心部件是STC89C51单片机芯片,此次设计只使用到了其一部分引脚的功能,表3.1所示为此次设计当中使用到了的STC89C51芯片的引脚名及其功能与作用。
表3.1接口定义
端口
定义
P0
数码管显示数据
P1.0
锁存器段控制
P1.2
南北方向红灯
P1.3
南北方向绿灯
P1.4
南北方向黄灯
P1.5
东西方向红灯
P1.6
东西方向绿灯
P1.7
东西方向黄灯
P2
数码管选择端
3.2主程序
交通灯系统共150秒,分为150个状态点,又将之分为4个状态。
通过时间中断,每一秒中断一次,然后重新装数,以达到系统控制的目地。
流程图如图3.1所示。
3.3交通灯系统控制子程序
根据时间点计算所处状态,并计算数码管应当显示的时间。
流程图如图3.2所示。
3.4时间中断子程序
设定该系统的定时器工作在方式1,由于方式1的最大定时时间为65.536s,所以要产生1s的定时时间必须采用累加定时的方法,即将定时器的定时时间设定为10ms,中断的循环次数设定为100。
当100次循环中断完成以后,说明1s时间已经累计到,这时候通过调用控制函数完成对系统控制,从而完成倒计时时间的“减1”操作并进行显示。
另外,每完成一次定时中断操作后都要重新对定时器赋初值。
定时中断子程序流程图如图3.3所示。
STC89C51的工作频率为2~12Hz,假定该控制系统单片机的工作频率为12Hz,因为机器周期和主频有关,机器周期是主频的12倍,所以一个机器周期的时间为12×
M=1μs。
可以知道每条指令的周期数,这样就可以通过指令的执行条数来确定1s的时间。
通过51单片机定时器计算小程序工具,算得设置应为D8F0H,所以将TH0=0xd8,L0=0xf0。
流程图如图3.3所示。
3.5数码管显示子程序
数码管显示才用动态扫描显示的方式,动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。
这样一来,就没有必要每一位数码管配一个锁存器,从而大大地简化了硬件电路。
选亮数码管采用动态扫描显示。
所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。
3.6指示灯显示程序
此程序先对系统状态进行判断,得出状态后,将各个路口红绿黄灯的状态送到对应的IO口,完成对红绿黄灯的控制。
流程图如图3.4所示。
第四章硬件仿真分析
为了验证次设计是否达到了预期的效果,对本设计进行了硬件仿真,结果显示此次设计完全符合要求。
4.1单片机实验开发板仿真平台
此设计是利用普中科技的单片机开发板进行仿真,该开发板的原理图见附件3
4.2仿真步骤
进行软件设置,选择硬件仿真,选择串行口,设置波特率为38400。
1.打开keil软件,新建一个工程,并在该工程下新建文本文件,保存为后缀为.c格式,在该文件中编写程序。
2.点Optionsfortarget→Output→勾选creathexfile
3.编译完成后,点击Rebuild按钮进行编译,如果显示有错误,则检查并改正,直至编译成功。
4.用USB线将开发板与电脑相连,打开程序烧录软件,用程序烧录软件将程序写入单片机。
5.观察实验现象。
4.3交通灯控制器仿真现象分析
1、东西道路红灯亮60s,南北道路绿灯亮60s,由于只有一个倒计时显示装置,故倒计时显示从65s开始到5s止,共60s。
图4.1表示各车道的等候或通行剩余时间还有46s。
图4.1东西等候南北通行
南北绿灯
东西红灯
2、东西道、南北5s黄灯转换,图4.2所示黄灯转换剩余时间为3s。
图4.2东西南北均为黄灯
东西黄灯
南北黄灯
3、东西道路绿灯亮80s,南北道路红灯亮80s,故倒计时显示从85s开始到5s止,共80s。
图4.1表示各车道的等候或通行剩余时间还有77s。
图4.3东西通行南北等候
南北红灯
东西绿灯
4、东西道、南北道进入5s黄灯转换,图4.4所示黄灯转换剩余时间为3s。
图4.2东西南北均为黄灯
南北黄灯
东西黄灯
总结
单片机是微型计算机的一个重要分支,是20世纪70年代中期发展起来的一种面向控制的大规模集成电路块,具有功能强、体积小、可靠性高、价格低廉等特点,在控制领域也得到广泛应用。
本设计中系统结构简单,操作方便;可实现自动控制,具有一定的智能性;对优化城市交通具有一定的意义。
本设计将各任务进行细分包装,使各任务保持相对独立;能有效改善程序结构,便于模块化处理,使程序的可读性、可维护性和可移植性都得到进一步的提高。
但此次设计中仍然存在着一些不足:
两条干道的红绿时间不能随实际路况的不同而让紧急车辆先通行。
有紧急车辆通过时,采用外部中断0执行中断服务程序,并设置该中断为高优先级中断。
当紧急信号出现时,又能自动中断原有的工作来应急处理,返回后,又能重新投入工作,完全实现自动控制,提高系统可操作性。
这是一个需要改进的地方。
国内外很多研究机构都致力于潜心研究交通信号灯的控制的更新换代。
比如太阳能交通信号灯,太阳能交通信号灯是靠阳光的能量保证信号灯的正常使用。
它利用的能源是太阳能,既省电又环保,安装时还不需要铺设电缆。
信号灯具有蓄电池功能,可保证10—30天正常工作。
主要适用于新建成的路口和车流量大、急需新增交通信号指挥的路口,可满足交警应对紧急停电、限电以及其他突发情况的需要。
并配有多种控制系统,如可编程控制器(PLC)控制系统,基于DEA技术的交通信号灯定时控制系统,微机原理控制系统和单片机控制系统等。
希望将来人们能在这些方面有重大的突破!
我也将为此而努力!
参考文献
[1]康华光电子技术基础(第五版)[M].高等教育出版社.2006.
[2]曾屹单片机原理与应用[M].中南大学出版社.2009.
[3]张一斌、余建坤单片机原理课程设计[M].中南大学出版社.2009.
[4]甘登岱Protel电路板设计教程[M].航空工业出版社.2011.
[3]郑阿奇Protel实用教程[M].电子工业出版社.2010.
致谢
完成此次课程设计,让我收获颇多,能够完成此次课程设计也得到了很多人的支持与帮助。
在此,我表示最诚挚的谢意!
首先,要感谢我父母这些年含辛茹苦地将我养大,育我做人,供我读书,无论我做什么总在背后默默的支持我、鼓励我,如果没有她们,我都不知道我现在处于何种境地;列夫·托尔斯泰说:
“如果学生在学校学习是使自己什么也不会创造,那他的一生将永远是模仿与抄袭。
”此次课程设计就让我深刻的感受到了这点所以我得感谢湖南文理学院电气与信息工程学院为培养我们独立思考、勇于创新的能力所创造的条件与氛围;其次,经过此次设计方觉得以前学习过的基础知识的重要性,所以感谢曾经那些教过我的园丁们,你们辛苦了!
特别值得一提的是,此次课程设计的指导老师——王,老师渊博的学术知识,严谨的治学之风,勤恳的敬业精神,勇于开拓的科学态度,给了我深刻的启迪和影响。
老师一向以对学生严格要求而著称,这也让我感到很大的压力,断不敢在网上随意下载一篇设计敷衍了事,于是上周我主动去请教了王老师,王老师还特意为我们此次课程设计的同学上了课,提出了一系列的要求并做出了重要的指导,让我们茅塞顿开,为我们此次设计甚至是今后的毕业设计指明了方向;此外,从调研、制图、仿真、撰写报告、内容修改、格式调整等各方面都遇到了一些自己难以解决的困难,但庆幸的是我得到了很多同学的帮助,在此,我对学的鼎力相助表示万分感谢!
附录1交通灯控制硬件电路图
附录2交通灯控制程序源代码
#include
#defineuintunsignedint
#defineucharunsignedchar
sbitduan=P1^0;//锁存器段控制
sbitP11=P1^1;//由于单片机实验板的需要(需接0七段数码管才会亮)
sbitnb1=P1^2;//南北方向红灯
sbitnb2=P1^3;//南北方向绿灯
sbitnb3=P1^4;//南北方向黄灯
sbitdx1=P1^5;//东西方向红灯
sbitdx2=P1^6;//东西方向绿灯
sbitdx3=P1^7;//东西方向黄灯
ucharzhuangtai=1;//表示四个状态
uintt;//用于统计中断次数
uinti=1;//一个周期四个状态共150秒i表示第几秒
uintsj,shi,ge;//数码管时间时间十位时间个位
/
intcodelednum[]={0x3f,0x06,0x5b,
0x4f,0x66,0x6d,
0x7d,0x07,0x7f,
0x6f
};//数码管显示编码0-9
/******************************************************************
/*函数名:
delay
/*函数功能:
时间的延迟
/*参数:
unitz
/*作者:
钟秋
/*
/******************************************************************
voiddelay(uintz)
{
uintx,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
/******************************************************************
/*函数名:
show
/*函数功能:
红绿黄灯显示
/*参数:
无
/*作者:
钟秋
/*
/******************************************************************/
voidshow()
{
switch(