红绿灯控制系统的设计目录引言 (1)一、系统分析 (1)(一)十字路口基本情况分析 (1)(二)交通灯状态转换分析 (2)(三)硬件功能可行性分析 (3)二、系统设计 (6)(一)硬件设计 (7)1.电路需求分析 (7)2.电路连接设计 (7)(二)软件设计 (8)1.程序总体设计 (8)2.程序流程设计 (10)3.重要代码分析 (12)三、系统实现 (15)(一)软件开发和运行环境 (15)(二)系统硬件环境 (15)(三)系统运行步骤 (15)(四)系统测试结果 (16)四、系统开发总结 (16)参考文献 (18)附录 (19)(一)重要源代码 (19)致谢 (21)引言随着社会经济的发展,城市交通问题越来越引起人们的关注。
人、车、路三者关系的协调,已成为交通管理部门需要解决的重要问题之一。
城市交通控制系统是用于城市交通数据监测、交通信号灯控制与交通疏导的计算机综合管理系统,它是现代城市交通监控指挥系统中最重要的组成部分。
1858年,在英国伦敦主要街头安装了以燃煤气为光源的红、蓝两色的机械扳手式信号灯,用以指挥马车通行。
1914年,电气启动的红绿灯出现在美国,这种红绿灯由红、绿、黄三色圆形的投光器组成,安装在纽约市5号大街的一座高塔上。
红灯亮表示“停止”,绿灯亮表示“通行”。
1918年,又出现了带控制的红绿灯和红外线红绿灯。
带控制的红绿灯,一种是把压力探测器安在地下,车辆一接近红灯便变为绿灯;另一种是用扩音器来启动红绿灯,司机遇红灯时按一下嗽叭,就使红灯变为绿灯。
利用红外线红绿灯,当行人踏上对压力敏感的路面时,它就能察觉到有人要过马路,红外光束能把信号灯的红灯延长一段时间,推迟汽车放行,以免发生交通事故。
黄色信号灯的发明者是我国的胡汝鼎。
他在美国通用电器公司任职的时候,想到在红、绿灯中间再加上一个黄色信号灯,作为红灯和绿灯之间的缓冲,提醒人们注意安全。
于是红、黄、绿三色信号灯即成为了一个完整的指挥信号家族。
城市路口交通信号控制系统大体上分为三种类型:定周期的信号机、多时段且具有无电缆协调功能的微电脑型信号机以及联网式自适应多相位智能型信号机。
具体采用哪种类型,应根据其应用场合及特点加以确定。
其中,第一种类型以其成本低、设计简单、安装及维护方便等特点得到了广泛应用。
本文讨论的交通灯控制系统就属于该种类型。
城市机动车量的不断增加使许多大中城市如北京、上海、南京等出现了交通超负荷运行的情况,因此,如何改进交通灯的设计、有效的疏导交通,使其更好的适应城市交通的发展也成为了一个重要课题。
本论文正是在以上背景下探讨和设计一个交通灯控制系统。
一、系统分析(一)十字路口基本情况分析图1-1是一个典型的十字路口示意图。
分别用1、2、3、4表明东、南、西和北四个流向的主车道,每个主车道置有一个交通灯,用于指示对面车辆的左转、右转和直行。
比如,1号路口的左转灯亮时,即表示对面3号路口的车可以向左转行驶。
每个路口的情况都不尽相同,要根据具体的情况来设置各个方向的放行时间。
假设,1、3方向是主干道,车流量比较大,可以将1、3路口的直行灯亮的时间设得比较长;而2、4路口是一般道路,那么2、4路口直行灯亮的时间可以设得短一点。
左转灯和右转灯放行的时间一般应比直行灯放行的时间要短。
通常情况下,主干道直行时间应在40-60秒左右;左转和右转通行时间应在15-30秒之间。
每个路口应设置时间指示灯,用来显示剩余的通行时间,并在时间快用尽时,交通灯闪烁一定的次数,用来提醒行人。
完成一个循环应在2分钟以内,以免引起车辆等待过长的时间。
图1-1 十字路口示意图(二)交通灯状态转换分析合理的设置每个路口、每个方向的交通灯的通行时间,对车辆能否及时疏散,有着决定性的作用。
在本系统中,路口共设有四个状态,分别用来表示不同时间路口的通行状况。
状态1的时候,2、4两个路口的直行灯亮,东西方向行驶的车辆通行45秒。
2、4方向步行的行人,也可以同时通过路口。
当通行时间快结束的时候,LED灯会闪烁,提醒车辆和行人通行时间快到了。
状态2的时候,1、3两个路口左转灯亮,2、4两个路口右转灯亮15秒。
在本状态的时候,四个路口的车辆可以同时进行疏散,并且不发生冲突,大大地加快了车辆通行的速度。
这样的设置,在南京市新街口的十字路口有类似这样的设置。
通过在十字路口中间设置相应的行车线,行人也可以和车辆同时地经过路口。
当通行时间快结束的时候,LED灯会闪烁,提示通行时间即将结束。
类似于状态2,状态3的时候,1、3两个路口右转灯亮,2、4两个路口左转灯亮15秒。
通过在十字路口中间设置相应的行车线,行人也可以和车辆同时地经过路口。
当通行时间快结束的时候,LED灯会闪烁,提醒车辆和行人注意安全。
类似于状态1,状态4 的时候,1、3两个路口的直行灯亮,东西方向行驶的车辆通行45秒。
1、3方向步行的行人,也可以同时通过路口。
完成四个状态的一次循环需要120秒,完成了在适当的时间限度内,有效的疏散较大的通行量的目的。
整个状态转换的过程见表1-1。
表1-1 路口四个状态和相互转换过程(三)硬件功能可行性分析1.8253A定时/计数器芯片8253A定时/计数器具有定时、计数双功能。
它具有三个相同且相互独立的16位减法计数器,分别称为计数器0、计数器1和计数器2。
每个计数器计数频率为0-2MHZ。
其内部数据总线缓冲器为双向三态,故可直接连在系统数据总线上,通过CPU写入计数初值,也可由CPU读出计数当前值。
读写控制逻辑,当选中该芯片时,根据读写命令和送来的地址信息控制整个芯片工作。
其工作方式通过控制字确定。
控制字寄存器用于接收数据总线缓冲器的信息。
当写入控制字时,控制计数器的工作方式;当写入数据时则装入计数初值。
控制寄存器为8位,只能写入不能读出。
8253A内部结构见图1-2。
当8253A执行计数功能时,计数器装入初值后,当GATE为高电平时,可用外部事件作为CLK脉冲对计数值进行减1计数。
每来一个脉冲减1,当计数值减为0时,由OUT 端输出一个标志信号。
当8253A执行定时功能时,计数器装入初值后,当GATE为高电平时,由CLK脉冲触发开始自动计数。
当计数到零时,发计数结束定时信号。
8253A可以工作在方式0到方式5,常用的有方式2频率发生器方式和方式3方波发生器方式。
在方式2时,当初值装入后,OUT变为高;计数结束,OUT变为低。
该方式下如果计数未结束,但GATE为低时,立即停止计数,将OUT变为高;当GATE再变高时,便启动一次新的计数周期。
在方式3时,当装入初值后,在GATE上升沿启动计数,OUT 输出高电平;当计数完成一半时,OUT输出低电平。
在本系统中,8253A工作于方式3方波发生器方式。
图1-2 8253A内部结构图2.8259A中断控制器芯片8259A是专为控制优先级中断而设计的芯片。
它将中断源按优先级排队、辨认中断源和提供中断向量的电路集成于一体,只要用软件对它进行编程,就可以管理8级中断。
8259A的内部结构见图1-3。
它由中断请求寄存器(IRR)、优先级分析器、中断服务寄存器(ISR)、中断屏蔽寄存器(IMR)、数据总线缓冲器、读写控制电路、级联缓冲器和比较器组成。
图1-3 8259A的内部结构对8259A编程和初始化的时候,首先要写初始化命令字ICW1-ICW4。
写ICW1以确定中断请求信号类型,清除中断屏蔽寄存器,进行中断优先级排队和确定系统是用单片还是多片。
写ICW2用来定义中断向量的高五位类型码。
ICW3可以定义主片8259A中断请求线上IR0-IR7有无级联的8259A从片。
写ICW4用来定义8259A工作时用8085模式还是8088模式,以及中断服务寄存器复位方式等。
初始化命令字写完以后,要写8259A的控制命令字,它包括OCW1-OCW3。
写OCW1可以设置或清除对中断源的屏蔽。
写OCW2设置优先级是否进行循环、循环的方式和中断结束的方式。
8259A复位时自动设置IR0优先权最高,IR7优先权最低。
写OCW3用来设置查询方式和特殊屏蔽方式,并可以读取8259A中断寄存器的当前状态。
在本系统中,使用8259A的循环等待中断工作方式。
3.8255A可编程并行接口芯片8255A是一种可编程的芯片,它采用双列直插封装,用+5V电源供电。
内部有3个8位的I/0端口:A口、B口和C口。
这三个端口也可以分为各有12位的两组:A组和B 组。
A组包含A口8位和C口的高四位,B组包含B口8位和C口的低四位;A组控制和B组控制用于实现方式选择操作;读写控制逻辑用于控制芯片内部寄存器的数据和控制字经数据总线缓冲器送入各组接口寄存器中。
由于8255A数据总线缓冲器是双向三态8位驱动器,因此可以直接和8088系统数据总线相连。
8255A的内部逻辑结构见图1-4。
图1-4 8255A的内部结构8255A有三种工作方式:方式0、方式1和方式2。
它通过对控制寄存器写入不同的方式选择控制字来决定其三种不同的工作方式。
方式0是基本输入输出方式。
该方式下的A口8位和B口8位可以由输入的控制字决定为输入或输出,C口分成高4位(PC4-PC7)和低4位(PC0-PC3)两组,也有控制字决定其输入或输出。
需要注意的是,该方式下,只能将C口其中一组的四位全部置为输入或输出。
方式1选通输入输出方式,又叫单向输入输出方式。
它分为A、B两组,A组由数据口A和控制口C的高4位组成,B组由数据口B和控制口C的低4位组成。
数据口的输入输出都是锁存的,与方式0不同,由控制字来决定它是作为输入还是输出。
C口的相应位用于寄存数据传送中所需的状态信号和控制信息。
方式2为双向输入输出方式。
本方式只有A组可以使用。
此时A口为输入输出双向口,C口中的5位(PC3-PC7)作为A口的控制位。
在本系统中,8255A的三个端口均工作于方式0,全部为输出口。
二、系统设计(一)硬件设计1.电路需求分析本系统要实现的功能是模拟十字路口红绿灯的工作状况。
按照预先设定并优化的交通灯规则,控制LED指示灯的亮灭,同时在实验箱的数码管显示屏上显示剩余的时间。
当时间递减到0的时候,改变LED灯的状态,并刷新显示屏显示的时间。
为了实现以上功能需求,本系统需要12个LED指示灯,来分别代表四个路口的直行、左转和右转灯;两个双位的数码管显示屏,用来显示1、3路口和2、4路口剩余的时间。
为了实时地更新数码管显示屏上的数字,需要使用8255A可编程芯片来即时地改变显示屏每个笔划的电平高低,从而准确地将需要显示的数字显示在数码管显示屏上。
由于交通灯需要按秒进行计数,所以需要一个均匀地时钟发生器。
8253A芯片是个功能丰富、使用简单的定时/计数器。
它可以根据需要设置不同的显示初值,从而产生所需频率的时钟脉冲,为系统提供计时和驱动其他事件的发生。