基于51单片机交通灯控制系统设计_第1页
基于51单片机交通灯控制系统设计_第2页
基于51单片机交通灯控制系统设计_第3页
基于51单片机交通灯控制系统设计_第4页
基于51单片机交通灯控制系统设计_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

1目录摘要.4Abstract.5第一章绪论.61.1设计背景:.61.2设计意义.61.3设计目标.7第二章方案设计.82.1设计对象.82.2常见设计方法.82.3存在的问题和改进方向.92.4交通灯信号控制表.9第三章模块分析.113.1模块分工.113.2三叉路口模块分析.113.3可以帮助的软件VBA好处.12第四章控制系统分析及与原理.134.1重要部件及其工作原理.134.1.1定时器原理.134.1.2软件延时原理.134.1.3中断原理.144.2流程表达程序图.154.3软件源程序.17第五章软件仿真.2825.1介绍.285.2截图+说明.285.3硬件图.305.4仿真分步图.30第六章系统实现和使用说明.336.1功能介绍.336.2使用方法.35结论.371.工作总结.372.个人总结.37参考文献.39致谢.413摘要近些年来,随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。交通信号灯控制方式很多。本系统采用MSC-51系列单片机和可编程并行I/O接口芯片8255A为中心器件来设计交通灯控制器,实现了红绿灯循环点亮,倒计时显示红灯和绿灯的时间,倒计时剩5秒时红灯和绿灯闪烁,红绿灯交替之间有黄灯闪烁警示(交通灯信号通过PA口输出)。本系统实用性强、操作简单。而且交通对于社会的工业经济和人们的生活生产中有着十分重要的意义。随着单片机和传感技术的迅速发展,自动检测领域发生了巨大变化,交通自动监测控制方面的研究有了明显的进展,并且必将以其优异的性能价格比,逐步取代传统的交通控制措施。关键词1MCS512城市交通灯3十字路口交通灯的程序4AbstractInrecentyears,withtherapiddevelopmentoftechnology,SCMapplicationsaredeepening,whiledrivingtraditionalcontroldetectiontechnologyisincreasinglyupdated.Inthereal-timedetectionandautomaticcontrolofmicrocomputerapplicationsystem,themicrocontrollerisoftenusedasacorecomponent,onlythemicrocontrollerknowledgeisnotenough,shouldbecombinedaccordingtothespecifichardwareconfigurationofhardwareandsoftware,tobeimproved.Crossroadsshuttlevehicles,pedestriansbustling,garagedriveways,walkwayspeople,methodically.Sorelyontoachievethisorderlyorderit?Itreliesonautomaticcommandsystemoftrafficlights.Trafficsignalcontrolinmanyways.ThesystemusesMSC-51familyofmicrocontrollersandprogrammableparallelI/Ointerfacechip8255A-centricdevicedesignedtocontroltrafficlightstoachieveatrafficlightcyclelights,redandgreencountdowntime,thecountdownfivesecondsleftwhentheredlightandgreenlightflashes,thereareflashingyellowwarninglightsalternatebetween(trafficlightsignalthroughthePAoutput).Thepractical,easytooperate.Industrialandtransportationforthesocialeconomyandpeopleslifeandproductionofthegreatsignificanceof.Withtherapiddevelopmentofmicrocontrollerandsensortechnology,automaticallydetectgreatchangesoccurredinthefield,researchhasbeensignificantlycontroltrafficautomaticmonitoringofprogress,anditsexcellentprice-performanceratiowillgraduallyreplacetraditionaltrafficcontrolmeasuresKeywords1MCS512citytrafficlightintersectiontrafficlights3program5第一章绪论1.1设计背景:自18世纪工业革命以来,工业发展带动整个交通运输的发展,从而催生了单独的交通控制学问与管理机构。交通控制系统是近现代社会随着物流、出行等交通发展产生的一套独特的公共管理系统。要保证高效安全的交通秩序,除了制定一系列的交通规则,还必须通过一定的技术手段加以实现。现代人类科学技术,特别是电子科学技术的发展和成熟能比较好的解决系统建立中硬软件方面要求的技术难题。目前,交通控制方面的研究能完全实现自动智能化,甚至将整个区域整合成一个统一的系统范围,还能根据正常时段以及特定突发时段的情况进行科学的自动调整。交通灯主要是指由红、黄、绿三种颜色灯组成用来指挥交通的信号灯,自从1858年英国人发明了原始的机械扳手交通灯之后,随后的一百多年里,交通灯改变了交通路况,也在人们日常生活中占据了重要地位,随着人们社会活动日益增加经济发展汽车数量急剧增加城市道路日渐拥挤交通灯更加显示出了它的功能,使得交通得到有效管制,对于交通疏导提高道路导通能力。当时交通灯只有两种颜色红绿随着各种交通工具的发展和交通指挥的需要。第一盏名副其实的3种灯(红、黄、绿三种标志)于1918年诞生。它是三色圆形四面投影器,被安装在纽约市五号街的一座高塔上,由于它的诞生,使交通大为改善。1.2设计意义随着人们社会活动日益增加,经济发展,汽车数量急剧增加,城市道路拥挤,交通灯更加实现它的功能了,使得变通得到有效管制,对于交通疏导,提高道路导通能力,减少交通事故有显著的效果。今天,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。现在各大中城市交通建设已初具规模,而部分小城市建设日益加快,交通控制的提高势在必行,研发交通控制技术是十分有潜力的。具有优良科学6的交通控制技术对资源物流和人们出行都是十分有价值的,保证交通线路的畅通安全,才能保证出行舒畅,物流准时到位,甚至是生命通道的延伸。1.3设计目标交通灯实现有效计时,缓解交通,减少交通事故的发生。国内外研究现状随着科技的飞速发展,电子器件也随之广泛应用,其中单片机也不断深入人们的生活中。本模拟交通灯系统利用单片机AT89C52作为核心元件,实现了通过信号对路面状况的智能控制,从一定程度上解决了交通路口堵塞。系统具有结构简单,可靠性高,成本低,实时性好,安装维护方便等优点,有广泛的应用前景,MCS51能够很形象看出来交通灯的三种颜色的计时。7第二章方案设计2.1设计对象介绍研究对象:交通灯主要部件有:数码管、LED灯主要输入和输出:输入输出全是关于时间的计时2.2常见设计方法国内目前常规采用的设计方法,用交通灯(红绿灯)三种颜色来控制,都是自动,带有定时.目前设计交通灯的方案有很多,有应用设计实现交通信号灯控制器方法;有应用单片机实现对交通灯控制系统的设计。目前,国内的交通灯一般设在十字路门,在醒目位置用红、绿、黄三种颜色的指示灯。加上一个倒计时的显示计时器来控制行车。但是也有缺点,比如说,两边的时间应该不同,以免冲突。(1)当东西方向为红灯,此道车辆禁止通行,东西道行人可通过;南北道为绿灯,此道车辆通过,行人禁止通行。时间为60秒。(2)黄灯闪烁5秒,警示车辆和行人红、绿灯的状态即将切换。(3)当东西方向为绿灯,此道车辆通行;南北方向为红灯,南北道车辆禁止通过,行人通行。时间为80秒。东西方向车流大通行时间长。(4)红、绿、黄出现的顺序依次出现这样行人和车辆就能安全畅通的通行。(5)设定红绿灯初始值。82.3存在的问题和改进方向存在的问题:不是太能改变计时的快与慢,这存在瑕疵。改进方向:可以增加许多的电子眼、或者在红绿灯设置一些警报虽然现在交通灯的出现让很多各种不同的路口变得井然有序,但还是会有交通意外发生,这其中有人为因素,但是也有交通设施不完备等相关因素。因此,我们可以静下来仔细想一想到底是那个方面出现了问题经。经调查下来,发生交通意外一般都是在红绿灯颜色转换那一刻发生的,我们可以根据现实的情况将人数较多或者人流量多的哪一个灯绿灯时间略长,也可以和大城市一样设计一个人形按钮,只要有人按下按钮就会转变颜色,让人行通行。2.4交通灯信号控制表显示数值dp,g,f,e,d,c,b,a驱动代码0001111113FH10000011006H2010110115BH3010011114FH940110011066H5011011016DH6011111017DH70000011107H8011111117FH9011011116FH10第三章模块分析3.1模块分工因为交通灯路况复杂,有各种不同的路口,前面我也略有提到。因此为了能更加使用交通灯在不同路口的使用方法,我们小组四人分别各自设计不同的路口:童俊:双十字路口孙家伟:十字路口杨坐诚:三叉路口郭干:从中调谐,负责帮助遇到困难的去解决困难。3.2三叉路口模块分析设在三叉路口,分为东西向和南向,在任一时刻只有一个方向通行,另一方向禁行,持续一定时间,经过短暂的过渡时间,将通行禁行方向对换。东西路口红灯亮,南路口绿灯亮,同时开始18s倒计时,以7段数码管显示时间。18s倒计时结束后开始6s倒计时,南口的绿灯闪烁,计时到最后3s时,南路口黄灯闪烁,完成一次这样的循环需要18s。18s结束后,南路口红灯亮,东西路口绿灯亮,并重新13s倒计时,依次循环。3.3可以帮助的软件VBA好处采用VBA首先是实现了一些无法实现的功能,然后发现操作界面更加人性化,更加简单方便,而且多个步骤的手工操作通11过执行VBA代码可以迅速的实现。12第四章控制系统分析及与原理4.1重要部件及其工作原理4.1.1定时器原理定时器工作的基本原理其实就是给初值,让它不断加1直至减完为模值,这个初值是送到TH和TL中的。它是以加法记数的,并能从全1到全0时自动产生溢出中断请求。因此,我们可以把计数器记满为零所需的计数值,即所要求的计数值设定为C,把计数初值设定为N可得到如下计算通式:N=M-C式中,M为计数器模值。计数值并不是目的,目的是时间值,设计1次的时间,即定时器计数脉冲的周期为T0,它是单片机系统主频周期的12倍,设要求的时间值为T,则有C=TT0。计算通式变为:T=(MN)T0模值和计数器工作方式有关。在方式0时M为8192;在方式1时M的值为65536;在方式2和3为256。就此可以算出各种方式的最大延时。如单片机的主脉冲频率为12MHZ,经过12分频后,若采用方式最大延时只有8.129毫秒,采用方式最大延时也只有65.536毫秒。这就是为什么扫描周期为50ms的原因,4.1.2软件延时原理MCS-51的工作频率为2-12MHZ,我们选用的8051单片机的工作频率为6MHZ。机器周期与主频有关,机器周期是主频的12倍,所以一个机器周期的时间为12*(1/6M)=2us。我们可以知道具体每条指令的周期数,这样我们就可以通过指令的执行条数来确定1秒的时间。具体的延时程序分析:13DELAY:MOVR4,#08H延时1s子程序DE2:LCALLDELAY1DJNZR4,DE2RETDELAY1:MOVR6,#0延时125ms子程序MOVR5,#0DE1:DJNZR5,$DJNZR6,DE1RETMOVRN,#DATA这条指令的字节数为2,机器周期数为1,所以此指令的执行时间为2ms。DELAY1为一个双重循坏,循环次数为256*256=65536,所以延时时间=65536*2=131072us,约为125us。DELAYR4设置的初值为8,主延时程序循环8次,所以125us*8=1秒。由于单片机的运行速度很快其他的指令执行时间可以忽略不计。4.1.3中断原理本系统主要使用了外部中断,中断信号有引脚INT0和INT1输入,低电平有效,CPU每个时钟周期都会检测INT0和INT1上的信号,8051允许外部中断以电平方式或负边沿方式两种中断方式输入中断请求信号,可由用户通过设置TCON中IT0和IT1位的状态来实现。以IT0为例,IT0=0,为电平触发方式,IT0=1,为负边沿触发方式,本设计采用电平方式,IE0为其中断标志位,有中断信号则置位,中断服务子程序响应后,IE0自动清零。IE中的EA为允许中断的总控制位,为1开启,EX0为外部中断允许控制位,为1开启。在优先级的允许下,一旦有外部中断信号产生,单片机CPU首先保护断点,PC值进栈,然后执行相应的中断服务子程序,执行完后,用RETI指令返回,此时CPU会从堆栈中取保存的断点地址,送回PC,程序再正常执行。14状态灯显示及判断在本设计中,实际控制的灯只有6个,即:东西红灯,东西绿灯,东西黄灯,南北红灯,南北绿灯,南北黄灯。共有4钟状态:东西红灯亮,南北绿灯亮(00100001/21H);东西红灯亮,南北黄灯亮(00010001/11H);东西绿灯亮,南北红灯亮(00001100/0CH);东西黄灯亮,南北红灯亮(00001010/0AH)。括号中是P1端口8个引脚值P1.7,P1.6,P1.5,P1.4,P1.3,P1.2,P1.1,P1.0以及对应的十六进制码。在用于显示发光二极管时,直接由MOV指令将十六进制码送入P1口154.2流程表达程序图164.3软件源程序*实验名:动态显示数码管实验*使用的IO:*实验效果:数码管显示76543210。*注意:当位选用P1口的时候注意可能会有一位不亮,那么调整J21*/#include/-定义使用的IO口-/#defineGPIO_DIGP0#defineGPIO_PLACEP1#defineGPIO_TRAFFICP2sbitRED10=P20;/上人行道红灯sbitGREEN10=P21;/上人行道绿灯sbitRED11=P22;sbitYELLOW11=P23;sbitGREEN11=P24;17sbitRED00=P30;/右人行道红灯sbitGREEN00=P31;/右人行道绿灯sbitRED01=P25;sbitYELLOW01=P26;sbitGREEN01=P27;/-定义全局变量-/unsignedcharcodeDIG_PLACE8=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;/位选控制查表的方法控制unsignedcharcodeDIG_CODE17=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;/0、1、2、3、4、5、6、7、8、9、A、b、C、d、E、F的显示码unsignedcharDisplayData8;/用来存放要显示的8位数的值unsignedcharTime,Second;/用来存放定时时间/-声明全局函数-/voidDigDisplay();/动态显示函数voidTimer0Cofig(void);/*函数名:main*函数功能:主函数18*输入:无*输出:无*/voidmain(void)Second=1;Timer0Cofig();while(1)if(Second=70)Second=1;/-宝田路通行,30秒-/if(Second31)DisplayData0=0x00;DisplayData1=0x00;DisplayData2=DIG_CODE(30-Second)%100/10;DisplayData3=DIG_CODE(30-Second)%10;DisplayData4=0x00;19DisplayData5=0x00;DisplayData6=DisplayData2;DisplayData7=DisplayData3;DigDisplay();/-宝田路通行-/GPIO_TRAFFIC=0xFF;/将所有的灯熄灭RED00=1;GREEN00=1;GREEN11=0;/宝田路绿灯亮GREEN10=0;/宝田路人行道绿灯亮RED01=0;/前进路红灯亮RED00=0;/前进路人行道红灯亮/-黄灯等待切换状态,5秒-/elseif(Second36)DisplayData0=0x00;DisplayData1=0x00;DisplayData2=DIG_CODE(35-Second)%100/10;DisplayData3=DIG_CODE(35-Second)%10;DisplayData4=0x00;20DisplayData5=0x00;DisplayData6=DisplayData2;DisplayData7=DisplayData3;DigDisplay();/-黄灯阶段-/GPIO_TRAFFIC=0xFF;/将所有的灯熄灭RED00=1;GREEN00=1;YELLOW11=0;/宝田路黄灯亮RED10=0;/宝田路人行道红灯亮YELLOW01=0;/前进路红灯亮RED00=0;/前进路人行道红灯亮/-前进路通行-/elseif(Second66)DisplayData0=0x00;DisplayData1=0x00;DisplayData2=DIG_CODE(65-Second)%100/10;DisplayData3=DIG_CODE(65-Second)%10;DisplayData4=0x00;21DisplayData5=0x00;DisplayData6=DisplayData2;DisplayData7=DisplayData3;DigDisplay();/-黄灯阶段-/GPIO_TRAFFIC=0xFF;/将所有的灯熄灭RED00=1;GREEN00=1;RED11=0;/宝田路红灯亮RED10=0;/宝田路人行道红灯亮GREEN01=0;/前进路绿灯亮GREEN00=0;/前进路人行道绿灯亮/-黄灯等待切换状态,5秒-/elseDisplayData0=0x00;DisplayData1=0x00;DisplayData2=DIG_CODE(70-Second)%100/10;DisplayData3=DIG_CODE(70-Second)%10;DisplayData4=0x00;22DisplayData5=0x00;DisplayData6=DisplayData2;DisplayData7=DisplayData3;DigDisplay();/-黄灯阶段-/GPIO_TRAFFIC=0xFF;/将所有的灯熄灭RED00=1;GREEN00=1;YELLOW11=0;/宝田路黄灯亮RED10=0;/宝田路人行道红灯亮YELLOW01=0;/前进路红灯亮RED00=0;/前进路人行道红灯亮/*函数名:DigDisplay*函数功能:使用数码管显示*输入:无*输出:无23*/voidDigDisplay()unsignedchari;unsignedintj;for(i=0;i8;i+)GPIO_PLACE=DIG_PLACEi;/发送位选GPIO_DIG=DisplayDatai;/发送段码j=10;/扫描间隔时间设定while(j-);GPIO_DIG=0x00;/消隐/*函数名:Timer0Cofig*函数功能:配置定时器*输入:无*输出:无*/24voidTimer0Cofig(void)TMOD=0x01;/定时器0选择工作方式1TH0=0x3C;/设置初始值,定时50MSTL0=0xB0;EA=1;/打开总中断ET0=1;/打开定时器0中断TR0=1;/启动定时器0/*函数名:Timer0*函数功能:定时器0中断函数*输入:无*输出:无*/voidTimer0()interrupt1TH0=0x3C;/设置初始值TL0=0xB0;Time+;if(Time=20)25Second+;Time=0;26第五章软件仿真5.1介绍十字路口的交通灯设置。5.2截图+说明我做的是十字路口交通灯,首先就是红灯亮起来MOVP2.0#00001001B图一我的任务是十字路口交通灯,也就是红灯停,绿灯行,就是红灯27亮绿灯不亮,绿灯亮红灯不亮,然后把线一根根接好,一根根带进去。(千万细心,不能带错。)285.3硬件图图二295.4仿真分步图图三:测量元器件、看看是否正确。30图四带进电脑里面调整31第六章系统实现和使用说明6.1功能介绍实现东西红灯,东西绿灯,东西黄灯,南北红灯,南北绿灯,南北黄灯。32图六336.2使用方法下在最小系统,直接打开相关知识问答:按照步骤,一层层来。实现面包板的接通,通过程序验证面包办的“OKor”NO”接个灯上去看看最小线路对不对图五根据我的程序,看看好不好34图七按钮按下,红灯亮。然后设计编程,通过小组谈论,成功将编程成功,然后放入面板版中实验。如图所示。图八35结论1.工作总结DAY1:老师要让我们上网找交通灯资料的收集,并把搜集起来(已完成)DAY2:组长分配我的任务是什么,明确自己的任务。(已完成)DAY3:今天开始做我得到任务,十字路口交通灯,通过第一天和第二天的步骤,开始工作。(已完成)DAY4:把任务的编程编好了和把硬件图画出来,为明天接线做好准备(已完成)DAY5:通过昨天的编程和硬件图在板子依次接好(已完成)DAY6:通过昨天的步骤,把今天板子上的图通过电脑来试试,看看能否执行了(已完成)DAY7:把前几次的统统做起来,来验证了我做出来的图是否正确的。跟组长一起完成(已完成)362.个人总结在平时的学习中,我们所学的知识大都是课本上的,因此,缺乏一种系统的设计锻炼。在课本所学结束以后,这样的课程设计十分有利于我们将知识系统的总结到一起。通过定时,中断以及查表指令等组合成一个交通灯控制系统,使得我对系统的整个框架的设计有了一个很好的锻炼。这不仅有助于大家找到自己感兴趣的题目,更可以锻炼大家单片机知识的应用,经过这10天,我基本完成了老师所提出的课程设计的要求,由于我对中断不是很了解,因此开始的时候卡了很久,后来经过在网上不断的搜索找到了合适的资料,而这期间的搜索也让我知道了几个关于51单片机的论坛,里面有好些资料,都是一些小的程序,很适合初学者以及有一些基础的人学习,我感觉相对于在网上找到了这次课设的相关资料,这些论坛才是更值得我欣喜的,因为有了这些,我便能经常和像我一样的初学者进行探讨,彼此学习。而本次课设中,我认为对我来说最大的收获是学习到了如何通过查表指令实现LED灯与数码管显示器的统一,这是很重要的,我也知道单片机可以有很多的变通,其实并不难,只需要寻找正确的方法,我知道自己在以往的学习中,对课本知识掌握的知识不够牢固,不够全面,理解得也不够深入,不会融会贯通,只会一些表面的知识老师给了这么一个让每个人自我锻炼、自我学习的

温馨提示

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

评论

0/150

提交评论