Ciclo Formativo de Grado Superior de Desarrollo de ... · 1.- Explicación breve del Proyecto: El...

58
1 Ciclo Formativo de Grado Superior de Desarrollo de Productos Electrónicos Módulo: Desarrollo de Proyectos de Productos Electrónicos Proyecto: Sistema de Vigilancia Curso: 2003/2004

Transcript of Ciclo Formativo de Grado Superior de Desarrollo de ... · 1.- Explicación breve del Proyecto: El...

Page 1: Ciclo Formativo de Grado Superior de Desarrollo de ... · 1.- Explicación breve del Proyecto: El proyecto Sistema de Vigilancia consiste en que una cámara de televisión se posiciona

1

Ciclo Formativo de Grado Superior

de Desarrollo de Productos Electrónicos

Módulo: Desarrollo de Proyectos de Productos

Electrónicos

Proyecto: Sistema de Vigilancia

Curso: 2003/2004

Page 2: Ciclo Formativo de Grado Superior de Desarrollo de ... · 1.- Explicación breve del Proyecto: El proyecto Sistema de Vigilancia consiste en que una cámara de televisión se posiciona

2

Índice: Pagina

1.- Explicación breve del Proyecto. ........................................................... 3

2.- Diagrama en Bloques. ........................................................................... 4

3.- Análisis de los Esquemas Eléctricos. .................................................... 5

3.1.- Tarjeta Transmisora de Datos Serie vía Radiofrecuencia

+ Control Manual. .......................................................................... 5

3.2.- Tarjeta Transmisora de Datos Serie vía Radiofrecuencia

+ Detector de Presencia D1 ó D2. ................................................. 8

3.3.- Tarjeta Transmisora de Datos Serie vía Radiofrecuencia

+ Barrera de Infrarrojos. ................................................................ 10

3.4.- Tarjeta Receptora de Datos vía Radiofrecuencia. ......................... 15

4.- Ordinograma y Programa. ..................................................................... 17

4.1.- Receptor de Radiofrecuencia y controlador de un

Servomotor de Posición. ......................................................... 17

4.2.- Barrera de Infrarrojos. ............................................................ 29

4.3.- Detector de Presencia D1. ...................................................... 36

4.4.- Detector de Presencia D2. ...................................................... 43

4.5.- Control Manual. ..................................................................... 50

5.- Lista de Componentes. ......................................................................... 57

6.- Anexos .................................................................................................. 59

6.1.- Características Eléctricas del Servomotor de Posición

( FUTABA S3003 ) ............................................................... 59

6.2.- Características Eléctricas de la Camara de T.V. Color +

Tarjeta Transmisora ( MSE-V110 ) ....................................... 64

6.3.- Características Eléctricas Tarjeta Emisora SAW para

Datos 433,92 MHz. ( CEBEK C-0503 ) ......................................... 66

6.4.- Características Eléctricas Tarjeta Receptora de

Datos 433,92 MHz. ( CEBEK C-504 ) ................................... 67

6.5.- Características principales del PIC 16F876A ........................ 68

7.- Diseño de Placas de Circuitos Impresos. .............................................. 94

Page 3: Ciclo Formativo de Grado Superior de Desarrollo de ... · 1.- Explicación breve del Proyecto: El proyecto Sistema de Vigilancia consiste en que una cámara de televisión se posiciona

3

1.- Explicación breve del Proyecto:

El proyecto Sistema de Vigilancia consiste en que una cámara de televisión se

posiciona en un lugar concreto, en función del módulo que lo detecte “ Detector de

Presencia D1, Detector de Presencia D2 , Barrera de Infrarrojos o Control Manual”.

La transmisión de datos entre los Módulos y el Receptor se realiza a través de

una señal modulada en AM vía radiofrecuencia.

El receptor esta a la escucha, analizando los datos que le llegan, cuando un

Módulo Emisor transmite los datos, el Módulo Receptor posiciona la cámara a un sitio

predefinido, enciende la cámara durante un tiempo determinado.

La cámara transmite la imagen via radiofrecuencia a un televisor u ordenador.

El Módulo Control Manual, cuando esta activo anula a los otros Módulos y

posiciona la cámara en función del recorrido de un potenciómetro.

El elemento encargado de posicionar la cámara es un servomotor de posición

que obtiene un ángulo proporcional a la modulación en anchura de un pulso P.W.M.

La cámara estará siempre encendida si el Módulo Control Manual está activo.

Cuando desactivamos el Módulo Control Manual el control dependerá de otros

Módulos Receptores.

Para el control de transmisión/recepción de datos y posicionamiento de la

cámara se utilizará como elemento principal los microcontroladores PIC.

Para la transmisión/recepción de datos utilizaremos un circuito híbrido

comercial.

Para la transmisión de señal de video utilizaremos un circuito híbrido comercial.

Page 4: Ciclo Formativo de Grado Superior de Desarrollo de ... · 1.- Explicación breve del Proyecto: El proyecto Sistema de Vigilancia consiste en que una cámara de televisión se posiciona

4

2.- Diagrama en Bloques:

Transmisor

Serie vía

Radiofrecuencia Fp = 433,92 MHz

Detector de

Presencia D1

CON2

CON1

Transmisor

Serie vía

Radiofrecuencia Fp = 433,92MHz

CON3

Detector de

Presencia D2

CON4

Transmisor Serie vía

Radiofrecuencia Fp = 433,92 MHz

Receptor Barrera de

Infrarrojos

CON6

Transmisor Barrera

de Infrarrojos

CON5

Control Manual

(Utilzando un Potenc.)

+

Transmisor Serie vía

Radiofrecuencia Fp = 433,92 MHz

Receptor Serie

vía

Radiofrecuencia Fp = 433,92 MHz

Transmisor de

Radiofrecuencia

+

Cámara de T.V. Color Canal 12 VHF (Fp = 224 MHz)

Servomotor

de Posición

CON7 CON8

CON9

CON10

T.V.

Color

Canal 12 VHF

(Fp = 224 MHz)

Antena

Antena

Antena

Antena

Antena

Antena

Antena

Page 5: Ciclo Formativo de Grado Superior de Desarrollo de ... · 1.- Explicación breve del Proyecto: El proyecto Sistema de Vigilancia consiste en que una cámara de televisión se posiciona

5

3.- Análisis de los Esquemas Eléctricos:

3.1.- Tarjeta Transmisora de Datos Serie vía Radiofrecuencia + Control Manual.

Tarjeta Emisora

SAW para Datos

433,92 MHz.

CEBEK

C-0503

1 4 13

11

15

2

3

Entrada de

Modulación Antena

VDD

Masa Masa Masa

Microcontrolador

PIC 16F876A

1

8

19

9 10

MCLR

Vss

Vss

OSC1 OSC2

VDD

20

RA4 6

TX 17

DATOS: R1 = 10 K

R2 = 470

R3 = 15 K

C1 = 220 F C4 = 15 pF

C2 = 100 nF C5 = 100 F

C3 = 15 pF

D1 = 1N 4007 Led = Rojo

D2 = 1N 4007

E1 = 9 V

C.I. = 7805

C.I. = PIC16F876A

C.H. = CEBEK C-0503

Cristal de Cuarzo = 1MHz.

Micropulsador

Interruptor

Antena de 17 cm

Potenciómetro = 10 K

Page 6: Ciclo Formativo de Grado Superior de Desarrollo de ... · 1.- Explicación breve del Proyecto: El proyecto Sistema de Vigilancia consiste en que una cámara de televisión se posiciona

6

El circuito de la figura 1, tiene la misión de proporcionar una tensión de 5V

( Regulador de continua a continua 7805), indicar que el circuito está alimentado ( R4 y

LED) y proteger el circuito contra las tensiones negativas (D1 y D2).

El circuito de la figura 2, tiene la misión de resetear el microcontrolador.

La Resistencia R3, el Potenciometro y el condensador C5 tienen la mision de

proporcionar una tensión (V2) que hara variar de forma proporcional la posición del

servomotor que lleva la cámara de televisión. Figura 3

Figura 1 V1= 5V

Figura 2

MCLR

V2

RA4

Figura 3

Page 7: Ciclo Formativo de Grado Superior de Desarrollo de ... · 1.- Explicación breve del Proyecto: El proyecto Sistema de Vigilancia consiste en que una cámara de televisión se posiciona

7

El cristal de cuarzo, C3 y C4 junto con parte de la circuiteria del

microcontrolador forman un reloj de fo= 1 MHz, con esto conseguimos ejecutar las

instrucciones en un tiempo T = 4/fo = 4S. (Figura 4)

El Microcontrolador PIC 16F876A tiene la misión de transformar la señal

analógica (V2) en códigos digitales, enviarla vía serie junto con unas llaves a través de

la patilla (TX).

La Tarjeta Emisora SAW para Datos 433,92 MHz. CEBEK C-0503 es un

circuito híbrido encargado de transmitir vía radiofrecuencia, los datos digitales

procedentes del microprocesador (TX). La señal digital tiene que tener una

20 Hz < fo < 4 KHz. Se modula en AM cuya frecuencia portadora es de 433,92 MHz.

OSC1 OSC2

Figura 4

Page 8: Ciclo Formativo de Grado Superior de Desarrollo de ... · 1.- Explicación breve del Proyecto: El proyecto Sistema de Vigilancia consiste en que una cámara de televisión se posiciona

8

3.2.- Tarjeta Transmisora de Datos Serie vía Radiofrecuencia + Detector de Presencia D1 ó D2.

Microcontrolador

PIC 16F876A

1

8

19

9 10

MCLR

Vss

Vss

OSC1 OSC2

Tarjeta Emisora

SAW para Datos

433,92 MHz.

CEBEK

C-0503

1 4 13

11

VDD

20

15

2

3

Entrada de

Modulación Antena

VDD

Masa Masa Masa

TX

17

RA0

RA2

2

4

Detector de

Presencia

DATOS:

R1 = 10 K R4 = 150 E1 = 9 V Cristal de Cuarzo = 1MHz.

R2 = 470 R3 = 5 K C.I. = 7805 Micropulsador

C1 = 220 F C3 = 15 pF C.I. = PIC16F876A Antena de 17 cm

C2 = 100 nF C4 = 15 pF C.H. = CEBEK C-0503 TRT = BD 138

D1 = 1N 4007 D2 = 1N 4007 R5 = 22K Led = Rojo

Antena

Ve

R5

Page 9: Ciclo Formativo de Grado Superior de Desarrollo de ... · 1.- Explicación breve del Proyecto: El proyecto Sistema de Vigilancia consiste en que una cámara de televisión se posiciona

9

Los Detectores de Presencia se alimenta con 9v y tiene una salida que abre el

contacto cuando detecta una presencia en la habitación. (Ve=5 v).

El circuito formado por R5 y el TRT, tiene la misión de desactivar la Tarjeta

Emisora SAW para Datos 433,92 MHz. CEBEK C-0503, poniendo un nivel alto de

tensión en RA0. La Tarjeta Emisora esta desactivada si el Detector de Presencia no

detecta. (Figura 5)

RA0

VDD

Figura 5

Page 10: Ciclo Formativo de Grado Superior de Desarrollo de ... · 1.- Explicación breve del Proyecto: El proyecto Sistema de Vigilancia consiste en que una cámara de televisión se posiciona

10

