交通灯控制系统的设计.doc
如有侵权,请联系网站删除,仅供学习与交流交通灯控制系统的设计【精品文档】第 13 页湖北文理学院理工学院电子科学与信息工程系专业方向课程设计报告题 目 交通灯控制系统的设计 学生姓名(学号) 通信1311 马佳莹(13354107) 学生姓名(学号) 通信1311 杨梦辉(13354112) 学生姓名(学号) 通信1311 粟益(13354108) 指导教师 黄巧巧 日 期 2016年5月 交通灯控制系统的设计摘要:交通控制系统是近现代社会随着物流、出行等交通发展产生的一套独特的公共管理系统。要保证高效安全的交通秩序,除了制定一系列的交通规则,还必须通过一定的科技手段加以实现。本设计中交通灯控制系统由 STC89C51单片机、交通灯显示、LED倒计时、紧急处理等模块组成。系统除基本交通灯功能外,还具有通行时间可倒计时显示、急车强行通过等相关功能。该系统能够简单、经济、有效地疏导交通,提高交通路口的通行能力。关键词:交通控制;STC89C51;倒计时显示目录一 设计要求.4二 方案论证.4三 单片机控制系统总体设计.4 3.1通行方案设计.5四 系统硬件电路的设计.6 4.1最小系统设计.6 4.1.1单片机的概述.6 4.1.2STC89C51 芯片最小系统.7 4.2外围硬件构成.8 4.2.1数码管显示电路.8 4.2.2显示电路.9 4.2.3按键控制.9 4.3系统总电路.10五 系统软件程序的设计.12 5.1程序设计流程.12 5.1.1主体流程图.12 5.2理论基础知识.12 5.2.1定时器基本原理.12 5.2.2定时器初值计算.13六 仿真与调试.14 6.1软件仿真.14 6.1.1交通灯仿真电路.14 6.2硬件调试.15 6.2.1元件清单.15 6.2.2实物图.16 6.2.3调试运行.16七 心得体会.17参考文献一、设计要求设计一个模拟交通灯控制系统:(1)红灯和绿灯停留的时间为一分钟即60秒钟,黄灯停留的时间是5秒钟;(2)系统包括人行道,左转,右转,以及基本的交通灯的功能;(3)系统除基本的交通灯功能外,还具有倒计时,时间设置,紧急情况处理,分时段调整信号灯的点亮时间以及根据具体情况手动控制等功能。二、方案论证方案一:PLC控制交通灯 PLC主要应用于强电方面的工业控制,或者整条流水线的控制。虽然比较稳定,但是功耗要大,成本也比较高。 方案二:单片机控制交通灯 单片机具有结构简单、编程方便、经济、易于连接等优点,特别是其内部定时器计数器、中断系统资源丰富可对交通灯进行精确的控制,有应用价值,可扩展功能多,灵活性比较强,线路也非常简单,成本也是比较低的。 由于此次课程设计是单片机设计,还有结合从各方面优缺点来看,以及简便方面,成本方面,和结构、控制方面来看。为了同时满足课程设计要求,综上所述,选择了方案二,做为本设计的方案选择。三、单片机交通控制系统总体设计 单片机设计交通灯控制系统,可用单片机直接控制信号灯的状态变化,指挥交通的具体通行。当然,接入 LED数码管就可以显示倒计时,以提醒行使者,更具人性化。据此,本设计系统以单片机为控制核心,连接成最小系统,由按键设置模块等产生输入,信号灯状态模块、LED倒计时模块接受输出。系统的总体框图如上图所示。系统进入正常工作状态,执行交通灯状态显示控制,同时将倒计时数据输入到 LED数码管上实时显示。在此过程中还要实时检测按键信号,以达到对异常状态进行实时控制的目的。3.1通行方案设计设在十字路口,分为东西向和南北向,在任一时刻只有一个方向通行,另一方向禁行,持续一定时间,经过短暂的过渡时间,将通行禁行方向对换。其具体状态如下图所示。说明:黑色表示亮,白色表示灭。交通状态从状态1开始变换,直至状态 4然后循环至状态 1,周而复始,即如图 所示:通过具体的路口交通灯状态的演示分析我们可以把这四个状态归纳如下:(1)南北方向红灯灭,同时绿灯亮,东西方向黄灯灭,同时红灯亮,倒计时60秒。此状态下,东西向禁止通行,南北向允许通行。(2)南北方向绿灯灭,同时黄灯亮,东西方向红灯亮,倒计时 5秒。此状下,除了已经正在通行中的其他所以车辆都需等待状态转换。(3)东西方向红灯灭,同时绿灯亮,南北方向黄灯灭,同时红灯亮,倒计时60秒。此状态下,东西向允许通行,南北向禁止通行。(4)东西方向绿灯灭,同时黄灯亮,南北方向红灯亮,倒计时 5秒。此状态下,除了已经正在通行中的其他所以车辆都需等待状态转换。四、系统硬件电路的设计 实现本设计要求的具体功能,可以选用 STC89S51单片机及外围器件构成最小控制系统,12个发光二极管分成 4组红绿黄三色灯构成信号灯指示模块,8 个 数码管东西南北各两个构成倒计时显示模块,以及四个按键。4.1最小系统设计4.1.1单片机的概述单片微型计算机简称单片机,又称微控制器,嵌入式微控制器等,属于第四代电子计算机。它把中央处理器、存储器、输入/输出接口电路以及定时器/计数器集成在一块芯片上,从而具有体积小、功耗低、价格低廉、抗干扰能力强且可靠性高等特点,因此,适合应用于工业过程控制、智能仪器仪表和测控系统的前端装置。正是由于这一原因,国际上逐渐采用微控制器(MCU)代替单片微型计算机(SCM)这一名称。“微控制器”更能反映单片机的本质,但是由于单片机这个名称已经为国内大多数人所接受,所以仍沿用“单片机”这一名称。单片机的主要特点有:(1)具有优异的性能价格比。(2)集成度高、体积小、可靠性高。(3)控制功能强。(4)低电压,低功耗。STC89C51是宏晶科技的STC89系列单片机。STC89系列单片机也是MCS-51系列单片机的派生产品,近几年受到市场的追捧。DIP40封装系列与标准80C51完全兼容。STC89系列的ISP功能可通过232接口和PC的串口连接,在线下载程序。它的开发手段简单,无需仿真器。这一特性避开了以往学习单片机时对仿真器的依赖,极大的简化了学习和开发手段。故本设计采用STC89C51单片机。4.1.2 STC89C51 芯片最小系统一个最简单的单片机系统包括晶振电路、复位电路。(1)晶振电路首先介绍一下单片机的晶振电路,即时钟电路。单片机的工作流程,就是在系统时钟的作用下,一条一条地执行存储器中的程序。单片机的时钟电路由外接的一只晶振和两只起振电容,以及单片机内部的时钟电路组成,晶振的频率越高,单片机处理数据的速度越快,系统功耗也会相应增加,稳定性也会下降。单片机 系统常用的晶振频率有 6MHz、110592MHz、12MHz、本系统采用12MHz 振,电容选 30pF。 (2)复位电路系统刚上电时,单片机内部的程序还没有开始执行,需要一段准备时间,也就是复位时间。一个稳定的单片机系统必须设计复位电路。当程序跑飞或死机时,也需要进行系统复位。复位电路有很多种,有上电复位,手动复位等。4.2外围硬件构成4.2.1数码管显示电路本系统使用数码管完成倒计时显示功能。以南北方向为例,数码管显示的数值从绿灯的设置时间最大值开始往下减,每秒钟减1,最后减到0.然后又从红灯的设置时间最大值往下减,一直见到0,接着显示黄灯的设置时间,一直减到0,然后一直循环下去。系统共有8个数码管,每2个分别放置在模拟交通灯上方,道路口剩余通行时间采用红色七段共阴数码管显示。本系统中,51单片机的P1.4;P1.5;P1.6;P1.7控制位选,本系统中,P2口控制数码管的段选。4.2.2 LED显示电路根据本设计的特点,红绿黄灯的显示不可少,红绿黄灯的显示采用普通的发光二极管。每个方向上设置红绿黄灯,总共 4组。如果东西红灯亮,那南北方向就是绿灯亮,反之亦然,所以在硬件上连接图上也是对称分布的,在本设计中,实际控制的灯有12个,即:东西红灯,东西绿灯,东西黄灯,南北红灯,南北绿灯,南北黄灯,均是高电平有效,如图所示。4.2.3按键控制本设计设置了有 4个键: (1)、S1 键设置按键。 (2)、S2键为增加时间按 键。 (3)、 S3 键为减少时间按键。 (4)、S4键为模式切换按键。南北每次通行时间设为60秒、东西每次通行间为60秒,时间按K1可设置修改。按S1一次进入调东西通行时间,再按一次S1进入调南北通行时间。再按一次S1退出设定;通行时间模式,进入设定通行时间模式后按S2加1,按S3减1。再正常模式下按S4进入南北优先通行模式,再按一下S4进入东西南北禁止通行模式,再按一下S4进入夜间模式。再按一下S4进入东西优先通行模式。在正常模式下按下复位按键,恢复为正常状态。4.3系统总电路本系统以单片机为核心,系统硬件电路由单片机、状态灯、LED显、按键组成。其具体的硬件电路如图所示:(1)开关键输入交通灯初始时间,通过89C51单片机P1输入到系统 (2) 由89C51单片机的定时器每秒钟通过P0口向数据口送信息,由单片机的P0口显示红、绿、黄灯的燃亮情况;由P2口显示每个灯的燃亮时间。 (3)89C51通过设置各个信号等的燃亮时间,绿、红时间为60秒、黄灯为5秒循环由 P0口向数码管输出。(4) 通过单片机的P3.0位来控制系统是工作或设置初值,当为0就对系统进行初始化,为1系统就开始工作。通过按键可进行模式转换:南北优先通行模式:南北绿灯亮,东西红灯亮;东西优先通行模式:南北红灯亮,东西绿灯亮;紧急模式:南北红灯亮,东西红灯亮;夜间模式:南北黄灯亮,东西黄灯亮。五、系统软件程序的设计5.1程序设计流程5.1.1主体流程图5.2理论基础知识5.2.1定时器基本原理定时器工作的基本原理其实就是给初值,让它不断加 1直至达到设定值,这个初值是送到 TH和 TL中的。计数器以此为基数做加1操作。因此,我们可以把所要求的计数值设定为 C,把计数初值设定为 TC,可得到如下计算通式: TC=M-C式中,M为计数器模值。计数值并不是目的,目的是时间值,设计 1次的时 间,即定时器计数脉冲的周期为 T0,它是单片机系统主频周期的12倍,设要求 的时间值为T,则有C=TT0。计算通式变为:T=(MTC)T0模值和计数器工作方式有关。在方式 0时 M为 8192;在方式 1时 M的值为 65536;在方式2和3为256。就此可以算出各种方式的最大延时。如单片机的主脉冲频率为12MHZ,经过12分频后,若采用方式0最大延时只有 8.129毫秒, 采用方式1最大延时也只有65.536毫秒。若使用软件则会耽搁程序流程,显然不可行。相反,时间计时方面却不可能只用计数器,因为显然1秒钟已经超过了计数器的最大定时间,所以我们还必须采用定时器和软件相结合的办法才能解决这个问题。5.2.2 定时器初值计算STC89C51的工作频率为12MHZ,机器周期与主频有关,机器周期是主频的 12倍,所以一个机器周期的时间为12*(1/12MHZ)=1us。我们可以知道具体每条指令的周期数,这样我们就可以通过指令的执行条数来确定1秒的时间,但同时由于单片机的运行速度很快其他的指令执行时间可以忽略不计。我们设定一个初值为20的软件计数器和使T0定时50毫秒。这样每当T0=50毫秒时CPU就响应它的溢出中断请求,进入他的中断服务子程序。在中断服务子程序中,CPU先使软件计数器减1,然后判断它是否为零。为零表示1秒 已到。设定定时器需要定时 50毫秒,故 T0必须工作于方式1。要求初值:TC=M-T*T0=216-50ms/1us=15536=3CBOH。即TH0=3CH,TL0=B0H; 相应程序代码:void InitTimer0(void) /初始化定时器0 TMOD = 0x01; /模式1 TH0 = 0x3C; /定时器装载值 TL0 = 0xB0; EA = 1; /使能总中断 ET0 = 1; /使能定时器0中断 TR0 = 1; /启动定时器0void Timer0Interrupt(void) interrupt 1 /定时器0中断处理函数static unsigned char TimeOutNum = 0; TH0 = 0x3C;/重新装载值 TL0 = 0xB0; /add your code here!TimeOutNum+;/中断次数+, 即50ms的次数if(TimeOutNum>=20)/50ms*20 = 1s /达到50ms * 20 = 1s条件TimeOutNum = 0; /中断次数清0SN_DisplayTime-; /南北显示时间-1EW_DisplayTime-; /东西显示时间-1六、仿真与调试6.1软件仿真6.1.1交通灯仿真电路此仿真原理图由STC89S51单片机及外围器件构成最小控制系统,12个发光二极管分成 4组红绿黄三色灯构成信号灯指示模块,8 个 LED东西南北各两个构成倒计时显示模块,以及4个按键组成。6.2硬件调试6.2.1元件清单6.2.2实物图6.2.3调试运行 程序通过串口下载线、MAX232和单片机的P3.0、P3.1接口连接。使用STC下载软件,将KILE生成的后缀为“HEX”的文件下载到单片机内部。下载程序之前要关闭电源,点击“下载/编程”按钮,然后接通电源。程序下载完毕后,单片机开始工作,交通灯硬件仿真开始运行。通电以后,对PCB板进行复位功能调试,数码管显示调试,倒计时功能调试等。七、心得体会 刚刚开始的时候,下载程序到单片机中的时候,交通灯是无法正常运行的,倒计时和红绿灯的不能协调工作的,要么是时间不对应,要么就是红绿灯出错。调试过程中要实现倒计时,刚刚开始的时候我把程序写进去的时候并不是倒计时而是乱的时间出现,后来我认真查看了数码显示表,应该把原来的0到9的数码表顺序做相应的调整才能够达到倒计时,或者我把程序做相应修改就可以正常工作了。由于单片机板有限,实验调试时拷进程序实现了红绿灯的显示正常。进行复位等的操作。之前没注意,在试验箱的晶振是6M的,之后单片机是12M的,所以时间是有些不同,之后改的双倍的。 虽然在设计过程中,会出现了一些问题,但都是常见的小问题,如:代码中双引号的使用并不是在英语书写状态下,输入字母出错等,在调试时出现异常,不过这些都是经常性错误,经过调试修改都一一解决,程序顺利完成,并实现了其功能。通过此次单片机课程设计,我仍感慨颇多,从理论到实践,在接近一月的日子里,可以说得是苦多于甜,但是可以学到很多的的东西,不仅是学习上的,而且是关于做人做事方面的感悟。 通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。我在设计的过程中遇到了许多问题,同时也发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,本次课程设计使我对单片机的工作原理有了更深刻的认识,例如对复位电路、晶振电路的理解。我深刻的理解到单片机的价值在于灵活运用它的IO端口以及其千变万化的程序。本设计中我们用IO端口驱动数码管以及引接外部开关。掌握了许多在以前学习中混淆不清的知识点。仿真实验,不仅锻炼了自己的动手能力,而且真正作到了理论联系实际的重要性,体会到了其中失败与成功的滋味,收益匪浅。同时在焊接单片机电路板时使我在制作上更加的熟练,经过不断的试验,单片机终于能够正常地运行了,当我看到我亲手制作的板子亮时,我的心中非常激动。 同时,我也认识到自己的知识不足,例如,有时不能正确认识、合理使用中断程序,这将是我以后努力提高的方面。参考文献:1STC89C51单片机使用手册.2马淑兰单片机技术及应用实例分析西安电子科技大学出版社,2009.3宋雪松手把手教你学51单片机清华大学出版社,2014.4姜志海单片机原理及应用清华大学出版社,2005.5张至良单片机原理与控制技术机械工业出版社,2001.6黄仁欣单片机原理及应用技术清华大学出版社,2005.7楼然苗·李光飞单片机课程设计指导北京航空航天大学出版,2007.