版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGEII摘要十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠的是交通信号灯的自动指挥系统。交通信号灯控制方式很多。本系统采用MSC-51系列单片机Intel8051和可编程并行I/O接口芯片8255A为中心器件来设计交通灯控制器,实现了能根据实际车流量通过8051芯片的P1口设置红、绿灯燃亮时间的功能;为了系统稳定可靠采用了MAX629“看门狗”芯片,避免了系统因为死机而停止工作的情况发生;显示时间直接通过8255的PA、PB口输出;交通灯信号通过PC口输出;交通灯的点亮采用VT双向晶闸管来控制,直接采用220V交流电源驱动,系统实用性强、操作简单、扩展性强。关键词:单片机,交通灯,控制器,设计,实现AbstractCrossroadsvehiclewearcomb,pedestrianXiRang,turntobeallrightlane,personpedestriansays,methodically。Doyouleanwhattorealizethisorderlyorder?Whatleanisthattheautomaticcommandsystemoftrafficsignallamp。Trafficsignallampcontrolwayismany。ThissystemadoptsMSC-51seriesonlyflatmachineIntel8051withbutprogrammingparallelinterfacechip8255AofI/Oiscentraldevicethedesigncontrolleroftrafficlights,haverealizedcanmeasureaccordingtoactualwagonflowtheP1installationbonusandgreenlightthatpassesthrough8051chipsburntolightthefunctionoftime;ForsystemstabilizereliablehaveadoptedMAX629thechip"doglooksafterthehouse",haveavoidedthatsystemstopsworkingconditionbecauseofhaltingtooccur;ShowthattimeisdirectlyexportedthroughPBandPAof8255;ThesignaloftrafficlightsisexportedthroughusuallyPCmouth;ThepointoftrafficlightslighttoadoptVTtwo-wayJingofloodgatepipecometocontrol,directlydrivewiththealternatingcurrentsourceof220V,practicalityisstrong,operatingissimple。Keywords:Onlyflatmachine,TrafficLights,Controller,Design,Realize目录前言 1一交通灯发展概述 1二课题的背景及意义 1三课题的任务及要实现的主要功能 2第一章交通灯的总体方案设计与论证 21.1单片机与外围接口部件 21.2电源提供 31.3倒计时显示界面 31.4输入键盘 31.5交通灯显示 41.6系统稳定运行保障系统 41.7理论分析与计算 4第二章硬件的选择与简介 82.18051芯片简介 82.1.18051内部结构 82.1.28051的引脚说明: 92.28255芯片简介 92.2.1内部结构 102.2.2引脚功能说明 112.2.3芯片功能 112.3其他器件 122.3.1数码管与交通信号灯 122.3.2看门狗MAX692 13第三章控制器硬件系统设计 153.1系统硬件设计方案 153.2系统工作原理 16第四章控制器的软件设计 184.1交通灯燃亮时间的设定 184.2软件延时 194.3时间及信号灯的显示软件设计 204.4程序设计 21结论 23致谢 24参考文献 24附录 24附录1:实验程序原代码 24附录2:实验原理图 28前言单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和I/O接口电路等。因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。单片机经过1、2、3、3代的发展,目前单片机正朝着高性能和多品种方向发展,它们的CPU功能在增强,内部资源在增多,引角的多功能化,以及低电压底功耗。一交通灯发展概述在今天,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。这一技术在19世纪就已出现了。1858年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。这是世界上最早的交通信号灯。1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。它由红绿两色以旋转式方形玻璃提灯组成,红色表示“停止”,绿色表示“注意”。1869年1月2日,煤气灯爆炸,使警察受伤,遂被取消。1914年,电气启动的红绿灯出现在美国。这种红绿灯由红绿黄三色圆形的投光器组成,安装在纽约市5号大街的一座高塔上。红灯亮表示“停止”,绿灯亮表示“信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。1968年,联合国《道路交通和道路标志信号协定》对各种信号灯的含义作了规定。绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行横道的行人优先通行。红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。二课题的背景及意义随着城市机动车量的不断增加,许多大城市如北京、上海、南京等出现了交通超负荷运行的情况,因此,自80年代后期,这些城市纷纷修建城市高速道路,在高速道路建设完成的初期,它们也曾有效地改善了交通状况。然而,随着交通量的快速增长和缺乏对高速道路的系统研究和控制,高速道路没有充分发挥出预期的作用。而城市高速道路在构造上的特点,也决定了城市高速道路的交通状况必然受高速道路与普通道路耦合处交通状况的制约。人们的消费水平不断的提高,私人车辆不断的增加。人多、车多道路少的道路交通状况已经很明显了。我国是13亿多人口的大国,到2004年,全国的机动车保有量超过了6000万,而全国公路通车总里程只有14。3万公里。静态比例为:人均车辆越0。5辆,而人均道路只有0。00011公里;每辆车均道路占有量约为0。002公里;且其中90%如果将每个交通十字路口的多余交通警察撤回,安排在最不利于管理和事故高发的地方,不但可以大大的降低交通事故的发生率,而且可以节省大量的人力财力。基于新型规则的可编程交通控制系统(以下简称交通控制系统)可以实现对车辆、行人的控制,使的交通便于管理。所以,采用单片机自动控制交通灯有现实的社会意义。三课题的任务及要实现的主要功能本系统由单片机系统、键盘、LED显示、交通灯显示系统组成。系统包括人行道、左传、右转、以及基本的交通灯的功能。系统除基本的交通灯功能外,还具有倒计时,时间设置,紧急情况处理、及根据具体情况手动控制等功能。在紧急情况下,设置交通灯状态为:
全红:东南西北所有方向禁止通行。
南北红、东西绿:南北方向禁行;东西方向通行。
东西红、南北绿:东西方向禁行;南北方向通行。第一章交通灯的总体方案设计与论证根据课题任务的要求,该系统具有交通灯的显示功能,倒计时功能,改变时间设定功能,所以把系统分为几个模块,包括倒计时显示器、键盘、交通信号灯、控制模块和看门狗电路。系统硬件框图如下图1.1系统硬件连接框图1.1单片机与外围接口部件该系统主控芯片单片机采用MCS-8051,它内部具有128个8位用户数据存储单元和128个专用寄存器单元,两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向,可以满足该控制系统的设计要求。锁存器选用74LS373,用于单片机输出地址信号锁存。Intel8255是一个为微机系统设计的通用并行接口电路,可适用于多种微处理器的通用8位并行输入/输出接口芯片,在该系统中用于控制芯片I/O口的扩展。1.2电源提供为使模块稳定工作,须有可靠电源。我们考虑了两种电源方案方案一:采用独立的稳压电源。此方案的优点是稳定可靠,且有各种成熟电路可供选用;缺点是各模块都采用独立电源,会使系统复杂,且可能影响电路电平。方案二:采用单片机控制模块提供电源。改方案的优点是系统简明扼要,节约成本;缺点是输出功率不高。方案三:采用220V交流电源与稳压电源块给系统提供电源,这样既可以有高的输出功率,达到题目所给的要求。综上所述,我们选择第三种方案。1.3倒计时显示界面该系统要求完成倒计时、状态灯等功能。基于上述原因,我们考虑了三种方案:方案一:完全采用数码管显示。这种方案只显示有限的符号和数码字苻,无法胜任题目要求。方案二:完全采用点阵式LED显示。这种方案实现复杂,且须完成大量的软件工作;但功能强大,可方便的显示各种英文字符,汉字,图形等。方案三:采用数码管与点阵LED相结合的方法因为设计既要求倒计时数字输出,又要求有状态灯输出等,为方便观看并考虑到现实情况,用数码管与LED灯分别显示时间与提示信息。这种方案既满足系统功能要求,又减少了系统实现的复杂度。权衡利弊,第三种方案可互补一二方案的优缺,我们决定采用方案三以实现系统的显示功能。1.4输入键盘键盘在系统作用手动设灯亮时间、紧急情况处理。按键按照结构原理可分为两类:一类是触点式开关按键,如机械式开关、导电橡胶式开关等;另一类是无触点开关按键,如电气式按键,磁感应按键等。前者造价低,后者寿命长。目前,微机系统中最常见的是触点式开关按键。图1.2图1.2独立式按键电路全编码键盘能够由硬件逻辑自动提供与键对应的编码,此外,一般还具有去抖动和多键、窜键保护电路,这种键盘使用方便,但需要较多的硬件,价格较贵,一般的单片机应用系统较少采用。非编码键盘只简单地提供行和列的矩阵,其它工作均由软件完成。由于其经济实用,较多地应用于单片机系统中。独立式按键是直接用I/O口线构成的单个按键电路,其特点是每个按键单独占用一根I/O口线,每个按键的工作不会影响其它I/O口线的状态。独立式按键的典型应用如图1.2所示:独立式按键电路配置灵活,软件结构简单,但每个按键必须占用一根I/O口线,因此,在按键较多时,I/O口线浪费较大,不宜采用。图中按键输入均采用低电平有效,此外,上拉电阻保证了按键断开时,I/O口线有确定的高电平。当I/O口线内部有上拉电阻时,外电路可不接上拉电阻。不过,在设计键盘的时候,因为采用的是机械式按键,要考虑键盘去抖问题。按恢复键对上两者进行恢复到正常状态。键盘的按键由机械触点构成的。当开关K未被按下时,P1口输入为低电平,K闭合后,与之对应的P1口输入为高电平。由于按键是机械触点,当机械触点断开、闭合时,会有抖动,P1口输入端的波形会有尖锋脉冲出现。如图1.3所示。图1.3按键触点的机械抖动为了使CPU能正确地读出P1口的状态,对每一次按键只作一次回应,就必须考虑如何去除抖动,常用的去抖动的方法有两种:硬体方法和软体方法。单片机中常用软体法,因此,对于硬体方法这里不采用。软体方法是在单片机获得P1。0口为高的信息后,不是立即认定键盘K已被按下,而是延时10毫秒或更长一些时间后再次检测P1键盘接口,如果仍为高,说明K的确按下了,这实际上是避开了按键按下时的抖动时间。而在检测到按键释放后(P1。0为低)再延时5-10个毫秒,消除后沿的抖动,然后再对键值处理。不过一般情况下,我们通常不对按键释放的后沿进行处理,实践证明,也能满足一定的要求。当然,实际应用中,对按键的要求也是千差万别,要根据不同的需要来编制处理程序图1.3按键触点的机械抖动键盘采用独立式键盘,单片机的I/O口数可以满足该键盘,并且可以完成题目中的所要求的设定时间、紧急情况控制功能。1.5交通灯显示采用信号灯拼成箭头状作为人行提示/左右转提示,清晰明了。VT为双向晶闸管,当门极为高电平时晶闸管导通,该支路指示灯亮;当门极为低电平时晶闸管关断,该支路指示灯灭。用220交流电驱动交通灯,这样就满足了在阳光下或者在雾天也可以看清楚交通灯信号。1.6系统稳定运行保障系统由于单片机自身的抗干扰能力比较差,尤其在一些条件比较恶劣、噪声大的场合,常会出现单片机因为受外界干扰而导致死机的现象,造成系统不能正常工作,为了使该系统在噪声大的路口可以比较稳定的运行,在系统中设计了看门狗电路,用以保证系统在受到外界干扰死机或者不能正常工作时,可以自动重置。本系统采用专用芯片MAX692作为外部看门狗电路。1.7理论分析与计算1.交通灯显示时序的理论分析与计算
对于一个交通路口来说,能在最短的时间内达到最大的车流量,就算是达到了最佳的性能,我们称在单位时间内多能达到的最大车流为车流量,用公式:车流量=车流/时间来表示。
图2-1所示为一种红绿灯规则的状态图,分别设定为S1、S2、S3、S4,交通灯以这四的状态为一个周期,循环执行(见图2-2)。请注意图2-1b和图2-1d,它们在一个时间段中四个方向都可以通车,这种状态能在一定的时间内达到较大的车流量,效率特别高。依据上述的车辆行驶的状态图,可以列出各个路口灯的逻辑表,由于相向的灯的状态图是一样的,所以只需写出相邻路口的灯的逻辑表;根据图2-3可以看出,相邻路口的灯它们的状态在相位上相差180°。因此最终只需写出一组S1、S2、S3、S4的逻辑状态表。如表2-1所示。表中的“×”代表是红灯亮(也代表逻辑上的0),“√”是代表绿灯亮(也代表逻辑上的1),依上表,就可以向相应的端口送逻辑值。2.交通灯显示时间的理论分析与计算东西和南北方向的放行时间的长短是依据路口的各个方向平时的车流量来设定,并且S1、S2、S3、S4各个状态保持的时间之有严格的对应关系,其公式如下所示:
T-S1+T-S2=T-S3
T-S2=T-S4
T-S1=T-S3
我们可以依据上述的标准来改变车辆的放行时间。按照一般的规则,一个十字路口可分为主干道和次干道,主干道的放行时间大于次干道的放行时间,我们设定值时也应以此为参考。
3、电路图及设计文件
(1)灯控制电路设计
由于32个LED来实现红绿灯状态,若直接接在单片机的口线,路口倒计时的显示就不能实现,所以本次设计中采用一种新型的电路如图3-1所示。图中74LS04的作用是倒相和驱动,它输出的电流大约48mA,实际测试发现足以满足要求,而且发光管也能达到足够的亮度。
观察图可以看出:两组发光管(一组红、一组绿)由于反相器的作用,其逻辑状态恰恰相反。图中和电阻串联的二极管的作用是为了分压,防止因上下两组发光管分压不同导致逻辑的错误。共四组和上述相同的电路分别代表东西南北四个方向的红绿灯,使用两片74LS04作为驱动。
(2)倒计时显示电路设计
前面已经分析过相向的灯的状态和倒计时都是相同的,所以为了节省,采用两组四个数码管作为倒计时的显示;同时为了节省口资源,采用串口显示的方式驱动数码管。见图3-2所示。第二章硬件的选择与简介2.18051芯片简介2.1.18051内部结构
8051是MCS-51系列单片机的典型产品,其内部结构图如右所示:由其内部结构图可知:8051单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口、中断系统和时钟电路等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:·中央处理器:中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。·程序存储器(ROM):8051共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。·数据存储器(RAM):
8051内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。 ·定时/计数器(ROM):8051有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。·并行输入输出(I/O)口:8051共有4组8位I/O口(P0、P1、P2或P3),用于对外部数据的传输。·全双工串行口:8051内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。·中断系统:8051具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。·时钟电路:8051内置最高频率达12MHz的时钟电路,用于产生整个单片机运行的脉冲时序,上电自动复位手动复位电路上电自动复位手动复位电路内部时钟方式外部时钟方式图2.3但8051单片机需外置振荡电容。8051的复位方式可以是自动复位,也可以是手动复位,见下图4。此外,RESET/Vpd还是一复用脚,Vcc掉电其间,此脚可接上备用电源,以保证单片机内部RAM的数据不丢失。2.1.28051的引脚说明:MCS-51系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。Pin9:RESET/Vpd复位信号复用脚,当8051通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系统即初始复位。初始化后,程序计数器PC指向0000H,P0-P3输出口全部为高电平,堆栈指针写入07H,其它专用寄存器被清“0”。RESET由高电平下降为低电平后,系统即从0000H地址开始执行程序。然而,初始复位不改变RAM(包括工作寄存器R0-R7)的状态,8051的初始态。Pin30:ALE/PR/OG当访问外部程序器时,ALE(地址锁存)的输出用于锁存地址的低位字节。而访问内部程序存储器时,ALE端将有一个1/6时钟频率的正脉冲信号,这个信号可以用于识别单片机是否工作,也可以当作一个时钟向外输出。更有一个特点,当访问外部程序存储器,ALE会跳过一个脉冲。
如果单片机是EPROM,在编程其间,PR/OG将用于输入编程脉冲。Pin29:PE/SN当访问外部程序存储器时,此脚输出负脉冲选通信号,PC的16位地址数据将出现在P0和P2口上,外部程序存储器则把指令数据放到P0口上,由CPU读入并执行。Pin31:EA/Vpp程序存储器的内外部选通线,8051和8751单片机,内置有4kB的程序存储器,当EA为高电平并且程序地址小于4kB时,读取内部程序存储器指令数据,而超过4kB地址则读取外部指令数据。如EA为低电平,则不管地址大小,一律读取外部程序存储器指令。显然,对内部无程序存储器的8031,EA端必须接地。在编程时,EA/Vpp脚还需加上21V的编程电压。2.28255芯片简介8255可编程并行接口芯片简介:8255可编程并行接口芯片有三个输入输出端口,即A口、B口和C口,对应于引脚PA7~PA0、PB7~PB0和PC7~PC0。其内部还有一个控制寄存器,即控制口。通常A口、B口作为输入输出的数据端口。C口作为控制或状态信息的端口,它在方式字的控制下,可以分成4位的端口,每个端口包含一个4位锁存器。它们分别与端口A/B配合使用,可以用作控制信号输出或作为状态信号输入。2.2.1内部结构8255内部结构如图所示:图2.5由上图可知:8255包括三个端口,二个工作方式控制电路,一个读写控制逻辑电路和8位总线缓冲器,现将各部件功能分别加以简单介绍:端口A、B、C控制电路分为:A组工作方式控制电路、B组方式控制电路。A组和B组具有一个控制命令寄存器,用来接收CPU的控制字(命令),根据控制字决定两端口的工作方式,也可以用控制字做到C口按位清“0”或者按位置“1”。A组控制电路用来控制A口和C口的上半部分(PC7~PC0)。B组控制电路用来控制B口和C口的下半部分(PC3~PC7)。数据总线缓冲器该缓冲器是一个三态双向8位缓冲器,用来传送数据、控制命令和外部状态信息。读写控制逻辑电路读写控制逻辑电路接收CPU发来的控制信号R/D、W/R、RESET、IO/RQ和地址信号A1、A0等,然后根据控制信号的要求,将端口数据读出后送往CPU,或者将CPU送来的数据写入端口。使用时,一般将A1、A0接入地址总线的最低2位,因而一块8255芯片占用四个设备地址,分别对应于端口A,端口B,端口C和控制寄存器。8255没有专门的状态字,而是当工作于方式1和方式2时,读取端口C的数据,即得状态字。当状态字中有效信息位不满8位时,所缺的即为对应端口C引脚的输入电平。2.2.2引脚功能说明RESET:复位输入线,当该输入端外接高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。:片选信号线,当这个输入引脚为低电平时,表示芯片被选中允许8255与CPU进行通信。:读信号线,当这个输入引脚为低电平时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。:写入信号线,当这个输入引脚为低电平时,允许CPU将数据或控制字写入8255。D0~D7:三态双向数据总线,8255与CPU数据传送的通道,当CPU执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。PA0~PA7:端口A输入输出线,有8位数据输出锁存/缓冲功能和8位数据输入锁存功能。PB0~PB7:端口B输入输出线,有8位的I/O锁存功能和8位的输入输出缓冲功能。PC0~PC7:端口C输入输出线,有8位的数据输出锁存器/缓冲器和8位的数据输入缓冲器。端口C可以通过工作方式设定而分成2个4位的端口,每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。A1、A0:端口地址总线,8255中有端口A、B、C和一个内部控制寄存器,共4个端口,由A0、A1输入地址信号来寻址。2.2.3芯片功能8255可编程并行接口芯片方式控制字格式说明:8255有两种控制命令字;一个是方式选择控制字;另一个是C口按位置位/复位控制字。其中C口按位置位/复位控制字方式使用较为繁难,说明也较冗长,故在此不作叙述,需要时用户可自行查找有关资料。方式控制字说明:D7:设定工作方式标志,1有效。D6、D5:A口方式选择:00—方式001—方式11×—方式2D4:A口功能(1=输入,0=输出)D3:C口高4位功能(1=输入,0=输出)D2:B口方式选择(0=方式0,1=方式1)D1:B口功能(1=输入,0=输出)D0:C口低4位功能(1=输入,0=输出)8255可编程并行接口芯片工作方式说明:方式0:基本输入/输出方式。适用于三个端口中的任何一个。每一个端口都可以用作输入或输出。输出可被锁存,输入不能锁存。方式1:选通输入/输出方式。这时A口或B口的8位外设线用作输入或输出,C口的4条线中三条用作数据传输的联络信号和中断请求信号。方式2:双向总线方式。只有A口具备双向总线方式,8位外设线用作输入或输出,此时C口的5条线用作通信联络信号和中断请求信号。在三种工作方式中,在方式0时,端口C和端口A、B一样工作于基本的输入/输出方式,把数据送给外设,或从外设接收数据。当工作于方式1或方式2时,端口C就产生或接收与外设进行联络的信号,读出端口C的内容就能测试或核对各种外设的状态,并由此改变程序的进程。但是,没有从端口C读取状态信息的专用指令,而要执行端口C的读出操作来读取这些状态信息,端口C并不是所有的位都用于传送控制或状态信息,剩余的各位可以由控制字设定为输入或输出。当设定为输入时,则在对端口C读出时,可访问所有的输入线;当设定为输出时,则端口C的高4位必须用置位/复位功能单独访问,而端口C的低4位则可用置位/复位功能访问,也可通过写入端口C的操作进行访问。当8255以方式1或方式2工作时,提供的控制信号可用作向CPU的中断请求输入。由端口C产生的中断请求信号可通过将有关的INTE触发器置位/复位而加以允许/禁止,INTE触发器的状态可通过C口的置位/复位功能来加以设定。因此,C口产生的中断请求是软件可屏蔽的,由于可允许/禁止某个I/O设备中断CPU,从而不影响中断结构中任何其它设备。2.3其他器件2.3.1数码管与交通信号灯显示器是最常用的输出设备。特别是发光二极管(LED)和液晶显示器(LCD),由于结构简单、价格便宜、接口容易,得到广泛的应用,尤其在单片机系统中大量使用。现在简单介绍发光二极管。发光显示器是单片机应用产品中常用的廉价输出设备。它是由若干个发光二极管组成的,当发光二极管导通时,相应的一个点或一个比划发光,控制不同组合的二极管导通,就能显示出各种字符。点亮显示器有静态和动态两种方法。所谓静态显示,就是当显示器显示某一个字符时,相应的发光二极管恒定的导通或截止。例如,七段显示器的a、b、c、d、e、f导通,g截止,则显示0。这种显示器方式,每一位都需要一个8位输出口控制,所以占用硬件多,一般用于显示器位数较小(很少)的场合。当位数较多时,用静态显示所需的I/O口太多,一般采用动态显示方法。所谓动态显示就是一位一位的轮流点亮各位显示器(扫描),对于每一位显示器来说,每个一段时间点亮一次。显示器的点亮既跟点亮时的导通电流有关,也跟点亮时间和间隔时间的比例有关。调整电流和时间的参数,可实现亮度较高较稳定的显示。若显示器的位数不大于8位,则控制显示器公共极电位只需一个I/O口(称为扫描口),控制各位显示器所显示的字形也需一个8位口。图2.6晶闸管与数码管示意图要使行人能看见信号灯的情况,必须把8255输出的信号进行放大VT为双向晶闸管,当门极为高电平时晶闸管导通,该支路指示灯亮;当门极为低电平时晶闸管关断,该支路指示灯灭。2.3.2看门狗MAX692由于单片机自身的抗干扰能力比较差,尤其在一些条件比较恶劣、噪声大的场合,常会出现单片机因为受外界干扰而导致死机的现象,造成系统不能正常工作。设置看门狗是为了防止单片机死机、提高单片机系统抗干扰性的一种重要途径。一个完整的单片机应用系统应该是一个软、硬件的结合体,在系统正常工作时,会受到各种外界干扰因素的影响。这种外界干扰轻者导致系统内部数据出错,重者将严重影响程序的运行。因此单片机应用系统的开发一定要考虑系统可靠性的设计,以满足系统在现场苛刻环境下的正常运行,而“看门狗”则是系统可靠性设计的重要一环。在一个单片机应用系统中,所谓的“看门狗”是指在系统设计中通过软件或硬件方式在一定的周期内监控单片机或其他CPU的运行情况。如果在规定的时间内没有收到来自单片机或其他CPU的触发信号,则系统会强制复位,以保证系统在受到干扰时仍能够维持正常的工作状态。在单片机系统中,看门狗的设计一般采用硬件和软件结合两种方式。(1)软件看门狗软件看门狗是利用单片机片内闲置的定时器/计数器单元作为看门狗,在单片机程序中适当的插入监控指令,当程序出现异常或进入死循环时,利用软件将程序计数器PC赋予初始值,强制性的使程序重新开始运行。使用软件看门狗的具体实现方法如下:首先在初始化程序中设置好定时器/计数器的方式控制寄存器(TMOD)
和定时时间的初值,并开中断。根据定时器的定时时间,在主程序中按一定的间隔插入复位定时器的指令,既插入监控指令,两条指令间的时间间隔应该小于定时时间,否则看门狗将发生错误动作。在定时器的中断服务程序中设置一条无条件转移指令,将程序计数器PC转移到初始化程序的入口。软件看门狗的最大特点是无须外加硬件电路,经济性好。当然,如果片内的定时器/计数器被占用,就需要寻求其他的设计方式了。(2)硬件看门狗专用硬件看门狗是指一些集成化的或集成在单片机内的专用看门狗电路,它实际上是一个特殊的定时器,当定时时间到时,发出溢出脉冲。从实现角度上看,该方式是一种软件与片外专用电路相结合的技术,硬件电路连接好后,在程序中适当地插入一些看门狗复位的指令,保证程序正常运行时看门狗不溢出。而当程序运行异常时,看门狗超时发出溢出脉冲,通过单片机的RESET引脚使单片机复位。这种方式中,看门狗能否可靠有效地工作,与硬件组成及软件的控制策略都有密切的关系。目前常用的集成看门狗电路很多,如MAX705~708、MAX813L、X5043/5045等。图2.7看门狗电路可以分为内看门狗和外看门狗。看门狗电路是指看门狗的硬件电路包含在单片机内部,如Microchip的16C5x系列,MOTOROLA的68C05系列,51内核中比较典型的有Atmel公司的AT89C55WD、AT89S8252,Winbond公司的W77E58,SST公司的SST89C58以及Philips公司87系列的多种型号的单片机等。对于没有看门狗定时器的单片机或是认为内部看门狗不可靠时,可以采用外部看门狗定时器。外部看门狗电路既可以用专用看门狗芯片,也可由普通芯片实现。MAX692与单片机接口结构,如图2.7所示。图2.7MAX692是微系统监控电路芯片,具有后备电池切换、掉电判别、看门狗监控等功能。其引脚说明如下:VOUT:电源输出引脚。VCC:接电源引脚,电源供电3.0-5.5V。GND:接地。PFI:电池故障输入。/PFO:电池故障输出。WDI:监视器输入引脚。/RESET:复位输出引脚,低电平有效。VBATT:后备电池输入端。在MAX692电路原理图中WDI是看门狗监测输入脚,接到CPU的一个专用I/O口或一个总线上。/RESET是复位信号输出脚,接到CPU的复位输入脚。MAX692的WDI定时周期是1.6s,复位脉冲宽度是200ms。如果WDI保持高或低超过看门狗定时周期(1.6s),/RESET端将发生200ms的负脉冲使CPU复位。第三章控制器硬件系统设计3.1系统硬件设计方案东西方向或者南北方向的交通灯在通常工作条件中有四种状态:前行灯+人行道(状态1)、前行灯+右转(状态2)、左转(状态3)、红灯(状态4)这四种状态(在每个灯变化时还有闪烁状态,这在软件中实现)。状态说明:(状态1)前行灯+人行道:车辆前行;行人可通过人行道;(状态2)前行灯+右转:车辆可向前、向右行驶;(状态3)红灯+左转:车辆向左行驶;但不能前行;(状态4)红灯:禁止通行与转弯;图3.1图3.1十字路口交通示意图图3.2图3.2交通灯控制线路图上面所述4种状态是南北或者东西方向的一条道上的四种状态,根据交通规则与十字路口的实际情况,可以把南北和东西路口的总控制系统的状态分为6种:S1:南北(状态1)+东西(状态4)S2:南北(状态2)+东西(状态4)S3:南北(状态3)+东西(状态4)S4:南北(状态4)+东西(状态1)S5:南北(状态4)+东西(状态2)S6:南北(状态4)+东西(状态3)本系统还设计了应急况处理;在紧急情况下,设置交通灯状态为:S7:全红:东南西北所有方向禁止通行。S8:南北红、东西绿:南北方向禁行;东西方向通行。S9:东西红、南北绿:东西方向禁行;南北方向通行。所以按照上面所分析的交通规则方案,可以得出每个方向的交通灯数目为4个,分别为:直行箭头灯、左转灯、右转灯、人行道灯。分别用字母Z、L、R、M表示。根据分析的九种状态,可以分析出控制系统的九种工作状态的真值表。如表3.1:表3.1状态真值表方向状态东西方向南北方向Z、L、R、MZ、L、R、MS110100000S210010000S301000000S400001010S500001001S600000100S700000000S810000000S900001000各个交通状态的时间设定:假设路口两个交叉道路车流量相当,可以把正常通行下的六个状态时间设定为:S130秒、S230秒、S320秒、S430秒、S530秒、S620秒。时间设定如果需要改变,可以通过键盘输入设定。3.2系统工作原理(1)开关键盘输入交通灯初始时间,通过8051单片机P1输入到系统。键盘编号为K1,K2,K3,K4,K5分别连接单片机的P1。0,P1。1,P1。2,P1。3,P1。4主程序中放了一个按键的判断指令,当有键按下的时候,程序就跳转到按键子程序处理,当检测到K2键按下的时候就自动返回到主程序。按紧急预案键K5后,先出现全红状态,再按一下该键,又出现一方通行状态,再按,则另一方通行。如此循环。图3.3系统电路简图按手动控制键后,进行手动控制,每按一次,灯会转到下一个状态。按恢复键对上两者进行恢复到正常状态。键盘的按键由机械触点构成的。当开关K未被按下时,P1口输入为低电平,K闭合后,与之对应的P1口输入为高电平。由于按键是机械触点,当机械触点断开、闭合时,会有抖动,P1口输入端的波形会有尖锋脉冲出现。按键分别接到单片机的P1口对于这种键各程序可以采用不断查询的方法,功能就是:检测是否有键闭合,如有键闭合,则去除键抖动,判断键号幷转入相应的键处理,具体程序设计程序部分,在此不在累述。(2)由8051单片机的定时器每秒钟通过P0口向8255的数据口送信息,由8255的PC口显示左转、直行、右转、人行道灯的燃亮情况;由8255的PA、PB口显示每个灯的燃亮时间。(3)8051通过设置各个信号等的燃亮时间、通过8051设置,状态S1、状态S2、状态S3、状态S4、状态S5、状态S6时间依次为30秒、30秒、20秒、30秒、30秒、20秒循环由8051的P0口向8255的数据口输出。(4)通过8051单片机的P3。0位来控制系统是工作或设置初值,当该位电平为0就对系统进行初始化,为1系统就开始工作。(5)8255PA口用于输出时间的个位,PB口用于输出时间的十位,由7446A驱动芯片驱动,而PC口用于输出各个灯的情况,它的末段连接双向晶闸管采用220V交流电压驱动。(6)在交通控制程序中加入看门狗指令,当系统出现异常看门狗将发出溢出中断。通过专用端口输入到MAX692看门狗芯片的WDI引脚引起RESET复位信号使系统复位。交通灯一个循环周期的时间根据初始设定的值得出为160秒,所以可以把看门狗MAX592的溢出时间设为163-165秒,在交通灯一个循环后,单片机发出一个高电平,在看门狗作用前使看门狗复位。但当在163-165秒后,单片机不给这样一个复位电平,看门狗就通过复位输出引脚,发出复位信号,使单片机复位,重新工作。这样,只要单片机只要程序跑飞或者死机,看门狗就可以利用溢出中断对单片机重新起动。第四章控制器的软件设计4.1交通灯燃亮时间的设定延时方法可以有两种是利用MCS-51内部定时器才生溢出中断来确定1秒的时间,另一种是采用软件延时的方法。4.1.1计数器初值计算定时器工作时必须给计数器送计数器初值,这个值是送到TH和TL中的。他是以加法记数的,并能从全1到全0时自动产生溢出中断请求。因此,我们可以把计数器记满为零所需的计数值设定为C和计数初值设定为TC可得到如下计算通式:TC=M-C式中,M为计数器模值,该值和计数器工作方式有关。在方式0时M为213;在方式1时M的值为216。4.1.2计算公式T=(M-TC)T计数或TC=M-T/T计数T计数是单片机时钟周期TCLK的12倍;TC为定时初值。如单片机的主脉冲频率为TCLK12MHZ,经过12分频。方式0TMAX=213*1微秒=8.193毫秒方式1TMAX=216*1微秒=65.536毫秒显然1秒钟已经超过了计数器的最大定时间,所以我们只有采用定时器和软件相结合的办法才能解决这个问题。4.1.3设置1秒的方法我们采用在主程序中设定一个初值为20的软件计数器和使T0定时50毫秒.这样每当T0到50毫秒时CPU就响应它的溢出中断请求,进入他的中断服务子程序。在中断服务子程序中,CPU先使软件计数器减1,然后判断它是否为零。为零表示1秒已到可以返回到输出时间显示程序。4.1.4相应程序代码⑴主程序定时器需定时50,故T0工作于方式1。初值:TC=M-T/T计数=216-50ms/1us=15536=3CBOHORG1000HSTART:MOVTMOD,#01H;令T0为定时器方式1MOVTH0,#3CH;装入定时器初值MOVTL0,#BOHMOVIE,#82H;开T0中断SEBTTRO;启动T0计数器MOVRO,#14H;软件计数器赋初值LOOP:SJMP$;等待中断⑵中断服务子程序ORG00BHAJAMPBRT0ORG00BHBRT0:DJNZR0,NEXTAJMPTIME;跳转时间及信号灯显示子程序DJNZ:MOVR0,#14H;恢复R0值MOVTH0,#3CH;重装入定时器初值MOVTL0,#BOHMOVIE,#82HRET1END4.2软件延时MCS-51的工作频率为2-12MHZ,我们选用的8051单片机的工作频率为6MHZ。机器周期与主频有关,机器周期是主频的12倍,所以一个机器周期的时间为12*(1/6M)=2us。我们可以知道具体每条指令的周期数,这样我们就可以通过指令的执行条数来确定1秒的时间。具体的延时程序分析:DELAY:MOVR4,#08H;延时1秒子程序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.3时间及信号灯的显示软件设计4.3.18051并行口的扩展8051虽然有4个8位I/O端口,但真正能提供借用的只有P1口,因为P2和P0口通常用于传送外部传送地址和数据,P3口也有它的第二功能。因此,8051通常需要扩展。由于我们用外输出时间时,时间的个位、十位、信号灯的显示都要用到一个I/O端口,显然8051的端口是不够,需要扩展。扩展的方法有两种:(1)借用外部RAM地址来扩展I/O端口;(2)采用I/O接口新片来扩充。我们用8255并行接口信片来扩展I/O端口。4.3.2显示程序原理:当定时器定时为1秒,时程序跳转到时间显示及信号灯显示子程序,它将依次显示信号灯时间,同时一直显示信号灯的颜色,这时在返回定时子程序定时一秒,在显示黄灯的下一个时间,这样依次把所有的灯色的时间显示完后在重新给时间计数器赋初值,重新进入循环。4.3.38255输出信号与信号灯的连接LED灯的显示原理:通过同名管脚上所加电平的高低来控制发光二极管是否点量而显示不同的字形如SP,g,f,e,d,c,b,a管角上加上7FH所以SP上为0伏,不亮其余为TTL高电平,全亮则显示为8采用共阴级连接:其中PA0\PB0-a,PA1\PB1-b,PA2\PB2-c,PA3\PB3-d,PA4\PB4-e,PA5\PB5-f,PA6\PB6-gPA7\PB7-SP接地显示数值dopgfedcba驱动代码(16进制)0001111113FH10000011006H2010110115BH3010011114FH40110011066H5011011006DH6011111007DH70000011107H8011111117FH表4.1驱动代码表4.3.48051与8255的连接用8051的P0口的p0.7连接8255的片选信号CS,我们用8051的地址采用全译码方式,当p0.7=0时片选有效,其他无效,P0.1用于选择8255端口。P0.7p0.6p0.5p0.4p0.3p0.2P0.1P0.0A7A6A1XXXXX0000H为8255的PA口1XXXXX0101H为8255的PB口1XXXXX1002H为8255的PC口1XXXXX1103H为8255的控制口由于8051是分时对8255和储存器进行访问,所以8051的P0口不会发生冲突。4.4程序设计4.4.1程序流程设计开始开始初始化等待键盘事件键盘事件处理显示程序处理图4.2流程示意图图4.3键盘事件流程图图4.4程序流程图主程序中放了一个按键的判断指令,当有键按下的时候,程序就跳转到按键子程序处理,当检测到K2键按下的时候就自动返回到主程序。按紧急预案键K5后,先出现全红状态,再按一下该键,又出现一方通行状态,再按,则另一方通行。如此循环。按手动控制键后,进行手动控制,每按一次,灯会转到下一个状态。按恢复键对上两者进行恢复到正常状态。4.4.2系统编程信息系统内存分配和I/0接口使用:1程序空间(64k)表4.5
地址使用情况芯片0000-3FFFH用户程序区U23RAM4000-DFFFH用户程序区E000-FFFFH系统保留ROMI/O接口使用用户程序区8255的端口地址如下表:表4.6信号线寄存器编址IOY3A口0C60HB口0C61HC口0C62H控制寄存器0C63H此I/O接口的地址不占51外部数据空间地址,所以使用时,需要通过特殊的调用功能程序来操纵这些接口电路,即:写数据到I/0口子程序调用为LCALL0F4E0H。从某I/0端口读出数据为LCALL0F4E3H例如:将累加器A的数据12写入地址#0C63的I/O端口:MOVDPTR,#0C63HMOVA,#12HLCALL0F4E3H将地址#0C63的I/O端口状态读出到累加器A::MOVDPTR,#0C63HLCALL0F4E3H结论本系统就是充分利用了8051和8255芯片的I/O引角。系统统采用MSC-51系列单片机Intel8051和可编程并行I/O接口芯片8255A为中心器件来设计交通灯控制器,实现了能根据实际车流量通过8051芯片的P1口设置红、绿灯燃亮时间的功能;为了系统稳定可靠采用了MAX629“看门狗”芯片,避免了系统因为死机而停止工作的情况发生;显示时间直接通过8255的PA、PB输出;交通灯信号通过平常PC口输出;交通灯的点亮采用VT双向晶闸管来控制,直接采用220V交流电源驱动,系统设计简便、实用性强、操作简单、程序设计简便。系统不足之处不能控制车的左、右转、以及自动根据车流改变红绿灯时间等。这是由于本身地理位子以及车流量情况所定,如果有需要可以设计扩充原系统来实现通过这次毕业设计,使我得到了一次用专业知识、专业技能分析和解决问题全面系统的锻炼。使我在单片机的基本原理、单片机应用系统开发过程,以及在常用编程设计思路技巧(特别是汇编语言)的掌握方面都能向前迈了一大步,为日后成为合格的应用型人才打下良好的基础。致谢我在指导老师田汉平老师的精心指导和严格要求下,经过自己的努力,终于完成了这次另外,此次毕业设计还获得了各位领导和老师的大力支持。在此,我衷心感谢各位老师的指导和支持。在未来的工作和学习中,我将以更好的成绩来回报各位领导和参考文献[1]房小翠王金凤单片机实用系统设计技术。国防工业出版社,1999[2]付家才单片机控制工程实践技术。北京:化学工业出版社,2004.5[3]潘新民微型计算机控制技术。北京:人民邮电出版社,1999.9[4]余锡存曹国华单片机原理及接口技术。陕西:西安电子科技大学出版社,[5]雷丽文等微机原理与接口技术。北京:电子工业出版社,1997.2[6]蒋万君在论循环时序电路的简便设计。机电一体化,2005第5期[7]胡汉才单片机原理及其接口技术。北京:清华大学出版,1996[8]黄义源机械设备电气与数字控制。中央广播电视大学出版社,1993[9]蔡美琴张为民等MCS-51系列单片机系统及应用。高等教育出版社,1992[11]李建中单片机原理及应用。西安:西安电子科技大学出版社,2002[12]康华光电子技术基础(第四版)。北京:高等教育出版社,2000.6附录附录1:实验程序原代码方法1。利用P1口输入开关量ORG0000HLJMPMAINORG0100HMAIN:MOVDPTR,#0C63HMOVA,#82HLCALL0F4E0HAGAIN:MOVP1,#80HMOVA,P1JBACC。7,NEXT0AGAIN1:MOVP1,#40HMOVA,P1JBACC。6,REDMOVP1,#0FHMOVA,P1ANLA,#0FHMOVR3,AAJMPAGAIN1RED:MOVP1,#0FHMOVA,P1ANLA,#0FHMOVR2,AAJMPAGAINNEXT0:MOVR0,#03HNEXT1:MOVDPTR,#TABMOVA,R0MOVCA,@A+DPTRMOVDPTR,#0C60HLCALL0F4E0HMOVDPTR,#0C62HMOVA,#00HLCALL0F4E0HACALLDELAYDJNZR0,NEXT1MOVA,R3MOVR0,ANEXT2:MOVDPTR,#TABMOVA,R0MOVC
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年环境保护知识学习试题及答案解析
- 2025年-安全员B证考试题库及答案
- 富力地产集团品牌建设方案
- 2026-2030全球美容机构行业消费需求与未来经营规模预测报告
- 2026-2030智能宠物喂食器行业市场现状供需分析及重点企业投资评估规划分析研究报告
- 幼儿园大班数学测试20以内加减法口算练习题参考
- 2026-2030中国手机银行业务行业市场发展分析及前景趋势与投资研究报告
- 陕西省汉中市勉县2025 - 2026学年度第二学期期末调研检测试题 八年级英语(含答案)
- 哈尔滨市2025黑龙江哈尔滨工业大学能源科学与工程学院碳中和能源技术研究所招聘笔试历年参考题库典型考点附带答案详解
- 合肥市2025上半年安徽合肥职业技术学院招聘38人笔试历年参考题库典型考点附带答案详解
- 异位妊娠破裂失血性休克急救护理个案
- 2026年教师选调进城考试试题及答案解析
- 徐工25吨吊车使用说明书
- JC-T 604-2025《平板玻璃退火窑》
- 麻醉护理中的生命体征监测与报警处理
- 初中地理八年级上册《复杂多样的中国气候》教学设计
- 2025年生物质颗粒燃料与天然气混烧技术报告
- 采购降本培训课件
- 胃镜肠镜科普讲座课件
- 2025浙江温州瓯海科技产业发展集团有限公司及下属子公司招聘调整部分岗位笔试历年常考点试题专练附带答案详解试卷2套
- 橄榄青果购销合同范本
评论
0/150
提交评论