华电电气微机原理综合交通灯设计_第1页
华电电气微机原理综合交通灯设计_第2页
华电电气微机原理综合交通灯设计_第3页
华电电气微机原理综合交通灯设计_第4页
华电电气微机原理综合交通灯设计_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、微机原理与接口技术实验报告综合实验 红绿灯仿真及实现 专业: 电力系 班级: 电气1409 学号: 2014010009* 姓名: WAY 预习报告成绩 实验成绩: 实验日期及时间:(1) 2017/5/13 机位号: (2) 2017/5/20 机位号: B11 指导教师: 秦金磊 综合实验项目基本要求(任务书):设计实现交通信号灯系统。设A车道与B车道交叉组成十字路口,A是主道,B是支道,直接对车辆进行交通管理,基本要求如下:(1)用发光二极管模拟交通信号灯;(2)正常情况下,A、B两车道轮流放行,A车道放行绿灯亮,其中3秒用于警告(黄灯亮);B车道放行绿灯亮,其中3秒用于警告(黄灯亮);

2、A、B车道放行、禁止通行时间自己定义;(3)有紧急车辆通过时,按下某开关使A、B车道均为红灯,紧急情况解除后,恢复正常控制。注意:除上述基本要求外,其它各种功能,可以自由发挥。一 实验一: 在Proteus仿真实现交通信号灯系统。(1) 交通信号灯系统设计描述(实现内容)用发光二极管模拟交通信号灯;正常情况下,A、B两车道轮流放行。A车道绿灯放行,直行箭头亮,人行道红灯亮,B道红灯亮,直行红箭头亮,人行道绿灯亮延时10秒;A车道绿灯闪烁两次B车道红灯禁止放行,然后A车道延时3秒用于警告(黄灯亮);A车道红灯亮,A车道左转箭头亮,延时5秒;B车道绿灯,直行箭头亮,人行道红灯亮,A车道禁止放行红灯

3、亮直行红箭头亮,人行道绿灯亮延时10秒,B车道绿灯闪烁2次,A车道禁止放行红灯亮,然后3秒用于警告(黄灯亮); B车道红灯亮,B车道左转箭头亮,延时5秒;恢复到初始状态.有紧急车辆通过时,按下某开关使A、B车道均为红灯,紧急情况延时5秒;A道有特种车辆通过时,按下某开关使A车道为绿灯B车道为红灯,延时5秒;用数码管显示绿灯通行、黄灯等待时间;(2) Proteus中实现原理图下图为矢量图可以放大看(3) 源程序清单;8253的端口地址A1_PORT EQU220H ;0#B1_PORT EQU222H ;1#C1_PORT EQU224H ;2#CT1_PORT EQU226H ;CONTRO

4、L;8255#1端口地址A_PORT EQU 200HB_PORT EQU 202HC_PORT EQU 204HCT_PORT EQU 206H;8255#2(A道LED)端口地址A2_PORT EQU 230HB2_PORT EQU 232HC2_PORT EQU 234HCT2_PORT EQU 236H;8255#3(B道LED)端口地址A3_PORT EQU 228HB3_PORT EQU 22AHC3_PORT EQU 22CHCT3_PORT EQU 22EH;8255#4(A、B道左转LED)端口地址A4_PORT EQU 238HB4_PORT EQU 23AHC4_PORT

5、 EQU 23CHCT4_PORT EQU 23EH;8259A的端口地址O_ADREQU212H;奇地址E_ADREQU210H;偶地址DATAS SEGMENT;七段码ORG 0F0000HTAB DB 00H,01H,02H,03H,04H,05H,06H,07H,08H,09H,10H,11H,12H,13H,14H,15HAB_FLAG DB 0;0表示A道,1表示B道ORG 6000H;人行道段码表ROW1 DB 01H,02H,04H,08H,10H,20H,40H,80HCEL1 DB 0F7H,0F7H,0F7H,0F7H,0E7H,0DBH,0BDH,7EH;箭头段码表CE

