Sistema de Control de Movimiento de Luces Externa.

Las características técnicas del Senpir son muy sencillas y entre ella destaca dos placas independientes:

- Fuente de alimentación con un transformador necesario para lograr una tensión fija y estabilizada mediante un

Regulador.

- Un Relé con un conmutador para la lámpara u otra aplicación.

- Un microcontrolador PIC que controla el circuito.

- Un sensor de Luz o LDR que detecta la presencia de la luz.

- Un sensor infrarrojo de movimiento o PIR.

 

DISEÑO DEL CIRCUITO

El control central del circuito es un microcontrolador que controla no solo el funcionamiento de de las señales de los sensores, de luz y movimiento sino los temporizadores para el relé y diodos led de aviso. Los microcontroladores

Incluyen microprocesador, memoria del programa, memoria de datos, puertos de entradas y salidas y otras Características todo en el mismo encapsulado, ahí está claro la ventaja su reducido tamaño.

El proyecto se ha elegido el popular microcontrolador PIC 16F84A del fabricante Microchip Thecnology Inc. Es muy conocido, donde hay mas información, ejemplos, proyectos para aprendizaje y fácil uso. El micro controlador está desarrollado con un programa bajo el entorno de desarrollo llamado MPLAB que puedes descargar y usar gratuitamente en la Web del fabricante Microchip así como las hojas de datos de todos los dispositivos PIC entre otros Periféricos, http://www.microchip.com

 

 

DESCRIPCIÓN Y FUNCIONAMIENTO DEL HARDWARE

- Sensor de luz

 

El sensor LDR viene de la expresión inglesa Light Dependent Resistor. Son componentes pasivos cuya resistencia o su valor óhmico varia en función de la luz recibida. Con el puedes detectar la presencia de luz y oscuridad para activar o desactivar el relé de la lámpara. Al recibir más luz, baja su valor óhmico hasta que el microcontrolador lo detecte y ejecuta su tarea determinada.

- Sensor PIR

El sensor PIR Passive Infra Red es un dispositivo piroelectrico que mide los cambios de niveles de radiacion infrarroja emitida por los objetos de su entorno alrededor de seis metros. Cambia su estado lógico en una patilla Conectado al microcontrolador. Este sensor es de muy bajo costo y pequeño, se suele utilizar en sistemas de alarmas, iluminación controlada por movimiento y aplicaciones de robótica.

 

 

Sus características técnicas son:

- Voltaje de alimentacion: 5VDC.

- Visión máxima 6 metros.

- Estado en su salida TTL.

- Polaridad de salida seleccionable.

- Poco tiempo de calibración.

El sensor PIR solo usa tres terminales, dos de alimentacion y uno de datos que se conecta al microcontrolador.

 

El circuito electronico se instala dentro de la vivienda con los sensores al exterior. El sensor de luz se instala lejos de la

Lampara o que no le de luz sobre ella excepto la luz ambiente. El sensor de movimiento se instala bajo la lámpara sin que llegue el calor y luz directa ya que puede dar un funcionamiento no esperado.

La fuente de alimentacion que tiene 5 voltios desde de la tensión continua de 12 voltios y al menos 1 amperio. En este circuito se encuentra un regulador de tensión 7805. En su entrada dispone de un puente de diodos rectificador de onda Completa de 12 voltios con su condensador que hace de filtrado para obtener 12 voltios en continua. El regulador 7805 se encarga de estabilizar los 5 voltios de alimentacion del otro circuito principal mas los 12 voltios para alimentar el relé. Al final se encuentra un diodo Led de encendido.

 

El circuito principal está controlado con un μC PIC 16F84A donde se comunican dos sensores como entrada, un relé

como salida y un micro interruptor para controlar el tipo de configuración deseada y tiempos de encendido.

En las entradas del μC PIC 16F84A, está conectado un micro interruptor, sensor de luz y sensor de movimiento. El

Sensor de luz o LDR conectado al puerto RB3 (pin 9) como entrada, detecta el dia y la noche con la finalidad de hacer

