Pantalla de luz LED del programa de escritura en lenguaje ensamblador
Pantalla de luz indicadora de control de interruptor
MY8255_A EQU 0A860H; dirección de puerto 8255A
MY8255_B EQU 0A861H dirección de puerto 8255B
MY8255_C EQU 0A862H; ; dirección del puerto 8255C
MY8255_MODE EQU 0A863H; dirección del puerto de control 8255
SEGMENTO DE CÓDIGO
ASUME CS: CÓDIGO
INICIO: MOV DX , MY8255_MODE
MOV AL, 82H
OUT DX, AL; escriba la palabra de control 82H en el puerto de control 8255, puerto A modo 0 salida, puerto B modo 0 entrada, puerto C no usado.
MOV DX, MY8255_A
MOV AL, 7FH
SALIDA DX, AL; envía 7FH al puerto A
MOV LA, AL ; Enviar 7FH a la unidad de almacenamiento LA
MOV DX, MY8255_B
MOV AL, 0FEH
OUT DX, AL ; Enviar FEH al puerto B
MOV LB, AL; enviar FEH a la unidad de almacenamiento LB
LLAMADA A DALLY
A1: MOV AL, LA
ROR AL, 1; el contenido de LA y muévalo hacia la derecha una vez
MOV LA, AL
MOV DX, MY8255_A
OUT DX, AL Haga un bucle en LA después de cambiar; hacia la derecha El contenido se envía al puerto A, y su propósito es hacer que las luces LED conectadas al puerto A se iluminen hacia la derecha en secuencia
MOV AL, LB
ROL AL, 1; el contenido de LB se desplaza hacia la izquierda 1 vez
MOV LB, AL
MOV DX, MY8255_B
OUT DX, AL; el contenido de LB después del desplazamiento hacia la izquierda del ciclo al puerto B. El propósito es dejar que las luces LED conectadas al puerto B se enciendan en secuencia hacia la izquierda.
LLAMAR DALLY, deje que una luz LED brille; de manera estable antes de encender el otro
CALL BREAK; llame a la subrutina BREAK para ver si se presiona una tecla
JMP A1
DALLY: MOV; CX, 3FFH; subrutina de retardo
D1: MOV AX, 0FFFFH
D2: DEC AX
JNZ D2
LOOP D1 p>
RET
BREAK PROC NEAR ; si se presiona una tecla
MOV AH, 06H
MOV DL, 0FFH
INT 21H
JE RETURN ; Si no, entonces transfiera a RETURN
MOV AX, 4C00H
INT 21H; >RETORNO: RET
BREAK ENDP
CÓDIGO FINALIZA
FIN INICIO