1、基于单片机的十字路口智能交通灯设计毕业设计(论文)题目:十字路口智能交通灯 摘要本系统由单片机系统、键盘、LED显示、交通灯演示系统组成。系统包括人行道、左转、右转、以及基本的交通灯的功能。系统除基本交通灯功能外,还具有倒计时、时间设置、紧急情况处理、分时段调整信号灯的点亮时间以及根据具体情况手动控制等功能。随着社会经济的发展,城市交通问题越来越引起人们的关注。人、车、路三者关系的协调,已成为交通管理部门需要解决的重要问题之一。城市交通控制系统是用于城市交通数据监测、交通信号灯控制与交通疏导的计算机综合管理系统,它是现代城市交通监控指挥系统中最重要的组成部分。关键词:单片机;交通灯;控制器 A
2、bstract The system is composed of SCM system, keyboard, LED display, light demo system composition. System include pavements, turn left, turn right, and basic functions of the traffic lights. System besides basic traffic lights function outside, still have the countdown, time setting, emergency trea
3、tment, in different period of time and adjust the light according to the specific conditions of manual control etc. Function. With the development of social economy, urban transportation problem and has attracted the attention of people. People, vehicles and road relationship coordination, has becom
4、e the transportation management department needs to solve one of important issues. Urban traffic control system is designed for urban traffic data monitoring, traffic light control and traffic persuation computer integrated management system, it is the modern urban traffic control command system.Key
5、words: SCM, Traffic lights, controller摘 要-1Abstract-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交通系统PROTUE
6、S仿真-27第六章调试与功能说明-28 6.1硬件调试-28 6.2软件调试问题及解决-28附 录 整机电路图-29结束语-30致 谢-31参考文献-32引言近年来,随着我国国民经济的快速发展,我国机动车辆发展迅速,而城镇道路建设由于历史等各种原因相对滞后,交通拥挤和堵塞现象时常出现。如何让利用当今计算机和自动控制技术,有效地疏通交通,提高城镇交通路口的通行能力,减少交通事故是很值得研究的一个话题。目前,国内的交通灯一般设在十字路口,在醒目位置用红绿黄三种颜色的指示灯再加上一个倒计时的显示计时器来控制行车。我国交通法规也对交通指挥信号灯做出规定:(1) 绿灯亮时,准行车辆,行人通行,但转弯的车
7、辆不准妨碍执行的车辆和被放行的行人通行。(2) 黄灯亮时,不准车辆行人通行,但已越过停止线的车辆和已进入人行横道的行人,可以继续通行。(3) 红灯亮时,不准车辆,行人通行。(4) 绿色箭头灯亮时,准行车辆按箭头所示方向通行。(5) 黄灯闪烁时,车辆行人在确保安全的原则下可以通行。信号灯的出现,使交通得到有效管制,对于疏导交通流量、提高道路通行能力和减少交通事故有明显效果。第一章方案论证与设计本设计以单片机为核心,以LED数码管作为倒计时指示,根据设计的要求我们考虑了各功能模块的几种设计方案,以求最佳方案,实现实时显示系统各种状态,系统还增设了根据交通拥挤情况可分别设置主干道和次干道的通行时间,
8、以提高效率,缓减交通拥挤。系统总体设计框图如图1-1所示。交通灯控制的框图如下图所示,主要有控制电路、按键电路、晶振电路、复位电路、显示电路、电源电路等电路组成。图1-1系统总体设计框图1.1电源提供方案为使模块稳定工作,须有可靠电源。本次设计考虑了两种电源方案:方案一:采用独立的稳压电源。此方案的优点是稳定可靠,且有各种成熟电路可供选用;缺点是各模块都采用独立电源,会使系统复杂,且可能影响电路电平。方案二:采用单片机控制模块提供电源。该方案的优点是系统简明扼要,节约成本;缺点是输出功率不高。综上所述,选择第二种方案。1.2显示界面方案该系统要求完成倒计时功能。基于上述原因,本次设计考虑了两种
9、方案:方案一:完全采用点阵式LED显示。这种方案功能强大,可方便的显示各种英文字符,汉字,图形等,但实现复杂,且须完成大量的软件工作。方案二:完全采用数码管显示。这种方案优点是实现简单,可以完成倒计时功能。缺点是功能较少,只能显示有限的符号和数码字符。根据本设计的要求,方案二已经满足了要求,所以本次设计采用方案二以实现系统的显示.1.3输入方案这里同样讨论了两种方案:方案一:采用8155扩展I/O口、键盘及显示等。该方案的优点是使用灵活可编程,并且有RAM及计数器。若用该方案,可提供较多I/O口,但操作起来稍显复杂。方案二:直接在I/O口线上接上按键开关。因为设计时精简和优化了电路,所以剩余的
10、端口资源还比较多。由于该系统是对交通灯及数码管的控制,只需用单片机本身的I/O口就可实现,且本身的计数器及RAM已经够用,故选择方案二。 第二章系统硬件设计2.1总体设计本设计以单片机为控制核心,采用模块化设计,共分以下几个功能模块:单片机控制系统、键盘及状态显示、倒计时模块等。单片机作为整个硬件系统的核心,它既是协调整机工作的控制器,又是数据处理器。它由单片机振荡电路、复位电路等组成。键盘及状态显示,开关键盘输入交通灯初始时间,通过单片机P1输入到系统。系统采用双数码管倒计时计数功能,最大显示数字99。在交通情况比较特殊的情况下,可以通过K1、K2、K3三个按键对对交通灯进行控制。2.2单片
11、机基本结构MCS-52单片机内部结构8052单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:中央处理器:中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。数据存储器(RAM)8052内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所
12、以,用户能使用的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具备较完善的中断功能,有两
13、个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有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封装的
14、双列直接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(包括工作寄存器R
15、0-R7)的状态,8052的初始态。8052的复位方式可以是自动复位,也可以是手动复位,见下图4。此外,RESET/Vpd还是一复用脚,Vcc掉电其间,此脚可接上备用电源,以保证单片机内部RAM的数据不丢失。2.3单片机最小系统2.3.1时钟电路如图2-3所示XTAL1是片内振荡器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz。晶振的频率可以在1MHz-24MHz内选择。电容取30PF左右。系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路
16、。AT89单片机内部有一个用于构成振荡器的高增益反相放大器。引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。外接晶体谐振器以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中。对外接电容的值虽然没有严格的要求,但电容的大小会影响震荡器频率的高低、震荡器的稳定性、起振的快速性和温度的稳定性。因此,此系统电路的晶体振荡器的值为12MHz,电容应尽可能的选择陶瓷电容,电容值约为22F。在焊接刷电路板时,晶体振荡器和电容应尽可能安装得与单片机芯片靠近,以减少寄生电容,更好地保证震荡器稳定和可靠地工作。2.3.2复位电路在振
17、荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此引腿时,将使单片机复位,只要这个脚保持高电平,51芯片便循环复位。复位后P0P3口均置1引脚表现为高电平,程序计数器和特殊功能寄存器SFR全部清零。当复位脚由高电平变为低电平时,芯片为ROM的00H处开始运行程序。复位是由外部的复位电路来实现的。片内复位电路是复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,它的输出在每个机器周期的S5P2,由复位电路采样一次。复位电路通常采用上电自动复位和按钮复位两种方式,此电路系统采用的是上电与按钮复位电路。当时钟频率选用6MHz时,C取22F,Rs约为200,Rk约
18、为1K。复位操作不会对内部RAM有所影响。常用的复位电路如图2-4所示:图2-4复位电路图2.3.3LED显示电路显示器普遍地用于直观地显示数字系统的运行状态和工作数据,按照材料及产品工艺,单片机应用系统中常用的显示器有: 发光二极管LED显示器、液晶LCD显示器、CRT显示器等。LED显示器是现在最常用的显示器之一,如图2-5所示。图2-5 LED显示器的符号图发光二极管(LED)由特殊的半导体材料砷化镓、磷砷化镓等制成,可以单独使用,也可以组装成分段式或点阵式LED显示器件(半导体显示器)。分段式显示器(LED数码管)由7条线段围成8字型,每一段包含一个发光二极管。外加正向电压时二极管导通
19、,发出清晰的光。只要按规律控制各发光段亮、灭,就可以显示各种字形或符号。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:MOV R1,#0AH DELAY0:MOV R2,#0C8HDELAY1:MOV R3,#0F8HNOPDELAY2:DJNZ R3,DELA
20、Y2DJNZ R2,DELAY1DJNZ R1,DELAY0RET;*;键盘扫描子程序;*;READKEY: MOV A,#0FFHMOV P3,AMOV A,P3JNB ACC.0,K1 ;判断K1键是否按下JNB ACC.1,K2 ;判断K2键是否按下JNB ACC.3,K3 ;判断K3键是否按下RET K1:MOV P0,#0FFH ;关断倒计时显示装置MOV P2,#0FFHLCALL XXLCALL YYSJMP READKEYK2:MOV P0,#0FFH ;关断倒计时显示装置MOV P2,#0FFHLCALL XXLCALL YY1SJMP READKEYK3:MOV P0,#0
21、FFH ;关断倒计时显示装置MOV P2,#0FFHLCALL XXLCALL YY2SJMP READKEYXX:MOV 20H,#03HLCALL BBRET;*;*黄灯进行5秒闪烁*;*;BB: SETB P1.1SETB P1.4 LCALL DELAY CLR P1.1CLR P1.4 LCALL DELAY DJNZ 20H,BBRET YY:MOV P1,#0F6H ;四个路后均变成红灯MOV A,#0FFHMOV P3,AMOV A,P3JNB ACC.0,YY ;判断K1键是否仍然按下LCALL QWYY1:MOV P1,#0F3H ;东西方向亮绿灯,南北方向亮红灯MOV A
22、,#0FFHMOV P3,AMOV A,P3JNB ACC.1,YY1 ;判断K2键是否仍然按下LCALL QWYY2:MOV P1,#0DEH ;南北方向亮绿灯,东西方向亮红灯MOV A,#0FFHMOV P3,AMOV A,P3JNB ACC.3,YY2 ;判断K3键是否仍然按下LCALL QWRET;*;*中断处理程序*;*;ORG 0200H ;中断程序入口地址Liu:DEC 88HMOV A,88HCJNE A,#01H,BN ;判断循环次数是否为1MOV 88H,#15H ;重新给循环次数赋值LCALL DISPBN:MOV TH1,#9EH ;重新给定时器T1赋初值MOV TL1
23、,#58H RETI;*;*显示子程序*;*;DISP: DEC 33HMOV A,33HCJNE A,#01H,DIR1MOV 33H,#3DH ;重新给倒计时数赋初值DIR1:MOV B,#0AHDIV AB ;提取出倒计时数值的十位数和个位数MOV DPTR,#TAB ;字形表的入口地址MOVC A,A+DPTR ;查表获取十位数的字型码MOV 30H,AMOV A,BMOVC A,A+DPTR ;查表获取个位数的字型码MOV 31H,AMOV A,30HMOV P0,A ;将十位数字型码送到P0口MOV A,31HMOV P2,A ;将个位数字型码送到P2口LCALL DELAYRET
24、TAB:DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090H;字形表ENDORG 0000HLJMP MAINORG 001BH ;定时器T1中断入口LJMP liu ORG 0100H ;主程序入口;*;*主程序*;*;MAIN:MOV SP,#60H MOV TMOD,#10H ;定时器T1工作在方式1MOV TH1,#9EH ;给定时器T1赋初值MOV TL1,#58HSETB EA ;开中断系统总开关SETB ET1 ;开定时器T1中断开关SETB TR1 ;启动定时器T1HERE:MOV 88H,#15H ;设置中断循环次数MOV 33H,#3DH ;设置倒计时显示数值MOV P1,#0F3H ;使交通灯东西绿,南北红MOV R7,#37HMM:LCALL DISPMOV A,P3 ;键盘扫描CJNE A,#0FFH,READKEYDJNZ R7,MMMOV P1,#0E1H ;交通灯东西绿,南北红同时加
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1