Un interruptor crepuscular, es decir, que solo se enciende la lampara o al caer la noche. Tiene un tiempo de veinte

Segundos para asegurarse que realmente es de noche o de día.

El sensor de movimiento o PIR, conectado al puerto RB1 (pin 7) como entrada. Tienen elementos fabricados de un

Material cristalino que genera una carga eléctrica cuando se expone a una radiacion infrarroja. Los cambios de la cantidad de radiacion producen cambios de voltaje los cuales son medidos por un amplificador. El sensor PIR contiene unos filtros especiales llamados lentes de Fresnel que enfocan las señales infrarrojas sobre el elemento sensor. Cuando las señales infrarrojas del ambiente donde se encuentra el sensor cambian rápidamente, el amplificador activa la salida

Para indicar movimiento. Esta salida se queda activa unos segundos permitiendo al micro controlador saber si hubo movimiento.

Funciona a 5VDC, gracias a que tiene un patillaje o pin que se conecta al micro controlador directamente, el sensor PIR

Funciona como un interruptor a la vez puedes cambiar mediante un jumper el estado lógico de la salida si deseas el Efecto contrario.

En la salida RA3 (pin 2) del micro controlador dispone un relé de 12VDC para activar una lampara o lámpara de la red (220VAC). En la base del transistor T1, pasa a conducción y activa el relé. Este circuito también aísla eléctricamente la

Carga del micro controlador. El valor de la potencia a controlar depende de los contactos del relé y varía mucho según el modelo, en este caso soporta 10 Amperios. El diodo paralelo al relé se incluye de protección de los transistores por la fuerza contra electromotriz.

Microinterruptor

Pin Puerto B ON OFF

4 RB4 (Pin 10) PIR LDR

3 RB5 (Pin 11) 5 m. 0

2 RB6 (Pin 12) 30 m. 0

1 RB7 (Pin 10) 1 h. 0

Tabla 1. Micro interruptor.

A su salida del puerto A, se visualiza los Led de avisos. Led verde visualiza que se ha elegido la opción interruptor crepuscular y el rojo visualiza que se ha elegido la opcion del sensor de movimiento que puedes seleccionar en el microinterruptor Int_RB4 (pin 10). Le Led azul indica que esta activado o desactivado el relé en el momento de conmutara si sabrás sin salir de casa su estado actual mirando el circuito o la caja donde lo tienes instalado, en cambio, el Led ámbar o amarillo significa el encendido de la fuente de alimentacion.

Led

Amarillo Fuente alimentacion

Verde LDR

Rojo PIR

Azul Rele

Tabla 2. Indicadores de los Led.

PROGRAMA DEL MICROCONTROLADOR16F84A

El programa del PIC16F84A está escrito con el lenguaje ensamblador. Mediante el diagrama de flujo, es más fácil ver a simple vista un esquema completo sobre su funcionamiento paso por paso.

Inicio

PORTA = Salida

PORTB = Entrada

En principio

Bombilla apagada

¿Int_RB4

Activado?

LED Rojo = OFF

LED Verde = ON

¿LDR en

Oscuridad?

Retardo 20

Segundos

¿LDR aún en

Oscuridad?

Bombilla y LED

Azul encendido

No

Si

No

Si

Retardo 20

Segundos

¿LDR ilum. por

el Sol?

Bombilla y LED

Azul apagado

Si

No

LED Verde = OFF

LED Rojo = ON

¿LDR en

Oscuridad?

Si

No

Bombilla y LED

Azul apagado

¿PIR

Detectada

Presencia?

Bombilla y LED

Azul apagado

Si

No

No

Si

Bombilla y LED

Azul encendido

¿RB5

Activado?

¿RB6

Activado?

¿RB7

Activado?

Retardo 5

Minutos

Retardo 30

Minutos

Retardo 1

Hora

Si

Si

Si

No

No

No

FIN

Principal

Diagrama de flujo.

