Ejercicios Resueltos de Programación para Teclado y Display del Sistema uP-2000 con 8085

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 de desarrollo uP-2000 mostrando teclado hexadecimal, display de 7 segmentos y arquitectura completa para programación con microprocesador 8085 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

Autor

Rami Boutassghount

Rami Boutassghount

🌐 Cambiar de idioma