单片机交通灯控制系统的设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

广西水利电力技术学院题目:其于AT89S52单片机交通灯控制系统的设计系别:电子工程系专业:电子信息工程年级:2011级学生姓名:指导教师:时间:2011年10月12日摘要:近年来随着科技的飞速发展,单片机的应用正在不地走向深入,同时带动传统控制检测日新月益更新。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。交通信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。本系统采用单片机AT89S52为中心器件来设计交通灯控制器,系统实用性强、操作简单、扩展性强。1关键词:1、单片机最小系统。2、红、黄、绿LED交通灯。3、紧急通车开关。一、设计任务与要求用AT89S52单片机控制一个交通信号灯系统,晶振采用12MHZ。设A车道与B车道交叉组成十字路口,A是主道,B是支道。设计要求如下:用发光二极管模拟交通信号灯,用按键开关模拟车辆检测信号。正常情况下,A、B两车道轮流放行,A车道放行50s,其中5s用于警告;B车道放行30s,其中5s用于警告。交通繁忙时,交通信号灯控制系统应有手控开关,可人为地改变信号灯的状态,以缓解交通拥挤状况。在B车道放行期间,若A车道有车而B车道无车,按下开关K1使A车道放行15s;在A车道放行期间,若B车道有车而A车道无车,按下开关K1使B车道放行15s。有紧急车辆通过时,按下K2开关使A、B车道均为红灯,禁行20s。二、方案设计与论证方案一:交通控制系统主要控制A、B两车道的交通,以AT89S52单片机为核心芯片,通过控制三色LED的亮灭来控制各车道的通行;另外通过2个按键来模拟各车道有无车辆的情况和有紧急车辆的情况。根据设计要求,制定总体设计思想如下:1、正常情况下运行主程序,采用0.5S延时子程序的反复调用来实现各种定时时间。2、一道有车而另一道无车时,采用外部中断1执行中断服务程序,并设置中断为低优先级中断。3、有紧急车辆通过时,采用外部中断0执行中断服务程序,并设置中断为高优先级中断,实现二级中断嵌套。该电路具有电路简单,设计方便,显示亮度高,耗电较少,也非常的可靠等点。总体设计框图如图1所示:AT89S52单片机复位电路晶振电路按键电路七段数码管倒计时显示电路A、B车道LED显示电路2方案2:采用AT89C2051单片机作为控制器,通行倒计时、主、次车道及行人通行指示采用单块LCD液晶点阵显示器。这种方案设计占用单片机的端口最少,硬件也最少,耗电也最少;虽然显示图案也很精美,但由于亮度太暗,晚上还得必须开背光灯,所以较少采用。通过以上综合分析可以看出,方案一具有综合设计优点,因此城市道口交通灯控制系统模型采用方案一设计。三、硬件单元电路设计与参数计算1、时钟电路模块时钟电路由一个晶体振荡器12MHZ和两个30pF的瓷片电容组成。时钟电路用于产生单片机工作所需要的时钟信号,而时序所研究的是指令执行中各信号之间的相互关系。单片机本身就如一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地工作。其电路如图3所示:图3时钟电路模块2、复位电路模块复位电路是使单片机的CPU或系统中的其他部件处于某一确定的初始状态,并从这状态开始工作,除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需按复位电路以重新启动。本设计采用的是按键复位电路。其电路如图4所示:3图4复位电路3、主控制系统模块主控制器采用AT89S52,是ATMEL公司生产的一款性能稳定的8位单片机。AT89S52具有1个8KB的FLASH程序存储器,1个512字节的RAM,4个8位的双向可位寻址I/O端口,3个16位定时/计数器及1个串行口和6个向量二级中断结构。单片机的P0口分别用于控制南北及东西的通行灯,P2口和P3^4-P3^7口用于4组4位LED计时器的控制,紧急车辆通行时使用外中断0(P3^2)和外中断1(P3^3),进行手动按键,即可转换。其主控电路如图5所示:图5主控制系统模块4、交通灯输出控制模块道口交通灯指示采用高亮度红、黄、绿发光二极管进行提示。其图如图6所示4图6LED显示模块当R=220欧时,按公式A=(5-1.8)/R计算,电路中的电流大小应为A=14.545mA.由于每个路口的通行双向指示处理相同,因此每个端口应具有3A的吸收电流能力。5、时间显示电路模块道口通行剩余时间采用高亮红色7段LED发光数码管显示,采用共阳数码管,如用单片机吸收电流驱动,列扫描驱动使用三极管,按每段6mA电流计算,全显示字形“8”时,每个数码需6mA*8=48mA,由于时间显示每个道口相同,共需要电流192mA,因此设计中也采用了中功率三极管8550.其显示电路如图7所示:6、紧急通车电路模块为了实现此功能,利用单片机中断达到目的。利用一个手动按钮开关接至单片机外部中断0,同时在软件设计时将其设定为最高优先级,当其按下时,四方全为红灯,同时将中断位置的PSW、ACC进栈保护,当其计时完了之后,回到原来的位置进行执行。再利用一个手动按钮接至单片机外部中断1当其按下时,如果是东西道是红灯,而南北道是绿灯,则将其置为东西是绿灯,南北是红灯;如果是东西道是绿灯,而南北道是红灯,则将其置为东西是红灯,南北是绿灯。两种情况都是执行完后,回到断点处继续执行。其电路如图8所示:5图7数码管显示模块图8按键控制电路三、软件设计与流程图1、软件的设计主程序采用查询方式定时,调用0.5S延时子程序的次数,从而获取交通灯的各种时间。子程序采用定时器1方式1查询式定时,定时器定时50ms,确定50ms循环20次,从而获得1S的延时时间。有车车道的放行的中断服务程序首先要保护现场,因而需用到延时子程序,子程序采用定时器0方式1查询式定时,定时器定时50ms,确定50ms循环20次,从而获得1S的延时时间,保护现场时还需关中断,以防止高优先级中断(紧急车辆通过所产生的中断)出现导致程序混乱。开中断,由软件查询外中断1,判别哪一道有车,再根据查询情况执行相应的服务。待交通灯信号出现后,保持15S的延时,然后,关中断,恢复现场,再开中断返回主程序。紧急车辆出现时的中断服务程序也需要保护现场,但无须关中断(因其为高优先级中断),然后执行相应的服务,待交通灯信号出现后延时20S,确保紧急6车辆通过交叉路口,然后,恢复现场,返回主程序。2、程序流程图主程序有车车道放行时的中断服务程序(外中断1)紧急情况时的中断服务程序(外中断0)初始化开始A绿灯、B红灯延时45SA黄灯、B红灯延时5SA红灯、B绿灯灯延时25SA红灯、B黄灯延时5S中断响应关中断保护现场开中断A道有车吗B道有车吗A绿灯、B红灯A红灯、B绿灯延时15S关中断恢复现场开中断返回中断响应保护现场A红灯、B红灯延时20S恢复现场返回7五、总原电路及元器件清单1.总原理图如图9所示图9总的原理图2.PCB制板图如图10所示8图10PCB板3.整体电路仿真图以及仿真结果分析(1)、整体电路仿真图如图11所示图11仿真图9(2)、仿真结果分析上电或按键复位后数码管无显示,东西、南北的灯都为红灯亮;开始工作后主车道绿灯亮次车道红灯亮50S,在这里选定它亮到5S时,主车道绿灯灭,黄灯亮;5S后主车道变为红灯亮次车道绿灯亮30S,在这里选定它亮到5S时,次车道黄灯亮,5S后返回重新执行。按紧急车辆按钮红灯全亮显示时间为20S;有车车道放行按钮按下时,若主车道是绿灯、次车道是红灯,则把主车道变为红灯、次车道变为绿灯,显示15S;若主车道是红灯、次车道是绿灯,则把主车道变为绿灯、次车道变为红灯,显示15S;4、元件清单如下表所示:元件名称型号数量/个用途单片机AT89S521控制核心晶振12MHZ1晶振电路电容30pF2晶振电路电解电容10uF1复位电路电阻5.1K1复位电路发光二极管LED12红、黄、绿灯集成块74LS081按键电路电阻220Ω13LED限流电阻470Ω8数码管电路电阻1K7数码管驱动、按键电路四位共阳数码管GC-3461BS1显示电路微动开关3按键电路三级管PNP85504数码管驱动电路六、安装与调试1.电路安装打好板后,按照所画的PCB板,一一的把各个元件焊接到所制的板上即可。2.电路调试电路调试是利用开发系统、基本测试仪器(万用表、示波器等),检查系统硬件中存在的故障。其调试可分为静态调试与动态调试两步进行。静态调试是在系统未工作时的一种硬件检测。第一步:目测。检查外部的各种元件或者是电路是否有断点。第二步:用万用表测试。先用万用表复核目测中有疑问的连接点,再检测各种电源与地线之间是否有短路现象。第三步:加电检测。给板加电,检测所有的插座或是器件的电源端是否符合要求的值。第四步:是联机检查。因为只有用单片机开发系统才能完成对用户系统的调试。动态调试动态调试是在系统工作的情况下发现和排除系统硬件中存在的器件内部故障、器件连接逻辑错误等的一种硬件检查。动态调试的一般方法是由近及远、由分到合。10由分到合是指首先按逻辑功能将系统硬件电路分为若干块,当调试电路时,与该元件无关的器件全部从系统中去掉,这样可以将故障范围限定在某个局部的电路上。当各块电路无故障后,将各电路逐块加入系统中,在对各块电路功能及各电路间可能存在的相互联系进行调试。由分到合调试既告完成。由近及远是将信号流经的各器件按照距离单片机的逻辑距离进行由近及的分层,然后分层调试。调试时,仍采用去掉无关元件的方法,逐层调试下去,就会定位故障元件了。3.软件调试软件调试是通过对拥护程序的C编程、连接、执行发现程序中存在的语法错误与逻辑错误并加以排除纠正的过程。运行程序后,编辑,查看程序是否有逻辑的错误。七、性能测试与分析系统做好的,进行系统的完整调试。按照所设计的流程图,用单片机跟踪模式程序进行调试,配合相关的硬件动作,可以观察LED的变化和数码管的显示是否正确。同样明确延时时间长短、跳转位置及调用的程序功能。经过观察各检测,我可以看到整个系统的功能都能达到我的设计要求。八、结论与心得以往每次做课程设计,都会感觉自己收获不少。这次单片机课程设计也不例外。做课程设计是为了让我们对平时学习的理论知识与实际操作相结合,在理论和实验教学基础上进一步巩固已学基本理论及应用知识并加综合提高,学会将知识应用于实际的方法,提高和解决问题的能力。第一,在编写软件中,在此过程中我更为熟练得掌握汇编语言各种指令的使用方法,掌握了keil软件的使用。第二,在软件调试过程中,使我又一次复习了keil和proteus联合使用的方法。在调试时曾经遇到数码管倒计时显示时间两位不能同时显示,后来经过查找资料不断调试才领悟到原来在显示的过程中要循环显示才能使得显示稳定下来。第三,在做原理图和PCB的过程中,使我进一步掌握了proteus软件的使用方法。再次熟悉了各种作图工具的应用,而且培养了我在设计原理图时的一些技巧和好的习惯。第四,在做实物的过程中,培养了我认真耐心的工作态度。我在做板子过程中,首先由于我的布线比较紧密加上孔和焊盘过小使得在打孔是出现刮断线以及在焊接的时候出现了虚焊和联焊等问题,后来我不得不重新再做一次板;二是由于焊接前没检查断线问题,使得我的PCB在加载程序后只有灯亮,而数码管却不亮,后来经过我的仔细检查,原来是在给三级管供电的线有断,将其连接起来后,就能显示了,从而得以成功。总之,通过这次课程设计,我掌握了用单片机设计交通灯的基体方法,增强了我寻找问题,解决问题的能力。培养了我的设计思维,此次课程设计的成功不仅帮助我更好地掌握书本知识,尤其重要的是增强了我的自信,培养了我独立思考的能力。但是此次设计不中之处是不能实现左右弯灯,不有人行道控制灯,不能进行流量控制。11十一、程序清单#includereg52.h#defineucharunsignedchar#defineuintunsignedint#definetime

1 / 19
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功