单片机在十字路口交通灯控制系统中的应用

2010-01-20 06:49王晓萍陈嫄嫄
湖北工业职业技术学院学报 2010年6期
关键词:车辆通行黄灯交通灯

王晓萍,陈嫄嫄

(1.十堰职业技术学院机电工程系;2.十堰市第十三中学数学组,湖北十堰442000)

随着大规模集成电路的发展,微型计算机的性价比大为提高,因而应用也越来越广泛。单片机是微型计算机的一个重要分支,主要用在各种自动控制系统中。在自动控制系统中,单片机从外电路采集信息,再对采集到的信息进行分析、处理,然后输出相应的控制信号对外部电路进行控制。

本文就十字路口的交通灯控制系统为例,介绍单片机在开环控制系统中的控制方法。十字路口交通灯设计方案如图1所示。

1 十字路口的交通灯控制要求

图1 十字路口的交通灯控制

(1)纵向(A向)与横向(B向)的交通灯定时为60秒交换红绿色一次;

(2)灯光有红、黄、绿三种颜色(图1中的R,O, G),每次红绿灯交换时要求在黄灯停留3秒钟;

(3)一路在60秒内过车完后超过6秒,无车继续过时,如另外一路有车在等待,则自动提前交换灯色,交换过程也得在黄灯处停留3秒;

(4)在紧急车辆(如消防车、救护车、警车等)通过时,四周街口都显示红灯,其他车辆不得通行,只允许紧急车辆通过,紧急车辆通过后,交通灯自动恢复原来的状态。

虽然还可以对控制系统提出更多的要求,但是我这里提出的四点基本要求已经足够能反映出交通灯控制问题对单片机提出的方式是什么。这种控制方式具有以下几个特点:

(1)这是没有反馈的开环控制系统[1]。

(2)输入和输出都是开关量。图1中的车辆检测传感器(A1,A2以及B1,B2)是光电开关式的,因此送入单片机的信息是开关量;单片机对交通灯的控制是通过继电器的,所以也是开关量输出。

(3)程序执行中有中断响应功能。就是说一个方向的车辆能够申请另一个方向中断其绿灯而让自己方向的车辆通行。中断程序的响应条件是,被请求的这一方向已经在6秒钟内没有车辆通过。

(4)有非屏蔽中断响应功能。图1中J为紧急测量检测传感器,当检测到有紧急车辆要通过的信号时,立即发出开关量形式的紧急中断信号。这是最优先级的中断形式,即非屏蔽中断。

2 交通灯控制系统的硬件结构

图2为系统的计算机控制硬件结构示意图,下面简单介绍各部分的功能:

图2 交通灯控制系统硬件图

(1)CPU为控制系统的核心部件,它负责执行程序,接受输入信号和发出控制信号;

(2)ROM为只读存储器。它内部存放已经由厂家编制好的用来协调单片机内部各个组件之间的运行的监控程序;

(3)RAM是随机读写存储器。用来存放用户编制的控制交通灯的程序;

(4)LED为发光二极管显示器。在编制程序时,它可以帮助用户观察存储器中所显示的内容是否符合要求;

(5)8255A芯片是并行输入/输出接口,使用其中的PA口和PB口,它们都有8个并行引出线作为输入和输出的端线[2];

(6)REL为继电器板。其中有6个继电器接PA口的6条输出线,用于控制A向和B向的交通灯;

(7)GB或门板是一个门电路组件,其中装有两个或门,分别检测A向和B向的状态,输入与输出的关系是:

A1+A2=A

B1+B2=B

A1和A2分别存放A向两个街口的检测器,只要其中一个为1(有车要通过),则A为1,即通知计算机A向有车要求通过。

B1和B2存放B向两个街口的检测器,作用与上面相同。

(8)J为4个街口有紧急车辆通过的公共输入端口。

3 系统的工作过程

开始时设A向的绿灯亮,A向通行,B向不通, B向红灯亮。60秒后自动转为B向绿灯亮(B向通行),A向红灯亮(A向不通行)。这是在A、B两个方向都很频繁通车的正常运行情况。

如果在A向绿灯亮而B向红灯亮时,A向在6秒钟内没有检测到车辆通行,如果同时检测到B向有在等待通过的车辆,则使程序跳转,灯光自动按次序改变:

A向绿灯灭而B向红灯灭;

A向黄灯和B向黄灯亮3秒;

A向红灯亮而B向绿灯亮,同时A、B向黄灯灭。

此时,B向车辆通行,程序正常循环,即60秒后再自动转为A向车辆通行。在程序正常循环的过程中,如果突然来了紧急车辆,不论其方向是否与正在运行的方向相同,则都使程序跳转至让紧急车辆通行的子程序中去。这时没有黄灯转换,A、B方向直接亮起红灯,禁止一般车辆继续通行。

根据控制过程的灯色配置,可以将灯色状态归纳成4个模式(PAD),见表1

表1 红灯配置模式

4 系统软件设计

根据上面设计的交通规则,可以设计出下面的流程图:

图3 系统软件流程图

程序开始后,就对A向进行测试,如果A=1,表示A向有车要求通过,则程序转至CH K1端并且输出灯色模式ZA;否则转至CHK3并且输出灯色模式ZB。

如果A、B向都没有车辆通过时,则对CH K0和CH K2进行循环测试,同时维持原来的输出状态不变。在循环测试的过程中,如果检测到某一方向有车通过,则A(或者B)=1,其控制流程为图中的左半部分(或者右半部分)。当有紧急车辆通过时, CPU的非屏蔽引脚NMI为低电平,则进入紧急车辆程序。紧急车辆通过以后,程序再从“开始”方框进入控制流程。

5 结束语

以上讨论对于不同的单片机系列都具有一定的参考价值,具体选用某一系列型号的单片机时,只要根据软件系统的设计编写出相应的汇编语言程序就可以实现对交通灯的控制,对于单片机应用方面的学习也具有一定的指导意义。

[1]俞国亮.MC51单片机原理与应用[M].北京:清华大学出版社,2008:424-428.

[2]李继灿.新编16/32位微型计算机原理及应用[M].北京:清华大学出版社,2006:262-269.

猜你喜欢
车辆通行黄灯交通灯
基于单片机的交通灯控制系统设计
与免费路段平行的高速公路车辆通行费收取方案
货运车辆通行信息抓拍系统
一直飘红的交通灯
基于高速公路逃费信息共享的车辆通行信用平台
基于单片机的LED模拟交通灯设计
无知之幕与博弈:从“黄灯规则”看博弈论的一种实践方案
还有94分
高速公路大件车辆通行管理系统简介
考虑黄灯驾驶行为的城市交叉口微观仿真