基于51单片机的智能交通灯系统设计 联系客服

发布时间 : 星期四 文章基于51单片机的智能交通灯系统设计更新完毕开始阅读498329a60722192e4436f613

十字路口交通灯控制系统的设计

1. 设计思路

近年来,随着科技的飞速发展,电子器件也随之广泛应用,其中单片机也不断深入人民的生活当中。本模拟交通灯系统利用单片机AT89C51作为核心元件,实现了通过信号灯对路面状况的智能控制。从一定程度上解决了交通路口堵塞、车辆停车等待时间不合理、急车强通等问题。系统具有结构简单、可靠性高、成本低、实时性好、安装维护方便等优点,有广泛的应用前景。

本模拟系统由单片机硬/软件系统,两位8段数码管和LED灯显示系统。和复位电路控制电路等组成,较好的模拟了交通路面的控制。 1.1 电源提供方案

采用单片机控制模块提供电源。 1.2 显示界面方案

采用数码管显示。这种方案只显示有限的符号和数码字符,简单,方便。 1.3 输入方案:

直接在I/O口线上接上按键开关。

由于该系统对于交通灯及数码管的控制,只用单片机本身的I/O 口就可实现,且本身的计数器及RAM已经够用,故选择该方案。

2 单片机交通控制系统总体设计

2.1单片机交通控制系统的通行方案设计

设在十字路口,分为东西向和南北向,在任一时刻只有一个方向通行,另一方向禁行,持续一定时间,经过短暂的过渡时间,将通行禁行方向对换。一共可以有四个状态。

通过具体的路口交通灯状态的分析我们可以把这四个状态归纳如下:

(1)东西方向红灯灭,同时绿灯亮,南北方向黄灯灭,同时红灯亮,倒计时80秒。此状态下,东西向禁止通行,南北向允许通行。

(2)东西方向绿灯灭,同时黄灯亮,南北方向红灯亮,倒计时3秒。此状态下,除了已经正在通行中的其他所以车辆都需等待状态转换。

(3)南北方向红灯灭,同时绿灯亮,东西方向黄灯灭,同时红灯亮,倒计时60秒。此状态下,东西向允许通行,南北向禁止通行。

(4)南北方向绿灯灭,同时黄灯亮,东西方向红灯亮,倒计时3秒。此状态下,除了已经正在通行中的其他所以车辆都需等待状态转换。

用图表表示灯状态和行止状态的关系如下:

表1交通状态及红绿灯状态

1

东西向 南北向 东西红灯 东西黄灯 东西绿灯 南北红灯 南北绿灯 南北黄灯 状态1 禁行 通行 1 0 0 0 1 0 状态2 等待变换 等待变换 1 0 0 0 0 1 状态3 通行 禁行 0 0 1 1 0 0 状态4 等待变换 等待变换 0 1 0 1 0 0 东西南北四个路口均有红绿黄3灯和数码显示管2个,在任一个路口,遇红灯禁止通行,转绿灯允许通行,之后黄灯亮警告行止状态将变换。0表示灭,1表示亮。

2.2 单片机交通控制系统的功能要求

本设计能模拟基本的交通控制系统,用红绿黄灯表示禁行,通行和等待的 信号发生,还能进行倒计时显示等功能。

(1)倒计时显示

倒计时显示可以提醒驾驶员在信号灯灯色发生改变的时间、在“停止”和“通过”两者间作出合适的选择。

(2)时间的设置

本设计中可通过键盘对时间进行手动设置,增加了人为的可控性,避免自动故障和意外发生,并再紧急状态下,可设置所有灯变为红灯。键盘是单片机系统中最常用的人机接口,一般情况下有独立式和行列式两种。前者软件编写简单,但在按键数量较多时特别浪费I/0口资源,一般用于按键数量少的系统。后者适用于按键数量较多的场合,但是在单片机I/0 口资源相对较少而需要较多按键时,此方法仍不能满足设计要求。本系统要求的按键控制不多,且I/0口足够,可直接采用独立式。 2.3单片机交通控制系统的基本构成及原理

单片机设计交通灯控制系统,可用单片机直接控制信号灯的状态变化,基本上可以指挥交通的具体通行。接入LED数码管就可以显示倒计时以提醒行使者,更具人性化。

据此,本设计系统以单片机为控制核心,连接成最小系统,由按键设置模块产生输入,信号灯状态模块,LED倒计时模块模块接受输出。

