单片机交通灯控制系统设计
2021-01-11董健
董健
1.引言
当今,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。但这一技术在19世纪就已出现了。
1858年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。这是世界上最早的交通信号灯。1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。它由红绿两以旋转式方形玻璃提灯组成,红色表示“停止”,绿色表示“注意”。1869年1月2日,煤气灯爆炸,使警察受伤,遂被取消。
电气启动的红绿灯出现在美国,这种红绿灯由红绿黄三色圆形的投光器组成,1914年始安装于纽约市5号大街的一座高塔上。红灯亮表示“停止”,绿灯亮表示“通行”。
1918年,又出现了带控制的红绿灯和红外线红绿灯。带控制的红绿灯,一种是把压力探测器安在地下,车辆一接近红灯便变为绿灯;另一种是用扩音器来启动红绿灯,司机遇红灯时按一下嗽叭,就使红灯变为绿灯。红外线红绿灯当行人踏上对压力敏感的路面时,它就能察觉到有人要过马路。红外光束能把信号灯的红灯延长一段时间,推迟汽车放行,以免发生交通事故。
2.系统总体方案及硬件设计
2.1系统方案的确定
交通灯在安全行车过程中起着十分重要的作用,现在交通灯一般设在十字路口,在醒目位置用红、绿、黄三种颜色的指示灯,加上一个倒计时的显示计时器来控制行车,对于一般情况下的安全行车、车辆分流发挥着作用,但根据实际行车过程中出现的情况,如何全面有效地利用交通灯指示交通情况,我们尝试用单片机来控制交通灯,在软、硬件方面采取一些改进措施,,使交通灯在控制中灵活而有效。
硬件系统是指构成单片机系统的实体和装置,通常由运算器、控制器、存储器、输入接口电路和输入设备、输出接口电路和输出设备等组成。单片机实质上是一个硬件的芯片,在实际应用中,通常很难直接和被控对象进行电气连接,必须外加各种扩展接口电路、外部设备、被控对象等硬件和软件,才能构成一个单片机应用系统。该交通灯拟系统的硬件部分主要由键盘、显示和运算部分组成。按照题目的设计要求,本课题需要使用LED数码管显示和扩展键盘。在该交通灯系统的设计中采用AT89s52单片机。
2.2显示部分电路设计
静态显示的特点是每个数码管必须接一个8位锁存器用来锁存待显示的字型码。送入一次字型码显示自行一直保持,直到送入新字型码为止。这种方法的优点是占用CPU时间少,显示便于监测和控制。缺点是硬件电路比较复杂,成本较高。各数码管在显示过程中持续得到显示信号,与各数码管接口的I/O口是专用的。动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。这样一来,就没有必要每一位数码管配一个锁存器,从而大大地简化了硬件电路。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。各数码管在显示过程中轮流得到显示信号,与各数码管接口的I/O口是共用的。
2.3时钟部分电路设计
时钟电路用于产生MCS-51单片机工作时所必须的时钟控制信号。其内部电路在时钟信号控制下,严格地按时序执行指令进行工作。在执行指令时,CPU首先要到程序存储器中取出需要执行的指令操作码,然后译码,并由时序电路产生一系列控制信号去完成指令所规定操作。
本设计采用12MHz晶振和两个30Pf瓷片电容,他们构成一个稳定的自激振荡器。该电容的大小影响振荡器频率的高低、振荡器的稳定性和起振的快速性。为单片机提供标准时钟。其中两个瓷片电容起微调作用。
2.4复位部分电路设计
复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,在每个机器周期的S5P2,斯密特触发器的输出电平由复位电路采样一次,然后才能得到内部复位操作所需要的信号。
复位电路通常采用上电自动复位和按钮复位两种方式。
该设计采用加电直接复位,复位电容采用22uF,电阻1000欧,为了节省元件,没有采用上电加按键模式。加电瞬间,RES管脚为高电平。通过电阻回路放电,使电压逐渐降为零,从而实现了复位功能。
3.软件设计
3.1应用系统软件设计要求
在进行应用系统的总体设计时,软件设计与硬件设计应统一考虑,相结合进行。当系统的电路设计定型以后,软件的任务也就明确了。
一般来说,软件的功能可分为两大类。一类是执行软件,它能完成各种实质性的功能,如测量计算、显示、打印、输出控制等;另一类是监控软件,它是专门用来协调各执行模块和操作者的关系,在系統软件中充当组织协调角色。
我们设计时,应从以下几个方面考虑:
1)根据软件功能的要求,将系统软件分为若干个相对独立的部分。设计出合理的软件总体结构,使其清晰、简捷、流程合理。
2)各功能程序实行模块化、子程序化。
3)在编写应用软件之前,应绘制出程序流程图。
4)要合理分配系统资源,包括ROM、RAM、定时器/计数器、中断源等。
本设计采用了模块化设计,主要由主程序模块、功能实现模块两大部分模块组成。
3.2主程序模块的设计
该交通信号灯控制系统的四中工作状态(南北方向的交通灯为例):
(1)南北方向A车道红灯亮,东西方向B车道绿灯亮。表示南北方向A车道上的车辆禁止通行,东西方向B车道允许通行。绿灯亮足规定的时间隔时,控制器发出状态信号,转到下一工作状态。
(2)南北方向A车道红灯亮,东西方向B车道黄灯亮。表示东西方向B车道上未过停车线的车辆停止通行,已过停车线的车辆继续通行,南北方向A车道禁止通行。黄灯亮足规定时间间隔时,控制器发出状态转换信号,转到下一工作状态。
(3)南北方向A车道绿灯亮,东西方向B车道红灯亮。表示南北方向A车道允许通行,东西方向B车道上的车辆禁止通行,绿灯亮足规定的时间间隔时,控制器发出状态转换信号,转到下一工作状态。
(4)南北方向A车道黄灯亮,东西方向B车道红灯亮。表示东西方向B车道禁止通行,南北方向A车道上位过限停车线的车辆停止通行,已过停车线的车辆继续通行。黄灯亮足规定的时间间隔时,控制器发出状态转换信号,系统又转换到第(1)种工作状态。
3.3功能实现模块的设计
功能实现模块主要由中断处理子程序,键盘处理子程序和显示子程序等组成。下面仅对INT0中断服务程序部分进行简单介绍。
P3.4与K2连接,K2与地连接。按下K2,东西南北四个方向全红,也就是说,东西南北四个通道都不能通车,这时可对南北的总时间进行调节。K1与AT89S52的p3.3管脚相连。在按下K2的前提下,按下K1,此时显示的是东西的总时间,并可对其调节。
4.Proteus软件仿真
一个单片机系统经过总体设计,完成了硬件和软件开发。元器件安装后在系统存储器中放入编制好的应用程序,系统即可运行。一般来说,仿真开发系统应具有如下的功能:
1)用户样机硬件电路的诊断与检查;
2)用户样机程序的输入与修改;
3)程序的运行、调试(单步运行、设置断点)、排错、状态查询功能;
4)将程序固化到EPROM芯片中。
但对于一个较完善的仿真开发系统,还应具备:
1)有较全的开发软件,同时要求用户可用汇编语言编制应用软件;开发系统自动生成目标文件;并配有反汇编软件能将目标程序转换成汇编语言程序;有丰富的子程序可供用户选择调用。
2)有跟踪调试、运行的能力。
3)为了方便模块化软件调试,还应配置软件转储、程序文本打印功能及设备。