Inicio

PORTA = Salida

PORTB = Entrada

En principio

Bombillaapagada

¿Int_RB4

Activado?

LED Rojo = OFF

LED Verde = ON

¿LDR en

Oscuridad?

Retardo20

Segundos

¿LDR aún en

Oscuridad?

Bombillay LED

Azul encendido

No

Si

No

Si

Retardo20

Segundos

¿LDR ilum. Por

el Sol?

Bombillay LED

Azul apagado

Si

No

LED Verde = OFF

LED Rojo = ON

¿LDR en

Oscuridad?

Si

No

Bombillay LED

Azul apagado

¿PIR

Detectada

Presencia?

Bombillay LED

Azul apagado

Si

No

No

 

 

Si

Bombillay LED

Azul encendido

¿RB5

Activado?

¿RB6

Activado?

¿RB7

Activado?

Retardo5

Minutos

Retardo30

Minutos

Retardo 1                                                                                                          

 

LISTA DE MATERIALES

Resistencias:

R1, R2, R3, R4, R11 = 10 KΩ

R5, R6, R7, R9 = 330 Ω

R10 = 100 Ω

R12 = 33 KΩ

Condensadores:

C1, C2 = 22 pF

Diodos:

D1 = Led 5 mm bicolor verde rojo

D2 = Led 5 mm Azul

D3 = 1N4148

Transistor:

T1 = 2N2222

Varios:

R = LDR

X1 = 4MHZ (Cristal de cuarzo)

DSW1 = 4 interruptores

P1 = 4K7 ΩPotenciómetro

RL1 = 12VDC, 10Amp, 1 Conmutador

S1 = Boton reset

J1, J2, J4 = 2 bornes

J3 = 3 bornes

J5 = 4 bornes

IC1 = PIC16F84A-04 (También compatible con PIC16F88)

                                                                                                                                                                                         CÓDIGO FUENTE PIC16F84A

 

; PROGRAMA: "Senpir". Luz por detector de movimiento y crepuscular.

; PROCESADOR: PIC16F84A

; FRECUENCIA: 4 MHz

; VERSION: 1.00

; DESCRIPCION:

; Programa de un interruptor con sensor movimiento y de luz solar: Si es de noche,

; Mientras el sensor de movimiento (PIR) detecta la presencia de alguien

; Entorno a 6 metros, activa o se pone a 1 la entrada RA3 y la lampara

; Se enciende. En caso de que sea de día detectado por la LDR, nunca se enciende

; la lampara. En la otra opcion, cuando la LDR detecta la noche o falta de Sol,

; la lampara se enciende, cuando sea de día, la lámpara se apaga.

; En los microinterruptores puedes activar el tiempo que tarda en apagarse la

; Lámpara después de ser detectado por el sensor Pir y de noche de un máximo

; una hora y treinta y cinco minutos.

                                                                                                                                                                                                                 ; DATOS

LIST P=16F84A

INCLUDE <P16F84A.INC>

__CONFIG 3FF1

__idlocs 0001; ID, version del programa.

CBLOCK 0x0C

ENDC

#DEFINE Led_verde PORTA,0 ; Led verde indica opcion LDR seleccionada.

#DEFINE Led_rojo PORTA,1 ; Led rojo indica opcion PIR seleccionada.

#DEFINE Led_azul PORTA,2 ; Led azul indica que el Rele esta activado.

#DEFINE lampara PORTA,3 ; lampara.

#DEFINE PIR PORTB,1 ; Sensor PIR.

#DEFINE LDR PORTB,3 ; Sensor LDR.

#DEFINE Int_RB4 PORTB,4 ; Interruptor RB4.

#DEFINE Int_RB5 PORTB,5 ; Interruptor RB5.

#DEFINE Int_RB6 PORTB,6 ; Interruptor RB6.

#DEFINE Int_RB7 PORTB,7 ; Interruptor RB7.

; EEPROM

ORG 0x2100; Comienza en la direccion 0 de la memoria EERPOM.