单片机上电后,系统进入正常工作状态,执行交通灯状态显示控制,同时将时间数据倒计时输入到LED数码管上实时显示。

4十字路口交通灯控制系统的硬件设计

2

4.1系统硬件总电路构成及原理

实现本设计要求的具体功能,可以选用AT89C51单片机及外围器件构成最小控制系统,12个发光二极管分成4组红绿黄三色灯构成信号灯指示模块,8个LED东西南北各两个构成倒计时显示模块,若干按键组成时间设置。 4.1.1系统硬件电路构成

本系统以单片机为核心,系统硬件电路由状态灯,LED显示,按键,组成。其具体的硬件电路总图如图3.1所示。

其中P0用于送显两片LED数码管,P1用于控制红绿黄发光二极管,XTAL1和XTAL2接入晶振时钟电路,REST引脚接上复位电路,P2.6与P2.7对数码管进行片选,P3.2即INT0紧急情况处理按键,P3.3即INT1接时间调整中断按键。 4.1.2系统工作原理

系统上电或手动复位之后,系统先显示状态灯及LED数码管,将状态码值送显P1口,将要显示的时间值的个位和十位分别送显P0口,在此同时用软件方法计时1秒,到达1s就要将时间值减1,刷新LED数码管。

时间到达一个状态所要全部时间,则要进行下一状态判断及衔接,并装入次状态的相应状态码值以及时间值,

当然,还要开启两个外部中断,其一为紧急情况处理中断,一旦信号有效,即K3键为低电平时进入中断服务子程序,东西南北路口的红灯全亮禁止全部通行,再按一下K3键,中断结束返回。其二为通行时间调整中断,若K4按键有效,进入相应的中断子程序,对时间进行调整,此后再按K4键则中断结束返回。

图5 基于单片机的交通灯控制系统电路图

5 系统软件程序的设计

5.1 程序主体设计流程

全部控制程序实际上分为若干模块:键盘设置处理程序,状态灯控制程序,LED显示程序紧停程序,中断服务子程序,红绿灯时间调整程序等。

整个软件程序方面主要分两大部分:主程序部分和中断处理程序。 设计说明:该智能交通灯控制系统的软件设计采用的是顺序执行并反复循环的方法。智能交通灯控制系统在正常工作的情况下,按循环周期变化(东西向绿灯持续80s,南北向绿灯持续60s.)。每个循环周期在还剩3s时,正在通行路口的黄灯同时点亮并开始闪烁,以提醒路人上的行人及车辆,交通灯即将发生变化。 5.3子程序模块设计 5.3.1状态灯显示及判断

在本设计中,实际控制的灯只有6个,即:东西红灯,东西绿灯,东西黄灯,

3

南北红灯,南北绿灯,南北黄灯。定义IO端口如下,其中均是低电平有效。

H_RED BIT P1.0 H_YELLOW BIT P1.1 H_GREEN BIT P1.2 L_RED BIT P1.3 L_ YELLOW BIT P1.4 L_ GREEN BIT P1.5

共有4钟状态:东西红灯亮,南北绿灯亮(0F3H);东西红灯亮,南北黄灯亮(0F5H);东西绿灯亮,南北红灯亮(0DEH);东西黄灯亮,南北红灯亮(0EEH)。

括号中是P1端口8个引脚值对应的十用RETI指令返回,此时CPU会从堆栈中取保存的断点地址,送回PC,程序再正常执行。

六进制码。

用于显示发光二极管时,部分程序如下: ;东西红,南北绿,计时时间为20s

MOV P1,#0F3H MOV 60H,61H A1: MOV R1,#50 A2: ACALL BCD

ACALL DISPCLK DJNZ R1,A2 MOV A,60H MOV R0,60H ADD A,#99H DA A

MOV 60H,A CJNE R0,#05H,A1 5.3.2 LED倒计时显示

LED计时每1秒都要刷新1次,采用的是动态显示,首先将R4除以10H,整数即十位放在50H中,余数即个位放在51H中,设置7段LED显示数据的数据表,用数据指针寄存器DPTR指向数据表的首地址,再加上A中的偏移量,就可以指向十位数字,然后送显即可,个位显示同理。具体程序如下:

BCD: ;将十位数送到(51H),个位数送到(50H) MOV A,60H ;60H单元放的是倒计时值 MOV B,#10H DIV AB MOV 51H,A MOV A,B MOV 50H,A RET

DISPCLK: ;显示部分 MOV DPTR,#TAB

4