单片机课程设计交通灯控制系统设计.docx
- 文档编号:25193408
- 上传时间:2023-06-06
- 格式:DOCX
- 页数:30
- 大小:228.90KB
单片机课程设计交通灯控制系统设计.docx
《单片机课程设计交通灯控制系统设计.docx》由会员分享,可在线阅读,更多相关《单片机课程设计交通灯控制系统设计.docx(30页珍藏版)》请在冰豆网上搜索。
单片机课程设计交通灯控制系统设计
单片机课程设计报告
交通灯控制系统设计
摘要
本设计是针对交通灯系统的设计,由单片机AT89C51(实物用AT89S52)、键盘、LED显示、交通灯演示系统组成。
单片机是把微型计算机的各功能部件集成在一块芯片中,构成的一个完整的微型计算机。
AT89C51单片机是MC-51中的子系列,是一组高性能兼容型单片机,AT89C51是一个低功耗高性能的CMOS8位单片机,40个引脚,片内含4KBFlashROM和128BRAM,它是一个全双工的串行通行口,既可以用常规编程,又可以在线编程。
本设计中的数码管的选通采用的方法是动态显示,对每一位数码分时轮流通电显示,复位电路采用上电+按钮电平复位,时钟电路采用内部时钟产生方式。
对特殊情况的处理采用中断处理方式,在中断处理程序中采用对管脚的状态查询扫描,已采取相应情况的处理。
对设计方案进行电路硬件设计,并将已编程的程序载入调试,可以得到理想的实验效果。
系统包括人行道、左转、右转、以及基本的交通灯的功能.具体功能是假如A道和B道上均有车辆要求通过时,A、B道轮流放行。
A道放行25秒,B道放行20秒。
一道有车而另一道无车,交通灯控制系统能立即让有车道放行。
有紧急车辆要求通过时,系统要能禁止普通车辆通行,A、B道均为红灯,紧急车由K2开关模拟。
绿灯转换为红灯时黄灯亮1秒钟。
系统除基本交通灯功能外,还具有倒计时、时间设置、紧急情况处理、分时段调整信号灯的点亮时间以及根据具体情况手动控制等功能。
目录
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路口指示灯部分-7-
3.3显示部分-7-
4.Proteus软件仿真-8-
5课程设计体会-9-
参考文献-10-
附1:
源程序代码……………………………………………………………………………-13-
附2:
系统原理图20
1概述
本设计是根据单片使机原理就交通灯的系统作出的,由于车辆的增多,所以交通灯在现代道路交通中起着越来越重要的作用。
为了解决这些问题,我们更应该提高交通控制和管理水平,合理使用现有交通设施,充分发挥其能力,提高交通效率,促进和谐交通的建立。
1.1交通灯的重要作用
交通灯在城市交通中起着重要的作用,它与人们日常生活密切相关,是人们出行的安全保障。
如今随着人们生活水平的提高,对交通管制也提出了更高的要求,因此提供一个可靠、安全、便捷的多功能交通灯控制系统有着现实的必要性。
该设计在熟练掌握单片机原理及其应用技术的使用方法基础上,综合应用单片机原理、微机原理、微机接口技术、proteus软件等课程方面的知识,设计一个采用AT89C51单片机控制的交通灯控制电路。
能方便的对交通灯进行控制,使交通更和谐。
1.2该交通灯系统的特点
本系统结构简单,操作方便;可实现自动控制,具有一定的智能性;对优化城市交通具有一定的意义。
本设计将各任务进行细分包装,使各任务保持相对独立;能有效改善程序结构,便于模块化处理,使程序的可读性、可维护性和可移植性都得到进一步的提高。
系统总体方案及硬件设计
2.1原理框图
调时、紧急情况处理
根据设计功能及要求,我们可得系统的原理框图如图
(1)所示。
2.2设计功能
1.完成交通灯的基本功能,结合实际情况,控制红、黄、绿交通灯的亮和灭.其工作流程是:
绿、黄、红分时间段开通,循环往复,计时电路以秒为单位作倒计时,计数为0时进行切换,计时时间可由LED数码管显示(需符合交通规则);
2.红、黄、绿交通灯的亮和灭的时间可调节;
3.若有交通异常情况,可以通过按键处理目前的紧急状态;
4.采用LED数码管显示红或绿交通信号灯亮的剩余时间;
5.通过按键设定红和绿交通信号灯亮一次的总时间;
6.控制东西方向和南北方向的红、黄、绿交通灯的亮和灭;
7.夜间控制功能,按键进入夜间模式,黄灯闪亮;
8.控制系统的原理图和接线图采用PROTEL,PROTEUS等专用绘图软件绘制。
2.3交通灯控制系统各部分硬件组成
2.3.1复位部分
复位电路采用上电+按钮电平复位是上电复位与按钮复位的组合,当振荡频率是6MHz时,电容C取22
uf,R取1K
,Rs取200
左右。
上电瞬间复位端(RST/Vpd)的电位与Vcc相同,随着充电电路电流的减少,RST/Vpd的电位下降,最后为0V,当按钮按下后,电源Vcc通过电阻R,施加在单片机复位端RST/Vpd上实现复位,电路连接图如图
(2):
复位电路
(2)
2.3.2时钟电路部分
本系统采用内部时钟产生方式:
在和两端跨接陶瓷谐振器,与内部反相器构成稳定的自激振荡器采。
晶振采用12MHz的振荡频率和两个30Pf瓷片电容C1、C2,两个电阻对频率有微调作用。
其电路如图(3)
时钟电路(3)
2.3.3路口指示灯部分
采用红黄绿三种颜色的发光二极管共12个分为4组代表路口的交通灯(电路图中用两组示意).其中每两组控制一个路口,具体时序如表1:
表1:
方向
灯色
东西
南北
红灯
5
4
黄灯
1
1
绿灯
3
4
2.3.4显示部分
采用四位一体共阴数码管,分别显示南北和东西灯的剩余时间.片选部分和数码段显示部分,分别接单片机管脚的P2口和P0口,具体的共阴数码管管脚分布位置见图(4).
2.4元器件清单
如表2:
器件名称
型号大小
数量
单片机
AT89S52
1
晶振
12MHz
1
LED数码管
四联共阴
1
电解电容
22uF
1
瓷片电容
30pF
2
排阻
470Ω
1
电阻
470Ω
1
发光二极管
红
4
黄
4
绿
4
开关
按键式
4
3软件设计
3.1
交通灯控制系统软件流程图及程序分析
3.1.1主程序流程图及程序模设计
该交通信号灯控制系统的四中工作状态如图(5)所示(南北方向的交通灯为例):
(1)东西方向车道红灯亮,南北方向车道绿灯亮。
表示东西方向车道上的车辆禁止通行,南北方向车道允许通行。
绿灯亮足规定的时间隔时,控制器发出状态信号,转到下一工作状态。
(2)东西方向车道红灯亮,南北方向车道黄灯闪亮。
表示南北方向车道上未过停车线的车辆停止通行,已过停车线的车辆继续通行,东西方向车道禁止通行。
黄灯闪亮足规定时间间隔时,控制器发出状态转换信号,转到下一工作状态。
(3)东西方向车道绿灯亮,南北方向车道红灯亮。
表示东西方向车道允许通行,南北方向车道上的车辆禁止通行,绿灯亮足规定的时间间隔时,控制器发出状态转换信号,转到下一工作状态。
(4)东西方向车道黄灯闪亮,南北方向车道红灯亮。
表示南北方向车道禁止通行,东西方向车道上位过限停车线的车辆停止通行,已过停车线的车辆继续通行。
黄灯闪亮足规定的时间间隔时,控制器发出状态转换信号,系统又转换到第
(1)种工作状态。
3.1.2INT0中断服务程序流程图及程序模设计
INT0与K2连接,另一端与地连接。
按下K2,东西南北四个方向全红,也就是说,东西南北四个通道都不能通车,这是紧急情况,但救护车等特殊车辆可以通过。
K0与AT89C52的25管脚相连。
K1与P2.5相接,K3与P2.6相接,K2与P3.2相接。
在按下K2的前提下,按
按下K0,如果3秒中之内没有按键,则交通灯恢复正常。
50ms中断计算方法(适用于12MHz晶振):
T0的计数初值:
X0=M-计数值
2
=M-Tc/TP
=M-(Tc×fosc)/12
=65536-(50ms×1SMHz/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单元用于产生0.5秒
由于采用工作模式1,所以每次中断后,一定在中断程序中重装记数初值.
3.2路口指示灯部分
用P1端口作为输出端口,用P1.0到P1.5端口分别控制东西和南北两组灯的状态低电平点亮,具体端口功能如下:
P1.0控制东西红灯的亮灭
P1.1控制东西绿灯的亮灭
P1.2控制东西黄灯的亮灭
P1.3控制南北红灯的亮灭
P1.4控制南北绿灯的亮灭
P1.5控制南北黄灯的亮灭
具体的程序我们以点亮东西红灯东南北绿灯为例:
MOVP1,#0EEH
其余部分根据硬件不同而修改#0EEH的值.
3.3显示部分
四位一体共阴数码管的片选部分由P2.0到P2.3提供,码段部分由P0.0到P0.6控制.
其中P2.0控制东西剩余时间的十位数的显示,P2.1控制东西剩余时间的个位数的显示,P2.2控制南北剩余时间的十位数的显示,P2.3控制南北剩余时间的个位数的显示.低电平选中.
P0.0到P0.7控制分别控制点亮数码段的A段到H段,通过查共阴极数码段码表,将它们的数值送到P0口,与P2.0到P2.3口结合,可以显示不同方向不同位数的各个数值.
例如,显示东西剩余时间的十位程序如下:
MOVP2,#0FEH选择十位程序
MOVP0,A向P0口送段码的程序
4.Proteus软件仿真
根据设计需要和上述框图,我们可得到交通灯控制系统各过程仿真图如下图所示
图(7)紧急情况时
图(8)东西方向变黄灯,南北方向禁行
图(9)南北方向通车,东西方向禁行
图(10)南北方向禁行,东西方向通车
5课程设计体会
该交通灯系统是以单片机89C52芯片为核心部件,实现了能根据实际车流量通过89C51芯片设置及控制红、绿灯燃亮时间来进行交通控制。
本次课程设计使我对单片机的工作原理有了更深刻的认识,例如对复位电路、晶振电路的理解。
我深刻的理解到单片机的价值在于灵活运用它的IO端口以及其千变万化的程序。
本设计中我们用IO端口驱动数码管以及引接外部开关。
掌握了许多在以前学习中混淆不清的知识点。
仿真实验,不仅锻炼了自己的动手能力,而且真正作到了理论联系实际的重要性,体会到了其中失败与成功的滋味,收益匪浅。
同时在焊接单片机电路板时使我在制作上更加的熟练,经过不断的试验二极管终于我的灯亮了,当我看到我亲手制作的板子亮时,我的心中非常激动。
同时,我也认识到自己的知识不足,例如,有时不能正确认识、合理使用中断程序,这将是我以后努力提高的方面。
参考文献
[1].《单片机原理与应用技术》余发山主编中国矿大出版社2007
[2].《微型计算机控制技术》赖寿宏主编机械工业出版社2002
[3].《单片机原理及应用》丁元杰主编机械工业出版社2001
[4].《单片机中级教程》张迎春主编北京航空航天出版社2004
[5].《基于单片机的交通信号控制系统》欧伟民湖南大学学报(自然科学版)2002,(S2
附1:
源程序代码
ORG0000H
LJMPSTART
ORG0003H
LJMPINT0
ORG000BH
LJMPT0
ORG001BH
LJMPT1
ORG0100H
START:
MOVSP,#30H
MOV40H,#30;东西红灯时间
MOV41H,#20;东西绿灯时间
MOV42H,#25;南北红灯时间
MOV43H,#25;南北绿灯时间
MOVTMOD,#11H;定时器初始化
MOVTH0,#3CH
MOVTL0,#0B0H
MOVTH1,#3CH
MOVTL1,#0B0H
MOV60H,#20
MOV61H,#60
MOV62H,#10
MOV63H,#2
CLR4EH
CLR4FH
CLR4DH
SETBEA
SETBEX0
SETBET0
SETBET1
SETBPT1
SETBTR0
DISPLAY1:
MOVP1,#0EEH;显示东西红灯与南北绿灯时间
MOVR3,40H
MOVR4,43H
LOOP1:
MOVA,R3
MOVB,#0AH
DIVAB
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOVP2,#0FEH
MOVP0,A
LCALLDELAY;东西道显示时间的十位
MOVA,B
MOVCA,@A+DPTR
MOVP2,#0FDH
MOVP0,A
LCALLDELAY;东西道显示时间的个位
MOVA,R4
MOVB,#0AH
DIVAB
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOVP2,#0FBH
MOVP0,A
LCALLDELAY;南北显示时间的十位
MOVA,B
MOVCA,@A+DPTR
MOVP2,#0F7H
MOVP0,A
LCALLDELAY;南北显示时间的个位
JNB4FH,LOOP1
CLR4FH
DECR3
DECR4
CJNER4,#0FFH,LOOP1
kkk1:
MOVP1,#0DEH;南北绿灯灭黄灯亮
LOOP2:
MOVA,R3
MOVB,#0AH
DIVAB
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOVP2,#0FEH
MOVP0,A
LCALLDELAY
MOVP2,#0FBH
MOVP0,A
LCALLDELAY
MOVA,B
MOVCA,@A+DPTR
MOVP2,#0FDH
MOVP0,A
LCALLDELAY
MOVP2,#0F7H
MOVP0,A
LCALLDELAY
JNB4DH,LOOP2
CLR4DH
DJNZ63H,Kkk2
MOV63H,#2
DECR3
CJNER3,#0FFH,Kkk2
LJMPA1
Kkk2:
MOVP1,#0FEH;南北绿灯灭黄灯也灭。
kkk1、Kkk2控制黄灯闪亮
A2:
MOVA,R3
MOVB,#0AH
DIVAB
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOVP2,#0FEH
MOVP0,A
LCALLDELAY
MOVP2,#0FBH
MOVP0,A
LCALLDELAY
MOVA,B
MOVCA,@A+DPTR
MOVP2,#0FDH
MOVP0,A
LCALLDELAY
MOVP2,#0F7H
MOVP0,A
LCALLDELAY
JNB4DH,A2
CLR4DH
DJNZ63H,kkk1
MOV63H,#2
DECR3
CJNER3,#0FFH,Kkk1
A1:
MOVP1,#0F5H;东西红灯时间到,南北绿灯亮,南北红灯亮
DISPLAY2:
MOVR3,41H;显示东西绿灯,南北红灯时间
MOVR4,42H
LOOP3:
MOVA,R3
MOVB,#0AH
DIVAB
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOVP2,#0FEH
MOVP0,A
LCALLDELAY
MOVA,B
MOVCA,@A+DPTR
MOVP2,#0FDH
MOVP0,A
LCALLDELAY
MOVA,R4
MOVB,#0AH
DIVAB
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOVP2,#0FBH
MOVP0,A
LCALLDELAY
MOVA,B
MOVCA,@A+DPTR
MOVP2,#0F7H
MOVP0,A
LCALLDELAY
JNB4FH,LOOP3
CLR4FH
DECR3
DECR4
CJNER3,#0FFH,LOOP3
KKK5:
MOVP1,#0F3H
LOOP4:
MOVA,R4;显示南北红灯,东西黄灯时间
MOVB,#0AH
DIVAB
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOVP2,#0FEH
MOVP0,A
LCALLDELAY
MOVP2,#0FBH
MOVP0,A
LCALLDELAY
MOVA,B
MOVCA,@A+DPTR
MOVP2,#0FDH
MOVP0,A
LCALLDELAY
MOVP2,#0F7H
MOVP0,A
LCALLDELAY
JNB4DH,LOOP4
CLR4DH
DJNZ63H,KKK5
MOV63H,#2
DECR4
CJNER4,#0FFH,A7
LJMPDISPLAY1
A7:
MOVP1,#0F7H;显示南北红灯,东西黄灯灭,KKK5、A7控制黄灯闪亮
A8:
MOVA,R4
MOVB,#0AH
DIVAB
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOVP2,#0FEH
MOVP0,A
LCALLDELAY
MOVP2,#0FBH
MOVP0,A
LCALLDELAY
MOVA,B
MOVCA,@A+DPTR
MOVP2,#0FDH
MOVP0,A
LCALLDELAY
MOVP2,#0F7H
MOVP0,A
LCALLDELAY
JNB4DH,A8
CLR4DH
DJNZ63H,KKK5
MOV63H,#2
DECR4
CJNER4,#0FFH,KKK5
LJMPDISPLAY1
;;;;;;;;;;;;定时器中断;;;;;;;;;;;;
T0:
PUSHACC
PUSHB
PUSHPSW
MOVTH0,#3CH
MOVTL0,#0B0H
DJNZ62H,OVER100
MOV62H,#10
SETB4DH
OVER100:
DJNZ60H,OVER
MOV60H,#20
SETB4FH
OVER:
POPPSW
POPB
POPACC
RETI
T1:
PUSHACC
PUSHB
PUSHPSW
MOVTH1,#3CH
MOVTL1,#0B0H
DJNZ61H,OVER1
MOV61H,#60
SETB4EH
OVER1:
POPPSW
POPB
POPACC
RETI
;;;;;;;;;;;;;INTO中断修改;;;;;;;;;;
INT0:
PUSHACC
PUSHB
PUSHPSW
MOVA,P1
PUSHACC
MOVP1,#0F6H;东西南北道红灯皆亮
CLREX0
CLRTR0
LCALLDELAY;按键消抖
JBP3.2,OK
LJMPDISPLAY3
OK:
LJMPOVER2
DISPLAY3:
MOVR5,40H;东西红灯南北绿灯最大时间值的数码管显示
MOVR6,43H
MOVA,R5
MOVB,#0AH
DIVAB
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOVP2,#0FEH
MOVP0,A
LCALLDELAY
MOVA,B
MOVCA,@A+DPTR
MOVP2,#0FDH
MOVP0,A
LCALLDELAY
MOVA,R6
MOVB,#0AH
DIVAB
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOVP2,#0FBH
MOVP0,A
LCALLDELAY
MOVA,B
MOVCA,@A+DPTR
MOVP2,#0F7H
MOVP0,A
LCALLDELAY
MOVA,P2
ANLA,#70H;在没按下K0的情况下,根据K1、K3按下的情况对各道的红绿灯亮的时间进行调节
CJNEA,#70H,DES3
LJMPDISPLAY3
DES3:
LCALLDELAY
CJNEA,#70H,DES4
DES4:
JNBACC.4,DES7
JNBACC.5,ADD1
JNBACC.6,DEC1
DES7:
JNBP2.4,DES7
LJMPDISPLAY5
ADD1:
JNBP2.5,ADD1
INC40H
INC43H
LJMPDISPLAY3
DEC1:
JNBP2.6,DEC1
DEC40H
DEC43H
LJMPDISPLAY3
DISPLAY5:
SETBTR1
DISPLAY4:
MOVR5,41H;东西绿灯南北红灯最大时间值的数码管显示
MOVR6,42H
MOVA,R5
MOVB,#0AH
DIVAB
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOVP2,#0FEH
MOVP0,A
LCALLDELAY
MOVA,B
MOVCA,@A+DPTR
MOVP2,#0FDH
MOVP0,A
LCALLDELAY
MOVA,R6
MOVB,#0AH
DIVAB
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOVP2,#0FBH
MOVP0,A
LCALLDELAY
MOVA,B
MOVCA,@A+DPTR
MOVP2,#0F7H
MOVP0,A
LCALLDELAY
MOVA,P2
ANLA,#70H
CJNEA,#70H,DES5
JNB4EH,DISPLAY4
LJMPOVER2
DES5:
LCAL
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课程设计 交通灯 控制系统 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)