《毕业设计单片机的交通灯控制系统.doc》由会员分享,可在线阅读,更多相关《毕业设计单片机的交通灯控制系统.doc(34页珍藏版)》请在三一办公上搜索。
1、摘要随着世界范围内城市化和机动化进程的加快,城市交通越来越成为一个全球化的问题。十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么,靠什么来实现这井然有序呢?靠的是交通灯的自动指挥系统。随着科技的发展,单片机的应用正在不断深入,同时带动传动检测技术日益更新。在实时监测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,还应根据具体的硬件结构,以及针对应用对象的点的软件结合,加以完善。本文介绍了一种基于单片机的交通灯控制系统。系统采用单片机和七段LED数码管作为交通灯的控制和显示核心,并通过控制按键对时间进行设置,最终实现对交通灯各状态持续时间的控制。系统采用上电自动复位
2、,利用八个数码管显示交通灯各状态的剩余时间,时间显示采用倒计时方式,四组红、黄、绿三色灯用发光二极管作为模拟交通信号灯,呈四种状态交替出现。系统通过一个直流稳压电路为系统提供+5V的直流电源。该交通系统控制方便,禁行通行时间可调,有一定实用价值。关键词:单片机; 可调; LED;数码显示 AbstractWith the range of urbanization and motorization, the quickening of the process of urban traffic more and more become a global problem. So, intersec
3、tion transports, bustling pedestrian, auto lane, a humanitarian, in an orderly way. So what to do this by in order? By the traffic light automatic command system. With the development of science and technology, the application of SCM is unceasingly thorough, it causes transmission detection technolo
4、gy is updated. In real time monitoring and automatic control of the microcomputer application system, the single chip microcomputer often as a core component to use, also should be based on specific hardware structure, and the view of the application to the point of the object software combines, per
5、fect. This paper introduces a control system based on single chip microcomputer traffic lights. The system USES the monolithic and seven period of LED digital tube as the traffic light control and display the core, and through the control buttons to set time, and finally achieve the duration of the
6、traffic lights state control. The system adopts the automatic reset, and use of eight digital pipe display each state for the rest of the time of the traffic lights, and time display using the countdown, four groups of red, yellow, and green three color lamp using light-emitting diodes as simulation
7、 traffic lights, show four state appear alternately. System through a dc voltage circuit for the system to provide the + 5 V dc power supply. The traffic control system is convenient, time can be adjusted to exclude traffic, is of certain practical value. Keywords: SCM; adjustable ;LED ;digital disp
8、lay 1绪论1单片机控制交通灯设计的意义、背景及目的1.1、设计的背景 1858年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。这是世界上最早的交通信号灯。1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。它由红绿两个旋转式方形玻璃提灯组成,红色表示“停止”,绿色表示“注意”。1869年1月2日,煤气灯爆炸,使警察受伤,遂被取消。 1914年, 电气启动的红绿灯出现在美国,这种红绿灯由红绿黄三色圆形的投光器组成,安装于纽约市5号大街的一座高塔上。红灯亮表示“停止”,绿灯亮表示“通行”。 1918年
9、,又出现了带控制的红绿灯和红外线红绿灯。带控制的红绿灯,一种是把压力探测器安在地下,车辆一接近红灯便变为绿灯;另一种是用扩音器来启动红绿灯,司机遇红灯时按一下嗽叭,就使红灯变为绿灯。红外线红绿灯当行人踏上对压力敏感的路面时,它就能察觉到有人要过马路。红外光束能把信号灯的红灯延长一段时间,推迟汽车放行,以免发生交通事故。信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。 1968年,联合国道路交通和道路标志信号协定对各种信号灯的含义作了规定。绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。左右转弯车辆都必须让合法地
10、正在路口内行驶的车辆和过人行横道的行人优先通行。红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。1.2、设计的目的 通过课程设计培养同学们的系统设计能力,提高以下能力的训练:(1)调查研究,分析问题的能力。(2)使用设计手册,技术规范的能力。(3)查阅中外文献的能力。(4)制定设计方案的能力。(5)计算机应用的能力。(6)使用绘图软件绘图的能力。(7)技术经济指标的分析能力。(8)掌握单片机系统中扩展简单基本I/O接口的方法。(9)掌握简单程序的设计方法。(10)掌握模拟交通灯控制
11、的实现方法。(11)掌握外部中断的基本使用方法。(12)掌握中断处理程序的编程方法。(13)掌握键盘的接口方法。(14)了解LED的接法。1.3、设计意义交通灯是城市交通的重要指挥系统,与人们的日常生活密切相关。随着经济的快速发展,城市中的车辆逐渐增多,交通拥堵和堵塞现象日趋严重,引起交通事故频发,环境污染加剧等一系列问题,因此设计一个灵活、稳定、便捷的多功能交通灯控制系统具有必要性和现实性。本次设计的意义在于通过对具体的控制系统的设计,掌握微机控制系统设计的一般方法和处理问题的思路,特别是一些常用的技术手段。在实践设计过程中,积累设计经验,开拓思维空间,全面提高个人的综合能力。2单片机控制交
12、通灯的硬件设计2.1、硬件功能的设计硬件部分由8031单片机、8255可编程外设接口、红黄绿LED灯、电阻、按钮、74LS373锁存器、74LS138译码器等部件组成。1、用二极管显示红绿黄等;2、用数码管显示十字路口两个方向的剩余时间;3、用单片机的定时器产生秒信号,控制十字路口的红绿黄灯交替点亮和熄灭;4、用按键设置两个方向的通行时间(绿灯点亮时间)和暂缓黄灯通行时间(黄灯点亮的时间)2.2.硬件原理图2.3主要器件简介2.3.1、8031单片机简介Intel公司于1980年推出了第二代单片机,即MCS-51系列单片机,这是一位高性能的单片机,与MCS-48系列相比,MCS-51系列单片机
13、无论在片内程序存储器、数据存储器、输入/输出的功能、种类和数量上还是在系统的扩展功能、指令系统的功能等方面,都有很大加强,常用的MCS-51系列单片机有两种类型产品:8051/8751、8031。8031和8751的结构与8051基本相当同,其主要差别反映在存储器的配置上的不同。8051内部没有4KB的掩膜ROM程序存储器,而8751则是以4KB的EPROM代替了8051内部4KB的掩膜ROM。由于8051的程序是Intel公司预先为用户烧制的、含有专门用途的程序,因而较难推广。而8751相对来说价格较高。如果将8031外界一片EPROM电路,它将相当于8051,其具有价格低廉、功能强、使用灵
14、活等特点,因而易于推广使用。本次设计中采用8031.其内部包括:8位中央处理器CPU;片内振荡器及时钟电路;128B RAM;4KB ROM;21个特殊功能寄存器;四个8位并行I/O端口(共32跟I/O线);一个双全串行通道;可寻址各64KB的外部数据、程序存储器空间的控制电路;两个16位的定时器/计数器;五个中断源、两个优先级嵌套中断结构。相比较而言,8031片内无程序存储器,因此,在构成最小系统时,不仅要外接晶体振荡器和复位电路,还应在外扩展程序存储器。8051/8751片内有4KB的ROM/EPROM,因此,只需要外接晶体振荡器和复位电路就可以构成最小系统。此次设计中选用8031单片机为
15、核心硬件,8031单片机最小应用系统由下述几部分组成:微处理器:8031;外接程序存储器(EPROM):2716(或2732);地址锁存器:74LS373;时钟电路;复位电路。时钟电路如下:图2-1 时钟电路晶振电路如下:图2-2 晶振电路微处理器、外接程序存储器、地址锁存器三部分之间用地址/数据线连接,P0口的8根线:P0.7P0.0分时地用用作数据线或低8位地址线,P2口的8根线用作高8位地址线。8031微处理器的功能是对EPROM 进行读操作,对内部RAM进行读写操作,通过片内的I/O端口还可以直接与外围设备连接。外部程序存储器可以采用EPROM芯片2716(2K)或2732(4K)。作
16、为寻址线,地址线的低8位A7A0是由P0口的P0.7P0.0经地址锁存器(74LS373)与EPROM芯片的低8位地址线引脚相连的。片选信号接地,所以只要有寻址信息即选中该片EPROM。2716的寻址范围0000H07FFH。而2732的寻址范围是0000H0FFFH。在执行读取数据操作的过程中,地址信息必须一直保持。8031单片机最小系统中,数据线和低8位的地址线是分时地共用P0口的8根线,地址所存器选通信号的作用是选通地址锁存器,将P0.7P0.0上的低8位地址锁存到地址锁存器中。外部程序存储器的选通信号的作用是当8031单片机访问外部程序存储器是,选通外部程序存储器,读取存储单元的数据到
17、P0口,供8031单片机读取。控制线的作用就是在8031单片机系统对扩展外部RAM进行读写操作时,作为CPU 的读、写脉冲输出线。8031引脚图如下:图2-3 8031引脚图引脚功能的介绍:1、主电源引脚VCC和VSS VCC(40脚)接+5V电压; VSS(20脚)接地。 2、外接晶体引脚XTAL1和XTAL2 XTAL1(19脚)接外部晶体的一个引脚。在单片机内部,它是一个反相放大器的输入端,这个放大器构成了片内振荡器。当采用外部振荡器时,对HMOS单片机,此引脚应接地;对CHMOS单片机,此引脚作为驱动端。 XTAL2(18脚)接外晶体的另一端。在单片机内部,接至上述振荡器的反相放大器的
18、输出端。采用外部振荡器时,对HMOS单片机,该引脚接外部振荡器的信号,即把外部振荡器的信号直接接到内部时钟发生器的输入端;对XHMOS,此引脚应悬浮。 3、控制或与其它电源复用引脚RST/VPD、ALE/PROG、PSEN和EA/VPP RST/VPD(9脚)当振荡器运行时,在此脚上出现两个机器周期的高电平将使单片机复位。推荐在此引脚与VSS引脚之间连接一个约8.2k的下拉电阻,与VCC引脚之间连接一个约10F的电容,以保证可靠地复位。 VCC掉电期间,此引脚可接上备用电源,以保证内部RAM的数据不丢失。当VCC主电源下掉到低于规定的电平,而VPD在其规定的电压范围(50.5V)内,VPD就向
19、内部RAM提供备用电源。 ALE/PROG(30脚):当访问外部存贮器时,ALE(允许地址锁存)的输出用于锁存地址的低位字节。即使不访问外部存储器,ALE端仍以不变的频率周期性地出现正脉冲信号,此频率为振荡器频率的1/6。因此,它可用作对外输出的时钟,或用于定时目的。然而要注意的是,每当访问外部数据存储器时,将跳过一个ALE脉冲。ALE端可以驱动(吸收或输出电流)8个LS型的TTL输入电路。PSEN(29脚):此脚的输出是外部程序存储器的读选通信号。在从外部程序存储器取指令(或常数)期间,每个机器周期两次PSEN有效。但在此期间,每当访问外部数据存储器时,这两次有效的PSEN信号将不出现。PS
20、EN同样可以驱动(吸收或输出)8个LS型的TTL输入。 EA/VPP(引脚):当EA端保持高电平时,访问内部程序存储器,但在PC(程序计数器)值超过0FFFH(对851/8751/80C51)或1FFFH(对8052)时,将自动转向执行外部程序存储器内的程序。当EA保持低电平时,则只访问外部程序存储器,不管是否有内部程序存储器。对于常用的8031来说,无内部程序存储器,所以EA脚必须常接地,这样才能只选择外部程序存储器。 单片机各口的应用:P1口负责控制交通灯,P0口负责给8255a传送数据以及给锁存器传递8255a的地址,P2口为8255a的地址以及选择8255a,P3口负责控制按键;2.3
21、.2、8255可编程外设接口简介8255是一种可编程的并行I/O接口芯片,它有24条I/O引脚,分A、B两大组(每组十二条引脚),允许分组编程,工作方式分为0、1和2三种。使用8255可实现以下功能:并行输入或输出多位数据;实现输入数据数据所存和输出数据缓存;提供多个通信接口联络控制信号(如中断请求,外设准备好及选通等);通过读取状态字可实现程序对外设的查询。8255的引脚图如下: 图2-4 可编程外设接口8255的引脚图8255有三个8位并行口:端口A、端口B和端口C。他们都可以作为输入或输出工作方式,但功能上有着不同的特点。1)端口A:一个8位数据输出锁存和缓冲器;2)端口B:一个8位数据
22、输入/输出、锁存/缓存器;一个8位数据输入缓冲器3)端口C:一个8位数据输出锁存/缓存器;一个8位数据输入缓存器(输入没有锁存)。 通常端口A或B作为输入/输出数据端口,而端口C作为控制或状态信息端口,它在“方式字”控制下,可以分成两个四位的端口,每个端口包含一个四位锁存器。它们可分别与端口A和B 配合使用,作为控制信号输出或状态信号输入,也可单独使用。 8255共有三个输入输出和一个内部控制寄存器口,共四个端口,用A0、A1来加以选择,其功能表见表2-1。 表2-1 8255端口选择表CSA1A0RDWRD7D0数据传送方向00001端口A数据总线00010端口A数据总线00101端口B数据
23、总线00110端口B数据总线01001端口C数据总线01010端口C数据总线01101无效01110数据总线8255控制寄存器011数据总线为高阻1数据总线为高阻表2-1-2为8255A方式控制选择字:D7D6D5D4D3D2D1D0控制字标识位A口方式选择A口I/O选择C高4位I/O选择B口方式选择B口I/O选择C低4位I/O选择1:方式控制0:C位操作00:方式001:方式110:方式21 : IN0 : OUT1 : IN0 : OUT0:方式01:方式11 : IN0 : OUT1 : IN0 : OUT表2-1-2 8255A方式控制选择字8255A各口的应用:PA负责传输南北向数码
24、管的值,PB负责传输东西向数码管的值,PC负责控制东西向、南北向数码的暗灭,控制寄存器(假设为PD)负责控制8255a的工作方式,此系统中值为0x80,即无条件传输方式.8255可编程并行接口芯片工作方式说明:方式 0:基本输入输出方式。适用于三个端口中的任何一个。每一个端口都可以用作输入或输出。输出可被锁存,输入不能锁存。方式 1:选通输入输出方式。这时 A 口或 B 口的 8 位外设线用作输入或输出,C 口的4条线中三条用作数据传输的联络信号和中断请求信号。方式 2 :双向总线方式。只有A口具备双向总线方式,8位外设线用作输入或输出,此时C口的5条线用作通讯联络信号和中断请求信号。 2.2
25、.3、74LS373简介74LS373时常用的地址锁存器芯片,它是实质是一个带三态缓冲输出的8D触发器,在单片机系统中为了扩展外部存储器,通常需要接一块74LS373芯片。 其功能引脚图如下: 图2-5 74LS373引脚图 LE 由高变低时,输出端8 位信息被锁存,直到LE 端再次有效。 当三态门使能信号OE为低电平时,三态门导通,允许Q0Q7输出,OE为高电平时,输出悬空。当74LS373用作地址锁存器时,应使OE为低电平,此时锁存使能端C为高电平时,输出Q0Q7 状态与输入端D1D7状态相同;当C发生负的跳变时,输入端D0D7 数据锁入Q0Q7。51单片机的ALE信号可以直接与74LS3
26、73的C连接。2.2.4、74LS138译码器简介74LS138为3线8线译码器,共有54/74S138和54/74LS138两种线路结构型式,其中74LS138译码器的工作原理如下:当一个选通端(G1)为高电平,另两个选通端(/(G2A)和/(G2B))为低电平时,可将地址端(A、B、C)的二进制编码在一个对应的输出端以低电平译出。74LS138的作用:利用 G1、/(G2A)和/(G2B)可级联扩展成 24 线译码器;若外接一个反相器还可级联扩展成 32 线译码器。 若将选通端中的一个作为数据输入端时,74LS138还可作数据分配器。 其引脚图如下:图2-5 74LS138译码器功能图2.
27、2.5、LED显示器接口我们最常用的是七段式和八段式LED数码管,八段比七段多了一个小数点,其他的基本相同。所谓的八段就是指数码管里有八个小LED发光二极管,通过控制不同的LED的亮灭来显示出不同的字形。数码管分为供阴极和共阳极两种类型,其实共阴极就是将八个LED的阴极连在一起,让其接地,这样给任何一个LED的另一端高电平,他便能点亮,而共阳极就是将八个LED的阳极连在一起。数码管有静态显示和动态显示两种形。 动态是将所有数码管的8个显示笔划a,b,c,d,e,f,g,dp的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,
28、所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低,当显示器位数较多时,一般采用动态显示方法。动态显示
29、程序清单如下: ORG 0100HMAIN: MOV R3,#00H ;字型码初始地址LOOP: MOV DPRT,#TABLE ;字型码送数据指针 MOV A,R3 MOV A,A+DPTR MOV P1,A ;送显示 MOV R4,#0E8H ;循环显示某个字符1SDELAY: ACALL DISPLAY ;显示 DJNZ R4,#DELAY ;延时显示时间示到继续 INC R3 ;显示下个字符 CJNE R3,#0AH,LOOP ;示显示到9续续 AJMP MAIN ;返回主程序DISPLAY:MOV R1,#08H ;共显示8位LED MOV R5,#00H ;从第一位开始显示DISP
30、: MOV A,R5 MOV P3,A ;送地址数据 ACALL DELAY1 ;送位显示15MS INC R5 ;指向下一位LED DJNZ R1,DISP ;8位未显示完继续 RETDELAY1: MOV R6,#10H ;延时子程序LOOP1: MOV R7,#38H LOOP2: DJNZ R7,LOOP2 DJNZ R6,LOOP1 RETTABLE: DB 0C0H,0F9H,0A4H,0B0H,99H DB 92H,82H,0F8H,80H,90H END ;程序结束2.2.6、 键盘接口键盘是由若干个按键组成的开关矩阵,它是最简单的单片机输入设备,操作员通过键盘输入数据或命令,
31、实现简单的人机通信。若键盘闭合键的识别是由专用硬件是现代的,则称为编码键盘,若用软件实现闭合键识别的,则称为非编码键盘。键盘接口应有以下功能:键扫描功能,即检测是否有键闭合;键识别功能,确定被闭合键所在的行列位置;产生相应的键代码(键值)功能;消除按键抖动及对付多键串按(复按)功能。3软件设计软件功能模块划分: 其中,主程序负责初始化以及循环扫描键盘;定时器0负责闪烁以及数码管的闪烁;定时器1负责计数以及数码管的循环显示,交通灯的循环点亮; 键盘扫描模块负责获得键号并转到相应的程序进行处理; 键盘处理模块负责调整交通的通行以及暂缓通行时间。系统工作流程设计:1、系统启动后,系统按程序给定的时间
32、工作,即东西向通行60秒,南北向通行40秒,黄灯亮4秒,工作模式如表所示。首先东西向通行,然后南北向通行,如此循环。交通信号灯工作模式如表22所示: 交通信号灯工作模式东西向绿灯亮60秒黄灯亮4秒红灯亮44秒南北向红灯亮64秒绿灯亮40秒黄灯亮4秒 表22 交通信号灯工作模式: 设置键的功能按设置键的次数第一次第二次第三次第四次第五次调 整内 容东西向的绿灯点亮时间东西向的黄灯点亮时间南北向的绿灯点亮时间南北向的黄灯点亮时间恢复交通灯工作状态调整范围099秒09秒099秒09秒表23 设置键的功能3.1主程序模块设计软件设计部分分为一个主程序和两个中断子程序,一个用于有紧急车辆通过时,系统要能
33、禁止普通车辆通行,实行中断可使A(东西道)、B(南北道)两道均亮红灯;另一个用于一道有车而另一道无车时,通过控制交通灯系统能立即让有车道放行,假如A道有车B道无车,长按K0可以控制交通灯系统能立即让东西道放行;假如南北道有车东西道无车,长按K1可以控制交通灯系统能立即南北道放行。十字路口的交通灯在工作时应具有如下特点:红灯表示该条道路禁止通行;黄灯表示该条道路上未过停车线的车辆禁止通行,已过停车线的车辆继续通行;绿灯亮表示该条道路允许通行。3.2 按键扫描模块设计3.3按键处理模块设计短按键(时间小于0.5s,值加1)长按键(时间大于0.5s小于1s,值加10)持续按键(时间大于1s,值每隔1
34、s加10)设置键处理:增加键处理:减少键处理:3.4 数码管显示、闪烁模块设计:3.5数码管计数,数码管切换、交通灯切换模块设计4 代码设计4.1主程序 定时器需定时毫秒,故工作于方式。 初值: T计数 ms/1us=15536=3CBOHORG 1000HSTART: MOV TMOD, #01H ; 令为定时器方式MOV TH0, #3CH ;装入定时器初值MOV TL0, #BOH ;MOV IE, &nbs| | p; #82H ;开中断SEBT TO ;启动计数器MOV RO, #14H ;软件计数器赋初值LOOP: SJMP $ ;等待中断4.2中断服务子程序 :DJNZ ,AJM
35、P TIME ; 跳转到时间及信号灯显示子程序 DJNZ: , ;恢复值MOV TH0, #3CH ;重装入定时器初值MOV TL0, #BOH ;MOV IE, #82H 5程序设计5.1程序源代码ORG 0000H ;主程序的入口地址LJMP MAIN ;跳转到主程序的开始处ORG 0003H ;外部中断0的中断程序入口地址 ORG 000BH ;定时器0的中断程序入口地址 LJMP T0_INT ;跳转到中断服务程序处ORG 0013H ;外部中断1的中断程序入口地址 MAIN : MOV SP,#50HMOV IE,#8EH ;CPU 开中断,允许T0中断,T1中断和外部中断1中断MO
36、V TMOD,#51H ;设置T1为计数方式,T0为定时方式,且都工作于模式1MOV TH1,#00H ;T1 计数器清零MOV TL1,#00HSETB TR1 ;启动T1计时器SETB EX1 ;允许INT1 中断SETB IT1 ;选择边沿触发方式MOV DPTR ,#0003HMOV A, #80H ;给8255赋初值,8255工作于方式0MOVX DPTR, AAGAIN: JB P3.1,N0 ;判断是否要设定东西方向红绿灯时间的初值,若P3.1为1 跳转MOV A,P1 JB P1.7,RED ;判断P1.7是否为1,若为1则设定红灯时间,否则设定绿灯间 MOV R0,#00H
37、;R0 清零MOV R0,A ;存入东西方向绿灯初始时间MOV R3,ALCALL DISP1LCALL DELAYAJMP AGAINRED:&nb| | sp; MOV A,P1ANL A,#7FH ;P1.7 置0MOV R7,#00H ;R7 清零MOV R7,A ;存入东西方向红灯初始时间MOV R3,ALCALL DISP1LCALL DELAYAJMP AGAINN0: SETB TR0 ;启动T0计时器MOV 76H,R7 ;红灯时间存入76HN00: MOV A,76H ;东西方向禁止,南北方向通行MOV R3,A MOV DPTR,#0000H ;置8255A口,东西方向红
38、灯亮,南北方向绿灯亮 MOV A,#0DDHMOVX DPTR, AN01: JB P2.0,B0N02: SETB P3.0CJNE R3,#00H,N01 ;比较R3中的值是否为0,不为0转到当前指令处;-黄灯闪烁5秒程序-N1: SETB P3.0MOV R3,#05HMOV DPTR,#0000H ;置8255A口,东西,南北方向黄灯亮MOV A,#0D4HMOVX DPTR,AN11: MOV R4,#00HN12: CJNE R4,#7DH,$ ;黄灯持续亮0.5秒N13: MOV DPTR,#0000H ; 置8255A口,南北方向黄灯灭MOV A,#0DDHMOVX DPTR,
39、AN14: MOV R4,#00HCJNE R4,#7DH,$ ;黄灯持续灭0.5秒CJNE R3,#00H,N1 ;闪烁时间达5秒则退出;-N2: MOV R7,#00HMOV A,R0 ;东西通行,南北禁止MOV R3,AMOV DPTR,#0000H ; 置8255A口,东西方向绿灯亮,南北方向红灯亮MOV A,#0EBHMOVX DPTR,AN21: JB P2.0,T03N22: CJNE R3,#00H,N21;-黄灯闪烁5秒程序-N3: MOV R3,#05HMOV DPTR,#0000H ;置8255A口,东西,南北方向黄灯亮MOV A,#0E2HMOVX DPTR,AN31:
40、 MOV R4,#00HCJNE R4,#7DH,$ ;黄灯持续亮0.5秒N32: MOV DPTR,#0000H ; 置8255A口,南北方向黄灯灭MOV A,#0EBH MOVX DPTR,AN33: MOV R4,#00HCJNE R4,#7DH,$ ;黄灯持续灭0.5秒CJNE R3,#00H,N3 ;闪烁时间达5秒则退出SJMP N00;-闯红灯报警程序-B0: MOV R2,#03H ;报警持续时间3秒B01: MOV A,R3JZ N1 ;若倒计时完毕,不再报警CLR P3.0 ;报警 CJNE R2,#00H,B01 ;判断3 秒是否结束SJMP N02;-1秒延时子程序-N7
41、: RETIT0_INT:MOV TL0,#9AH ;给定时器T0送定时10ms 的MOV TH0,#0F1H INC R4INC R5CJNE R5,#0FAH,T01 ;判断延时是否够一秒,不够则MOV R5,#00H ;R5 清零DEC R3 &| | nbsp; ;倒计时初值减一DEC R2 ;报警初值减一T01: ACALL DISP ;调用显示子程序RETI ;中断返回;-显示子程序-DISP: JNB P2.4,T02DISP1: MOV B,#0AHMOV A,R3 ;R3 中值二转十显示转换DIV ABMOV 79H,AMOV 7AH,BDIS: MOV A,79H ;显示十位MOV DPTR,#TABMOVC A,A+DPTRMOV DPTR,#0002HMOVX DPTR,AMOV DPTR,#0001HMOV A,#0F7H MOVX DPTR,ALCALL DELAYDS2: MOV A,7AH ;显示个位MOV DPTR,#TAB MOVC A,A+DPTRMOV DPTR,#0002HMOVX DPTR,AMOV DPTR,#0001
链接地址:https://www.31ppt.com/p-3974914.html