3.3.- Tarjeta Transmisora de Datos Serie vía Radiofrecuencia + Barrera de Infrarrojos.

Microcontrolador

PIC 16F876A

1

8

19

9 10

MCLR

Vss

Vss

OSC1 OSC2

Tarjeta Emisora

SAW para Datos

433,92 MHz.

CEBEK

C-0503

1 4 13

11

VDD

20

15

2

3

Entrada de

Modulación Antena

VDD

Masa Masa Masa

TX

17

DATOS:

R1 = 10 K R3 =150 E1 = 9 V Cristal de Cuarzo = 1MHz.

R2 = 470 R4 = 22 K C.I. = 7805 Micropulsador

C1 = 220 F C4 = 15 pF C.I. = PIC16F876A Antena de 17 cm

C2 = 100 nF C3 = 15 pF C.H. = CEBEK C-0503 TRT = BD 138

D1 = 1N 4007 D2 = 1N 4007 LED = Verde

Receptor

Barrera de

Infrarrojos

RA0

RA2

2

4

Transmisor

Barrera de

Infrarrojos

Vcc

Page 11: Ciclo Formativo de Grado Superior de Desarrollo de ... · 1.- Explicación breve del Proyecto: El proyecto Sistema de Vigilancia consiste en que una cámara de televisión se posiciona

11

Transmisor de la Barrera de Infrarrojos Receptor de la Barrera de Infrarrojos

LENTES

INPUT Vcc

R NE 567

OUT

R.C.

MASA FILTRO1 FILTRO2

5

6

7 1 2

8

3 4

Luz

Infrarroja

DATOS:

R6 = 1 K C5 = 1 F C.I.. = NE 555

R7 = 100 K C6 = 1 F C.I. = LM 324

R8 = 100 C7 = 18 nF C.I. = NE 567

R9 = 10 K C8 = 2,2 F LED = Rojo

R10 = 150 C9 = 1 F Emisor de I RED = CQY 98

R11 = 10 K C10 = 10 nF Receptor de I RED = BPW50

R12 = 3,9 K C11= 15 nF LENTES = 3 cm

R13 = 5,6 K D1 = 1N 4007 Potenciómetro 1 = 1 K

R14 = 240 D2 = 1N 4007 Potenciómetro 2 = 2,5 K

R15 = 10 K E2 = 9 V

Emisor I RED

Page 12: Ciclo Formativo de Grado Superior de Desarrollo de ... · 1.- Explicación breve del Proyecto: El proyecto Sistema de Vigilancia consiste en que una cámara de televisión se posiciona

12

Transmisor de la Barrera de Infrarrojos (Figura 6)

Esta compuesto por un circuito Aestable que genera una señal cuadrada que

emite el Emisor de Infrarrojos ( I RED ) a una frecuencia:

Receptor de la Barrera de Infrarrojos

El Receptor de Infrarrojos (I RED), junto con R5 y C5 tiene la misión de obtener

una señal digital proporcional a la señal de Infrarrojos recibida. (Figura 7)

V3 esta compuesta de una señal cuadrada + una componente de continua y V4

solo tiene la señal cuadrada filtrando la componente continua.

0,69[R12 + 2(R13 + Pot.)] C11

1 Fo = 1/To =

Emisor I RED

Figura 6

V3 V4

Señal de

Infrarrojos

Figura 7

Page 13: Ciclo Formativo de Grado Superior de Desarrollo de ... · 1.- Explicación breve del Proyecto: El proyecto Sistema de Vigilancia consiste en que una cámara de televisión se posiciona

13

El circuito de la Figura 8, tiene la misión de amplificar la señal procedente del

Receptor I RED ( V4 ) y contrarrestar la amplificación de componente de continua que

producen los operacionales, obteniendo una tensión V6

V7 filtra la continua obteniendo la siguiente ecuación:

El Circuito Integrado NE567 es un decodificador de tonos, es decir nos da un

cero ( V8 = 0V), proprcional a la frecuencia de la señal V4

El valor de la frecuencia viene fijada por fo = 1/(1,1.R11.C7) .

El valor de C9 se saca de la tabla que existe a continuación. Para ello se fija el

ancho de banda en % y el valor de tensión de entrada al decodificador de tonos.

Con V7 = 200mVeff y 8% de fo como ancho de banda, tenemos Fo.C9 = 4,1 10 3 Hz. F

Si Fo = 5000 Hz tenemos C9=0,82 F.

C8 = 2 C9

Las Lentes están separadas unos 8 cm de los focos emisor y receptor.

R7R9

R6R8 1 - V5 + V4

R7R9

R6R8

V6 =

R7R9

R6R8

V7 = V4

V4 V7 V6

V5

Figura 8

Page 14: Ciclo Formativo de Grado Superior de Desarrollo de ... · 1.- Explicación breve del Proyecto: El proyecto Sistema de Vigilancia consiste en que una cámara de televisión se posiciona

14

0 2 4 6 8 10 12 14 16

Ancho de Banda en % de fo

300

250

200

150

100

50

0

16 10 3 4,1 10 3

1,3 10 3 2,6 10 3 7,3 10 3 62 10 3

1,8 10 3

Fo.C9 (Hz.F)

Page 15: Ciclo Formativo de Grado Superior de Desarrollo de ... · 1.- Explicación breve del Proyecto: El proyecto Sistema de Vigilancia consiste en que una cámara de televisión se posiciona

15

3.4.- Tarjeta Receptora de Datos vía Radiofrecuencia.

Monoestable

Servomotor de

Posición

(P.W.M)

FUTABA

S3003

Antena 2

Cámara de

T.V. Color

+

Tarjeta

Transmisora

MSE-V110

Canal 12 VHF

(224 MHz)

VDD

MCLR

Vss

Vss

RX

RA3

RA0

RC2

OSC1 OSC2

Microcontrolador PIC 18F876A

1

8

19

91

10

51

2

13

18

VDD VDD

TEST

Tarjeta Receptora

de Datos

433,92 MHz.

CEBEK C-504

Señal

Demodulada

Antena 1

Masa Masa Masa

20 1 15

13

14

3

2 7 11

Page 16: Ciclo Formativo de Grado Superior de Desarrollo de ... · 1.- Explicación breve del Proyecto: El proyecto Sistema de Vigilancia consiste en que una cámara de televisión se posiciona

16

La tarjeta receptora vía radiofrecuencia tiene la misión de recepcionar los datos,

posicionar el servomotor en función de estos datos y activar la cámara.

El circuito monoestable formado por el C.I. NE555, C3 ,R3 y C4. Este se dispara

con RA0 ( Detectores de Presencia, Barrera de Infrarrojos), la cámara se activa un

tiempo T1 = 1,1 R3.C4. Si utilizamos Control Manual de la cámara activamos RA3.

Datos

R1 = 10 K D1 = 1N 4007 Camara de T.V. Color + Tarjeta Transmisora = MSE-V110

R2 = 470 D2 = 1N 4007 Servomotor de Posición (P.W.M) = FUTABA S3003

R3 = 100 K E1 = 9 V Antena 1 = 17 cm

R4 = 150 LED = Verde Antena 2 = 15 cm

C1 = 220 F Cristal de Cuarzo = 1 MHz.

C2 = 100 nF Pulsador

C3 = 10 nF C.I. = 74 LS 32

C4 = 100 F C.I. = 7805

C5 = 15 pF C.I. = PIC 16F876A

C6 = 15 pF C.H. = CEBEK C-504

V (Activación Cámara )

Page 17: Ciclo Formativo de Grado Superior de Desarrollo de ... · 1.- Explicación breve del Proyecto: El proyecto Sistema de Vigilancia consiste en que una cámara de televisión se posiciona

17

4.- Ordinograma y Programa.

4.1.- Receptor de Radiofrecuencia y controlador de un

Servomotor de Posición.

Recepción SERIE

vía Radiofrecuencia

Elegimos PIC

List p=16f876a, f=inhx32

Asignación de RFS a direcciones

#include <p16f876a.inc>

Igualdades

LLAVE_EN EQU B'01101101' ;(Dato). LLave Común.

LLAVE_D1 EQU B'10010001' ;(Dato). LLave del Detector D1. LLAVE_D2 EQU B'01011010' ;(Dato). LLave del Detector D2.

LLAVE_BA EQU B'11100111' ;(Dato). LLave de la Barrera de Infrarrojos.

LLAVE_PO EQU B'11011010' ;(Dato). LLave del Potenciómetro.

POSI_D1 EQU 0X20 ;(Datos). Posición de la Camara apuntando al detector D1.

POSI_D2 EQU 0X64 ;(Datos). Posición de la Camara apuntando al detector D2. POSI_BA EQU 0X35 ;(Datos). Posición de la Camara apuntando la Barrera de Infrarrojos.

POSI_MED EQU 0X35 ;(Datos). Posición de la Camara apuntando al Centro.

PERIODO EQU 0xff ;(Datos). Representa el Periodo de la la señal de PWM.

THMIN EQU 0X27 ;(Datos). Tiempo mínimo a nivel alto que necesita el

; Servomotor de Posición para funcionar.

W_TEMP EQU 0X21 ;(Registros). Registro de salvaguarda de la Rutina de Interr. STATUS_TEMP EQU 0X22

PIR1_TEMP EQU 0X23

RCREG_GU EQU 0X25

POSICION_GU EQU 0X26 ;(Registros). Registro de salvaguarda del Programa Principal.

POSICION EQU 0X24 ;(Registro). Registro que refresca el Tiempo Alto del PWM:

LSB EQU 0X27 ;(Registro). Guardamos los bit menos significativos de Posición.

CONTADOR EQU 0X28 ;(Registro). LLeva en cuenta el número de rotaciones en la subrutina de Paridad.

CON_DE_1 EQU 0X29 ;(Registro). Cuenta el número de 1 en un Dato.

REG_PAR EQU 0X2A ;(Registro). Guarda el resultado de la detección del Bit de Paridad.

DATO EQU 0X2B ;(Registro). Guarda el dato que va ha ser analizado para detectar el número de 1.

GOTO COMIENZO ;Comienzo del Programa

Vector de Interrupción ORG 04H

GOTO INTERRU ;Vector de Interrupción.

Sección Código de Reset

ORG 00H

Page 18: Ciclo Formativo de Grado Superior de Desarrollo de ... · 1.- Explicación breve del Proyecto: El proyecto Sistema de Vigilancia consiste en que una cámara de televisión se posiciona

18

ORG 05H

COMIENZ0

Principal

POSICION # POSI_MED ; Fijamos una posición media para el Servo.

Sección de Configuración

RP0 0 ; Elegimos el Puerto A como entradas y salidas Digitales. RP1 0

PORTA 00H

RP0 1 ADCON1 # 06H

TRISA3 0 ; Habilitamos PA3 como salida para activar la cámara TRISA0 0 ; Habilitamos PA0 como salida para activar el Monoestable.

TRISC2 0 ; Habilitamos PC2 como salida para atacar el Servomotor.

PR2 # PERIODO ; Cargamos el Periodo de la señal de PWM.

RP0 0 PORTA3 0 ; Desactivamos la Camara.

PORTA0 1 ; Desactivamos el Monoestable.

PORTC2 1 ; Ponemos a “ 1” la salida que ataca el Servomotor.

CCPR1L # THMIN ;Cargamos el nivel mínimo de TH de la señal de PWM.

