1、摘 要1 引言世界上最先使用交通信号灯的是英国伦敦。1868年12月10日,在伦敦布里奇大街和警察厅拐角处一根7米高的钢柱上,装上了一套交通信号灯,这套装置是由铁路信号工程师奈特发明的。它有红绿两种颜色,红色示意“停止”,绿色示意“当心”。由于这种信号灯燃烧煤气,因而很不安全,在它安装使用后的第23天就发生了爆炸,负责转灯的警察也因此丧生。 1879年爱迪生发明了白炽灯,从此,电气照明迅速进入到各个领域。第一个电动红绿交通信号灯于1914年8月5日在美国的俄亥俄州投入使用。灯柱上还安装了一个电铃,当红绿灯转换颜色时会自动鸣响。 现代的红、黄、绿三色交通信号灯于1918年出现在美国纽约,它安装在
2、交通岗亭上,用人工控制。20世纪20年代后,自动变换颜色的交通信号灯开始在全世界的大小市镇安家落户。 现在,世界各国一般都采用红、黄、绿三种颜色作为交通信号。信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。9目 录第1章 交通管理的方案论证1第2章 课程设计的题目及要求12.1设计目的12.2设计任务及要求1第3章 控制系统的硬件设计13.1系统设计总框图13.2系统引脚图1第4章 控制系统变的软件设计24.1程序流程图34.2程序清单3第5章 调试及性能分析8第6章 课程设计心得9参考文献91交通管理的方案论证东西、南北两干道交于一个十字路口,各
3、干道有一组红、黄、绿三色的指示灯,指挥车辆和行人安全通行。红灯亮禁止通行,绿灯亮允许通行。黄灯亮提示人们注意红、绿灯的状态即将切换,且黄灯燃亮时间为东西、南北两干道的公共停车时间。设东西道比南北道的车流量大,指示灯燃亮的方案2. 课程设计的题目及要求(1)设计目的1.熟悉单片机控制系统,并了解系统设计的一般规律。2.掌握8255芯片的结构及编程方法。3.熟悉模拟交通灯控制的实现方法。(2)设计任务及要求设计一个交通灯控制系统,该控制系统工作后,交通灯按照下列规律变化:初始态东南西北均为红灯,持续时间为2s;然后转为状态1(10s),为东西红、南北绿;状态2(3s)东西红灯不变、南北绿灯灭、黄灯
4、闪烁三次;状态3(15s),为东西绿、南北红;状态4(3s),为东西绿灯灭、黄灯闪烁三次、南北红灯不变;最后回到状态1,依此循环。如遇到特殊情况,可拨动应急开关,使各向均为红灯,特殊车辆不受红灯限制,待其顺利通过后将开关拨回原位,系统恢复原状态运行。3.硬件设计(1)系统设计总框图图1 系统硬件框图(2)系统引脚图图2 系统引脚图图4.软件设计(1)程序流程图根据设计要求,程序框图如图3所示。软件可由汇编语言完成。软件设计可以分为以下几个功能模块:1.主程序:初始化及键盘监控。2.计时程序模块:为定时器的中断服务子程序,完成时间定时。3.如遇到特殊情况,可拨动应急开关,使各向均为红灯,特殊车辆
5、不受红灯限制,待其顺利通过后将开关拨回原位,系统恢复原状态运行。图3 程序流程图(2)程序清单ORG 0000H ;主程序的入口地址 LJMP MAIN ;跳转到主程序的开始处 ORG 0003H ;外部中断0的中断程序入口地址 ORG 000BH ;定时器0的中断程序入口地址 LJMP T0_INT ;跳转到中断服务程序处 ORG 0013H ;外部中断1的中断程序入口地址 MAIN : MOV SP,#50H MOV IE,#8EH ;CPU开中断,允许T0中断,T1中断和外部中断1中断 MOV TMOD,#51H ;设置T1为计数方式,T0为定时方式,且都工作于模式1 MOV TH1,#
6、00H ;T1计数器清零 MOV TL1,#00H SETB TR1 ;启动T1计时器 SETB EX1 ;允许INT1中断 SETB IT1 ;选择边沿触发方式 MOV DPTR ,#0003H MOV A, #80H ;给8255赋初值,8255工作于方式0 MOVX DPTR, AAGAIN: JB P3.1,N0 ;判断是否要设定东西方向红绿灯时间的初值,若P3.1为1 则跳转 MOV A,P1 JB P1.7,RED ;判断P1.7是否为1,若为1则设定红灯时间,否则设定绿灯时间 MOV R0,#00H ;R0清零 MOV R0,A ;存入东西方向绿灯初始时间 MOV R3,A LC
7、ALL DISP1 LCALL DELAY AJMP AGAINRED: MOV A,P1 ANL A,#7FH ;P1.7置0 MOV R7,#00H ;R7清零 MOV R7,A ;存入东西方向红灯初始时间 MOV R3,A LCALL DISP1 LCALL DELAY AJMP AGAIN;-N0: SETB TR0 ;启动T0计时器 MOV 76H,R7 ;红灯时间存入76HN00: MOV A,76H ;东西方向禁止,南北方向通行 MOV R3,A MOV DPTR,#0000H ;置8255A口,东西方向红灯亮,南北方向绿灯亮 MOV A,#0DDH MOVX DPTR, AN0
8、1: JB P2.0,B0N02: SETB P3.0 CJNE R3,#00H,N01 ;比较R3中的值是否为0,不为0转到当前指令处执行;-黄灯闪烁5秒程序-N1: SETB P3.0 MOV R3,#05H MOV DPTR,#0000H ;置8255A口,东西,南北方向黄灯亮 MOV A,#0D4H MOVX DPTR,AN11: MOV R4,#00HN12: CJNE R4,#7DH,$ ;黄灯持续亮0.5秒N13: MOV DPTR,#0000H ; 置8255A口,南北方向黄灯灭 MOV A,#0DDH MOVX DPTR,AN14: MOV R4,#00H CJNE R4,#
9、7DH,$ ;黄灯持续灭0.5秒 CJNE R3,#00H,N1 ;闪烁时间达5秒则退出;-N2: MOV R7,#00H MOV A,R0 ;东西通行,南北禁止 MOV R3,A MOV DPTR,#0000H ; 置8255A口,东西方向绿灯亮,南北方向红灯亮 MOV A,#0EBH MOVX DPTR,AN21: JB P2.0,T03 N22: CJNE R3,#00H,N21;-黄灯闪烁5秒程序-N3: MOV R3,#05H MOV DPTR,#0000H ;置8255A口,东西,南北方向黄灯亮 MOV A,#0E2H MOVX DPTR,AN31: MOV R4,#00H CJN
10、E R4,#7DH,$ ;黄灯持续亮0.5秒N32: MOV DPTR,#0000H ; 置8255A口,南北方向黄灯灭 MOV A,#0EBH MOVX DPTR,AN33: MOV R4,#00H CJNE R4,#7DH,$ ;黄灯持续灭0.5秒 CJNE R3,#00H,N3 ;闪烁时间达5秒则退出 SJMP N00;-闯红灯报警程序-B0: MOV R2,#03H ;报警持续时间3秒B01: MOV A,R3 JZ N1 ;若倒计时完毕,不再报警 CLR P3.0 ;报警 CJNE R2,#00H,B01 ;判断3秒是否结束 SJMP N02;-1秒延时子程序-N7: RETIT0_
11、INT:MOV TL0,#9AH ;给定时器T0送定时10ms的初值 MOV TH0,#0F1H INC R4 INC R5 CJNE R5,#0FAH,T01 ;判断延时是否够一秒,不够则调用显示子程序 MOV R5,#00H ;R5清零 DEC R3 ;倒计时初值减一 DEC R2 ;报警初值减一T01: ACALL DISP ;调用显示子程序 RETI ;中断返回;-显示子程序-DISP: JNB P2.4,T02DISP1: MOV B,#0AH MOV A,R3 ;R3中值二转十显示转换 DIV AB MOV 79H,A MOV 7AH,BDIS: MOV A,79H ;显示十位 M
12、OV DPTR,#TAB MOVC A,A+DPTR MOV DPTR,#0002H MOVX DPTR,A MOV DPTR,#0001H MOV A,#0F7H MOVX DPTR,A LCALL DELAYDS2: MOV A,7AH ;显示个位 MOV DPTR,#TAB MOVC A,A+DPTR MOV DPTR,#0002H MOVX DPTR,A MOV DPTR,#0001H MOV A,#0FBH MOVX DPTR,A RET;-东西方向车流量检测程序-T03: MOV A,R3 SUBB A,#00H ;若绿灯倒计时完毕,不再检测车流量 JZ N3 JB P2.0,T0
13、3 INC R7 CJNE R7,#64H,E1 MOV R7,#00H ;中断到100次则清零E1: SJMP N22;-东西方向车流量显示程序-T02: MOV B,#0AHMOV A,R7 ;R7中值二转十显示转换 DIV AB MOV 79H,A MOV 7AH,BDIS3: MOV A,79H ;显示十位 MOV DPTR,#TAB MOVC A,A+DPTR MOV DPTR,#0002H MOVX DPTR,A MOV DPTR,#0001H MOV A,#0F7H MOVX DPTR,A LCALL DELAYDS4: MOV A,7AH ;显示个位 MOV DPTR,#TAB
14、 MOVC A,A+DPTR MOV DPTR,#0002H MOVX DPTR,A MOV DPTR,#0001H MOV A,#0FBH MOVX DPTR,A LJMP N7;-延时4MS子程序-DELAY: MOV R1,#0AHLOOP: MOV R6,#64H NOPLOOP1: DJNZ R6,LOOP1 DJNZ R1,LOOP RET ;-字符表-TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH END5.调试及性能分析(1)软件调试 软件调试主要是利用proteus仿真软件完成电路的搭建,运行以发现设计中的错误及时改正。(2)硬
15、件调试硬件调试主要是检测硬件电路是否有短路、断路、虚焊等。具体步骤及测试结果如下:(1)检查电源与地线是否全部连接上,用万用表对照电路原理图测试各导线是否完全连接,对未连接的进行修复。(2)参照原理图,检查各个器件之间的连接是否连接正确,是否存在虚焊,经测试,各连接不存在问题。(3)以上两项检查并修复完后,给该硬件电路上电,电源指示灯点亮。6.课程设计心得这次单片机课程设计历时一个学期的时间,在这次设计过程里我们体验了从设计、画板、编程、焊板到调试的整个过程。 对于交通灯这个题目,由于以前学单片机这个课程时,做过类似相关的实验,觉得这个比较简单而且做出的东西也比较直观,在确定题目之后,查阅了大量的资料,初步完成了电路设计方案。通过这次课设,对以前学过的知识进行了巩固,加深了理解,提高了应用的能力,而且提高了我们的发现、分析、解决问题的能力。经历了从最初的设计到最后做出产品的开发过程,提高了对专业的认识及兴趣,对于我们工科来说,对以后就业有及其重大的影响。由于本设计设计到的知识面比较广,就爱上本人在相关领域知识的缺乏,所以本设计的性能指标还是有待改善的,然而,模拟仿真证明了本设计的基本设计思想和设计方法以及基本功能是现实可行的。参考文献1刘守义等.单片机技术基础M.西安电子科技大学出版社,2007.2李平等.单片机入门与开发M.机械工业出版社,2008