6、L2 DB 0E7H,0C3H,0A5H,66H,0E7H,0E7H,0E7H,0E7HUNABLE DB 7EH,0BDH,0DBH,0E7H,0E7H,0DBH,0BDH,7EHALFT DB 0F3H,0F9H,0H,79H,73H,7FH,7FH,7FHDATAS ENDSCODE SEGMENT PUBLIC CODE ASSUME CS:CODE,DS:DATASORG 2000HSTART: ; Write your code herePUSH DS CLI ;8253计数器0的初始化MOV AL,36H;控制字00 11 011 0 B,计数器0,方式3,二进制MOV DX,C

7、T1_PORTOUT DX,AL;送控制端口;8253计数器1的初始化MOV AL,70H;控制字01 11 000 0 B,计数器1,方式0,二进制MOV DX,CT1_PORTOUT DX,AL;送控制端口;8259A的初始化;0001 0011,ICW1,边沿触发,无从片,写ICW4MOV AL,13HMOV DX,E_ADR;偶地址OUT DX,AL;ICW2,IR0中断向量码为08HMOV AL,08HMOV DX,O_ADR;奇地址OUT DX,ALMOV AL,0FHMOV DX,O_ADR;奇地址OUT DX,AL;ICW4,CPU为80X86系列,非自动结束,无缓冲,全嵌套方

8、式MOV AL,01HOUT DX,ALMOV AL,7EHOUT DX,AL;OCW1,只允许IR0开放;中断向量表的初始化MOV AX,0000HMOV DS,AX MOV SI,08H*4MOV AX,OFFSET IR0MOV BX,SEG IR0MOV SI,AXMOV SI+2,BX;IR7中断向量MOV SI,0FH*4MOV AX,OFFSET IR7MOV BX,SEG IR7MOV SI,AXMOV SI+2,BX;8255#1初始化MOV AL,88H ;正定控制字1000,1000,方式0,A口输出 ,C口输入MOV DX,CT_PORT OUT DX,AL;8255#

9、2初始化MOV AL,80H ;正定控制字1000,1000,方式0,A口、B、C输出MOV DX,CT2_PORT OUT DX,AL;8255#3初始化MOV AL,80H ;正定控制字1000,1000,方式0,A口、B、C输出MOV DX,CT3_PORT OUT DX,AL;8255#4初始化MOV AL,80H ;正定控制字1000,1000,方式0,A口、B、C输出MOV DX,CT4_PORT OUT DX,AL;A道绿灯,B道红灯,延时10s,默认是A道,即AB_FLAG=0LP: PUSH DS CLI STI;开中断 POP DS MOV AL,0F3HMOV DX,A_

10、PORT ;A道绿灯,B道红灯 OUT DX,AL ;延时10SMOV CX,10YS1: CALL NORMALDELAY1S LOOP YS1;A道绿灯闪烁,B道红灯禁止,闪两次MOV AL,0F7HMOV DX,A_PORT ;A道绿灯灭,B道红灯禁止,第一次 OUT DX,ALCALL NORMALDELAY1SMOV AL,0F3HMOV DX,A_PORT ;A道绿灯亮,B道红灯禁止,第一次 OUT DX,ALCALL NORMALDELAY1SMOV AL,0F7HMOV DX,A_PORT ;A道绿灯灭,B道红灯禁止,第二次 OUT DX,ALCALL NORMALDELAY1

11、SMOV AL,0F3HMOV DX,A_PORT ;A道绿灯亮,B道红灯禁止,第二次 OUT DX,ALCALL NORMALDELAY1S;A道黄灯亮,B道红灯禁止,延时3sMOV AL,0F5HMOV DX,A_PORT ;A道黄灯亮,B道红灯禁止 OUT DX,AL;延时3S MOV CX,3YS2: CALL NORMALDELAY1S LOOP YS2;A道直行红灯亮,左转绿灯,人行道红灯亮,B道红灯,延时5秒 MOV CX,5AZZYS1: CALL AZZDELAY1SLOOP AZZYS1;B道绿灯放行,A道红灯禁止,延时10s,修改标志为B道MOV AL,AB_FLAGIN

