单片机应用设计十字路口红绿交通灯控制系统.doc
文本预览下载声明
单片微型计算机原理与应用
课程大作业
题目:十字路口红绿交通灯控制系统
目录
问题的提出 P3
功能需求 P3
总体方案 P4
硬件设计 P5
程序框图 P10
软件清单 P16
仿真实验 P21
总结 P28
参考文献 P29
问题的提出:
在武汉各十字路口的交通红绿灯各个时间段转换的时间都是相同的,当南北、东西方向车流量在一定的时间段有显著不同的时候,将很难合理地协调交通车流量,造成很大的资源浪费。同时,目前还没有安置倒计时设备,使车辆和行人难以获知需要等待的时间,不仅造成不便,而且也加剧了行人闯红灯的危险行为。另外,一旦发生事故,交警不便于控制来往车辆及行人的通行。为此,需要设计一套可以根据时间段调整红绿灯交替时间、有倒计时显示功能且有应急处理设置的交通灯控制系统。
功能需求:
为了易于实现,我们设定的情景是:
在一定的时间段内,东西和南北方向的车流量不同,例如8:00、12:00、14:00及17:00前后一段时间,因为上下班的缘故,公路上车流量较大,而且往两个方向的车流量也可能不同,所以各个路口的红绿灯显示时间需作相应调整,车流量较大的方向上绿灯时间延长;而在其他时间,车流量较小,则将机动车辆通行路口红绿灯时间相应缩短,方便行人通过。
本设计主要体现概念功能,根据日常经验对某路口车流状态及相应红绿灯时间进行了设定。在实际运用过程中,只需根据各路口实际情况修改相应参数即可。
设计时间表设定如下:
时间段编号 时间段 南北车道 东西车道 南北人行道 东西人行道
1
20:00—8:00 车流量小
绿灯:56s
黄灯:4s
红灯:60s 车流量小
红灯:60s
绿灯:56s
黄灯:4s
绿灯:56s
红灯:64s
红灯:64s
绿灯:56s
2
8:00—10:00 车流量大
绿灯:86s
黄灯:4s
红灯:60s 车流量小
红灯:90s
绿灯:56s
黄灯:4s
绿灯:86s
红灯:64s
红灯:94s
绿灯:56s
3
10:00—17:00 车流量小
绿灯:56s
黄灯:4s
红灯:60s 车流量小
红灯:60s
绿灯:56s
黄灯:4s
绿灯:56s
红灯:64s
红灯:64s
绿灯:56s
4
17:00—20:00 车流量小
绿灯:56s
黄灯:4s
红灯:90s 车流量大
红灯:60s
绿灯:86s
黄灯:4s
绿灯:56s
红灯:94s
红灯:64s
绿灯:86s
以单片机为核心的控制系统根据上述设定实现以下功能:
根据车流量大小,也即根据设定的时间控制不同方向车辆通行以及人行道的红绿灯显示时间,以此实现在现有基础上更加有效地管理道路资源;
在显示红绿灯的同时,增加显示等待时间的模块;
在紧急情况下(发生交通事故等),通过由交警控制的触发装置触发红绿灯控制系统的外部中断,使所有灯为红色。
说明:1.不采用外部设备检测车流量,由此实时控制红绿灯显示的原因是出于控制系统安全、稳定性的考虑。另一方面,在一般情况下,一个城市的各个时段的车流量都比较有规律,所以上述设定是合理的。
2.上述设定可以根据不同城市不同地区的实际情况进行相应的修改,故一定程度上具有普遍适用性。
三、总体方案:
采用AT89C51P1口、P2口分别接南北和东西方向的LED灯。考虑到驱动的问题,用74LS244作接口扩展。另外,P0口和部分P3口控制时间显示和倒计时等六个七段代码显示器。 由P3通过74ls138片选,选通相应的数码管。
具体实现计时功能的方法,我们初步设计的是用单片机两个中断分别实现时钟计时和交通灯倒计时,用外部中断1实现紧急情况全红灯处理。后来听从老师建议,改作只用一个中断实现,不过考虑到原方案也有一定的优点,故予以保留。
方案一: 用T0中断实现时钟计时功能,用T1中断实现交通灯倒计时及循环周期控制。这样程序结构稍复杂一些,但具体到每个子程序则结构均相对简单。并且根据默认的中断优先级,可保证时钟计数持续进行,而在发生紧急情况时,倒计时功能可以被打断。
方案二:用T0中断实现时钟计时和交通灯倒计时功能。程序结构简单,但T0中断程序比较复杂。
方案三:在前面方案的基础上,我们认为交通灯倒计时对准确度要求比较低,所以可以用软件循环延时来实现,如此程序比较简单,即可将倒计时与交通灯控制模块加在主程序中。
四、硬件设计:
(1)单片机:
我们使用的单片机是ATMEL公司出产的AT89C51。AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压,高性能CMOS位微处理器,俗称单片机。该器件采用
显示全部