交通信号灯系统设计.docx
- 文档编号:16503853
- 上传时间:2023-07-14
- 格式:DOCX
- 页数:33
- 大小:295.36KB
交通信号灯系统设计.docx
《交通信号灯系统设计.docx》由会员分享,可在线阅读,更多相关《交通信号灯系统设计.docx(33页珍藏版)》请在冰点文库上搜索。
交通信号灯系统设计
第1章引言
交通的发达,标志着城市的发达,相对交通的管理则显得越来越重要。
对于复杂的城市交通系统,为了确保安全,保证正常的交通秩序,十字路口的信号控制必需按照一定的规律变化,以便于车辆行人能顺利地通过十字路口。
这一技术在19世纪就已出现了。
1858年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。
这是世界上最早的交通信号灯。
1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。
它由红绿两以旋转式方形玻璃提灯组成,红色表示“停止”,绿色表示“注意”。
1869年1月2日,煤气灯爆炸,使警察受伤,遂被取消。
电气启动的红绿灯出现在美国,这种红绿灯由红绿黄三色圆形的投光器组成,1914年始安装于纽约市5号大街的一座高塔上。
红灯亮表示“停止”,绿灯亮表示“通行”。
1918年,又出现了带控制的红绿灯和红外线红绿灯。
带控制的红绿灯,一种是把压力探测器安在地下,车辆一接近红灯便变为绿灯;另一种是用扩音器来启动红绿灯,司机遇红灯时按一下嗽叭,就使红灯变为绿灯。
红外线红绿灯当行人踏上对压力敏感的路面时,它就能察觉到有人要过马路。
红外光束能把信号灯的红灯延长一段时间,推迟汽车放行,以免发生交通事故。
信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。
1968年,联合国《道路交通和道路标志信号协定》对各种信号灯的含义作了规定。
绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。
左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行横道的行人优先通行。
红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。
黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。
第2章设计方案与程序设计要求
2.1交通灯方案设计
A、B两干道交于一个十字路口,各干道有一组红(1与4为红灯)、黄(2与5为黄灯)、绿(3与6为绿灯)三色的指示灯,指挥车辆和行人安全通行。
红灯亮禁止通行,绿灯亮允许通行。
黄灯亮提示人们注意红、绿灯的状态即将切换,且黄灯燃亮时间为A、B两干道的公共停车时间。
指示灯燃亮的方案设计见图2-1
图2-1交通灯设计方案
2.2交通灯方案论证
方案1:
采用标准的AT89C51单片机作为控制器;通行倒计时显示采用2位LED数码管;东西、南北直行的通行指示灯采用高亮光发光二极管;特殊情况车辆通行采用实时中断完成,按以上系统构架设计,单片机端口资源能满足要求。
该系统具有电路简单,设计方便,显示亮度高,耗电较少,可靠性高等特点。
方案2:
采用标准AT89C51单片机作为控制器,通行倒计时显示采用16×16点阵LED发光管,车道通行指示也采用16×16点阵LED发光管,采用大功率三极管作为驱动管来驱动LED发光管。
这种设计方案的图案显示逼真,单片机占用端口资源少;缺点是需要大量的硬件,电路复杂,耗电量大,在模型制作中较少采用。
放案3:
采用AT89C51单片机作为控制器,通行倒计时及车道通行显示采用单块LED液晶点阵显示器,这种方案设计占用单片机的端口最少,耗电也最小,虽然显示图案也很精美,但由于亮度太暗,晚上还得开背光灯,所以较少采用。
通过以上综合分析可以看出,方案1具有综合设计优点,因此城市道口交通灯控制系统模型采用方案1设计。
2.3路口交通模型介绍
一个典型的十字路口,分别用1,2,3,4(表示东、南、西、北4方向)表示4个流向的主车道,用L,S,R,P分别表示各主车道的左行车道、直行车道、右行车道以及人行横道,其实际路口交通示意图如图2-2所示。
通过分析得知,除了4个右行车道外,在同一时间,最多只能有两个车道通行,如1L,1S通行时,其他车道都会被阻断。
所以在设计红绿灯时,可以两两组合,共有4组(如lL-1S,2L-2S,3L-3S,4L-4S);通行顺序如图2所示。
其中,“1-2P”表示1P和2P可以通过路口2通行。
2.4交通灯的设计要求及实现
首先,要了解实际交通灯的变化规律.假设一个十字路口为东西南北走向.南北方向用A线表示,东西方向用B线表示,
初始状态0为A线红灯,B线红灯,延时1s.然后转状态1
状态1A线直行绿灯通车,其他均为红灯,延时30s转状态2
状态2A线直行绿灯变为黄灯、延时5s转状态3
状态3A线直行变为红灯、B线直行红灯变为绿灯,延时30s转状态4
状态4B线直行绿灯变为黄灯,延时5s转状态5
状态5A线直行红灯变为绿灯,B线直行变为红,依次循环,这里的延时采用定时器1延时。
其次,当有紧急救护车出现时,应使东西南北四个方向全亮红灯,并延时10s,以便急救车通过,同时对通行时间进行倒计时,从P1口输出在发光二极管,使用8051定时器/计数器1作为定时器实现子程序延时.技术上可用外部中断0发出一单脉冲向CPU申请中断。
再次,一般交通信号灯控制程序中使用软件延时,软件延时是靠执行一个循环程序以进行时间延迟.软件定时的特点是时间精确,且不需外加硬件电路.但软件定时要占用CPU,增加CPU开销,因此软件定时的时间不宜太长.本程序使用定时器/计数器1来定时,定时电路已经集成在芯片中,这种由硬件电路完成,不占CPU时间.它通过对系统时钟脉冲的计数来实现,即每个机器周期产生一个计数脉冲,也就是每个机器周期计数器加1.计数值通过程序设定,改变计数值,也就改变了定时时间,使用起来既灵活又方便.
第3章硬件系统设计
单片机概述
单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。
单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。
通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:
中央处理器、存储器和I/O接口电路等。
因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。
单片机经过1、2、3、3代的发展,目前单片机正朝着高性能和多品种方向发展,它们的CPU功能在增强,内部资源在增多,引角的多功能化,以及低电压底功耗。
在本设计中,采用8051单片机作为主控制器,8051的P1口作为输出口,控制交通灯的亮与灭,用LED1~LED3表示主干线的信号灯,用LED4~LED6表示支干线的信号灯,用8051的外部中断0来控制当有紧急情况时的请求信号,
3.1MCS-51的硬件结构
MCS-51单片机的片内结构如图3-1所示。
MCS-51单片机是把那些作为控制应用
图3-1单片机的片内结构
所必须的基本功能部件都集成在一个尺寸有限的集成电路芯片上。
它由如下功能部件组成。
●微处理器(CPU);
(1)数据存储器(RAM);
(2)程序存储器(ROM/EPROM)(8031没有此部件);
(3)4个8位并行I/O口(P0口、P1口、P2口、P3口);
(4)1个串行口;
(5)2个16位定时器/计数器;
(6)中断系统;
(7)特殊功能寄存器(SFR)。
上述各功能部件都是通过片内单一总线连接而成(见图3.1),其基本结构依旧是CPU加上外围芯片的传统微型计算机结构模式。
但CPU对各种功能部件的控制是采用特殊功能寄存器(SFR—SpecialFunctionRegister)的集中控制方式。
●下面介绍图3.1中的各功能部件
1.CPU(微处理器)
MCS-51单片机中有1个8位的CPU,与通用的CPU基本相同,同样包括了运
算器和控制器两大部分,只是增加了面向控制的位处理功能。
2.数据存储器(RAM)
片内为128byte(52个系列的为256byte),片外最多可外扩64byte.片内
的128byte的RAM,以高速RAM的形式集成在单片机内,可以加快单片机运行的速度,而且这种结构的RAM还可以降低功耗。
3.程序存储器(ROM/EPROM)
用来存储程序,8031无此部件;8051为4Kbyte的ROM;8751则为4Kbyte
的EPROM。
如果片内只读存储器的容量不够,片外最多可外扩只读存储器的容量至64Kbyte.
4.中断系统
8051具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个
串行中断,可满足不同的控制要求,并具有2级的优先级别选择。
5.定时器/计数器
片内有2个16位的定时器/计数器(52个子系列有3个16位的定时器/计
数器),具有四种工作方式。
6.串行口
1个全双工的串行口,具有四种工作方式。
可用来进行串行通信,扩展并行I/O口,甚至与多个单片机相连构成多机系统,从而使单片机的功能更强,且应用更广。
7.P1口、P2口、P3口、P0口
为4个并行8位I/O口。
8.特殊功能寄存器(SFR)
特殊功能寄存器共有21个,用于CPU对片内各功能部件进行管理、控制、
监视。
实际上是一些控制寄存器和状态寄存器,是一个具有特殊功能的RAM区。
3.2
MCS-51的引脚说明:
MCS-51系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,下图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。
现在我们对这些引脚的功能加以说明:
图3-2单片机的引脚图
MCS—51的引脚说明:
(1)P1口:
8位准双向I/O口,可驱动4个LS型TTL负载。
(2)RST/VPD(9脚)
RST是复位信号输入端,高电平有效。
当单片机运行时,在此引脚加上持续时间大于两个机器周期(24个时钟振荡周期)的高电平时,就可以完成复位操作。
在单片机正常工作时,此脚应为小于或等于0.5V的低电平。
VPD为本引脚的第二功能,即备用电源的输入端。
当主电源Vcc发生故障,降低到某一规定值的低电平时,将+5V电源自动接入RST端,为内部RAM提供备用电源,以保证片内RAM中的信息不丢失,从而使单片机在复位后能继续正常运行。
(3)P3口:
8位准双向I/O口,双功能复用口,可驱动4个LS型TTL负载。
当CPU不对P3口进行字节或位寻址时,内部硬件自动将口锁存器的Q端置“1”。
这时P3口可以作为第二功能使用。
具体定义如下表
P3口的第二功能定义
(4)XTAL1(19脚):
接外部晶体的一个引脚。
该引脚内部是一个反相放大器(片内震荡器)的输入端。
如果采用外接晶体震荡器,此引脚应接地。
(5)XTAL2(18脚):
接外部晶体的另一端,在该引脚内部接至内部反相放大器的输出端。
若采用外部时钟震荡器时,该引脚接收时钟震荡器的信号,即把此信号
直接接到内部时钟发生器的输入端。
(6)P0口:
双向8位三态I/O口,为地址总线(低8位)及数据总线分时复用口,可驱动8个LS型TTL负载。
(7)
/VPP(EnableAddress/VoltagePulseofPrograming,31脚)
功能为内/外程序存储器选择控制端.
当
脚为高电平时,单片机访问片内程序存储器,但在PC值超过0FFFFH(4Kbyte地址范围,对8051、8751)时,将自动转向执行外部程序存储器内的程序.
当
脚为低电平时,单片机则只访问外部程序存储器,不论是否有内部程序存储器.对于8031,因其无内部程序存储器,所以该脚必须接地.
VPP为本引脚的第二功能.在对EPROM型单片机8751片内EPROM固化编程时,用于施加较高的编程电压(例如+21V或+12V).对于89C51,则加在VPP脚的编程电压为+12V或+5V.
(8)ALE/
(AddressLatchEnable/PROGramming,30脚)
ALE为地址锁存允许信号,当单片机上电正常工作后,ALE引脚不断输出正脉冲信号.当单片机访问外部存储器时,ALE输出信号的负跳沿用作单片机发出的低8位地址(经外部锁存器锁存)的锁存控制信号.即使不访问外部锁存器,ALE端仍有正脉冲信号输出,此频率为时钟振荡器频率fosc的
.
应当注意的是,每当MCS-51访问外部数据存储器时(即执行的是MOVX类指令),在两个机器周期中ALE只出现一次,即丟失一个ALE脉冲.因此,严格来说,用户不宜用ALE作精确的时钟源或定时信号.ALE端可以驱动8个LS型TTL负载.
为本引脚的第二功能.在对片内EPROM型单片机(例如8751)编程写入时,此引脚作为编程脉冲输入端.
(9)
(ProgramStrobeEnable,29脚)
程序存储器允许输出控制端.在单片机访问外部程序存储器时,此引脚输出脉冲负跳沿作为读外部存储器的选通信号.此引脚接外部程序存储器的OE(输出允许)端.
端可以驱动8个LS型TTL负载.
(10)P2口:
8位准双向I/O口,与地址总线(高8位)复用,可驱动4个LS型TTL负载。
3.3交通灯硬件电路图
3.3.1硬件电路工作原理
●8051P1口输出信号与信号灯连接:
由于发光二极管为共阳极接法,输出端口为低电平时,对应的二极管发光,所以可以用置位方法点亮红,绿,黄发光二极管。
●8051输出信号与数码管的连接:
单片机经P2口与七段数码管连接,P3口与数码管的位选端连接,七段数码管采用共阳级连接,其显示原理为:
通过同名管脚上所加电平的高低来控制发光二极管是否点亮而显示不同的数字,如a,b,c,d,e,f,g,DP管脚上加上驱动代码80H,同时位选端1、2置为高电平,则数码管全亮显示为数字8。
采用共阳级连接:
其中
P2.0-aP2.1-bP2.2-cP2.3-dP2.4-eP2.5-fP2.6-gP2.7-DP
七段数码管驱动代码表
显示字符
Dpgfedcba
驱动代码(16进制)
0
11000000
C0H
1
11111001
F9H
2
10010100
A4H
3
10100000
B0H
4
10011001
99H
5
10010010
92H
6
10000010
82H
7
11111000
F8H
8
10000000
80H
9
10010000
90H
第4章软件系统设计
4.1软件系统设计的说明
在本设计中采用了硬件计数与软件计数相结合的方法,用8051的定时器T0产生一定的定时时间,然后在利用软件进行计数,从而产生秒信号。
定时器T0采用中断方式,当定时时间到时,在T0中断服务程序中实现秒的倒计数,从而控制LED显示器倒计数显示准行和禁行时间。
另外将T0中断的优先级别设置得高于其他中断,从而保证了时间的准确性。
4.2定时器/计数器硬件延时
●每秒钟的设定
延时方法可以有两种:
一种是利用MCS-51内部定时器产生溢出中断来确定1秒的时间,另一种是采用软延时的方法。
在工业检测、控制中,许多场合都要用到计数或定时功能,例如外部脉冲进行计数、产生精确的定时时间等。
MCS-51单片机内有两个可编程的定时器/计数器T1、T0,以满足这两方面的需要,两个定时器/计数器都具有定时和计数两种工作模式
(1)计数器工作模式
计数功能是对外来脉冲进行计数。
MCS-51芯片有T0(P3.4)和T1(P3.5)两个输入引脚,分别是这两个计数器的计数输入端。
每当计数器的计数输入引脚的脉冲发生负跳变时,计数器加1。
(2)定时器工作模式
定时功能也是通过计数器的计数来实现的,不过此时的计数脉冲来自单片机的内部,即每个机器周期产生一个计数脉冲,也就是每经过1个机器周期的时间,计数器加1。
如果MCS-51采用12MHz晶体,则计数频率为1MHz,即每过1us的时间计数器加1。
这样可以根据计数值计算出定时时间,也可以根据定时时间的要求计算出计数器的初值。
MCS-51单片机的定时器/计数器具有4种工作方式(方式0、方式1、方式2、方式3),其控制字均在相应的功能寄存器中,通过对它的特殊功能寄存器的编程,我们可方便地选择定时器/计数器两种工作模式和4种工作方式。
4.2.1定时器/计数器的结构
MCS-51单片机的定时器/计数器结构如图4-1所示,定时器/计数器T0由特殊功能寄存器TH0、TL0构成,定时器/计数器T1由特殊功能寄存器TH1、TL1构成。
特殊功能寄存器TMOD用于选择定时器/计数器T0、T1的工作模式和工作方式。
特殊功能寄存器TCON用于控制T0、T1的启动和停止计数,同时包含了T0\T1的状态。
TMOD、TCON这两个寄存器的内容由软件设置。
单片机复位时,两个寄存器的所有位都被清0。
图4-1MCS-51定时器/计数器结构图
4.2.2工作方式控制寄存器TMOD
工作方式寄存器TMOD用于选择定时器/计数器的工作方式,它的字节地址为89H,不能进行位寻址,其格式为
8位分为两组,高4位控制T1,低4位控制T0。
下面对TMOD的各个位作以说明。
(1)GATE——门控位
GATE=0时,以运行控制位TRX(X=0,1)来启动定时器/计数器运行。
GATE=1时,用外中断引脚(
或
)上的高电平来启动定时器/计数器运行。
(2)M1、M0——工作方式选择位
M1、M0共有4种编码,对应于4种工作方式的选择,如表4-1所示。
(3)C/
——计数器模式和定时器模式选择位
C/
=0,为定时器模式
C/
=1,为计数器模式,计数器对外部输入引脚T0(P3.4脚)或(P3.5脚)的外部脉冲(负跳变)计数。
表4-1工作方式选择
4.2.3定时器/计数器控制寄存器TCON
TCON的字节地址为88H,可进行位寻址,位地址为88H-8FH。
TCON的
格式为低4位与外部中断有关,高4位的功能如下。
(1)TF1、TF0——计数溢出标志位
当计数器计数溢出时,该位置“1”。
使用查询方式时,此位作为状态位供CPU查询,但注意查询有效后,应以软件方法及时将该位清“0”。
使用中断方式时,此位作为中断请求标志位,进入中断服务程序后由硬件自动清0。
(2)TR1、TR0——计数运行控制位
TR1位(TR0位)=1,启动定时器/计数器工作
TR1位(TR0位)=0,停止定时器/计数器工作
4.2.4定时器/计数器初值计算
定时器工作时必须给计数器送计数器初值,这个值是送到TH和TL中的。
他是以加法记数的,并能从全1到全0时自动产生溢出中断请求。
因此,我们可以把计数器记满为零所需的计数值设定为C和计数初值设定为TC可得到如下计算通式:
TC=M-C
式中,M为计数器模值,该值和计数器工作方式有关。
在方式0时M为213;在方式1时M的值为216;在方式2和3为28.
●计算公式
时钟周期是单片机的基本时间单位,若时钟的晶体振荡频率为fosc,则时钟周期Tosc=1/fosc。
T=(M-TC)TCy或TC=M-T/TCy
TC为定时初值,MCS-51单片机每12个时钟周期为一个机器周期,即TCy=12/fosc.若fosc=6MHz。
则TCy=2us;fosc=12MHz,则TCy=1us。
如单片机的主脉冲频率为12MHz ,经过12分频
方式0:
Tmax=213 ×1us=8.192ms
方式1:
Tmax=216×1us=65.536ms
方式2和3:
Tmax=28×1us=256us
显然1秒钟已经超过了计数器的最大定时间,所以我们只有采用定时器和软件相结合的办法才能解决这个问题.
●1秒的方法
我们采用在主程序中设定一个初值为20的软件计数器和使T0定时50ms.这样每当T0到50ms时CPU就响应它的溢出中断请求,进入他的中断服务子程序。
在中断服务子程序中,CPU先使软件计数器减1,然后判断它是否为零。
为零表示1秒已到可以返回到输出时间显示程序。
4.2.5相应程序代码
(1)主程序
定时器需定时50ms,故T0工作于方式1。
初值:
TC=M-T/TCy =216-50ms/1us=15536=3CBOH
所以T0的初值为
TH0=3CHTL0=0B0H
ORG0000H
MAIN:
MOVTMOD,#01H;令T0为定时器方式1
MOVTH0,#3CH;装入定时器初值
MOVTL0,#0BOH ;
MOVIE, #82H;开T0中断
SETBTR0 ;启动T0计数器
MOVR2,#14H ;软件计数器赋初值
LOOP:
AJMP$ ;等待中断
(2)中断服务子程序
ORG000BH
AJMP INT
ORG0030H
INT:
DJNZR2,NEXT
AJMPTIME;跳转到时间及信号灯显示子程序
MOV R2,#14H ;恢复R2值
MOVTH0,#3CH;重装入定时器初值
MOVTL0,#0BOH
MOVIE,#82H
RET
4.3软件延时
MCS-51的工作频率为2-12MHZ,我们选用的8051单片机的工作频率为6MHZ。
机器周期与主频有关,机器周期是主频的12倍,所以一个机器周期的时间为12*(1/6M)=2us。
我们可以知道具体每条指令的周期数,这样我们就可以通过指令的执行条数来确定1秒的时间。
具体的延时程序如下:
DELAY:
MOVR7,#10
DD3:
MOVR6,#200
DD2:
MOVR5,#250
DD1:
DJNZR5,DD1
DJNZR6,DD2
DJNZR7,DD3
RET
END
第5章AT89C51系统的程序分析
单片机AT89C51在交通灯系统中起主要作用,它完成了信号灯的亮、灭,和LED显示管的时间显示。
5.1AT89C51主程序
本系统的主程序设计比较简单,当单片机启动后,本系统按以下流程图顺序执行主程序,其主程序流程图如下所示:
5.2AT89C51的外部中断分析
本设计中采用外部中断0来控制当有特殊情况时的通行信号,当按动手动开关时,系统执行中断并按以下顺序循环执行,中断流程图如下所示:
第6章结论
本系统根据8051的各引脚的具体功能,对其芯片进行了充分的利用。
系统采用MSC-51系列单片机Intel8051和LED为中心器件来设计交通灯控制器,实现了通过8051芯片的P1口设置红、绿、黄灯燃亮时间的功能;红绿黄灯循环点亮,延时一段时间后绿灯变为黄灯,以警示车辆的通行。
当遇到紧急情况时可通过外部中断信号使各路口的信号灯都为红灯。
系统不足之处是不能控制车辆的左、右转、以及自动根据车流改变红绿灯时间等,这是由于本身专业知识的不足以及车流量情况所定,如果有需要可以设计扩充原系统来实现。
通过这次毕业设计,使我得到了一次用专业知识、专业技能分析和解决问题全面系统的锻炼。
使我在单片机的基本原理、单片机应用系统开发过程,以及在常用编程设计思路技巧(特别是汇编语言)的掌握方面都能向前迈了一大步,为日后成为合格的应用型
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 交通 信号灯 系统 设计