武汉理工大学《微机原理与接口技术》课程设计说明书
MOV AL,80H ;8255初始化:A,B,C口均为方式0,输出
MOV DX,CTRL_PORT OUT DX,AL
EW:MOV DX,C_PORT
MOV AL,00001010B ;东西方向绿灯亮,南北方向红灯亮 OUT DX,AL
CALL DELAYX
MOV CX,9 LEA BX,TAB MOV AL,8 AA:PUSH AX XLAT
MOV DX,B_PORT OUT DX,AL
CALL DELAY1 POP AX DEC AL LOOP AA
MOV DX,C_PORT
MOV AL,00100010B OUT DX,AL
MOV DX,B_PORT
OR AL,80H OUT DX,AL CALL DELAY0.5
延时(TIME-13)秒 ;本阶段只有灯亮,数码管不亮 ;9次循环
;东西方向数码管开始倒计时10S(此时红灯亮) ;延时1秒 ;东西方向黄灯亮,南北方向还是红灯亮 ;10S倒计时完了先关掉数码管0.5S 15
; 武汉理工大学《微机原理与接口技术》课程设计说明书
MOV CX,3 ;3次循环 LEA BX,TAB MOV AL,2 AB:PUSH AX XLAT
MOV DX,B_PORT ;东西方向数码管开始倒计时3S(此时黄灯亮) OUT DX,AL CALL DELAY0.5
OR AL,80H ;最高位置1,关掉数码管 OUT DX,AL
CALL DELAY0.5 POP AX DEC AL LOOP AB
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;南北方向通行;;;;;;;;;;;;;;;;;;;;;;;;;;;; SN:MOV DX,C_PORT
MOV AL,00010001B ;南北方向绿灯亮,东西方向红灯亮 OUT DX,AL
CALL DELAYX ;延时(T-13)秒;本阶段只有灯亮,数码管不亮
MOV CX,9 ;9次循环 LEA BX,TAB MOV AL,8 AC:PUSH AX XLAT
MOV DX,A_PORT ;南北方向数码管开始倒计时10S(此时红灯亮) OUT DX,AL
16
武汉理工大学《微机原理与接口技术》课程设计说明书
CALL DELAY1 ;延时1秒 POP AX DEC AL LOOP AC
MOV DX,C_PORT
MOV AL,00010100B OUT DX,AL
MOV DX,A_PORT
OR AL,80H OUT DX,AL CALL DELAY0.5
MOV CX,3 LEA BX,TAB MOV AL,2 AD:PUSH AX XLAT
MOV DX,A_PORT OUT DX,AL CALL DELAY0.5
OR AL,80H OUT DX,AL
CALL DELAY0.5 POP AX DEC AL
LOOP AD
;南北方向黄灯亮,东西方向还是红灯亮 ;10S倒计时完了先关掉数码管0.5S ;3次循环 ;南北方向数码管开始倒计时3S(此时黄灯亮) ;最高位置1,关掉数码管 17
武汉理工大学《微机原理与接口技术》课程设计说明书
JMP EW
DELAY0.5 PROC NEAR ;0.5S延时 PUSH BX PUSH CX MOV CX,0180H B1:MOV BX,0140H B2:DEC BX JNZ B2 DEC CX JNZ B1 POP CX POP BX RET DELAY0.5 ENDP
DELAY1 PROC NEAR PUSH BX PUSH CX MOV CX,0100H C1:MOV BX,03C0H C2:DEC BX JNZ C2 DEC CX JNZ C1 POP CX POP BX RET DELAY1 ENDP
;1S延时 18
武汉理工大学《微机原理与接口技术》课程设计说明书
DELAYX PROC NEAR ;延时(TIME-13)秒 PUSH BX PUSH CX PUSH AX MOV CL,100 MOV AL,TIME SUB AL,13 MUL CL
E1:MOV BX,03C0H E2:DEC BX JNZ E2 DEC AX JNZ E1 POP AX POP CX POP BX RET DELAYX ENDP
STOP PROC FAR PUSHF
MOV DX,C_PORT MOV AL,00H OUT DX,AL
MOV DX,B_PORT MOV AL,80H OUT DX,AL
MOV DX,A_PORT
; ; 19