交通灯控制系统的设计文档格式.docx
《交通灯控制系统的设计文档格式.docx》由会员分享,可在线阅读,更多相关《交通灯控制系统的设计文档格式.docx(10页珍藏版)》请在冰豆网上搜索。
1914年,电气启动的红绿灯出现在美国。
这种红绿灯由红绿黄三色圆形的投光器组成。
红灯亮表示“停止”,绿灯亮表示“通行”。
1918年,又出现了带控制的红绿灯和红外线红绿灯。
带控制的红绿灯,一种是把压力探测器安在地下,当车辆接近时,红灯便变为绿灯;
另一种是用扩音器来启动红绿灯,司机遇红灯时按一下喇叭,就使红灯变为绿灯。
红外线红绿灯当行人踏上对压力敏感的路面时,它就能察觉到有人要过马路。
红外光束能把信号灯的红灯延长一段时间,推迟汽车放行,以免发生交通事故。
1.2交通灯研究的意义
信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。
1968年,联合国《道路交通和道路标志信号协定》对各种信号灯的含义作了规定。
绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。
左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行横道的行人优先通行。
红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。
黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。
第二章总体方案设计
2.1设计任务
1.一般情况下A、B两通道都有车,两道正向放行35s,然后左向行驶放行15s。
[当A道放行时(绿),B道禁止(红),反之亦然,放行时间中包含有闪烁时间]
2.绿灯→红灯转换必须经5s警视状态(用闪烁表示)
3.若两道都无车时则保持当前有车时的状态
4.若一路通行无阻50s后,另一路无车,则此道按照规则继续放行(35s+15s)直到另一路有车,但此道必须放行完后才能转到另一道去。
5.设置紧急情况处理器,当紧急情况发生时,两道都亮红灯,让紧急车辆通过,完备再回到当前的状态
6.在数码管上显示各道通行的时间(倒计时)
2.2方案介绍
设计以单片机为核心,以数码管作为倒计时指示,根据设计的要求我们考虑了各功能模块的几种设计方案,以求最佳方案,实现实时显示系统各种状态,系统还增设了根据交通拥挤情况可分别设置主干道和次干道的通行时间,以提高效率,缓减交通拥挤。
东西(A)、南北(B)两干道交于一个十字路口,各干道有一组红、左转绿、绿三个指示灯,指挥车辆和行人安全通行。
红灯亮禁止通行,绿灯亮允许通行。
根据红绿灯的转换状态绿灯35,左转15S,一道通行完成以后再由另一路通行。
绿灯转换为红灯必须经5s警视状态(用闪烁表示).
把设计任务细化为四个状态,其对应状态:
如图2-1:
图2-1状态转换图
整个交通灯控制由四个状态组成,可以用程序设计实现,也可用时序逻辑实现.以下方案就是分别用了这两种方法。
方案1设计思想:
采用分模块设计的思想,程序设计实现的基本思想是一个计数器,选择一个单片机,其内部为一个计数,是十六进制计数器,模块化后,通过设置或程序清除来实现状态的转换,由于每一个模块的计数多不是相同,这里的各模块是以预置数和计数器计数共同来实现的,所以要考虑增加一个置数模块,其主要功能细分为,对不同的状态输入要产生相应状态的下一个状态的预置数,如图中A道和B道,分别为次干道的置数选择和主干道的置数选择。
以主干道为例,简述其设计思想。
如前分析,已经确定该系统有四个状态,而置数子模块可定要将下一状态的预置数准备好,所以很容易得到主干道的置数表如表2-1所示
表2-1置数表
状态
主干道预置数
次干道预置数
00
35
15
01
15(左转)
10
11
由该表,就可以通过程序循环的方法设计该模块,主要思想是通过数据判断指令、跳转指令实现,由主控制器计时和中断产生的四个状态去译码,从而得到不同的输出,即预置数,由上分析可用一个计数器和跳转指令去完成的预置数。
而红绿灯的显示也是一样,由状态分析可以得出红绿灯的变化表如表2-2所示:
表2-2红绿灯变化表
主干道灯显示
次干道灯显示
红灯
绿灯
左转绿灯
通过这张表就可以用组合电路实现该功能了,可以用数据选择器的思想,在本系统中,直接通过门电路的译码,接下来就是计数模块了,其主要的功能细分为,要从预置数开始递减计数,一个状态结束,通过判断,通知主控制模块,使之进入下一模块。
还有一个必须考虑到的就是,预置数必须在下一个状态来之前准备好,而红绿灯的状态变化,必须和计数状态同步,于是引起预置数变化的程序要超前于系统本身的状态变化,所以,系统中的两个状态转换时,在上一状态结束时设置预置数,而控制红绿灯的是随着系统本身状态的变化而变化,体现在本子电路中就是有两组电路去判断符合的状态。
方案2设计思想:
状态转换表如表2-3所示:
表2-3状态转换表
00(15S)
01(05S)
黄灯
10(15S)
11(05S)
本方案分三步:
(1)要建立三路信号灯的控制系统,本设计采用7408芯片通过组合逻辑控制三路灯的显示关系。
(2)建立显示控制系统,本设计采用74190芯片倒计时控制,每个方向用两片相连实现,另外用74153芯片,因为分析中设置的时间末位均为5,所以只要用一片74153对高位置位,将低位的初值预置锁定为5,而高位则根据需要由反馈部分提供预置值。
(3)建立反馈和细节连接部分,本部分主要解决显示和灯控的同步问题本系统采用倒计时系统减为0,如当系统减为0时通过两个D触发器得到两个变量,即为开头分析中的状态,通过它的变化得到不同的逻辑关系,驱动74153控制哪组灯亮(对应关系如表所示),另外他还要同步反馈到显示系统的置数环节。
注意:
本实验中若采用更复杂的四片74190控制主干道的两组灯,再用八片74153分别对74190置数可实现任意数值的交通灯系统。
另外对7408片子的控制红灯的端口用一个与门将一端再接一个频率一定的方波,使一边为黄灯时,另一边的红灯在闪烁。
2.3方案比较:
方案1(以下称1)用了模块设计,而方案2(以下称2)采用的是一般设计,相比之下1有较强的可读性和较强的可修改性,而2则在设计上显得较简单,设计纯朴,便于测试,它的优势则在于提供了一条较为便捷的解决方案。
2首先将许多逻辑关系简化到极点,而后将其一起集成用较少的芯片去完成所需功能。
我们从中可以得出的是,我们最终的设计应该尽量使用模块化设计。
对工程设计人员来说,将来的产品无论从修改还是升级考虑对有好处,但另外我们又需将设计简单化,因此我觉得在设计初期尽可能的简单化设计,而一旦设计的各项测试通过了,在有可能的条件下将设计模块化,所以本设计以第一方案为主进行。
第三章系统硬件设计
3.1单片机最小系统
3.1.1时钟电路
如图3-1所示,XTAL1是片内振荡器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。
内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz。
晶振的频率可以在1MHz-24MHz内选择。
电容取30PF左右。
系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路。
AT89单片机内部有一个用于构成振荡器的高增益反相放大器。
引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。
这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。
外接晶体谐振器以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中。
对外接电容的值虽然没有严格的要求,但电容的大小会影响震荡器频率的高低、震荡器的稳定性、起振的快速性和温度的稳定性。
因此,此系统电路的晶体振荡器的值为12MHz,电容应尽可能的选择陶瓷电容,电容值约为22μF。
在焊接刷电路板时,晶体振荡器和电容应尽可能安装得与单片机芯片靠近,以减少寄生电容,更好地保证震荡器稳定和可靠地工作。
3.1.2复位电路
在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此引腿时,将使单片机复位,只要这个脚保持高电平,51芯片便循环复位。
复位后P0-P3口均置1引脚表现为高电平,程序计数器和特殊功能寄存器SFR全部清零。
当复位脚由高电平变为低电平时,芯片为ROM的00H处开始运行程序。
复位是由外部的复位电路来实现的。
片内复位电路是复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,它的输出在每个机器周期的S5P2,由复位电路采样一次。
复位电路通常采用上电自动复位和按钮复位两种方式,此电路系统采用的是上电与按钮复位电路。
当时钟频率选用6MHz时,C取22μF,Rs约为200Ω,Rk约为1K。
复位操作不会对内部RAM有所影响。
常用的复位电路如图3-2所示:
图3-1时钟电路图3-2复位电路图
3.1.3电源电路
用7805实现的全桥整流电路
如果输入端的是220V的话,那么N1:
N2=1:
0.04,如图3-3所示:
3.2整体电路的设计
整个电路电路图如图3-4所示:
图3-4
第四章系统软件流程图设计
4.1程序设计流程图
1.系统设计总框图,如4-1所示:
图4-1系统总体设计框图
(1)程序设计总框图如图4-2所示:
图4-2程序设计框图
1.主程序流程图如图4-3所示:
是
否
图4-3主程序流程图
2.显示子程序流程图如图4-4所示:
图4-4显示子程序流程图
3.紧急中断程序流程图如图4-5所示:
图4-5紧急中断程序流程图