交通灯控制模拟程序
- 格式:docx
- 大小:20.62 KB
- 文档页数:8
单片机课程报告设计题目:交通信号灯模拟控制系统设计专业:电子信息科学与技术班级:学号:姓名:指导老师:年月日※※※※※※前言※※※※※※本课程设计的目的和意义本课程设计是在学完单片机原理及课程之后综合利用所学单片机知识完成一个单片机应用系统设计并在实验室实现。
该课程设计的主要任务是通过解决一、两个实际问题,巩固和加深“单片机原理与应用”课程中所学的理论知识和实验能力,基本掌握单片机应用电路的一般设计方法,提高电子电路的设计和实验能力,加深对单片机软硬知识的理解,获得初步的应用经验,为以后从事生产和科研工作打下一定的基础。
*******目录*******一、设计要求二、设计内容三、交通信号灯模拟控制系统设计程序流程图四、交通信号灯模拟控制系统原理图五、交通信号灯模拟控制系统主程序六、运行步骤七、检测与调试八、课程设计体会九、参考文献十、说明一、设计要求:交通信号灯模拟控制系统设计利用单片机的定时器定时,令十字路口的红绿灯交替点亮和熄灭,并且用LED数码管显示时间。
用8051做输出口,控制十二个发光二极管燃灭,模拟交通灯管理。
二、设计内容:因为本课程设计是交通灯的控制设计,所以要了解实际交通灯的变化情况和规律。
假设一个十字路口为东西南北走向。
初始状态0为东西红灯,南北红灯。
然后转状态1东西红灯,南北绿灯通车,。
过一段时间转状态2南北绿灯灭,黄灯闪烁几次,东西仍然红灯。
再转状态3,东西绿灯通车,南北红灯。
过一段时间转状态4,东西绿灯灭,闪几次黄灯,南北仍然红灯。
最后循环至状态1。
注意:.双色LED是由一个红色LED管芯和一个绿色LED管芯封装在一起,公用负端。
当红色正端加高电平,绿色正端加低电平时,红灯亮;红色正端加低电平,绿色正端加高电平时,绿灯亮;两端都加高电平时,黄灯亮。
三、交通信号灯模拟控制系统设计程序流程图四、交通信号灯模拟控制系统主程序ORG 0000HSJMP A3ORG 0030HA3: MOV SP,#60H ;设栈指针初值MOV A, #24HMOV P1, ASETB P3.2CLR P3.3CLR P3.4SETB P3.5 ;全部红灯亮MOV R4,#00H ;显示0秒MOV R7,#00H ;显示0秒MOV R2,#03HLCALL XI ;调用子程序A2 : MOV A,#0CHMOV P1,ASETB P3.2SETB P3.3CLR P3.4CLR P3.5 ;东西红灯,南北绿灯MOV R4,#14H ; 显示20秒LOOP2 : MOV R2,#03HLCALL XIDJNZ R4,LOOP2 ;判断20秒显示时间到否MOV R2,#03HLCALL XILOOP8: MOV R2,#03H ;南北黄灯闪3次LCALL XIMOV R4,#05H ;设南北黄灯亮长显示5秒SETB P3.2CLR P3.3A1: MOV A,#14HMOV P1 ,ASETB P3.4CLR P3.5 ;东西红灯,南北黄灯MOV R2,#01H ;定时LCALL DELAY ;调用延时子程序MOV A ,#04HMOV P1 ,ACLR P3.4CLR P3.5 ;东西红灯,南北不亮即意思要南北黄灯闪烁MOV R2 ,#01H ;定时LCALL DELAYDJNZ R4,LOOP8 ;判断南北黄灯闪烁,显示5秒到否?MOV A, #61HMOV P1,ACLR P3.2CLR P3.3CLR P3.4SETB P3.5 ;东西绿灯,南北红灯MOV R4,#14H ;显示20秒LOOP3:MOV R2,#03HLCALL XIDJNZ R4,LOOP3 ;判断20秒显示时间到否MOV R7,#05H ;设东西黄灯亮长显示5秒SETB P3.5A0: MOV A,#0A2HMOV P1,ACLR P3.2CLR P3.3CLR P3.4 ;东西黄灯,南北红灯MOV R2,#01H ;定时LCALL DELAYMOV A,#20H ;MOV P1,ACLR P3.2CLR P3.3CLR P3.4 ;南北红灯,东西不亮即意思要东西黄灯闪烁MOV R2,#01H ;定时LCALL DELAYDJNZ R7,A0 ;判断东西黄灯闪烁,显示5秒到否?LJMP A2 ;循环回状态1,即东西红灯,南北黄灯DELAY: PUSH 2PUSH 1PUSH 0 ;进栈DELAY1: MOV 1,#00HDELAY2:MOV 0,#0B2HDJNZ 0,$ ;判断是否运行完0B2HDJNZ 1,DELAY2DJNZ 2,DELAY1POP 0POP 1POP 2 ;出栈DJNZ R2 ,DELAY ;判断R2是否运行完RET ;返回主程序XI: MOV A,R4MOV B,#10DIV ABMOV R6,AMOV DPTR,#TABMOV A,BMOVC A,@A+DPTRMOV SBUF,AMOV R7,#0FHH55S: DJNZ R7,H55SMOV A,R6MOVC A,@A+DPTRMOV SBUF,AMOV R7,#0FHH55S1: DJNZ R7,H55S1LCALL DELAYRETTAB:DB 0fch,60h,0dah,0f2h,66h,0b6h,0beh,0e0hDB 0feh,0f6h,0eeh,3eh,9ch,7ah,9eh,8ehEND五、交通信号灯模拟控制系统原理图设计的连线图提示:(1) 完整的DVCC实验箱面板(2)硬件电路连接说明六、运行步骤:①8051 P1.0—P1.7、P3.2—P3.5依次接发光二极管L1—L12。
交通灯的PLC程序设计摘要PLC(可编程逻辑控制器)是一种用于自动化控制的计算机设备。
本文将介绍在交通灯系统中使用PLC进行控制的程序设计。
介绍随着城市化的发展,交通拥堵已经成为了一个普遍的现象。
为了解决交通拥堵问题,并提高道路交通的安全性,交通灯系统变得越来越重要。
在交通灯系统中,使用PLC控制可以实现精确、可靠、高效的控制方式。
PLC是一种专业的控制器,主要用于工业自动化控制。
PLC能够将输入的控制信号进行逻辑处理,并输出相应的控制信号,实现可编程的自动控制。
在交通灯系统中,PLC负责控制信号灯的开关,保证交通信号灯的正常运转。
本文将介绍在交通灯系统中使用PLC的程序设计。
该设计针对的是普通十字路口,控制红、黄、绿三种信号灯的开关顺序,以保证交通流畅和交通安全。
PLC程序设计逻辑控制在交通灯系统中,PLC将接受来自传感器的信号,根据这些信号进行逻辑运算,从而控制信号灯的开关。
通过逻辑运算,PLC可以实现绿灯亮、黄灯亮、红灯亮等不同的控制方式。
PLC的逻辑运算主要包括开关量逻辑和模拟量逻辑两种方式。
对于交通灯系统来说,开关量逻辑是最常用的控制方式,这是因为信号灯的开关只有两种状态:开和关。
控制程序交通灯系统中使用的PLC程序通常是基于状态机的控制方式。
状态机是一种基于状态转移的控制模型,是一种理论模型,用于描述有限个状态及其之间的转移。
交通灯系统中的PLC程序一般会分为两部分:状态转移表和状态转移图。
状态转移表用于记录系统中所有的状态和它们之间的转移关系,状态转移图则是在状态转移表的基础上对状态之间的关系进行图形化表示。
下面是一个简单的状态转移表,用于描述交通灯系统中红、黄、绿三种灯的控制状态:当前状态输入信号下一状态红灯等待绿灯黄灯等待红灯绿灯等待黄灯红灯或黄灯非等待黄灯绿灯非等待红灯PLC程序实现在实现PLC程序时,需要根据状态转移图和状态转移表编写程序。
在交通灯系统中,PLC的输入端接收传感器信号,根据传感器信号和状态转移表的状态转移关系来更新PLC的输出信号。
实验八 交通灯控制实验一、实验目的:1、学习并掌握并行接口8255A的内部结构,功能及编程。
2、通过并行接口8255A实现十字路口交通灯的模拟控制,进一步掌握对并行A、B、C端口能在以下三种方式下工作:方式0—基本输入/出方式方式1—选通输入/出方式方式2—双向选通输入/出方式8255A的工作方式控制字用来决定8255A端口的工作方式,方式控制字的格式如图2-2所示。
表2-1 8255端口地址L12、L11、L10作为东西路口的交通灯与PC0、PC1、PC2相连,编程使六个交通灯按如下变化规律燃灭。
十字路口交通灯的变化规律要求:(1)南北路口的绿灯、东西路口的红灯同时亮。
(2)南北路口的黄灯闪烁若干次,同时东西路口红灯继续亮。
(3)南北路口的红灯、东西路口的绿灯同时亮。
(4)南北路口的红灯继续亮,同时东西路口的黄灯亮闪烁若干次。
(5)转(1)重复。
四、实验步骤1、按图2-1连接实验线路,注意切断实验箱电源。
2、参考下面的实验流程编写实验程序。
实验流程如下:3、经汇编、链接后将程序装入系统。
4、运行程序,观察交通灯的变化。
交通灯控制实验程序1: data segmentprotc1 db 9bh,0bbh,0fbh,0bbh,0fbh,0bbh,0fbh db 7eh,7dh,7fh,7dh,7fh,7dh,7fhdb 0ffhdata endscode segmentassume cs:code,ds:datastart: mov ax,datamov ds,axmov dx,0e3hmov al,90hout dx,almov dx,0e2hloop1: mov bx,0000hloop2:mov al,protc1[bx]cmp al,0ffhjz loop1out dx,alcall delayinc bxjmp loop2delay:mov cx,01ffhde1: mov di,0ffhde0: dec dijnz de0loop de1retcode endsend start交通灯控制实验程序2:data segmentprotc1 db 0dbh,0bbh,0fbh,0bbh,0fbh,0bbh,0fbhdb 7eh,7dh,7fh,7dh,7fh,7dh,7fhdb 0ffhdata endscode segmentassume cs:code,ds:datastart: mov ax,datamov ds,axmov dx,0e3hmov al,90hout dx,almov dx,0e2hloop1: mov bx,0000hloop2:mov al,protc1[bx]cmp al,0ffhjz loop1out dx,aland al 21hcmp al,21hjz aamov cx,0effhjmp bbaa: mov cx,01dfhbb: call delayinc bxjmp loop2delay:de1: mov di,0ffhde0: dec dijnz de0loop de1retcode endsend startdata segmentportc1 db 24h,44h,04h,44h,04h,44h,04h ;六个灯可能db 81h,82h,80h,82h,80h,82h,80h ;的状态数据 db 0ffh ;结束标志 data endscode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axmov dx,io8255bmov al,90hout dx,al ;设置8255为C口输出mov dx,io8255are_on: mov bx,0on: mov al,portc1[bx]cmp al,0ffhjz re_onout dx,al ;点亮相应的灯inc bxmov cx,20 ;参数赋初值test al,21h ;是否有绿灯亮jz de1 ;没有,短延时mov cx,5000 ;有,长延时de1: mov di,9000 ;di赋初值5000de0: dec di ;减1计数jnz de0 ;di不为0loop de1push dxmov ah,06hmov dl,0ffhint 21hpop dxjz on ;没有,转到onexit: mov ah,4ch ;返回int 21hcode endsend start。
DSP原理及C程序开发交通灯综合控制实验及程序代码一、实验目的◇熟悉使用ICETECK-F2812-A评估板控制ICETECK-CTR上交通灯的方法◇掌握TMS320F2812DSP定时器的使用和编程◇掌握TMS320F2812DSP外中断的使用和编程二、实验要求1、交通灯控制要求◇交通灯分红黄绿三色,东、南、西、北各一组◇计时显示:8*8点阵显示两位计数◇正常交通控制信号顺序①南北绿灯:东西红灯(20s)②南北绿灯闪烁③南北黄灯④南北红灯,东西黄灯⑤东西绿灯(20s)⑥东西绿灯闪烁⑦东西黄灯⑧返回1循环控制◇紧急情况处理①当任意方向通行剩余时间多于10s,将时间给为10s②正常变换到四面红灯(20s)③直接返回正常信号顺序的下一个通行信号(跳过闪烁绿灯、黄灯状态)2、交通灯模拟利用ICETECK-CTR上的一组发光二极管(共12只,分为东西南北四组、红黄绿三色)的亮灭实现交通信号的模拟;3、计时显示利用ICETEK-CTR上的发光二极管显示阵列模拟显示4、计时利用TMS320F2812DSP片上定时器,定时产生时钟计数,再利用此计数对应具体时间5、紧急情况利用ICETECK-CTR上键盘产生外中断,中断正常信号顺序,模拟突发情况6、程序设计由于控制是由不同的各种状态按顺序发生的,可采用状态机控制方法来实现、◇首先列举所有可能发生的状态◇然后将这些状态编号,按顺序产生这些状态;状态延续的时间用程序控制◇对于突发情况,可采用在正常顺序的控制中插入特殊控制序列的方式完成三、实验步骤1.实验准备(1)连接实验设备:(2)连接实验箱附带的键盘的PS2插头到ICETEK-CTR的“键盘接口”P8。
(3)将ICETEK-CTR板的供电电源开关拨动到“开”的位置。
2.设置Code Composer Studio3.3在硬件仿真(Emulator)方式下运行。
3.启动Code Composer Studio 3.3,选择菜单Debug→Connect ; Debug→Reset CPU。
30 25 3 2实验二十字路口交通灯控制的模拟在S22 S7-200模拟实验挂件(二)完成本实验。
一、实验目的熟练使用各基本指令,根据控制要求,掌握PLC的编程方法和程序调试方法,使学生了解用PLC解决一个实际问题的全过程。
二、控制要求信号灯受一个启动开关控制,当启动开关接通时,信号灯系统开始工作,且先南北红灯亮,东西绿灯亮。
当启动开关断开时,所有信号灯都熄灭。
南北红灯亮维持30秒,在南北红灯亮的同时东西绿灯也亮,并维持25秒。
到25秒时,东西绿灯闪亮,闪亮3秒后熄灭。
在东西绿灯熄灭时,东西黄灯亮,并维持2秒。
到2秒时,东西黄灯熄灭,东西红灯亮,同时,南北红灯熄灭,绿灯亮。
东西红灯亮维持30秒。
南北绿灯亮维持25秒,然后闪亮3秒后熄灭。
同时南北黄灯亮,维持2秒后熄灭,这时南北红灯亮,东西绿灯亮。
周而复始三、十字路口交通灯控制的实验面板图:五、工作过程当启动开关SD合上时,I0.0触点接通,Q0.2得电,南北红灯亮;同时Q0.2的动合触点闭合,Q0.3线圈得电,东西绿灯亮。
1秒后,T49的动合触点闭合,Q0.7线圈得电,模拟东西向行驶车的灯亮。
维持到20秒,T43的动合触点接通,与该触点串联的T59动合触点每隔0.5秒导通0.5秒,从而使东西绿灯闪烁。
又过3秒,T44的动断触点断开,Q0.3线圈失电,东西绿灯灭;此时T44的动合触点闭合、T47的动断触点断开,Q0.4线圈得电,东西黄灯亮,Q0.7线圈失电,模拟东西向行驶车的灯灭。
再过2秒后,T42的动断触点断开,Q0.4线圈失电,东西黄灯灭;此时起动累计时间达25秒,T37的动断触点断开,Q0.2线圈失电,南北红灯灭,T37的动合触点闭合,Q0.5线圈得电,东西红灯亮,Q0.5的动合触点闭合,Q0.0线圈得电,南北绿灯亮。
1秒后,T50的动合触点闭合,Q0.6线圈得电,模拟南北向行驶车的灯亮。
又经过25秒,即起动累计时间为50秒时,T38动合触点闭合,与该触点串联的T59的触点每隔0.5秒导通0.5秒,从而使南北绿灯闪烁;闪烁3秒,T39动断触点断开,Q0.0线圈失电,南北绿灯灭;此时T39的动合触点闭合、T48的动断触点断开,Q0.1线圈得电,南北黄灯亮,Q0.6线圈失电,模拟南北向行驶车的灯灭。
目录1. 概述 (1)2. 硬件设计 (2)2.1.控制要求 (2)2.2. PLC介绍 (3)2.2.1 PLC的基本概念 (3)2.2.2 PLC的主要特点 (4)2.2.3 PLC的结构及其工作原理 (4)2.4.I/O分配表 (7)2.5.I/O接线图 (8)3. 软件设计 (9)3.1设计梯形图 (9)3.2设计指令表 (12)4. 调试 (15)4.1 . 编程思想 (15)4.2. 控制系统的程序调试步骤 (15)4.3. 调试过程遇到的问题及解决方法 (15)5. 结束语 (16)6.参考文献 (17)1.1. 概述十字路口交通指示灯在日常生活中随处可见,设计安全可靠的交通灯在正常生活中起着重要作用。
应用PLC设计满足要求实际要求的十字路口指示灯是一个非常重要的手段。
PLC是以微处理器为基础,综合了计算机技术.半导体技术.自动控制技术.数字技术和网络通信技术发展起来的一种通用工业自动控制装置。
PLC以其可靠性高.灵活性强.使用方便的优越性,迅速占领了工业控制领域。
本设计介绍了应用PLC实现十字路口交通信号灯的自动控制。
通过对交通信号灯的控制要求分析,对PLC控制系统进行了软、硬件设计,并通过实验证明该系统简单、经济、运行可靠,具有很高的实用价值。
2.硬件设计2.1.控制要求在十字路口南北方向以及东西方向均设有红,黄,绿3只信号灯,6只信号灯依一定的时序循环往复工作。
信号灯受电源总开关控制,接通电源,信号灯系统开始工作;关闭电源所有的信号灯都熄灭,程序自动关闭。
在晚上车辆稀少时,要求交通灯处于下班工作状态,即两个方向的黄灯一直闪烁。
在信号灯工作期间,东西以及南北方向的红灯亮维持30秒,在红灯亮时的最后2s,东西以及南北方向的黄灯同时闪烁,时间为2s,东西以及南北方向的绿灯为长亮25s,然后闪烁3s。
下图为交通灯示意图2.2.总体思路启动I0.0东西绿灯Q4.0东西黄灯Q4.1东西红灯Q4.2南北绿灯Q4.3南北黄灯Q4.4南北红灯30s 25s 3s 2s 此图为交通灯时序图2.2. PLC介绍2.2.1 PLC的基本概念可编程控制器是计算机家族中的一员,是为工业控制应用而设计制造的。
《微机原理与接口技术》课程设计报告题目:十字路口交通灯设计学院:信息工程学院专业:通信工程目录1、摘要 (1)2、硬件电路图 (2)3、AT89C51功能介绍 (3)4、交通灯程序设计思路 (5)5、交通灯运行流程图 (6)6、源代码函数说明 (6)7、交通灯设置红绿灯时间结果图 (8)8、心得与体会 (9)9、源程序代码 (10)摘要十字道口的红绿灯是交通法规的无声命令,是司机和行人的行为准则。
十字道口的交通红绿灯控制是保证交通安全和道路畅通的关键。
当前,国内大多数城市正在采用“自动”红绿交通灯,它具有固定的“红灯—绿灯”转换间隔,并自动切换。
它们一般由“通行与禁止时间控制显示、红黄绿三色信号灯和方向指示灯”三部分组成。
通常,生活中常见的红绿灯控制为,红灯六十秒,绿灯四十五秒,黄灯三秒等,因道路,车辆,城市交通规划而异,此次,基于proteus仿真十字路口的交通灯控制系统,设定南北方向绿灯15秒,黄灯5s,东西方向绿灯10s,黄灯5s。
系统基于MSC-51系列单片机89C51为中心器件来设计交通灯,显示器件为LED 红绿灯,LCD数码管。
采用c51编程,简单易懂,将功能模块化,除了可以实现红绿灯按要求变化,还通过proteus里的按钮,设置了键盘函数,可以按要求调整红绿灯亮的时间,并且还有重置(初始化)按钮。
一.功能概述1.设计任务:交通灯的硬件设计和软件设计2.设计目的:(1).初步了解和认识51单片机的工作原理,引脚图。
(2).掌握单片机相关接口技术和相关外围芯片的特性。
( 3 ).通过实际的设计程序,查找资料,调试程序,熟悉keil和proteus软件仿真,理解并熟悉模块化程序设计方法和调试。
3.基本要求:利用单片机的定时器产生秒信号,控制十字路口的红、绿、黄灯交替点亮和熄灭,并且用 4 只LED 数码管显示十字路口两个方向的剩余时间。
当东西方向亮绿灯时,南北方向红灯亮起;反之,如果南北方向亮绿灯,同时东西方向亮绿灯;绿灯亮时车辆行驶,红灯亮时车辆停止。
基于51单片机的交通信号灯模拟控制系统一、实验目的和要求1.掌握单片机基本资源使用。
2.掌握单片机电路原理图绘制和仿真。
3.掌握单片机C语言软件开发以及联合仿真。
二、实验内容和原理实验内容:1.根据题目绘制单片机电路原理图。
2.绘制程序流程图并编写C语言程序3.在仿真程序中进行联合仿真,最后提交实验报告三、主要仪器设备keilC,proteus。
四、操作方法与实验步骤4.1 题目要求用单片机设计一个十字路口交通灯模拟控制系统,要求东西、南北两个方向都通行20秒,警告3秒,禁止20秒,同时要考虑到东西、南北两个方向出现异常情况,出现异常情况器该方向通行60秒。
4.2 系统设计思路南北的绿红黄发光二极管与单片机AT89C51单片机的P1.0,P1.1,P1.2相连。
东西的绿红黄发光二极管与单片机AT89C51单片机的P1.4,P1.5,P1.6相连。
改变单片机P1口编码控制交通灯。
控制过程中会出现两种异常情况用外中断0和外中断1处理。
时间单位采用500ms信号,由定时/计数器0定时50ms,循环10次产生,定时/计数器0采用查询方式,主程序中设定定时/计数器0的工作方式:方式1。
4.2 电路图绘制(包含详细的参数选定文字和图像叙述)C1=1nF,C2=1nF,C3=1nF,R1=300,R2=300,R3=300,R4=300,R5=300,R6=300,R7=300,R8=300,R9=300,R10=300,R11=300,R12=300,R13=3004.3 C程序编制(包含详细的文字和程序流程图)4.3 仿真分析(包含文字和图像叙述)东西绿灯,南北红灯东西黄灯,南北红灯南北绿灯,东西红灯南北黄灯,东西红灯东西发生异常时,东西通行,南北禁止,东西方向绿灯闪,南北方向红灯闪南北发生异常时,南北通行,东西禁止,南北方向绿灯闪,东西方向红灯闪五、讨论和心得(不少于100字)通过这次对交通灯信号的模拟,了解了交通灯4种正常状态,2种异常状态,它们分别是:状态1,东西方向绿灯,南北方向红灯20秒。
交通灯控制模拟程序设计data segment title1 db 'Traffic-System' deng db '# # #' sing1 db'South-North' sing2 db 'East - West' sing3 db 'Redtime(scend):' time db 'Time:' sing4 db 'Yellowtime(scend):' buff db 4 ;键盘缓冲区 buff1 db 3dup(?) ;工作计数区 buff2 db 3 dup(?) ; 数据保存区yellow db ? ; 黄灯时间 mode db 'Mode:auto(Y/N)?:'ans db ?ting3 db 'Red time(scend):030'ting4 db 'Yellow time(scend):5'・************************ Jdata ends code segmentassume cs:code,ds:data,es:data start:mov ax,datamov ds,ax mov es,ax call title2 ; 初始化标题 q0: call mode1 ; 模式选择 自动或手动 call scanf call atuo ;默认设置参数启动 lea si,anscmp byte ptr[si],'y'jz q1cmp byte ptr[si],'n'jnz q0call ask1 ;设置红灯时间call scanf0 call ask2 ;设置黄灯时间・*************定义数据段 ***********************************************主程序段 **********************************************call scanf1q1: call init1 ; 初始化灯光call init2lea si,buff; 复制数据 buff-buff1 ,保存显示时间inc siinc silea di,buff1cldmov cx,3REP movsblea si,buff1; 复制数据 buff1-buff2 ,保存显示时间lea di,buff2cldmov cx,3REP movsbclda3: call nrcall write0子程序设计 ************************************** 状态一 :南北方向红灯,东西方向绿灯 ***************************** start1:lea si,buff2 ; 复制数据 buff2-buff1 ,保存显示时间 di,buff1・******************** ・******* leaa0: a1: a2: mov REP cx,3movsblea di,buff1cmp byte ptr[di+2],30h ; 数据处理部分ja a1add byte ptr[di+2],10sub byte ptr[di+1],1sub byte ptr[di+2],1cmp byte ptr[di+1],30hjnc a2add byte ptr[di+1],10sub byte ptr[di],1cmp byte ptr[di],30hjnc a3jmp start2 ; 换灯lea si,yellowmov al,[si]cmp byte ptr[di+2],al ;最后五秒绿灯变黄灯jna a4jmp a8a4: cmp byte ptr[di+1],30h jna a5 jmp a8a5: cmp byte ptr[di],30h ja a8 call ey jmp a9a8: call ega9: call delay ; 延时一秒左右jmp a0******** 状态二 :南北方向绿灯,东西方向红灯; 复制数据 buff2-buff1 ,保存显示时间 lea di,buff1 cldmov cx,3 REP movsb lea di,buff1b0: cmp byte ptr[di+2],30h;数据处理部分 ja b1 add byte ptr[di+2],10 sub byte ptr[di+1],1b1: sub byte ptr[di+2],1 cmp byte ptr[di+1],30h jnc b2 add byte ptr[di+1],10 sub byte ptr[di],1b2: cmp byte ptr[di],30h jnc b3 jmp start1 ; 换灯b3:call er call write0**************************** start2:lea si,buff2lea si,yellowmov al,[si]cmp byte ptr[di+2],al ; 最后五秒绿灯变黄灯jna b4jmp b8b4: cmp byte ptr[di+1],30hjna b5jmp b8b5: cmp byte ptr[di],30hja b8call nyjmp b9b8: call ngb9: call delay ;延时一秒左右jmp b0・****** 模式设置***************mode1 procmov cx,16 ;设置时间lea bp,mode mov dh,5mov dl,2 mov al,1 mov bl,07h mov ah,13h int 10hret mode1 endp title2 proc・**********标题***************mov cx,14 ; 设置时间lea bp,title1 mov dh,1mov dl,25mov al,1 mov bl,07h mov ah,13h int 10h ret title2endpask1 proc mov cx,16;设置时间 lea bp,sing3 mov dh,9 mov dl,2mov al,1 mov bl,06h movah,13h int 10h retask1 endpask2 procmov cx,19 ;设置时间 leabp,sing4 mov dh,13 mov dl,25mov al,1 mov bl,06h movah,13h int 10hret ask2 endp・*********** J键盘输入设置 *******scanf:mov ah,01h int 21hlea si,ans mov [si],al ret ・***********J 键盘 0 输入设置****** scanf0:lea dx,buffmov ah,0ahint 21h ret・********* J 键盘 1 输入设置scanf1:mov ah,01h int 21hlea si,yellow mov [si],al ret init1:mov cx,11 ;设置标题南北・******* 交互界面时间设置 1*******・*********交互界面时间设置 ******・************* 南北灯的初始化 *****lea bp,sing1 mov dh,7 movdl,30 mov al,0 mov bl,07h movah,13h int 10h ret;*********** 东西方向的初始化****init2:mov cx,11 ;设置标题东西lea bp,sing2 mov dh,11 movdl,30 mov al,0 mov bl,07h movah,13h int 10hret・********* 南北方向交通灯函数***************************************** ng: mov cx,7 leabp,deng movdh,7mov dl,47mov al,0mov bl,02h ; 设置颜色绿色mov ah,13hint 10hretny: mov cx,7mov dh,7 lea bp,deng movdl,47 mov al,0mov bl,0eh ; 设置颜色黄色mov ah,13h int 10hretnr: mov cx,7 mov dh,7 lea bp,dengmov dl,47 mov al,0mov bl,04h ; 设置颜色 红色mov ah,13hint 10hretmov dh,11mov dl,47 mov al,0mov bl,02h ; 设置颜色 绿色mov ah,13hint 10hretey: mov cx,7mov dh,11 lea bp,deng movdl,47 mov al,0mov bl,0eh ; 设置颜色 黄色mov ah,13h int 10hreter: mov cx,7 mov dh,11 lea bp,dengmov dl,47 mov al,0mov bl,04h ; 设置颜色 红色mov ah,13h int 10h retwrite0:mov cx,3 lea bp,buff1 mov dh,7 mov dl,60 mov al,1 mov bl,04h mov ah,13h int 10h ret・*****************时间显示函数 **********************************东西方向交通灯函数 *****************************************eg: mov cx,7 lea bp,deng・********write1:mov cx,3 lea bp,buff1 mov dh,11 mov dl,60 mov al,1mov bl,04h mov ah,13h int 10hret・************* 默认设置红灯30 秒,黄灯5秒************************** atuo: mov cx,19 ;红灯默认时间30 秒lea bp,ting3 mov dh,9 mov dl,2 mov al,1 mov bl,07h movah,13h int 10hmov cx,20 ;黄灯默认时间 5 秒lea bp,ting4mov dh,13mov dl,2 mov al,1 mov bl,07h mov ah,13h int 10h lea si,buffmov byte ptr[si+2],30h mov byte ptr[si+3],33h mov byteptr[si+4],30h lea si, yellowmov byte ptr[si],35h ret・ *****************J延时函数delay:mov dx,25000 l1: mov cx,30000 l2: loop l2 dec dx jnz l1 ret code endsend start。