基于单片机的十字路口智能交通灯设计.docx
- 文档编号:26220925
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:27
- 大小:559.05KB
基于单片机的十字路口智能交通灯设计.docx
《基于单片机的十字路口智能交通灯设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的十字路口智能交通灯设计.docx(27页珍藏版)》请在冰豆网上搜索。
基于单片机的十字路口智能交通灯设计
毕业设计(论文)
题目:
十字路口智能交通灯
摘要
本系统由单片机系统、键盘、LED显示、交通灯演示系统组成。
系统包括人行道、左转、右转、以及基本的交通灯的功能。
系统除基本交通灯功能外,还具有倒计时、时间设置、紧急情况处理、分时段调整信号灯的点亮时间以及根据具体情况手动控制等功能。
随着社会
经济的发展,城市交通问题越来越引起人们的关注。
人、车、路三者关系的协调,已成为交通管理部门需要解决的重要问题之一。
城市交通控制系统是用于城市交通数据监测、交通信号灯控制与交通疏导的
计算机综合管理系统,它是现代城市交通监控指挥系统中最重要的组成部分。
关键词:
单片机;交通灯;控制器
Abstract
ThesystemiscomposedofSCMsystem,keyboard,LEDdisplay,lightdemosystemcomposition.Systemincludepavements,turnleft,turnright,andbasicfunctionsofthetrafficlights.Systembesidesbasictrafficlightsfunctionoutside,stillhavethecountdown,timesetting,emergencytreatment,indifferentperiodoftimeandadjustthelightaccordingtothespecificconditionsofmanualcontroletc.Function.Withthedevelopmentofsocialeconomy,urbantransportationproblemandhasattractedtheattentionofpeople.People,vehiclesandroadrelationshipcoordination,hasbecomethetransportationmanagementdepartmentneedstosolveoneofimportantissues.Urbantrafficcontrolsystemisdesignedforurbantrafficdatamonitoring,trafficlightcontrolandtrafficpersuationcomputerintegratedmanagementsystem,itisthemodernurbantrafficcontrolcommandsystem.
Keywords:
SCM,Trafficlights,controller
摘要
Abstract
引言第一章方案论证与设计第二章系统硬件设计
2.1总体设计7
2.2单片机基本结构7
2.3单片机最小系统10
2.3.1时钟电路10
2.3.2复位电路11
2.3.3LED显示电路12
第三章系统软件流程图设计14
3.1主程序流程图设计14
3.2定时中断子程序流程图设计15
3.3显示子程序流程图16
3.4案件子程序流程图17
第四章系统软件程序设计18
第五章系统仿真27
5.1PR0TUES软件介绍27
5.2交通系统PROTUES仿真27
第六章.调试与功能说明28
6.1硬件调试28
6.2软件调试问题及解决28
附录整机电路图29
结束语30
致谢31
参考文献32
引言
近年来,随着我国国民经济的快速发展,我国机动车辆发展迅速,而城镇道路建设由于历史等各种原因相对滞后,交通拥挤和堵塞现象时常出现。
如何让利用当今计算机和自动控制技术,有效地疏通交通,提高城镇交通路口的通行能力,减少交通事故是很值得研究的一个话题。
目前,国内的交通灯一般设在十字路口,在醒目位置用红绿黄三种颜色的指示灯再加上一个倒计时的显示计时器来控制行车。
我国交通法规也对交通指挥信号灯做出规定:
(1)绿灯亮时,准行车辆,行人通行,但转弯的车辆不准妨碍执行的车辆和被放行的行人通行。
(2)黄灯亮时,不准车辆行人通行,但已越过停止线的车辆和已进入人行横道的行人,可以继续通行。
(3)红灯亮时,不准车辆,行人通行。
(4)绿色箭头灯亮时,准行车辆按箭头所示方向通行。
(5)黄灯闪烁时,车辆行人在确保安全的原则下可以通行。
信号灯的出现,使交通得到有效管制,对于疏导交通流量、提高道路通行能力和减少交通事故有明显效果。
第一章.方案论证与设计
本设计以单片机为核心,以LED数码管作为倒计时指示,根据设计的要求我们考虑了各功能模块的几种设计方案,以求最佳方案,实现实时显示系统各种状态,系统还增设了根据交通拥挤情况可分别设置主干道和次干道的通行时间,以提高效率,缓减交通拥挤。
系统总体设计框图如图1-1所示。
交通灯控制的框图如下图所示,主要有控制电路、按键电路、晶振电路、复位电路、显示电路、电源电路等电路组成。
交通灯总体设计图
显示电路
信号灯控制
电路
按键控制电
—路
图1-1系统总体设计框图
1.1电源提供方案
为使模块稳定工作,须有可靠电源。
本次设计考虑了两种电源方案:
方案一:
采用独立的稳压电源。
此方案的优点是稳定可靠,且有各种成熟电路可供选用;缺点是各模块都采用独立电源,会使系统复杂,且可能影响电路电平。
方案二:
采用单片机控制模块提供电源。
该方案的优点是系统简明扼要,节约成本;缺点是输出功率不高。
综上所述,选择第二种方案。
1.2显示界面方案
该系统要求完成倒计时功能。
基于上述原因,本次设计考虑了两种方案:
方案一:
完全采用点阵式LED显示。
这种方案功能强大,可方便的显示各种英文字符,汉字,图形等,但实现复杂,且须完成大量的软件工作。
方案二:
完全采用数码管显示。
这种方案优点是实现简单,可以完成倒计时功能。
缺点是功能较少,只能显示有限的符号和数码字符。
根据本设计的要求,方案二已经满足了要求,所以本次设计采用方案二以实现系统的显示.
1.3输入方案
这里同样讨论了两种方案:
方案一:
采用8155扩展I/O口、键盘及显示等。
该方案的优点是使用灵活可编程,并且有RAM及计数器。
若用该方案,可提供较多I/O口,但操作起来稍显复杂。
方案二:
直接在I/O口线上接上按键开关。
因为设计时精简和优化了电路,所以剩余的端口资源还比较多。
由于该系统是对交通灯及数码管的控制,只需用单片机本身的I/O口就可实现,且本身的计数器及RAM已经够用,故选择方案二。
第二章.系统硬件设计
2.1总体设计
本设计以单片机为控制核心,采用模块化设计,共分以下几个功能模块:
单片机控制系统、键盘及状态显示、倒计时模块等。
单片机作为整个硬件系统的核心,它既是协调整机工作的控制器,又是数据处理器。
它由单片机振荡电路、复位电路等组成。
键盘及状态显示,开关键盘输入交通灯初始时间,通过单片机
P1输入到系统。
系统采用双数码管倒计时计数功能,最大显示数字99。
在交通情况比较特殊的情况下,可以通过K1、K2、K3三个按
键对对交通灯进行控制
2.2单片机基本结构
MCS-52单片机内部结构
8052单片机包含中央处理器、程序存储器(ROM〉数据存储器(RAM)定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:
中央处理器:
中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。
数据存储器(RAM)
8052内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型
I程序存條噩|[数据存储器][定时计数器I
otn
时钟
TD1
1
rq
11
7q
FV
1并行工"口
1串行通信口中断莱统
图2-1单片机8051的内部结构
程序存储器(ROM)
8052共有4096个8位掩膜ROM用于存放用户程序,原始数据或表格。
定时/计数器:
8052有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。
并行输入输出(I/O)口:
8052共有4组8位I/O口(P0、P1、P2或P3),用于对外部数据的传输。
全双工串行口:
8052内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。
中断系统:
8052具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。
时钟电路:
8052内置最高频率达12MHz的时钟电路,用于产生整个单片机运行的脉冲时序,但8051单片机需外置振荡电容。
MCS-52的引脚说明:
MCS-52系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。
现在我们对这些引脚的功能加以说明:
MCS-52的引脚说明:
MCS-52系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。
如图2-2所示,现在我们对这些引脚的功能加以说明:
FDIF
图2-2单片机的引脚图
Pin9:
RESETMd复位信号复用脚,当8052通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系统即初始复位。
初始化后,程序计数器PC指向0000HP0-P3输出口全部为高电平,堆栈指针写入07H,其它专用寄存器被清“0”。
RESET由高电平下降为低电平后,系统即从0000H地址开始执行程序。
然而,初始复位不改变RAM(包括工作寄存器R0-R7)的状态,8052的初始态。
8052的复位方式可以是自动复位,也可以是手动复位,见下图4。
此外,RESET/V还是一复用脚,Vcc掉电其间,此脚可接上备用电源,以保证单片机内部RAM的数据不丢失。
2.3单片机最小系统
2.3.1时钟电路如图2-3所示
XTAL1是片内振荡器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1而XTAL2悬空。
内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz时钟
频率就为6MHz晶振的频率可以在1MHZ-24MH内选择。
电容取30PF左右。
系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路。
AT89单片机内部有一个用于构成振荡器的高增益反相放大器。
引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。
这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。
外接晶体谐振器以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中。
对外接电容的值虽然没有严格的要求,但电容的大小会影响震荡器频率的高低、震荡器的稳定性、起振的快速性和温度的稳定性。
因此,此系统电路的晶体振荡器的值为12MH,z电容应尽可能的选择陶瓷电容,电容值约为22卩F。
在焊接刷电路板时,晶体振荡器和电容应尽可能安装得与单片机芯片靠近,以减少寄生电容,更好地保证震荡器稳定和可靠地工作。
2.3.2复位电路
在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此引腿时,将使单片机复位,只要这个脚保持高电平,51芯片便循环复位。
复位后P0-P3口均置1引脚表现为高电平,程序计数器和特殊功能寄存器SFF全部清零。
当复位脚由高电平变为低电平时,芯片为R0啲00H处开始运行程序。
复位是由外部的复位电路来实现的。
片内复位电路是复位引脚RST通过一个斯密特触发器与复
位电路相连,斯密特触发器用来抑制噪声,它的输出在每个机器周期
的S5P2由复位电路采样一次。
复位电路通常采用上电自动复位和按钮复位两种方式,此电路系统采用的是上电与按钮复位电路。
当时
钟频率选用6MHz时,C取22卩F,Rs约为200Q,Rk约为1K。
复位操作不会对内部RAM有所影响。
常用的复位电路如图2-4所示:
VCC
O
IK
R2
RESET
8.2K
GND
图2-4复位电路图
2.3.3LED显示电路
显示器普遍地用于直观地显示数字系统的运行状态和工作数据,
按照材料及产品工艺,单片机应用系统中常用的显示器有:
发光二
极管LED显示器、液晶LCD显示器、CRT显示器等。
LED显示器是现在最常用的显示器之一,如图2-5所示。
图2-5LED显示器的符号图
发光二极管(LED由特殊的半导体材料砷化镓、磷砷化镓等制成,可以单独使用,也可以组装成分段式或点阵式LED显示器件(半导体显示器)。
分段式显示器(LED数码管)由7条线段围成8字型,每一段包含一个发光二极管。
外加正向电压时二极管导通,发出清晰的光。
只要按规律控制各发光段亮、灭,就可以显示各种字形或符号。
LED数码管有共阳、共阴之分。
图是共阳式、共阴式LED数码管的原理图和符号
第三章.系统软件流程图设计
3.1软件流程图设计
3.1.1主程序流程图
如图3-1主程序流程图
3.1.2定时中断子程序
图3-2定时中断子程序流程图
3.1.3显示子程序流程图
图3-3显示子程序流程图
3.1.4按键子程序流程图
图3-4按键子程序流程图
第四章.系统软件程序设计
****************・
;*1秒延时子程序*;
・****************・
55
DELAY:
MOVR1,#0AH
DELAY0:
MOVR2,#0C8H
DELAY1:
MOVR3,#0F8H
NOP
DELAY2:
DJNZR3,DELAY2
DJNZR2,DELAY1
DJNZR1,DELAY0
RET
・***************・
55
;键盘扫描子程序;
・***************・
55
READKEY:
MOVA,#0FFH
MOVP3,A
MOVA,P3
;判断K1键是否按下
;判断K2键是否按下
;判断K3键是否按下
JNBACC.0,K1
JNBACC.1,K2
JNBACC.3,K3
K1:
MOVP0,#0FFH
MOVP2,#0FFH
LCALLXX
LCALLYY
SJMPREADKEY
K2:
MOVP0,#0FFH
MOVP2,#0FFH
LCALLXX
LCALLYY1
SJMPREADKEY
K3:
MOVP0,#0FFH
MOVP2,#0FFH
LCALLXX
LCALLYY2
SJMPREADKEY
XX:
;关断倒计时显示装置
;关断倒计时显示装置
;关断倒计时显示装置
MOV20H,#03H
LCALLBB
・******************・
;*黄灯进行5秒闪烁
・******************・
55
BB:
SETBP1.1
SETBP1.4
LCALLDELAY
CLRP1.1
CLRP1.4
LCALLDELAY
DJNZ20H,BB
RET
YY:
MOVP1,#0F6H
MOVA,#0FFH
MOVP3,A
MOVA,P3
JNBACC.0,YY
LCALLQW
YY1:
MOVP1,#0F3H
亮红灯
;四个路后均变成红灯
;判断K1键是否仍然按下
;东西方向亮绿灯,南北方向
MOVA,#0FFH
MOVP3,A
MOVA,P3
JNBACC.1,YY1
LCALLQW
YY2:
MOVP1,#0DEH亮红灯
MOVA,#0FFH
MOVP3,A
MOVA,P3
JNBACC.3,YY2
LCALLQW
RET
・****************・
55
;*中断处理程序*;
・****************・
55
ORG0200H
Liu:
DEC88H
MOVA,88H
CJNEA,#01H,BN
;判断K2键是否仍然按下
;南北方向亮绿灯,东西方向
;判断K3键是否仍然按下
;中断程序入口地址
;判断循环次数是否为1
;重新给循环次数赋值
;重新给定时器T1赋初值
MOV88H,#15H
LCALLDISP
BN:
MOVTH1,#9EH
MOVTL1,#58H
RETI
・************・
55
;*显示子程序*;
・************・
55
DISP:
DEC33H
MOVA,33H
CJNEA,#01H,DIR1
;重新给倒计时数赋初值
;提取出倒计时数值的十位数
;字形表的入口地址
;查表获取十位数的字型码
MOV33H,#3DH
DIR1:
MOVB,#0AH
DIVAB
和个位数
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOV30H,A
MOVA,B
MOVCA,@A+DPTR
;查表获取个位数的字型码
MOV31H,A
MOVA,30H
MOVP0,A
;将十位数字型码送到P0口
MOVA,31H
MOVP2,A
;将个位数字型码送到P2口
LCALLDELAY
RET
TAB:
DB0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090H;字形表
END
ORG0000H
LJMPMAIN
ORG001BH
;定时器T1中断入口
LJMP
liu
ORG0100H
;主程序入口
・********・
55
;*主程序*;
・********・
55
MAIN:
MOVSP,#60H
MOVTMOD,#10H
;定时器T1工作在方式1
MOVTH1,#9EH
;给定时器T1赋初值
MOVTL1,#58H
SETBEA
SETBET1
SETBTR1
HERE:
MOV88H,#15H
MOV33H,#3DH
MOVP1,#0F3H
MOVR7,#37H
MM:
LCALLDISP
MOVA,P3
CJNEA,#0FFH,READKEY
DJNZR7,MM
MOVP1,#0E1H
加亮黄灯
MOV20H,#02H
NN:
MOVA,P3
CJNEA,#0FFH,READKEY
SETBP1.1
;开中断系统总开关
;开定时器T1中断开关
;启动定时器T1
;设置中断循环次数
;设置倒计时显示数值;使交通灯东西绿,南北红
;键盘扫描
;交通灯东西绿,南北红同时
;黄灯进行5秒闪烁
SETBP1.4
LCALLDISP
CLRP1.1
CLRP1.4
LCALLDISP
DJNZ20H,NN
SETBP1.1
SETBP1.4
LCALLDISP
MOVP1,#0DEH
MOVR7,#37H
PP:
LCALLDISP
MOVA,P3
CJNEA,#0FFH,READKEY
DJNZR7,PP
MOVP1,#0CCH
亮黄灯
MOV20H,#02H
QQ:
MOVA,P3
;调显示子程序
;交通灯南北绿,
;交通灯南北绿,
;扫描P3口
东西红
东西红同时加
CJNEA,#0FFH,READKEY
SETBP1.1
SETBP1.4LCALLDISP
CLRP1.1
CLRP1.4LCALLDISPDJNZ20H,QQSETBP1.1SETBP1.4
LCALLDISP
LCALLQW
QW:
SJMPHERE
RET
第五章.系统仿真
1PROTUES软件介绍
包括ISIS、ARES等软件模块,ARES模块主要用来完成PCB的设计,而ISIS模块用来完成电路原理图的布图与仿真。
Proteus的软件仿真基于VSM技术,
它与其他软件最大的不同也是最大的优势就在于它能仿真大量的单片机芯片,比
如MCS-51系列、PIC系列等等,以及单片机外围电路,比如键盘、LED、LCD
等等。
通过Proteus软件的使用我们能够轻易地获得一个功能齐全、实用方便的单片机实验室。
4.2交通灯系统PROTUES仿真
用PROTUE软件,根据交通灯的原理图,画出仿真图,得到的图如下所示
第五章调试与功能说明
5.1硬件调试系统的硬件调试一般分下面三个步骤。
第一步:
目测。
检查外部的各种元件或者电路是否有断点。
第二步:
用万用表检测,先用万用表复核目测中有疑问的连接点,在检测各种电源线与地线之间是否有短路现象。
第三步:
加电检测。
给板加电,检测所有插座或者器件的电源是否符合要求的值。
(1)倒计时显示电路调试给硬件电路接上电源,这时数码管全灭,用一根导线的一端与地线相连,另一端一次碰触AT89C51的P0和P2口,一边碰触一边察看七段数码管,正常情况下可以看到每碰触一个引脚,对应的一段数码管点亮。
若不亮,仔细查看与该脚相连的电阻及数码管是否虚焊。
(2)交通灯电路的调试需要说明的是,由于整个设计是用发光二极管来代替交通灯,需要低电平“0”
来驱动点亮,在实际应用中,应使P1口输出高电平“1”来驱动继电器导通,从而使220V的交通灯点亮。
这是试验与实际应用比较容易混淆的地方,应该引起注意。
同时,在进行交通灯调试应注意VD1~VD12这12个发光二极管不能焊反。
(3)紧急通行电路调试
仔细检查K1、K2、K3三个按键是否焊牢,并且三个键是否与相应的I/O借口对应准确。
5.2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 十字路口 智能 交通灯 设计