




已阅读5页,还剩26页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要当今,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。而近年来,中国车辆数量不断增加,这以为着交通控制在未来的交通管理中起着越来越重要的作用。智能交通灯的管理比重修一条马路无论在经济、交通运行速率上都有很好的效益、更加节约资源;使交管人员有更多的精力投入到管理整个城市交通控制,带来更大的经济和社会效益,为创造美好的城市交通形象发挥更多的作用。关键词:单片机交通灯第页1目录摘要.1第一章绪论.21.1单片机交通灯电路概述.21.2设计任务.21.3方案介绍.31.3.1方案设计思想.31.3.2方案示意图.4第二章交通灯系统硬件设计.52.1系统框架图.52.3单元电路的分析与介绍.62.3.1MSC-51芯片简介.62.3.2LED显示数码管.92.3.3晶体振荡器.102.3.4复位电路.11第三章交通灯系统软件设计.123.1主程序流程图.123.2软件延时程序.123.3中断程序.133.3.1定时器中断.133.3.2外部中断.143.4数码显示管倒计时程序.143.5LED工作程序.15第四章系统工作原理.16第五章结论.18致谢.19参考文献.20附录1.21附录2.22第页第一章绪论1.1单片机交通灯电路概述近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。交通信号灯控制方式很多。本系统采用MSC-51系列单片机AT89C51为中心器件来设计交通灯控制器,实现了能根据实际车流量通过8051芯片的P2口设置红、绿灯燃亮时间的功能,红绿灯循环点亮,倒计时为5秒时黄灯闪烁警示(交通灯信号通过P3口输出,显示时间直接通过P0和P2口输出至双位数码管);外加紧急事件中断处理。本系统只在基础交通灯上加了一个紧急通道开关,其实用性只适合中小型城市,使用范围小,还有待改进。1.2设计任务东西(A)、南北(B)两干道交于一个十字路口,各干道有一组红、黄、绿三个指示灯,指挥车辆和行人安全通行。红灯亮禁止通行,绿灯亮允许通行。红灯的设计时间为40秒,黄灯为5秒,绿灯为34秒。第页31.3方案介绍1.3.1方案设计思想状态A干道灯显示B干道灯显示东西方向红灯(40s)黄灯(5s)东西方向红灯(34s)绿灯(34s)南北方向黄灯(5s)红灯(40s)南北方向绿灯(34s)红灯(34s)本方案分三步:1、要建立两路信号灯的控制系统,本设计采用AT89C51芯片通过组合逻辑控制两路灯的显示关系。2、建立显示控制系统,本系统采用MSC-51系列单片机AT89C51为中心器件来设计交通灯控制器,实现了能通过8051芯片的P0和P1口分别设置南北与东西路道的红、绿、黄灯燃亮时间的功能,红绿黄灯循环点亮。3、建立反馈信息部分,主要解决显示时间和灯控的同步问题,采用倒计时系统,通过紧急中断和复位电路同步反馈到显示系统的置数环节中。注意:虽然本设计没有扩展I/O端口,但实际上8051的4个8位I/O端口中,真正能提供借用的只有P1口,因为P2和P0口通常用于传送外部传送地址和数据,P3口也有它的第二功能。因此,8051通常需要扩展。由于我们用外部输入设定红绿灯倒计时初值、数码管的输出显示、红绿黄信号灯的显示都要用到一个I/O端口,显然8051的端口是不够,需要扩展。扩展的方法有两种:(1)借用外部RAM地址来扩展I/O端口;(2)采用I/O接口新片来扩充。第页1.3.2方案示意图BB东西红灯亮东西绿灯亮AA(车辆禁止通行)(车辆可直线行驶和左转弯)南北绿灯亮南北红灯亮(可以直线行驶和左转弯)(车辆禁止通行)图1.1图1.2B东西红灯亮A(紧急车辆通行状态)南北红灯亮图1.3由上面三幅图可以知道,图1为东西(A)红灯、南北(B)绿灯状态下的正常通行状态,当南北(B)为绿灯状态时,南北方向的车辆可以通过并且可左转弯;图2同图1一样是属于正常通行状态,不过是东西(A)为绿灯、南北(B)红灯;图3为紧急车辆通行状态,当遇到紧急车辆需要通过的时候,四周红灯全亮,紧急车辆可以从十字路口通行。第页5第2章交通灯系统硬件设计此设计采用的是AT89C51单片机为内部控制芯片,外部接有按键中断电路以及复位电路以外,还有4个两位数码管,用以倒计时和4个路口的灯,共12个LED灯。2.1系统框架图电路板一块,AT89S51单片机一片,八段LED数码管四个。发光二极管12个(4个绿的,4个红,4个黄的),8个电阻,2个电容,1个晶振,1个电解电容,1个按键开关。(系统结构框图:图2.1)图2.1AT89C51外部晶体振荡电路按键复位电路数码显示管按键外部中断LED灯第页2.3单元电路的分析与介绍2.3.1MSC-51芯片简介MCS-51单片机内部结构8051是MCS-51系列单片机的典型产品,我们以这一代表性的机型进行系统的讲解。8051单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:中央处理器:中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。数据存储器(RAM)8051内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。图2.2第页7程序存储器(ROM):8051共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。定时/计数器(ROM):8051有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。并行输入输出(I/O)口:8051共有4组8位I/O口(P0、P1、P2或P3),用于对外部数据的传输。全双工串行口:8051内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。中断系统:8051具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。时钟电路:8051内置最高频率达12MHz的时钟电路,用于产生整个单片机运行的脉冲时序,但8051单片机需外置振荡电容。下图是MCS-51系列单片机的内部结构示意图2.3。图2.3MCS-51的引脚说明:第页MCS-51系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。现在我们对这些引脚的功能加以说明:如图2.4图2.4引脚9:RESET/Vpd复位信号复用脚,当8051通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系统即初始复位。初始化后,程序计数器PC指向0000H,P0-P3输出口全部为高电平,堆栈指针写入07H,其它专用寄存器被清“0”。RESET由高电平下降为低电平后,系统即从0000H地址开始执行程序。然而,初始复位不改变RAM(包括工作寄存器R0-R7)的状态,8051的初始态。8051的复位方式可以是自动复位,也可以是手动复位,见下图2.5。此外,RESET/Vpd还是一复用脚,Vcc掉电其间,此脚可接上备用电源,以保证单片机内部RAM的数据不丢失。第页9图2.5引脚30:ALE/当访问外部程序器时,ALE(地址锁存)的输出用于锁存地址的低位字节。而访问内部程序存储器时,ALE端将有一个1/6时钟频率的正脉冲信号,这个信号可以用于识别单片机是否工作,也可以当作一个时钟向外输出。更有一个特点,当访问外部程序存储器,ALE会跳过一个脉冲。如果单片机是EPROM,在编程其间,将用于输入编程脉冲。引脚29:当访问外部程序存储器时,此脚输出负脉冲选通信号,PC的16位地址数据将出现在P0和P2口上,外部程序存储器则把指令数据放到P0口上,由CPU读入并执行。引脚31:EA/Vpp程序存储器的内外部选通线,8051和8751单片机,内置有4kB的程序存储器,当EA为高电平并且程序地址小于4kB时,读取内部程序存储器指令数据,而超过4kB地址则读取外部指令数据。如EA为低电平,则不管地址大小,一律读取外部程序存储器指令。显然,对内部无程序存储器的8031,EA端必须接地。2.3.2LED显示数码管八段LED显示器由八个发光二极管组成。其中7个长条形的发光管排列成“日”字形,另一个圆点形的放光管在显示器的右下角作为显示小数点用,它能显示各种数字及部分英文字母。LED显示器有两种不同的形式:一种是8个发光二极管的阳极都连在一起的,称为共阳极LED显示器如图2-2所示;另一种是8个发光二极管的阴极都连在一起的,称为共阴极LED显示器。LED数码管结构原理图:(如图2.6、2.7、2.8)第页图2.6高电平驱动(共阴极)图2.7低电平驱动(共阳极)图2.8八段LED数码管2.3.3晶体振荡器石英晶体振荡器的特点是振荡频率准确、电路结构简单、频率易调整,作用是为系统提供基本的时钟信号。我们在晶体某一方向加一电场,从而在与此垂直的方向产生机械振动,有了机械振动,就会在相应的垂直面上产生电场,从而使机械振动和电场互为因果,这种循环过程一直持续到晶体的机械强度限制时,才达到最后稳定,这种压电谐振的频率即为晶体振荡器的固有频率。振荡器特性,XTAL1和XTAL2分别为反向放大器的输入和输出。该反晶体向放第页11大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。在XTAL1和XTAL2引脚上外接定时元件就能构成自激振荡电路。定时元件通常采用石英晶体和电容组成的并联谐振电路。电容器C1和C2主要起频率微调作用。图2.92.3.4复位电路89C51的复位时由外部的复位电路来实现的。复位引脚RST通过一个施密特触发器用来抑制噪声,施密特触发器的输出电平由复位电路采样一次,然后才能得到内部复位操作所需要的信号。本设计是采用上电自动复位,上电自动复位时通过外部复位电路的电容充电来实现的。只要VCC的上升时间不超过1ms,就可以实现自动上电复位。时钟频率用12MHz时C取20PF。图2.10第页第三章交通灯系统软件设计3.1主程序流程图开始if(cc=82)YNcc=0进入定时器中断if(aa=20)YNaa+;if(cc=?)while(1)执行if下面的语句aa=0;cc+;3.2软件延时程序在整个程序里面,如在上一句命令与下一句命令执行之间(上一句命令执行完后,间隔一段时间再执行下面一句命令),产生的中间时间差,就是延时程序所起到的作用。在C语言中,延时程序,就是一种利用循环执行一段命令,以起到延时的功能。具体的延时程序分析:voiddelay(uintz)/带参数的延时函数ucharx,y;/定义两个变量for(x=z;x0;x-)/循环延时第页13for(y=110;y0;y-);/循环延时3.3中断程序3.3.1定时器中断在main函数中的if(cc=82)【82是红黄绿三灯循环一次所需的时间】来判断语句中的cc是用来控制数码显示管与LED灯工作的。部分程序如下:voidtimer0()interrupt1/定时器0的中断函数TH0=(65536-50000)/256;/重装计数初值TL0=(65536-50000)%256;/重装计数初值aa+;if(aa=20)/判断定时1分钟是否到aa=0;/计数次数清0if(cc=0)/南北亮红灯40秒,东西亮黄灯5秒DXY=0;/东西的黄灯亮DXG=1;/东西的绿灯不亮DXR=1;/东西的红灯不亮NBY=1;/南北的黄灯不亮NBG=1;/南北的绿灯不亮NBR=0;/南北的红灯亮DXtemp=5;/东西的黄灯亮5秒NBtemp=40;/南北的红灯亮40秒第页3.3.2外部中断当由于紧急事件需要对道路进行长时间中断时,就要外加一个外部中断,以保持该道路的畅通。代码如下:voidJJZD()interrupt0/紧急中断程序,南北东西都亮红灯DXY=1;/东西的黄灯不亮DXG=1;/东西的绿灯不亮DXR=0;/东西的红灯亮NBY=1;/南北的黄灯不亮NBG=1;/南北的绿灯不亮NBR=0;/南北的红灯亮displayNB(0,0);/南北数码管都显示0displayDX(0,0);/东西数码管都显示0cc=0;/重最开始显示3.4数码显示管倒计时程序在十字路口,由于东西、南北方向的灯亮时间各不相同(参考1.3.1表格),就只能单独编写东西、南北数码显示管倒计时程序(其中黄灯时间5秒)。然后利用函数调用来实现显示。如下为南北(东西亦同)方向的显示程序。如下:voidfenjieNB()/南北数码管显示数字的分解函数NBshi=NBtemp/10;/将要显示的时间的十位赋给变量NBge=NBtemp%10;/将要显示的时间的个位赋给变量NBtemp-;第页15voiddisplayNB(ucharNBshi,ucharNBge)/带参数的数码管显示函数/显示南北十位P2=0xfe;P0=tableNBshi;delay(5);/显示南北个位P2=0xfd;P0=tableNBge;delay(15);3.5LED工作程序东西、南北方向的灯交替点亮,可参看1.3.1表格。下面为部分程序:if(cc=0)/南北亮红灯40秒,东西亮黄灯5秒DXY=0;/东西的黄灯亮DXG=1;/东西的绿灯不亮DXR=1;/东西的红灯不亮NBY=1;/南北的黄灯不亮NBG=1;/南北的绿灯不亮NBR=0;/南北的红灯亮DXtemp=5;/东西的黄灯亮5秒NBtemp=40;/南北的红灯亮40秒第页第四章系统工作原理东西、南北两干道交于一个十字路口,各干道有一组红、黄、绿三色的指示灯,指挥车辆和行人安全通行。红灯亮禁止通行,绿灯亮允许通行。黄灯亮提示人们注意红、绿灯的状态即将切换,且黄灯燃亮时间为东西、南北两干道的公共停车时间,外加紧急事件中断处理,如表2。表2表2说明:(1)当东西方向为红灯,此道车辆禁止通行,东西道行人可通过,时间为40秒;南北道为绿灯,此道车辆通过,行人禁止通行,时间为34秒。(2)黄灯闪烁5秒,警示车辆和行人红、绿灯的状态即将切换。(3)当东西方向为绿灯,此道车辆通行,时间为34秒;南北方向为红灯,南北道车辆禁止通过,行人通行,时间为40秒。(4)当由于紧急需要时,就要对道路进行长时间中断。(5)这样如上表的时间和红、绿、黄出现的顺序依次出现,这样行人和车辆就能安全畅通的通行。调试程序打开Keil软件,新建工程;选择芯片;新建文档,把编写好代码写入文档并保存了ASM文件;把保存的文档加载到SourceGroup;编译程序;设置转换成16进制;5S/40S34S/34S40S/5S34S/34S紧急中断东西道黄灯亮绿灯亮红灯亮红灯亮红灯亮南北道红灯亮红灯亮黄灯亮绿灯亮红灯亮第页17运行程序的结果;把编写好的16进制文件(*.hex)输入单片机AT89C51仿真器和对其进行初始化。给实验板进行通电,观察运行结果,不一致则跳到第一步进行反复调试,直到与预定目的一致。通电以后,东西、南北方向的时间均递减,5秒以后,东西方向的5秒用完,变成东西左转、南北各34秒,此后,时间显示和红绿灯不再变化,一直保持这一状态。第页第五章结论本系统采用MSC-51系列单片机AT89C51为中心器件来设计交通灯控制器,实现了能根据实际车流量通过8051芯片的P2口设置红、绿灯燃亮时间的功能,红绿灯循环点亮,倒计时为5秒时黄灯闪烁警示(交通灯信号通过P3口输出,显示时间直接通过P0和P2口输出至双位数码管),外加紧急事件中断处理。系统不足之处不能控制车的左、右转、以及自动根据车流改变红绿灯时间等。这是由于本身地理位子以及车流量情况所定,如果有需要可以设计扩充原系统来实现。但是在这次毕业设计中我发现自己的看法有点太片面。毕业设计不仅是对前面所学知识的一种检验,而且也是对自己能力的一种提高。通过这次毕业设计使我明白了自己原来知识还比较欠缺,自己要学习的东西还太多,以前老是觉得自己什么东西都会,什么东西都懂,有点眼高手低,学习是一个长期积累的过程,在以后的工作、生活中都应该不断的学习,努力提高自己知识和综合素质。更使我得到了一次用专业知识、专业技能分析和解决问题全面系统的锻炼。使我在单片机的基本原理、单片机应用系统开发过程,以及在常用编程设计思路技巧(特别是C语言)的掌握方面都能向前迈了一大步,为日后成为合格的应用型人才打下良好的基础。第页19致谢在这里,我首先向我的指导老师张万良表示深深的感谢,同时感谢我的同学在毕业设计中给我的帮助和鼓励。在整个毕业设计过程中,他们都给予了我极大的关心和帮助,并对我的毕业设计进行了悉心的指导。使我获得了丰富的理论知识,极大地提高了实践能力,并对当前电子领域的研究状况和发展方向有了一定的了解,单片机领域这对我今后进一步学习计算机方面的知识有极大的帮助。我感谢大学三年来所有教过我的计算机工程系的老师们,是他们传授了有用的专业知识给我,使我在整个毕业设计过程中能游刃有余的发挥,同时也感谢我们计算机工程系为我们提供了良好的上机环境,在此向他们致以深深的谢意!最后,我忠心地感谢单片机组的其它同学以及各位老师的指导和支持,在未来的工作和学习中,我将以更好的成绩来回报各位领导、老师和同学。第页参考文献1李朝青.单片机原理及接口技术(简明修订版).杭州:北京航空航天大学出版社,19982李广弟.单片机基础.北京:北京航空航天大学出版社,19943胡文金,单片机应用技术实训教程,重庆大学出版社,2005年2月。4胡辉单片机原理与应用,中国水利出版社,2007。5刘守义单片机应用技术,西安电子科技大学出版社第页21附录1交通灯控制线路图第页附录2原程序代码#include#defineuintunsignedint/宏定义#defineucharunsignedchar/宏定义ucharaa,cc,NBshi,NBge,DXshi,DXge,NBtemp,DXtemp;/定义变量sbitNBR=P30;/南北红灯sbitNBY=P31;/南北黄灯sbitNBG=P34;/南北绿灯sbitDXY=P35;/东西黄灯sbitDXG=P36;/东西绿灯sbitDXR=P37;/东西红灯ucharcodetable=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/数字的代码从0-9voidinit();/初始化子程序的申明voiddisplayNB(ucharNBshi,ucharNBge);/显示子程序的申明voiddelay(uintz);/延时子程序的申明voidfenjieNB();/南北数码管显示数字的分解函数voidfenjieDX();/东西数码管显示数字的分解函数voidmain()第页23init();/初始化子程序while(1)if(cc=82)/循环一次结束cc=0;/从新进行下一次循环voiddelay(uintz)/带参数的延时函数ucharx,y;/定义两个变量for(x=z;x0;x-)/循环延时for(y=110;y0;y-);/循环延时voidinit()/初始化子程序EA=1;/开总中断ET0=1;/允许定时器0中断EX0=1;/允许外部中断0中断TR0=1;/启动定时器0TMOD=0x01;/设置定时器0工作方式1TH0=(65536-50000)/256;/给定时器的高8为赋初值TL0=(65536-50000)%256;/给定时器的低8为赋初值第页voidfenjieNB()/南北数码管显示数字的分解函数NBshi=NBtemp/10;/将要显示的时间的十位赋给变量NBge=NBtemp%10;/将要显示的时间的个位赋给变量NBtemp-;voidfenjieDX()/东西数码管显示数字的分解函数DXshi=DXtemp/10;DXge=DXtemp%10;DXtemp-;voiddisplayNB(ucharNBshi,ucharNBge)/带参数的数码管显示函数/显示南北十位P2=0xfe;P0=tableNBshi;delay(5);/显示南北个位P2=0xfd;P0=tableNBge;delay(15);第页25voiddisplayDX(ucharDXshi,ucharDXge)/东西十位P2=0xfb;P1=tableDXshi;delay(5);/东西个位P2=0xf7;P1=tableDXge;delay(5);voidtimer0()interrupt1/定时器0的中断函数TH0=(6
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024江西司法警官职业学院招聘笔试真题及参考答案详解1套
- 电工中级取证培训教程课件:继电器控制与机床电路装调维修
- 幼儿园跟车老师管理制度
- 幼儿实训室安全管理制度
- 应急管理指挥中管理制度
- 张掖市科级干部管理制度
- 律师事务所车辆管理制度
- 德州市内网安全管理制度
- 房屋建筑屋资产管理制度
- 抢险队伍及物资管理制度
- 喘息性支气管肺炎护理
- 《小儿腹痛》课件
- 《无人机飞行操控技术》项目5 无人直升机飞行操控
- 行政职业能力测验公务员考试行测试卷及答案指导(2025年)
- 夏令营安全管理工作制度
- 2024年黑龙江、吉林、辽宁高考生物试卷(含答案解析)
- 5【选必下】高中语文部编版教材选必下册课内文言文精练
- 中医疾病症状评分总表(终极版)
- 实验室安全教育课件
- 透析病人不安腿综合征
- 市政病媒生物防制基础知识练习题及答案(200题)
评论
0/150
提交评论