activada
bsf PORTB,led
call estado
call tZ1
call tZ2
; call tZ3
call tT
goto activada
estado
btfsc PORTB,L
goto desactivada
return
tZ1
btfss PORTB,Z1
goto entrando
return
tZ2
btfss PORTB,Z2
goto suena
return
tZ3
btfss PORTB,Z3
goto alerta
return
tT
btfss PORTB,T
goto suena
return __CONFIG _CONFIG1, _WDT_OFF & _PWRTE_ON & _INTRC_IO & _MCLR_OFF & _BODEN_OFF & _LVP_OFF & _CPD_OFF & _WRT_PROTECT_OFF & _DEBUG_OFF & _CCP1_RB0 & _CP_OFF
__CONFIG _CONFIG2, _FCMEN_OFF & _IESO_OFF
inicio
bcf PORTB,si ;Apaga las sirenas
bcf PORTB,se ;^^^^^ ^^^ ^^^^^^^
bcf PORTB,led ; y el led
btfsc PORTB,L ;L=0 -> Activada
goto inicio ;podria ir un delay anti rebote
activada
bsf PORTB,led ;Enciende el led
btfss PORTB,Z1 ;Testea si se abrio la zona 1 y actua en consecuencia, Z1=0 -> Activada
call Zona1Act ;en Zona1Act haces lo que corresponda, prender un led, activar la sirena,
;lo que corresponda y vuelves con return
btfss PORTB,Z2 ;
call Zona2Act ;Idem Zona1Act
btfss PORTB,Z3 ;
call Zona3Act ;Idem Zona1Act
btfss PORTB,L ;L=1 -> Desactivada va hacia el inicio donde apaga las sirenas y comienza otra ves
goto activada ;L=0 -> Activada sigue en este bucle
goto inicio[Y entonces puede ser que portb, z2 se este activando por ruido?/quote]
Pues si que puede ser, el ruido nos hace muchas putadas
activada
bsf PORTB,led ;Enciende el led
call estado ;Pregunta si se desactivo...
call tZ1 ;Testea si se abrio la zona 1 y actua en consecuencia
call tZ2 ;Testea si se abrio la zona 2 y actua en consecuencia
call tT ;Testea si se abrio algun sensor tamper y actua en consecuencia
goto activada ;y queda haciendo esto por siempre (fatal error: luego de un minuto salta a suena)
estado
btfsc PORTB,L ;Si L=1
goto desactivada ;desactiva
return
tZ1
btfss PORTB,Z1 ;Si Z1=0
goto entrando ;entro alguien por la puerta
return
tZ2
btfss PORTB,Z2 ;Si Z2=0
goto suena ;entraron por la ventana (al estilo juez) sona la sirena
return
tT
btfss PORTB,T ;Si T=0
goto suena ;Me estan desarmando los sensoress... sonaa
return