1、毕业设计(论文)题目:十字路口智能交通灯 摘要本系统由单片机系统、键盘、LED显示、交通灯演示系统组成。系统包括人行道、左转、右转、以及基本的交通灯的功能。系统除基本交通灯功能外,还具有倒计时、时间设置、紧急情况处理、分时段调整信号灯的点亮时间以及根据具体情况手动控制等功能。随着社会经济的发展,城市交通问题越来越引起人们的关注。人、车、路三者关系的协调,已成为交通管理部门需要解决的重要问题之一。城市交通控制系统是用于城市交通数据监测、交通信号灯控制与交通疏导的计算机综合管理系统,它是现代城市交通监控指挥系统中最重要的组成部分。关键词:单片机;交通灯;控制器Abstract The system
2、 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 treatment, in differen
3、t 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 become the transportati
4、on 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.Keywords: SCM, Traffi
5、c lights, controller目录摘要-1Abstract-1引言-3第一章方案论证与设计-4第二章系统硬件设计-72.1总体设计-72.2单片机基本结构-72.3单片机最小系统-102.3.1时钟电路-102.3.2复位电路-112.3.3LED显示电路-12第三章系统软件流程图设计-143.1主程序流程图设计-143.2定时中断子程序流程图设计-153.3显示子程序流程图-163.4案件子程序流程图-17第四章系统软件程序设计-18第五章系统仿真-275.1PROTUES软件介绍-275.2交通系统PROTUES仿真-27第六章调试与功能说明-286.1硬件调试-286.2软件调
6、试问题及解决-28附录整机电路图-29结束语-30致谢-31参考文献-32引言近年来,随着我国国民经济的快速发展,我国机动车辆发展迅速,而城镇道路建设由于历史等各种原因相对滞后,交通拥挤和堵塞现象时常出现。如何让利用当今计算机和自动控制技术,有效地疏通交通,提高城镇交通路口的通行能力,减少交通事故是很值得研究的一个话题。目前,国内的交通灯一般设在十字路口,在醒目位置用红绿黄三种颜色的指示灯再加上一个倒计时的显示计时器来控制行车。我国交通法规也对交通指挥信号灯做出规定:(1) 绿灯亮时,准行车辆,行人通行,但转弯的车辆不准妨碍执行的车辆和被放行的行人通行。(2) 黄灯亮时,不准车辆行人通行,但已
7、越过停止线的车辆和已进入人行横道的行人,可以继续通行。(3) 红灯亮时,不准车辆,行人通行。(4) 绿色箭头灯亮时,准行车辆按箭头所示方向通行。(5) 黄灯闪烁时,车辆行人在确保安全的原则下可以通行。信号灯的出现,使交通得到有效管制,对于疏导交通流量、提高道路通行能力和减少交通事故有明显效果。第一章方案论证与设计本设计以单片机为核心,以LED数码管作为倒计时指示,根据设计的要求我们考虑了各功能模块的几种设计方案,以求最佳方案,实现实时显示系统各种状态,系统还增设了根据交通拥挤情况可分别设置主干道和次干道的通行时间,以提高效率,缓减交通拥挤。系统总体设计框图如图1-1所示。交通灯控制的框图如下图
8、所示,主要有控制电路、按键电路、晶振电路、复位电路、显示电路、电源电路等电路组成。电源电路时钟电路复位电路显示电路信号灯控制电路按键控制电路单片机交通灯总体设计图图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主程序流程图 开始系统初始化东西准行,南北禁行(55s)东西亮绿灯,南北亮红灯调显示子程序扫描键盘有键按下?调用键盘子程序东西,南北方向换向有键按下?东西准行,南北禁行(5s)扫描键盘调用子程序东西亮绿灯,南北亮红灯。同时黄灯进行闪烁调用键盘子程序如图3-1主程序流程图3.1.2定时中断子程序开始定时初始化设定中断的循环次数定时开始定时时间到?产生中断循环次数减1循环次数=1?重新给循环次数赋初值
20、调显示子程序给定时器赋初值返回图3-2定时中断子程序流程图3.1.3显示子程序流程图开始取倒计时数值提取倒计时数据的十位数获取十位数字型码并送到P0口提取倒计时数据的个位数获取个位数字型码并送到P2口调1s延时子程序返回图3-3显示子程序流程图3.1.4按键子程序流程图开始键盘扫描有键按下K1按下K3按下K3按下关闭倒计时显示黄灯进行5s闪烁东西南北均变成红灯K1按下关闭倒计时显示关闭倒计时显示黄灯进行5s闪烁黄灯进行5s闪烁东西变绿灯南北变红灯南北变绿灯东西变红灯K2键按下K3键按下返回图3-4按键子程序流程图第四章系统软件程序设计*;*1秒延时子程序*;*;DELAY:MOV R1,#0A
21、H DELAY0:MOV R2,#0C8HDELAY1:MOV R3,#0F8HNOPDELAY2:DJNZ R3,DELAY2DJNZ 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;关断倒
22、计时显示装置MOV P2,#0FFHLCALL XXLCALL YY1SJMP READKEYK3:MOV P0,#0FFH;关断倒计时显示装置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;判
23、断K1键是否仍然按下LCALL QWYY1:MOV P1,#0F3H;东西方向亮绿灯,南北方向亮红灯MOV A,#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;重新给循
24、环次数赋值LCALL DISPBN:MOV TH1,#9EH;重新给定时器T1赋初值MOV TL1,#58HRETI;*;*显示子程序*;*;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
25、 A,31HMOV P2,A;将个位数字型码送到P2口LCALL DELAYRETTAB: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;启
26、动定时器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;交通灯东西绿,南北红同时加亮黄灯MOV 20H,#02HNN:MOV A,P3CJNE A,#0FFH,READKEYSETB P1.1;黄灯进行5秒闪烁SETB P1.4 LCALL DISP CLR P1.1CLR P1.4 LCALL DISP;调显示子程序DJNZ 20H,N
27、NSETB P1.1SETB P1.4 LCALL DISP MOV P1,#0DEH;交通灯南北绿,东西红MOV R7,#37HPP:LCALL DISPMOV A,P3CJNE A,#0FFH,READKEYDJNZ R7,PPMOV P1,#0CCH;交通灯南北绿,东西红同时加亮黄灯MOV 20H,#02HQQ:MOV A,P3;扫描P3口CJNE A,#0FFH,READKEYSETB P1.1SETB P1.4 LCALL DISPCLR P1.1CLR P1.4 LCALL DISPDJNZ 20H,QQSETB P1.1SETB P1.4 LCALL DISP LCALL QWQ
28、W:SJMP HERERET第五章系统仿真1 PROTUES软件介绍Proteus软件是Labcenter Electronics公司的一款电路设计与仿真软件,它包括ISIS、ARES等软件模块,ARES模块主要用来完成PCB的设计,而ISIS模块用来完成电路原理图的布图与仿真。Proteus的软件仿真基于VSM技术,它与其他软件最大的不同也是最大的优势就在于它能仿真大量的单片机芯片,比如MCS-51系列、PIC系列等等,以及单片机外围电路,比如键盘、LED、LCD等等。通过Proteus软件的使用我们能够轻易地获得一个功能齐全、实用方便的单片机实验室。4.2 交通灯系统PROTUES仿真用P
29、ROTUES软件,根据交通灯的原理图,画出仿真图,得到的图如下所示第五章 调试与功能说明5.1 硬件调试系统的硬件调试一般分下面三个步骤。第一步:目测。检查外部的各种元件或者电路是否有断点。第二步:用万用表检测,先用万用表复核目测中有疑问的连接点,在检测各种电源线与地线之间是否有短路现象。第三步:加电检测。给板加电,检测所有插座或者器件的电源是否符合要求的值。(1) 倒计时显示电路调试给硬件电路接上电源,这时数码管全灭,用一根导线的一端与地线相连,另一端一次碰触AT89C51的P0和P2口,一边碰触一边察看七段数码管,正常情况下可以看到每碰触一个引脚,对应的一段数码管点亮。若不亮,仔细查看与该
30、脚相连的电阻及数码管是否虚焊。(2) 交通灯电路的调试需要说明的是,由于整个设计是用发光二极管来代替交通灯,需要低电平“0”来驱动点亮,在实际应用中,应使P1口输出高电平“1”来驱动继电器导通,从而使220V的交通灯点亮。这是试验与实际应用比较容易混淆的地方,应该引起注意。同时,在进行交通灯调试应注意VD1VD12这12个发光二极管不能焊反。(3) 紧急通行电路调试仔细检查K1、K2、K3三个按键是否焊牢,并且三个键是否与相应的I/O借口对应准确。5.2软件调试5.2.1静态调试静态调试是指对程序进行人工书面检查。静态调试时要仔细阅读程序及其文档,经过结构分析、功能分析、逻辑分析、接口分析、语
31、法分析以及逐行检查。(1) 检查语法错误产生语法错误的原因主要有两个:一是键入错误,此错误如同写文章时的“笔误”;二是由于对语法规则不熟悉,见书后错误信息、各种限制、全局变量与局部变量、先后左右的原则等,这些虽不是系统规定,但也是语法的一部分,应作为专项予以检查。(2) 跟踪过程此时的跟踪程序流程,即把自己当作计算机。给定一组输入数据后,顺序执行每条语句,考察所得结果,寻找错误。5.2.2动态调试动态调试是指实际上机运行程序进行调试。源程序上机运行,语言系统及操作系统会在程序有故障时给出信息,常见的故障分为以下几种情况:(1) 没有通过编译。(2) 没有通过连接编译。(3) 程序的运行过程因故
32、障而停止。(4) 程序只输出部分结果。对这部分结果进行分析,可大致了解程序被执行的逻辑,或程序在什么地方中断。(5) 程序执行了很长时间没结果。附录整机电路结束语本设计的硬件电路较简单,硬件电路容易实现。设计出满足系统功能要求的程序是该设计任务的重点和难点,该设计要求实现的功能有:(1) 能够控制四个路口的交通灯按照既定的功能要求进行有规律的变化。(2) 四个路口各有一个倒计时显示装置,并在倒计时还剩5s时点亮闪烁的黄灯以起禁示作用。(3) 设置三个按键分别处理3种不同的紧急情况。设计该系统的控制程序应遵循一定的控制规律。例如,南北方向之间,东西方向之间交通的变化规律是一样的;此外,四个路口的
33、倒计时显示装置的时间参数的变化规律也是一致的,等等。致谢我在这一次毕业设计过程中,很是受益匪浅。通过对自己在大学三年时间里所学的知识的回顾,并充分发挥对所学知识的理解和对毕业设计的思考及书面表达能力,最终完成了。这为自己今后进一步深化学习,积累了一定宝贵的经验。撰写论文的过程也是专业知识的学习过程,它使我运用已有的专业基础知识,对其进行设计,分析和解决一个理论问题或实际问题,把知识转化为能力的实际训练。培养了我运用所学知识解决实际问题的能力。通过这次课程设计我发现,只有理论水平提高了;才能够将课本知识与实践相整合,理论知识服务于教学实践,以增强自己的动手能力。这个设计在现实社会中也存在着一定的
34、价值和意义,从中我获得很深刻的经验。通过这次课程设计,我们知道了理论和实际的距离,也知道了理论和实际想结合的重要性,也从中得知了很多书本上无法得知的知识。我们的学习不但要立足于书本,以解决理论和实际教学中的实际问题为目的,还要以实践相结合,理论问题即实践课题,解决问题即课程研究,学生自己就是一个专家,通过自己的手来解决问题比用脑子解决问题更加深刻。学习就应该采取理论与实践结合的方式,理论的问题,也就是实践性的课题。这种做法既有助于完成理论知识的巩固,又有助于带动实践,解决实际问题,加强我们的动手能力和解决问题的关键。参考文献1李海滨.片春媛.许瑞雪.单片机技术课程设计与项目实例,中国电力出版社,20092王静霞.单片机应用技术.电子工业出版社,20093雄建云.Protel99 se EDA技术及应用.北京机械工业出版社,20074曹天汉.单片机原理与接口技术,电子工业出版社,20095何立民.单片机高等教程.北京航空航天大学出版社,2000 6 何立民.单片机应用系统设计系统配置与接口技术,北京航空航天大学出版社,2001论文现存在问题:【1】整机电路图未符上【2】流程图的判断未标Y,N【3】目录上的虚线不一致