交通信号灯控制系统的设计

2019-10-20 13:41唐娟
商情 2019年43期
关键词:数码管交通灯信号灯

【摘要】本次设计是基于单片机的交通信号灯控制系统设计,通过对现有的资料文献分析了交通信号灯系统控制的需要,根据系统总体方案的设计选择合理的硬件配备;用软件编程实现基本功能,通过对程序的仿真来模拟交通灯的运行情况。

1 系统控制方案

1.1 硬件方案的设计

本设计采用标准的AT89C51单片机作为控制器,根据设计要求需要倒计时显示,复位电路,晶振电路,交通灯状态显示电路等,系统结构方框图如图1

1.2系统功能说明

(1)交通灯显示功能

本设计利用单片机P1口来驱动和控制车行道的交通灯,P3口控制人行道交通灯。红灯禁行,绿灯直行,直行车辆可以进入左右待转区,当左右转向灯亮时,可以左右转向。

(2)时间显示功能

本设计采用两位数码管。因为南北东西向数码管显示的时间不同,所以单片机P0口送出数据的段码,位选信号由 P2口送出。本设计采用共阴极的数码管,数码管点亮需要5MA以上的电流,电流不能过大,否则会烧毁二极管。单片机的I/O口不能送出如此大的电流,所以中间需要一个驱动电路来实现,本次设计使用上拉电阻的方式提供足够大的电流。

1.3  交通灯状态设计说明

交通道路由四车道加人行道组成,四车道从左至右分别是左转车道,直行车道,直行车道,右转车道,在左右转车道的前都设有待转区,当绿灯时,车辆可进入左右待转区,等待待转信号进行左右转。

现规定如下状态:

左右转向灯在设计中用蓝灯表示,SN-南北方向 、EW-东西方向、 RX2-南北走向人行道、  RX-東西走向人行道  、TIME-时间

S1:SN红灯亮,EW绿灯亮,RX2红灯亮,RX绿灯亮

S10:SN红灯亮,EW黄灯亮, RX2红灯亮,RX绿灯亮

S11:SN红灯亮,EW左转和右转蓝灯亮,RX2、RX红灯亮

S12:SN红灯亮,  EW左转和右转蓝灯闪烁,RX2、RX红灯亮

S2:SN绿灯亮,EW红灯亮,RX2绿灯亮,RX道红灯亮

S20:SN黄灯亮,EW红灯亮,RX2绿灯亮,RX红灯亮

S21:SN左转和右转蓝灯亮,EW红灯亮,RX2、RX红灯亮

S22:SN左转和右转蓝灯闪烁,EW红灯亮,RX2、RX红灯亮

3系统硬件设计

3.1AT89C51单片机

AT89C51是一种带4K字节FLASH存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。8051单片机包含CPU、RAM、ROM、特殊功能寄存器、两个优先级的5个中断源结构、4个8位并行I/O口、两个16位定时/计数器、全双工串行口、布尔处理器、64KB外部数据存储器地址空间、64KB外部程序存储器地址空间、片内振荡器及时钟电路。

3.2外部电源电路

交通信号灯控制系统工作只需要+5V电压,在实际连接中电路左端连接4个5V的电池为系统提供稳定的电源。

3.3  晶振电路

本设计系统电路的晶体振荡器的值为12MHZ的陶瓷电容,数值大约为22uf。在设计和焊刷电路板时候,晶体振荡器与电容尽量与单片机芯片靠近,减少寄生电容,保证振荡器的稳定性。

3.4  复位电路

单片机的复位分为上电自动复位和按钮手动复位。上电复位电路是靠电容充电来实现的。按钮复位电路又分为脉冲和电平复位。按钮电平复位电路按下复位按钮时,电容充电,使RST/VPD端为高电平,当把复位按钮松开后,电容放电,使RST/VPD端恢复为低电平。本次设计采用按钮电平复位电路。

3.5  交通灯指示电路

发光二极管Light- Emitting Diode 简称为LED,只能往一个方向导通,发光二极管的反向击穿电压约5 伏。为了保护LED不被破坏,需要加限流电阻。

3.6  时间显示电路介绍

本次设计采用2位7段数码管作为时间显示电路,分别对十字路口和人行导通时间进行倒计时。2位7段数码管中,1、2是公共端,控制位码。如果是共阴极接低电平,共阳的则接高电平。A-G,DP是控制断码和二极管的亮暗。可以直接接51单片机的输出口,输出口需要加上拉电阻,提供电流,驱动数码管正常工作。如果是共阴极的接高电平来使数码管亮,若为共阳则用低电平来点亮数码管。此设计LED显示器采用动态显示。