; Datos nombre del archivo, version del programa

; Y direccion del correo electronico.

; CODIGOS

ORG 0

Inicio

bsf STATUS, RP0 ; Accede al Banco 1.

Clrf PORTA; Puerto A como salidas.

Movlw b11111111; Las 8 lineas del puerto B se configura como entradas.

Movwf PORTB

bcf STATUS, RP0 ; Accede al Banco 0.

Clrf PORTA; Supuestamente la lampara y Led apagadas.

Opcion_principal

btfss Int_RB4; .Bit 4 del PORTB es "1"? .Int_RB4 activado?

goto Opcion_LDR ; No, activa modo LDR.

goto Opcion_PIR ; Si, activa modo PIR.

; INTERRUPTOR CREPUSCULAR LDR

Opcion_LDR

bcf Led_rojo; Se apaga el Led rojo.

bsf Led_verde ; Enciende Led verde indicando modo LDR activado.

btfss LDR; .La entrada LDR es igual a 1?, .LDR en oscuridad?

gotoApaga_la_lámpara;No, la LDR esta iluminada por el Sol. La lampara se apaga.

Enciende_la_lampara

Call Retardo_20_seg ; Espera 20 segundos para confirmar la oscuridad.

btfss LDR; .Entrada es igual a 1?, .LDR aun en oscuridad?

goto Opcion_principal ; No, sale fuera.

bsf lampara; Si, enciende la lampara.

bsf Led_azul; Led_azul activo.

goto Opcion_principal

Apaga_la_lámpara

Call Retardo_20_seg; Espera 20 segundos para confirmar la oscuridad.

btfsc LDR ; .Entrada es = 0?, .LDR sigue iluminada por luz del sol?

goto Opcion_principal; No, sale fuera.

bcf lampara ; Si, apaga lampara.

bcf Led_azul ; Led_azul indica que la lámpara esta apagada.

goto Opcion_principal

; DETECTOR DE MOVIMIENTO

Opcion_PIR

bcf Led_verde ; Apaga el Led verde de aviso.

Bsf Led_rojo; Enciende Led rojo avisando que esta activado el modo PIR.

btfss LDR ; .La entrada LDR es igual a 1?, .LDR en oscuridad?

gotolámpara_OFF; No.

btfss PIR ; .La entrada PIR es igual a 1?, .PIR ha detectado presencia?

gotolámpara_OFF; No, no ha detectado presencia o movimiento.

lampara_ON

bsf lampara; Si, enciende la lampara.

bsf Led_azul; Led_azul activo.

btfss Int_RB5; .Bit 5 del PORTB es igual a 1?, .Activado el interruptor

RB5?

goto RB6 ; No, salta a la línea siguiente.

Call Retardo_5_min ; Tiempo lampara encendida 5 minutos.

RB6

btfss Int_RB6; .Bit 6 del PORTB es igual a 1?, .Activado el interruptor

RB6?

goto RB7

Call Retardo_30_min; Tiempo lampara encendida 30 minutos.

RB7

btfss Int_RB7 ; .Bit 7 del PORTB es igual a 1?, .Activado el interruptor

RB7?

goto Opcion_principal

Call Retardo_1_hora ; Tiempo lampara encendida 1 hora.

goto Opcion_principal

lámpara_OFF

bcf lampara ; Apaga lampara.

bcf Led_azul ; Apaga Led_azul.

goto Opcion_principal

; SUBRUTINAS

; Retardo de 20 Segundo................................................................

Cblock

ret_00

ret_01

ret_02

Nulo

endc

Retardo_20_seg

; 19999992 ciclos

movlw 0xB5

movwf ret_00

movlw 0x99

movwf ret_01

movlw 0x2C

movwf ret_02

Retardo_20_seg_0

decfsz ret_00, f

goto $+2

decfsz ret_01, f

goto $+2

decfsz ret_02, f

goto Retardo_20_seg_0

; 4 ciclos

goto $+1