12、C ALMOV AB_FLAG,ALMOV AL,0DEHMOV DX,A_PORT ;B道绿灯放行,A道红灯禁止 OUT DX,AL;延时10S程序 MOV CX,10YS3: CALL NORMALDELAY1SS LOOP YS3;B道绿灯闪烁,A道红灯禁止,闪两次MOV AL,0FEHMOV DX,A_PORT ;B道绿灯灭,A道红灯禁止,第一次 OUT DX,ALCALL NORMALDELAY1SSMOV AL,0DEHMOV DX,A_PORT ;B道绿灯亮,A道红灯禁止,第一次 OUT DX,ALCALL NORMALDELAY1SSMOV AL,0FEHMOV DX,A_PO

13、RT ;B道绿灯灭,A道红灯禁止,第二次 OUT DX,ALCALL NORMALDELAY1SSMOV AL,0DEHMOV DX,A_PORT ;B道绿灯亮,A道红灯禁止,第二次 OUT DX,ALCALL NORMALDELAY1SS;B道黄灯亮,A道红灯禁止,延时3sMOV AL,0EEHMOV DX,A_PORT ;B道黄灯亮,A道红灯禁止 OUT DX,AL;延时3S程序MOV CX,3YS4: CALL NORMALDELAY1SS LOOP YS4;B道直行红灯亮,左转绿灯,A道红灯,延时5秒MOV CX,5BZZYS1: CALL BZZDELAY1S LOOP BZZYS1

14、;修改标志为A道MOV AL,AB_FLAGDEC ALMOV AB_FLAG,ALJMP LPIR0 PROCCLIPUSH CXMOV AL,0F6H ;A道B道红灯禁止MOV DX,A_PORTOUT DX,ALMOV CX,6ZDYS1: CALL UNNORMALDELAY1S LOOP ZDYS1POP CXMOV AL,20HMOV DX,E_ADROUT DX,AL;OCW2发结束命令EOI=1TEST AB_FLAG,1JZ LIAJMP LIBLIA:MOV AL,0F3HMOV DX,A_PORT ;A道绿灯,B道红灯 OUT DX,ALJMP DONELIB: MOV

15、AL,0DEHMOV DX,A_PORT ;B道绿灯放行,A道红灯禁止 OUT DX,ALDONE:STIIRETIR0 ENDPIR7 PROC CLI PUSH CXMOV AL,0F3H ;A道绿灯,B道红灯禁止MOV DX,A_PORTOUT DX,ALMOV CX,5ZDYS2: CALL NORMALDELAY1S LOOP ZDYS2POP CXMOV AL,20HMOV DX,E_ADR;偶地址OUT DX,AL;OCW2发结束命令EOI=1 TEST AB_FLAG,1JZ LIAJMP LIBLIA:MOV AL,0F3HMOV DX,A_PORT ;A道绿灯,B道红灯 O

16、UT DX,ALJMP DONELIB: MOV AL,0DEHMOV DX,A_PORT ;B道绿灯放行,A道红灯禁止 OUT DX,ALDONE:STIIRETIR7 ENDP;1s精确延时NORMALDELAY1S PROC MOV AL,AB_FLAGCMP AL,0JZ APATH;设置PC0为高MOV AL,1MOV DX,C_PORTOUT DX,ALJMP SEC_DISAPATH:;设置PC0为低MOV AL,0MOV DX,C_PORTOUT DX,ALSEC_DIS:;保存所余秒数MOV BX,CX;从PB口输出剩余秒数到LEDLEA SI,TABADC BX,SIMOV

17、 AX,DS:BXMOV DX,B_PORTOUT DX,AL ;设置计数器0的初值MOV AX,1000MOV DX,A1_PORTOUT DX,ALMOV AL,AHOUT DX,AL;设置计数器1的初值MOV AX,1000MOV DX,B1_PORTOUT DX,ALMOV AL,AHOUT DX,AL;判断计数时间是否达到1s PUSH SIPUSH DIPUSH BXPUSH CX N: MOV CX,8 LEA SI,ROW1LEA DI,CEL1LEA BX,CEL2LOOP2: MOV AL,SIMOV DX,A2_PORTOUT DX,ALMOV AL,BXMOV DX,C

