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.