交通灯毕业设计 城市道口交通灯控制系统设计.doc
【精品文档】如有侵权,请联系网站删除,仅供学习与交流交通灯毕业设计 城市道口交通灯控制系统设计.精品文档.三明学院 设计(论文)题 目: 城市道口交通灯控制系统设计 系 别: 物理与机电工程系 专 业: 电子信息工程技术 学 号: 20070623203 姓 名: 蔡光桢 指导老师: 陈金兰 职称:讲师 系分管主任: 彭永仙 时 间: 2010.1.22 目 录一、方案论证与功能要求21.1设计任务与要求21.2方案论证与比较2二、系统硬件电路的设计42.1主控制系统42.2通行灯输出控制52.3时间显示模块52.4特殊车辆自动通行控制模块62.5盲人提示音电路72.6电源电路7三、系统主要程序的设计73.1初始化程序83.2主程序83.3外中断1中断服务程序83.4定时器中断服务程序8四、调试及性能分析124.1红绿交通灯控制程序124.2特殊车辆通行时红外线检测电路的调试12五、实物调试情况125.1.预期目标:125.2.问题125.3.评语135.4.实物图13设计结论13致谢语13参考文献14附录 控制源程序清单15城市道口交通灯控制系统的设计蔡光桢三明学院2007级电子信息工程技术(2)班 福建三明 365004【摘要】 新型多功能交通灯控制系统越来越多的被用于个大中小城市中,它有效地改善了交通堵塞等现象。利用单片机设计制作城市道口交通灯控制系统。本设计以单片机AT89C52为核心,提出了系统的硬件实现方案,对各单元电路以及系统的整体硬件部分进行了设计与调试,并结合软件,实现了方向指示、特殊车辆检测、自动控制手动控制转换等功能。经检测系统工作稳定可靠,实用性强。【关键词】交通控制 交通灯 时间发生器 定时器 单片机一、方案论证与功能要求1.1设计任务与要求 城市道口交通灯控制系统模型采用单片机作为主控制器,用于十字路口的车辆及行人的交通管理,每个方向既有左拐、右拐、直行及行人4种通行指示灯,计时牌显示路口通行转换剩余时间,在出现警急情况时可由交警手动实现全路口车辆禁行而行人通行状态。另外,在特种车辆如119、120通过路口时,系统可自动转为特种车辆放行,其它车辆禁行通行的状态,15s后系统自动恢复正常管理。其他还有盲人提示音、120s与60s通行管理转换等功能。1.2方案论证与比较 方案1:采用标准AT89C52单片机作为控制器;显示倒计时显示采用3位LED数码管;左拐、右拐、直行及行人4中通行指示灯采用双色高亮发光二极管;LED显示采用动态扫描,以节约端口数。特种车辆通行采用实时中断完成,识别方法采用红外线发射及接受方案。按以上系统构架设计,单片机端口资源刚好满足要求。该系统具有电路简单,设计方便,显示亮度高,耗电较少,可靠性高等特点。整个电路组成框图如图2-1所示。上电复位 P1 P2 AT89C52 p0INT1 P3 ppP3南北通行灯(2组)东西通行灯(2组)3位LED显示器(4组)列扫描驱动串口通信119、120车辆监测自动/手控键盘图1-1 采用LED动态扫描的交通灯控制系统 方案2:采用AT89C2051单片机作为控制器;通行倒计时显示采用16×16点阵LED发光管,左拐、右拐、直行及行人4种通行指示灯也采用16×16点阵LED发光管。该系统设计框架如图2-2所示。列驱动采用74LS595以实现串行端口扩展,行驱动采用4/16译码器74LS154动态扫描,译码器74LS154生成16条行选通信号线,再经过驱动器驱动对应的行线。每条行线上需要较大的驱动电流,应选用大功率三极管作为驱动管。这种设计方案的图案显示逼真,单片机占用端口资源少;缺点是需要大量的硬件,电路复杂,耗电量大,在模型制作中较少采用。 REDTXD单片机I/O口电源行驱动器列驱动器74LS595双色LED显示点阵(每个路口7个)图1-2 采用16×16点阵LED发光管设计的交通灯控制系统方案3:采用AT89C2051单片机作为控制器,通行倒计时及左拐、右拐、直行、行人通行指示采用单块LCD液晶点阵显示器。这种方案设计占用单片机的端口最少,硬件也少,耗电量也最小;虽然显示图案也很精美,但由于亮度太暗,晚上还得开背光灯,所以较少采用。 通过以上综合分析可以看出,方案1具有综合设计优点,因此城市道口交通灯控制系统模型采用方案1设计。二、系统硬件电路的设计图2.0所示为采用LED动态扫描的交通灯控制系统总电路原理图。 整套电路系统由控制系统模块、通行灯输出控制显示模块、时间显示模块和自动特种车辆控制模块等组成。图2.0 城市道口交通灯控制系统模型总设计电路图2.1主控制系统主控制器采用AT89C52,是ATMEL公司生产的一款性能稳定的8位单片机。AT89C52具有1个8KB的Flash程序存储器,1个512字节的RAM,4个8位的双向可位寻址I/O端口,3个16位的定时/计数器及一个串行口和6个向量二级中断结构。单片机的P1口及P2口分别用于控制南北及东西的通行灯,P0口及P3P3.2口用于4组3位LED计时器的控制,特种车辆通过时使用外中断1口(P3.3),手动自动转换采用P3.7口按键。2.2通行灯输出控制 道口交通灯指示采用高亮度红绿双色放光二极管,左拐、直行、右拐及行人各一个。当发光电流为6mA时,按公式R=(5-1.8)/0.006计算,限流电阻应为510欧姆。由于南北通行是双向指示牌相同,因此每个端口应具有12mA的吸收电流能力。另外,人行道口按4个灯算需24mA的吸收电流。这样在单片机的输出喽需接驱动电路74HC244,以保护单片机的输出端口。图3.2所示为道口指示灯电路图。图2.2 城市道口交通指示灯电路2.3时间显示模块道口通行剩余时间采用高亮红色7断LED发光数码管显示,采用共阳数码管,如用单片机吸收电流驱动,列扫描驱动使用三极管,按每段6mA电流算,全显示字形“8”每个数码管6mA×8=48mA。由于时间显示每个道口相同,4组需192mA,因此设计中采用中功率三极管9012。由于单片机每个段码输出口需吸收24mA电流,因此在电路设计中也使用了驱动集成块74HC244.其显示驱动电路如图2.3。图 2.3时间显示驱动电路2.4特殊车辆自动通行控制模块 自动道口灯在特种车辆到来时能自动关闭所有绿灯,让特种车通过。设计中采用红外线发生器作为特种车的发信器,使用实时中断来响应特种车的通行要求。红外线接受器一般采用电视机上的用一体化红外接收器,具有很高的灵敏度和较强的抗干扰能力。2.5盲人提示音电路 道口控制系统设计中也考虑了方便盲人过人行道的声音提示电路,声音控制电路与人行道通行控制灯绿灯灯相同步,当绿灯亮时响一下,在行人结束通行前,绿灯闪烁10s时会间隔响5响(每次1s)。盲人提示音采用柔和的低音,声音悦耳。盲人提示音电路如图2.5所示。图2.5 盲人提示音电路2.6电源电路 由于整个系统采用电源电压只需+5V电压,所以采用不可调的3端稳压管器件,用常用的LM7805就可以满足系统电源的要求。LM7805三端集成稳压电源内部由基准电压回路,恒流源、过流保护、过压保护和短路回路等8部分组成,具有低功耗,高效率,纹波系数小,输出电压稳定等优点。三、系统主要程序的设计 道口交通控制系统程序主要分为以下几个模块:初始化程序、主程序、定时中断程序和特种车实时响应程序等。3.1初始化程序 初始化程序主要完成内存规划,定时器的工作模式、中断方式等的设定。由于程序调用较多,因此初始化时堆栈指针设于80H处。定时器T0、T1设为16位定时器模式,定时时间为50ms,T0为妙计时用,T1为通行结束闪烁用。3.2主程序 主程序主要负责总体程序管理功能,实现人机交互设定。由于采用动态扫描方式显示时间,因此主程序大部分时间要调用扫描显示程序。主程序流程图如2.2所示。3.3外中断1中断服务程序 当有特种车经过时,车中发射红外线信号,其信号被道口控制板上的接收器接收,并输出一个低电平触发外中断1,中断处理程序流程如图4.3所示。开始 初始化显示程序p3.7=0?键功能程序YN外中断程序现场保护关外中断1开定时器T1送全红灯,数据缓存15s倒计时结束吗?Y关定时器T1,开外中断现场恢复,中断返回红灯显示N图3.2 主程序流程图 图3.3 外中断1中断服务程序流程图3.4定时器中断服务程序 定时中断服务程序主要用于行车及行人的通行指示,按照通行规则,红绿灯控制转换逻辑表如4.4.1所示。表3.3.1道口通行方式控制码数据表 南北方向端口控制功能120110s11070s7060s6010s100sP*.7左拐红00011P*.6左拐绿11100/1P*.5直行红11100P*.4直行绿000/111P*.3右拐红01111P*.2右拐绿10000/1P*.1行人红11100P*.0行人绿000/111道口控制字66H6AH6AH/7BH99H99H/DDH东南方向P*.7左拐红00000P*.6左拐绿11111P*.5直行红00000P*.4直行绿11111P*.3右拐红01111P*.2右拐绿10000/1P*.1行人绿00000P*.0行人红11111道口控制字55H59H59H59H59H/5DH 通行规则如下:u 车辆南北直行、各路右拐,南北向行人通行。南北向通行时间为1min,各路右拐比直行滞后10s开放。u 车辆南北向左拐、各路右拐,行人禁行。通行时间为1min。u 车辆东西向直行、各路右拐,东西向行人通行。东西向通行时间为1min,各路右拐比直行滞后10s开放。u 车辆东西向左拐、各路右拐,行人禁行。通信时间为1min。 交通灯的4种通行规则,是以给控制红绿灯端口送控制码的方式实现的。它的原理是,将按不同规则通行的个路口的红绿灯亮灭情况转换为单片机端口控制码。其指示灯功能通过T0定时中断服务程序实现。 定时器T0定时益出中断周期设为50ms,中断累计20次(即1s)时对120s倒计时单元减1操作。设计中将4种通行规则分成几种不同的亮灯方式,通过查询秒倒计时单元的数据,实现在不同的时间段给控制端口送不同的控制数据码。控制码分为5个时间段:120110s、11070s、7060s、6010s、100s。交通管理定时功能程序流程图如图3.3.2所示。T0中断程序现场保护关中断T0T0初值重装TIME<110?TIME<70?TIME<60?TIME<10?TIME<0?南北/东西标志位取反Y中断返回NNNNNMOVSN,#66HMOVEW,#55HMOVSN,#6AHMOVEW,#59HMOVSN,#6AHMOVEW,#59HMOVSN,#99HMOVEW,#59HMOVSN,#99HMOVEW,#59H 图3.3.2 T0定时中断服务程序流程图四、调试及性能分析4.1红绿交通灯控制程序不通过定时器T0,直接按照表4.4.1中算好的数据码送出来控制等,观察其逻辑状态是否符号要求。可多次、反复地进行调试,直至逻辑关系正确。值得注意的是,南北方向、东南方向的指示灯同时调试。4.2特殊车辆通行时红外线检测电路的调试在模拟小车中放一块红外线发射模块,将示波器输入端接在交控制灯的红外接收模块的输出引脚,当小车通过路口时,检测红外线是否被接收。若该脚输出为低电平,则说明可以接收到信号,电路正常。本系统以AT89C52单片机为核心,开发程序调试阶段采用W78E516B进行在线编程及修改,可大大加快调试速度。设计的交通灯可用于十字路口的车辆及行人的交通管理,显示采用3位7段数码管,可以很直观地显示红绿灯的开放和关闭的时间;设计中应用了两种倒计时显示方式,120s倒计时适用于车流量较大的大城市,60s倒计时可用于中小型城市;功能完整,不仅有普通交通灯的指示功能,还增加了特种车辆自动通行和盲人语音提示功能。其控制功能与真实道口管理红绿灯完全一致。五、实物调试情况5.1.预期目标: 15S后系统自动恢复正常管:南北正常,东西行人绿灯。 盲人提示音(120S-70S,70S-60S之间间隔响5次)。 计时牌显示路口通行转换剩余时间。 3位7段数码管可以显示红绿灯的开放和关闭的时间。5.2.问题手动控制特殊车辆通行其他车辆及行人禁行。复位后从120S开始倒计时,南北先,东西后。5.3.评语 经测试,硬件电路基本能实现预期目标的功能,测试通过。5.4.实物图设计结论总之,这次毕业设计让我学习到很多。虽然结束了,但这只能是一个开始。作为一个电子专业的人士,需要丰富的想象力与创造能力,在这高速发展的领域里,我们还有很大的空间,当然如果要在这条道路上走的更高更远,我们要做的、要学的还有很多很多。在电子领域,要学的实在太多,仅大学生涯所学实在有限。我们只有对自己有了更高的要求,才能作为动力不断取得新的成绩!致谢语在这个毕业设计论文即将完成之时我首先要感谢我的指导老师,在她细心的指导下我克服了很多不小的难题,期间也学会了很多课本上学不到的东西。自身的各方面素质都有很大的提高,特别是对本专业知识的理解又加深了许多,动手实践能力,操作能力都有显著提高,更加熟悉了从理论到实践的跨越。使我对将来就业工作增加了不少信心,也为将来工作打下了坚实的基础。通过本次毕业设计,使我感受到过程是艰辛同时又充满乐趣的,同时我也要在这里感谢我的那些同学,是他们给了我无私的帮助,给了我很大的动力,在这3年即将结束之时我很欣慰我的那些同学们能这么细心的给我帮助与指导,使我在实践操作中节省了很时间,感悟很多。参考文献【1】单片机课程设计指导北京航空航天大学出版社 楼然苗 李光飞编著【2】单片机中级教程原理与应用(第2版)张俊谟编著;北京航空航天大学出版社【3】康华光.电子技术基础(第四版).北京:高等教育出版社【4】Protel99SE 电路设计与制版 北京:人民邮电出版社【5】李朝青. 单片机原理及接口技术. 北京:北京航空航天大学出版社【6】谢自美.电子线路设计.实验.测试(第三版).武汉:华中科技大学出版社【7】张友德,赵志英.单片微型机原理、应用与实验.上海:复旦大学出版社.【8】常新华,林春勋等.高频信号发生器原理,维修与鉴定.北京:电子工业出版社【9】谢嘉奎,宣月清.电子线路非线性部分.北京:高等教育出版社【10】康华光 陈大钦.电子技术基础(模拟部分).北京:高等教育出版社【11】康华光 邹寿彬.电子技术基础(数字部分).北京:高等教育出版社.附录 控制源程序清单以下是城市道口交通灯控制系统模型控制用汇编程序:; 交通灯 ; TIME EQU 50H ;秒计数用 TIMESFR EQU 51H ;临时寄存器 CONR5 EQU 52H ;T11秒定时计数用 TIMED0 EQU 55H ;单向最大定时时间,直行开始,人行开始 120 TIMED1 EQU 56H ; 各路右转开始时间 110 TIMED2 EQU 57H ; 前行结束提醒 70 TIMED3 EQU 58H ; 前行结束,人行结束,左转开始 60 TIMED4 EQU 59H ; 左转结束提醒 TIMED5 EQU 5AH ; 左转结束 TIMED6 EQU 5BH ; TIMED7 EQU 5CH ; SN EQU P1 ; 南北口 EW EQU P2 ; 东西口 SCAN EQU P3 ;扫描口 LEDOUT EQU P0 ;段码口 SNEWFLAG BIT 09H ;东西口与南北口转换标志; 按键在扫描口的最高位,按一下,全红灯,再按一下,恢复原状态; 定时器T0、T1溢出周期为50MS,T0为秒计数用,; 中断入口程序 ; ORG 0000H ;程序执行开始地址 LJMP START ;跳到标号START执行 ORG 0003H ;外中断0中断程序入口 RETI ;外中断0中断返回 ORG 000BH ;定时器T0中断程序入口 LJMP INTT0 ;跳至INTTO执行 ORG 0013H ;外中断1中断程序入口 LJMP INT11 ;外中断1中断返回,119.120中断 ORG 001BH ;定时器T1中断程序入口 LJMP INTT1 ORG 0023H ;串行中断程序入口地址 RETI ;串行中断程序返回 ; 主 程 序 ; START: MOV SP,#80H MOV R0,#00H ;清70H-7AH共11个内存单元 MOV R7,#8FH ; CLEARDISP: MOV R0,#00H ; INC R0 ; DJNZ R7,CLEARDISP ; MOV TIMED0,#78H ;单向最大定时时间,直行开始,人行开始 120 MOV TIMED1,#6EH ; 各路右转开始时间 110 MOV TIMED2,#46H ; 前行结束提醒 70 MOV TIMED3,#3CH ; 前行结束,人行结束,左转开始 60 MOV TIMED4,#0AH ; 左转结束提醒 CLR SNEWFLAG ;南北先通行标志位 MOV TMOD,#11H ;设T0、T1为16位定时器 MOV TL0,#0B0H ;50MS定时初值(T0计时用) MOV TH0,#3CH ;50MS定时初值 MOV TL1,#0B0H ;50MS定时初值(T1闪烁定时用) MOV TH1,#3CH ;50MS定时初值; JB SCAN.7,SSST ;120秒管理;以下为60秒管理 LCALL DL1MS LCALL DL1MS LCALL DL1MS JB SCAN.7,SSST ;干扰 MOV TIMED0,#60 ;单向最大定时时间,直行开始,人行开始60 MOV TIMED1,#55 ; 各路右转开始时间 55 MOV TIMED2,#35 ; 前行结束提醒 35 MOV TIMED3,#30 ; 前行结束,人行结束,左转开始 30 MOV TIMED4,#05 ; 左转结束提醒 SSWAIT: JNB SCAN.7,SSWAIT LCALL DL1MS LCALL DL1MS LCALL DL1MS JNB SCAN.7,SSWAIT SSST: MOV TIME,TIMED0 ;120秒 LCALL TUNBCD MOV SN,#66H ; MOV EW,#55H ; SETB EA ;总中断开放 SETB PX1 SETB EX1 SETB ET0 ;允许T0中断 SETB TR0 ;开启T0定时器 MOV R4,#14H ;1秒定时用初值(50MS×20) MOV CONR5,#20 START1: LCALL DISPLAY ;调用显示子程序 JNB SCAN.7,KEYFUN ;手动状态 SJMP START1 ;P1.0口为1时跳回START1;KEYFUN: LCALL DISPLAY LCALL DISPLAY JB SCAN.7,START1 CLR ET0 CLR TR0 MOV SN,#056H ;全车道停,行人通 MOV EW,#056H ; MOV TIME,#00H ;时间显示0 LCALL TUNBCD KEYWAIT: LCALL DISPLAY ; JNB SCAN.7,KEYWAIT ; KEYY: LCALL DISPLAY ;等待按键按下 JB SCAN.7,KEYY LCALL DISPLAY JB SCAN.7,KEYY KEYWAIT1: LCALL DISPLAY ; JNB SCAN.7,KEYWAIT1 ; MOV TIME,TIMED0 ;从新开始计时初值 LCALL TUNBCD CLR SNEWFLAG ;南北先通行标志位 SETB TR0 SETB ET0 AJMP START1; 1秒计时程序 ;T0中断服务程序 INTT0: PUSH ACC ;累加器入栈保护 PUSH PSW ;状态字入栈保护 CLR ET0 ;关T0中断允许 CLR TR0 ;关闭定时器T0 MOV A,#0B7H ;中断响应时间同步修正 ADD A,TL0 ;低8位初值修正 MOV TL0,A ;重装初值(低8位修正值) MOV A,#3CH ;高8位初值修正 ADDC A,TH0 ; MOV TH0,A ;重装初值(高8位修正值) SETB TR0 ;开启定时器T0 DJNZ R4, OUTT00 ;20次中断未到中断退出 MOV R4,#14H ;20次中断到(1秒)重赋初值 JB SNEWFLAG, INT22 DEC TIME MOV A,TIME CJNE A,TIMED1,LOOP11 ; 判断是否小于110秒 LOOP11: JC LOOP22 ; 120-110 MOV SN,#66H ; I MOV EW,#55H ; I LJMP OUTT0 ; 120-110 LOOP22: MOV A,TIME CJNE A,TIMED2,LOOP33 ; 判断是否小于70秒 LOOP33: JC LOOP44 ; 110-70 MOV SN,#6AH ; I MOV EW,#59H ; I LJMP OUTT0 ; 110-70 LOOP44: MOV A,TIME CJNE A,TIMED3,LOOP55 ; 判断是否小于60秒 LOOP55: JC LOOP66 ; 70-60 MOV 20H,SN ; CPL 04H ; CPL 00H MOV SN,20H ; I MOV EW,#59H ; I LJMP OUTT0 ; 70-60 LOOP66: MOV A,TIME CJNE A,TIMED4,LOOP77 ; 判断是否小于10秒 LOOP77: JC LOOP88 ; 60-10 MOV SN,#99H ; I MOV EW,#59H ; I LJMP OUTT0 ; 60-10 LOOP88: MOV A,TIME JZ OUT88 MOV 20H,SN ; CPL 06H ; CPL 02H MOV SN,20H ; MOV 20H,EW CPL 02H MOV EW,20H ; I LJMP OUTT0 ; 70-60 OUT88: MOV TIME,TIMED0 ;120秒初值 CPL SNEWFLAG OUTT0: LCALL TUNBCD ; OUTT00: POP PSW ;恢复状态字(出栈) POP ACC ;恢复累加器 SETB ET0 ;开放T0中断 RETI ;中断返回 INT22: DEC TIME MOV A,TIME CJNE A,TIMED1,LOOP111 ; 判断是否小于110秒 LOOP111: JC LOOP221 ; 120-110 MOV EW,#66H ; I MOV SN,#55H ; I LJMP OUTT01 ; 120-110 LOOP221: MOV A,TIME CJNE A,TIMED2,LOOP331 ; 判断是否小于70秒 LOOP331: JC LOOP441 ; 110-70 MOV EW,#6AH ; I MOV SN,#59H ; I LJMP OUTT01 ; 110-70 LOOP441: MOV A,TIME CJNE A,TIMED3,LOOP551 ; 判断是否小于60秒 LOOP551: JC LOOP661 ; 70-60