基于AT89S52单片机交通灯控制系统的设计 下载本文

单片机系统开发与应用工程实习计报告

车道交叉组成十字路口,A是主车道,B是支道。设计要求如下: (1)用发光二极管模拟交通信号灯,用按键开关模拟车辆检测信号。

(2)正常情况下,A、B两车道轮流放行,A车道放行50s,其中5s用于警告;B车道放行30s,其中5s用于警告。

(3)交通灯繁忙时,交通信号灯控制系统应有手控开关,可人为地改变信号灯状态,以缓解交通拥挤状况。在B车道放行期间,若A车道有车而B车道无车,按下开关K1使A车道放行15s;在A车道放行期间,若b车道有车而A车道无车,按下开关K2使B车道放行15s。

(4)有紧急车辆通过时,按下K3开关使A、B车道均为红灯,禁行20s。

2.2 系统设计

2.2.1 总体设计思想

交通灯控制系统主要控制A、B两车道的交通,以AT89S52单片机为核心芯片,通过控制三色LED的亮灭来控制各车道的通行;另外通过3个按键来模拟各车道有无车辆的情况和有紧急车辆的情况。根据设计要求,制定总体设计思想如下:

(1)正常情况下运行主程序,采用0.5s延时子程序的反复调用来实现各种定时时间。

(2)一道有车而另一道无车时,采用外部中断1执行中断服务程序,并设置该中断为低优先级中断。

(3)有紧急车辆通过时,采用外部中断0执行中断服务程序,并设置该中断为高优先级中断,实现二级中断嵌套。 2.2.2 框图设计

基于AT89S52单片机的交通信号灯控制系统由电源电路、单片机主控电路、按键控制电路和道路显示电路几部分组成,框图如图1-1所示。

3

单片机系统开发与应用工程实习计报告

图2-1 基于AT89S52单片机的交通灯控制系统框图

3 硬件设计

3.1 电路图原理

用12只发光二极管模拟交通信号灯,以AT89S52单片机的P1口控制这12只发光二极管, 由于单片机带负载能力有限, 因此,在P1口与发光二极管之间用74LS07作驱动电路,P1口输出低电平时,信号灯亮;输出高电平时,信号灯灭。在正常情况和交通繁忙时,A、B两车道的6只信号灯的控制状态有5种形式,即P1口控制功能及相应控制码如表1-1所示。分别以按键K1、K2模拟A、B道的车辆检测信号,开关K1按下时,A车道放行;开关K2按下时,B车道放行;开关K1和K2的控制信号经异或取反后,产生中断请求信号(低电平有效),通过外部中断1向CPU发出中断请求;因此产生外部中断1中断的条件应是:INT1=K1+K2 (3-1),可用集成块74LS266(如无74L266,可用74LS86与74LS04组合代替)来实现。采用中断加查询扩展法,可以判断出要求放行的是A车道(按下开关K1)还是B车道(按下开关K2)。

以按键K0模拟紧急车辆通过开关,当K0为高电平时属正常情况,当K0为低电平时,属情况直接将K0信号接至INT0(P3.2)脚即可实现外部中断0中断。

4

单片机系统开发与应用工程实习计报告

表3-1 交通信号灯与控制状态对应关系

控制状态

P1口

P1.7

P1.6 未用

P1.5 B道绿灯

A道放行,B道禁止 A道警告,B道禁止 A道禁止,B道放行 A道禁止,B道警告 A道禁止,B道禁止

F6H

1

1

1

1

0

1

1

0

EEH

1

1

1

0

1

1

1

0

DEH

1

1

0

1

1

1

1

0

F5H

1

1

1

1

0

1

0

1

F3H

1

1

1

P1.4 B道黄灯 1

P1.3 B道红灯 0

P1.2 A道绿灯 0

P1.1 A道黄灯 1

P1.0 A道红灯 1

控制码 未用

3.2 单片机控制交通信号灯模拟系统的电路图

图3-1单片机控制交通信号灯模拟系统的电路图

5

单片机系统开发与应用工程实习计报告

4 软件设计

主程序采用查询方式定时,由R2寄存器确定调用0.5延时子程序的次数,从而获取交通灯的各种时间。子程序采用定时器1方式1查询式定时,定时器定时50ms,R3寄存器确定50ms循环10次,从而获取0.5s的延时时间。

有车车道放行的中断服务程序首先要保护现场,因需用到延时子程序和P1口,故需保护的寄存器有R3、P1、TH1、TL1,保护现场时还需关中断,以防止高优先级中断(紧急车辆通过所产生的中断)出现导致程序混乱。

开中断,由软件查询P3.0口和P3.1口,判别拿哪一道有车,再根据查询情况执行相应的服务。待交通灯信号出现后,保持15s的延时,然后,关中断,恢复现场,再开中断,返回主程序。

紧急车辆出现时的中断服务程序也需保护现场,但无须关中断(因其为高优先级中断),然后执行相应的服务,待交通灯信号出现后延时20s,确保紧急车辆通过交叉路口,然后,恢复现场,返回主程序。

4.1 程序流程图

交通信号灯模拟控制系统程序流程图如图4-3所示

6

单片机系统开发与应用工程实习计报告

图4-1 交通信号灯模拟控制系统程序流程图

4.2 程序清单

ORG 0000H

LJMP MAIN ;转向主程序 ORG 0003H

LJMP INTT0 ;转向紧急车辆中断服务程序 ORG 0013H

LJMP INTT1 ;转向有车车道中断服务程序 ORG 0200H

MAIN: MOV SP,#30H

SETB PX0 ;置外部中断0为高优先级中断

MOV TCON,#00H ;置外部中断0、1为电平触发

7