4  软件设计

4.1软件总体流程图

软件总体设计流程图如图2,主要完成的各个部分的软件控制

4.2 时间显示程序的设计

动态数码管扫描,完成数码管的显示功能

DIS:

MOV      P2,#00000001B //显示第一位

MOV      A,SNTIME //取显示的南北时间

MOV      B,#10 //完成数据个位和十位的分解

DIV      AB

MOV      DPTR,#TAB    //查数码管段码表

MOVC     A,@A+DPTR

CPL      A

MOV      P0,A //送P0口,进行显示

LCALL    DELAY //扫描程序延时1ms

MOV      P0,#00H //灭调P0口,为下次显示做准备

MOV      P2,#00000010B //显示第二位

MOV      A,B //类似于显示第一位

MOV      DPTR,#TAB

MOVC     A,@A+DPTR

CPL      A

MOV      P0,A

LCALL    DELAY

MOV      P0,#00H

MOV      P2,#00000100B    //显示第三位

MOV      A,EWTIME

MOV      B,#10

DIV      AB

MOV      DPTR,#TAB

MOVC     A,@A+DPTR

CPL      A

MOV      P0,A

LCALL    DELAY

MOV      P0,#00H

MOV      P2,#00001000B //顯示第四位

MOV      A,B

MOV      DPTR,#TAB

MOVC     A,@A+DPTR

CPL      A

MOV      P0,A

LCALL    DELAY

MOV      P0,#00H

MOV      P2,#00010000B    //显示第五位

MOV      A,RXTIME

MOV      B,#10

DIV      AB

MOV      DPTR,#TAB

MOVC     A,@A+DPTR

CPL      A

MOV      P0,A

LCALL    DELAY

MOV      P0,#00H

MOV      P2,#00100000B //显示第六位

MOV      A,B

MOV      DPTR,#TAB

MOVC     A,@A+DPTR

CPL      A

MOV      P0,A

LCALL    DELAY

MOV      P0,#00H

MOV      P2,#01000000B    //显示第七位

MOV      A,RXTIME2

MOV      B,#10

DIV      AB

MOV      DPTR,#TAB

MOVC     A,@A+DPTR

CPL      A

MOV      P0,A

LCALL    DELAY

MOV      P0,#00H

MOV      P2,#10000000B //显示第八位

MOV      A,B

MOV      DPTR,#TAB

MOVC     A,@A+DPTR

CPL      A

MOV      P0,A

LCALL    DELAY

MOV      P0,#00H

RET

4.3延时程序的设计

AT89C51单片机的工作频率为12MHz。机器周期與主频有关,是它的12倍,所以一个

机器周期的时间为1us(12*1/12=1us)。我们可以知道每条指令的周期数,这样就能通过指令的执行条数来确定延时的时间。

具体的延时500ms程序:

DELAY500MS:

MOV     R4,#75

DELAY1S2:

LCALL   DIS      //调用数码管显示程序75遍

DJNZ    R4,DELAY1S2

RET

5系统仿真与调试

系统仿真是利用计算机的keiluVsion和proteus软件完成,将keiluVison编写好的程序通过生成的hex文件加载到proteus原理图的单片机中,进行程序的仿真。

本次设计采用PCB电路板焊接,采用双层板,默认工艺FR4 1.6板厚过孔盖绿油有铅喷锡。电路焊接完后,对其进行检查,有无虚焊短路等情况的出现,检测元件是否安装正确,各个元器件是否能够正常工作。

在软硬连调的过程中,将程序加载到硬件电路中的,进行交通信号灯真实情况模拟,观察交通灯的状态,通过反复调试,才得以正常运行。

参考文献:

[1]周美娟,肖来胜.单片机技术及系统设计[M]. 北京:清华大学出版社,2007.08.

[2]周蔚吾. 道路交通信号灯控制设置技术手册[M].知识产权出版社,2003.

[3]罗苑棠. CPLD/FPGA常用模块与综合系统设计实例精讲.电子工艺出版社,2007.

[4]夏继强. 单片机实验与实践教程.北京航空航天大学出版社,2001.

猜你喜欢
数码管交通灯信号灯
物理项目教学设计,用单片机控制四位数码管显示
蓝桥杯树莓派模拟题解析三:“电子测距仪”
Arduino编程
MC9S08FL16单片机数码管静态显示分析
矿工灯
信号灯为什么选这三个颜色?
为什么交通灯是红黄蓝三种颜色?
荷兰小城为“低头族”设置专属路面交通灯
交通信号灯
信号灯为什么用