实验一
管理员2026年6月1日2 分钟39 次阅读
COM_ADD EQU 0F003H
PA_ADD EQU 0F000H
PB_ADD EQU 0F001H
PC_ADD EQU 0F002H
_STACK SEGMENT STACK
DW 100 DUP(?)
_STACK ENDS
_DATA SEGMENT
LED_Data DB 01111110B ;东西绿灯,南北红灯
DB 01111111B ;东西绿灯闪烁,南北红灯
DB 01111101B ;东西黄灯亮,南北红灯
DB 11011011B ;东西红灯,南北绿灯
DB 11111011B ;东西红灯,南北绿灯闪烁
DB 10111011B ;东西红灯,南北黄灯亮
_DATA ENDS
CODE SEGMENT
START PROC NEAR
ASSUME CS:CODE, DS:_DATA, SS:_STACK
MOV AX, _DATA
MOV DS, AX
NOP
MOV DX, COM_ADD
MOV AL, 80H ;PA、PB、PC为基本输出模式
OUT DX, AL
MOV DX, PA_ADD ;灯全熄灭
MOV AL, 0FFH
OUT DX, AL
START1:
LEA BX, LED_Data
MOV AL, 0
XLAT
OUT DX, AL ;东西绿灯,南北红灯
CALL DL5S
START2:
MOV CX, 6
START2_LOOP:
MOV AL, 1
XLAT
OUT DX, AL ;东西绿灯闪烁,南北红灯
CALL DL500ms
MOV AL, 0
XLAT
OUT DX, AL
CALL DL500ms
LOOP START2_LOOP
MOV AL, 2 ;东西黄灯亮,南北红灯
XLAT
OUT DX, AL
CALL DL3S
MOV AL, 3 ;东西红灯,南北绿灯
XLAT
OUT DX, AL
CALL DL5S
START3:
MOV CX, 6
START3_LOOP:
MOV AL, 4 ;东西红灯,南北绿灯闪烁
XLAT
OUT DX, AL
CALL DL500ms
MOV AL, 3
XLAT
OUT DX, AL
CALL DL500ms
LOOP START3_LOOP
MOV AL, 5 ;东西红灯,南北黄灯亮
XLAT
OUT DX, AL
CALL DL3S
JMP START1
DL500ms PROC NEAR
PUSH CX
MOV CX, 50000
DL500ms1:
NOP
LOOP DL500ms1
POP CX
RET
DL500ms ENDP
DL3S PROC NEAR
PUSH CX
MOV CX, 6
DL3S1:
CALL DL500ms
LOOP DL3S1
POP CX
RET
DL3S ENDP
DL5S PROC NEAR
PUSH CX
MOV CX, 10
DL5S1:
CALL DL500ms
LOOP DL5S1
POP CX
RET
DL5S ENDP
START ENDP
CODE ENDS
END START