Hola amigos.
Les solicito su ayuda porque ya la verdad estoy desesperado y no supe como mas seguir. Les cuento me piden en la U un circuito que realize lo siguiente:
1. El circuito siempre va a estar alimentado
2. En la entrada PORTA,0 van a existir 5v pero en el momento que deje de recibir 5v esa entrada debe activar el relay (PORTB,0) para que por esta linea (PORTA,0) sigan existiendo 5v por un periodo de tiempo de 1 minuto.
3. Pasado este minuto el relay se debe desactivar y el sistema debe estar de nuevo “atento” a recibir de nuevo 5v y estar pendiente cuando los deje de recibir de nuevo. Importante: En la entrada PORTB,1debe existir una masa SIEMPRE, si dirante el minuto pierde esa masa el circuito debe asumir que ya paso el minuto y volver al paso 2
4. BONO: Adicionalmente si es posible configurar otras 3 entradas donde según la entrada seleccionada la temporizacion dure: 1, 2 o 3 minutos
Lo que he hecho: Ya se como temporizar (La libreria retardos.inc> que handa por ahi, pero....
1. Si uso esa libreria no se como manejar las interrupciones para PORTA,1
Les adjunto lo que tengo de codigo.
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
LIST P=16F84A
INCLUDE <P16F84A.INC>
CBLOCK 0x00C
ENDC
ORG 0
Inicio
bsf STATUS, RP0
clrf TRISB
movlw b'00011111'
movwf TRISA
bcf STATUS,RP0
Principal
bcf PORTB,1
btfss PORTA,0
goto Tiempo
goto Principal
Tiempo
bsf PORTB,1
call Retardo_20s
call Retardo_20s
call Retardo_20s
bcf PORTB,1
goto Espera
Espera:
btfss PORTA,0
goto Principal
goto Espera
INCLUDE <RETARDOS.INC>
END
Pda: Adjunto tambien la imagen omitiendo que en ella dice 12v en lugar de 5v
A quien me pueda dar una manito con este proyecto muchas gracias