Ensamblador 8085: Programa de interfaz de relé con retardo

Programa completo anotado

; ============================================ ; Interfaz de relé para Microprocesador 8085 ; Activa relé 5 segundos, luego desactiva ; ============================================ ; --- Equates --- RELAY_PORT EQU 08H ; Dirección puerto salida DELAY_COUNT EQU 05H ; 5 bucles segundos (externo) ; --- Programa Principal --- ORG 1000H ; Dirección inicio típica START: MVI A, 00H ; Limpiar acumulador OUT RELAY_PORT ; Asegurar relé APAGado inicialmente MVI A, 01H ; Patrón relé ON (bit 0 = 1) OUT RELAY_PORT ; Activar relé ; --- Retardo 5 segundos --- MVI B, DELAY_COUNT ; Bucle externo = 5 OUTER: CALL DELAY_1SEC ; Subrutina retardo 1 segundo DCR B ; Decrementar contador JNZ OUTER ; Repetir hasta B=0 MVI A, 00H ; Patrón relé OFF OUT RELAY_PORT ; Desactivar relé HLT ; Detener CPU ; --- Subrutina retardo 1 segundo (aprox, reloj 3 MHz) --- DELAY_1SEC: LXI H, 0F424H ; 62,500 decimal (3M/48 ≈ 1s) DELAY_LOOP: DCX H ; 6 T-states MOV A, H ; 4 T ORA L ; 4 T JNZ DELAY_LOOP ; 10/7 T RET ; 10 T END 

Explicación

  • RELAY_PORT (08H): Conectar driver de relé (transistor + diodo) al bit 0 de este puerto.
  • OUT RELAY_PORT: Envía acumulador al puerto — energiza bobina del relé.
  • Retardo: DELAY_1SEC usa par HL como contador 16-bit. A 3 MHz, 62,500 ciclos ≈ 1 segundo. Bucle externo se ejecuta 5 veces.
  • HLT: Detiene procesador; relé permanece apagado.

Notas de hardware

  • Usar ULN2803 o 2N2222 + 1N4007 a través de la bobina.
  • Puerto 08H debe decodificarse para solo escritura.
  • Ajustar constante de retardo para tu frecuencia de reloj.