T2CON # B'00000111' ;Cargamos el Valor Preescalar.

CCP1CON # B'00001100' ;Cargamos los 2 Bit menos significativos del nivel Alto de la Señal PWM y configuramos y lanzamos PWM.

RP0 1

SPBRG # 0X0A ; Cargar la Velocidad de Recepción de Datos.

SYNC 0

INTCON # B'11000000' ;Habilitar Interrupción Serie

PIE1 # B'00100000' ;Habilitar Interrupción Serie

RP0 0

RCSTA # B'11010000' ;Configurar y lanzar la Recepción Serie

POSICIÓN POSICIÓN + # THMIN

Sumar THMIN al contenido de POSICIÓN para asignarlo al nivel alto de la

señal PWM .

POSICIÓN_GU POSICIÓN

LSB # 00H ; Introducción de los 2 bits menos significativos

; en CCP1CON del nivel Alto de la señal PWM.

CY 0 1

1

7 POSI_GU 0 CY

7 LSB 0 CY

7 POSI_GU 0 CY

CY 0

7 LSB 0 CY

CY 0

7 LSB 0 CY

7 LSB 0 CY

CY 0

CCP1CON LSB OR # B’00001100’

CCPR1L POSICIÓN_GU

Carga los bit más significativos en

CCPR1L del nivel Alto de la señal PWM

Page 19: Ciclo Formativo de Grado Superior de Desarrollo de ... · 1.- Explicación breve del Proyecto: El proyecto Sistema de Vigilancia consiste en que una cámara de televisión se posiciona

19

Rutina de Interrupción

ORG 40

“INTERRU”

RCIF = 1 ¿Ha interrumpido la

Recepción Serie?

SI

NO

Salvamos Registros

W_TEMP W

STATUS_TEMP STATUS

PIR1_TEMP PIR1

RCREG = LLAVE_EN ¿Ha llegado la Llave

LLAVE_EN?

SI

NO

RCIF 0

RCIF = 1 ¿Hemos recibido

una nueva llave?

SI

NO

RCREG_GU RCREG

RCREG = LLAVE_D1 ¿Hemos recibido la

llave LLAVE_D1?

CARGA_D1

SI

N0

RCREG_GU = LLAVE_D1 ¿Hemos recibido la llave

LLAVE_D2?

CARGA_D2

RCREG_GU = LLAVE_BA ¿Hemos recibido la llave

LLAVE_BA?

SI

NO

CARGA_BA

SI

NO

RETFIE

RCREG_GU = LLAVE_PO ¿Hemos recibido la llave

LLAVE_PO?

CARGA_PO

SI

NO

Recuperamos Registros

PIR1 PIR1_TEMP

RCIF 0

STATUS STATUS_TEMP

W W_TEMP

RETFIE

Page 20: Ciclo Formativo de Grado Superior de Desarrollo de ... · 1.- Explicación breve del Proyecto: El proyecto Sistema de Vigilancia consiste en que una cámara de televisión se posiciona

20

Subrutina de CARGA_D1

ORG 70

“CARGA_D1”

POSICIÓN POSI_D1

Posicionamos la Cámara en la POSI_D1

Activamos la Cámara un tiempo que es

fijado por un Monoestable.

PORTA3 0

PORTA0 0 PORTA0 0

PORTA0 1

RETURN

Subrutina de CARGA_D2

ORG 80

“CARGA_D2”

POSICIÓN POSI_D2

Posicionamos la Cámara en la POSI_D2

Activamos la Cámara un tiempo que es

fijado por un Monoestable.

PORTA3 0

PORTA0 0 PORTA0 0

PORTA0 1

RETURN

Subrutina de CARGA_BA

ORG 90

“CARGA_BA”

POSICIÓN POSI_BA

Posicionamos la Cámara en la POSI_BA

Activamos la Cámara un tiempo que es

fijado por un Monoestable.

PORTA3 0

PORTA0 0 PORTA0 0

PORTA0 1

RETURN

Subrutina de CARGA_PO

ORG 0X0A

“CARGA_PO”

RCIF 0

RCIF = 1 ¿Hemos recibido

un nuevo Dato?

NO

SI

RCIF 0

FERR = 1 ¿Ha existido un

error de Trama?

SI

NO DATO RCREG PARIDAD

REG_PAR “0” = 0

¿Es Paridad PAR?

POSICIÓN RGREG

Activamos Cámara

PORTA3 1

RETURN

SI

NO

Page 21: Ciclo Formativo de Grado Superior de Desarrollo de ... · 1.- Explicación breve del Proyecto: El proyecto Sistema de Vigilancia consiste en que una cámara de televisión se posiciona

21

Detección del BIT de

PARIDAD PAR

ORG 0XB0

“PARIDAD”

CONTADOR CONTADOR + 1

CY 0

7 DATO 0 CY

CY = 1 CON_DE_1 CON_DE_1 + 1

SI

NO

CONTADOR = # 08H

NO

SI

CON_DE_1 # 00H

CONTADOR # 00H

RETURN

RX9D = 1

CON_DE_1 CON_DE_1 + 1

7 CON_DE_1 0 CY

SI

NO

CY = 1

REG_PAR “0” 1

SI

REG_PAR “0” 0

NO

Page 22: Ciclo Formativo de Grado Superior de Desarrollo de ... · 1.- Explicación breve del Proyecto: El proyecto Sistema de Vigilancia consiste en que una cámara de televisión se posiciona

22

title " Receptor SERIE via Radiofrecuencia "

;******* Receptor de Radiofrecuencia y controlador de un Servo de Posición ******

;Programa para PIC 16F876a.

;Velocidad del Reloj = 1 MHz.

;Reloj instrucción: 250 kHz = 4 uS.

;Perro Guardián deshabilitado.

;Tipo de Reloj XT.

;Protección de Código:OFF.

;****************************** Elegimos PIC **************************

list p=16f876a, f=inhx32

;******* Asignación de Registros de Funciones especiales a direcciones *********

#include <p16f876a.inc>; Este fichero contiene los nombres y

direcciones de los registros de funciones

especiales.

; Este fichero esta localizado en este directorio

; con el nombre MPASMWIN.EXE.

;**************************** Igualdades *******************************

LLAVE_EN EQU B'01101101' ;(Datos). LLave Común.

LLAVE_D1 EQU B'10010001' ;(Datos). LLave de Detector D1.

LLAVE_D2 EQU B'01011010' ;(Datos). LLave de Detector D2.

LLAVE_BA EQU B'11100111' ;(Datos). LLave de la Barrera de Infrarrojos.

LLAVE_PO EQU B'11011010' ;(Datos). LLave del Potenciometro.

POSI_D1 EQU 0X20 ;(Datos). Posición de la Camara apuntando al

detector D1.

POSI_D2 EQU 0X64 ;(Datos). Posición de la Camara apuntando al

detector D2.

POSI_BA EQU 0X35 ;(Datos). Posición de la Camara apuntando la

Barrera de Infrarrojos.

POSI_MED EQU 0X35 ;(Datos). Posición de la Camara apuntando al

Centro.

PERIODO EQU 0xff ;(Datos). Representa el Periodo de la la señal de

PWM.

THMIN EQU 0X27 ;(Datos). Tiempo mínimo a nivel alto que necesita

el Servomotor de Posición para funcionar.

Page 23: Ciclo Formativo de Grado Superior de Desarrollo de ... · 1.- Explicación breve del Proyecto: El proyecto Sistema de Vigilancia consiste en que una cámara de televisión se posiciona

23

W_TEMP EQU 0X21 ;(Registros). Registro de salvaguarda de la

Rutina de Interrupción.

STATUS_TEMP EQU 0X22

PIR1_TEMP EQU 0X23

RCREG_GU EQU 0X25

POSICION_GU EQU 0X26 ;(Registros). Registro de salvaguarda del Programa

Principal.

POSICION EQU 0X24 ;(Registro). Registro que refresca el Tiempo Alto

del PWM:

LSB EQU 0X27 ;(Registro). Guardamos los bit menos significativos

de Posición.

CONTADOR EQU 0X28 ;(Registro). LLeva en cuenta el número de

rotaciones en la subrutina de Paridad.

CON_DE_1 EQU 0X29 ;(Registro). Cuenta el número de 1 en un Dato.

REG_PAR EQU 0X2A ;(Registro). Guarda el resultado de la detección del

; Bit de Paridad.

DATO EQU 0X2B ;(Registro). Guarda el dato que va ha ser analizado

para detectar el número de 1.

;*************************** Sección Código de Reset *********************

ORG 00h ;Dirección del Vector Reset

GOTO COMIENZO ;Comienzo del Programa

;************************** Vector de Interrupción ***********************

ORG 04H

GOTO INTERRU ;Vector de Interrupción.

;*************************** Sección de Configuración ********************

ORG 05h ;Inicio de Programa (Una posición detrás

del vector de Interrupción).

COMIENZO BCF STATUS,RP0 ; Elegir el Puerto A como entradas y salidas

digitales.

BCF STATUS,RP1

CLRF PORTA

BSF STATUS,RP0

MOVLW 0X06

MOVWF ADCON1

Page 24: Ciclo Formativo de Grado Superior de Desarrollo de ... · 1.- Explicación breve del Proyecto: El proyecto Sistema de Vigilancia consiste en que una cámara de televisión se posiciona

24

BCF TRISA,3 ; Habilitamos PA3 como salida para activar

la cámara.

BCF TRISA,0 ; Habilitamos PA0 como salida para activar

el Monoestable.

BCF TRISC,2 ; Habilitamos PC2 como salida para atacar

el Servomotor.

MOVLW PERIODO ; Cargamos el Periodo de la señal de PWM.

MOVWF PR2

BCF STATUS,RP0

BCF PORTA,3 ; Desactivamos la Camara.

BSF PORTA,0 ; Desactivamos el Monoestable.

BSF PORTC,2 ; Ponemos a 1 la salida que ataca el

Servomotor.

MOVLW THMIN ;Cargamos el nivel mínimo de TH de la

señal de PWM.

MOVWF CCPR1L

MOVLW B'00000111' ;Cargamos el Valor Preescalar.

MOVWF T2CON

MOVLW B'00001100' ;Cargamos los 2 Bit menos

significativos del nivel Alto de la

Señal PWM y configuramos y

lanzamos PWM.

MOVWF CCP1CON

BSF STATUS,RP0

MOVLW 0X0A ; Cargar la Velocidad de Recepción

de Datos.

MOVWF SPBRG

BCF TXSTA,SYNC

MOVLW B'11000000' ;Habilitar Interrupción Serie

MOVWF INTCON

MOVLW B'00100000' ;Habilitar Interrupción Serie

MOVWF PIE1

BCF STATUS,RP0

MOVLW B'11010000' ;Configurar y lanzar la Recepción

Serie

MOVWF RCSTA

Page 25: Ciclo Formativo de Grado Superior de Desarrollo de ... · 1.- Explicación breve del Proyecto: El proyecto Sistema de Vigilancia consiste en que una cámara de televisión se posiciona

25

;************************** Principal ***********************************

;Control de Posición de un Servomotor a través de una Modulación de Anchura de pulso

PRINCIPAL MOVLW POSI_MED

MOVWF POSICION

SEG1 MOVF POSICION,W

ADDLW THMIN ; Sumar THmin al contenido de

Posición para asignarlo al nivel