18、2_PORTOUT DX,AL MOV AL,SIMOV DX,A2_PORTOUT DX,ALMOV AL,DIMOV DX,B2_PORTOUT DX,ALINC SIINC DIINC BXPUSH CXMOV CX,150LOOP $ POP CXLOOP LOOP2 MOV DX,C_PORT IN AL,DXAND AL,80HCMP AL,80HJNZ NDONE1:POP CXPOP BXPOP DIPOP SIRETNORMALDELAY1S ENDPNORMALDELAY1SS PROC MOV AL,AB_FLAGCMP AL,0JZ APATH;设置PC0为高MOV A

19、L,1MOV DX,C_PORTOUT DX,ALJMP SEC_DISAPATH:;设置PC0为低MOV AL,0MOV DX,C_PORTOUT DX,ALSEC_DIS:;保存所余秒数MOV BX,CX;从PB口输出剩余秒数到LEDLEA SI,TABADC BX,SIMOV AX,DS:BXMOV DX,B_PORTOUT DX,AL ;设置计数器0的初值MOV AX,1000MOV DX,A1_PORTOUT DX,ALMOV AL,AHOUT DX,AL;设置计数器1的初值MOV AX,1000MOV DX,B1_PORTOUT DX,ALMOV AL,AHOUT DX,AL;判断

20、计数时间是否达到1s PUSH SIPUSH DIPUSH BXPUSH CX N: MOV CX,8 LEA SI,ROW1LEA DI,CEL1LEA BX,CEL2LOOP2: MOV AL,SIMOV DX,A3_PORTOUT DX,ALMOV AL,BXMOV DX,C3_PORTOUT DX,AL MOV AL,SIMOV DX,A3_PORTOUT DX,ALMOV AL,DIMOV DX,B3_PORTOUT DX,ALINC SIINC DIINC BXPUSH CXMOV CX,150LOOP $ POP CXLOOP LOOP2 MOV DX,C_PORT IN AL,

21、DXAND AL,80HCMP AL,80HJNZ NPOP CXPOP BXPOP DIPOP SIRET NORMALDELAY1SS ENDP ;中断1调用延时UNNORMALDELAY1S PROC MOV AL,AB_FLAGCMP AL,0JZ APATH;设置PC0为高MOV AL,1MOV DX,C_PORTOUT DX,ALJMP SEC_DISAPATH:;设置PC0为低MOV AL,0MOV DX,C_PORTOUT DX,ALSEC_DIS:;保存所余秒数MOV BX,CX;从PB口输出剩余秒数到LEDLEA SI,TABADC BX,SIMOV AX,DS:BXMOV

22、 DX,B_PORTOUT DX,AL ;设置计数器0的初值MOV AX,1000MOV DX,A1_PORTOUT DX,ALMOV AL,AHOUT DX,AL;设置计数器1的初值MOV AX,1000MOV DX,B1_PORTOUT DX,ALMOV AL,AHOUT DX,AL;判断计数时间是否达到1s PUSH SIPUSH DIPUSH BXPUSH CX N: MOV CX,8 LEA SI,ROW1LEA DI,UNABLELEA BX,UNABLELOOP2: MOV AL,SIMOV DX,A3_PORTOUT DX,ALMOV AL,BXMOV DX,C3_PORTOU

23、T DX,AL MOV AL,SIMOV DX,A3_PORTOUT DX,ALMOV AL,DIMOV DX,B3_PORTOUT DX,ALINC SIINC DIINC BXPUSH CXMOV CX,150LOOP $ POP CXLOOP LOOP2 MOV DX,C_PORT IN AL,DXAND AL,80HCMP AL,80HJNZ NPOP CXPOP BXPOP DIPOP SIRETUNNORMALDELAY1S ENDPAZZDELAY1S PROC MOV AL,0DEHMOV DX,A_PORT ;B道绿灯放行,A道红灯禁止 OUT DX,AL MOV AL,AB

