基于单片机的十字路口智能交通灯设计.docx
《基于单片机的十字路口智能交通灯设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的十字路口智能交通灯设计.docx(22页珍藏版)》请在冰豆网上搜索。
基于单片机的十字路口智能交通灯设计
毕业设计(论文)
题目:
十字路口智能交通灯
摘要
本系统由单片机系统、键盘、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
摘要--------------------------------------------------------------1
Abstract-----------------------------------------------------------1
引言-------------------------------------------------------------3
第一章方案论证与设计--------------------------------------------------------------------4
第二章系统硬件设计-----------------------------------------------------------------------7
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.1PROTUES软件介绍------------------------------------------------------------------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个,可存放读写的数据,运算的中间结果或用户定义的字型表。
图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所示,现在我们对这些引脚的功能加以说明:
图2-2单片机的引脚图
Pin9:
RESET/Vpd复位信号复用脚,当8052通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系统即初始复位。
初始化后,程序计数器PC指向0000H,P0-P3输出口全部为高电平,堆栈指针写入07H,其它专用寄存器被清“0”。
RESET由高电平下降为低电平后,系统即从0000H地址开始执行程序。
然而,初始复位不改变RAM(包括工作寄存器R0-R7)的状态,8052的初始态。
8052的复位方式可以是自动复位,也可以是手动复位,见下图4。
此外,RESET/Vpd还是一复用脚,Vcc掉电其间,此脚可接上备用电源,以保证单片机内部RAM的数据不丢失。
2.3单片机最小系统
2.3.1时钟电路如图2-3所示
XTAL1是片内振荡器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。
内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz。
晶振的频率可以在1MHz-24MHz内选择。
电容取30PF左右。
系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路。
AT89单片机内部有一个用于构成振荡器的高增益反相放大器。
引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。
这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。
外接晶体谐振器以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中。
对外接电容的值虽然没有严格的要求,但电容的大小会影响震荡器频率的高低、震荡器的稳定性、起振的快速性和温度的稳定性。
因此,此系统电路的晶体振荡器的值为12MHz,电容应尽可能的选择陶瓷电容,电容值约为22μF。
在焊接刷电路板时,晶体振荡器和电容应尽可能安装得与单片机芯片靠近,以减少寄生电容,更好地保证震荡器稳定和可靠地工作。
2.3.2复位电路
在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此引腿时,将使单片机复位,只要这个脚保持高电平,51芯片便循环复位。
复位后P0-P3口均置1引脚表现为高电平,程序计数器和特殊功能寄存器SFR全部清零。
当复位脚由高电平变为低电平时,芯片为ROM的00H处开始运行程序。
复位是由外部的复位电路来实现的。
片内复位电路是复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,它的输出在每个机器周期的S5P2,由复位电路采样一次。
复位电路通常采用上电自动复位和按钮复位两种方式,此电路系统采用的是上电与按钮复位电路。
当时钟频率选用6MHz时,C取22μF,Rs约为200Ω,Rk约为1K。
复位操作不会对内部RAM有所影响。
常用的复位电路如图2-4所示:
图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秒延时子程序*;
;****************;
DELAY:
MOVR1,#0AH
DELAY0:
MOVR2,#0C8H
DELAY1:
MOVR3,#0F8H
NOP
DELAY2:
DJNZR3,DELAY2
DJNZR2,DELAY1
DJNZR1,DELAY0
RET
;***************;
;键盘扫描子程序;
;***************;
READKEY:
MOVA,#0FFH
MOVP3,A
MOVA,P3
JNBACC.0,K1;判断K1键是否按下
JNBACC.1,K2;判断K2键是否按下
JNBACC.3,K3;判断K3键是否按下
RET
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
RET
;******************;
;*黄灯进行5秒闪烁*;
;******************;
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;判断K1键是否仍然按下
LCALLQW
YY1:
MOVP1,#0F3H;东西方向亮绿灯,南北方向亮红灯
MOVA,#0FFH
MOVP3,A
MOVA,P3
JNBACC.1,YY1;判断K2键是否仍然按下
LCALLQW
YY2:
MOVP1,#0DEH;南北方向亮绿灯,东西方向亮红灯
MOVA,#0FFH
MOVP3,A
MOVA,P3
JNBACC.3,YY2;判断K3键是否仍然按下
LCALLQW
RET
;****************;
;*中断处理程序*;
;****************;
ORG0200H;中断程序入口地址
Liu:
DEC88H
MOVA,88H
CJNEA,#01H,BN;判断循环次数是否为1
MOV88H,#15H;重新给循环次数赋值
LCALLDISP
BN:
MOVTH1,#9EH;重新给定时器T1赋初值
MOVTL1,#58H
RETI
;************;
;*显示子程序*;
;************;
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中断入口
LJMPliu
ORG0100H;主程序入口
;********;
;*主程序*;
;********;
MAIN:
MOVSP,#60H
MOVTMOD,#10H;定时器T1工作在方式1
MOVTH1,#9EH;给定时器T1赋初值
MOVTL1,#58H
SETBEA;开中断系统总开关
SETBET1;开定时器T1中断开关
SETBTR1;启动定时器T1
HERE:
MOV88H,#15H;设置中断循环次数
MOV33H,#3DH;设置倒计时显示数值
MOVP1,#0F3H;使交通灯东西绿,南北红
MOVR7,#37H
MM:
LCALLDISP
MOVA,P3;键盘扫描
CJNEA,#0FFH,READKEY
DJNZR7,MM
MOVP1,#0E1H;交通灯东西绿,南北红同时加