MOVWF POSICION_GU ; Alto de la señal PWM.

CLRF LSB ; Introducción de los 2 Bit menos

Significativos en CCP1CON del

BCF STATUS,C ; nivel Alto de la señal PWM.

RRF POSICION_GU,F

RRF LSB,F

BCF STATUS,C

RRF POSICION_GU,F

RRF LSB,F

BCF STATUS,C

RRF LSB,F

BCF STATUS,C

RRF LSB,F

MOVLW B'00001100'

IORWF LSB,W

MOVWF CCP1CON

MOVF POSICION_GU,W ; Cargar los Bit más significativos

en CCPR1L del nivel Alto de la

MOVWF CCPR1L ; señal PWM.

GOTO SEG1

;**************************** Rutina de Interrupción *********************

ORG 40

INTERRU BTFSS PIR1,RCIF ; Detectamos si ha interrumpido la

Recepción Serie.

RETFIE

SALVAR MOVWF W_TEMP ; Salvamos Registros

SWAPF STATUS,W

MOVWF STATUS_TEMP

MOVF PIR1,W

Page 26: Ciclo Formativo de Grado Superior de Desarrollo de ... · 1.- Explicación breve del Proyecto: El proyecto Sistema de Vigilancia consiste en que una cámara de televisión se posiciona

26

MOVWF PIR1_TEMP

MOVF RCREG,W ;Preguntamos si ha llegado la LLave

"LLAVE_EN".

XORLW LLAVE_EN

BTFSS STATUS,Z ;Si es correcta la LLave volvemos a

preguntar.

GOTO RECUPERAR ;No es correcta la LLave volvemos

al PP previa recuperación de

registros.

BCF PIR1,RCIF ;Borramos Flag de la Recepción.

SEG11 BTFSS PIR1,RCIF ;Preguntamos si hemos recibido una

nueva LLAVE.

GOTO SEG11

MOVF RCREG,W

MOVWF RCREG_GU

XORLW LLAVE_D1 ;Preguntamos si ha llegado la LLave

"LLAVE_D1".

BTFSC STATUS,Z ;Si es la LLAVE_D1 ir a la

subrutina CARGA_D1.

CALL CARGA_D1

MOVF RCREG_GU,W

XORLW LLAVE_D2 ;Preguntamos si ha llegado la LLave

"LLAVE_D2".

BTFSC STATUS,Z ;Si es la LLAVE_D2 ir a la

subrutina CARGA_D2.

CALL CARGA_D2

MOVF RCREG_GU,W

XORLW LLAVE_BA ;Preguntamos si ha llegado la LLave

"LLAVE_BA".

BTFSC STATUS,Z ;Si es la LLAVE_BA ir a la

subrutina CARGA_BA.

CALL CARGA_BA

MOVF RCREG_GU,W

XORLW LLAVE_PO ;Preguntamos si ha llegado la LLave

"LLAVE_PO".

BTFSC STATUS,Z ;Si es la LLAVE_PO ir a la

subrutina CARGA_PO.

CALL CARGA_PO

RECUPERAR MOVF PIR1_TEMP,W ;Recuperamos Registros.

MOVWF PIR1

BCF PIR1,RCIF

SWAPF STATUS_TEMP,W

Page 27: Ciclo Formativo de Grado Superior de Desarrollo de ... · 1.- Explicación breve del Proyecto: El proyecto Sistema de Vigilancia consiste en que una cámara de televisión se posiciona

27

MOVWF STATUS

SWAPF W_TEMP,F

SWAPF W_TEMP,W

RETFIE ;Retorno de Interrupción.

;*********************** Subrutina de CARGA_D1 ***********************

ORG 70

CARGA_D1 MOVLW POSI_D1

MOVWF POSICION ;Posicionamos la Cámara con

POSI_D1.

BCF PORTA,3

BCF PORTA,0

BCF PORTA,0

BSF PORTA,0

RETURN

;*********************** Subrutina de CARGA_D2 ***********************

ORG 80

CARGA_D2 MOVLW POSI_D2

MOVWF POSICION ;Posicionamos la Cámara con

POSI_D2.

BCF PORTA,3

BCF PORTA,0

BCF PORTA,0

BSF PORTA,0

RETURN

;*********************** Subrutina de CARGA_BA ***********************

ORG 90

CARGA_BA MOVLW POSI_BA

MOVWF POSICION ;Posicionamos la Cámara con

POSI_BA.

BCF PORTA,3

BCF PORTA,0

BCF PORTA,0

BSF PORTA,0

RETURN

Page 28: Ciclo Formativo de Grado Superior de Desarrollo de ... · 1.- Explicación breve del Proyecto: El proyecto Sistema de Vigilancia consiste en que una cámara de televisión se posiciona

28

;*********************** Subrutina de CARGA_PO ***********************

ORG 0XA0

CARGA_PO BCF PIR1,RCIF

SEG12 BTFSS PIR1,RCIF ;Preguntamos si hemos recibido un

nuevo Dato.

GOTO SEG12

BCF PIR1,RCIF

BTFSC RCSTA,FERR ;Preguntamos si ha existido un error

de trama.

GOTO SEG15

MOVF RCREG,W

MOVWF DATO

CALL PARIDAD ; Detectamos la Paridad PAR.

BTFSC REG_PAR,0 ; Preguntamos si es Paridad PAR.

GOTO SEG15

MOVF RCREG,W

MOVWF POSICION ; Refrescamos el nivel Alto de la

señal PWM.

BSF PORTA,3 ; Activamos la Camara.

SEG15 RETURN

;********************** Detección del BIT de PARIDAD PAR ***************

ORG 0XB0

PARIDAD INCF CONTADOR,F ;Subrutina de PARIDAD.

BCF STATUS,C

RRF DATO,F

BTFSS STATUS,C

GOTO SEG7

INCF CON_DE_1,F

SEG7 MOVF CONTADOR,W

XORLW 0X08

BTFSS STATUS,Z

GOTO PARIDAD

BTFSC RCSTA,RX9D

INCF CON_DE_1,F

RRF CON_DE_1,F

BTFSS STATUS,C

GOTO SEG8

BSF REG_PAR,0 ;Guardamos la Paridad.

GOTO SEG9

SEG8 BCF REG_PAR,0

SEG9 CLRF CON_DE_1

CLRF CONTADOR

RETURN

END

Page 29: Ciclo Formativo de Grado Superior de Desarrollo de ... · 1.- Explicación breve del Proyecto: El proyecto Sistema de Vigilancia consiste en que una cámara de televisión se posiciona

29

4.2.- Barrera de Infrarrojos.

Transmisión SERIE

Vía Radiofrecuencia

“Barrera de Infrarrojos”

Elegimos PIC

List p=16f876a, f=inhx32

Asignación de RFS a direcciones

#include <p16f876a.inc>

Igualdades

TODOCERO EQU B'00000000' ;(Dato). LLave para iniciar un código,

la tarjeta de transmisión de datos necesita el

pulso de STOP para transmitir un código.

LLAVE_EN EQU B'01101101' ;(Dato). LLave Común.

LLAVE_BA EQU B'11100111' ;(Dato). LLave de la Barrera de Infrarrojos.

VECES EQU 0X64 ;(Dato). Número de Veces que mandamos

las LLaves.

DATO EQU 0X21 ; (Registro). Guarda el dato que va ha ser

analizado para detectar el número de 1.

CONTADOR EQU 0X22 ; (Registro). LLeva en cuenta el número de

rotaciones en la subrutina de Paridad.

CON_DE_1 EQU 0X23 ; (Registro). Cuenta el número de 1 en un

Dato.

CONTADOR1 EQU 0X24 ; (Registro). Almacena el número de veces

que mandamos las LLaves.

GOTO COMIENZO ;Comienzo del Programa

Sección Código de Reset

ORG 00H

Page 30: Ciclo Formativo de Grado Superior de Desarrollo de ... · 1.- Explicación breve del Proyecto: El proyecto Sistema de Vigilancia consiste en que una cámara de televisión se posiciona

30

ORG 05H

COMIENZ0

Sección de Configuración

RP0 0 ; Elegimos el Puerto A como entradas y salidas Digitales.

RP1 0

PORTA 00H RP0 1

ADCON1 # 06H

TRISA2 1 ; Habilitamos PA2 como entrada de datos procedente de l a Barrera de Infrarrojos .

TRISA0 0 ; Habilitamos PA0 como salida de datos para atacar

el TRT que alimenta a la Tarjeta de Transmisión de Datos.

SPBRG #0AH ;Cargar la Velocidad de Transmisión de Datos.

TXSTA #B’01100000’ ; Configuramos la Transmisión Serie.

RP0 0

SPEN 1 ; Activamos la Puerta Serie (TX).

Principal

PORTA0 1 ; Desactivamos la Tarjeta de Transmisión de Datos

4

PORTA2 = 1

¿ Se activó la Barrera

de Infrarrojos ?

SI

NO

Llevamos la cuenta de las veces que se han transmitido las Llaves.

CONTADOR CONTADOR +1

Activamos la Tarjeta de Transmisión de Datos

PORTA0 0

Lanzar llave TODOCERO

DATO #TODOCERO

Introducción del Bit de Paridad PAR

PARIDAD

Transmisión de Datos en Serie

TXREG #TODOCERO

RP0 1

TMRT = 1 ¿ Se ha transmitido el

dato?

SI

NO

RP0 0

Lanzar llave LLAVE_EN

DATO #LLAVE_EN

Introducción del Bit de Paridad PAR

PARIDAD

Transmisión de Datos en Serie

TXREG #LLAVE_EN

RP0 1

TMRT = 1 ¿ Se ha transmitido el

dato?

SI

NO

RP0 0

1

1

2

3

Page 31: Ciclo Formativo de Grado Superior de Desarrollo de ... · 1.- Explicación breve del Proyecto: El proyecto Sistema de Vigilancia consiste en que una cámara de televisión se posiciona

31

Lanzar llave LLAVE_BA

DATO #LLAVE_BA

Introducción del Bit de Paridad PAR

PARIDAD

Transmisión de Datos en Serie

TXREG #LLAVE_BA

RP0 1

TMRT = 1

¿ Se ha transmitido el

dato?

SI

NO

2

RP0 0

CONTADOR = # VECES

Detectamos si hemos

mandado N veces la Llave.

3

N0

SI

Borramos Contador para la

próxima detección

CONTADOR # 00H

Desactivamos la Tarjeta de Transmisión de Datos

PORTA0 0

PORTA2 = 1

Si está activada la Barrera ,

no lanzar las Llaves.

4

SI NO

ORG 60

Subrutina de detección del Bit de Paridad

“PARIDAD”

CONTADOR CONTADOR + 1

CY 0

7 DATO 0 CY

CY = 1 CON_DE_1 CON_DE_1 + 1

SI

NO

CONTADOR = # 08H

NO

SI

CON_DE_1_” 0 ” = 0

SI

NO

RPO 0

RPO 0

TX9D 1

TX9D 0

RPO 0

CON_DE_1 # 00H

CONTADOR # 00H

RETURN

Page 32: Ciclo Formativo de Grado Superior de Desarrollo de ... · 1.- Explicación breve del Proyecto: El proyecto Sistema de Vigilancia consiste en que una cámara de televisión se posiciona

32

title " Transmisor SERIE via Radiofrecuencia "

;************************** Barrera de Infrarrojos************************