24、_FLAGCMP AL,0JZ APATH;设置PC0为高MOV AL,1MOV DX,C_PORTOUT DX,ALJMP SEC_DISAPATH:;设置PC0为低MOV AL,0MOV DX,C_PORTOUT DX,ALSEC_DIS:;保存所余秒数MOV BX,CX;从PB口输出剩余秒数到LEDLEA SI,TABADC BX,SIMOV AX,DS:BXMOV DX,B_PORTOUT DX,AL ;设置计数器0的初值MOV AX,1000MOV DX,A1_PORTOUT DX,ALMOV AL,AHOUT DX,AL;设置计数器1的初值MOV AX,1000MOV DX,B1_

25、PORTOUT DX,ALMOV AL,AHOUT DX,AL;判断计数时间是否达到1s PUSH SIPUSH DIPUSH BXPUSH CX N: MOV CX,8 LEA SI,ROW1LEA DI,ALFTLEA BX,UNABLELOOP2: MOV AL,SIMOV DX,A4_PORTOUT DX,ALMOV AL,BXMOV DX,C4_PORTOUT DX,AL MOV AL,SIMOV DX,A4_PORTOUT DX,ALMOV AL,DIMOV DX,B4_PORTOUT DX,AL INC SIINC DIINC BXPUSH CXMOV CX,150LOOP $

26、POP CXLOOP LOOP2 MOV DX,C_PORT IN AL,DXAND AL,80HCMP AL,80HJNZ NPOP CXPOP BXPOP DIPOP SIRETAZZDELAY1S ENDPBZZDELAY1S PROC MOV AL,0F3HMOV DX,A_PORT ;A道绿灯,B道红灯 OUT DX,AL MOV AL,AB_FLAGCMP AL,0JZ APATH;设置PC0为高MOV AL,1MOV DX,C_PORTOUT DX,ALJMP SEC_DISAPATH:;设置PC0为低MOV AL,0MOV DX,C_PORTOUT DX,ALSEC_DIS:;

27、保存所余秒数MOV BX,CX;从PB口输出剩余秒数到LEDLEA SI,TABADC BX,SIMOV AX,DS:BXMOV DX,B_PORTOUT DX,AL ;设置计数器0的初值MOV AX,1000MOV DX,A1_PORTOUT DX,ALMOV AL,AHOUT DX,AL;设置计数器1的初值MOV AX,1000MOV DX,B1_PORTOUT DX,ALMOV AL,AHOUT DX,AL;判断计数时间是否达到1s PUSH SIPUSH DIPUSH BXPUSH CX N: MOV CX,8 LEA SI,ROW1LEA DI,UNABLELEA BX,ALFTLO

28、OP2: MOV AL,SIMOV DX,A4_PORTOUT DX,ALMOV AL,BXMOV DX,C4_PORTOUT DX,AL MOV AL,SIMOV DX,A4_PORTOUT DX,ALMOV AL,DIMOV DX,B4_PORTOUT DX,ALINC SIINC DIINC BXPUSH CXMOV CX,150LOOP $ POP CXLOOP LOOP2 MOV DX,C_PORT IN AL,DXAND AL,80HCMP AL,80HJNZ NDONE1:POP CXPOP BXPOP DIPOP SIRETBZZDELAY1S ENDP JMP $;ENDLE

29、SS: ;JMP ENDLESSCODE ENDS END START(4) 仿真实现结果描述用发光二极管模拟交通信号灯;正常情况下,A、B两车道轮流放行。A车道绿灯放行,直行箭头亮,人行道红灯亮,B道红灯亮,直行红箭头亮,人行道绿灯亮延时10秒;A车道绿灯闪烁两次B车道红灯禁止放行,然后A车道延时3秒用于警告(黄灯亮);A车道红灯亮,A车道左转箭头亮,延时5秒;B车道绿灯,直行箭头亮,人行道红灯亮,A车道禁止放行红灯亮直行红箭头亮,人行道绿灯亮延时10秒,B车道绿灯闪烁2次,A车道禁止放行红灯亮,然后3秒用于警告(黄灯亮); B车道红灯亮,B车道左转箭头亮,延时5秒;恢复到初始状态.有紧急车

