En este artículo se muestra la solución a ejercicios relacionados con la gestión de teclado y display de un sistema uP-2000 para un microprocesador Intel 8085.
Resumen de Ejercicios:
- Ejercicio 1: Muestra la última tecla pulsada en el campo de datos y la suma acumulada de todos los códigos de teclas en el campo de direcciones.
- Ejercicio 2: Similar al anterior pero solo suma teclas con códigos pares, filtrando mediante restas sucesivas.
- Ejercicio 3: Suma exclusivamente teclas con códigos impares usando el mismo método de filtrado.
- Ejercicio 4: Cuenta y muestra el número de teclas pulsadas con código mayor o igual a 05H, implementando comparación y condicionales.
Todos los programas utilizan rutinas del sistema (044EH, 04D5H, 04C9H) para gestión de teclado y display, finalizando con la tecla EJEC (código 10H).
Sistema uP-2000
Ejercicio 1: Escribir un programa utilizando el lenguaje ensamblador del microprocesador 8085 que presente en el campo de datos la última tecla pulsada, y en el de direcciones, la suma acumulada de los códigos de las teclas pulsadas hasta el momento (p.e. la tecla A tiene código 0Ah). El carácter de escape (finalización del programa) será “EJEC”, con código asociado 10H.
Solución:
ORG 1000H
MVI A,04H
SIM
LXI SP, 2000H
MVI H,00H
MVI L, 00H
MVI B, 00H
BUCLE:
PUSH H
PUSH B
CALL 044EH
POP B
POP H
CPI 10H
JZ SALIDA
MOV B,A
MOV A, L
ADD B
MOV L, A
JNC NOCARRY
INR H
NOCARRY:
MOV A, B
PUSH H
PUSH B
CALL 04D5H
POP B
POP H
PUSH H
PUSH B
CALL 04C9H
POP B
POP H
JMP BUCLE
SALIDA:
END
Ejercicio 2: Escribir un programa utilizando el lenguaje ensamblador del microprocesador 8085 que presente en el campo de datos la última tecla pulsada, y en el de direcciones, la suma acumulada de las teclas con código asociado par pulsadas hasta el momento. El carácter de escape (finalización del programa) será “EJEC”, con código asociado 10H.
Solución:
ORG 1000H
MVI A,04H
SIM
LXI SP, 2000H
MVI H,00H
MVI L, 00H
MVI B, 00H
BUCLE:
PUSH H
PUSH B
CALL 044EH
POP B
POP H
CPI 10H
JZ SALIDA
MOV B,A
RESTAMOS:
SUI 02H
CPI 01H
JZ MOSTRAR
CPI 00H
JNZ RESTAMOS
MOV A,L
ADD B
MOV L,A
JNC NOCARRY
INR H
NOCARRY:
MOSTRAR:
MOV A,B
PUSH H
PUSH B
CALL 04D5H
POP B
POP H
PUSH H
PUSH B
CALL 04C9H
POP B
POP H
JMP BUCLE
SALIDA:
RST1
END
MOV A, L
ADD B
MOV L, A
JNC NOCARRY
INR H
NOCARRY:
MOV A, B
PUSH H
PUSH B
CALL 04D5H
POP B
POP H
PUSH H
PUSH B
CALL 04C9H
POP B
POP H
JMP BUCLE
SALIDA:
END
Ejercicio 3: Escribir un programa utilizando el lenguaje ensamblador del microprocesador 8085 que presente en el campo de datos la última tecla pulsada, y en el de direcciones, la suma acumulada de las teclas con código asociado impar pulsadas hasta el momento. El carácter de escape (finalización del programa) será “EJEC”, con código asociado 10H.
Solución:
ORG 1000H
MVI A,04H
SIM
LXI SP, 2000H
MVI H,00H
MVI L, 00H
MVI B, 00H
BUCLE:
PUSH H
PUSH B
CALL 044EH
POP B
POP H
CPI 10H
JZ SALIDA
MOV B,A
RESTAMOS:
SUI 02H
CPI 00H
JZ MOSTRAR
CPI 01H
JNZ RESTAMOS
MOV A,L
ADD B
MOV L,A
JNC NOCARRY
INR H
NOCARRY:
MOSTRAR:
MOV A,B
PUSH H
PUSH B
CALL 04D5H
POP B
POP H
PUSH H
PUSH B
CALL 04C9H
POP B
POP H
JMP BUCLE
SALIDA:
RST1
END
MOV A, L
ADD B
MOV L, A
JNC NOCARRY
INR H
NOCARRY:
MOV A, B
PUSH H
PUSH B
CALL 04D5H
POP B
POP H
PUSH H
PUSH B
CALL 04C9H
POP B
POP H
JMP BUCLE
SALIDA:
END
Ejercicio 4: Escribir un programa utilizando el lenguaje ensamblador del microprocesador 8085 que presente en el campo de datos la última tecla pulsada, y en el de direcciones, la suma acumulada del número de veces que se han pulsado hasta el momento las teclas cuyo código asociado sea mayor o igual que 05H. El carácter de escape (finalización del programa) será “EJEC”, con código asociado 10H.
Solución:
ORG 1000H
MVI A,08H
SIM
LXI SP, 2000H
MVI H,00H
MVI L, 00H
MVI B, 00H
BUCLE:
PUSH H
PUSH B
CALL 044EH
POP B
POP H
CPI 10H
JZ SALIDA
MOV B,A
PUSH H
PUSH B
MOV B,A
CALL 04D5H
POP B
POP H
MOV A,B
CPI 05H
JC MENOR
INR L
MOV B,A
PUSH H
PUSH B
CALL 04C9H
POP B
POP H
MENOR:
JMP BUCLE
SALIDA:
RST1
END
