大学毕业论文--基于单片机的交通灯控制系统设计_第1页
大学毕业论文--基于单片机的交通灯控制系统设计_第2页
大学毕业论文--基于单片机的交通灯控制系统设计_第3页
大学毕业论文--基于单片机的交通灯控制系统设计_第4页
大学毕业论文--基于单片机的交通灯控制系统设计_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

IIAbstractWhenyoupassanintersection,haveyounoticedthatvehiclesandpedestriansthroughtheintersectionmethodical.Suchanorderlysituationrelyontoachieveit?Relyonthetrafficlightcontrolsystem.Thispaperwillintr-oduceasingle-chipmicrocomputerATC89C51asthemaincontrolunitsystem.Thr-oughtheSTC89C51microcontrollerchipP1andP2portrespectivelycontroltheeast-westandnorth-southdirectionredyellowgreenlight.ThroughSTC89C51microcontrollerRXDandTXDcontroldigitaltubedisplaytime.Lightemittingdiodeisusedtorealizetrafficlightslit,achievedbythedigitaltimedisplay.Thesystemnotonlyhasthebasicfunctionofthetrafficlightsandthecountdown,youcanalsothroughthebuttonsintheeventofanemergencyissettofourdirectionsfortheredlightinemergencymode,canalsothroughthebuttonsinthenightissettothefourdirectionsofyellowlightnightmode,ofcourse,alsocanthroughthebuttontosetthecountdowntimeoftrafficlight,makethesystemmoreinlinewiththeactualsituation.Idesignthetrafficlightcontrolsystemcanbettersimulatethecrossroadsoftraffic,thepedestriansandvehiclestoorderlytraffic.Idesignedthesystemoflowcost,simpleoperation,stableperformance,strongpracticability.Keywords:TrafficLightControlSystemSCMAT89C51DigitalpipeLED目录TOC\o"1-3"\h\u3165摘要 I18454Abstract II25404绪论 19201系统设计方案论证 358281.1设计方案 3317321.2功能概述 4171422系统硬件设计 5210362.1交通灯控制系统组成 5245842.1.1ATC89C51芯片 529302.1.2交通灯控制系统构成 8184292.2各单元电路模块功能 9160762.2.1时钟电路模块 917082.2.2复位电路模块 9130772.2.3主控制系统模块 10181622.2.4信号灯输出控制模块 1142222.2.5时间显示电路模块 11294702.2.6系统电源模块电路 12249302.2.7按键输入模块 1362363系统软件设计 14249723.1软件总体流程图 14271843.2延时的设定 1584773.2.1计数器初值计算 15282333.2.2相应程序代码 15216544系统调试分析及结果 2133744.1电路板实物的制作 21251144.1.1印制电路板PCB图的绘制 21255134.1.2实物的制做 21104214.2系统硬件调试 22236424.3系统软件调试 22228464.4系统总体调试 2331373结论 2528763致谢 2623732参考文献 2723954附录1元器件清单 2915275附录2总体电路原理图、PCB 3010232附录3程序 31绪论国内外交通系统发展现状随着现代社会对交通运输的日趋依赖,交通控制系统受到普遍的重视。近年来,英国、美国等西方国家均在某些大城市建立了智能的交通控制系统。一般的交通控制系统中,大部分在路口装有车辆检测器,由各路口的控制设备或着工作人员将交通控制参数通过电话线、电缆、光纤或无线网络等方式输入到微处理器,用小型计算机控制。尤其是伴随着信息技术的发展,交通控制的概念已从交通管理者的行为改变为交通管理者和道路使用者共同的行为,从而使得交通的最优化向全局最优发展[1]。在这些发展中,除了新设备的应用外,数据的采集、传输、处理、存储与发送等技术的发展也起了关键的作用。与国外先进的控制系统相比,我国的交通控制系统比较落后,目前我国的城市交通有以下问题:管理不力,秩序混乱;没有科学而合理有效的城市交通监控系统。从而造就了道路的通行能力远低于设计时候所预期的要求并且波动性比较大,交通事故发生率高等问题。城市交通的解决方法城市交通拥挤有人说是因为道路狭窄引起的,所以有些人建议加宽道路或者架设高架桥来缓解交通压力。但是,过不了多久加宽的道路又陷入了拥挤。一般来说新加宽的道路不会改变原来的拥挤状况,很快新的交通量占据新增的道路设施,这部分潜在的交通量受制于以前道路供给而未能得到实现的。由于加宽道路不能从根本上解决拥挤的城市交通问题,所以就开始寻求新的解决方法。随着人们对控制理论的深入研究与探索以及科技的不断发展,利用微计算机的控制系统对解决交通问题越来越重要。现如今国内外开发了许多交通控制系统为缓解交通压力做出了突出贡献。伴随着人工智能的兴起,人们开始将人工智能引入到交通灯控制系统当中。经过这么多年的实践研究和探索,人们相信智能控制是缓解城市交通问题的强力工具。课题研究范围及意义本文利用单片机自动控制交通灯及时间倒计时显示的方法,将整个系统集成在单片机上,使产品具有成本低和轻便性的特点。设计过程包括硬件电路和程序两大部分。硬件电路其结构比较简单,主要包括核心器件ATC89C51单片机,12只二极管组成的模拟交通灯、复位电路、振荡电路、数码管显示模块。单片机开发中不仅仅有硬件设计同样需要软件编程,我设计的系统用软件Keil来进行程序的编程。相比硬件设计,软件部分设计较为复杂,需要同时考虑模拟红绿黄三色灯的控制、倒计时时间的显示、紧急情况下的紧急开关等问题。并且还需要自己具有基本的C基础和应有的思维能力以及比较强的逻辑能力。基于单片机的交通灯控制系统设计凸显了它的意义。通过交通灯控制系统的设计,使我对C语言的编程有更深层次的认识,同时将理论同社会实践有效的结合一起,提高了自己的动手能力和思考能力。1系统设计方案论证1.1设计方案方案一:控制系统主要控制东西方向和南北方向交通状况,系统以单片机芯片STC89C51为主控单元,通过控制三种颜色LED的亮灭来来指导各车道的通行,上电时复位电路使系统进入运行状态。总体设计框图如图1-1所示:STC89C51STC89C51单片机两段数码管倒计时显示电路两段数码管倒计时显示电路复位电路晶振电路晶振电路图1-1方案一设计框图方案二:采用STC89C51单片机为控制器,采用2段数码管作为倒计时显示;车道指示灯采用三色发光二极管,LED显示采用动态扫描,用来节省端口[2]。用手动按键通过中断完成紧急情况下车辆的通行。本方案中芯片端口刚好满足要求。本方案电路设计简单,显示亮度高,耗电少,可靠性高,但是占用单片机资源太多,整个框图设计如图1-2所示:P1P2INT1P0P3P3南北通行灯东西通行灯2位LED显示器器列扫描驱动上电复位电路晶振电路图1-2方案二设计框图方案三:采用STC89C51单片机为主控单元,用单块LCD对东西方向和南北方向车道通行进行倒计时显示。这种方案设计端口和硬件的需求最少,但是亮度太暗,所以较少采用。对上述三种方案的优缺点分析可知,方案一最好。1.2功能概述在东西方向和南北方向的十字路口分别设立红黄绿交通指示灯,用数码管倒计时显示。正常情况下两个主干线上的红黄绿灯进行转换。红灯亮表示禁止通行,绿灯亮表示可以通行,每次绿灯变红灯前,黄灯亮5秒,方便那些未能及时通过十字路口的车辆能继续通过。十字路口设立数码管具有倒计时功能,方便人们直观的把握通过时间。本设计也考虑到紧急情况,当按下紧急模式按键后,四个方向红灯都会常亮。对于夜晚车流量比较少,本设计设计了夜晚模式,按下按键后四个方向黄灯会常亮。2系统硬件设计2.1交通灯控制系统组成2.1.1ATC89C51芯片选用的ATC89C51与同系列的AT89C51在功能上有明显的提高,最突出是的可以实现在线的编程。用于实现系统的总的控制。其主要功能列举如下:(1)为一般控制应用的8位单片机(2)内部具有时钟振荡器(3)内部程式存储器(ROM)为4KB(4)内部数据存储器(RAM)为128B(5)外部程序存储器可扩充至64KB(6)外部数据存储器可扩充至64KB(7)32条双向输入输出线,且每条均可以单独做I/O的控制(8)5个中断向量源(9)2组独立的16位定时器(10)1个全双工串行通信端口(11)单芯片提供位逻辑运算指令ATC89C51各引脚功能介绍:如图2-1图2-1ATC89C51芯片VCC:ATC89C51电源正端输入,接+5V。VSS:电源地端。XTAL1:单芯片系统时钟的反向放大器输入端。XTAL2:系统时钟的反向放大器输出端,一般在设计上只要在XTAL1和XTAL2上接上一只石英振荡晶体系统就可以动作了,此外可以在两个引脚与地之间加入一个20PF的小电容,可以使系统更稳定,避免噪声干扰而死机。RESET:AT89S51的重置引脚,高电平动作,当要对晶片重置时,只要对此引脚电平提升至高电平并保持两个机器周期以上的时间,AT89S51便能完成系统重置的各项动作,使得内部特殊功能寄存器之内容均被设成已知状态,并且至地址0000H处开始读入程序代码而执行程序。EA/Vpp:"EA"为英文"ExternalAccess"的缩写,表示存取外部程序代码之意,低电平动作,也就是说当此引脚接低电平后,系统会取用外部的程序代码(存于外部EPROM中)来执行程序。因此在8031及8032中,EA引脚必须接低电平,因为其内部无程序存储器空间。如果是使用8751内部程序空间时,此引脚要接成高电平。此外,在将程序代码烧录至8751内部EPROM时,可以利用此引脚来输入21V的烧录高压(Vpp)。ALE/PROG:ALE是英文"AddressLatchEnable"的缩写,表示地址锁存器启用信号。ATAT89S51可以利用这个引脚来触发外部的8位锁存器(如74LS373),将端口0的地址总线(A0~A7)锁进锁存器中,因为ATAT89S51是以多工的方式送出地址及数据。平时在程序执行时ALE引脚的输出频率约是系统工作频率的1/6,因此可以用来驱动其他周边晶片的时基输入。此外在烧录8751程序代码时,此引脚会被当成程序规划的特殊功能来使用。PSEN:此为"ProgramStoreEnable"的缩写,其意为程序储存启用,当8051被设成为读取外部程序代码工作模式时(EA=0),会送出此信号以便取得程序代码,通常这支脚是接到EPROM的OE脚。ATAT89S51可以利用PSEN及RD引脚分别启用存在外部的RAM与EPROM,使得数据存储器与程序存储器可以合并在一起而共用64K的定址范围。PORT0(P0.0~P0.7):端口0是一个8位宽的开路电极(OpenDrain)双向输出入端口,共有8个位,P0.0表示位0,P0.1表示位1,依此类推。其他三个I/O端口(P1、P2、P3)则不具有此电路组态,而是内部有一提升电路,P0在当作I/O用时可以推动8个LS的TTL负载。如果当EA引脚为低电平时(即取用外部程序代码或数据存储器),P0就以多工方式提供地址总线(A0~A7)及数据总线(D0~D7)。设计者必须外加一个锁存器将端口0送出的地址锁住成为A0~A7,再配合端口2所送出的A8~A15合成一组完整的16位地址总线,而定位地址到64K的外部存储器空间。PORT2(P2.0~P2.7):端口2是具有内部提升电路的双向I/O端口,每一个引脚可以推动4个LS的TTL负载,若将端口2的输出设为高电平时,此端口便能当成输入端口来使用。P2除了当作一般I/O端口使用外,若是在ATAT89S51扩充外接程序存储器或数据存储器时,也提供地址总线的高字节A8~A15,这个时候P2便不能当作I/O来使用了。PORT1(P1.0~P1.7):端口1也是具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个LSTTL负载,同样地,若将端口1的输出设为高电平,便是由此端口来输入数据。如果是使用8052或是8032的话,P1.0又当作定时器2的外部脉冲输入脚,而P1.1可以有T2EX功能,可以做外部中断输入的触发引脚。PORT3(P3.0~P3.7):端口3也具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个TTL负载,同时还多工具有其他的额外特殊功能,包括串行通信、外部中断控制、计时计数控制及外部数据存储器内容的读取或写入控制等功能。其引脚分配如下:P3.0:RXD,串行通信输入。P3.1:TXD,串行通信输出。P3.2:INT0,外部中断0输入。P3.3:INT1,外部中断1输入。P3.4:T0,计时计数器0输入。P3.5:T1,计时计数器1输入。P3.6:WR:外部数据存储器的写入信号。P3.7:RD,外部数据存储器的读取信号。2.1.2交通灯控制系统构成电路板一块,芯片ATC89C51一片,2段共阴极数码显示管四个,红黄绿发光二极管各四个,电阻若干,晶振一个,电容若干,按键若干。交通灯控制系统结构框图2-2:按键按键LEDATC89C51LEDATC89C51共阴极数码管共阴极数码管图2-2原理框图系统各部分工作原理:采用单片机的I/O口P0口通过上拉电阻和交通灯相连接,P3.0、P3.1口接到数码管控制位上,控制数码管的显示,程序放在ATC89C51单片机的ROM中来设置初始时间,在十字路口的四组红、黄、绿交通灯中,由单片机的P1.5-P1.7、P1.0-P1.2、P2.5-P2.7、P2.0-P2.2分别控制东西南北方向的三色灯。由于交通灯为发光二极管并且阳极通过限流电阻和电源正极相连,因此I/O口输出低电平时,与之相连的指示灯才会点亮,然后通过数码管倒计时时间。I/O口输出高电平时,相应指示灯会灭。由于ATC89C51本身集成了看门狗指令,当系统出现异常的时候看门狗会发出溢出中断。通过专用端口输出,引起RESET复位信号复位系统。2.2各单元电路模块功能2.2.1时钟电路模块本时钟电路由一个晶体振荡器12MHZ和两个30pF的瓷片电容组成。时钟电路用于产生单片机工作所需的时钟信号,而时序所研究的是指令执行中各信号之间的相互关系。单片机本身就是一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地工作[3]。其电路如图2-3所示:图2-3时钟电路模块2.2.2复位电路模块电容在上接高电平,电阻在下接地,中间为RST。这种复位电路为高电平复位。其工作原理是:通电时,电容两端相当于是短路,于是RST引脚上为高电平,然后电源通过电阻对电容充电,RST端电压慢慢下降,降到一定程度,即为低电平,单片机开始正常工作[4]。其电路如图2-4所示:图2-4复位电路模块2.2.3主控制系统模块主控制器STC89C51单片机是推出的新一代高速/低功耗/超强抗干扰的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可以任意选择。[5]主控制系统模块电路如图2-5:图2-5主控置系统模块电路2.2.4信号灯输出控制模块道口交通灯指示采用红、黄、绿发光二极管进行提示。其图如图2-6所示:图2-6LED显示模块电路2.2.5时间显示电路模块本系统使用数码管完成倒计时显示功能。以方向东西为为例,数码管显示的数值从绿灯的设置时间最大值往下减,每秒钟减1,一直减到0。然后又从红灯的设置时间最大值往下减,一直减到0。接下来又显示绿灯时间,如此循环。系统共有4个二位的LED数码管,分别放置在模拟交通灯上方。道口通行剩余时间采用红色7段数码管显示,采用共阴数码管,如用单片机P0口加上拉电阻驱动,P3.0/P3.1来控制数码管的位。其显示电路如图2-7所示:图2-7数码管显示模块电路2.2.6系统电源模块电路由于该系统中51单片机及二极管工作电压均为5V电压,所以要保证系统稳定可靠的工作,需要设计一个可以稳定提供5V电压的供电系统。本设计采用外置3节5号电池作为系统的供电电源,该系统电源电路设计如图2-8所示:图2-8系统电源电路2.2.7按键输入模块由于该系统具有夜间模式,紧急模式和交通灯倒计时时间设定功能,所有需要加上这些功能键,如下图2-9所示:图2-9按键输入夜间模式:按下夜间模式按键进入,四方向红灯长亮,再次按下按键退出。紧急模式:按下紧急模式按键进入,四方向黄灯闪烁,再次按下按键退出。设定倒计时时间:按下设定键后,进入设定状态,先设定南北方向,再次按下按键设定东西方向,设定好后,按下按键退出,正常运行。3系统软件设计3.1软件总体流程图软件总体设计及流程图见图3-1,主要完成各部分的软件控制和协调。图3-1流程图3.2延时的设定3.2.1计数器初值计算定时器工作时必须给计数器送计数器初值,这个值是送到TH和TL中的。他是以加法记数的,并能从全1到全0时自动产生溢出中断请求。因此,我可以把计数器记满为零所需的计数值设定为C和计数初值设定为TC可得到如下计算通式:TC=M-C式中,M为计数器模值,该值和计数器工作方式有关。在方式0时M为213;在方式1时M的值为216;在方式2和3为28;算法公式:T=(M-TC)T计数或TC=M-T/T计数T计数是单片机时钟周期TCLK的12倍;TC为定时初值如单片机的主脉冲频率为TCLK12MHZ,经过12分频方式0TMAX=213×1微秒=8.192毫秒方式1TMAX=216×1微秒=65.536毫秒显然1秒钟已经超过了计数器的最大定时间,所以只有采用定时器和软件相结合的办法才能解决这个问题.实现1秒的方法:我采用在主程序中设定一个初值为20的软件计数器和使T1定时50毫秒。这样每当T1到50毫秒时CPU就响应它的溢出中断请求,进入他的中断服务子程序。在中断服务子程序中,CPU先使软件计数器减1,然后判断它是否为零。为0表示1秒已到可以返回到输出时间显示程序。3.2.2相应程序代码(1)定时器的设置定时器需定时50毫秒,故T1工作于方式1。初值计算:TC=M-T/T计数=216-50ms/1us=15536=3CBOHSTART:MOVTMOD,#10H;令TO为定时器方式1MOVTH0,#3CH;装入定时器初值MOVTL0,#0BOHSETBEA;打开总中断SETBET1;开T1中断SETBER;启动T1计数器CLRFLAG1CLRFLAG2CLRFLAG3MOVR3,#20H;软件计数器赋初值(2)相应中断服务子程序ORG001BHLJMPDSDORG0030HDSD:INCR3MOVTH0,#3CH;重装入定时器初值MOVTL0,#BOHCJNER3,#20,FHDECR0DECR1MOVR3,#00HFH:RETI程序的软件延时:我选单片机的工作频率为12MHZ。机器周期与主频有关,机器周期是主频的12倍,所以一个机器周期的时间为12*(1/12M)=1us。可以知道具体每条指令的周期数,这样就可以通过指令的执行条数来确定1秒的时间。具体的延时程序分析:DELAY:MOVR4,#08H延时1秒主程序DE2:LCALLDELAY1DJNZR4,DE2RETDELAY1:MOVR4,#00H;延时125us子程序D1:MOVR5,#00HD2:DJNER5,DL2DJNER4,D1RETDELAY1为一个双重循坏循环次数为256*256=65536所以延时时间=65536*2=131072us约为125usDELAYR4设置的初值为8主延时程序循环8次,所以125us*8=1秒(3)数码管动态显示用于四个数码管的倒计时显示,代码如下:sbitsmg1=P3^0; //定义南北方向数码管低位sbitsmg2=P3^1; //定义南北方向数码管高位sbitsmg3=P3^2; //定义东西方向数码管低位sbitsmg4=P3^3; //定义东西方向数码管高位voiddjsxs22() /4个数码管动态显示 { intb1,b2; b1=djs1/10; //将倒计时时间的高位赋予b1 b2=djs1%10; //将倒计时时间的低位赋予b2 P0=table[b1];smg1=0;delayms(3);smg1=1; //显示b1 P0=table[b2]; smg2=0; delayms(3); smg2=1; //显示b2 P0=table[b1];smg3=0;delayms(3);smg3=1; //显示b1 P0=table[b2]; smg4=0; delayms(3); smg4=1; //显示b2}voiddjsxs11() /4个数码管动态显示{ intb1,b2; b1=djs/10; //将倒计时时间的高位赋予b1 b2=djs%10; //将倒计时时间的低位赋予b2 P0=table[b1];smg1=0;delayms(3);smg1=1; //显示b1 P0=table[b2]; smg2=0; delayms(3); smg2=1; //显示b2 P0=table[b1];smg3=0;delayms(3);smg3=1; //显示b1 P0=table[b2]; smg4=0; delayms(3); smg4=1; //显示b2}利用对数字的拆分使数字分为十位和个位,比如31,利用程序inta=31;intb1,b2;b1=a/10;b2=a%10;可以拆分为b1=3,b2=1.而在动态显示的过程中,通过这个方法可以动态在数码管上显示出来。由于东西方向和南北方向的显示时间不一样,我们可以通过数码管的高低位去组合的显示正确的显示时间。组合显示程序如下:voiddjsxs1()/用来显示设定南北倒计时的时间{ intb1,b2; b1=djs1/10;//将倒计时时间的高位赋予b1 b2=djs1%10; //将倒计时时间的低位赋予b2 P0=table[b1];smg3=0;delayms(3);smg3=1; //显示b1 P0=table[b2]; smg4=0; delayms(3); //显示b2 smg4=1;}voiddjsxs()/用来显示设定南北倒计时的时间{ intb1,b2; b1=djs/10; //将倒计时时间的高位赋予b1 b2=djs%10; //将倒计时时间的低位赋予b2 P0=table[b1];smg1=0;delayms(3);smg1=1; //显示b1 P0=table[b2]; smg2=0; delayms(3); smg2=1; //显示b24系统调试分析及结果4.1电路板实物的制作4.1.1印制电路板PCB图的绘制在同一芯片中,要连的线比较多。在硬件的布局中,每个LED灯和每个数码管的分布比较固定,而且集中分布在所控制的两个路口上。如果采用双面的PCB板的话,那么该电路的布线比较容易实现。但是,在实际生活中做双面板经常会出现一些焊点接触不良导致电路调试失败。因此,使用单面板布线。单片面板的布线的缺点是焊接后的成品不怎么美观。印制电路板的设计是以电路原理图为根据,来实现设计者所需要的功能。印刷电路板主要指版图设计,需要考虑外部布局的连接、内部电子元件的优化布局、金属连线和通孔的优化布局、电磁保护、热耗散等各种因素。4.1.2实物的制做(1)总制板工艺程序把所需要的元器件分类摆放在桌子上,确定各个原件的最好位置。原则上,既美观,又容易焊接,然后把元器件焊到板子上,最好用焊台来完成。根据原理图,把所有的连线连接起来,连接的导线,为了不断路尽量用细一点的导线。(2)制板心得:我们在制板过程中,首先,是在用PROTEL设计的时候出现的错误导致印制电路板错误。其次,是由于理论和实际有误差导致无法实现目标。最后在焊接中有一些小问题,比如在焊跳线的时,由于手工焊接导致焊线比较多,而且焊盘在高温下容易老化氧化,导致焊盘脱落报废了好几块板子。此外,焊盘太小并且有的有损坏迹象,所以焊接不怎么方便。为了不虚焊,我花了大量时间去焊这些元器件,造成一些焊点不是那么的很美观。还有在焊接过程中,有时候焊锡会不小心将相邻的两根引线短路。这次设计积累了做板一些经验,再次做板的时候一定要注意PCB的引线之间的距离不能设置太近。焊接完成后的实物图4-1:图4-1焊接完成的实物4.2系统硬件调试在实际焊接过程中,实物交通灯控制系统的PCB电路板焊接工作量非常大。电路安装完成后,首先进行检查,即确认电路无虚焊,无短路,无断路,集成元件安装是否正确,之后进行电路功能模块的分级调试。根据电路功能逐级进行调试,通行方式功能调试包括对两种通行方式控制调试,指示灯亮度和驱动电路调试,倒计时功能调试,数码管亮度调试,复位功能调试。4.3系统软件调试在keil工作平台上,新建交通灯控制系统工程,用C语言对各个功能模块进行编写和调试。除了基本语法差错外,如果程序没问题,那么直接下载到单片机来调试。采取的是自下到上的调试方法,即单独调试好每一个模块,然后再连接成一个完整的系统,最后完成一个完整的系统调试。交通灯控制系统仿真图如图4-2:图4-2交通灯控制系统仿真图4.4系统总体调试系统做好后,需进行完整的系统调试。测试刚开始,就发现两个问题:一个是有一部分交通灯亮度不够,发出来的光非常的微弱;二是数码管没反应。为了解决这个问题,我重新查看了电路的输出端各部分的输出电平。发现了我采用是共阴极数码管。而控制数码段的P3.0和P3.1口输出的则是高电平。解决第二个问题有两个方法。其一,将硬件电路稍作修改,将共阴极数码管换成共阳极的数码管。这样数码管就可以正常进行时间显示。其二,修改程序,让控制数码管的P0输出的是低电平。如果采用修改硬件电路的方法,那么整个硬件电路就得作改动。而已经布好的线也必须有相应的变动,操作起来比较麻烦繁琐。所以,我采用了第二种方法。修改了程序电路中的数码管代码。修改完后再次调试,数码管部分基本上能按照预先设定的要求进行倒计时显示。亮度要求也基本符合预先设想那样。还有一个来问题有待解决,那就是LED灯亮度问题,以致部分交通灯只能偶尔的看得出在亮。经多方检测,我认为这是LED灯驱动能力不足引起的亮度弱问题。如果要修正这个问题,那就得为LED灯增加驱动电路以提高电路的驱动能力。但是,要实现上述方法必须对硬件电路进行一定的改动。LED灯的驱动电路可以用集成电路芯片来进行驱动。但是由于没有相关的条件就没有去实践。但是,基本问题和解决问题的方法还是有了一定的了解。

结论我设计的系统采用美国ATMEL公司生产的单片机ATC89C51芯片作为交通灯控制系统的主控单元,利用ATC89C51芯片的I/O引脚实现了数字路口的交通控制。实物做成后其功能如下:当系统启动时,东西方向绿灯亮并且LED显示30秒倒计时,此时南北方向红灯亮LED显示35秒倒计时,当东西方向绿灯变为黄灯时LED还会倒计时5秒。当东西方向五秒倒计时结束时,东西方向红灯点亮,南北方

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论