30、辆通过时,按下某开关使A、B车道均为红灯,紧急情况延时5秒;A道有特种车辆通过时,按下某开关使A车道为绿灯B车道为红灯,延时5秒;用数码管显示绿灯通行、黄灯等待时间;(5) 遇到的问题及解决方法问题:点阵的扫描与红绿灯的延时相矛盾解决办法:将扫描程序放在延时子程序里,通过调用不同的延时子程序来点亮不同的LED点阵二 实验二:在实验室实验箱上仿真实现交通信号灯系统。(1) 交通信号灯系统设计描述(实验内容)用发光二极管模拟交通信号灯;正常情况下,A、B两车道轮流放行,A车道绿灯放行B道红灯亮延时9秒,A车道绿灯闪烁两次B车道红灯禁止放行, 然后B车道延时3秒用于警告(黄灯亮);B车道绿灯A车道禁

31、止放行红灯灯亮,B车道绿灯闪烁A车道禁止放行红灯亮,然后3秒用于警告(黄灯亮);恢复到初始状态;有紧急车辆通过时,按下某开关使A、B车道均为红灯,紧急情况延时6秒;A道有特种车辆通过时,按下某开关使A车道为绿灯B车道为红灯,延时6秒;用数码管显示绿灯通行、黄灯等待时间;(2) 实验接线图(3) 实验程序清单;8253的端口地址A1_PORT EQU06C0H ;0#B1_PORT EQU06C2H ;1#C1_PORT EQU06C4H ;2#CT1_PORT EQU06C6H ;CONTROL;8255端口地址A_PORT EQU 0640HB_PORT EQU 0642HC_PORT EQ

32、U 0644HCT_PORT EQU 0646H;8259A的端口地址O_ADREQU21H;奇地址E_ADREQU20H;偶地址DATAS SEGMENT;七段码ORG 0001HTAB DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,67H,77H,7CH,39H,5EH,79H,71HAB_FLAG DB 0DATAS ENDSCODE SEGMENT PUBLIC CODE ASSUME CS:CODE,DS:DATASORG 0800H START: MOV AX,DATAS MOV DS,AX ; Write your code herePUSH DS

33、 CLI ;8253计数器0的初始化MOV AL,36H;控制字00 11 011 0 B,计数器0,方式3,二进制MOV DX,CT1_PORTOUT DX,AL;送控制端口;8253计数器1的初始化MOV AL,70H;控制字01 11 000 0 B,计数器1,方式0,二进制MOV DX,CT1_PORTOUT DX,AL;送控制端口;8259A的初始化;0001 0011,ICW1,边沿触发,无从片,写ICW4MOV AL,13HMOV DX,E_ADR;偶地址OUT DX,AL;ICW2,IR0中断向量码为08HMOV AL,08HMOV DX,O_ADR;奇地址OUT DX,ALM

34、OV AL,0FHMOV DX,O_ADR;奇地址OUT DX,AL;ICW4,CPU为80X86系列,非自动结束,无缓冲,全嵌套方式MOV AL,01HOUT DX,ALMOV AL,0HOUT DX,AL;OCW1;中断向量表的初始化MOV AX,0000HMOV DS,AX MOV SI,003BHMOV AX,OFFSET IR0MOV BX,SEG IR0MOV SI,AXMOV SI+2,BX;IR7中断向量MOV SI,003CHMOV AX,OFFSET IR7MOV BX,SEG IR7MOV SI,AX MOV SI+2,BX;8255初始化MOV AL,88H ;正定控制