goto $+1

; 4 ciclos (incluyendo call)

Return

; Retardo de 5 minutos..................................................................

Cblock

ret_05

ret_06

ret_07

ret_08

endc

Retardo_5_min

; 299999995 ciclos

movlw 0x54

movwf ret_05

movlw 0xA1

movwf ret_06

movlw 0xFD

movwf ret_07

movlw 0x02

movwf ret_08

Retardo_5_min_0

decfsz ret_05, f

goto $+2

decfsz ret_06, f

goto $+2

decfsz ret_07, f

goto $+2

decfsz ret_08, f

goto Retardo_5_min_0

; 1 ciclo

nop

; 4 ciclos (incluyendo call)

Return

; Retardo de 30 minutos.................................................................

Cblock

ret_09

ret_10

ret_11

ret_12

endc

Retardo_30_min

; 1799999989 ciclos

movlw 0xFE

movwf ret_09

movlw 0xC2

movwf ret_10

movlw 0xEC

movwf ret_11

movlw 0x0C

movwf ret_12

Retardo_30_min_0

decfsz ret_09, f

goto $+2

decfsz ret_10, f

goto $+2

decfsz ret_11, f

goto $+2

decfsz ret_12, f

goto Retardo_30_min_0

; 7 ciclos

goto $+1

goto $+1

goto $+1

nop

; 4 ciclos (incluyendo call)

Return

; Retardo de 1 hora.....................................................................

Cblock

ret_13

ret_14

ret_15

ret_16

endc

Retardo_1_hora

; 3599999989 ciclos

movlw 0xFE

movwf ret_13

movlw 0x84

movwf ret_14

movlw 0xD8

movwf ret_15

movlw 0x18

movwf ret_16

Retardo_1_hora_0

decfsz ret_13, f

goto $+2

decfsz ret_14, f

goto $+2

decfsz ret_15, f

goto $+2

decfsz ret_16, f

goto Retardo_1_hora_0

; 7 ciclos

goto $+1

goto $+1

goto $+1

nop

; 4 ciclos (incluyendo call)

Return

                                                                                                                                                                                     CÓDIGO FUENTE PIC16F8

 

; PROGRAMA: "Senpir". Luz por detector de movimiento y crepuscular.

; PROCESADOR: PIC16F88

; FRECUENCIA: 4 MHz

; VERSIÓN: 1.0

; DESCRIPCIÓN:

; Programa de un interruptor con sensor movimiento y de luz solar:

; Si es de noche,

; Mientras el sensor de movimiento (PIR) detecta la presencia de alguien

; Entorno a 6 metros, activa o se pone a 1 la entrada RA3 y la lámpara

; Se enciende. En caso de que sea de día detectado por la LDR, nunca se

; enciende

; La lámpara. En la otra opción, cuando la LDR detecta la noche o falta de

; Sol, la lámpara se enciende, cuando sea de día, la lámpara se apaga.

; En los microinterruptores puedes activar el tiempo que tarda en apagarse

; La lámpara después de ser detectado por el sensor Pir

; y de noche de un máximo una hora y treinta y cinco minutos.

                                                                                                                                                                                               ; __CONFIGURACION

 

; _CP_OFF: Protección de código DESACTIVADO.

; _DEBUG_OFF: Debug en circuito DESACTIVADO.

; _WRT_PROTECT_OFF: Protección a escritura en memoria de programa DESACTIVADO.

; _CPD_OFF: Protección de código de datos DESACTIVADO.

; _LVP_OFF: Programación en baja tensión DESACTIVADO.

; _BODEN_OFF: Reset por Brown-out DESACTIVADO.

; _MCLRE_ON: Reset por pin externo ACTIVADO.

; _PWRTE_ON: Retraso al reset ACTIVADO.

; _WDT_OFF: Watchdog DESACTIVADO.

; _XT_OSC: Oscilador externo del tipo XT.

 

; _IESO_OFF: Modo de intercambio de externo a interno DESACTIVADO.

