十字路口交通灯控制系统
口,交通来往非常混乱,为了在叉口的各条干道实现合理的科学分流。传统的交通灯控制系统, 采用的基本上是三种控制方式。手按: 交警在岗亭值守,人为进行红绿灯改变; 黄闪:夜间无人值守时, 用每秒1次的黄灯闪亮, 提醒司机安全驾驶; 程控: 以60s 作为一个时间单位。某一方面(例南北方向) 红黄绿三灯的工作程序分别是: 红灯先亮30s, 然后绿灯亮28s, 再绿灯闪亮3s (每秒1次) , 最后黄灯亮2s。此时, 另一方向(东西方向) 红黄绿三灯的工作顺序相应为: 绿灯亮25s, 绿灯闪亮3s (每秒1次) , 黄灯亮2s, 最后红灯亮30s。此后以60s 作为时间单位进行上述的反复循环。但红绿灯的工作顺序及时间都是固定的, 缺乏灵活性。目前国内和国外都开始设计一种可以根据车流量而改变交通灯的亮灭时间,也就是智能化交通控制。 1.3.设计目的
对于一般情况下的安全行车、车辆分流发挥着作用, 但根据实际行车过程中出现的情况, 主要有如下几个缺点: 一、两车道让车轮流放行时间相同且固定, 在十字路口, 经常一个车道为主干道,车辆较多, 放行时间应该长些; 另一车道为副干道, 车辆较少,放行时间短些。二、 没有考虑紧急车通过时, 两车道应采取的措施, 譬如, 有消防车通过执行紧急任务时, 两车道的车都应停止, 让紧急车通过。根据行车过程中出现的实际情况,本人尝试用单片机来控制交通灯, 在软、硬件方面采取一些改进措施, 使交通灯在控制中灵活而有效。但是目前的交通灯时间控制都是固定的,不能适应不同情况的时间控制,因此能够设计一种能够随时调节循环控制时间的交通控制器是比较符合社会发展需要的。本设计目的就是要设计出这样一种可以调节控制时间的交通灯控制系统。 1.4.设计研究内容
考虑到单片机具有物美价廉、功能强、使用方便灵活、可靠性高等特点,本人提出了一种用STC89C54RD+单片机作为主控来实现十字路口交通信号灯的控制。正常情况下,十字路口的红绿灯应交替变换,紧急情况下,如有救护车或警车到来时,应优先让其通过。 在本文中,用双色发光二极管来模拟交通信号灯,救护车的优先通过请求信号由外部中断技术来模拟。要求使用定时器/计数器0作为定时器,假设南北和东西的通车时间都为30s,外部中断的延时为10s,通行时间进行倒计时,从P0口输出,在数码管上显示并进行递减。以此来实现十字路口交通灯的指示功能。设计出一种红绿黄灯可以调节控制时间的交通控制系统,控制时间调整后要能在设定后的时间下运行,有一个人机界面,交通灯的控制时间可以在此界面进行查看。此人机界面还可以显示当前时间,时间可调节。
2
贺州学院本科生毕业论文(设计)
2 方案论证
2.1 主要控制芯片
十字路口交通灯控制系统的设计可以通过PLC和单片机来达到目的,但是考虑到PLC的价格比较昂贵,功耗也会比较大,而且目前我还没有比较深入研究过PLC,若是用PLC来做这个设计也有所不便,因此选用了比较常见的单片机来做此设计。而单片机的种类很多,要选一种性介比高的机型,RAM和ROM要足够大,所以用了STC系列的STC89C54RD+
【1】
。
2.2 数码管的选择
数码管有单个的,也有两位或三位、四位的,但在此考虑到一般交通灯只有0到99秒的计数,所以就用两位共阴的数码管,并且用两位的时候,PCB板的布线会容易许多,减少不必要的麻烦。由于东与西,南与北的方向数码相同,因此只用了一个双位数码管。 2.3 红绿信号灯的选择
单片机的I/O口数量有限,要找一种可以显示红绿黄三色的发光元件,所以就使用了双色的LED灯,它的主要工作原理是利用三基色原理(红色+绿色=黄色),因而不用单一的红绿黄LED灯就可以达到目的。 2.4 显示器的选择
在此设计中要进行人机交流的界面,在此可以用LCD1602、12864等来作为显示器,但是12864所要用到的I/O口会比LCD1602多,而在此设计中,没加任何I/O口扩充设备的情况下,要用尽量少的I/O口,以防I/O口不足,因此选用了LCD16022.5 程序编写的选择
此设计可以用汇编和C语言来编程,但是C语言的编写会比汇编容易得多。所以用C 语言来写程序。
【2】
。
十字路口交通灯控制系统
3.相关硬件设计
3.1 控制要求
(1)开机后初始状态为东西红灯,数码为30秒;南北绿灯,数码为20秒; (2)绿灯亮时表示可以通行,红灯亮时表示禁止通行;
(3)每次绿灯变红灯时,黄灯先亮5秒(此时另一干道上的红灯不变);
(4)十字路口要求有数字显示,作为时间提示,以便人们更直观地把握时间,具体 要求主、支干道通行时间及黄灯亮的时间均以秒为单位做减数器; 在黄灯亮时,原红灯按1HZ的频率闪烁;
(5)当有急救车到达时,路口的信号灯全部变红,让急救车通过。假定急救车通过 时间为10s,急救车通过后,交通灯恢复先前状态。
根据控制要求制作系统原理图如图3.1,此系统用了按键作输入模块,LCD1602和LED及数码管作显示模块,下面为模块分析。
SSHUU4双色灯SHSESD1123SSHUU5P00P01P02P03P04P05P06P07457108329abcdefgdpSHSESD2123SHSESD3123SHSESD4123com2com2com1P17J1P16P15P14P13123123P12P11P10VCCVCCVCCU1P10P11VCCP12P13P14P15P16P17p32p33p34p3512345678P10/TP11/TP12P13P14P15P16P17INT1INT0T1T0EA/VPX1X2RESETRDWR8052VCC81P00P01P02P03P04P05P06P07P20P21P22P23P24P25P26P278011J3123456789J6RP1VCC12345678910111213141516CON16123456789U3P201P212P223ABCY0Y1Y2Y3Y4Y5Y6Y71514131211109780818283P00P01P02P03P04P05P06P07P20P21P22P23P24P25P26P2739383736353433322122232425262728P00P01P02P03P04P05P06P076456VCCC1E1E2E374HC1381312151431VCCS2P30S3P31P24P25P26110K2345678S4P32VCCVCC191851PY112MC251P22uS1C3J4VCC21R1300p30p3121p36p3791716S5RXDTXDALE/PPSEN10p3011p313029P33U2P27P00P01P02P03P04P05P06P0711123456789OCC1D2D3D4D5D6D7D8D74HC5731Q2Q3Q4Q5Q6Q7Q8Q1918171615141312123456786数码管STC89C54RD+12312383com1P00P01P02P03P04P05P06P07457108329abcdefgdp82P17P16P15P14P13P12P11P1074HC13874HC573D1S61N4001C5+100UVCC300R3D2J5图3.1原理图
4
贺州学院本科生毕业论文(设计)
3.2 交通信号灯的工作原理:
一般情况下,红绿灯设在十字路口,或在多干道的叉口上,目的是为了调整叉口的交通秩序使各干道来往车辆能够有条不紊地行驶,否则将造成意想不到的严重后果。当然在叉口设置合理的红绿灯后,也可大大减少交通管理部门的人力、物力。
叉口交通信号等的基本作用:红灯亮表示车辆、行人禁止通行,绿灯亮表示车辆、行人可以通行,绿灯转换成红灯前几秒,可用黄灯亮来暗示驾驶员或行人即将禁止通行。该系统的屏幕时间显示用倒计时方式表示红绿灯的切换时间,时间显示器的作用是协助红绿灯工作,跟随红、绿灯反复地进行切换。目的是为了使驾驶员和行人能够看见红绿等亮的时间还剩几秒以便停车线以内的驾驶员和行人能够更清楚地知道此时该继续通行或减速,才不会使驾驶员盲目地加速或减速停车而阻碍另一干道车辆或行人的通行,从而可以提高叉口车辆及行人的流通率,当然也可以减少事故的发生,为交通安全提供保障。交通信号灯的工作原理:如图1示,当东西组红灯亮绿灯灭;则南北组绿灯亮红灯灭。对东西组或南北组而言,每当绿灯亮转换成红灯亮前几秒(具体多长时间视实际情况而定)黄灯亮,当绿灯灭时黄灯也灭。
北 人行道 人行道 黄 绿 红 红 绿 黄 黄 绿 红 绿 黄红 西 东 人行道 南 图1交通平面图
人行道 采用单片机的I/O中P1口加上一个上拉电阻后直接和交通灯连接,而P3口中的P30—P33接开关控制,P0口中接数码管和LCD1602的数据口,P2口作为数码管的位选择口以及LCD1602的控制入口,其中P20,P21,P22作为74HC138的输入端,P24,P25,P26作为LCD1602的读写控制端口,LCD1602用作人机交流界面。控制程序放在STC89C54RD+单片机的ROM中, 在十字路口的四组红、黄、绿交通灯, 受单片机P1.0~P1.7 控制, 由于交通灯为双色共阳发光二极管且阳极直接和电源正极连接, 因此I/O口输出低电平时, 与
十字路口交通灯控制系统
之相连的相应指示灯会亮, I/O口输出高电平时, 相应指示灯会灭。紧急车请求通过的信号由人工控制, 以中断方式输入单片机, 无紧急车通过时, 中断引脚INT0 通过电阻和电源正极连接为高电平, 不产生中断请求,单片机执行主程序, 有紧急车通过时, 中断引脚采用人工方法接地为低电平, 产生中断请求, 单片机执行中断服务程序, 让紧急车通过, 紧急车通过后, 中断引脚变为高电平, 返回主程序。由于倒计时显示装置已普遍采用, 因此本文未引入探讨,也是使用倒计时的方法,进行时间显示3.2.1 单片机
STC89C54RD+单片机是一种带16K字节闪烁可编程可擦除只读存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,超低功耗[2](掉电模式<0.1uA,正常模式:4Ma-7mA)。该单片机有1280个字节的RAM数据存储器,16K的EEPROM,工作频率为0到80M,它的P0口是开漏输出,作为总线扩展用时不用加上拉电阻,作为I/O用时要加上拉电阻。其有2个数据指针,8个中断源,3个十六位定时器,其中定时器0还可作为两个定时器用,还内置了高速A/D和看门狗
【4】
【3】
。
。
其引脚原理图如下图3.1所示。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,STC的89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案,擦写次数达十万次以上。因此选择了这个性介比比较高的单片机。对于一个典型的单片机系统而言,主要由单片机、晶振和复位电路、输入控制电路、输出显示电路以及外围功能器件5个部分组成,本设计硬件也是由这五部分组成的,参照上面的原理图:。
图3.1单片机引脚原理图
3.2.2 LCD1602液晶显示屏
LCD1602液晶显示屏是以若干个性5*8或5*11点阵块组成的显示字符群,每个点阵块为一个字符位,字符间距都为一个点的宽度,它具有64个字节的自定义RAM,可一次性单行显示16个字符,双行显示32个字符,可以选择4位的数据口或8位数据口读写。
6