1、安徽机电职业技术学院毕业设计说明书基于单片机的自动控制交通灯系统设计系(部)电气工程系专业机电一体化班级机电3105班姓名学号1302103231指导教师20122013学年第1学期1摘要近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢靠的就是交通信号灯的自动指挥系统。交通信号灯控制方式很多。本系统采用MSC51系列单片机ATSC5
2、1和可编程并行I/O接口芯片80C51为中心器件来设计交通灯控制器,实现了能根据实际车流量通过8051芯片的P1口设置红、绿灯燃亮时间的功能;红绿灯循环点亮,倒计时剩秒时黄灯闪烁警示。本系统实用性强、操作简单、扩展功能强。当前,交通事业蓬勃发展,交通流量年年增长,大、中、小城市的汽车、摩托车等各种车辆与日俱增,道路交通繁忙,经常有严重堵车现象,特别是在交叉口,机动车、非机动车、行人来往非常混乱,为了在叉口的各条干道实现合理的科学分流。本人根据单片机具有物美价廉、功能强、使用方便灵活、可靠性高等特点,提出了一种用MCS51单片机自动控制交通信号灯及时间显示的方法,同时给出了软硬件的实现方法,为交
3、通指挥自动化提供了一种新的廉价手段,具有一定的推广意义。关键词交通灯、自动控制、时间显示器、定时器、延时、外部中断2目录摘要1目录2第一章单片机控制交通灯的背景311交通灯的背景312单片机简介3第二章单片机控制交通系统总体设计721单片机交通控制系统通行方案设计722单片机交通控制系统的功能要求823单片机交通控制系统的基本构成及原理9第三章系统硬件电路的设计1131系统硬件总电路构成及原理11第四章系统软件程序的设计1641程序主体设计流程1642子程序模块设计17参考文献21附录A223第一章单片机控制交通灯的背景11交通灯的背景111交通灯的历史19世纪初,在英国中部的约克城,红、绿装
4、分别代表女性的不同身份。其中,着红装的女人表示我已结婚,而着绿装的女人则是未婚者。后来,英国伦敦议会大厦前经常发生马车轧人的事故,于是人们受到红绿装启发,1868年12月10日,信号灯家族的第一个成员就在伦敦议会大厦的广场上诞生了,由当时英国机械师德哈特设计、制造的灯柱高7米,身上挂着一盏红、绿两色的提灯煤气交通信号灯,这是城市街道的第一盏信号灯。在灯的脚下,一名手持长杆的警察随心所欲地牵动皮带转换提灯的颜色。后来在信号灯的中心装上煤气灯罩,它的前面有两块红、绿玻璃交替遮挡。不幸的是只面世23天的煤气灯突然爆炸自灭,使一位正在值勤的警察也因此断送了性命。从此,城市的交通信号灯被取缔了。直到19
5、14年,在美国的克利夫兰市才率先恢复了红绿灯,不过,这时已是“电气信号灯”。稍后又在纽约和芝加哥等城市,相继重新出现了交通信号灯。112交通灯的出现随着各种交通工具的发展和交通指挥的需要,第一盏名副其实的三色灯红、黄、绿三种标志于1918年诞生。它是三色圆形四面投影器,被安装在纽约市五号街的一座高塔上,由于它的诞生,使城市交通大为改善。黄色信号灯的发明者是我国的胡汝鼎,他怀着“科学救国”的抱负到美国深造,在大发明家爱迪生为董事长的美国通用电器公司任职员。一天,他站在繁华的十字路口等待绿灯信号,当他看到红灯而正要过去时,一辆转弯的汽车呼地一声擦身而过,吓了他一身冷汗。回到宿舍,他反复琢磨,终于想
6、到在红、绿灯中间再加上一个黄色信号灯,提醒人们注意危险。他的建议立即得到有关方面的肯定。于是红、黄、绿三色信号灯即以一个完整的指挥信号家族,遍及全世界陆、海、空交通领域了。12单片机简介121单片机的发展历程单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。在MCS51系列单片机中,有两个子系列51子系列和52子系列。每个子系列有诺干中型号。51系列有8051、8751和8031三个型号,后来经过改进产生了80C51、87C51、80C31三个型号;52系列有5021、8752、8032三个型号,改进后的型号是4
7、80C52/87C52、80C32。改进后的型号更加省电。52系列比对应的51系列增加了定时器T2并将内部程序存贮器增加到8KB。INTER公司停止生产MCS51系列单片机之后将生产权转让给了许多其他公司,于是出现了许多与MCS51兼容的单片机。现在生产MCS51兼容单片机的公司对其进行了不同程度的改进和提高。我们现在使用比较的多的是AT89C51/AT89S51等。通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件中央处理器、存储器和I/O接口电路等。因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。单片机经过1、2、3、3代的发展,目前单片机正朝着
8、高性能和多品种方向发展,它们的CPU功能在增强,内部资源在增多,引角的多功能化,以及低电压底功耗。122单片机的特点(1性价比高,开发周期短,易于产品化,(2)集成度高,可靠性好,抗干扰性强,(3)功能完善,接口多样,(4)低功耗、低电压一般电源供电电压在53V范围内单片机都能正常工作,供电的下限可达12V。(5)总线多样,易于扩展单片机外部的典型三总线结构,方便系统构扩展,构成各种规模的应用系统。外部总线增加了I2C及SPI等串行总线方式,可根据需要进行并行或者串行扩展。123MCS51单片机内部结构有8大部分(1)一个8位的中央处理器CPU(又称为微处理器)中央处理器CPU是整个单片机的核
9、心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。(2)有128字节的片内数据存储器RAM。8051内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。(3)4KB片内程序存储器ROM或EPROM8051共有4096个8位掩膜ROM,用于存放用户程序,原始数据4片内18个特殊功能寄存器(SFR)如图(图11)所示5
10、图11片内特殊存储器分布图54个8位的并行输入输出I/O口(PIO)8051共有4组8位I/O口P0、P1、P2或P3,用于对外部数据的传输P0口P00P07输入与输出分时的传送地址低8位与数据线P1口P10P17输入与输出无第二功能P2口P20P27输入与输出传送地址的高8位P3口P30P37输入与输出P30RXD串行口输入端P31TXD串行口输出端P31TXD串行口输出端P32外部中断0中断请求输入端P33外部中断1中断请求输入端P34T0定时器/计数器0外部输入端特殊功能寄存器SFR数据缓冲区位寻址区R7R03组(8字节)2组1组0组0F0HSFR可寻址区0E0H0D0H0C8H0B8H
11、0B0H0A8H0A0H98H90H88H80H0FFH80H7FH30H2FH20H1FH00H6P35T1定时器/计数器1外部输入端P36外部数据存储器写选通信号P37外部数据存储器读选通信号61个串行口I/O(SIO/UART)完成单片机与其他微机的之间的串行通信72/3个16位定时器/计数器(TIMER/COUNTER)8可处理5个中断源,两级可程序优先级的中断系统其中含有MCS51指令集含111条指令,按照指令操作功能话费有五类数据传送指令(28)算术运算指令(24)逻辑运算及转移指令(25)控制转移指令(22)位操作指令(12)124单片机的内部结构图除去图中的存储电路和I/O部件
12、,剩下的是CPU,它可以分为运算器和控制器两部分。运算器功能部件包括算术逻辑运算单元ALU、累加器ACC、寄存器B、暂存寄存器TMP1、TMP2、程序状态字寄存器PSW等。控制器功能部件包括程序计数器PC、指令寄存器IR、指令译码器ID、定时控制逻辑电路CU、数据指针寄存器DPTR、堆栈指针SP及时钟电路等。图12单片机内部结构图7第二章单片机控制交通系统总体设计21单片机交通控制系统通行方案设计设在十字路口,分为东西向和南北向,在任一时刻只有一个方向通行,另一方向禁行,持续一定时间,经过短暂的过渡时间,将通行禁行方向对换。其具体状态如下图所示。说明黑色表示亮,白色表示灭。交通状态从状态1开始
13、变换,直至状态6然后循环至状1,周而复始,即如图(图21)所示直至状态6然后循环至状态1,通过具体的路口交通灯状态的演示分析我们可以把这四个状态归纳如下图21交通状态1东西方向红灯灭,同时绿灯亮,南北方向黄灯灭,同时红灯亮,倒计时20秒。此状态下,东西向禁止通行,南北向允许通行。2东西方向绿灯灭,同时黄灯亮,南北方向红灯亮,倒计时2秒。此状态下,除了已经正在通行中的其他所以车辆都需等待状态转换。3南北方向红灯灭,同时绿灯亮,东西方向黄灯灭,同时红灯亮,倒计时20秒。此状态下,东西向允许通行,南北向禁止通行。4南北方向绿灯灭,同时黄灯亮,东西方向红灯亮,倒计时2秒。此状态下,除了已经正在通行中的
14、其他所以车辆都需等待状态转换。8下面我们可以用图表表示灯状态和行止状态的关系如下表21交通状态及红绿灯状态东西南北四个路口均有红绿黄3灯和数码显示管2个,在任一个路口,遇红灯禁止通行,转绿灯允许通行,之后黄灯亮警告行止状态将变换。状态及红绿灯状态如表21所示。说明0表示灭,1表示亮。22单片机交通控制系统的功能要求本设计能模拟基本的交通控制系统,用红绿黄灯表示禁行,通行和等待的信号发生,还能进行倒计时显示,车流量检测及调整,交通违规处理和紧急处理等功能。221倒计时显示倒计时显示可以提醒驾驶员在信号灯灯色发生改变的时间、在“停止”和“通过”两者间作出合适的选择。驾驶员和行人普遍都愿意选择有倒计
15、时显示的信号控制方式,并且认为有倒计时显示的路口更安全。倒计时显示是用来减少驾驶员在信号灯色改变的关键时刻做出复杂判断的1种方法,它可以提醒驾驶员灯色发生改变的时间,帮助驾驶员在“停止”和“通过”两者间作出合适的选择。222车流量检测及调整随着我国经济建设的蓬勃发展,城市人口和机动车拥有量在急剧增长,交通流量日益加大,交通拥挤堵塞现象日趋严重,交通事故时有发生。车辆检测器作为智能交通系统的基本组成部分,在智能交通系统中占有重要的地位。现阶段,车辆检测器检测方式有很多,各有其优缺点,如红外线检测器、地磁检测器、机械压电检测器,磁频检测器、波频检测器、视频检测器等。一般车流量检测器采用传感器单片机
16、外围器件来实现。而且,目前国内使用的红绿灯都是固定的红绿灯时间,并自动切换。红灯时间和绿灯时间,是根据道口东西向和南北向的车流量,利用统计方法确定的。交通警察不断观察十字路口的两个方向,根据车辆密度和流速决定是状态1状态3状态4状态6东西向禁行等待变换通行等待变换南北向通行等待变换禁行等待变换东西红灯1100东西黄灯0001东西绿灯0010南北红灯0011南北绿灯1000南北黄灯01009否切换红绿灯,以保证最佳的道路交通控制状态。223时间手动设置除系统根据车流量自动控制调整,也可以通过键盘进行手动设置,增加了人为的可控性,避免自动故障和意外发生,并再紧急状态下,可设置所有灯变为红灯。键盘是
17、单片机系统中最常用的人机接口,一般情况下有独立式和行列式两种。前者软件编写简单,但在按键数量较多时特别浪费I0口资源,一般用于按键数量少的系统。后者适用于按键数量较多的场合,但是在单片机I0口资源相对较少而需要较多按键时,此方法仍不能满足设计要求。本系统要求的按键控制不多,且I0口足够,可直接采用独立式。224紧急处理交通路口出现紧急状况在所难免,如特大事件发生,救护车等急行车通过等,我们都必须尽量允许其畅通无阻,毕竟在这种情况下是分秒必争的,时时刻刻关系着公共财产安全,个人生死攸关等。由此在交通控制中增设禁停按键,就可达到想此目的。23单片机交通控制系统的基本构成及原理单片机设计交通灯控制系
18、统,可用单片机直接控制信号灯的状态变化,基本上可以指挥交通的具体通行,当然,接入LED数码管就可以显示倒计时以提醒行使者,更具人性化。本系统在此基础上,加入了违规检测电路和车流量检测电路为单片机采集数据,单片机对此进行具体处理,及时调整控制指挥,为了超越视觉指挥的局限性,同时接上蜂鸣器,在听觉上加强了指挥提醒作用。如图(图22)所示单片机图22系统的总体框图单片机红黄绿信号灯8级LED数码管显示车流量传感器最小系统外围接口按键控制蜂鸣器10据此,本设计系统以单片机为控制核心,连接成最小系统,由车流量检测模块,违规检测模块,和按键设置模块等产生输入,信号灯状态模块,LED倒计时模块和蜂鸣器状态模
19、块接受输出。系统的总体框图如上所示。键盘设置模块对系统输入模式选择及具体通行时间设置的信号,系统进入正常工作状态,执行交通灯状态显示控制,同时将时间数据倒计时输入到LED数码管上实时显示。在此过程中还要实时捕捉违规检测和紧急按键信号,以达到对异常状态进行实时控制的目的。急停按键和违规检测随时调用中断。在模式选择上,若为自动模式,将不断调用车流量检测模块对车流量进行检测统计,到达一定时间将修正通行时间一满足不同路况的需要。11第三章系统硬件电路的设计31系统硬件总电路构成及原理实现本设计要求的具体功能,可以选用AT89C52单片机及外围器件构成最小控制系统,12个发光二极管分成4组红绿黄三色灯构
20、成信号灯指示模块,8个LED东西南北各两个构成倒计时显示模块,车流量检测传感器采集流量数据,光敏传感器捕获违规信号,若干按键组成时间设置和模式选择按钮和紧急按钮等,以及用1个蜂鸣器进行报警。311系统硬件电路构成本系统以单片机为核心,组成一个集车流量采集、处理、自动控制为一身的闭环控制系统。系统硬件电路由车流量检测电路、单片机、违规检测电路,状态灯,LED显示,按键,蜂鸣器组成。其具体的硬件电路总图如图31所示。其中P0,P1,用于送显两片LED数码管,P2用于控制红绿黄发光二极管,XTAL1和XTAL2接入晶振时钟电路,REST引脚接上复位电路,P32即INT1接违规检测电路和紧停东西时间设
21、置键J,P33即INT1接车流量检测电路,P36接南北时间设置键S,P37接自动模式选择返回键F,P34接蜂鸣器。312系统工作原理系统上电或手动复位之后,系统等待模式选择设置键按下,模式分两种红绿灯时间自动和红绿灯时间设置。若此时F键按下,则设置为自动模式,若此时按下的是S键,则设置为时间设置模式,依次按S若干次,J键若干次可设置好两个方向的红绿灯时间,再按F键确认。其实这个过程就是将存储时间值的寄存器进行设置,以及标志是否要进行车流量检测及调整。接下来,系统必须先显示状态灯及LED数码管,将状态码值送显P2口,将要显示的时间值的个位和十位分别送显P0和P1口,在此同时以50MS为周期,用软
22、件方法计时1秒,到达1S就要将时间值减1,刷新LED数码管。时间到达一个状态所要全部时间,则要进行下一状态判断及衔接,并装入次状态的相应状态码值以及时间值,当然,还要开启两个外部中断,其一为违规信号或禁停信号输入,一旦信号有效,中断开始,进入中断服务子程序,开启蜂鸣器禁止全部通行,当按下F键,中断结束返回。其二为车流量检测信号输入,若检测到车辆经过,进入相应的中断子程序,将存储车流量的寄存器加1,然后中断结束返回。每满一个状态循环周期,若为自动模式,则须将检测到的车流量数据处理一次,判断两个方向的交通轻重缓急状况,再调整下次状态循环的红绿灯时间,以达到自动控制的目的。如图(图31)所示。12图
23、31基于单片机的交通灯控制系统电路图313车流量检测电路及模拟为了达到对红绿灯的时间控制,需要对道路上的车流量进行检测。当前比较流行的车流量检测器件,是一种自感式的车辆传感器。其工作原理是当车辆经过传感器时,引起其自感的变化,考虑到单片机系统的便利性,本次设计用一种手动的操作方式,即车流量的检测电路用拨断开关代替。其基本思路为当车流量大时,有拨断开关送出一个高电平。另外,再单片机和坡度按开关之间加了光电隔离。下面13叫简绍光电隔离,以TLP550为例。TLP550是日本东芝公司生产的一款光耦,该光耦没有和基极连接,适合与再噪声比较大的环境中应用。TLP550的工作原理如下当23叫的电压为正,且
24、能时发光二极管正常发光时,控制的发光二极管发光,使得输出端的光敏二极管导通。这样输出端的基极相当于与8引脚连接,其电平为高,使得三极管导通,及56两个引脚导通。由于5引脚接地,这样输出端6叫就为低电平。再实际使用中,68引脚通常会连接一个电阻。这样当23引脚的电压不足使发光二级光发光时,输出端三极管就不到同,就相当于输出端6引脚通过一个电阻接到了8脚上。相对于后面的连接电路来书,其为高电平。这样就可以通过控制23引脚之间的电压,来控制输出6引脚的电平,达到电压耦合的隔离的作用。车流量检测电路如下图(图32)所示。图32车流量检测电路基于光电隔离的作用,再加上拨断开关和LED,为了避免干扰信号,
25、可以加入光电耦合器。如图所示,当开关状态如图所示时,LED点亮,同时低电平被单片机捕获。当开关拨下时LED熄灭,同时高点平被单片机捕获,这样单片机通过捕获的电平状态做出相应的控制,与LED的状态即车流量的状态互相配合协调。314八段LED数码管LED显示屏作为大型显示设备的一种,具有亮度高、价格低、寿命长、维护简便等优点。LED数码管的结构简单,分为七段和八段两种形式,也有共阳和共阴之分。以八段共阳管为例,它有8个发光二极管比七段多一个发光二极管,用来显示SP,即点,每个发光二极管的阳极连在一起,如图(图33)所示。这样,一个LED数码管就有I根位选线和8根段选线,要想显示一个数值,就要分别对
26、它们的高低电平来加以控制。为方便起见,本文主要讨论共阳八段LED数码显示管,其他类形的显示管与其类似。14图33LED数码管LED灯的显示原理通过同名管脚上所加电平的高低来控制发光二极管是否点亮而显示不同的字形,如DP,G,F,E,D,C,B,A全亮显示为,采用共阳极连接驱动代码,代码表如下表(表31)所示。表31驱动代码表显示数值DP,G,F,E,D,C,B,A驱动代码011010000C0H111111001F9H210100100A4H310110000B0H41001100199H51001001092H61000001082H711111000F8H81000000080H91001
27、000090H相应在程序软件上,可以通过调用程序给定的秒值经过特定计算算出需要显示的个位和十位,然后有DPTR调取LEDMAP的代码。LED8段数码管的设置为每个方位上的一对2为显示器。四个方位上总共用8个LED接在单片机的IO口上。虽然路口不一样,但是显示的时间在数字上是一样的,所以两边连接的IO口是对称的。如图(图34)所示,其中A,B分别是P0,P1的网络标号。15图34LED连接图315其它器件(1)发光二极管根据本设计的特点,红绿灯的显示不可少,红绿灯的显示采用普通的发光二极管。每个方向上设置红绿黄灯,总共4组。如果东西红灯亮,那南北方向就是绿灯亮,反之亦然,所以在硬件上连接图上也是
28、对称分布的,如下图(图35)所示图35信号灯的连接(2)按键控制本设计设置了有3个键S键P32,J键P32,F键P37。每个按键一端接地,另一端接上拉电阻。低电平有效,当按键按下端口接地,单片机捕获到低电平,从而知道相应的输入信息。如下图(图36)所示。图36按键示意16第四章系统软件程序的设计41程序主体设计流程全部控制程序实际上分为若干模块键盘设置处理程序,状态灯控制程序,LED显示程序,消抖动延时程序,次状态判断及处理程序,紧停或违规判断程序,中断服务子程序,车流量计数程序,红绿灯时间调整程序等。整个软件程序方面主要分两大部分按键处理程序和50MS扫描程序。流程图如图(图41)所示。图4
29、1系统总的流程图1742子程序模块设计421按键扫描程序首先程序不断扫描模式设置键,分别记为S键,J键,F键对应端口的36,P32,P37,低电平有效,按键顺序是指定的,若直接按F键,则为自动调整模式,然后进入下一程序;若先按S键,再按J键,F键则为设置时间模式,然后进入下一程序。程序的开始要判断是否有键按下,可以不断将S键值和F键值相与,与值为1则表示没有键按下,为0则表示有键按下,程序如下K1MOVC,P00ANLC,P01JBC,K1接下来要判断具体是那个键,若为F键,则将自动标志位置1,进入下一程序,否则为S键,则表示设置南北绿灯时间,用R0存值,按1下加1,同时还需判断此时J键是否按
30、下,若按下,则表示南北绿灯时间设置完毕,开始设置东西绿灯时间,用R1存值,同样按1下加1,同时判断此时F键是否按下,若按下,则表示时间设置完毕,进入下一程序。在这个过程中,S,J键的计数是循环的,从初值20开始,加到40则循环回到20。如判断S键程序如下CJNZR0,40,V1MOVR0,20V1INCR0422状态灯显示及判断在本设计中,实际控制的灯只有6个,即东西红灯,东西绿灯,东西黄灯,南北红灯,南北绿灯,南北黄灯。定义IO端口如下,其中均是低电平有效。H_GREENBITP22H_YELLOWBITP23L_REDBITP2418L_GREENBITP25L_YELLOWBITP26共
31、有4钟状态东西红灯亮,南北绿灯亮(11011101/DDH);东西红灯亮,南北黄灯亮(10111101/BDH);东西绿灯亮,南北红灯亮(11101101/EDH);东西黄灯亮,南北红灯亮(11100111/E7H)。括号中是P2端口8个引脚值P27,P26,P25,P24,P23,P22,P21,P20以及对应的十六进制码。在用于显示发光二极管时,直接由MOV指令将十六进制码送入P2口。刚才的4个状态是依次变换的,这就要涉及到状态的判断和衔接了。先把P2端口的值与所有的4个状态码比较,若相同则判断成功当前状态,再把下一状态的状态码送显P2即可。程序如下MOVA,P2CJNZA,0DDH,D1
32、MOVP2,BDHD1CJNZA,BDH,D2MOVP2,EDHD2CJNZA,EDH,D3MOVP2,E7HD3CJNZA,E7H,YMOVR2,DDH423LED倒计时显示LED计时每1秒都要刷新1次,那么计时满1秒时就要将存储时间的工作寄存器R4减1,然后送入LED显示程序中显示。下面要将时间数据R4的十位,个位分开送显P1,P0端口,首先将R4除以10,整数即十位放在A中,余数即个位放在B中,设置7段LED显示数据的数据表,用数据指针寄存器DPTR指向数据表的首地址,再加上A中的偏移量,就可以指向十位数字,然后送显即可,个位显示同理。具体程序如下MOVA,R4MOVB,10DIVA,B
33、MOVDPTR,LEDMAPMOVCA,ADPTRMOVP1,AMOVA,B19MOVCA,ADPTRMOVP3,ALEDMAPDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH424车流量检测中断服务子程序车流量检测是用外部中断引脚P33即INT1捕获到一个低电平,则进入相应的中断服务子程序,在子程序中,用R5计南北向车流量,用R6计东西向车流量,设车向标志位为01H,判断车向,程序如下JNB01H,UINCR5UINCR6425紧停及违规中断服务子程序紧停按键和违规信号传感器均连接到外部中断引脚P32,即INT0捕获到一个低电平,则进入该中断,中断程序中先把
34、蜂鸣器P34端口置0,启动蜂鸣。并且等待恢复键F键P37按下,然后关闭蜂鸣返回。INT0SETBP05JBP00,LCALLDELAYCLRP05RETI426红绿灯时间调整程序根据红绿灯时间调整原理,一个周期下来,R5,R6中分别存储着南北,东西的车流量,接下来求单位时间车流量,此时南北向时间,东西向时间分别存储在R0,R1中,则两个方向的流量比例为(R5/R0)/(R6/R1)R5R1R6R0,显然该比例是1左右带小数的值,然而单片机程序中只取整数,重要的数据信息就会丢失,所以本设计中首先将R5R1乘以10,比例就变为10左右的值。将该比例值放在A,然后进行时间调整。由于受到多方面的限制,
35、时间调整在此只划定3个范围。比例0到07为一个范围,08到15为一个范围,15以上为一个范围。第一范围显然表明东西向交通严重,应将时间调长;第二范围表明两向相当,可设置一样的时间,第三范围表明南北向交通严重,应将该向时间调长。具体设置如下表(表41)20表41比例及调整时间南北与东西向比例007081515及以上调整南北向时间203040调整东西向时间403020由表可知,对应的时间调整也只有三种,分别是20,40;30,30;40,20显然在实际应用中这样简单的处理难以尽如人意,但在此处,本设计只是模拟大致的调整过程,以上要求的程序如下CJNZA,7M1M2MOVR2,20MOVR1,40S
36、JMPOUTM1JBC,M2CJNZA,15N1N2MOVR0,30MOVR1,30SJMPOUTN1JBC,N2MOVR0,40MOVR1,20OUTCLRR5CLRR6RET427消抖动程序利用程序执行一条指令的时间,再加上两次累减嵌套,程序如下DELAYMOVR2,14HA1MOVR7,0FFHDJNZR2,DJNZR7,A1RET428源程序见附录A21参考文献1边海龙,孙永奎单片机开发与典型工程项目实例详解J电子工业出版社,2008,101431602王为青,邱文勋51单片机开发案例精选J人民邮电出版社,2001,545473张鑫,华臻,陈书谦单片机原理及应用J电子工业出版社,200
37、854张洪润,张亚凡单片机原理及应用J清华大学出版社,2005,45黄智伟凌阳单片机课程设计指导J北京航空航天大学出版社,2007,66蒋辉平,周国雄基于PROTEUS的单片机系统设计与仿真实例M机械工业出版社,20097张毅坤单片微型计算机原理及应用,M西安电子科技大学出版社19988余锡存曹国华单片机原理及接口技术M陕西西安电子科技大学出版社,200079雷丽文等微机原理与接口技术M北京电子工业出版社,199710张萌单片机应用系统开发综合实例第二版清华大学出版社2005年11何立民单片机应用文集第一版北京航空航天大学出版社2004年12张一工现代电力电子技术原理与应用第一版科学出版社20
38、02年13欧阳文ATMEL89系列单片机的原理与开发实践第一版中国电力出版社2007年14陈大钦电子技术基础实验M北京高等教育出版社200415陈梓城电子技术实训M北京机械工业出版社200316吴黎明单片机原理及应用技术M北京科学出版社200317李学海标准80C51单片机基础教程M北京北京航空航天大学出版社200618刘乐善微型计算机接口技术及应用M北京华中科技大学出版社200419陈炳权、曾庆六EDA技术实用教程M北京湘潭大学出版社201020先锋工作室单片机程序实例M北京清华大学出版社,200221李伯成基于MCS51单片机的嵌入式系统的设计M北京电子工业出版社,22附录AH_REDBI
39、TP21;定义IO端口H_GREENBITP22H_YELLOWBITP23L_REDBITP24L_GREENBITP25L_YELLOWBITP26;主程序,选择设置红绿灯时间模式或自动调整模式ORG0000HLJMPMAINORG0003H;中断入口LJMPINT0ORG0030HMAINMOVR3,20;用于嵌套50MS软件方法计时1SMOVR0,20;预设值红绿灯时间MOVR1,20CLREX0K1MOVC,P37;等待检测何种模式按键按下ANLC,P32JBC,K1JNBP37,F;F键按下为自动模式,进入扫描K2JNBP32,S;S键按下并等待计数次数SJMPK2FLCALLDE
40、LAYMOVR0,30MOVR1,30SETB00HSETBEASETBEX1SJMPSTARTSLCALLDELAYCJNZR0,40,V1MOVR0,2023V1INCR0JNBP01,JNBP36,J;J键按下并等待计数次数SJMPK2JLCALLDELAYCJNZR1,40,V2MOVR1,20V2INCR1JNBP36,JNBP37,START;设置完毕为设定时间模式,进入扫描JNBP36,JMOVP2,0DDH;预设信号灯状态,时间和车向MOVR4,R0SETB01HSETBEX0;程序开始,进行每50MS扫描STARTMOVTMOD,01HMOVTH0,3CHMOVTL0,0B0
41、HCLRTF0SETBTR0;开始50MS计时DJNZR3,Y;1S是否计时完毕MOVR3,20DJNZR4,Y;本状态是否结束,并进行下一状态设置MOVA,P2CJNZA,0DDH,D1MOVP2,BDHMOVR4,5D1CJNZA,BDH,D2MOVP2,EDHMOVR4,R1CLR01HD2CJNZA,EDH,D3MOVP2,E7HMOVR4,524JNB00H,D3LCALLDATAD3CJNZA,E7H,YMOVR2,DDHMOVR4,R0SETB01HYMOVA,R4;LED倒计时显示MOVB,10DIVA,BMOBDPTR,LEDMAPMOVCA,ADPTRMOVP1,AMOVA
42、,BMOVCA,ADPTRMOVP0,ALEDMAPDBC0H,F9H,A4H,B0H,99H,92H,82H,F8H,80H,90HJNB00H,WAIT;判断是否要计数车流量JBP33,WAIT;判断是否有车经过WAITJNBTF0,WAIT;50MS一次扫描完毕SJMPSTARTINT1JNB01H,U;判断车向INCR5UINCR6RETIINT0SETBP34;中断服务子程序,闯红灯或紧停按键JBP37,LCALLDELAYCLRP34RETIDATAMOVA,R6;车流量数据处理及红绿灯时间调整MOVB,R0MULA,BMOVR6,AMOVA,R5MOVB,R125MULA,BMO
43、VB,10MULA,BMOVB,R6DIVA,BCJNZA,7M1M2MOVR2,20MOVR1,40SJMPOUTM1JBC,M2CJNZA,15N1N2MOVR0,30MOVR1,30SJMPOUTN1JBC,N2MOVR0,40MOVR1,20OUTCLRR5CLRR6RETDELAYMOVR2,14H;延时程序,用于按键消抖动A1MOVR7,0FFHDJNZR2,DJNZR7,A1RETEND程序中部分端口说明P2状态灯P0LED个位P1LED十位P37F键自动调整模式/时间设置模式确认P32S键设置南北向通行时间P36J键设置东西向通行时间/紧停P33车流量检测26P32红外对管P34蜂鸣器R3存20用于乘以50MS计时1SR4暂存状态灯持续时间R0存南北向通行时间R1存东西向通行时间R5计南北向车流量R6计东西向车流量R2,R7用于软件延时00H自控标志位01H车向标志位
Copyright © 2018-2021 Wenke99.com All rights reserved
工信部备案号:浙ICP备20026746号-2
公安局备案号:浙公网安备33038302330469号
本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。