¿Cómo programar para convertir números hexadecimales en números decimales usando ensamblador? ¿Dominar las habilidades básicas de los programas de un solo paso y establecer puntos de interrupción para ejecutar?
ORG 0000H MOV SP, #6FH; configure MOV R6 en la parte inferior de la pila, #10H; retraso del software 0,5 s, espere a que finalice el reinicio de 8255
LOOP2: MOV R5 , #100
LOOP3: ACALL DELAY
DJNZ R5, LOOP3
DJNZ R6, LOOP2 MOV A, #80H Inicialización de 8255
MOV DPTR , #4003H
MOVX @DPTR, A MOV 20H, #0H; envía el número a mostrar
MOV 21H, #1H
MOV 22H, # 2H
MOV 23H, #3H
MOV 24H, #4H
MOV 25H, #5HLOOP1: MOV R0, #20H; puntero de dirección de visualización Valor 20H
MOV R2, #0FEH; el código de bits de visualización apunta al primer dígito desde la izquierda
LCALL DISPLY Llame a la subrutina de visualización
> SJMP LOOP1DISPLY: MOV A, @R0; Saque el número que se mostrará
MOV DPTR, #DTAB; Envíe la primera dirección de la tabla de códigos de fuente a DPTR
MOVC A; , @A DPTR; busque la tabla de códigos de fuente
MOV DPTR, #4001H; la dirección del puerto B envía DPTR
MOVX @DPTR, A el código de fuente se envía al puerto del segmento<; /p>
MOV A, R2; código de bits de fuente Enviar A
MOV DPTR, #4000H; Enviar DPTR a una dirección de puerto
MOVX @DPTR, A; código al puerto de bit
LCALL DELAY; retardo de llamada subrutina de tiempo
MOV A, #0FFH; desactivar todos los bits de visualización
MOVX @DPTR, A p>
MOV A, R2
RL A; Desplaza el código de carácter a la izquierda 1 bit
MOV R2, A Enviar R2 de regreso
INC;
R0; Corrige el puntero del búfer de visualización
CJNE R0, #26H, DISPLY; Muestra el siguiente número
RETDTAB: DB 0C0H, 0F9H, 0A4H, 0B0H, 99H, 92H, 82H, 0F8H
DB 80H, 90H, 88H, 83H, 0C6H, 0A1H, 86H, 8EH
DB 40H, 79H, 24H, 30H, 19H, 12H, 02H, 78H
DB 00H, 10H, 08H, 03H, 46H, 21H, 06H, 0EH
DB 0BFH, 0FFHDELAY: MOV R1, #0FAH programa de retardo de 0,5 ms
DJNZ R1, $
FIN DE RETIRO