; _FCMEN_OFF: Monitor de CLK DESACTIVADO.

                                                                                                                                                                                                    ; DATOS

LIST P=16F88

INCLUDE <P16F88.INC>

__CONFIG _CONFIG1, _CP_OFF & _DEBUG_OFF & _WRT_PROTECT_OFF & _CPD_OFF &

_LVP_OFF & _BODEN_OFF & _MCLR_ON & _PWRTE_ON & _WDT_OFF & _XT_OSC

__CONFIG _CONFIG2, _IESO_OFF & _FCMEN_OFF

__idlocs 0001; ID, versión del programa.

CBLOCK 0x20

ENDC

#DEFINE Led_verde PORTA,0 ; Led verde indica opción LDR seleccionada.

#DEFINE Led_rojo PORTA,1 ; Led rojo indica opción PIR seleccionada.

#DEFINE Led_azul PORTA,2 ; Led azul indica que el Relé está activado.

#DEFINE lámpara PORTA,3 ; lámpara.

#DEFINE PIR PORTB,1 ; Sensor PIR.

#DEFINE LDR PORTB,3 ; Sensor LDR.

#DEFINE Int_RB4 PORTB,4 ; Interruptor RB4.

#DEFINE Int_RB5 PORTB,5 ; Interruptor RB5.

#DEFINE Int_RB6 PORTB,6 ; Interruptor RB6.

#DEFINE Int_RB7 PORTB,7 ; Interruptor RB7.

                                                                                                                                                                               ; EEPROM

ORG 0x2100; Comienza en la dirección 0 de la memoria EERPOM.   

; CÓDIGOS

ORG 0

Inicio

BANKSEL CMCON; Cambio al banco 1.

movlw b00000111; .7

movwf CMCON ; Comparadores apagados.

clrf ANSEL ; Pines digitales.

clrf TRISA ; PORTA como salida.

movlw b'11111111'

movwf TRISB ; PORTB como entrada.

BANKSEL PORTA ; Cambio al banco 0.

clrf PORTA ; Supuestamente la lámpara y Led apagadas.

Opcion_principal

btfss Int_RB4 ; ¿Bit 4 del PORTB es "1"? ¿Int_RB4 activado?

goto Opcion_LDR ; No, activa modo LDR.

goto Opcion_PIR ; Sí, activa modo PIR.

                                                                                                                                                                                                                      ; INTERRUPTOR CREPUSCULAR LDR

Opcion_LDR

bcf Led_rojo ; Se apaga el Led rojo.

bsf Led_verde ; Enciende Led verde indicando modo LDR activado.

btfss LDR ; ¿La entrada LDR es igual a 1?, ¿LDR en oscuridad?

goto Apaga_la_lámpara ; No, la LDR está iluminada por el Sol. La lámpara se

apaga.

Enciende_la_lámpara

call Retardo_20_seg ; Espera 20 segundos para confirmar la oscuridad.

btfss LDR ; ¿Entrada es igual a 1?, ¿LDR aún en oscuridad?

goto Opcion_principal; No, sale fuera.

bsf lámpara; Sí, enciende la lámpara.

bsf Led_azul; Led_azul activo.

goto Opcion_principal

Apaga_la_lámpara

call Retardo_20_seg; Espera 20 segundos para confirmar la oscuridad.

BtfscLDR ; ¿Entrada es = 0?, ¿LDR sigue iluminada por luz del

sol?

goto Opcion_principal ; No, sale fuera.

bcf lámpara ; Sí, apaga lámpara.

bcf Led_azul ; Led_azul indica que la lámpara está apagada.

goto Opcion_principal

                                                                                                                                                                                                ; DETECTOR DE MOVIMIENTO

Opcion_PIR

bcf Led_verde ; Apaga el Led verde de aviso.

bsf Led_rojo ; Enciende Led rojo avisando que está activado el modo PIR.

btfss LDR ; ¿La entrada LDR es igual a 1?, ¿LDR en oscuridad?