35、字1000,1000,方式0,A口输出 ,C口输入MOV DX,CT_PORT OUT DX,AL pop ds ;MOV AX,DATAS ; MOV DS,AX;A道绿灯,B道红灯,延时10s,默认是A道,即AB_FLAG=0LP: PUSH DS CLI STI;开中断 POP DSMOV AB_FLAG,01H MOV AL,0CBHNOT ALMOV DI,AXMOV DX,A_PORT ;A道绿灯,B道红灯 OUT DX,AL ;延时9SMOV CX,9YS1: CALL DELAY1S LOOP YS1;A道绿灯闪烁,B道红灯禁止,闪两次MOV AB_FLAG,0HMOV AL,

36、0EBHNOT ALMOV DI,AXMOV DX,A_PORT ;A道绿灯灭,B道红灯禁止,第一次 OUT DX,ALMOV CX,4CALL DELAY1SMOV AL,0CBHNOT ALMOV DI,AXMOV DX,A_PORT ;A道绿灯亮,B道红灯禁止,第一次 OUT DX,ALDEC CXCALL DELAY1SMOV AL,0EBHNOT ALMOV DI,AXMOV DX,A_PORT ;A道绿灯灭,B道红灯禁止,第二次 OUT DX,ALDEC CXCALL DELAY1SMOV AL,0CBHNOT ALMOV DI,AXMOV DX,A_PORT ;A道绿灯亮,B道红

37、灯禁止,第二次 OUT DX,ALDEC CXCALL DELAY1S;A道黄灯亮,B道红灯禁止,延时3sMOV AL,0BDHNOT ALMOV DI,AXMOV DX,A_PORT ;A道黄灯亮,B道红灯禁止 OUT DX,AL;延时3S MOV CX,3YS2: CALL DELAY1S LOOP YS2MOV AB_FLAG,01HMOV AL,76HNOT ALMOV DI,AXMOV DX,A_PORT ;B道绿灯放行,A道红灯禁止 OUT DX,AL;延时9S程序 MOV CX,9YS3: CALL DELAY1S LOOP YS3;B道绿灯闪烁,A道红灯禁止,闪两次MOV AB

38、_FLAG,00HMOV AL,77HNOT ALMOV DI,AXMOV DX,A_PORT ;B道绿灯灭,A道红灯禁止,第一次 OUT DX,ALMOV CX,4CALL DELAY1SMOV AL,76HNOT ALMOV DI,AXMOV DX,A_PORT ;B道绿灯亮,A道红灯禁止,第一次 OUT DX,ALDEC CXCALL DELAY1SMOV AL,77HNOT ALMOV DI,AXMOV DX,A_PORT ;B道绿灯灭,A道红灯禁止,第二次 OUT DX,ALDEC CXCALL DELAY1SMOV AL,76HNOT ALMOV DI,AXMOV DX,A_POR

39、T ;B道绿灯亮,A道红灯禁止,第二次 OUT DX,ALDEC CXCALL DELAY1S;B道黄灯亮,A道红灯禁止,延时3sMOV AL,0BDHNOT ALMOV DI,AXMOV DX,A_PORT ;B道黄灯亮,A道红灯禁止 OUT DX,AL;延时3S程序MOV CX,3YS4: CALL DELAY1S LOOP YS4JMP LPIR0 PROCCLIMOV AL,AB_FLAGCMP AL,00HJZ NEXT3 MOV AB_FLAG,00HMOV AL,7BH NOT AL ;A道B道红灯禁止MOV DX,A_PORTOUT DX,ALPUSH CXMOV CX,6JJ

40、Z: CALL DELAY1S LOOP JJZPOP CXMOV AL,20HMOV DX,E_ADROUT DX,AL;OCW2发结束命令EOI=1MOV AB_FLAG,01HJMP NEXT2NEXT3: MOV AL,7BH ;A道B道红灯禁止 NOT ALMOV DX,A_PORTOUT DX,ALPUSH CXMOV CX,6JJZ1: CALL DELAY1S LOOP JJZ1POP CXMOV AL,20HMOV DX,E_ADROUT DX,AL;OCW2发结束命令EOI=1NEXT2:MOV AX,DIMOV DX,A_PORT OUT DX,ALSTIIRETIR0 ENDPIR7 PROC CLIMOV AL,AB_FLAGCMP AL,00HJZ NEXT2 MOV A

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论