1、毕 业 设 计 (论 文 )电 气 工 程 系(院) 机电一体化 专业毕业设计(论文)题目 城市交通信号控制器的设计 学生姓名 班 级 学 号 指导教师 完成日期 年 月 日摘 要近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。交通信号灯控制方式很多。本系统采用 MSC-51 系列单片机 ATSC
2、51 和可编程并行 I/O 接口芯片8255A 为中心器件来设计交通灯控制器,实现了能根据实际车流量通过AT89C51 芯片的 P1 口设置红、绿灯燃亮时间的功能;红绿灯循环点亮,倒计时剩 5 秒时黄灯闪烁警示(交通灯信号通过 PA 口输出,显示时间直接通过 8255的 PC 口输出至双位数码管) ;车辆闯红灯报警;通过设置 “看门狗电路”来防止单片机死机,提高单片机系统的抗干扰性;绿灯时间可检测车流量并可通过双位数码管显示。本系统实用性强、操作简单、扩展功能强。 关键词:单片机;交通灯;闯红灯;检测车流量目 录1 引言.12 系统总体方案 .12.1 交通管理的方案论证.12.2 交通灯控制
3、的功能要求.22.3 系统总框图.32.4 系统工作原理.43 系统硬件设计 .43.1 AT89C51 单片机简介.53.2 89C51 单片机复位电路 .73.3 时钟电路.73.4 键盘接口电路.73.5 8255A 与 74LS373 简介 .93.6 八段 LED 数码管显示电路 .113.7 看门狗硬件电路.123.8 红外对管检测电路.133.9 驱动和放大电路.143.10 交通指示灯电路.163.11 报警电路和按键控制电路.174 系统软件设计 .184.1 1 秒的设定和 T0 定时器 .184.2 东西、南北路口红外检测中断子程序.204.3 1ms 软件延时子程序 .
4、214.4 时间显示子程序.214.5 黄灯闪烁 5s 子程序 .224.6 检测车流量与显示子程序.234.7 报警子程序.244.8 主程序.25结 论 .27致 谢 .27参考文献 .28附录 A 总硬件电路图 .30附录 B 十字路 口交通灯控制器的代码 .3111 引言交通运输是城市功能活动的命脉,它直接影响社会经济、生产与生活的各个方面。我国机动车辆发展迅速,而城镇道路建设由于历史等各种原因相对滞后。道路拥挤、阻塞现象及交通事故常有发生。如何利用当今自动控制技术,有效地疏导交通,提高城镇交通路口的通行能力,提高车辆速度,减少交通事故是值得我们研究的新课题。交通灯是城市交通中的重要指
5、挥系统,它与人们日常生活密切相关。随着人们生活水平的提高,对交通管制也提出了更高的要求,因此提供一个可靠、安全、便捷的多功能交通灯控制系统有着现实的必要性。本设计旨在设计出一款良好的交通灯控制系统来改善交通紊乱问题,目的性强,也具有很强的现实意义。国内外学者对这一学科也早有研究,控制方案各种各样,并且各有优缺点。从1868年英国伦敦首次使用燃汽色灯信号以来,城市交通信号机由手动到自动,交通信号由固定周期到可变周期,系统控制方式由点控到面控,从无车辆检测器到有车辆检测器,经历了近百年的历史 1。到1963年加拿大多伦多市建立了一套使用IBM650型计算的集中协调感应控制信号系统,从而标志着城市道
6、路交通信号系统的发展进入了一个新的阶段。之后,美国、英国、德国、日本、澳大利亚等多家相继建成数字电子计算机区域交通控制系统,这种系统一般还配备交通监视系统组成交通管制中心。在西方发达国家,交通控制系统基本上完成了由传统的交通控制系统向智能交通控制系统ITS(Intelligent Transport systems)的转变 2。而在我国,智能交通系统则刚刚处于起步阶段。在20世纪90年代初,我国的相关学者开始意识到研究和开发ITS的重要性。到90年代中期,由于受到国外ITS研发的影响,政府部门也开始重视对ITS的研究。基于整个交通控制系统的发展情况,本设计主要进行如下方面的研究:用智能,集成,
7、且功能强大的 MCS-51 系列单片机中的 AT89C51 为控制中心,设计出一套十字路口的交通控制系统,以指挥该路口的实时通行状态。本设计除了有红、黄、绿信号灯状态控制能实现基本的交通功能外,还增加了倒计时显示提示,基于实际情况,又要求了对车流量检测功能, “看门狗芯片”保护功能,违规检测及处理、键盘可设置等强大功能,以方便人们的生活需求。2 系统总体方案2.1 交通管理的方案论证2.1.1 方案设想东西、南北两干道交于一个十字路口,各干道有一组红、黄、绿三色的指2示灯,指挥车辆和行人安全通行。红灯亮禁止通行,绿灯亮允许通行。黄灯亮提示人们注意红、绿灯的状态即将切换,且黄灯燃亮时间为东西、南
8、北两干道的公共停车时间 5。设东西道比南北道的车流量大,指示灯燃亮的方案见表2.1。表 2.1 指示灯的燃亮方案60S 5S 80S 5S 东西道 红灯亮 黄灯亮 绿灯亮 黄灯亮 南北道 绿灯亮 黄灯亮 红灯亮 黄灯亮 表 2.1 说明:(1)当东西方向为红灯,此道车辆和行人禁止通行;南北道为绿灯,此道车辆和行人通过。时间为 60 秒。(2)黄灯闪烁 5 秒,警示车辆和行人红、绿灯的状态即将切换。(3)当东西方向为绿灯,此道车辆通行;南北方向为红灯,南北道车辆禁止通过。时间为 80 秒。东西方向车流大通行时间长。(4)这样如上表的时间和红、绿、黄出现的顺序依次出现这样行人和车辆就能安全畅通的通
9、行。2.1.2 键盘控制方案键盘分为独立式键盘和行列式键盘 3。本次设计考虑了这两种键盘方案:方案一:采用行列式键盘。行列式键盘每条行线与列线在交叉处不直接相通,而是通过一个按键加以连接,当按键较多时可采用行列式键盘以节省 I/O接口。方案二:采用独立式键盘。独立式键盘接口电路配置灵活,硬件结构简单,工作可靠但每个按键必须占用一跟 I/O 接口线,I/O 接口线浪费较大,在单片机应用系统中,有时只需要几个简单的按键向系统输入信息,可将按键直接在一根 I/O 接口线上,故只在按键数量不多时采用。本设计应用的接口数量不多,故选择此方案。2.1.3 看门狗保护方案在单片机系统中,看门狗的设计一般采用
10、硬件和软件两种方式。本次设计考虑了这两种方案:方案一:采用软件看门狗。软件看门狗是利用单片机片内闲置的定时器/计数器单元作为看门狗,在单片机程序中适当的插入监控指令,当程序出现异常或进入死循环时,利用软件将程序计数器 PC 赋予初始值,强制性的使程序重新开始运行。软件看门狗的最大特点是无须外加硬件电路,经济性好。但可靠3性差,需要占用系统内存。当然,如果片内的定时器/计数器被占用,就需要寻求其它的设计方式了。方案二:采用硬件看门狗。硬件看门狗是指一些集成化的或集成在单片机内的专用看门狗电路,它实际上是一个特殊的定时器,当定时时间到时,发出溢出脉冲 4。从实现角度上看,该方式是一种软件与片外专用
11、电路相结合的技术,硬件电路连接好后,在程序中适当地插入一些看门狗复位的指令,保证程序正常运行时看门狗不溢出。而当程序运行异常时,看门狗超时发出溢出脉冲,通过单片机的 RESET 引脚使单片机复位。该方案可靠性高,不需要占用系统内存。但需要外加硬件电路,经济性较差。由于本设计中的安全性要求较高,所以采用硬件看门狗方案。2.1.4 显示控制方案这里同样讨论了两种方案:方案一:采用静态显示。静态显示由于占用较多的接口,在单片机设计中常采用串行扩展来完成。该方案占用接口资源多,显示亮度由保证,但硬件开销大,电路复杂,信息刷新速度慢,实用于并行接口资源较少以及对显示没有要求的场合。方案二:采用动态显示。
12、LED 动态显示硬件连接简单,比较节省 I/O 接口,但其亮度不如静态显示方式,且动态扫描的显示方式在显示位数较多时,CPU要依次扫描,需占用 CPU 较多的时间。在该系统中由于单片机除了扫描 89C51芯片外没有太多的实时测控任务,故本设计中采用动态扫描方式。2.2 交通灯控制的功能要求本设计能模拟基本的交通控制系统,用红绿黄灯表示禁行,通行和等待的信号发生,还能进行倒计时显示,车流量检测及调整,交通违规处理等功能。(1)倒计时显示倒计时显示可以提醒驾驶员在信号灯灯色发生改变的时间、在“停止”和“通过”两者间作出合适的选择。驾驶员和行人普遍都愿意选择有倒计时显示的信号控制方式,并且认为有倒计
13、时显示的路口更安全。倒计时显示是用来减少驾驶员在信号灯色改变的关键时刻做出复杂判断的 1 种方法,它可以提醒驾驶员灯色发生改变的时间,帮助驾驶员在“停止”和“通过”两者间作出合适的选择。(2)车流量检测及调整随着我国经济建设的蓬勃发展,城市人口和机动车拥有量在急剧增长,交4通流量日益加大,交通拥挤堵塞现象日趋严重,交通事故时有发生。车辆检测器作为智能交通系统的基本组成部分,在智能交通系统中占有重要的地位。现阶段,车辆检测器检测方式有很多,各有其优缺点,如红外线检测器、地磁检测器、机械压电检测器,磁频检测器、波频检测器、视频检测器等。一般车流量检测器采用传感器+单片机+ 外围器件来实现 6。而且
14、,目前国内使用的红绿灯都是固定的红绿灯时间,并自动切换。红灯时间和绿灯时间,是根据道口东西向和南北向的车流量,利用统计方法确定的。交通警察不断观察十字路口的两个方向,根据车辆密度和流速决定是否切换红绿灯,以保证最佳的道路交通控制状态。(3)时间手动设置除系统根据车流量自动控制调整,也可以通过键盘进行手动设置,增加了人为的可控性,避免自动故障和意外发生。键盘是单片机系统中最常用的人机接口,一般情况下有独立式和行列式两种。前者软件编写简单,但在按键数量较多时特别浪费 I/O 口资源,一般用于按键数量少的系统 7。后者适用于按键数量较多的场合,但是在单片机 I/O 口资源相对较少而需要较多按键时,此
15、方法仍不能满足设计要求。本系统要求的按键控制不多,且 I/O 口足够,可直接采用独立式。(4)违规检测交通规则必须人人遵守,但是违反规则,如闯红灯等,也时有发生,交警等交通管理人员虽然可以进行实时监管,但是耗费精力,在路口设置检测传感器就可以进行自动的警报提示。2.3 系统总框图本设计以单片机为控制核心,采用模块化设计,共分以下几个功能模块:单片机控制系统、键盘及状态显示、倒计时模块、看门狗电路模块、红外对管检测模块等。单片机设计交通灯控制系统,可用单片机直接控制信号灯的状态变化,基本上可以指挥交通的具体通行,当然,接入 LED 数码管就可以显示倒计时以提醒行使者,更具人性化。本系统在此基础上
16、,加入了违规检测电路和车流量检测电路为单片机采集数据,单片机对此进行具体处理,及时调整控制指挥,为了超越视觉指挥的局限性,同时接上蜂鸣器,在听觉上加强了指挥提醒作用。键盘设置模块对系统输入模式选择及具体通行时间设置的信号,系统进入正常工作状态,执行交通灯状态显示控制,同时将时间数据倒计时输入到 LED数码管上实时显示。在此过程中还要实时捕捉违规检测和紧急按键信号,以达到对异常状态进行实时控制的目的。5系统采用双数码管倒计时计数功能,最大显示数字 99。友好的人机界面、灵活的控制方式、优化的物理结构是本设计的亮点。图 2.1 总体框图据此,本设计系统以单片机为控制核心,由车流量检测模块,违规检测
17、模块,和按键设置模块等产生输入,信号灯状态模块,8 段 LED 数码管倒计时模块和蜂鸣器状态模块接受输出。系统的总体框图如图 2.1 所示。2.4 系统工作原理(1)开关键盘输入交通灯初始时间,通过 8051 单片机 P1 口输入到系统(2)由 8051 单片机的定时器每秒钟通过 P0 口向 8255 的数据口送信息,由 8255 的 PA 口显示红、绿、黄灯的燃亮情况;由 8255 的 PC 口显示每个灯的燃亮时间。(3)通过 8051 的 P1 口设置各个信号灯的燃亮时间,设置绿、红时间分别为 60 秒、80 秒循环由 8051 的 P0 口向 8255 的数据口输出。(4)通过 8051
18、 单片机的 P3.1 位来控制系统是继续工作或设置初值,当P3.1 位为 0,就对系统进行初始化,为 1 系统就继续工作。(5)红灯倒计时时间,交通指示灯红灯亮,当有车辆闯红灯时,单片机中断,进入中断服务子程序,启动蜂鸣器进行报警,3S 后然后恢复正常。(6)红灯时间倒计时完毕,黄灯闪烁 5 秒,警示车辆和行人红、绿灯的状态即将切换。(6)绿灯倒计时时间,增加每次绿灯时间车流量检测的功能,若检测到车辆经过,进入相应的中断子程序,将存储车流量的计数器加 1,并且通过查询P2.4 和 P2.5 端口的电平是否为低,当开关按下为低电平,双位数码管显示车流量,直到下一次绿灯时间重新记入。(7)绿灯时间
19、倒计时完毕,黄灯闪烁 5 秒,警示车辆和行人红、绿灯的状态即将切换。重新循环。3 系统硬件设计硬件有单片机、存储器、若干 I/O(扩展)接口、驱动器件、保护器件、检测器件及外围设备等组成。其中单片机是整个系统的核心部件,能运行程序和处理数据。存储器用于存储单片机程序和数据。I/O 接口是单片机与外部被控制对象交换的信息通道,包括以下及部分数字量 I/O 接口(频率、脉冲等) 、开关6量 I/O 接口(继电器开关、五触电开关、电磁阀等) 、模拟量 I/O 接口(A/D 或D/A 转换电路) 。有时需要扩展 I/O 接口来满足单片机接口数量上的不足,通常采用 8255 芯片。通用外部设备室进行人机
20、对话的纽带,包括键盘、显示器等。3.1 AT89C51单片机简介3.1.1 AT89C51 单片机内部结构AT89C51 是 8051 系列单片机的典型产品,AT89C51 单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/ 计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线 8,如图 3.1 所示。图 3.1 总线结构现在说明如下:(1)中央处理器中央处理器(CPU)是整个单片机的核心部件,是 8 位数据宽度的处理器,能处理 8 位二进制数据或代码,CPU 负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。
21、(2)数据存储器(RAM)AT89C51 内部有 128 个 8 位用户数据存储单元和 128 个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的 RAM 只有 128 个,可存放读写的数据,运算的中间结果或用户定义的字型表。(3)存储器(ROM)AT89C51 共有 4KB 个 8 位掩膜 ROM,用于存放用户程序,原始数据或表格。(4)定时/计数器(ROM)AT89C51 有两个 16 位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。(5)并行输入输出(I/O)口AT89C51 共有 4 组 8 位 I/O 口(P0、P1、P2 和 P3) ,用于对外部数据的传输。(6)全双工串行口AT89C51 内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。(7)中断系统