1、1 摘 要近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。交通信号灯控制方式很多。本系统采用 MCS-51 系列单片机 AT89C51 为中心器件来设计交通灯控制器,实现了能根据实际车流量通过 8051 芯片的 P3 口设置红、绿灯燃亮时间的功能;红绿灯循环点亮,倒计时剩 5 秒时黄灯闪烁警示(交
2、通灯信号通过 P1 口输出,显示时间通过 P0 口输出至双位数码管) 。本系统设计周期短、可靠性高、实用性强、操作简单、维护方便、扩展功能强。 关键词:单片机;交通灯 AbstractIn recent years, with the rapid development of science and technology, the application of SCM is going deep, driving the traditional detection techniques to renew day by day. In the real-time examination and
3、in the automatic control monolithic integrated circuit application system, the monolithic integrated circuit often took a core part uses. The monolithic integrated circuit aspect knowledge is only insufficient, but should also act according to the concrete hardware architecture software and hardware
4、 union, to be improved.The intersection vehicles shuttle, the pedestrian is bustling, car dealership traffic lane, person sidewalk, methodical. Then depending on what to realizes this orderly order? the traffic lights on the automatic control system. There are great number kinds of modes to control
5、the traffic lights. The system uses a series of MCS-51 as the center AT89C51 single-chip device designed to control the traffic lights, so as to realize the function of setting red, green light time by 8051 chips P3 port according to the actual traffic flows, lighting the red-light and green-light b
6、y turn and lighting the yellow-light to warm while 5 seconds left(outputting the traffic light signal by P1,outpuing the time by P0 and showing the time on double-digits nixie tube). Short of the design cycle, high reliability, practical, simple operation, easy maintenance, the expansion of powerful
7、 is this system.2 Key words: SCM; MCU; traffic light目 录中 英 文 摘 要 21 设计要求 4 设计目的 43 方案比较、设计与论证 44 原理分析 54.1 交通灯显示时序的理论分析 54.2 交通灯显示的理论分析 75 程序设计流程图 76 总体设计与电路图 96.1 芯片选择 96.2 设计电路图 106.3 PROTEUS 仿真图: 116.4 交通灯程序 127 仿真测试、数据及结果分析 188 总结与展望 18致谢 20参考文献: 21附 录 223 1 设计要求1.1 程序开始运行先南北段通行、东西段禁止 60s,后东西段通行
8、、南北段禁止60s,依此循环。 1.2 系统分三种工作模式:正常模式、繁忙模式、特殊模式,并且通过三个按钮“正常” 、 “繁忙” 、 “特殊”可相互转化。1.3 正常模式: 直行时间显示数码管显示 60。此时南北段直行通行(绿灯) 、东西段禁止(红灯)40s,南北段人行道通行(绿灯) ,东西段人行道禁止(红灯) ,同时南北段和东西段方向的数码管分别从 40s 和 60s 开始倒计时,至最后 5s 时南北段绿灯变成黄灯闪烁;此后南北段左拐(左拐灯亮)通行、东西段禁止(红灯)20s,南北段、东西段人行道都禁止(红灯) ,同时南北段和东西段方向的数码管都从 20s 开始倒计时,至最后 5s 时南北段
9、左拐灯变成黄灯闪烁;再后东西段直行通行(绿灯) 、南北段禁止(红灯)40s,东西段人行道通行(绿灯) ,南北段人行道禁止(红灯) ,同时东西段和南北段方向的数码管分别从 40s 和 60s 开始倒计时,至最后 5s 时东西段绿灯变成黄灯闪烁;最后东西段左拐(左拐灯亮)通行、南北段禁止(红灯)20s,东西段、南北段人行道都禁止(红灯) ,同时东西段和南北段方向的数码管都从 20s 开始倒计时,至最后 5s 时东西段左拐灯变成黄灯闪烁。1.4 繁忙模式:繁忙指示灯亮,南北段、东西段的通行时间改为 45s,其中左拐的时间改为 15s,其它与正常模式类似。1.5 特殊模式:特殊模式灯亮,南北段、东西段
10、的通行时间改为 75s,其中左拐的时间改为 20s,其它与正常模式类似。 设计目的2.1 了解交通灯管理的基本工作原理2.2 熟悉 AT89C51 的工作原理和应用编程2.3 熟悉 AT89C51 并行接口的各种工作方式和应用2.4 熟悉 AT89C51 计数器/定时器的工作方式和应用编程外部中断的方法2.5 掌握多位 LED 显示问题的解决 3 方案比较、设计与论证3.1 显示界面方案3.1.1 倒计时显示该系统要求完成倒计时的功能。因只需显示数字,基于上述原因,我们考虑完全4 采用数码管显示,四个路口分别采用一个二位阴极数码管即可。3.1.2 状态灯显示该系统要求完成状态灯显示的功能。求于
11、简单,我们把各个路口的红灯和黄灯设成直行和左拐两个通行方式所共有,也就是说,一个路口只需四个状态灯,一个直行通行的绿灯,一个左拐通行的绿灯,一个共有的红灯,一个共有的黄灯。3.2 输入方案该系统要求能手动改变东西与南北的通行时间、紧急情况处理,我们采用扩展 I/O口方法,在外部中断 P32 口上扩展三个中断口,分别连接三个按钮。该方案的优点是:使用灵活,并且可提供较多 I/O 口,节省了 AT89C51 的中断口资源。4 原理分析4.1 交通灯显示时序的理论分析下图所示为一种红绿灯规则的状态图。图 4.1 状态 S1 南北直行通行图 4.2 状态 S2 南北左拐通行图 4.3 状态 S3 东西
12、直行通行图 4.4 状态 S4 东 西左拐通行5 共四种状态,分别设定为 S1、S2、S3、S4,交通灯以这四种状态为一个周期,循环执行如下图所示:依据上述车辆行驶的状态图,可以列出各个路口灯的逻辑表如下表所示(其中逻辑值“1”代表直行通行,逻辑值“0”代表禁止通行,逻辑值“L”代表左拐通行):S1 的状态 E S W N逻辑值 0 1 0 1显示时间 正常模式下为 40SS2 的状态 E S W N逻辑值 0 L 0 L显示时间 正常模式下为 20SS3 的状态 E S W N逻辑值 1 0 1 0显示时间 正常模式下为 40SS4 的状态 E S W N逻辑值 L 0 L 0显示时间 正常
13、模式下为 20S图 4.5 交通灯状态循环图6 程序就是在上述四种状态下循环转化的。一个周期四个状态,在正常模式下共花费 2 分钟。4.2 交通灯显示的理论分析4.2.1 倒计时显示的理论分析利用定时器中断,设置 TH0=TH1(65536-50000)/256,即每 0.05 秒中断一次。每到第 20 次中断即过了 20*0.05 秒1 秒时,使时间的计数值减 1,便实现了倒计时的功能。4.2.2 状态灯显示的理论分析黄灯闪烁同样可以利用定时器中断。每到第 10 次中断即过了 10*0.05 秒0.5 秒时,使黄灯标志位反置,即可让黄灯 1 秒闪烁一次。5 程序设计流程图图 5.1 定时器
14、0 中断流程图T0 响应N南北黄灯标志位为 1N东西黄灯标志位为 1Y0.5s 到Y1s 到南北黄灯位置反团里Y东西黄灯位置反团里Y返回倒计时减 1,计数值置 0NN7 图 5.2 主程序流程图开始南北直行通行东西禁止南北左拐通行东西禁止AT89C51 初始化南北黄灯闪烁南北黄灯闪烁通行 35 秒YN闪烁 5 秒YN通行 15 秒YN闪烁 5 秒YN东西黄灯闪烁东西直行通行南北禁止东西左拐通行南北禁止东西黄灯闪烁通行 35 秒YN闪烁 5 秒YN通行 15 秒YN闪烁 5 秒YN8 图 5.3 外部中断 0 中断流程图6 总体设计与电路图6.1 芯片选择 INT0 响应N“繁忙”键按下N“特殊
15、”键按下N“正常”键按下返回关中断开中断正常模式设置Y繁忙模式设置Y特殊模式设置YAT89C51 是美国 ATMEL 公司生产的低电压,高性能 CMOS 8 位单片机,有40 个引脚,32 个外部双向输入/输出(I/O)端口,同时内含 2 个外中断口,3 个 16 位可编程定时计数器,2 个全双工串行通信口,2 个读写口线,片内含8k bytes 的可反复擦写的 Flash 只读程序存储器和 256 bytes 的随机存取数据存储器(RAM) ,器件采用 ATMEL公司的高密度、非易失性存储技术生产,与标准 MCS-51 指令系统及 8051产品引脚兼容,片内置通用 8 位中央处理器(CPU)
16、和 Flash 存储单元,可以按照常规方法对其进行编程,也可以在线编程。其将通用的微处理器和Flash 存储器结合在一起,特别是可反复擦写的 Flash 存储器可有效地降低开发成本。 图 6.1 AT89C51 芯片引脚图9 6.2 设计电路图 图 6.2 电路图图中大部分连线采用总线形式。共五个二位阴极数码管,其中四个分别用于四个路口的倒计时显示,另外一个用于总体的直行时间显示,五个数码管的阳极都接到AT89C51 的 P0 口,阴极接到 P2 口;共 32 个发光二极管,其中 16 个绿色发光二极管,14 个红色发光二极管,2 个黄色发光二极管,四个路口每个路口各有一个红(禁行) 、黄(警告)发光二极管,二个绿色发光二极管(通行) ,一个用于直行通行,一个用于左拐通行,四个人行道,每个人行道两边各有一红、绿发光二极管,另外两个红色发光二极管分别用于繁忙模式和特殊模式的指示,其中四个路口的二极管接到 P1 口,人行道的发光二极管接到 P3 口,繁忙模式和特殊模式的指示灯接 P2 口;外部中断 0 接上三个按钮,分别用于繁忙、特殊、正常模式的转化。10 6.3 PROTEUS 仿真图:图 6.3 PROTEUS 仿真图