;Programa para PIC 16F876a.

;Velocidad del Reloj:1 MHz.

;Reloj instrucción: 250 KHz = 4 uS.

;Perro Guardián deshabilitado.

;Tipo de Reloj XT.

;Protección de Código:OFF.

;****************************** Elegimos PIC ***************************

list p=16f876a, f=inhx32

;******** Asignación de Registros de Funciones especiales a direcciones ********

#include <p16f876a.inc> ; Este fichero contiene los nombres y

direcciones de los registros de funciones

especiales. Este fichero esta localizado en

este directorio con el nombre

MPASMWIN.EXE.

;******************************* Igualdades ****************************

TODOCERO EQU B'00000000' ;(Dato). LLave para iniciar un código, de la

tarjeta de transmisión de datos, necesita el

pulso de STOP para transmitir un código.

LLAVE_EN EQU B'01101101' ;(Dato). LLave Común.

LLAVE_BA EQU B'11100111' ;(Dato). LLave de la Barrera de Infrarrojos.

VECES EQU 0X64 ;(Dato). Número de Veces que mandamos

las LLaves.

DATO EQU 0X21 ; (Registro). Guarda el dato que va ha ser

analizado para detectar el número de 1.

CONTADOR EQU 0X22 ; (Registro). LLeva en cuenta el número de

rotaciones en la subrutina de Paridad.

CON_DE_1 EQU 0X23 ; Cuenta el número de 1 en un Dato.

CONTADOR1 EQU 0X24 ; (Registro). Almacena el número de veces

que mandamos las LLaves.

Page 33: Ciclo Formativo de Grado Superior de Desarrollo de ... · 1.- Explicación breve del Proyecto: El proyecto Sistema de Vigilancia consiste en que una cámara de televisión se posiciona

33

;************************ Sección Código de Reset ************************

ORG 00h ;Dirección del Vector Reset

GOTO COMIENZO ;Comienzo del Programa

;*********************** Sección de Configuración ************************

ORG 05h ; Inicio de Programa

; (Una posición detras del vector de Interrupción).

COMIENZO BCF STATUS,RP0 ; Elegimos el Puerto A como entradas y salidas

Digitales.

BCF STATUS,RP1

CLRF PORTA

BSF STATUS,RP0

MOVLW 0X06

MOVWF ADCON1

BSF TRISA,2 ; Habilitamos PA2 como entrada de datos

procedente de la Barrera de Infrarrojos.

BCF TRISA,0 ; Habilitamos PA0 como salida de datos para atacar

el TRT que alimenta a la Tarjeta de Transmisión

de Datos.

MOVLW 0X0A

MOVWF SPBRG ; Cargar la Velocidad de Transmisión de Datos.

MOVLW B'01100000'

MOVWF TXSTA ; Configuración de la Transmisión Serie.

BCF STATUS,RP0

BSF RCSTA,SPEN ;Activamos la Puerta Serie (TX).

;***************************** Principal ********************************

SEG5 BSF PORTA,0 ; Desactivamos la Tarjeta de Transmisión de Datos.

SEG4 BTFSS PORTA,2 ; Preguntamos si está activado la Barrera de

Infrarrojos .

GOTO SEG4

Page 34: Ciclo Formativo de Grado Superior de Desarrollo de ... · 1.- Explicación breve del Proyecto: El proyecto Sistema de Vigilancia consiste en que una cámara de televisión se posiciona

34

;*************************** Lanzar LLaves *****************************

SEG6 INCF CONTADOR1,F ; LLeva la cuenta de las veces que se han

transmitido las LLaves.

BCF PORTA,0 ; Activamos la Tarjeta de Transmisión de

Datos.

MOVLW TODOCERO ; Lanzar llave TODOCERO.

MOVWF DATO

CALL PARIDAD ; Introducción del Bit de Paridad PAR.

MOVLW TODOCERO

MOVWF TXREG ; Transmisión de Datos en Serie.

BSF STATUS,RP0

SEG1 BTFSS TXSTA,TRMT ; Preguntamos si se ha transmitido el dato.

GOTO SEG1

BCF STATUS,RP0 ; Lanzar llave LLAVE_EN.

MOVLW LLAVE_EN

MOVWF DATO

CALL PARIDAD ; Introducción del Bit de Paridad PAR.

MOVLW LLAVE_EN

MOVWF TXREG ; Transmisión de Datos en Serie.

BSF STATUS,RP0

SEG2 BTFSS TXSTA,TRMT ; Preguntamos si se ha transmitido el dato.

GOTO SEG2

BCF STATUS,RP0 ; Lanzar llave LLAVE_BA.

MOVLW LLAVE_BA

MOVWF DATO

CALL PARIDAD ; Introducción del Bit de Paridad PAR.

MOVLW LLAVE_BA

MOVWF TXREG ; Transmisión de Datos en Serie.

BSF STATUS,RP0

SEG3 BTFSS TXSTA,TRMT ; Preguntamos si se ha transmitido el dato.

GOTO SEG3

BCF STATUS,RP0 ; Detectamos si hemos mandado N veces

las LLaves.

MOVF CONTADOR1,W

XORLW VECES

BTFSS STATUS,Z

GOTO SEG6

CLRF CONTADOR1 ; Borramos contador para la próxima

detección.

BSF PORTA,0 ; Desactivamos la Tarjeta de Transmisión

de Datos.

Page 35: Ciclo Formativo de Grado Superior de Desarrollo de ... · 1.- Explicación breve del Proyecto: El proyecto Sistema de Vigilancia consiste en que una cámara de televisión se posiciona

35

SEG7 BTFSC PORTA,2 ; Mientras este activado la Barrera de

Infrarrojos, no lanzar las LLaves.

GOTO SEG7

GOTO SEG4 ; Repetir el proceso.

;******************** Detección del Bit de Paridad PAR ********************

ORG 60

PARIDAD INCF CONTADOR,F

BCF STATUS,C

RRF DATO,F

BTFSS STATUS,C

GOTO SEG10

INCF CON_DE_1,F

SEG10 MOVF CONTADOR,W

XORLW 0X08

BTFSS STATUS,Z

GOTO PARIDAD

RRF CON_DE_1,F

BTFSS STATUS,C

GOTO SEG8

BSF STATUS,RP0

BSF TXSTA,TX9D ; Introducción del Bit de Paridad PAR en TX9D.

GOTO SEG9

SEG8 BSF STATUS,RP0

BCF TXSTA,TX9D

SEG9 BCF STATUS,RP0

CLRF CON_DE_1

CLRF CONTADOR

RETURN

END

Page 36: Ciclo Formativo de Grado Superior de Desarrollo de ... · 1.- Explicación breve del Proyecto: El proyecto Sistema de Vigilancia consiste en que una cámara de televisión se posiciona

36

4.3.- Detector de Presencia D1.

Transmisión SERIE

Vía Radiofrecuencia

“Detector de Presencia

D1”

Elegimos PIC

List p=16f876a, f=inhx32

Asignación de RFS a direcciones

#include <p16f876a.inc>

Igualdades

TODOCERO EQU B'00000000' ;(Dato). LLave para iniciar un código,

la tarjeta de transmisión de datos necesita el

pulso de STOP para transmitir un código.

LLAVE_EN EQU B'01101101' ;(Dato). LLave Común.

LLAVE_D1 EQU B'10010001' ;(Dato). LLave del Detector D1.

VECES EQU 0X64 ;(Dato). Número de Veces que mandamos

las LLaves.

DATO EQU 0X21 ; (Registro). Guarda el dato que va ha ser

analizado para detectar el número de 1.

CONTADOR EQU 0X22 ; (Registro). LLeva en cuenta el número de

rotaciones en la subrutina de Paridad.

CON_DE_1 EQU 0X23 ; (Registro). Cuenta el número de 1 en un

Dato.

CONTADOR1 EQU 0X24 ; (Registro). Almacena el número de veces

que mandamos las LLaves.

GOTO COMIENZO ;Comienzo del Programa

Sección Código de Reset

ORG 00H

Page 37: Ciclo Formativo de Grado Superior de Desarrollo de ... · 1.- Explicación breve del Proyecto: El proyecto Sistema de Vigilancia consiste en que una cámara de televisión se posiciona

37

ORG 05H

COMIENZ0

Sección de Configuración

RP0 0 ; Elegimos el Puerto A como entradas y salidas Digitales.

RP1 0

PORTA 00H RP0 1

ADCON1 # 06H

TRISA2 1 ; Habilitamos PA2 como entrada de datos procedente del Detector D1 .

TRISA0 0 ; Habilitamos PA0 como salida de datos para atacar

el TRT que alimenta a la Tarjeta de Transmisión de Datos.

SPBRG #0AH ;Cargar la Velocidad de Transmisión de Datos.

TXSTA #B’01100000’ ; Configuramos la Transmisión Serie.

RP0 0

SPEN 1 ; Activamos la Puerta Serie (TX).

Principal

PORTA0 1 ; Desactivamos la Tarjeta de Transmisión de Datos

4

PORTA2 = 1

¿ Se activó el

Detector D1?

SI

NO

Llevamos la cuenta de las veces que se han transmitido las Llaves.

CONTADOR CONTADOR +1

Activamos la Tarjeta de Transmisión de Datos

PORTA0 0

Lanzar llave TODOCERO

DATO #TODOCERO

Introducción del Bit de Paridad PAR

PARIDAD

Transmisión de Datos en Serie

TXREG #TODOCERO

RP0 1

TMRT = 1 ¿ Se ha transmitido el

dato?

SI

NO

RP0 0

Lanzar llave LLAVE_EN

DATO #LLAVE_EN

Introducción del Bit de Paridad PAR

PARIDAD

Transmisión de Datos en Serie

TXREG #LLAVE_EN

RP0 1

TMRT = 1 ¿ Se ha transmitido el

dato?

SI

NO

RP0 0

1

1

2

3

Page 38: Ciclo Formativo de Grado Superior de Desarrollo de ... · 1.- Explicación breve del Proyecto: El proyecto Sistema de Vigilancia consiste en que una cámara de televisión se posiciona

38

Lanzar llave LLAVE_D1

DATO #LLAVE_D1

Introducción del Bit de Paridad PAR

PARIDAD

Transmisión de Datos en Serie

TXREG #LLAVE_D1

RP0 1

TMRT = 1 ¿ Se ha transmitido el

dato?

SI

NO

2

RP0 0

CONTADOR = # VECES Detectamos si hemos

mandado N veces la Llave.

3

N0

SI

Borramos Contador para la

próxima detección

CONTADOR # 00H

Desactivamos la Tarjeta de

Transmisión de Datos

PORTA0 0

PORTA2 = 1 Si está activada el Detector

D1, no lanzar las Llaves.

4

SI NO

ORG 60 Subrutina de

detección del Bit de Paridad

“PARIDAD”

CONTADOR CONTADOR + 1

CY 0

7 DATO 0 CY

CY = 1 CON_DE_1 CON_DE_1 + 1

SI

NO

CONTADOR = # 08H

NO

SI

CON_DE_1_” 0 ” = 0

SI

NO

RPO 0

RPO 0

TX9D 1

TX9D 0

RPO 0

CON_DE_1 # 00H

CONTADOR # 00H

RETURN

Page 39: Ciclo Formativo de Grado Superior de Desarrollo de ... · 1.- Explicación breve del Proyecto: El proyecto Sistema de Vigilancia consiste en que una cámara de televisión se posiciona