goto lámpara_OFF ; No.

btfss PIR ; ¿La entrada PIR es igual a 1?, ¿PIR ha detectado presencia?

goto lámpara_OFF; No, no ha detectado presencia o movimiento.

lámpara_ON

bsf lámpara ; Sí, enciende la lámpara.

bsf Led_azul ; Led_azul activo.

btfss Int_RB5 ; ¿Bit 5 del PORTB es igual a 1?, ¿Activado el interruptor RB5?

goto RB6 ; No, salta a la línea siguiente.

Call Retardo_5_min ; Tiempo lámpara encendida 5 minutos.

RB6

btfss Int_RB6 ; ¿Bit 6 del PORTB es igual a 1?, ¿Activado el interruptor RB6?

goto RB7

Call Retardo_30_min; Tiempo lámpara encendida 30 minutos.

RB7

btfss Int_RB7 ; ¿Bit 7 del PORTB es igual a 1?, ¿Activado el interruptor RB7?

goto Opcion_principal

Call Retardo_1_hora; Tiempo lámpara encendida 1 hora.

goto Opcion_principal

lámpara_OFF

bcf lámpara ; Apaga lámpara.

bcf Led_azul ; Apaga Led_azul.

goto Opcion_principal

                                                                                                                                                                                                         ; SUBRUTINAS

; Retardo de 20 segundos................................................

cblock

ret_00

ret_01

ret_02

Nulo

endc

Retardo_20_seg

; 19999992 ciclos

movlw 0xB5

movwf ret_00

movlw 0x99

movwf ret_01

movlw 0x2C

movwf ret_02

Retardo_20_seg_0

decfsz ret_00, f

goto $+2

decfsz ret_01, f

goto $+2

decfsz ret_02, f

goto Retardo_20_seg_0

;4 ciclos

goto $+1

goto $+1

; 4 ciclos (incluyendo call)

Return

; Retardo de 5 minutos...............................................

cblock

ret_05

ret_06

ret_07

ret_08

endc

Retardo_5_min

; 299999995 ciclos

movlw 0x54

movwf ret_05

movlw 0xA1

movwf ret_06

movlw 0xFD

movwf ret_07

movlw 0x02

movwf ret_08

Retardo_5_min_0

decfsz ret_05, f

goto $+2

decfsz ret_06, f

goto $+2

decfsz ret_07, f

goto $+2

decfsz ret_08, f

goto Retardo_5_min_0

; 1 ciclo

Nop

; 4 ciclos (incluyendo call)

Return

; Retardo de 30 minutos........................................................

cblock

ret_09

ret_10

ret_11

ret_12

endc

Retardo_30_min

; 1799999989 ciclos

movlw 0xFE

movwf ret_09

movlw 0xC2

movwf ret_10

movlw 0xEC

movwf ret_11

movlw 0x0C

movwf ret_12

Retardo_30_min_0

decfsz ret_09, f

goto $+2

decfsz ret_10, f

goto $+2

Decfsz ret_11, f

Goto $+2

Decfsz ret_12, f

Goto Retardo_30_min_0

; 7 ciclos

goto $+1

goto $+1

goto $+1

nop

; 4 ciclos (incluyendo call)

Return

; Retardo de 1 hora...........................................................

cblock

ret_13

ret_14

ret_15

ret_16

endc

Retardo_1_hora

; 3599999989 ciclos

movlw 0xFE

movwf ret_13

movlw 0x84

movwf ret_14

movlw 0xD8

movwf ret_15

movlw 0x18

movwf ret_16

Retardo_1_hora_0

decfsz ret_13, f

goto $+2

decfsz ret_14, f

goto $+2

decfsz ret_15, f

goto $+2

decfsz ret_16, f

goto Retardo_1_hora_0

; 7 ciclos

goto $+1

goto $+1

goto $+1

nop

;4 ciclos (incluyendo call)

Return

 

 

DIAGRAMA BLOQUE DEL SISTEMA