《单片机课程设计——交通灯控制系统设计.doc》由会员分享,可在线阅读,更多相关《单片机课程设计——交通灯控制系统设计.doc(24页珍藏版)》请在三一办公上搜索。
1、单片机课程设计报告交通灯控制系统设计摘 要本设计是针对交通灯系统的设计,由单片机AT89C51(实物用AT89S52)、键盘、LED显示、交通灯演示系统组成。单片机是把微型计算机的各功能部件集成在一块芯片中,构成的一个完整的微型计算机。AT89C51单片机是MC-51中的子系列,是一组高性能兼容型单片机,AT89C51是一个低功耗高性能的CMOS 8位单片机,40个引脚,片内含4KB Flash ROM和128B RAM,它是一个全双工的串行通行口,既可以用常规编程,又可以在线编程。本设计中的数码管的选通采用的方法是动态显示,对每一位数码分时轮流通电显示,复位电路采用上电+按钮电平复位,时钟电
2、路采用内部时钟产生方式。对特殊情况的处理采用中断处理方式,在中断处理程序中采用对管脚的状态查询扫描,已采取相应情况的处理。对设计方案进行电路硬件设计,并将已编程的程序载入调试,可以得到理想的实验效果。 系统包括人行道、左转、右转、以及基本的交通灯的功能.具体功能是假如 A 道和B道上均有车辆要求通过时,A、B道轮流放行。A道放行 25秒,B道放行20秒。 一道有车而另一道无车,交通灯控制系统能立即让有车道放行。有紧急车辆要求通过时,系统要能禁止普通车辆通行,A、B道均为红灯,紧急车由K2 开关模拟。绿灯转换为红灯时黄灯亮 1秒钟。系统除基本交通灯功能外,还具有倒计时、时间设置、紧急情况处理、分
3、时段调整信号灯的点亮时间以及根据具体情况手动控制等功能。目 录1引言- 1 -1.1交通灯的重要作用- 1 -1.2该交通灯系统的特点- 1 -2系统总体方案及硬件设计- 2 -2.1原理框图- 2 -2.2设计功能- 2 -2.3交通灯控制系统各部分硬件组成- 2 -2.3.1复位部分- 2 -2.3.2时钟电路部分- 3 -2.3.3路口指示灯部分- 3 -2.3.4显示部分- 3 -2.4元器件清单- 4 -3 软件设计- 5 -3.1交通灯控制系统软件流程图及程序分析- 5 -3.1.1主程序流程图及程序模设计- 5 -3.1.2INT0中断服务程序流程图及程序模设计- 6 -3.2路
4、口指示灯部分- 7 -3.3显示部分- 7 -4. Proteus软件仿真- 8 -5 课程设计体会- 9 -参考文献- 10 -附1:源程序代码 -13 -附2:系统原理图201 概述本设计是根据单片使机原理就交通灯的系统作出的,由于车辆的增多,所以交通灯在现代道路交通中起着越来越重要的作用。为了解决这些问题,我们更应该提高交通控制和管理水平,合理使用现有交通设施,充分发挥其能力,提高交通效率,促进和谐交通的建立。1.1 交通灯的重要作用交通灯在城市交通中起着重要的作用,它与人们日常生活密切相关,是人们出行的安全保障。如今随着人们生活水平的提高,对交通管制也提出了更高的要求,因此提供一个可靠
5、、安全、便捷的多功能交通灯控制系统有着现实的必要性。该设计在熟练掌握单片机原理及其应用技术的使用方法基础上,综合应用单片机原理、微机原理、微机接口技术、proteus软件等课程方面的知识,设计一个采用AT89C51单片机控制的交通灯控制电路。能方便的对交通灯进行控制,使交通更和谐。1.2 该交通灯系统的特点本系统结构简单,操作方便;可实现自动控制,具有一定的智能性;对优化城市交通具有一定的意义。本设计将各任务进行细分包装,使各任务保持相对独立;能有效改善程序结构,便于模块化处理,使程序的可读性、可维护性和可移植性都得到进一步的提高。系统总体方案及硬件设计2.1 原理框图调时、紧急情况处理单 片
6、机AT89C51数据信号LED数码管段码复位电路电路振荡电路片选交通灯图(1)系统原理框图根据设计功能及要求,我们可得系统的原理框图如图(1)所示。2.2 设计功能1.完成交通灯的基本功能,结合实际情况,控制红、黄、绿交通灯的亮和灭.其工作流程是:绿、黄、红分时间段开通,循环往复,计时电路以秒为单位作倒计时,计数为0时进行切换,计时时间可由LED数码管显示(需符合交通规则);2.红、黄、绿交通灯的亮和灭的时间可调节;3.若有交通异常情况,可以通过按键处理目前的紧急状态;4.采用LED数码管显示红或绿交通信号灯亮的剩余时间;5.通过按键设定红和绿交通信号灯亮一次的总时间;6.控制东西方向和南北方
7、向的红、黄、绿交通灯的亮和灭;7.夜间控制功能,按键进入夜间模式,黄灯闪亮;8.控制系统的原理图和接线图采用PROTEL,PROTEUS等专用绘图软件绘制。2.3 交通灯控制系统各部分硬件组成2.3.1 复位部分复位电路采用上电+按钮电平复位是上电复位与按钮复位的组合,当振荡频率是6MHz时,电容C取22uf, R取1K,Rs取200左右。上电瞬间复位端(RST/Vpd)的电位与Vcc相同,随着充电电路电流的减少,RST/Vpd的电位下降,最后为0V,当按钮按下后,电源Vcc通过电阻R,施加在单片机复位端RST/Vpd上实现复位,电路连接图如图(2): 复位电路(2)2.3.2 时钟电路部分本
8、系统采用内部时钟产生方式:在和两端跨接陶瓷谐振器,与内部反相器构成稳定的自激振荡器采。晶振采用12MHz的振荡频率和两个30Pf瓷片电容C1、C2,两个电阻对频率有微调作用。其电路如图(3) 时钟电路(3)2.3.3 路口指示灯部分采用红黄绿三种颜色的发光二极管共12个分为4组代表路口的交通灯(电路图中用两组示意).其中每两组控制一个路口,具体时序如表1:表1:方向灯色东西南北红灯54黄灯11绿灯342.3.4 显示部分图(4)显示部分采用四位一体共阴数码管,分别显示南北和东西灯的剩余时间.片选部分和数码段显示部分,分别接单片机管脚的P2口和P0口,具体的共阴数码管管脚分布位置见图(4). 2
9、.4 元器件清单如表2:器件名称型号大小数量单片机AT89S521晶振12MHz1LED数码管四联共阴1电解电容22uF1瓷片电容30pF2排阻4701电阻4701发光二极管红4黄4绿4开关按键式43 软件设计开始初始化AT89C52东西方向红灯亮,南北方向绿灯亮,延时南北方向剩余时间1S?东西方向红灯亮,南北方向黄灯闪亮,延时南北方向剩余时间0S?东西方向绿灯亮,南北方向红灯亮,延时东西方向剩余时间1S?东西方向黄灯闪亮,南北方向红灯亮,延时东西方向剩余时间0S?图(5)主程序流程图3.1 交通灯控制系统软件流程图及程序分析3.1.1 主程序流程图及程序模设计该交通信号灯控制系统的四中工作状
10、态如图(5)所示(南北方向的交通灯为例):(1)东西方向车道红灯亮,南北方向车道绿灯亮。表示东西方向车道上的车辆禁止通行,南北方向车道允许通行。绿灯亮足规定的时间隔时,控制器发出状态信号,转到下一工作状态。(2)东西方向车道红灯亮,南北方向车道黄灯闪亮。表示南北方向车道上未过停车线的车辆停止通行,已过停车线的车辆继续通行,东西方向车道禁止通行。黄灯闪亮足规定时间间隔时,控制器发出状态转换信号,转到下一工作状态。 (3)东西方向车道绿灯亮,南北方向车道红灯亮。表示东西方向车道允许通行,南北方向车道上的车辆禁止通行,绿灯亮足规定的时间间隔时,控制器发出状态转换信号,转到下一工作状态。 (4)东西方
11、向车道黄灯闪亮,南北方向车道红灯亮。表示南北方向车道禁止通行,东西方向车道上位过限停车线的车辆停止通行,已过停车线的车辆继续通行。黄灯闪亮足规定的时间间隔时,控制器发出状态转换信号,系统又转换到第(1)种工作状态。3.1.2 INT0中断服务程序流程图及程序模设计开始初始化T0P3.2=0?P2.4=0?东西南北方向灯全红P2.5=0?P2.6=0?中断返回东西方向加1S南北方向减1S图(6)中断服务流程图INT0与K2连接,另一端与地连接。按下K2,东西南北四个方向全红,也就是说,东西南北四个通道都不能通车,这是紧急情况,但救护车等特殊车辆可以通过。K0与AT89C52的25管脚相连。K1与
12、P2.5相接,K3与P2.6相接,K2与P3.2相接。在按下K2的前提下,按按下K0,如果3秒中之内没有按键,则交通灯恢复正常。50ms中断计算方法(适用于12MHz晶振): T0的计数初值:X0=M-计数值2 =M-Tc/TP =M-(Tcfosc)/12 =65536-(50ms1SMHz/12) =15536 15535 =3CB0H其中4E.0H单元存放3s钟控制标志位,4F.0H单元存放1s控制标志位;4D.0单元存放0.5秒控制标志位60H和61H单元分别存放产生1s和3s的中断次数,当它们单元中的值为零时,分别表示1s和3s到,对4E.0H单元和4F.0H单元进行置1,62H单元
13、用于产生0.5秒由于采用工作模式1,所以每次中断后,一定在中断程序中重装记数初值.3.2 路口指示灯部分用P1端口作为输出端口,用P1.0到P1.5端口分别控制东西和南北两组灯的状态低电平点亮,具体端口功能如下:P1.0控制东西红灯的亮灭P1.1控制东西绿灯的亮灭P1.2控制东西黄灯的亮灭P1.3控制南北红灯的亮灭P1.4控制南北绿灯的亮灭P1.5控制南北黄灯的亮灭具体的程序我们以点亮东西红灯东南北绿灯为例: MOV P1, #0EEH其余部分根据硬件不同而修改#0EEH的值.3.3 显示部分四位一体共阴数码管的片选部分由P2.0到P2.3提供,码段部分由P0.0到P0.6控制.其中P2.0控
14、制东西剩余时间的十位数的显示,P2.1控制东西剩余时间的个位数的显示,P2.2控制南北剩余时间的十位数的显示,P2.3控制南北剩余时间的个位数的显示.低电平选中.P0.0到P0.7控制分别控制点亮数码段的A段到H段,通过查共阴极数码段码表,将它们的数值送到P0口,与P2.0到P2.3口结合,可以显示不同方向不同位数的各个数值.例如,显示东西剩余时间的十位程序如下:MOV P2,#0FEH 选择十位程序MOV P0,A向P0口送段码的程序4. Proteus软件仿真 根据设计需要和上述框图,我们可得到交通灯控制系统各过程仿真图如下图所示 图(7)紧急情况时图(8)东西方向变黄灯,南北方向禁行图(
15、9) 南北方向通车,东西方向禁行图(10)南北方向禁行,东西方向通车5 课程设计体会该交通灯系统是以单片机89C52芯片为核心部件,实现了能根据实际车流量通过89C51芯片设置及控制红、绿灯燃亮时间来进行交通控制。本次课程设计使我对单片机的工作原理有了更深刻的认识,例如对复位电路、晶振电路的理解。我深刻的理解到单片机的价值在于灵活运用它的IO端口以及其千变万化的程序。本设计中我们用IO端口驱动数码管以及引接外部开关。掌握了许多在以前学习中混淆不清的知识点。仿真实验,不仅锻炼了自己的动手能力,而且真正作到了理论联系实际的重要性,体会到了其中失败与成功的滋味,收益匪浅。同时在焊接单片机电路板时使我
16、在制作上更加的熟练,经过不断的试验二极管终于我的灯亮了,当我看到我亲手制作的板子亮时,我的心中非常激动。同时,我也认识到自己的知识不足,例如,有时不能正确认识、合理使用中断程序,这将是我以后努力提高的方面。参考文献 1.单片机原理与应用技术 余发山主编 中国矿大出版社 20072.微型计算机控制技术 赖寿宏主编 机械工业出版社 20023.单片机原理及应用 丁元杰主编 机械工业出版社 20014.单片机中级教程 张迎春主编 北京航空航天出版社 20045.基于单片机的交通信号控制系统欧伟民 湖南大学学报(自然科学版) 2002,(S2附1:源程序代码ORG 0000H LJMP START O
17、RG 0003H LJMP INT0 ORG 000BH LJMP T0 ORG 001BH LJMP T1 ORG 0100H START: MOV SP, #30H MOV 40H, #30 ;东西红灯时间 MOV 41H, #20 ;东西绿灯时间 MOV 42H, #25 ;南北红灯时间 MOV 43H, #25 ;南北绿灯时间 MOV TMOD, #11H ;定时器初始化 MOV TH0, #3CH MOV TL0, #0B0H MOV TH1, #3CH MOV TL1, #0B0H MOV 60H, #20 MOV 61H, #60 MOV 62H, #10 MOV 63H,#2
18、CLR 4EH CLR 4FH CLR 4DH SETB EA SETB EX0 SETB ET0 SETB ET1 SETB PT1 SETB TR0DISPLAY1:MOV P1, #0EEH ;显示东西红灯与南北绿灯时间 MOV R3, 40H MOV R4, 43H LOOP1: MOV A, R3 MOV B, #0AH DIV AB MOV DPTR,#TAB MOVC A,A+DPTR MOV P2,#0FEH MOV P0,A LCALL DELAY;东西道显示时间的十位 MOV A, B MOVC A,A+DPTR MOV P2,#0FDH MOV P0,A LCALL DE
19、LAY;东西道显示时间的个位 MOV A, R4 MOV B, #0AH DIV AB MOV DPTR,#TAB MOVC A,A+DPTR MOV P2,#0FBH MOV P0,A LCALL DELAY;南北显示时间的十位 MOV A, B MOVC A,A+DPTR MOV P2,#0F7H MOV P0,A LCALL DELAY;南北显示时间的个位 JNB 4FH,LOOP1 CLR 4FH DEC R3 DEC R4 CJNE R4,#0FFH,LOOP1 kkk1: MOV P1, #0DEH;南北绿灯灭黄灯亮 LOOP2: MOV A, R3 MOV B, #0AH DIV
20、 AB MOV DPTR,#TAB MOVC A,A+DPTR MOV P2,#0FEH MOV P0,A LCALL DELAY MOV P2, #0FBH MOV P0, A LCALL DELAY MOV A, B MOVC A,A+DPTR MOV P2,#0FDH MOV P0,A LCALL DELAY MOV P2, #0F7H MOV P0, A LCALL DELAY JNB 4DH,LOOP2 CLR 4DH DJNZ 63H,Kkk2 MOV 63H,#2 DEC R3 CJNE R3,#0FFH,Kkk2 LJMP A1 Kkk2:MOV P1,#0FEH;南北绿灯灭黄
21、灯也灭。kkk1 、Kkk2控制黄灯闪亮 A2:MOV A, R3 MOV B, #0AH DIV AB MOV DPTR,#TAB MOVC A,A+DPTR MOV P2,#0FEH MOV P0,A LCALL DELAY MOV P2, #0FBH MOV P0, A LCALL DELAY MOV A, B MOVC A,A+DPTR MOV P2,#0FDH MOV P0,A LCALL DELAY MOV P2, #0F7H MOV P0, A LCALL DELAY JNB 4DH,A2 CLR 4DH DJNZ 63H,kkk1 MOV 63H,#2 DEC R3 CJNE
22、R3,#0FFH,Kkk1A1:MOV P1, #0F5H ;东西红灯时间到,南北绿灯亮,南北红灯亮DISPLAY2:MOV R3, 41H ;显示东西绿灯,南北红灯时间 MOV R4, 42H LOOP3: MOV A, R3 MOV B, #0AH DIV AB MOV DPTR,#TAB MOVC A,A+DPTR MOV P2,#0FEH MOV P0,A LCALL DELAY MOV A, B MOVC A,A+DPTR MOV P2,#0FDH MOV P0,A LCALL DELAY MOV A, R4 MOV B, #0AH DIV AB MOV DPTR,#TAB MOVC
23、 A,A+DPTR MOV P2,#0FBH MOV P0,A LCALL DELAY MOV A, B MOVC A,A+DPTR MOV P2,#0F7H MOV P0,A LCALL DELAY JNB 4FH,LOOP3 CLR 4FH DEC R3 DEC R4 CJNE R3,#0FFH,LOOP3 KKK5:MOV P1, #0F3H LOOP4: MOV A, R4 ;显示南北红灯,东西黄灯时间 MOV B, #0AH DIV AB MOV DPTR,#TAB MOVC A,A+DPTR MOV P2,#0FEH MOV P0,A LCALL DELAY MOV P2, #0F
24、BH MOV P0, A LCALL DELAY MOV A, B MOVC A,A+DPTR MOV P2,#0FDH MOV P0,A LCALL DELAY MOV P2, #0F7H MOV P0, A LCALL DELAY JNB 4DH,LOOP4 CLR 4DHDJNZ 63H,KKK5 MOV 63H,#2 DEC R4 CJNE R4,#0FFH,A7 LJMP DISPLAY1 A7:MOV P1, #0F7H;显示南北红灯,东西黄灯灭,KKK5 、A7控制黄灯闪亮 A8: MOV A, R4 MOV B, #0AH DIV AB MOV DPTR,#TAB MOVC A
25、,A+DPTR MOV P2,#0FEH MOV P0,A LCALL DELAY MOV P2, #0FBH MOV P0, A LCALL DELAY MOV A, B MOVC A,A+DPTRMOV P2,#0FDH MOV P0,A LCALL DELAY MOV P2, #0F7H MOV P0, A LCALL DELAY JNB 4DH,A8 CLR 4DH DJNZ 63H,KKK5 MOV 63H,#2 DEC R4 CJNE R4,#0FFH,KKK5 LJMP DISPLAY1 ;定时器中断; T0: PUSH ACC PUSH B PUSH PSW MOV TH0,#
26、3CH MOV TL0,#0B0H DJNZ 62H,OVER100 MOV 62H,#10 SETB 4DH OVER100:DJNZ 60H,OVER MOV 60H,#20 SETB 4FHOVER: POP PSW POP B POP ACC RETI T1: PUSH ACC PUSH B PUSH PSW MOV TH1,#3CH MOV TL1,#0B0H DJNZ 61H,OVER1 MOV 61H,#60 SETB 4EHOVER1: POP PSW POP B POP ACC RETI ;INTO中断修改; INT0:PUSH ACC PUSH B PUSH PSW MOV
27、 A,P1 PUSH ACC MOV P1,#0F6H;东西南北道红灯皆亮 CLR EX0 CLR TR0 LCALL DELAY ;按键消抖 JB P3.2, OK LJMP DISPLAY3 OK:LJMP OVER2DISPLAY3:MOV R5, 40H;东西红灯南北绿灯最大时间值的数码管显示 MOV R6, 43H MOV A, R5 MOV B, #0AH DIV AB MOV DPTR,#TAB MOVC A,A+DPTR MOV P2,#0FEH MOV P0,A LCALL DELAY MOV A, B MOVC A,A+DPTR MOV P2,#0FDH MOV P0,A
28、LCALL DELAY MOV A, R6 MOV B, #0AH DIV AB MOV DPTR,#TAB MOVC A,A+DPTR MOV P2,#0FBH MOV P0,A LCALL DELAY MOV A, B MOVC A,A+DPTR MOV P2,#0F7H MOV P0,A LCALL DELAY MOV A,P2 ANL A,#70H;在没按下K0的情况下,根据K1、K3按下的情况对各道的红绿灯亮的时间进行调节 CJNE A,#70H,DES3 LJMP DISPLAY3 DES3:LCALL DELAY CJNE A,#70H,DES4 DES4:JNB ACC.4,D
29、ES7 JNB ACC.5,ADD1 JNB ACC.6,DEC1 DES7:JNB P2.4,DES7 LJMP DISPLAY5 ADD1:JNB P2.5,ADD1 INC 40H INC 43H LJMP DISPLAY3 DEC1:JNB P2.6,DEC1 DEC 40H DEC 43H LJMP DISPLAY3DISPLAY5:SETB TR1DISPLAY4:MOV R5, 41H;东西绿灯南北红灯最大时间值的数码管显示 MOV R6, 42H MOV A, R5 MOV B, #0AH DIV AB MOV DPTR,#TAB MOVC A,A+DPTR MOV P2,#0
30、FEH MOV P0,A LCALL DELAY MOV A, B MOVC A,A+DPTR MOV P2,#0FDH MOV P0,A LCALL DELAY MOV A, R6 MOV B, #0AH DIV AB MOV DPTR,#TAB MOVC A,A+DPTR MOV P2,#0FBH MOV P0,A LCALL DELAY MOV A, B MOVC A,A+DPTR MOV P2,#0F7H MOV P0,A LCALL DELAY MOV A,P2 ANL A,#70H CJNE A,#70H,DES5 JNB 4EH,DISPLAY4 LJMP OVER2 DES5:
31、 LCALL DELAY CJNE A,#70H,DES6 DES6: JNB ACC.4,DIS3; 根据K1、K3按下的情况对各道的红绿灯亮的时间进行调节 JNB ACC.5,ADD2 JNB ACC.6,DEC2 LJMP DISPLAY4 DIS3:JNB P2.4,DIS3 CLR TR1 MOV TH1,#3CH MOV TL1,#0B0H MOV 61H,#60 LJMP DISPLAY3 ADD2:JNB P2.5,ADD2 MOV TH1,#3CH MOV TL1,#0B0H MOV 61H,#60 INC 41H INC 42H LJMP DISPLAY4 DEC2:JNB
32、 P2.6,DEC2 MOV TH1,#3CH MOV TL1,#0B0H MOV 61H,#60 DEC 41H DEC 42H LJMP DISPLAY4 OVER2:CLR 4EH CLR TR1 MOV TH1,#3CH MOV TL1,#0B0H SETB EX0 SETB TR0 POP ACC MOV P1,A POP PSW POP B POP ACC RETI TAB:DB 3FH 06H 5BH 4FH 66H 6DH 7DH 07H 7FH 6FH DELAY: MOV R1,#40;产生4毫秒延时子程序 D1: MOV R7,#50 DJNZ R7,$ DJNZ R1,D1 RET END附2:系统原理图