39

title " Transmisor SERIE via Radiofrecuencia "

;************************** Detector de Presencia D1 *********************

;Programa para PIC 16F876a.

;Velocidad del Reloj:1 MHz.

;Reloj instrucción: 250 KHz = 4 uS.

;Perro Guardián deshabilitado.

;Tipo de Reloj XT.

;Protección de Código:OFF.

;****************************** Elegimos PIC ***************************

list p=16f876a, f=inhx32

;******** Asignación de Registros de Funciones especiales a direcciones ********

#include <p16f876a.inc> ; Este fichero contiene los nombres y

direcciones de los registros de funciones

especiales. Este fichero esta localizado en

este directorio con el nombre

MPASMWIN.EXE.

;******************************* Igualdades ****************************

TODOCERO EQU B'00000000' ;(Dato). LLave para iniciar un código, de la

tarjeta de transmisión de datos, necesita el

pulso de STOP para transmitir un código.

LLAVE_EN EQU B'01101101' ;(Dato). LLave Común.

LLAVE_D1 EQU B'10010001' ;(Dato). LLave del Detector D1.

VECES EQU 0X64 ;(Dato). Número de Veces que mandamos

las LLaves.

DATO EQU 0X21 ; (Registro). Guarda el dato que va ha ser

analizado para detectar el número de 1.

CONTADOR EQU 0X22 ; (Registro). LLeva en cuenta el número de

rotaciones en la subrutina de Paridad.

CON_DE_1 EQU 0X23 ; Cuenta el número de 1 en un Dato.

CONTADOR1 EQU 0X24 ; (Registro). Almacena el número de veces

que mandamos las LLaves.

Page 40: Ciclo Formativo de Grado Superior de Desarrollo de ... · 1.- Explicación breve del Proyecto: El proyecto Sistema de Vigilancia consiste en que una cámara de televisión se posiciona

40

;************************ Sección Código de Reset ************************

ORG 00h ;Dirección del Vector Reset

GOTO COMIENZO ;Comienzo del Programa

;*********************** Sección de Configuración ************************

ORG 05h ; Inicio de Programa

; (Una posición detras del vector de Interrupción).

COMIENZO BCF STATUS,RP0 ; Elegimos el Puerto A como entradas y salidas

Digitales.

BCF STATUS,RP1

CLRF PORTA

BSF STATUS,RP0

MOVLW 0X06

MOVWF ADCON1

BSF TRISA,2 ; Habilitamos PA2 como entrada de datos

procedente del Detector D1.

BCF TRISA,0 ; Habilitamos PA0 como salida de datos para atacar

el TRT que alimenta a la Tarjeta de Transmisión

de Datos.

MOVLW 0X0A

MOVWF SPBRG ; Cargar la Velocidad de Transmisión de Datos.

MOVLW B'01100000'

MOVWF TXSTA ; Configuración de la Transmisión Serie.

BCF STATUS,RP0

BSF RCSTA,SPEN ;Activamos la Puerta Serie (TX).

;***************************** Principal ********************************

SEG5 BSF PORTA,0 ; Desactivamos la Tarjeta de Transmisión de Datos.

SEG4 BTFSS PORTA,2 ; Preguntamos si está activado el Detector de

Presencia D1.

GOTO SEG4

Page 41: Ciclo Formativo de Grado Superior de Desarrollo de ... · 1.- Explicación breve del Proyecto: El proyecto Sistema de Vigilancia consiste en que una cámara de televisión se posiciona

41

;*************************** Lanzar LLaves *****************************

SEG6 INCF CONTADOR1,F ; LLeva la cuenta de las veces que se han

transmitido las LLaves.

BCF PORTA,0 ; Activamos la Tarjeta de Transmisión de

Datos.

MOVLW TODOCERO ; Lanzar llave TODOCERO.

MOVWF DATO

CALL PARIDAD ; Introducción del Bit de Paridad PAR.

MOVLW TODOCERO

MOVWF TXREG ; Transmisión de Datos en Serie.

BSF STATUS,RP0

SEG1 BTFSS TXSTA,TRMT ; Preguntamos si se ha transmitido el dato.

GOTO SEG1

BCF STATUS,RP0 ; Lanzar llave LLAVE_EN.

MOVLW LLAVE_EN

MOVWF DATO

CALL PARIDAD ; Introducción del Bit de Paridad PAR.

MOVLW LLAVE_EN

MOVWF TXREG ; Transmisión de Datos en Serie.

BSF STATUS,RP0

SEG2 BTFSS TXSTA,TRMT ; Preguntamos si se ha transmitido el dato.

GOTO SEG2

BCF STATUS,RP0 ; Lanzar llave LLAVE_D1.

MOVLW LLAVE_D1

MOVWF DATO

CALL PARIDAD ; Introducción del Bit de Paridad PAR.

MOVLW LLAVE_D1

MOVWF TXREG ; Transmisión de Datos en Serie.

BSF STATUS,RP0

SEG3 BTFSS TXSTA,TRMT ; Preguntamos si se ha transmitido el dato.

GOTO SEG3

BCF STATUS,RP0 ; Detectamos si hemos mandado N veces

las LLaves.

MOVF CONTADOR1,W

XORLW VECES

BTFSS STATUS,Z

GOTO SEG6

CLRF CONTADOR1 ; Borramos contador para la próxima

detección.

Page 42: Ciclo Formativo de Grado Superior de Desarrollo de ... · 1.- Explicación breve del Proyecto: El proyecto Sistema de Vigilancia consiste en que una cámara de televisión se posiciona

42

BSF PORTA,0 ; Desactivamos la Tarjeta de Transmisión

de Datos.

SEG7 BTFSC PORTA,2 ; Mientras este activado el Detector de

Presencia, no lanzar las LLaves.

GOTO SEG7

GOTO SEG4 ; Repetir el proceso.

;******************** Detección del Bit de Paridad PAR ********************

ORG 60

PARIDAD INCF CONTADOR,F

BCF STATUS,C

RRF DATO,F

BTFSS STATUS,C

GOTO SEG10

INCF CON_DE_1,F

SEG10 MOVF CONTADOR,W

XORLW 0X08

BTFSS STATUS,Z

GOTO PARIDAD

RRF CON_DE_1,F

BTFSS STATUS,C

GOTO SEG8

BSF STATUS,RP0

BSF TXSTA,TX9D ; Introducción del Bit de Paridad PAR en TX9D.

GOTO SEG9

SEG8 BSF STATUS,RP0

BCF TXSTA,TX9D

SEG9 BCF STATUS,RP0

CLRF CON_DE_1

CLRF CONTADOR

RETURN

END

Page 43: Ciclo Formativo de Grado Superior de Desarrollo de ... · 1.- Explicación breve del Proyecto: El proyecto Sistema de Vigilancia consiste en que una cámara de televisión se posiciona

43

4.4.- Detector de Presencia D2.

Transmisión SERIE

Vía Radiofrecuencia

“Detector de Presencia

D2”

Elegimos PIC

List p=16f876a, f=inhx32

Asignación de RFS a direcciones

#include <p16f876a.inc>

Igualdades

TODOCERO EQU B'00000000' ;(Dato). LLave para iniciar un código,

la tarjeta de transmisión de datos necesita el

pulso de STOP para transmitir un código.

LLAVE_EN EQU B'01101101' ;(Dato). LLave Común.

LLAVE_D2 EQU B'01011010' ;(Dato). LLave del Detector D2.

VECES EQU 0X64 ;(Dato). Número de Veces que mandamos

las LLaves.

DATO EQU 0X21 ; (Registro). Guarda el dato que va ha ser

analizado para detectar el número de 1.

CONTADOR EQU 0X22 ; (Registro). LLeva en cuenta el número de

rotaciones en la subrutina de Paridad.

CON_DE_1 EQU 0X23 ; (Registro). Cuenta el número de 1 en un

Dato.

CONTADOR1 EQU 0X24 ; (Registro). Almacena el número de veces

que mandamos las LLaves.

GOTO COMIENZO ;Comienzo del Programa

Sección Código de Reset

ORG 00H

Page 44: Ciclo Formativo de Grado Superior de Desarrollo de ... · 1.- Explicación breve del Proyecto: El proyecto Sistema de Vigilancia consiste en que una cámara de televisión se posiciona

44

ORG 05H

COMIENZ0

Sección de Configuración

RP0 0 ; Elegimos el Puerto A como entradas y salidas Digitales. RP1 0

PORTA 00H

RP0 1 ADCON1 # 06H

TRISA2 1 ; Habilitamos PA2 como entrada de datos

procedente del Detector D2 . TRISA0 0 ; Habilitamos PA0 como salida de datos para atacar

el TRT que alimenta a la Tarjeta de Transmisión

de Datos.

SPBRG #0AH ;Cargar la Velocidad de Transmisión de Datos.

TXSTA #B’01100000’ ; Configuramos la Transmisión Serie.

RP0 0 SPEN 1 ; Activamos la Puerta Serie (TX).

Principal

PORTA0 1 ; Desactivamos la Tarjeta de Transmisión de Datos

4

PORTA2 = 1 ¿ Se activó el

Detector D2?

SI

NO

Llevamos la cuenta de las veces que se han

transmitido las Llaves.

CONTADOR CONTADOR +1

Activamos la Tarjeta de Transmisión de Datos

PORTA0 0

Lanzar llave TODOCERO

DATO #TODOCERO

Introducción del Bit de Paridad PAR

PARIDAD

Transmisión de Datos en Serie

TXREG #TODOCERO

RP0 1

TMRT = 1

¿ Se ha transmitido el

dato?

SI

NO

RP0 0

Lanzar llave LLAVE_EN

DATO #LLAVE_EN

Introducción del Bit de Paridad PAR

PARIDAD

Transmisión de Datos en Serie

TXREG #LLAVE_EN

RP0 1

TMRT = 1

¿ Se ha transmitido el

dato?

SI

NO

RP0 0

1

1

2

3

Page 45: Ciclo Formativo de Grado Superior de Desarrollo de ... · 1.- Explicación breve del Proyecto: El proyecto Sistema de Vigilancia consiste en que una cámara de televisión se posiciona

45

Lanzar llave LLAVE_D2

DATO #LLAVE_D2

Introducción del Bit de Paridad PAR

PARIDAD

Transmisión de Datos en Serie

TXREG #LLAVE_D2

RP0 1

TMRT = 1 ¿ Se ha transmitido el

dato?

SI

NO

2

RP0 0

CONTADOR = # VECES Detectamos si hemos

mandado N veces la Llave.

3

N0

SI

Borramos Contador para la

próxima detección

CONTADOR # 00H

Desactivamos la Tarjeta de

Transmisión de Datos

PORTA0 0

PORTA2 = 1 Si está activada el Detector

D2, no lanzar las Llaves.

4

SI NO

ORG 60 Subrutina de

detección del Bit de Paridad

“PARIDAD”

CONTADOR CONTADOR + 1

CY 0

7 DATO 0 CY

CY = 1 CON_DE_1 CON_DE_1 + 1

SI

NO

CONTADOR = # 08H

NO

SI

CON_DE_1_” 0 ” = 0

SI

NO

RPO 0

RPO 0

TX9D 1

TX9D 0

RPO 0

CON_DE_1 # 00H

