《基于单片机的交通灯控制系统毕业设计(论文).docx》由会员分享,可在线阅读,更多相关《基于单片机的交通灯控制系统毕业设计(论文).docx(32页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 基于单片机的交通灯控制系统摘要近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月异更新。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠的是交通信号灯的自动指挥系统。交通信号灯控制方式很多。本系统采用MSC-51系列单片机Intel8031和可编程并行I/O接口芯片8255A为中心器件来设计交通灯控制器,实现了能根据实际车流量通过8031芯片的P1口
2、设置红、绿灯燃亮时间的功能;为了系统稳定可靠采用了MAX629“看门狗”芯片,避免了系统因为死机而停止工作的情况发生;显示时间直接通过8255的PA、PB口输出;交通灯信号通过PC口输出;交通灯的点亮采用VT双向晶闸管来控制,直接采用220V交流电源驱动,系统实用性强、操作简单、扩展性强。关键词:单片机 交通灯 控制器 设计 实现Based on the design of the controler of traffic lights of single flat machinewith realizationTANG Bo(Grade 2001 ,Computer Science and
3、TechnologyEducational direction, College of Mathematics and Computer Science,Chongqing Three Gorges University ,Wanzhou, Chongqing 404000) Abstract: In recent years along with science and technology develop fast, the application of single flat machine is moving towards thorough continuously, at the
4、same time drive traditional control detection day the benefit of new moon update. In the only flat machine application system of the automatic control and detection of real time, only flat machine is often to use as a key parts, only single flat machine aspect knowledge is insufficient , return shou
5、ld basis specificly hardware structure, as well as aim at the software that applies object characteristic specificly combination, perfect. Crossroads vehicle wear comb, pedestrian Xi Rang, turn to be all right lane, person pedestrian says , methodically. Do you lean what to realize this orderly orde
6、r? What lean is that the automatic command system of traffic signal lamp. Traffic signal lamp control way is many . This system adopts MSC-51 series only flat machine Intel8031 with but programming parallel interface chip 8255 A of I/O is central device the design controler of traffic lights, havere
7、alized can measure according to actual wagon flow the P1 installation bonus and green light that passes through 8031 chips burn to light the function of time; For system stabilize reliable have adopted MAX629 the chip dog looks after the house , have avoided that system stops working condition becau
8、se of halting to occur; Show that time is directly exported through PB and PA of 8255; The signal of traffic lights is exported through usually PC mouth; The point of traffic lights light to adopt VT two-way Jing floodgate pipe come to control, directly drive with the alternating current source of 2
9、20 V, practicality is strong, operating is simple. Keywords: Only flat machine Traffic lights Controler Design Realize目录摘要2目录3第一章概述51.1 引言51.2 设计背景51.3 设计目的61.4 设计要求6第二章系统总体方案及硬件设计72.1 设计原理72.2 各功能模块设计72.2.1 单片机AT89S52介绍72.2.2 总体方案8第三章各功能模块设计( 芯片简介)83.1 MSC-51芯片简介83.2 8255芯片简介113.3 74LS373简介123.4 其他
10、器件12第四章 系统硬件设计144.1 交通管理的方案论证144.2 系统硬件设计14421 系统总框图如下15422 交通灯硬件线路图16第五章 控制器的软件设计175.1每秒钟的设定175.2计数器硬件延时175.2.1 计数器初值计算175.2.2 计算公式175.2.3 秒的方法175.2.4 相应程序代码185.3 软件延时185.4 时间及信号灯的显示195.4.1 AT89S52并行口的扩展195.4.2 显示原理195.4.3 8255PA口输出信号接信号灯195.4.4 8255输出信号与数码管的连接205.4.5 8255与AT89S52的连接205.5 程序设计215.5
11、.1流程图如图所示215.5.2 程序源代码22第六章 看门狗硬件电路266.1 软件看门狗266.2 硬件看门狗27结论29致谢30参考文献314第一章 概述1.1 引言在今天,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。但这一技术在19世纪就已出现了。1858年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。这是世界上最早的交通信号灯。1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。它由红绿两以旋转式方形玻璃提灯组成,红色表示“停止”,绿色表示“注意”。1869年1月2日,
12、煤气灯爆炸,使警察受伤,遂被取消。1914年,电气启动的红绿灯出现在美国。这种红绿灯由红绿黄三色圆形的投光器组成,安装在纽约市5号大街的一座高塔上。红灯亮表示“停止”,绿灯亮表示“通行”。1918年,又出现了带控制的红绿灯和红外线红绿灯。带控制的红绿灯,一种是把压力探测器安在地下,车辆一接近红灯便变为绿灯;另一种是用扩音器来启动红绿灯,司机遇红灯时按一下嗽叭,就使红灯变为绿灯。红外线红绿灯当行人踏上对压力敏感的路面时,它就能察觉到有人要过马路。红外光束能把信号灯的红灯延长一段时间,推迟汽车放行,以免发生交通事故。信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故
13、有明显效果。1968年,联合国道路交通和道路标志信号协定对各种信号灯的含义作了规定。绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行横道的行人优先通行。红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。1.2 设计背景人们越来越关注城市交通问题,而交通灯在安全行车过程中起十分重要的作用, 现在交通灯一般设在十字路口,在醒目位置用红、绿、黄三种颜色的指示灯, 加上一个倒计时的显示计时器来控制行车
14、, 对于一般情况下的安全行车、车辆分流发挥着作用, 但根据实际行车过程中出现的情况, 主要有如下几个缺点: 1、车道让车轮流放行时间相同且固定, 在十字路口, 经常出现有些车道车辆较多, 放行时间应该长些;而有些车道车辆较少,放行时间应短些。2、 没有考虑紧急车通过时, 两车道应采取的措施, 譬如, 有消防车通过执行紧急任务时, 两车道的车都应停止, 让紧急车辆通过。根据行车过程中出现的实际情况, 如何合理高效地利用交通灯指示交通情况,这是一个迫切需要解决的问题。1.3 设计目的1. 进一步熟悉和掌握单片机的结构及工作原理。2. 掌握单片机的接口技术及相关外围芯片的外特性,控制方法。3. 通过
15、课程设计,掌握以单片机核心的电路设计的基本方法和技术。4. 通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。5. 了解开发单片机应用系统的全过程,为今后从事相关事业打下基础。1.4 设计要求1. 设计一个十字路口的交通灯控制电路,要求南北方向(主干道)车道和东西方向(支干道)车道两条交叉道路上的车辆交替运行,主干道每次通行时间都设为30秒、支干道每次通行时间为20秒,时间可设置修改。2. 在绿灯转为红灯时,要求黄灯先亮5秒钟,才能变换运行车道;3. 黄灯亮时,要求每秒闪亮一次。4. 东西方向、南北方向车道除了有红、黄、绿灯指示外,每一种灯亮的时间都用显示器进行显示(采用计时的方法
16、)。5. 一道有车而另一道无车(实验时用开关 K0 和 K1 控制),交通灯控制系统能立即让有车道放行。 6. 有紧急车辆要求通过时,系统要能禁止普通车辆通行,A、B道均为红灯。第二章 系统总体方案及硬件设计2.1 设计原理本设计使用的是单片机作为核心的控制元件,使得电路的可靠性比较高,功能也比较强大,而且可以随时更新系统,根据道路情况适时调整交通灯的状态,全面有效地利用交通灯指示交通情况。该设计是以单片机AT89S52为核心完成的,在硬件电路中采用P1口点亮交通指示灯,采用P0口和P2口作为2位LED数码管的驱动接口,可显示各个方向的交通灯的持续时间,单片机外围接有按键开关电路,可以响应外部
17、中断及键盘程序,实现紧急情况处理、调整交通灯的点亮时间等功能。芯片选用AT89S52 单片机,电路由下列部分组成:时钟电路、复位电路、键盘电路、交通灯演示电路、LED显示电路。2.2 各功能模块设计2.2.1 单片机AT89S52介绍AT89S52是一个低电压,高性能CMOS型 8位单片机,片内含8KB的可反复擦写的Flash只读程序存储器(ROM)和256 B的随机存取数据存储器(RAM)。 AT89S52是一个低功耗高性能单片机,40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,AT89S52可以按照常规方法进行编程
18、,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。引脚使用说明:I/O端口的编程实际上就是根据应用电路的具体功能和要求对I/O寄存器进行编程。具体步骤如下:l. 根据实际电路的要求,选择要使用哪些I/O端口。2. 初始化端口的数据输出寄存器,应避免端口作为输出时的开始阶段出现不确定状态,影响外围电路正常工作。3. 根据外围电路功能,确定PO端口的方向,初始化端口的数据方向寄存器。对于用作输入的端口可以不考虑方向初始化,因为PO的复位缺省值为输入。4. 用作输入的PO管脚,需上拉电阻。5. 最后对I/O端口进行输出(写数据输
19、出寄存器)和输入(读端口)编程,完成对外围电路的相应功能。几个特殊管脚:XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。RST: 复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平。2.2.2 总体方案此交通灯系统位于一个十字路口,此路口为东南西北走向。南北方向为主干道,东西方向为支干道。各干道有一组红、绿、黄三色的指示灯,指挥车辆和行人安全通行。红灯亮禁止通行,绿灯亮允许通行,黄灯亮提示人们注意红、绿灯的状态即将切换。此交通灯系统工作过程分为4个状态。状态0南北方向绿灯亮,东西方向红灯亮。过25秒后转为状态1,南北方向绿灯灭,黄灯每
20、秒闪亮一次,东西方向还是红灯亮。历时5秒钟再转为状态2,南北方向红灯亮,东西方向绿灯亮。过15秒后转为状态3,南北方向还是红灯亮,东西方向绿灯灭,黄灯每秒闪亮一次。历时5秒钟又循环至状态0。交通灯的状态表如下:红R绿G黄Y红R绿G黄Y0状态(时间)主干道SN支干道WE0101001001/010021000103100001/0表01 交通灯的状态表注: 1:SN:南北方向。WE:东西方向。 2:状态:0:熄。1:亮。1/0:闪。第三章 各功能模块设计( 芯片简介)3.1 MSC-51芯片简介MCS-51单片机内部结构8051是MCS-51系列单片机的典型产品,我们以这一代表性的机型进行系统的
21、讲解。 8051单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、 串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以 说明:中央处理器:中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。数据存储器(RAM)8051内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只
22、有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。图1程序存储器(ROM):8051共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。定时/计数器(ROM):8051有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。并行输入输出(I/O)口:8051共有4组8位I/O口(P0、 P1、P2或P3),用于对外部数据的传输。全双工串行口:8051内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。中断系统:8051具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中
23、断,可满足不同的控制要求,并具有2级的优先级别选择。时钟电路:8051内置最高频率达12MHz的时钟电路,用于产生整个单片机运行的脉冲时序,但8051单片机需外置振荡电容。单片机的结构有两种类型,一种是程序存储器和数据存储器分开的形式,即哈佛(Harvard)结构,另一种是采用通用计算机广泛使用的程序存储器与数据存储器合二为一的结构,即普林斯顿(Princeton)结构。INTEL的MCS-51系列单片机采用的是哈佛结构的形式,而后续产品16位的MCS-96系列单片机则采用普林斯顿结构。下图是MCS-51系列单片机的内部结构示意图2。 图2MCS-51的引脚说明:MCS-51系列单片机中的80
24、31、8051及8751均采用40Pin封装的双列直接DIP结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。现在我们对这些引脚的功能加以说明:MCS-51的引脚说明:如图3 Pin9:RESET/Vpd复位信号复用脚,当8051通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系统即初始复位。初始化后,程序计数器PC指向0000H,P0-P3输出口全部为高电平,堆栈指针写入07H,其它专用寄存器被清“0”。RESET由高电平下降为低电平后,系统即从0000H地址开始执行程序。然而,
25、初始复位不改变RAM(包括工作寄存器R0-R7)的状态,8051的初始态。8051的复位方式可以是自动复位,也可以是手动复位,见下图4。此外,RESET/Vpd还是一复用脚,Vcc掉电其间,此脚可接上备用电源,以保证单片机内部RAM的数据不丢失。 图3图4Pin30:ALE/当访问外部程序器时,ALE(地址锁存)的输出用于锁存地址的低位字节。而访问内部程序存储器时,ALE端将有一个1/6时钟频率的正脉冲信号,这个信号可以用于识别单片机是否工作,也可以当作一个时钟向外输出。更有一个特点,当访问外部程序存储器,ALE会跳过一个脉冲。如果单片机是EPROM,在编程其间,将用于输入编程脉冲。Pin29
26、:当访问外部程序存储器时,此脚输出负脉冲选通信号,PC的16位地址数据将出现在P0和P2口上,外部程序存储器则把指令数据放到P0口上,由CPU读入并执行。Pin31:EA/Vpp程序存储器的内外部选通线,8051和8751单片机,内置有4kB的程序存储器,当EA为高电平并且程序地址小于4kB时,读取内部程序存储器指令数据,而超过4kB地址则读取外部指令数据。如EA为低电平,则不管地址大小,一律读取外部程序存储器指令。显然,对内部无程序存储器的8031,EA端必须接地。在编程时,EA/Vpp脚还需加上21V的编程电压。3.2 8255芯片简介8255可编程并行接口芯片简介: 8255可编程并行接
27、口芯片有三个输入输出端口,即A口、B口和C口,对应于引脚PA7PA0、PB7PB0和PC7PC0。其内部还有一个控制寄存器,即控制口。通常A口、B口作为输入输出的数据端口。C口作为控制或状态信息的端口,它在方式字的控制下,可以分成4位的端口,每个端口包含一个4位锁存器。它们分别与端口A配合使用,可以用作控制信号输出或作为状态信号输入。8255可编程并行接口芯片方式控制字格式说明:8255有两种控制命令字;一个是方式选择控制字;另一个是C口按位置位复位控制字。其中C口按位置位复位控制字方式使用较为繁难,说明也较冗长,故在此不作叙述,需要时用户可自行查找有关资料。方式控制字格式说明如表1: 表1D
28、7D6D5D4D3D2D1D0 D7:设定工作方式标志,1有效。 D6、D5:A口方式选择 0 0 方式0 0 1 方式1 1 方式2 D4: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条线中三条用
29、作数据传输的联络信号和中断请求信号。 方式2 :双向总线方式。只有A口具备双向总线方式,8位外设线用作输入或输出,此时C口的5条线用作通讯联络信号和中断请求信号。3.3 74LS373简介74LS373 是一种带三态门的8D锁存器,其管脚示意图如下示:其中:1D-8D为8个输入端。 1Q-8Q为8个输出端。 LE为数据打入端:当LE为“1”时,锁存器输出 状态同输入状态;当LE由“1”变“0”时,数据打入锁存器, OE为输出允许端:当OE=0时,三态们打开态门打开;当OE=1时,三态门关闭,输出高阻。3.4 其他器件数共阴极的七段数码管。如图5 图5VT为双向晶闸管,当门极为高电平时晶闸管导通
30、,该支路指示灯亮;当门极为低电平时晶闸管关断,该支路指示灯灭。第四章 系统硬件设计4.1 交通管理的方案论证东西、南北两干道交于一个十字路口,各干道有一组红、黄、绿三色的指示灯,指挥车辆和行人安全通行。红灯亮禁止通行,绿灯亮允许通行。黄灯亮提示人们注意红、绿灯的状态即将切换,且黄灯燃亮时间为东西、南北两干道的公共停车时间。设东西道比南北道的车流量大,指示灯燃亮的方案如表2。60S5S80S5S东西道红灯亮黄灯亮绿灯亮黄灯亮南北道绿灯亮黄灯亮红灯亮黄灯亮 表2表2说明: (1)当东西方向为红灯,此道车辆禁止通行,东西道行人可通过;南北道为绿灯,此道车辆通过,行人禁止通行。时间为60秒。(2)黄灯
31、闪烁5秒,警示车辆和行人红、绿灯的状态即将切换。 (3)当东西方向为绿灯,此道车辆通行;南北方向为红灯,南北道车辆禁止通过,行人通行。时间为80秒。 东西方向车流大 通行时间长。(4)这样如上表的时间和红、绿、黄出现的顺序依次出现这样行人和车辆就能安全畅通的通行。(5)此表可根据车流量动态设定红绿灯初始值。4.2 系统硬件设计选用设备AT89S52单片机一片,选用设备8255并行通用接口芯片一片,74LS07两片,MAX692看门狗一片,共阴极的七段数码管两个双向晶闸管若干,7805三端稳压电源一个,红、黄、绿交通灯各两个,开关键盘、连线若干。421 系统总框图如下422 交通灯硬件线路图第五
32、章 控制器的软件设计5.1每秒钟的设定 延时方法可以有两种一中是利用AT89S52内部定时器才生溢出中断来确定1秒的时间,另一种是采用软延时的方法。5.2计数器硬件延时5.2.1 计数器初值计算 定时器工作时必须给计数器送计数器初值,这个值是送到TH和TL中的。他是以加法记数的,并能从全1到全0时自动产生溢出中断请求。因此,我们可以把计数器记满为零所需的计数值设定为C和计数初值设定为TC 可得到如下计算通式:TC=M-C式中,M为计数器摸值,该值和计数器工作方式有关。在方式0时M为213 ;在方式1时M的值为216;在方式2和3为285.2.2 计算公式 T=(MTC)T计数或 T计数T计数是
33、单片机时钟周期的倍;为定时初值如单片机的主脉冲频率为,经过分频方式213微秒毫秒方式216微秒毫秒显然秒钟已经超过了计数器的最大定时间,所以我们只有采用定时器和软件相结合的办法才能解决这个问题5.2.3 秒的方法 我们采用在主程序中设定一个初值为的软件计数器和使定时毫秒这样每当到毫秒时就响应它的溢出中断请求,进入他的中断服务子程序。在中断服务子程序中,先使软件计数器减,然后判断它是否为零。为零表示秒已到可以返回到输出时间显示程序。5.2.4 相应程序代码()主程序 定时器需定时毫秒,故工作于方式。初值: T计数ms/1us=15536=3CBOH ORG 1000HSTART: MOV TMO
34、D, #01H ; 令为定时器方式 MOV TH0, #3CH ;装入定时器初值 MOV TL0, #BOH MOV IE, #82H ;开中断 SEBT TO;启动计数器 MOV RO, #14H ;软件计数器赋初值LOOP:SJMP $;等待中断()中断服务子程序ORG000BH AJMPBRT0ORG 00B0HBRT0:DJNZ R0,NEXTAJMP TIME ;跳转到时间及信号灯显示子程序 DJNZ:MOVR0, 14;恢复值 MOV TH0, #3CH ;重装入定时器初值 MOV TL0, #BOH MOV IE,#82H RET1END5.3 软件延时 MCS-51的工作频率为
35、2-12MHZ,我们选用的AT89S52单片机的工作频率为6MHZ。机器周期与主频有关,机器周期是主频的12倍,所以一个机器周期的时间为12*(1/6M)=2us。我们可以知道具体每条指令的周期数,这样我们就可以通过指令的执行条数来确定1秒的时间。 具体的延时程序分析: DELAY:MOV R4,#08H ;延时1秒子程序 DE2: LCALL DELAY1 DJNZ R4,DE2RETDELAY1:MOV R6,#0 ;延时125ms 子程序 MOV R5,#0DE1: DJNZ R5,$ DJNZ R6,DE1 RET MOV RN,#DATA ;字节数数为2 机器周期数为1所以此指令的执
36、行时间为2ms DELAY1 为一个双重循坏 循环次数为256*256=65536 所以延时时间=65536*2=131072us 约为125us DELAY R4设置的初值为8 主延时程序循环8次,所以125us*8= 1秒 由于单片机的运行速度很快其他的指令执行时间可以忽略不计。5.4 时间及信号灯的显示5.4.1 AT89S52并行口的扩展 AT89S52虽然有4个8位I/O端口,但真正能提供借用的只有P1口,因为P2和P0口通常用于传送外部传送地址和数据,P3口也有它的第二功能。因此,AT89S52单片机通常需要扩展。由于我们用外部输入设定红绿灯倒计时初值、数码管的输出显示、红绿黄信号
37、灯的显示都要用到一个I/O端口,显然8031的端口是不够,需要扩展。 扩展的方法有两种:(1)借用外部RAM地址来扩展I/O端口;(2)采用I/O接口新片来扩充。我们用8255并行接口信片来扩展I/O端口。5.4.2 显示原理当定时器定时为1秒,时程序跳转到时间显示及信号灯显示子程序,它将依次显示信号灯时间 ,同时一直显示信号灯的颜色,这时在返回定时子程序定时一秒,在显示黄灯的下一个时间,这样依次把所有的灯色的时间显示完后在重新给时间计数器赋初值 ,重新进入循环。 5.4.3 8255PA口输出信号接信号灯由于发光二极管为共阳极接法,输出端口为低电平,对应的二极管发光,所以可以用置位方法点亮红
38、,绿,黄发光二极管。5.4.4 8255输出信号与数码管的连接 LED 灯的显示原理:通过同名管脚上所加电平的高低来控制发光二极管是否点量而显示不同的字形如 SP,g,f,e,d,c,b,a 管角上加上所以上为伏,不亮其余为高电平,全亮则显示为采用共阴级连接:其中 PC0PB0-a,PC1PB1-b, PC2PB2-c,PC3PB3-d,PC4PB4-e, PC5PB5-f,PC6PB6-gPC7PB7 -SP接地显示数值dop g f e d c b a 驱动代码(16进制)00 0 1 1 1 1 1 1 3FH1 0 0 0 0 0 1 1 006H2 0 1 0 1 1 0 1 15B
39、H3 0 1 0 0 1 1 1 14FH4 0 1 1 0 0 1 1 066H5 0 1 1 0 1 1 0 06DH6 0 1 1 1 1 1 0 07DH7 0 0 0 0 0 1 1 107H8 0 1 1 1 1 1 1 17FH 表 3 驱动代码表5.4.5 8255与AT89S52的连接用AT89S52的P0 口的 P0.7 连接8255的片选信号cs 我们用AT89S52的地址采用全译码方式,当P0.7 =0 时片选有效, 其他无效, P0.1 P0.1 用于选择8255端口 P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0A7 A6 A5 A4
40、 A3 A2 A1 A01 X X X X X 0 0 00H为8255 的PA口1 X X X X X 0 1 01H 为8255的PB口1 X X X X X 1 0 02H 为8255的PC口1 X X X X X 1 1 03H 为8255的控制口由于AT89S52是分时对8255和储存器进行访问所以AT89S52的P0口不会发生冲突5.5 程序设计开始5.5.1流程图如图所示开始初始化等待键盘事件显示程序处理键盘事件处理 图8 图95.5.2 程序源代码R4 存放黄灯时间 3 03H (此时间可以动态设定) R5 存放红灯时间 60 3CH R6 存放绿灯时间 80 50H PC0
41、显示黄灯信号 PC1 显示红灯信号PC2 显示黄灯信号 8255 工作于方式0 8255 PA、PB、 PC口输出 PC 控制字为10000000B (80H) 程序源代码: ORG 0000H LJMP MAIN ORG 0100HMAIN: MOV R1,#03H 初始化8255 MOV A,#80HMOVX R1,AAGAIN: MOV P3,#80H 设置初值 MOV A,P3 JB ACC.7, NEXT0AGAIN1: MOV P3,#40H MOV A,P3 JB ACC.6, RED MOV P3,#0FH MOV A,P3 ANL A,#0FH MOV R3,A AJMP AGAIN1RED: MOV P3,#0FH MOV A,P3 ANL A,#0FH MOV R2,A AJMP AGAINNEXT0: MOV R1,#03H NEXT1: MOV DPTR,#TAB 显示黄灯个位 MOV A,R1 MOVC A,A+DPTR MOV R1,#00H MOVX R1, A MOV R1,#O MOV DPTR,#TAB 显示黄灯十位 MOV A,R0 MOVC A,A+DPTR MOV R1,#01H M