52 2015.8 南方农机 制造与研发 基于AT89052单片机的多功能交通灯设计与仿真 徐燕燕 ,晏波。,刘 云 (1.江西机电职业技术学院,江西南昌 330013; 2.江西省电力设计院,江西南昌330013) 摘要:本设计采用AT89C52单片机作为主控元件,采用C语言编程,可以实现倒计时,通行时间以55递进的方式自由设定.遇 到紧急情况全线禁行,交通繁忙信号通知等多种功能。通过PROTEUS软件和KEIL 3软件建立的虚拟实验室,模拟仿真验证了本设 计方案的正确和可行性。 关键词:单片机;C语言;55递进;虚拟实验室 中图分类号:TP368.1 文献标识码:A 文章编码:1672—3872(2015)08~0052—02 随着城市的快速发展,车辆曰益增多,交通灯的设 置非常必要。交通灯不仅可以保证车辆的顺利通行,最 重要的是能够有效保护人民的安全。交通灯可以用PLC 控制,也可以用硬件电路控制,但PLC价格昂贵,硬件 电路一旦确定控制信号便无法更改,鉴于此,本文采用 单片机控制的方式设计交通灯 。 控制南北方向红灯。P3.3时问递增按键,P3.4时问递 减按键,P3.6繁忙信号按键,按下此键,P2.7控制的 红灯亮,告知其他车辆本路段拥堵,提醒广大司机师傅 绕行;为保证有效性,P3.3,P3.4,P3.6共同连接至 P3.2引脚,P3.2是外部中断引脚,单片机会及时响应 中断请求信号。 本文设计的交通灯主要有以下功能:①默认设置是 直行405,拐弯205,可以根据车流量信息以5s递增或 2系统软件设计 单片机可用汇编语言或c语言编程,KEIL软件对此 两种语言都支持。鉴于汇编语言的可读性差,开发周期 长,本次设计采用可移植性好的C语言来编程实现交通 灯的所有功能。 该程序包括主程序和子程序。主程序主要完成初始 递减,灵活调:②整通行时间,有效减少车辆滞留;③ 倒计时显示,通行的最后3S用黄灯闪烁的方式起到警 示作用;④紧急车辆优先通行;⑤若遇交通繁忙则发送 拥堵信号,提醒其他司机师傅及时绕。 1系统硬件设计 本设计主要由单片机主控模块,LED倒计时显示模 块,交通灯显示模块,时间参数调整模块,特殊情况处 化设置,如中断的开关和触发方式选择,定时计数器的 方式选择等问题,用到的寄存器主要有IE,TCON,TMOD。 子程序主要有按键扫描子程序,按键去抖动子程 序,中断子程序,ls定时子程序和显示子程序 。本设 计中的按键有时间递增键,时间递减键,繁忙信号按键, 理模块等组成。其中单片机采用AT89C52,LED采用共 阳极接法,动态扫描方式显示时间以保证亮度,具体的 单片机口资源分配如下: 紧急车辆按键。首先要扫描出是哪个按键按下,转去处 理相应的程序。显示子程序采用动态扫描显示的方式, P0口控制2位8段LED数码管,用以倒计时显示; P1.0控制东拐北,西拐南方向的绿灯,P1.1控制东西 方向的绿灯,P1.2控制东西方向的黄灯,P1.3控制东 西方向的红灯,P1.4控制北拐西,南拐东方向的绿灯, P1_5控制南北方向绿灯,P1.6控制南北方向黄灯,P1.7 7段LED数码管采用共阳极接法,0-9对应的字形码如 表1所示。采用定时计数器T0完成50ms的定时,中断 20次即可实现1S的定时。 表1 1:7段数码管的字形码 3系统仿真调试 作者简介:徐燕燕(1985一),女,河南禹州人,讲师,研究方向 新能源的研究与应用、非线性电路的应用。 先在kei 1软件中输入程序,编译无误后仿真运行, 生成“jtd.hex”文件。在proteus软件中绘制电路原 理图,双击单片机找到“jtd.hex”文件,将其添加到 电路原理图中,两者联合建立的虚拟实(下转第54页)