CONTADOR # 00H

RETURN

Page 46: Ciclo Formativo de Grado Superior de Desarrollo de ... · 1.- Explicación breve del Proyecto: El proyecto Sistema de Vigilancia consiste en que una cámara de televisión se posiciona

46

title " Transmisor SERIE via Radiofrecuencia "

;************************** Detector de Presencia D2 *********************

;Programa para PIC 16F876a.

;Velocidad del Reloj:1 MHz.

;Reloj instrucción: 250 KHz = 4 uS.

;Perro Guardián deshabilitado.

;Tipo de Reloj XT.

;Protección de Código:OFF.

;****************************** Elegimos PIC ***************************

list p=16f876a, f=inhx32

;******** Asignación de Registros de Funciones especiales a direcciones ********

#include <p16f876a.inc> ; Este fichero contiene los nombres y

direcciones de los registros de funciones

especiales. Este fichero esta localizado en

este directorio con el nombre

MPASMWIN.EXE.

;******************************* Igualdades ****************************

TODOCERO EQU B'00000000' ;(Dato). LLave para iniciar un código, de la

tarjeta de transmisión de datos, necesita el

pulso de STOP para transmitir un código.

LLAVE_EN EQU B'01101101' ;(Dato). LLave Común.

LLAVE_D2 EQU B'01011010' ;(Dato). LLave del Detector D2.

VECES EQU 0X64 ;(Dato). Número de Veces que mandamos

las LLaves.

DATO EQU 0X21 ; (Registro). Guarda el dato que va ha ser

analizado para detectar el número de 1.

CONTADOR EQU 0X22 ; (Registro). LLeva en cuenta el número de

rotaciones en la subrutina de Paridad.

CON_DE_1 EQU 0X23 ; Cuenta el número de 1 en un Dato.

CONTADOR1 EQU 0X24 ; (Registro). Almacena el número de veces

que mandamos las LLaves.

Page 47: Ciclo Formativo de Grado Superior de Desarrollo de ... · 1.- Explicación breve del Proyecto: El proyecto Sistema de Vigilancia consiste en que una cámara de televisión se posiciona

47

;************************ Sección Código de Reset ************************

ORG 00h ;Dirección del Vector Reset

GOTO COMIENZO ;Comienzo del Programa

;*********************** Sección de Configuración ************************

ORG 05h ; Inicio de Programa

; (Una posición detras del vector de Interrupción).

COMIENZO BCF STATUS,RP0 ; Elegimos el Puerto A como entradas y salidas

Digitales.

BCF STATUS,RP1

CLRF PORTA

BSF STATUS,RP0

MOVLW 0X06

MOVWF ADCON1

BSF TRISA,2 ; Habilitamos PA2 como entrada de datos

procedente del Detector de Presencia D2.

BCF TRISA,0 ; Habilitamos PA0 como salida de datos para atacar

el TRT que alimenta a la Tarjeta de Transmisión

de Datos.

MOVLW 0X0A

MOVWF SPBRG ; Cargar la Velocidad de Transmisión de Datos.

MOVLW B'01100000'

MOVWF TXSTA ; Configuración de la Transmisión Serie.

BCF STATUS,RP0

BSF RCSTA,SPEN ;Activamos la Puerta Serie (TX).

;***************************** Principal ********************************

SEG5 BSF PORTA,0 ; Desactivamos la Tarjeta de Transmisión de Datos.

SEG4 BTFSS PORTA,2 ; Preguntamos si está activado el Detector de

Presencia D2.

GOTO SEG4

Page 48: Ciclo Formativo de Grado Superior de Desarrollo de ... · 1.- Explicación breve del Proyecto: El proyecto Sistema de Vigilancia consiste en que una cámara de televisión se posiciona

48

;*************************** Lanzar LLaves *****************************

SEG6 INCF CONTADOR1,F ; LLeva la cuenta de las veces que se han

transmitido las LLaves.

BCF PORTA,0 ; Activamos la Tarjeta de Transmisión de

Datos.

MOVLW TODOCERO ; Lanzar llave TODOCERO.

MOVWF DATO

CALL PARIDAD ; Introducción del Bit de Paridad PAR.

MOVLW TODOCERO

MOVWF TXREG ; Transmisión de Datos en Serie.

BSF STATUS,RP0

SEG1 BTFSS TXSTA,TRMT ; Preguntamos si se ha transmitido el dato.

GOTO SEG1

BCF STATUS,RP0 ; Lanzar llave LLAVE_EN.

MOVLW LLAVE_EN

MOVWF DATO

CALL PARIDAD ; Introducción del Bit de Paridad PAR.

MOVLW LLAVE_EN

MOVWF TXREG ; Transmisión de Datos en Serie.

BSF STATUS,RP0

SEG2 BTFSS TXSTA,TRMT ; Preguntamos si se ha transmitido el dato.

GOTO SEG2

BCF STATUS,RP0 ; Lanzar llave LLAVE_D2.

MOVLW LLAVE_D2

MOVWF DATO

CALL PARIDAD ; Introducción del Bit de Paridad PAR.

MOVLW LLAVE_D2

MOVWF TXREG ; Transmisión de Datos en Serie.

BSF STATUS,RP0

SEG3 BTFSS TXSTA,TRMT ; Preguntamos si se ha transmitido el dato.

GOTO SEG3

BCF STATUS,RP0 ; Detectamos si hemos mandado N veces

las LLaves.

MOVF CONTADOR1,W

XORLW VECES

BTFSS STATUS,Z

GOTO SEG6

CLRF CONTADOR1 ; Borramos contador para la próxima

detección.

Page 49: Ciclo Formativo de Grado Superior de Desarrollo de ... · 1.- Explicación breve del Proyecto: El proyecto Sistema de Vigilancia consiste en que una cámara de televisión se posiciona

49

BSF PORTA,0 ; Desactivamos la Tarjeta de Transmisión

de Datos.

SEG7 BTFSC PORTA,2 ; Mientras este activado el Detector de

Presencia, no lanzar las LLaves.

GOTO SEG7

GOTO SEG4 ; Repetir el proceso.

;******************** Detección del Bit de Paridad PAR ********************

ORG 60

PARIDAD INCF CONTADOR,F

BCF STATUS,C

RRF DATO,F

BTFSS STATUS,C

GOTO SEG10

INCF CON_DE_1,F

SEG10 MOVF CONTADOR,W

XORLW 0X08

BTFSS STATUS,Z

GOTO PARIDAD

RRF CON_DE_1,F

BTFSS STATUS,C

GOTO SEG8

BSF STATUS,RP0

BSF TXSTA,TX9D ; Introducción del Bit de Paridad PAR en TX9D.

GOTO SEG9

SEG8 BSF STATUS,RP0

BCF TXSTA,TX9D

SEG9 BCF STATUS,RP0

CLRF CON_DE_1

CLRF CONTADOR

RETURN

END

Page 50: Ciclo Formativo de Grado Superior de Desarrollo de ... · 1.- Explicación breve del Proyecto: El proyecto Sistema de Vigilancia consiste en que una cámara de televisión se posiciona

50

4.5.- Control Manual.

Transmisión SERIE

Vía Radiofrecuencia

“Utilizando un

Potenciómetro”

Elegimos PIC

List p=16f876a, f=inhx32

Asignación de RFS a direcciones

#include <p16f876a.inc>

Igualdades

TODOCERO EQU B'00000000' ;(Dato). LLave para iniciar un código,

la tarjeta de transmisión de datos necesita el

pulso de STOP para transmitir un código.

LLAVE_EN EQU B'01101101' ;(Dato). LLave Común.

LLAVE_PO EQU B'11011010' ;(Dato). LLave del Potenciómetro.

DATO EQU 0X21 ; (Registro). Guarda el dato que va ha ser analizado para detectar el número de 1.

CONTADOR EQU 0X22 ; (Registro). LLeva en cuenta el número de rotaciones en la subrutina de Paridad.

CON_DE_1 EQU 0X23 ; (Registro). Cuenta el número de 1 en un Dato.

GOTO COMIENZO ;Comienzo del Programa

Sección Código de Reset

ORG 00H

Page 51: Ciclo Formativo de Grado Superior de Desarrollo de ... · 1.- Explicación breve del Proyecto: El proyecto Sistema de Vigilancia consiste en que una cámara de televisión se posiciona

51

ORG 05H

COMIENZ0

Sección de Configuración

RP0 0 ; Elegimos el Puerto A como entradas y salidas Digitales.

RP1 0

PORTA 00H RP0 1

ADCON1 # 00H

TRISA5 1 ; Habilitamos PA4 como entrada de señal analógica. SPBRG #0AH ;Cargar la Velocidad de Transmisión de Datos.

TXSTA #B’01100000’ ; Configuramos la Transmisión Serie.

RP0 0 SPEN 1 ; Activamos la Puerta Serie (TX).

ADCON0 # B ’01100001’ ;Configuramos el Conversor A/D.

DONE = 0

¿ Tiene la m uestra

digital?

SI

NO

Lanzar llave TODOCERO

DATO #TODOCERO

Introducción del Bit de Paridad PAR

PARIDAD

Transmisión de Datos en Serie

TXREG #TODOCERO

RP0 1

TMRT = 1

¿ Se ha transmitido el

dato?

SI

NO

RP0 0

Lanzar llave LLAVE_EN

DATO #LLAVE_EN

Introducción del Bit de Paridad PAR

PARIDAD

Transmisión de Datos en Serie

TXREG #LLAVE_EN

RP0 1

TMRT = 1

¿ Se ha transmitido el

dato?

SI

NO

RP0 0

Lanzar llave LLAVE_PO

DATO #LLAVE_PO

1

1

2

ORG 20

PRINCIPAL

DONE 1 ;Lanzamos el Conversor A/D.

3

Page 52: Ciclo Formativo de Grado Superior de Desarrollo de ... · 1.- Explicación breve del Proyecto: El proyecto Sistema de Vigilancia consiste en que una cámara de televisión se posiciona

52

Introducción del Bit de Paridad PAR

PARIDAD

Transmisión de Datos en Serie

TXREG #LLAVE_PO

RP0 1

TMRT = 1 ¿ Se ha transmitido el

dato?

SI

NO

2

RP0 0

TMRT = 1 ¿ Se ha transmitido el

dato?

SI

NO

ORG 60 Subrutina de

detección del Bit de Paridad

“PARIDAD”

CONTADOR CONTADOR + 1

CY 0

7 DATO 0 CY

CY = 1 CON_DE_1 CON_DE_1 + 1

SI

NO

CONTADOR = # 08H

NO

SI

CON_DE_1_” 0 ” = 0

SI

NO

RPO 0

RPO 0

TX9D 1

TX9D 0

RPO 0

CON_DE_1 # 00H

CONTADOR # 00H

RETURN

Lanzar Muestra Digital

DATO ADRESH

Introducción del Bit de Paridad PAR

PARIDAD

Transmisión de Datos en Serie

TXREG ADRESH

RP0 1

RP0 0

3

Page 53: Ciclo Formativo de Grado Superior de Desarrollo de ... · 1.- Explicación breve del Proyecto: El proyecto Sistema de Vigilancia consiste en que una cámara de televisión se posiciona

53

title " Transmisor SERIE via Radiofrecuencia "

;*** Control Manual utilizando un Potenciómetro para mandar diferentes códigos ***

