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

下载本文档

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

文档简介

基于单片机的智能交通灯控制系统设计与实现基于单片机的智能交通灯控制系统设计与实现摘要近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。交通信号灯控制方式很多。本系统采用STC89C52R单片机以及单片机最小系统和74HC245电路以及外围的按键和数码管显示等部件,设计一个基于单片机的交通灯设计。设计通过两位一体共阴极数码管显示,并能通过按键对定时进行设置。本系统实用性强、操作简单、扩展功能强。关键词:交通灯;单片机;显示;计时;车流量Designandimplementation ofintelligent trafficlightscontrolbasedonMCUAbstractInrecentyearsalongwiththerapiddevelopmentofscieneeandtechnology,SCMapplicationsarecontinuallydeepening,andpromotethetraditionalcontroldetectiontechnologyisupdated.Inreal-timedetectionandautomaticcontrolofthemicrocomputerapplicationsystem,themicrocontrollerisoftenusedasacorecomponent,onlySCMknowledgeisnotenough,shouldbebasedonspecifichardwarestructureofhardwareandsoftwarecombination,tobeperfect.Crossroadsshuttlevehicles,pedestriansbustling,cardealershiptrafficlane,peoplewalkways,everythingingoodorderandwellarranged.Sowhattorelyontorealizeitinorder?Isthetrafficlightsontheautomaticcommandsystem.Alotoftrafficsignalcontrol.ThissystemusesSTC89C52RCand74HC245systemandthesmallesttransistordrivingcircuitandaperipheryofthekeysanddigitaltubedisplayandotherparts,adesignbasedonthesinglechipdesignoftrafficlights.Designthroughoneoftwocommoncathodenixietubedisplay,andcanbekeytoregularset.Thissystemispractical,simpleoperation,strongexpandingfunction.Keywords:Trafficlight,SCM,Display,Timing.Trafficflow目录TOC\o"1-5"\h\z1前言 1\o"CurrentDocument"1.1本设计的目的及意义 1\o"CurrentDocument"1.2本设计在国内外的发展概况及存在的问题 2\o"CurrentDocument"1.3本设计应解决的主要问题 32方案介绍 3\o"CurrentDocument"2.1设计原理 3\o"CurrentDocument"2.2方案选择 4\o"CurrentDocument"2.3分析问题 53硬件设计 7\o"CurrentDocument"3.1系统硬件总电路构成: 7\o"CurrentDocument"3.2单片机系统及其历史 7\o"CurrentDocument"3.3单片机内部组成以及引脚介绍 8\o"CurrentDocument"3.4单片机最小系统 103.5LED显示 12\o"CurrentDocument"3.6数码管显示 13\o"CurrentDocument"3.7信号显示驱动电路 15\o"CurrentDocument"3.8键盘输入电路 15\o"CurrentDocument"3.9红外接收原理 164软件设计 17\o"CurrentDocument"4.1定时器的设置 18\o"CurrentDocument"4.2中断程序的设置 185调试 18\o"CurrentDocument"5.1断电调试 18\o"CurrentDocument"5.2通电调试 19\o"CurrentDocument"5.3功能部分的测试 196结论 20参考文献 21谢辞 22附录 23/ 、八—1刖言当今社会,科技不断的发展,作为微控技术其中一部分的单片机也紧跟着脚步,正在迅速发展,普遍运用到了人们生活的各个领域。它的出现使传统的控制技术发生了本质上的转变。可以说单片机的创造对于以往的控制技术来说就像是一场革命。无论在日常生活中,我们所用到的电饭煲,洗衣机,冰箱等等,还是在工业领域的自动化控制,电子领域的数据收集等等,都能看到单片机存在的身影,在微控领域占据了极高的地位。所以单片机的开发应用是高科技领域的一个里程碑。所以我们有必要更加深入掌握有关单片机的知识以及其应用技术。本文正是运用单片机来制作一个模拟的智能交通灯,通过此交通灯来智能控制十字路口的交通,有效、科学的控制引导过往的车辆和人流。 ['1.1本设计的目的及意义本设计的目的是制作一个比较符合实际情况,价格低廉而不乏性能的交通灯智能操控系统。通过对现在的交通灯的了解和研究,本人打算使用红外线检测传感、根据实际情景来改变智能化控制的技术。系统除了一般的交通灯的功能之外,还可以通过检测十字路口车的数量的多少来控制红绿灯时间的改变。不仅如此,除了自动控制红绿灯的变化之外,在紧急的特殊情况下,还可以手动的变换红绿灯来使一些特殊的车辆快速通过交通路口等。因为根据综合情况考虑到经济和实际运用等等,本人使用单片机来控制整个系统的运作,跟AR范种功能等各方面更加完善的控制方案相比,单片机确实是无法比拟的。然而,正是因为如此,怎么通过单片机的设计来发挥出其最大的功效才能体现出本设计的难点所在。总的来说,本设计意义有如下4个方面:用单片机这个完善的控制系统在交通灯应用的这个方面来实现与运用。从人性话的角度来设计交通灯。探究全新的交通灯管理系统。通过红外线传感器来检测车流量,以达到自动调整红绿灯时间的功能。这次除了运用单片机,还运用了可编程并行输入输出接口芯片当作中心件来完成交通灯控制器的设计,对交通十字路口路口进行管理。通过单片机来控制硬件电路,进行现实情况的模拟,实现红绿灯之间的转换,使之按次序点亮。通过 LED数码管来显示倒计时的时间,红绿灯采用红、黄、绿3种发光二极管来显示,而特殊紧急车辆的通过通过实时中断来实现。用红外线作为检测车流量的方法,根据车流量的多少来智能的计算倒计时时间。1.2本设计在国内外的发展概况及存在的问题现在,交通灯遍布在各个道路上,疏通交通、管理交通秩序全靠它。然而它确起始于上个世纪。早在1850年,城市交叉口处持续增多,对交通带来极大的不便,这个问题开始引起了大家的留意。在1868年英国的伦敦,开始了首次对交叉路口交通的控制,在那个时候,通过警察不断的更换其手上的旗子来指挥,这个控制的命令在当时叫作旗语。40年后,它被传到了美国的纽约,而且迅速的在传遍了全国。由于城市电气化的快速发展壮大,在1914年,俄亥俄州的克利夫兰市出现了世界上第一台通过电力来控制的交通信号灯。5年之后,纽约市开始将人工旗子控制的方式更换成电机控制的信号灯。在1923年的时候,GarrettMorgan申请了专利Morgan交通信号灯,通用电气公司买了这个专利。9年后,电机控制信号灯取代了最后一个人工控制的旗子。 由1920年至1970年将50年的过程中,电机驱动的信号灯在交通信号控制系统领域中成了主导的地位。以便能够使相邻的交叉口在一个交通信号系统当中,在设定的信号周期、相位差以及绿信比下正常运行,人们发明了“七条线缆”的连接方式,能够让相邻的信号灯在一个系统控制的模式下运行,尽管现在我们进入了新世纪,在某部分地方依然在使用这种根据七条线缆的连接方式。不仅如此,绝大多数在电机驱动的系统中所运用的术语,即使到了现在,微处理控制器依然在使用。在上个世纪 60年代初,计算机被引进到交通信号控制系统中。在1963年,第一个计算机控制的交通信号控制系统在加拿大的多伦多市安装,到了20世纪70年代,微处理器被普遍使用,相应的硬件和软件也逐渐发展起来。如今,交通控制变得越来越智能化,相信我们未来的交通必然是更加人性化,更加方便。自从交通灯出现以后,交通的管制变得更加有效,在疏导车辆、提升道路的流畅性、降低交通事故的发生率等方面有积极的影响。在 1968年的时候,联合国出台了《道路交通和道路标志信号协定》,给每一种信号灯的作用给出了定义。绿灯代表通行的意思,看见绿灯的车辆能够通行,左转弯或者右转弯,要不然就是另外一个标志禁止某一种转向。左右转弯车辆的优先级比直行的车辆和在人行道通行的路人要低。红灯表示禁行的意思,看见红灯的车辆应该在交通路口的停车线后停车。黄灯表示警告的意思,看见黄灯的车辆要停一停,在停车线后的车辆应该停止,不应该向前行驶,如果车辆已经非常靠近停车线却不能安全停车的时候可以通过。 本设计的单片机控制交通灯就是基于信号灯。⑵存在的问题:现在,我国的交通灯一般安装交通路口,在显眼的地方通过红、黄、绿三种颜色的指示灯来指示。再增加一个倒数的数字显示器来指导车辆。在一般的正常的行车情况下,车辆分流可以发挥其作用,然而依据车辆行驶过程中出现的实际情况,发现有以下缺陷:a、两车道的车辆具有一样的倒计时时间,而在十字路口,正常是一个车道为主干道,车辆比副干道的要多,所以正常来说时间应该比它要长一点。 B、不能智能检测车流量,红绿灯倒计时时间不会根据车流量的多少而改变,从而导致交通拥挤等情况。1.3本设计应解决的主要问题本设计将设计并制作一个智能交通灯控制系统。设计的内容是:A、 熟练掌握单片机的用法与最小系统的搭建。B、 完成智能交通灯控制系统的硬件与软件设计。C、 应具有智能判断车流量功能。D应具有根据车流量智能设定红绿灯时间功能。E、 在制作的单片机系统上实现所设计的功能,并完成演示。F、 其他可扩展功能。目前,限制单片机智能交通灯设计的因素主要有以下两个:a、 根据各道路路口车流量的大小自动调节通行时间,因为这个问题就关系到了通过运用什么技术来检测。正常情况下车流量检测器通过传感器加单片机,再加上一些其他器件来运行。考虑到整体情况,本人这次用红外线来检测车流量。b、 考虑特殊车辆通行情况,设计紧急切换开关。例如消防车、救护车、警车等等,遇到这些紧急情况的话就要考虑到这些车辆的迅速通行,因为这都是性命攸关的时刻,所以设计紧急切换开关是必须的。而这个紧急切换开关就关系到了程序的设计,这个问题的实现难度对于本人来讲也是一项挑战。2方案介绍这次设计的重点包含以下这几个方面:a、 设计交通灯状态的管理方案;b、 设计单片机最小系统和周边电路;c、 设计交通灯系统和中断系统的电路结构;d、 设计整个系统的电路分布和接线;e、 使用C语言编写整个系统运行所需要的程序,重点是紧急中断系统的程序。2.1设计原理本设计所用的部件包括以下这几样:STC89C52R单片机及其最小系统,除此之外,还有74HC245的驱动电路和外围的按键和用来看数字的数码管,通过这些来完成本人的这次毕业设计。在一定的时间内增加车辆安全通过的数量和质量。 而且在车流量密集的时候通过系统的设定来改变主次干道的通过车辆的时间,减少交通密集和堵塞现象。除此之外,针对紧急特殊情况,系统还具备了紧急处理按钮,通过这些按钮可以让一些如警车、救火车、救护车等快速通过,提高对特殊紧急状况的应变能力。通过单片机来掌控交通灯的运行,可以让单片机改变信号灯的轮流点亮,能满足一般情况下的车辆运行,当然,接入LED数码管就能够显示倒计时以提醒行使者,更具人性化。这次设计在这样基础之上,单片机控制系统对这种情况进行了全面的整改,按实际情况掌控并指挥交通的运作。系统总体框图如图 2.1所示:键盘设置部分可以对模式进行选择,智能时间出现问题时还可以对时间进行人工调整,当系统开始正常运行时,在调整交通灯的正常运作显示的时候,还将相对应的时间数字灌输到数码管上,通过数码管展现出来。与此同时,还应该时刻能够检查违规的车辆和具有突发的按键处理,实现应对紧急情况处理的目的。急停按钮以及违法检验立即调用中断。图2.1系统的总体框图根据这种情况,此次设计把单片机作为根本,以按键部分和红外接受模块部分作为输入,交通灯显示模块和数码管通过驱动电路进行输出。 系统的总体框图如图2.1所示2.2方案选择a、控制器方案作为交通智能控制的中心,控制器的选择十分重要。方案一:用FPGAS行控制。方案二:用PLC进行控制。方案三:51系列单片机,这是一种较为实用的系统。经过各方面的综合因素考虑。上面的3种控制方案都能够漂亮的实现智能交通灯的运行,虽然PLC以及FPGAS行操作的时候比较容易,但是它们的价格确实昂贵的。而本人的这次设计选的是方案三(51系列单片机),因为它不但能够完成智能通交通灯的控制,而且它的性能也非常好,价格也很便宜,是个非常好的选择。所以本人选择了用的比较常用的89C52单片机当作控制器。b、供电方案为了能够让交通灯在正常的状态下运作,应该有一个稳定的电源。本人的这次设计想到了两种电源方案:方案一:使用相对稳定的外接电源。这个方案的好处是性能比较稳定安全,并且还有各种相对完美的电路;缺陷是每一个部分都使用独立的电源,令系统变得更加复杂,并且有几率改变电路电平。方案二:通过单片机控制模块进行电源的供给。优势是系统比较简单,省资金;缺陷是输出的功率低,导致电路不稳定。综合考虑到了本设计的情况,本人采用了第一套方案。C、显示界面方案这次设计的运用到了倒计时和红绿灯等显示。本人想到了以下几个方案:方案一:全部通过数码管来显示。但是这样只能实现部分符号和数字,并不能实现全部功能。方案二:全部通过点阵式LED显示。缺点是这种方案比较复杂,而且程序比较难;但是功能全面,基本上能实现所需的功能。方案三:通过数码管和点阵LED一起显示。从实际状况等各方面综合因素考虑,本人选用方案三数码管与LED灯一起来显示时间与状态灯。这个方案不但实现了全部需求,实现起来又比较简单。d、输入方案根据实际情况,本人想到了两种方案:方案一:使用8155扩展输入输出口以及键盘、显示等。这种方案的优势是:比较灵活,而且含有RAM和计数器。若用该方案,可提供较多I/O口,但操作起来稍显复杂。方案二:通过在输入输出口线上接上按钮开关。该方案优势是:编程比较容易,使用起来比较方便,而且成本更加低。缺点就是功能有限。从各方面因素考虑之后,本人使用方案二来实现输入。2.3分析问题我们假设设在一个十字路口上,分别有东西南北四个方向,在任意时候只可以让其中一个方向的车辆通过,另外一个方向禁止通过,经过一定时间后,将两个方向互换。说明:黑色代表灯亮,白色代表灯灭。一开始红绿灯的状态如下图( a),然后到(b)、(c)、(d),最后按照这个顺序重复循环,交通状态如图2.2所示:下面是具体的每一个交通灯的状态显示:

oeoOO*江绿黄红绿黄(a) (b)红绿貸红绿責•oo红绿責•oo•DO红绿黄•oo•DO红绿黄红绿黄(c) (d)图2.2交通状态(a) 东西方向红灯亮,车辆禁止通行,南北方向绿灯亮,车辆可以通行,倒计时13秒(时间只是方便演示)。(b)东西方向红灯亮,禁止通行,南北方向黄灯亮,车辆应该等待通行,倒计时 5秒(时间只是方便演示)。(c) 南北方向红灯亮,静止通行,东西方向绿灯亮,车辆允许通行,倒计时24秒(时间只是方便演示)。(d) 南北方向红灯亮,车辆禁止通行,东西方向黄灯亮,倒计时5秒(时间只是方便演示)。等待时间倒计时,紧接着回到状态(a)下面我们可以用图表表示灯状态和行止状态的关系如下:表2.1交通状态及红绿灯状态状态a状态b状态c状态d东西向禁行等待变换通行等待变换南北向通行等待变换禁行等待变换东西红灯1100东西黄灯0001东西绿灯0010南北红灯0011南北绿灯1000南北黄灯0100东西南北四个交通口都含有红绿灯以及数码管,无论是哪一个交通口,凡是看到红灯的应该禁止通行,看见转了绿灯就可以通过,如果黄灯亮了表示红绿灯状态即将发生变化。各方向的状态以及红绿灯状态如上表2.1。(说明:0表示灭,1表示亮)3硬件设计3.1系统硬件总电路构成:为了满足这次的交通灯设计所需要实现的功能,本人选用了 STC89C52R芯片和外围设备组成的最小系统,代表红、绿、黄三种颜色的 led交通灯总共14个,4个2位LED数码管和包括复位键、紧急控制按键等,红外线接受器,驱动电路模块,若干导线、电阻和电容。构成了此次设计的各个模块。其具体的硬件电路总图如图 2.3所示。本系统把单片机最小系统作为关键核心,由各个硬件模块软件为控制主体组成一个处理、智能控制为一体的封闭操控系统。其中P0用来送显LED数码管的段选和位选,P1用来操控红绿灯的亮暗,12MHz晶振接在单片机芯片引脚的XTAL1和XTAL2上,REST引脚接连接复位电路,P3端口用来实现按钮的控制。3.2单片机系统及其历史单片机是一块集成在芯片上的微型计算机,它的内部包括有 CPU、存储器,定时/计数器以及中断系统,基本输入/输出(简称I/O)接口电路等。因为它的结构与指令功能都是按照工业控制要求设计的,所以又称作微控制器(简称MCU)。它在各方面都有良好的优势,例如结构简单,控制效果好,可靠性高、体积小、价格低,单片机技术作为计算机技术的一个非常重要的分支,广泛地应用于工业控制、智能化仪器仪表、家用电器、电子玩具等各个不同的领域。单片机诞生于上世纪70年代,经历了三个阶段:SCM、MCU、SOC。一开始的SCM单片机都是8位或4位的。其中英特尔公司的8051发展迅速。之后的MCS51系列的MCU单片机得到了广泛的应用。现在高端的32位SOC单片机性能已经达到了上世纪90年代中期专用处理器的水平,且价格低廉。所以越来越多的制作业、工业离不开单片机。单片机的应用系统必须包含硬件部分和软件部分,只有这样才是完整的单片机应用系统。软件部分是指导硬件工作的指令集。没有软件部分,系统将无法正常工作。硬件部分则是交通灯系统的基础。没有硬件系统则没有所谓的交通灯系统。只有将两者结合,才能实现功能齐全的及交通灯系统。3.3单片机内部组成以及引脚介绍8052是MCS-52系列单片机的典型芯片,不同型号一般程序存储器结构不同,其余内部结构都是完全相同,引脚也全部兼容。Atmel公司的89系列发展很快,应用也最为广泛,和8052引脚也完全相同,插座也相互兼容。所以用89C52代替8051时,只要封装相同就可以直接代换。中央处理器(CPU:交通灯系统的控制核心是单片机,而单片机的控制核心是中央处理器。它与计算机的处理器一样分为4字长、8字长、16字长和32字长等处理器,它与单片机的处理数据能力、控制功能、运算速度等性能等性能有关,因此,字长是衡量 CPU功能的主要指标。CPU由运算器和控制器组成。各一个8位的算术逻辑单元(简称ALU、累加器(简称ACC、暂存器B和程序状态寄存器(简称PSVV构成了CPU勺运算器。所述控制器包括程序计数器(PC,指令寄存器(IR),指令译码器(ID、和一个控制电路等。内存数据存储器RAM单片机89C52芯片内部数据存储器通常是指低128个单位,可以读也可以写,是分配给用户使用的,在断电后数据会消失。高128个单位则是内部专用寄存器使用的存储单位,用户无法对其进行操作,所以芯片内部一共包含256个RAM单元。内部程序存储器ROM89C52芯片的内部程序存储器使用的是只读存储器,这样有利于系统的可靠及稳定性且能节省成本。它有4KB掩摸ROM只能读不能写程序将不会在断电后丢失。这样则不会改变程序的原始数据,通常称为只读程序存储器并行I/O端口:89C52芯片内部有4个8位并行I/O端口(P0口、P1口、P2口和P3口),通过I/O端口实现数据并行输入输出,是人机交互的接口。串行口:89C52芯片内部串行实现单片机与外围设备之间的数据通信是通过一个全双工异步串行口。该串行口既可以作为同步移位器使用,扩展外部 I/O端口,又可以作为全双工异步通信收发器使用。定时/计数器:89C52芯片内部的2个16位定时/计数器可以控制单片机的内部时钟,使单片机按照一定的机器时钟进行状态控制。还可以进行外部定时或计数功能,是芯片的重要组成部分。中断系统:8052内部共有5个中断源,2个优先级别分别是高优先级和低优先级,在同级的情况下,外部中断0大于定时器T0中断大于外部中断1大于定时器中断T1大于串行口中断。时钟电路:89C51芯片单片机内部具有时钟电路,只需要在XTAL1和XTAL2引脚之间接上石英晶体和微调电容就能构成完整的时钟电路。此系统选用的晶振频率为12MHz相应的机器周期是1us。引脚介绍:VCCSTC89C5电源接入端,接+5V。GND电源接地端。XTAL1和XTAL2当需要使用外部时钟时,贝U连接外部的时钟电路;若要使用内部时钟则连接电容和晶振。本系统所使用的是内部时钟,所以在两引脚间连接了电容和12MHZ的晶振。RESETSTC89C52E片的重置引脚,当连续输入这个引脚2个机器周期以上的高电平即有效电平时,芯片将进行系统的复位操作,各个寄存器都恢复到最初的状态重新运行程序。EAEA的E的英文是External,A的英文是Access,合在一起是外部程序存储器的意思。上面的横线则代表低电平有效。所以这个引脚接高电平则使用内部程序存储器,低电平则使用外部的程序存储器。在此系统中,由于程序下载到内部程序存储器中,因此该引脚与+5V电源相连接。ALEALE是编程脉冲的输入端。它以晶振频率的1/6的固定频率输出,所以也可以作为时钟电路使用。同时这个引脚也是P0口低8位的地址锁存器,将低8位数据与地址相互隔离,用于系统扩展。PSEN此为"ProgramStoreEnable"的缩写,其意为程序储存启用。低电平有效,当引脚输入低电平时实现对外部ROMI元的读操作。在执行指令的取指阶段和从程序存储器中取数据时有效。P0口(P0.0〜P0.7):端口0可以作为通用I/O端口使用和地址/数据线使用。共有8个位,P0.0表示位0,P0.1表示位1,依此类推。一个数据输出D锁存器、两个三态数据输入缓冲器、一个输出控制电路和一个数据输出的驱动电路共同构成了 P0口的逻辑电路。如果EA引脚的电平为低时(即取用片外RAMT展或数据存储器),P0就以双向口的工作方式提供地址总线(A0〜A7)及数据总线(D(〜D7)o在此设计中,P0口是作为通用I/O口将各个共阴极数码管相应的段选控制端并联在一起, 用驱动器74HC245驱动。P1口(P1.0〜P1.7):是89C51单片机唯一的单功能端口,仅仅能用作通用的数据输入/输出口。P1口的逻辑电路与P2口相似,但其内部没有输出控制电路,而且具有上拉电阻。所以其只能作为通用I/O端口使用。在此系统中,P1口是用来控制数码管的公共端,也称作为“位选端”。P2口(P2.0〜P2.7):端口2也具有2个功能:一个是具有内部提升电路的双向I/O端口,与P0口相似;另一功能也跟P0口相似,P0口的第2功能是作为地址/数据线使用,而P2口是单一的地址线使用。系统扩展时作为高8位的数据线使用。当没有在89C51单片机芯片外扩展ROM和RAM且P2口高8位地址总线没有全部用到时,P2口的口线就可以全部作为通用I/O口线使用。P2口属于准双向口。在本系统中,P2口用于控制LED信号灯的亮灭。P3口(P3.0〜P3.7):作为通用I/O口,作为输出时,锁存器的状态端(Q)与输出引脚的状态相同;作为输入端口时,为使引脚处于高阻输入状态,需向锁存器输入程序数据“1”。输入的数据在“读引脚”信号的作用下,进入内部数据总线。所以, P3口在作为通用I/O口时,也属于准双向口。在本系统,P3口作为第二功能使用,主要利用按键模块实现系统的中断跳转。P3端口使用第二功能时:其引脚分配如下:P3.0:RXD串行通信数据的接收。P3.1:TXD串行通信数据的发送P3.2:INT0,外部中断0申请。P3.3:INT1,外部中断1申请。P3.4:定时/计时计数器0的外部输入。P3.5:定时/计时计数器1的外部输入。P3.6:WR外部数据存储器的写入信号。P3.7:RD外部数据存储器的读取信号。单片机引脚图如图3.1所示:3.4单片机最小系统上面提到单片机的应用系统可以分为硬件部分和软件部分。 软件部分指挥各个硬件执行烧录进单片机内的程序,如果没有程序那么它显然是无法工作的的。但如果它仅仅只是烧录了程序,它还是同样无法工作。原因是除了单片机和软件部分外,要使单片机能够正常工作,还需要时钟电路和复位电路。芯片加上时钟和复位电路,这样才是完整的最小单片机系统。在XTAL1引脚和XTAL2引脚间跨接一定频率的晶振构成时钟电路为单片机的正常工作提供基本时钟,机器周期则由晶振频率决定。复位电路则将系统恢复初始化。就如同此系统中,将系统恢复至东西通行,南北禁止的刚启动系统的状态。

YE匸LO17■abGREEN1 3RED24YELLO2 56KEYE匸LO17■abGREEN1 3RED24YELLO2 56KEVI7KEY2 SRSTl夕RXD10TXD11KEYS12HWKEZ14KEY515KEY?17:S-XTAL2ISL3XTAL1192URE1HGXDPVccPO.OP0.1PC.2P0.3PO4P0.5P0.6_P0.7IlA/VppALE/PR(XipSenP2.7P26P2.5P2.4P2.3P2JP2.1P2.039 AO"38Al尸A236AjA4A333A6A74031302Mb34678vcc103图3.1单片机电路引脚图为了实现单片机的同步工作,系统必须有唯一的时钟信号,并在这个时钟信号下严格的按时序进行状态转换和工作。这个时钟信号可以外部时钟也可以芯片自带的时钟信号。这种时钟信号由时钟电路提供。在本系统中,在 STC89C51单片机XTAL1和XTAL2之间接的是晶振频率为12MHz的晶振。机器周期是晶振频率的十二分频,所以机器周期为lus。适当编写程序,则可以定时1ms或者1s的时间。单片机与计算机相同,都有可能会出现故障死机或断电的情况,这时候则需要和计算机一样有一个复位键将系统重启,单片机的复位电路也是使 CPU和系统中的其他功能部件都恢复到一个确定的初始状态。实现复位的条件就是 RST引脚输入持续2次机器周期的高电平。复位后PC=OOOOH,即是从新从程序存储器的第1个单元取指令进行译码。若持续高电平则会循环复位。按键复位和上电自动复位是复位电路经常采用的两种不同的方式。 本系统所使用的是按键复位。按键在其余4个按键的中间,接芯片的RST引脚。按键瞬间RST引脚端电位与Vcc—致,随着电容C1的充电,充电电流的减少,导致RST引脚的高电位下降。只要RST引脚的高电位能够保证在2个机器周期以上,单片机就会进行复位操作,使系统复位。上电复位则要求接上电源之后能够自动实现系统的复位,原理相同,不再赘述。单片机最小系统原理图如图3.2所示:

vcc?vcz^ClRE10k121314F19vcc?vcz^ClRE10k121314F19Y12022.11MHztUi—cz _22pF 4_C322pFF -=—4Pl0T2VccPl1T2EXPOOPL2P0.1P1.3P0.2P1.4P03POJPl.6MISOP0.5Pl■P0.6RSTP0.7RXI)EAAPPP31TXDALEPROGP5.21NT0PSENPX3INT1Pi.7pmP2.6P55T1P25P3WP2-MP>3XTAL2P2.2XTAL1P2.1GND ■…P2.040393£

r3o35

n337T30292S<S■yy1图3.2单片机最小系统原理图3.5LED显示发光二极管简称为LED。它是一种半导体二极管。它的可见光是由空穴和电子结合时辐射而出的,因此它可以把电能转化为光能。主要由傢( Ga)与砷(As)、磷(P)、氮(N)、铟(In)等化合物制成这种半导体二极管。三极管具有 2个PN结,而发光二极管是由一个PN结组成的,它具有单向导电性。正向压降低,反向压降则要相对高得多。它改变了白炽灯钨丝发光与节能灯三基色粉发光的原理,而采用电场发光。因此它也是非常有发展前景的绿色照明光源。它的功耗低,寿命长,辐射低的特点使其得到了广泛的应用。不仅如此,它的光效率高,亮度大,同时可以回收利用的优点也使它成为非常受瞩目的新一代光源。它的运用简单,信号稳定,所以选择发光二极管作为我们

系统非常关键的模拟交通灯灯源。本系统所选用的是普通单色发光二极管。它具有体积小、工作电压低、工作电流小、发光均匀稳定、响应速度快、寿命长且价格低廉等优点,非常适合单片机交通灯系统的模拟交通灯。连接时也要注意 LED灯的单相导电性,接反将会导致交通灯无法正常使用。模拟交通灯利用发光二极管来显示不同颜色的信号指示灯。LED灯如图3.3所示:2*DSU2*DSUYELL3囂口gqEJIJLVCC图3.3LED灯显示电路3.6数码管显示数码管是一种半导体发光器件,在单片机系统中运用广泛,可以显示单片机的工作状态。就如同本系统中的数码管用来显示红绿黄灯状态的持续时间和跳转时间,是人机对话非常重要的输出设备。其基本单元是发光二极管。数码管显示是分段实现的,通过点亮不同段来显示不同的数字。其中按段数分为七段LED数码管和八段LED数码管,其中八段LED数码管比七段LED数码管多了一个LED灯在右下角作为数字的小数点。数码管按结构还可分为共阴极数码管和共阳极数码管。 在此系统中所采用的则是八段共阳极数码管结构。八个LED灯构成的共阳极数码管是将所有LED灯的阳极连接在一起接在高电平上作为公共控制端。阴极作为“段”的控制端,当其中一“段”的控制端接低电平时,该段对应的发光二极管就会点亮。通过点亮不同的段从而显示出各种数字。本系统的共阳极数码管的公共控制端接到+5V高电平上。共阴数码管是指将LED灯的阴

极接到一起形成公共阴极(COM的数码管,与阳极不同的是要接在低电平阴极上。而阳极作为段选端,要点亮某段时则需要输入高电平。LED数码管的显示方式可以分为静、动态显示两种。虽然静态显示相对于动态显示用较小的电流就能使数码管的亮度加强、 CPU运算时间少,编程也更简便,节省存储空间且显示便于检测和控制。但其占用的I/O口太多,只适合少位数码管使用。不适合此系统,所以选用动态显示,下面重点介绍数码管的动态显示。此系统用动态显示方式点亮4个2位数码管,各个共阳极数码管相应的段选控制端并联在一起由P0口控制,并用驱动器驱动。各位数码管的公共端,也称为“位选端”由单片机的P1口控制。数码管显示如图3.4所示:OO亠3L匚Z1:EPto总偉母PRJc2J-4l卜p■[[QBttl才sifk图3.4数码管显示3.7信号显示驱动电路74HC245译码器可接受3位二进制加权地址输入(AO,A1和A2),并当使能时,提供8个互斥的低有效输出(丫0至丫7)。74HC245特有3个使能输入端:两个低有效(E1和E2)和一个高有效(E3)。除非E1和E2置低且E3置高,否则74HC138将保持所有输出为高。利用这种复合使能特性,仅需4片74HC245芯片和1个反相器,即可轻松实现并行扩展,组合成为一个1-32(5线到32线)译码器。任选一个低有效使能输入端作为数据输入,而把其余的使能输入端作为选通端,则 74HC245亦可充当一个8输出多路分配器,未使用的使能输入端必须保持绑定在各自合适的高有效或低有效状态。74HC245作用原理于高性能的存贮译码或要求传输延迟时间短的数据传输系统 ,在高性能存贮器系统中,用这种译码器可以提高译码系统的效率。将快速赋能电路用于高速存贮器时,译码器的延迟时间和存贮器的赋能时间通常小于存贮器的典型存取时间 ,这就是说由肖特基钳位的系统译码器所引起的有效系统延迟可以忽略不计。 HC138按照三位二进制输入码和赋能输入条件,从8个输出端中译出一个低电平输出。两个低电平有效的赋能输入端和一个高电平有效的赋能输入端减少了扩展所需要的外接门或倒相器,扩展成24线译码器不需外接门;扩展成32线译码器,只需要接一个外接倒相器。在解调器应用中,赋能输入端可用作数据输入端。74HC245电路图如图3.5所示:图3.574HC245电路图3.8键盘输入电路单片机键盘有独立键盘和矩阵式键盘两种:独立键盘每一个 I/O口上只接一个按键,按键的另一端接电源或接地(一般接地),这种接法程序比较简单且系统更加稳定;而矩阵式键盘式接法程序比较复杂,但是占用的 I/O少。根据本设计的需要这里选用了

独立式键盘接法。独立式键盘的实现方法是利用单片机 I/O口读取口的电平高低来判断是否有键按下。将常开按键的一端接地,另一端接一个I/O口,程序开始时将此I/O口置于高电平,平时无键按下时I/O口保护高电平。当有键按下时,此I/O口与地短路迫使I/O口为低电平。按键释放后,单片机内部的上拉电阻使 I/O口仍然保持高电平。我们所要做的就是在程序中查寻此I/O口的电平状态就可以了解我们是否有按键动作了。在用单片机对键盘处理的时候涉及到了一个重要的过程,那就是键盘的去抖动。这里说的抖动是机械的抖动,是当键盘在未按到按下的临界区产生的电平不稳定正常现象,并不是我们在按键时通过注意可以避免的。这种抖动一般 10~200毫秒之间,这种不稳定电平的抖动时间对于人来说太快了,而对于时钟是微秒的单片机而言则是慢长的。硬件去抖动就是用部分电路对抖动部分加之处理,软件去抖动不是去掉抖动,而是避抖动部分的时间,等键盘稳定了再对其处理。所以这里选择了软件去抖动,实现法是先查寻按键当有低电平出现时立即延时 10~200毫秒以避开抖动(经典值为20毫秒),延时结束后再读一次I/O口的值,这一次的值如果为1表示低电平的时间不到10~200毫秒,视为干扰信号。当读出的值是0时则表示有按键按下,调用相应的处理程序。键盘控制电路图如图3.6所示:KEY5KE."'?KEY5KE."'?按键图3.6键盘控制电路图3.9红外接收原理红外线接收头的运作原理:它里面的有一个接收管,作用是把红外线发射装置所发

射出去的光信号转变成较弱的电信号,这个电信号再通过 IC里面的放大器处理,把信号增大,紧接着经过一系列的自动增益控制、带通滤波、解调变、波形整形后转化为遥控器发射出来的原始编码,再经过接收头的信号输出脚输入到电器上的编码识别电路。红外接收图如图3.7所示:

4软件设计跟C语言比起来,汇编语言所编写的代码生成的速率很快,但是程序看起来会十分复杂,很难读懂,然后用C语言所编写的代码在速率方面跟汇编语言差不多, 但是却比汇编容易更容易读懂,可移植性也很强,不仅如此, 在编写高时效性的代码的时候,C语言还能够嵌入汇编语言来完成。在开发周期的方面,如果一般中大型的软件,编写都是用C语言来实现,因为它的开发周期比汇编语言的要少许多。 综上所述,本人在这次的毕业设计当中选了C语言作为程序编程语言。而这次的毕业设计的程序用Keil卩Vision2.0这款软件进行编写。因为这个编程软件不但支持各种公司的芯片,还具有编译、编辑以及仿真等功能,不仅是 C语言,它还支持PLM汇编这两种语言的编写和设计,界面非常简洁,让人容易上手。在程序的调试和软件的仿真这两个方面都很优秀。所以这次的编程的软件本人选的是 Keil卩Vision。系统总的流程图如图4.1所示:4.1定时器的设置定时器的工作方式可以分为4种,工作方式0是13位的定时计数器;16位的定时计数器可以用工作方式1来实现;工作方式2是8位的定时计数器;工作方式3情况较复杂,定时计数器T0才可以在此工作方式下工作,T0被分解成独立的两个8位定时计数器。而在此系统的程序,所采用的是工作方式1。具体用代码TMOD=0x1来设置2个定时计数器T0,T1都工作在工作方式1下。4.2中断程序的设置在中断情况下,本系统的程序中断思路流程图如图 4.2所示,采用外部中断0进入只允许东西通行的特殊情况;采用外部中断1进入只允许南北通行的特殊情况;在自然情况下,外部中断0的优先级高于外部中断1,系统无特别要求可不设置外部中断的优先级。特殊情况(紧急情况)中断返回图4.2程序中断思路流程图本系统的设计所用的定时中断程序是非常重要的,定时计数器启动之后,它就开始在初始值上的加1计数,程序设定给TL0和TH0装载合适的初值,假设需要设定系统定时50ms计50000个数后,定时计数器将会溢出,此时的时间就是 50ms并且会进入中断系统,当需要设定系统时间1s时,程序设计时只要设置20次50ms的定时中断就是1s,这样便可精确控制定时时间同时利用中断系统完成数码管输出数据刷新和处理不同状态的切换。定时中断系统的程序流程图具体情况如图 4.3所示。5调试5.1断电调试以保安全,避免硬件被烧坏,本人一开始先进行的是断电测试。首先用万能表检查

r r定时中断入口1r r定时中断入口1T启动定时器中断1 J1r初始化定时器0计数变量自加1图4.3定时中断流程图电路是不是有短路的情况出现,然后看看设计的原理是不是对的,每一个线路电压有没有出现错误。经过检查,断电测试没有问题。5.2通电调试A、 插入电源后,按了开关,发现电路没有反应,经过一系列的测试排除后发现输入电压最少应该为6.5V,经过处理,换了一个9V的电源,问题终于得到了解决。B、 测试系统的时钟是不是正确的,本人的方法是用万能表来测试。把万能表调到直流电压档这个档位,然后把两线分别接在 XTAL1与AXTAL2之间,显示出来的数字是2.4,没有问题。C、 复位电路经过检测没有出现问题。D数码管显示有时显示不正常,经过一系列排查处理之后,恢复正常。 LED灯表现也正常。5.3功能部分的测试A、接上电源后,交通灯开始运作,运作正常。运行 1分钟,按复位键,恢复到了开始状态,表现正常。B、 按紧急停止按键,四个红灯一起亮了,再按一次,退出该模式,表现正常。C、 按显示车流量按键,数码管显示倒计时停止,红外线每检测到一个信号,计数加1,再按一次,退出该模式,表现正常。D按单向通行按键,按一次为东西通行,按两次为南北通行,按第三次退出该模式,表现正常。E、 按夜间模式按键,按一次路口全为黄灯,按第二次退出该模式,表现正常。F、 按调时按键,调节东西方向的红灯和绿灯时长,按一次为调节红灯时长,按两次为调节绿灯时长,再按时间加减两个按键,时间按照按键的次数加减,再按一次,退出该模式,表现正常。6结论通过这次毕业设计,我学到了许许多多的东西。总结有以下几条:(1) 首先,学习到最明显的就是word的运用。在这次毕业设计以前,除了几次基本的文字编辑之外,其它的功能根本就没有用过。通过这篇论文的修改,我学会了很多功能的运用,包括段落、页面、页眉、等各种编辑功能。虽然我知道 word的功能远远不止这些,但是这次起码让我学习到了我以前不会的东西,这就是一种进步的表现。(2) 通过复习大学期间学过的有关知识,我将此充分运用到了这次的毕业设计当中,跟实践相联合。同时,我也发现自己有很多知识不明白,都是通过问老师,查资料自学来掌握,我相信经过我的努力,可以完美的完成这次毕业设计。(3) 在这次毕业设计中,我对单片机有了更深的理解,学习到了更多关于单片机的知识。通过深入的研究和思考,在程序编写方面也有自己独特的一套思路,编写的时候更加熟练,灵巧。(4) 增强了查阅资料和自学的能力。在这次毕业设计当中,我遇到了很多不会的问题,然后我就开始自己上网搜索,查找或者翻阅书本查找,经过自学之后,如果还是不懂,我就会问同学和老师,最后通过自己的理解逐渐的把问题解决了。这让我体会到了什么叫学无止境,知识是无限的,我们只有通过不断的学习,提升自己的知识面,才能更好的运用到实际当中,使生活更加美好,思想境界更加广阔。参考文献[1]边海龙,孙永奎.单片机开发与典型工程项目实例详解 J].电子工业出版社,2008,(10)143-160.[2]王为青,邱文勋.51单片机开发案例精选[J].人民邮电出版社,2001,(5):45-47.[3]张鑫,华臻,陈书谦.单片机原理及应用[J].电子工业出版社,2008(5).[4]张洪润,张亚凡•单片机原理及应用[J].清华大学出版社,2005,(4).⑸黄智伟•凌阳单片机课程设计指导[J].北京航空航天大学出版社,2007,(6)⑹蒋辉平,周国雄.基于Proteus的单片机系统设计与仿真实例 [M].机械工业出版社,2009.TOC\o"1-5"\h\z张毅坤.单片微型计算机原理及应用, [M]西安电子科技大学出版社 1998余锡存曹国华.单片机原理及接口技术[M].陕西:西安电子科技大学出版社,2000.7雷丽文等.微机原理与接口技术[M].北京:电子工业出版社,1997.张萌•单片机应用系统开发综合实例•第二版•清华大学出版社• 2005年何立民•单片机应用文集•第一版•北京航空航天大学出版社• 2004年张一工•现代电力电子技术原理与应用第一版•科学出版社• 2002年欧阳文•ATMEL89系列单片机的原理与开发实践•第一版•中国电力出版社• 2007年谢辞在即将结束本文,完成毕业设计的时刻,我要向所有在我毕业设计阶段乃至我大学帮助过我的老师和同学致以深深的谢意,感谢他们在学习和生活上给我的帮助。 .通过本次毕业设计,我在指导老师的精心指导和严格要求下,获得了丰富的理论知识,极大地提高了实践能力,并对当前电子领域的研究状况和发展方向有了一定的了解,单片机领域这对我今后进一步学习计算机方面的知识有极大的帮助。 在设计中遇到了很多编程问题,最后在老师的辛勤指导下,在同学的热情帮助下 ,终于迎刃而解。同时,在老师的身上我学到很多实用的知识,在此我表示感谢!最后,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!还有许许多多给予我学业上鼓励和帮助的朋友,在此无法列举,在此也一并表示忠心地感谢!附录1#include"REG52.H"#include"delay.h"#include"seg.h"附录程序源代码#defineSMG_DATAP0sbitbotton1=P1A6;sbitbotton2=PM7;sbitbotton3=卩3八4;sbitbotton4=卩3八5;sbitbotton5=卩3八6;sbitbotton6=卩3八7;sbitS1=P2A7;u8timebreakO=0;u8i=0; //定时器计数变量u16dx_redtime=14,dx_gretime=20,nb_redtime,nb_gretime,yeltime=5;//绿灯时间设置 一 一 一s16count_time=0; //u16num_stop=0,flag_stop=0;u8count_settime=0; //u8count_oneway=0; //时间调节量//是否需要紧急暂停调时键模式计数单向通行键模式计数u8breakflag=0;//是否有异常情况的出现u16break_count=0;// 计数变量u8car_time=0; // 车流量计时u8car_number=0;voidinitled();//voidinitnumber();//voidinitcross();//voidstop();//voiddisplaycount();//voidautsettime();voidoneway();初始化交通灯led初始化数码管初始化路口交通灯紧急中断路口为红灯显示车流量//自动调时//单向通行夜间模式时间加夜间模式时间加时间减路口调时异常情况处理voidaddtime();//voidcuttime();//voidsettime();//voidbreakfunction();〃/*第一排左边第一个按键为复位按键,第二个按键为紧急停止按键,按一次为路口红灯四方向停止通行,按两次退出该模式;第二排左边第一个按键为显示车流量按键,按一次显示车流量,按两次退出;第二个按键为单向通行按键,按一次为东西通行,按两次为南北通行,按三次退出;第三个按键为夜间模式按键,按一次路口全为黄灯,按两次退出夜间模式;第四个按键为调时按键,调节东西方向的红灯和绿灯时长,按一次为调节红灯时长,按两次为调节绿灯时长;第五个按键为加时按键,按一下时间增加一秒;第六个按键为减时按键,按一下时间减少一秒*/voidmain(){S1=0;//初始化时间nb_redtime=dx_gretime+yeltime;nb_gretime=dx_redtime-yeltime;//设置中断TMOD=0X01;TH0=(65536-50000)/256;TH0=(65536-50000)%256;EA=1;EX0=1;EX1=1;IT0=1;IT1=1;ET0=1;TR0=1;while(1){initcross();i=dx_redtime;while(i>0){breakfunction(); //异常情况的处理if(breakflag) //如果有异常情况,恢复时重新启动{breakflag=0;i=dx_redtime;}_//正常路口通行(东西红灯)dx_red=0; //东西红灯display_2(DONG,i-1);display_2(XI,i-1);if(i>yeltime+3) //南北绿灯{nb_gre=0;display_2(NAN,i-yeltime-1);display_2(BEI,i-yeltime-1);}_elseif(i>yeltime)// 南北绿灯闪烁{display_2(NAN,i-yeltime-1);display_2(BEI,i-yeltime-1);if(timebreakO<10){nb_gre=1;}_else{nb_gre=0;}_}else //南北黄灯{nb_gre=1;nb_yel=0;display_2(NAN,i-1);display_2(BEI,i-1);}}initled();i=nb_redtime;while(i>0){breakfunction();if(breakflag){breakflag=0;i=nb_redtime;}_//正常路口通行 (南北红灯)nb_red=0; //南北红灯display_2(NAN,i-1);display_2(BEI,i-1);if(i>yeltime+3) //东西绿灯{dx_gre=0;display_2(D0NG,i-yeltime-1);display_2(XI,i-yeltime-1);}_elseif(i>yeltime)// 东西绿灯闪烁{display_2(DONG,i-yeltime-1);display_2(XI,i-yeltime-1);if(timebreakO<10){dx_gre=1;}_else{dx_gre=0;}_}else //东西黄灯{dx_gre=1;dx_yel=0;display_2(DONG,i-1);display_2(XI,i-1);}}initled();}//定时器中断voidtimeO()interrupt1{THO=(65536-50000)/256;TLO=(65536-50000)%256;timebreak0++;if(timebreak0==20)//一秒定时{i--;car_time++;timebreak0=0;}if(car_time==300) //5分钟记录一次车流量{_car_number=break_count;break_count=0;car_time=0;}}//紧急中断voidExit_0()interrupt0{_initcross();num_stop++;if(num_stop%2){_flag_stop=1; //第一次中断为禁止通行TR0=0;timebreak0=0;breakflag=1;}else //第二次中断为恢复正常通行{flag_stop=0;TR0=1;dx_red=1;nb_red=1;}_}//紧急中断路口为红灯voidstop()if(flag_stop){_initled();}while(flag_stop){_dx_red=0;nb_red=0;initnumber();}}//计数器voidcountfunction()interrupt2{break_count++;}//显示车流量voiddisplaycount(){if(botton1==0){delay_ms(10);if(botton1==0){u8flag=1;while(!botton1);TRO=0;break_count=break_count%100;while(flag){display_2(DONG,break_count);display_2(XI,break_count);display_2(NAN,break_count);display_2(BEI,break_count);if(botton1==0){delay_ms(10);if(botton1==0){

flag=0;while(!botton1);}}}initcross();TRO=1;breakflag=1;}}}//根据车流量自动调时voidautsettime(){TR0=0;〃5分钟内车流量不同,时if(car_number>=0&&car_number<=20)〃5分钟内车流量不同,时{dx_redtime=20;dx_gretime=20;nb_redtime=dx_gretime+yeltime;nb_gretime=dx_redtime-yeltime;}一一elseif(car_number>20&&car_number<=50){一一dx_redtime=20;dx_gretime=50;nb_redtime=dx_gretime+yeltime;nb_gretime=dx_redtime-yeltime;}else{dx_redtime=20;dx_gretime=70;nb_redtime=dx_gretime+yeltime;nb_gretime=dx_redtime-yeltime;}TR0=1;}//初始化交通灯ledvoidinitled()dx_red=1;dx_yel=1;dx_gre=1;nb_red=1;nb_yel=1;nb_gre=1;}//初始化数码管voidinitnumber(){display_2(DONG,0);display_2(XI,0);display_2(NAN,0);display_2(BEI,0);}//初始化路口交通灯voidinitcross(){initled();initnumber();}//异常情况处理voidbreakfunction(){oneway();night();stop();settime();displaycount();autsettime();if(breakflag){timebreak0=0;}}//单向通行voidoneway(){if(botton2==0){delay_ms(10);if(botton2==0){while(!botton2);TRO=0;//timebreakO=0;initcross();count_oneway++;while(count_oneway<3){_if(count_oneway==1){_nb_red=0;

dx_gre=0;initnumber();}elseif(count_oneway==2){_nb_red=1;dx_gre=1;dx_red=0;nb_gre=0;initnumber();}if(botton2==0){delay_ms(10);if(botton2==0){count_oneway++;while(!botton2);}}}//第一次按下进入东西通行模式//第二次按下进入南北通行模式//第三次按下退出南北通行模式initcross();count_oneway=0;TR0=1;breakflag=1;~}}//夜间模式voidnight(){if(botton3==0){delay_ms(10);if(botton3==0) //判断是否按下按键进入夜间模式{u8flag=1;while(!botton3);TRO=0;//timebreakO=0;initcross();while(flag){dx_yel=0;nb_yel=0;initnumber();if(botton3==0) // 第二次按下退出夜间模式{delay_ms(10);if(botton3==0){flag=0;while(!botton3);}}}initcross();TR0=1;breakflag=1;}}}//路口调时第一次按下=》设置东西红灯的时间;第二次按下 =》设置东西绿灯的时间;第三次按下=

温馨提示

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

评论

0/150

提交评论