基于AT89C51单片机的交通灯控制系统设计1.1项目概述1.2项目要求1.3系统设计1.4硬件设计1.5软件设计1.6系统仿真及调试1.1项目概述随着微控技术的口益完善和发展,单片机的应用不断走向深入。它的应用必定导致传统的控制技术从根本上发生变革。它在工业控制、数据采集、智能仪表、机电一体化、家用电器等领域得到广泛的应用,极大地提高了这些领域的技术水平和自动化控制。同时,伴随着我国经济的高速发展,私家车、公交车的增加,无疑会给我国的道路交通系统带来沉重的压力,很多大城市都不同程度地受到交通堵塞问题的困扰。下面以AT89C51单片机为核心,设计出以人性化、智能化为目的的交通灯控制系统。本项目主要从单片机应用上来实现十字路口交通灯智能化的管理,用来控制过往车辆的正常化运作。返回1.2项目要求用AT89C51单片机控制一个交通灯系统,晶振采用12MHz。设A车道与B车道交叉组成十字路口,A车道是主干道,B为支道。设计要求如下:(1)用发光二极管模拟交通信号灯;(2)正常情况下,A,B两车道轮流放行,A车道放行50s,另有5s用于警告;东西南北车道放行30s,另有5s用于警告;(3)在交通繁忙时,交通信号灯控制系统应有手控开关,可人为地改变信号灯的状态,以缓解交通拥挤状况。在B车道放行期间,若A车道有车而B车道无车,按下模拟开关K1使A车道放行15s;在A车道放行期间,若B车道有车而A车道无车,按下模拟开关K2使B车道放行15s。(4)有紧急车辆通过时,按下开关K3使A,B车道均为红灯,禁止通行20s。返回1.3系统设计交通灯控制系统主要控制A,B两车道的交通,以AT89C51单片机为核心芯片,通过控制三色LED灯的亮灭来控制各车道的通行;另外通过3个按键来模拟各车道有无车辆的情况和有紧急车辆的情况。根据设计要求,制定总体设计思想如下:正常情况下运行主程序,采用0.5s延时子程序的反复调用来实现各种定时时间。一个车道有车而另一个车道无车时,采用外部中断1执行中断服务程序,并设置该中断为低优先级中断。有紧急车辆通过时,采用外部中断0执行中断服务程序,并设置该中断为高优先级中断,实现二级中断嵌套。下一页返回1.3系统设计1.3.1框图设计基于AT89C51单片机的交通信号控制系统由电源电路、单片机主控电路、按键控制电路和道路显示电路几部分组成,框图如图1.1所示。1.3.2知识点通过学习和查阅资料,本项目需掌握和了解如下知识:+5V电源原理及设计。(见附录A)单片机复位电路工作原理及设计。单片机晶振电路工作原理及设计。上一页下一页返回1.3系统设计按键电路工作原理及设计。驱动电路74LS07的特性及使用。LED的特性及使用。AT89C51单片机引脚。单片机汇编语言及程序设计。上一页返回1.4硬件设计用12只发光二极管模拟交通信号灯,以AT89C51单片机的P0控制这12只发光二极管,由于单片机带负载的能力有限,因此,在P0口与发光二极管之间用74L507作驱动电路,P0口输出低电平时,信号灯亮;输出高电平时,信号灯灭。在正常情况和交通繁忙时,A,B两车道的6只信号灯的控制状态有5种形式,即P0口控制功能及相应控制码如表1.1所示。分别以按键K1,K2模拟A,B车道的车辆检测信号,开关K1按下时,A车道放行;开关K2按下时,B车道放行;开关K1和K2的控制信号经异或取反后,产生中断请求信号(低电平有效),通过外部中断1向CPU发出中断请求;因此产生外部中断1中断的条件应是:,可用集成块74LS266(如无74LS266,可用74LS86与74LS04组合代替)来实现。下一页返回1.4硬件设计采用中断加查询扩展法,可以判断出要求放行的是A车道(按下开关K1)还是B车道(按下开关K2)以按键K3模拟紧急车辆通过开关,当K3为高电平时属正常情况,当K3为低电平时,属紧急车辆通过的情况,直接将K0信号接至(P3.2)脚即可实现中断0中断。综上所述,可设计出基于AT89C51单片机控制交通信号灯模拟控制系统的电路图如图1.2所示。1.4.2元件清单基于AT89C51单片机的交通信号灯控制系统元件清单如表1.2所示。上一页返回1.5软件设计主程序采用查询方式定时,由R2寄存器调用0.5s延时子程序的次数,从而获取交通灯的各种时间。子程序采用定时器1方式1查询定时,定时器定时50ms,R3寄存器确定50ms循环10次,从而获得0.5s的延时时间。有车车道放行的中断服务程序首先要保护现场,因需要用到延时子程序和P0口,故需保护的寄存器有R3,P0,TH1和TL1,保护现场时还需关中断,以防止高优先级中断(紧急车辆通过产生的中断)出现导致程序混乱。开中断,由软件查询P3.0和P3.1口,判别哪一车道,再根据查询情况执行相应的服务。待交通灯信号出现后,保持15s的延时,然后,关中断,恢复现场,再开中断,返回主程序。下一页返回1.5软件设计紧急车辆出现时的中断服务程序也需要保护现场,但无须关中断(因其为高优先级中断),然后执行相应的服务,待交通灯信号出现后延时20s,确保紧急车辆通过交叉路口,然后,恢复现场,返回程序。1.5.1程序流程图交通信号灯模拟控制系统程序流程图如图1.3所示。1.5.2程序清单交通灯信号灯模拟控制系统程序清单如下:上一页下一页返回1.5软件设计上一页下一页返回1.5软件设计上一页下一页返回1.5软件设计上一页下一页返回1.5软件设计上一页下一页返回1.5软件设计上一页下一页返回1.5软件设计上一页返回1.6系统仿真及调试基于AT89C51单片机的交通信号灯控制系统仿真过程参考附录C。交通信号与控制状态仿真结果如图1.4、图1.5、图1.6、图1.7,图8.8所示。单片机系统的硬件调试和软件调试是不能分开的,许多硬件错误是在软件调试过程中被发现和纠正的。但通常是先排除明显的硬件故障以后,再和软件结合起来调试以进一步排除故障。可见硬件的调试是基础,如果硬件调试不通过,软件设计则无从谈起。硬件的调试主要是把电路各种参数调整到符合设计要求。先排除硬件电路故障,包括设计性错误和公益性故障。一般原则是先静态后动态。下一页返回1.6系统仿真及调试利用万用表或逻辑测试仪器,检查电路中的各器件以及引脚是否连接正确,是否有短路故障。先要将单片机AT89S51芯片取下,对电路板进行通电检查,通过观察看是否有异常,然后用万用表测试各电源电压,这些都没有问题后,接上仿真机进行联机调试观察各接口线路是否正常。单片机AT89S51是系统的核心,利用万用表检测单片机电源Vcc是否为(40脚)+5V、晶振是否正常工作(可用示波器测试,也可以用万用表检测,两引脚电压一般为1.8~2.3V)、复位引脚RST(复位时为高电平,单片机工作时为低电平)、EA是否为+5V(高电平),这样一来单片机就能工作了,再结合电路图,检测故障就很容易了。上一页返回图1.1基于AT89C51单片机的交通信号灯控制系统框图返回表1.1交通信号与控制状态对应关系返回图1.2基于AT89C51单片机的交通信号模拟控制系统电路图返回表1.2交通信号控制系统元件清单返回图1.3交通信号灯模拟控制系统程序流程图返回图1.4A道放行,B道禁止返回图1.5A道警告,B道禁止返回图1.6A道禁止,B道放行返回图1.7A道禁止,B道警告返回图1.8A道禁止,B道禁止返回