;Programa para PIC 16F876a.

;Velocidad del Reloj:1 MHz.

;Reloj instrucción: 250KHz = 4uS.

;Perro Guardián deshabilitado.

;Tipo de Reloj XT.

;Protección de Código:OFF.

;**************************** Elegimos PIC *****************************

list p=16f876a, f=inhx32

;******** Asignación de Registros de Funciones especiales a direcciones ********

#include <p16f876a.inc> ; Este fichero contiene los nombres y

direcciones de los registros de funciones

especiales. Este fichero esta localizado en

este directorio con el nombre

MPASMWIN.EXE.

;**************************** Igualdades *******************************

TODOCERO EQU B'00000000' ;(Dato). LLave para iniciar un código de la

tarjeta de transmisión de datos necesita el

pulso de STOP para transmitir un código.

LLAVE_EN EQU B'01101101' ;(Dato). LLave Común.

LLAVE_PO EQU B'11011010' ;(Dato). LLave del Potenciometro.

DATO EQU 0X21 ; (Registro). Guarda el dato que va ha ser

analizado para detectar el número de 1.

CONTADOR EQU 0X22 ; (Registro). LLeva en cuenta el número de

rotaciones en la subrutina de Paridad.

CON_DE_1 EQU 0X23 ; Cuenta el número de 1 en un Dato.

;*********************** Sección Código de Reset *************************

ORG 00h ;Dirección del Vector Reset

GOTO COMIENZO ;Comienzo del Programa

Page 54: Ciclo Formativo de Grado Superior de Desarrollo de ... · 1.- Explicación breve del Proyecto: El proyecto Sistema de Vigilancia consiste en que una cámara de televisión se posiciona

54

;********************** Sección de Configuración *************************

ORG 05h ; Inicio de Programa

;(Una posición detrás del vector de Interrupción)

COMIENZO BCF STATUS,RP0 ; Elegir el Puerto A como entradas analógicas.

BCF STATUS,RP1

CLRF PORTA

BSF STATUS,RP0

MOVLW B'00000000'

MOVWF ADCON1

BSF TRISA,5 ; Habilitar RA4 como entrada de señal analógica.

MOVLW 0X0A

MOVWF SPBRG ; Cargar la Velocidad de Transmisión de Datos.

MOVLW B'01100000'

MOVWF TXSTA ; Configuración de la Transmisión Serie.

BCF STATUS,RP0

BSF RCSTA,SPEN ;Activamos la Puerta Serie (TX).

MOVLW B'01100001'

MOVWF ADCON0 ;Configuramos el Conversor Analógico/Digital.

;**************************** Principal *********************************

ORG 20

SEG6 BSF ADCON0,GO_DONE ; Lanzamos el Conversor

Analógico/Digital.

SEG5 BTFSC ADCON0,GO_DONE ; Preguntamos si tiene la muestra

digital.

GOTO SEG5

;******************* Lanzar LLaves y Muestra Digital *********************

MOVLW TODOCERO ;Lanzar llave TODOCERO.

MOVWF DATO

CALL PARIDAD ;Introducción del Bit de Paridad PAR.

MOVLW TODOCERO

MOVWF TXREG ;Transmisión de Datos en Serie.

BSF STATUS,RP0

SEG1 BTFSS TXSTA,TRMT ;Preguntamos si se ha transmitido el dato.

GOTO SEG1

Page 55: Ciclo Formativo de Grado Superior de Desarrollo de ... · 1.- Explicación breve del Proyecto: El proyecto Sistema de Vigilancia consiste en que una cámara de televisión se posiciona

55

BCF STATUS,RP0 ;Lanzar llave LLAVE_EN.

MOVLW LLAVE_EN

MOVWF DATO

CALL PARIDAD ;Introducción del Bit de Paridad PAR.

MOVLW LLAVE_EN

MOVWF TXREG ;Transmisión de Datos en Serie.

BSF STATUS,RP0

SEG2 BTFSS TXSTA,TRMT ;Preguntamos si se ha transmitido el dato.

GOTO SEG2

BCF STATUS,RP0 ;Lanzar llave LLAVE_PO.

MOVLW LLAVE_PO

MOVWF DATO

CALL PARIDAD ;Introducción del Bit de Paridad PAR.

MOVLW LLAVE_PO

MOVWF TXREG ;Transmisión de Datos en Serie.

BSF STATUS,RP0

SEG3 BTFSS TXSTA,TRMT ;Preguntamos si se ha transmitido el dato.

GOTO SEG3

BCF STATUS,RP0 ;Lanzar Muestra Digital.

MOVF ADRESH,W

MOVWF DATO

CALL PARIDAD ;Introducción del Bit de Paridad PAR.

MOVF ADRESH,W

MOVWF TXREG ;Transmisión de Datos en Serie.

BSF STATUS,RP0

SEG4 BTFSS TXSTA,TRMT ;Preguntamos si se ha transmitido el dato.

GOTO SEG4

BCF STATUS,RP0

GOTO SEG6 ;Lanzamos infinidad de LLaves y Muestras.

;****************** Detección del BIT de PARIDAD PAR *******************

ORG 60

PARIDAD INCF CONTADOR,F

BCF STATUS,C

RRF DATO,F

BTFSS STATUS,C

GOTO SEG7

INCF CON_DE_1,F

SEG7 MOVF CONTADOR,W

XORLW 0X08

BTFSS STATUS,Z

GOTO PARIDAD

Page 56: Ciclo Formativo de Grado Superior de Desarrollo de ... · 1.- Explicación breve del Proyecto: El proyecto Sistema de Vigilancia consiste en que una cámara de televisión se posiciona

56

RRF CON_DE_1,F

BTFSS STATUS,C

GOTO SEG8

BSF STATUS,RP0

BSF TXSTA,TX9D ;Introducción del Bit de Paridad PAR en TX9D.

GOTO SEG9

SEG8 BSF STATUS,RP0

BCF TXSTA,TX9D

SEG9 BCF STATUS,RP0

CLRF CON_DE_1

CLRF CONTADOR

RETURN

END

Page 57: Ciclo Formativo de Grado Superior de Desarrollo de ... · 1.- Explicación breve del Proyecto: El proyecto Sistema de Vigilancia consiste en que una cámara de televisión se posiciona

57

5.- Lista de Componentes.

5.1.- Tarjeta Transmisora de Datos Serie vía Radiofrecuencia +

Control Manual.

5.2.- Tarjeta Transmisora de Datos Serie vía Radiofrecuencia +

Detector de Presencia D1.

5.3.- Tarjeta Transmisora de Datos Serie vía Radiofrecuencia +

Detector de Presencia D2.

R1 = 10 K

R2 = 470

R3 = 15 K

Potenciómetro = 10 K

(Rabo largo)

C1 = 220 F

C2 = 100 nF

C3 = 15 pF

C4 = 15 pF

C5 = 100 F

D1 = 1N 4007

D2 = 1N 4007

Led = Rojo

C.I. = 7805

C.I. = PIC16F876A

C.H. = CEBEK C-0503

E1 = 9 V

Cristal de Cuarzo = 1MHz.

Micropulsador

Interruptor

Antena de 17 cm

2 Placa de Circuito Impreso

8 Separadores metálicos (Macho-hembra)

4 Tuercas ( Métrica 3)

Porta pila de 9V.

R1 = 10 K

R2 = 470

R3 = 5 K

R4 = 150

R5 = 22K

C1 = 220 F

C2 = 100 nF

C3 = 15 pF

C4 = 15 pF

C.I. = 7805

C.I. = PIC16F876A

C.H. = CEBEK C-0503

TRT = BD 138

D1 = 1N 4007

D2 = 1N 4007

Led = Rojo

E1 = 9 V

Cristal de Cuarzo = 1MHz.

Micropulsador

Antena de 17 cm

1 Placa de Circuito Impreso

4 Separadores metálicos (Macho-hembra)

4 Tuercas ( Métrica 3)

Porta pila de 9V.

R1 = 10 K

R2 = 470

R3 = 5 K

R4 = 150

R5 = 22K

C1 = 220 F

C2 = 100 nF

C3 = 15 pF

C4 = 15 pF

C.I. = 7805

C.I. = PIC16F876A

C.H. = CEBEK C-0503

TRT = BD 138

D1 = 1N 4007

D2 = 1N 4007

Led = Rojo

E1 = 9 V

Cristal de Cuarzo = 1MHz.

Micropulsador

Antena de 17 cm

1 Placa de Circuito Impreso

4 Separadores metálicos (Macho-hembra)

4 Tuercas ( Métrica 3)

Porta pila de 9V.

Page 58: Ciclo Formativo de Grado Superior de Desarrollo de ... · 1.- Explicación breve del Proyecto: El proyecto Sistema de Vigilancia consiste en que una cámara de televisión se posiciona

58

5.4.- Tarjeta Transmisora de Datos Serie vía Radiofrecuencia +

Barrera de Infrarrojos.

5.5.- Tarjeta Receptora de Datos vía Radiofrecuencia.

R1 = 10 K

R2 = 470

R3 = 150

R4 = 22K

R6 = 1 K

R7 = 100 K

R8 = 100

R9 = 10 K

R10 = 150

R11 = 10 K

R12 = 3,9 K

R13 = 5,6 K

R14 = 240

R15 = 10 K

Potenciómetro 1 = 1 K

Potenciómetro 2 = 2,5 K

C1 = 220 F

C2 = 100 nF

C3 = 15 pF

C4 = 15 pF

C5 = 1 F

C6 = 1 F

C7 = 18 nF

C8 = 2,2 F

C9 = 1 F

C10 = 10 nF

C11= 15 nF

2 D1 = 1N 4007

2 D2 = 1N 4007

Led = Rojo

LED = Verde

Emisor de I RED = CQY 98

Receptor de I RED = BPW50

E1 = 9 V

E2 = 9 V

Cristal de Cuarzo = 1MHz.

Micropulsador

Antena de 17 cm

2 Placa de Circuito Impreso

8 Separadores metálicos (Macho-hembra)

4 Tuercas ( Métrica 3)

2 Porta pila de 9V.

2 LENTES = 3 cm

Soportes para las Lentes

C.I. = 7805

C.I. = PIC16F876A

C.I.. = NE 555

C.I. = LM 324

C.I. = NE 567 C.H. = CEBEK C-0503

TRT = BD 138

R1 = 10 K

R2 = 470

R3 = 100 K

R4 = 150

C1 = 220 F

C2 = 100 nF

C3 = 10 nF

C4 = 100 F

C5 = 15 pF

C6 = 15 pF

C7 = 18 nF

C8 = 2,2 F

C9 = 1 F

C10 = 10 nF

C11= 15 nF

D1 = 1N 4007

D2 = 1N 4007

Led = Rojo

C.I. = 7805

C.I. = PIC16F876A

C.I.. = 74LS32 C.H. = CEBEK C-0504

Camara de T.V. Color + Tarjeta Transmisora = MSE-V110

Soporte para sujetar la Cámara y el Servomotor.

Servomotor de Posición (P.W.M) = FUTABA S3003

E1 = 9 V

Cristal de Cuarzo = 1MHz.

Micropulsador

Antena 1 de 17 cm.

Antena 2 de 15 cm.

1 Placa de Circuito Impreso

4 Separadores metálicos (Macho-hembra)

4 Tuercas ( Métrica 3)

Porta pila de 9V.