第1章概述随着我国社会经济的发展,城市化、城镇化进程的加快,道路交通堵塞问题日趋严重,如何对交通进行合理的管理和调度而尽可能减少堵车现象成为目前我国很多地方尤其是特大城市急需解决的问题,显然交通灯在其中起着不可缺少的作用。
当今,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。
但这一技术在19世纪就已出现了。
1858年,在英国伦敦主要街头安装了以燃煤气为光源的红、蓝两色的机械扳手式信号灯,用以指挥马车通行。
这是世界上最早的交通信号灯。
1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。
它由红绿两种旋转式方形玻璃提灯组成,红色表示“停止”,绿色表示“注意”。
1869年1月2日,煤气灯爆炸,使警察受伤,遂被取消。
电气启动的红绿灯出现在美国,这种红绿灯由红绿黄三色圆形的投光器组成,1914年开始安装于纽约市5号大街的一座高塔上。
红灯亮表示“停止”,绿灯亮表示“通行”。
1918年,又出现了带控制的红绿灯和红外线红绿灯。
带控制的红绿灯,一种是把压力探测器安在地下,车辆一接近红灯便变为绿灯;另一种是用扩音器来启动红绿灯,司机遇红灯时按一下嗽叭,就使红灯变为绿灯。
红外线红绿灯当行人踏上对压力敏感的路面时,它就能察觉到有人要过马路。
红外光束能把信号灯的红灯延长一段时间,推迟汽车放行,以免发生交通事故。
信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。
1968年,联合国《道路交通和道路标志信号协定》对各种信号灯的含义作了规定。
绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。
左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行横道的行人优先通行。
红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。
黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。
我国机动车辆发展迅速,而城镇道路建设由于历史等各种原因相对滞后。
道路拥挤、阻塞现象及交通事故常有发生。
如何利用当今自动控制技术,有效地疏导交通,提高城镇交通路口的通行能力,提高车辆速度,减少交通事故是值得我们研究的新课题。
交通灯是城市交通中的重要指挥系统,它与人们日常生活密切相关。
随着人们生活水平的提高,对交通管制也提出了更高的要求,因此提供一个可靠、安全、便捷的多功能交通灯控制系统有着现实的必要性,本文介绍的交通灯控制系统除具有一般的红绿灯显示功能外,还具有倒计时功能,以方便人们的生活需求。
此系统的核心控制器是MCS-51系列单片机中的AT89C51。
本次设计对红绿灯显示系统、按键系统都采用Kell软件调试程序,并给出了调试过程及程序代码。
第2章总体设计及核心器件介绍2.1总体设计整个设计以AT89C51单片机为核心,由时钟电路,振荡电路,复位电路,LED 数码管显示和交通灯组成。
如图2-1。
图2-1 硬件原理框图2.2AT89C51单片机AT89C51是美国ATMEL公司推出的系列单片机,将多种功能的8位CPU与FPEROM(快闪可编程/擦除只读存储器)结合在一个芯片上,是一种低功耗、高性能的CMOS控制器,为很多嵌入式控制应用提供了非常灵活而又价格适宜的方案,其性价比远高于同类型芯片。
它与MCS-51指令系统兼容,片内FPERON允许为程序存储器在线重复编程,也可用常规的EPROM编程器编程,可循环写入/擦除1000次。
89C51内含4KB的FPEROM,一般的EEPROM的字节擦除时间和写入时间基本上均为10ms,对于任一个实时控制系统来说,这样长的时间是不可能在线修改程序的。
2.3晶振电路晶振电路原理图如2-2。
图2-2 晶振模块原理图选取原则:传统做法,但能够实现所需,即最简单也最实用。
电容选取22μF,晶振为11.0592Hz。
2.4复位电路复位方式有多种,但本设计采用看门狗芯片X5045,接线图如图2-3所示。
图2-3 复位电路原理图在设定的定时时间内,89C51必须在CS/WDI引脚上产生一个由高到低的电平变化,以清内部定时器,即“喂狗”,否则X5045将产生一个复位信号。
2.5LED数码管显示电路在单片机应用系统中,数码管显示常用两种方法:静态显示和动态扫描显示。
所谓静态显示,就是每一个显示器都要占用单独的具有锁存功能的I/O接口用于笔划段字形代码。
这样单片机只能把要显示的字形代码发送到接口电路,就不用管它了,直到要显示新的数据时,再发送新的字形码,因此,使用这种方法单片机中CPU的开销小,可以提供单独锁存的I/O接口电路很多。
所以本设计采用串行转换电路74LS164的静态显示电路。
其电路图如图2-4所示。
图2-4 数码管显示静态驱动电路第3章硬件设计3.1引脚说明MCS-51系列单片机的外型封装有两种方式,双列直插式封装(PDID)和方型封装(PLCC、MQFP)。
8051、8031、8751的40条引脚均采用双列直插式封装。
80C51BH、80C31BH也有采用方型封装的。
方型封装有44条引脚,但其中4条引脚是空脚。
在此我们只介绍双列直插式封装,如图3-1所示。
图3-1 MCS-51单片机引脚结构图引脚功能说明如下:(1)主电源引脚VCC和VSSVCC——(40脚)接+5V电压;VSS——(20脚)接地。
(2)时钟电路引脚XTAL1和XTAL2XTAL1(19脚)片内振荡电路输入端,是外接晶体的一个引脚。
当采用外部振荡器时,此引脚接地。
XTAL2(18脚)片内振荡电路输出端,是外接晶体的另一端。
当采用外部振荡器时,此引脚接外部振荡源。
(3)控制信号引脚RST/VPD、ALE/PROG、PSEN和EA/VPPRST/VPD(9脚)当振荡器运行时,在此脚上出现两个机器周期的高电平将使单片机复位。
推荐在此引脚与VSS引脚之间连接一个约8.2k的下拉电阻,与VCC引脚之间连接一个约10μF的电容,以保证可靠地复位。
VCC掉电期间,此引脚可接上备用电源,以保证内部RAM的数据不丢失。
当VCC主电源下掉到低于规定的电平,而VPD在其规定的电压范围(5±0.5V)内,VPD就向内部RAM提供备用电源。
ALE/PROG(30脚):当访问外部存贮器时,ALE(允许地址锁存)的输出用于锁存地址的低位字节。
即使不访问外部存储器,ALE端仍以不变的频率周期性地出现正脉冲信号,此频率为振荡器频率的1/6。
因此,它可用作对外输出的时钟,或用于定时目的。
然而要注意的是,每当访问外部数据存储器时,将跳过一个ALE脉冲。
ALE端可以驱动(吸收或输出电流)8个LS型的TTL输入电路。
对于EPROM单片机(如8751),在EPROM编程期间,此引脚用于输入编程脉冲(PROG功能)。
PSEN(29脚):此脚的输出是外部程序存储器的读选通信号。
在从外部程序存储器取指令(或常数)期间,每个机器周期两次PSEN有效。
但在此期间,每当访问外部数据存储器时,这两次有效的PSEN信号将不出现。
PSEN同样可以驱动(吸收或输出)8个LS型的TTL输入。
EA/VPP(31脚):当EA端保持高电平时,访问内部程序存储器,但在PC (程序计数器)值超过0FFFH(对851/8751/80C51)或1FFFH(对8052)时,将自动转向执行外部程序存储器内的程序。
当EA保持低电平时,则只访问外部程序存储器,不管是否有内部程序存储器。
对于常用的8031来说,无内部程序存储器,所以EA脚必须常接地,这样才能只选择外部程序存储器。
对于EPROM型的单片机(如8751),在EPROM编程期间,此引脚也用于施加21V的编程电源(VPP)。
(4)输入/输出(I/O)引脚P0、P1、P2、P3P0口(39脚至32脚):是双向8位三态I/O口,在外接存储器时,与地址总线的低8位及数据总线复用,能以吸收电流的方式驱动8个LS型的TTL负载。
P1口(1脚至8脚):是准双向8位I/O口。
由于这种接口输出没有高阻状态,输入也不能锁存,故不是真正的双向I/O口。
P1口能驱动(吸收或输出电流)4个LS型的TTL负载。
对8052、8032,P1.0引脚的第二功能为T2定时/计数器的外部输入,P1.1引脚的第二功能为T2EX捕捉、重装触发,即T2的外部控制端。
对EPROM编程和程序验证时,它接收低8位地址。
P2口(21脚至28脚):是准双向8位I/O口。
在访问外部存储器时,它可以作为扩展电路高8位地址总线送出高8位地址。
在对EPROM编程和程序验证期间,它接收高8位地址。
P2可以驱动(吸收或输出电流)4个LS型的TTL负载。
P3口(10脚至17脚):是准双向8位I/O口,在MCS-51中,这8个引脚还用于专门功能,是复用双功能口。
P3能驱动(吸收或输出电流)4个LS型的TTL 负载。
作为第一功能使用时,就作为普通I/O口用,功能和操作方法与P1口相同。
3.2外部总线由于单片机本身硬件资源有限,在比较复杂的应用场合,其内部资源(如存储器、I/O口或中断源等)往往显得不足,甚至相差很远,这就需要进行外部扩展(尤其是低档的8031,它片内没有程序存储器,且只有P1口可供用户作I/O口,所以,一般情况下,也很难满足要求)。
为满足系统扩展要求,MCS-51单片机系统采用三总线结构,通过三总线和外部扩充部件相连。
三总线分别为地址总线、数据总线和控制总线。
(1)地址总线(AB):地址总线宽为16位,因此,其外部存储器直接寻址为64K字节,16位地址总线由P0口经地址锁存器提供8位地址(A0至A7);P2口直接提供8位地址(A8至A15)。
(2)数据总线(DB):数据总线宽度为8位,由P0提供。
(3)控制总线(CB):由P3口的第二功能状态和4根独立控制线RESET、EA、ALE、PSEN组成。
3.3交通灯电路设计中采用发光二极管作为交通灯来使用,单片机的I/O接口直接和交通灯(发光二极管)连接。
在十字路口的四组红、黄、绿三色交通灯中,东西方向道路上的两组同色灯连接在一起,南北方向道路上的两组同色的灯也彼此连接在,受单片机P1.0-P1.5控制。
单片机的I/O接口与交通灯电路的具体连接方式为:P1.0-P1.2分别接东西方向的红、黄、绿共6个放光二极管,P1.3-P1.5分别接南北方向的红、黄、绿共6个发光二极管。
12个发光二极管采用了共阳极的连接方式,因此I/O口输出低电平时,与之相连的发光二极管会亮,I/O口输出高电平时,相应的发光二极管会灭,如图3-2所示。
图3-2 交通灯电路第4章软件设计4.1软件主程序流程图设计图4-1 主流程流程图4.2软件子程序流程图设计图4-2子程序流程图第5章系统仿真及调试5.1Protues软件介绍Proteus软件是Labcenter Electronics公司的一款电路设计与仿真软件,它包括ISIS、ARES等软件模块,ARES模块主要用来完成PCB的设计,而ISIS模块用来完成电路原理图的布图与仿真。