proyecto de transmisión de datos - hosting...

34
Proyecto de Transmisión de Datos utilizando Tarjetas Híbridas Emisor SAW para Datos 433,92 MHz. ( CEBEK C-0503 ) Receptor SAW para Datos 433,92 MHz. ( CEBEK C-0504 ) Profesor: Pedro Alonso Sanz Centro: I.E.S. Joan Miró Localidad: San Sebastián de los Reyes Provincia: Madrid

Upload: others

Post on 07-Oct-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Proyecto de Transmisión de Datos - Hosting Miarrobapedrojoanmiro.webcindario.com/Desarrollo_de_Proyectos/Proyectos... · Proyecto de Transmisión de Datos utilizando Tarjetas Híbridas

Proyecto de Transmisión de Datos utilizando Tarjetas Híbridas

Emisor SAW para Datos 433,92 MHz. ( CEBEK C-0503 )

Receptor SAW para Datos 433,92 MHz. ( CEBEK C-0504 )

Profesor: Pedro Alonso Sanz Centro: I.E.S. Joan Miró Localidad: San Sebastián de los Reyes Provincia: Madrid

Page 2: Proyecto de Transmisión de Datos - Hosting Miarrobapedrojoanmiro.webcindario.com/Desarrollo_de_Proyectos/Proyectos... · Proyecto de Transmisión de Datos utilizando Tarjetas Híbridas

2

Índice

Página

1.- Circuito de simulación en ISIS. ............................................................ 3

2.- Hardware. 2.1.- Esquema Eléctrico del Mando Transmisor de Datos. .............. 4

2.1.1.- Placa del Mando Transmisor de Datos. ......................... 5 2.1.2.- Lista de Materiales del Transmisor. ............................... 6

2.2.- Circuito Eléctrico del Receptor de Datos. ................................. 9

2.2.1.- Placa del Receptor de Datos. .......................................... 10 2.2.2.- Lista de Materiales del Receptor. ................................... 11

2.3.- Circuito Eléctrico de la Tarjeta de Pruebas. .............................. 13

2.3.1.- Placa de la Tarjeta de Pruebas. ....................................... 14 2.3.2.- Lista de Materiales de la Tarjeta de Pruebas. ................ 15

3.- Software.

3.1.- Programa del Transmisor ( T1_MU_RF.ASM ). .......................... 17 3.2.- Progama del Transmisor ( T2_MU_RF.ASM ). ........................... 20

3.2.1.- Librería ( T_M_S_RF.INC ). .............................................. 24 3.2.2.- Librería ( RETARDOS.INC ). ............................................ 26

3.3.- Programa del Receptor ( R1_MU_RF.ASM ). ............................. 30

3.3.1.- Librería ( R_M_S_RF.INC ). ............................................. 33

Page 3: Proyecto de Transmisión de Datos - Hosting Miarrobapedrojoanmiro.webcindario.com/Desarrollo_de_Proyectos/Proyectos... · Proyecto de Transmisión de Datos utilizando Tarjetas Híbridas

3

1.- Circuito de simulación en ISIS.

Page 4: Proyecto de Transmisión de Datos - Hosting Miarrobapedrojoanmiro.webcindario.com/Desarrollo_de_Proyectos/Proyectos... · Proyecto de Transmisión de Datos utilizando Tarjetas Híbridas

4

2.- Hardware.

2.1.- Esquema Eléctrico del Mando Transmisor de Datos.

Page 5: Proyecto de Transmisión de Datos - Hosting Miarrobapedrojoanmiro.webcindario.com/Desarrollo_de_Proyectos/Proyectos... · Proyecto de Transmisión de Datos utilizando Tarjetas Híbridas

5

2.1.1.- Placa del Mando Transmisor de Datos.

Page 6: Proyecto de Transmisión de Datos - Hosting Miarrobapedrojoanmiro.webcindario.com/Desarrollo_de_Proyectos/Proyectos... · Proyecto de Transmisión de Datos utilizando Tarjetas Híbridas

6

2.1.2.- Lista de Materiales del Transmisor.

Lista de materiales del Mando.DSN

Título : Mando.DSN

Autor : Pedro Alonso Sanz

Revisión : domingo, 25 de junio de 2006

Fecha de creación : miércoles, 16 de febrero de 2006

Ultima modificación : domingo, 25 de junio de 2006

Número de componentes : 41

10 Resistors

Quantity: References Value

7 R1, R3-R6, R13, R14 220

1 R10 2.2k

1 R11 100

1 R12 10k

6 Capacitors

Quantity: References Value

3 C1, C2, C8 100nF

1 C5 220uF

Page 7: Proyecto de Transmisión de Datos - Hosting Miarrobapedrojoanmiro.webcindario.com/Desarrollo_de_Proyectos/Proyectos... · Proyecto de Transmisión de Datos utilizando Tarjetas Híbridas

7

2 C6, C7 15pF

2 Integrated Circuits

Quantity: References Value

1 U1 7805_JOAN

1 U2 PIC16F876_JOAN

1 Transistors

Quantity: References Value

1 Q1 BD136_JOAN

8 Diodes

Quantity: References Value

2 D1, D12 LED-RED_JOAN

1 D7 1N4007_JOAN

2 D8, D9 LED-YELLOW_JOAN

2 D10, D11 LED-GREEN_JOAN

1 D13 LED-BLUE_JOAN

14 Miscellaneous

Quantity: References Value

6 ADELANTE, ATRAS, DERECHAS, IZQUIERDA, PARAR, SW1 PULSADOR_JOAN

Page 8: Proyecto de Transmisión de Datos - Hosting Miarrobapedrojoanmiro.webcindario.com/Desarrollo_de_Proyectos/Proyectos... · Proyecto de Transmisión de Datos utilizando Tarjetas Híbridas

8

1 ANTENA BORNIER1_JOAN

1 CRISTAL DE CUARZO CRYSTAL_JOAN (4MHz)

2 ENCENDIDO, RAS-CO INTERRUPTOR_JOAN

2 POT_DERECHO, POT_IZQUIERDO 10k

1 TARJETA TRANSMISORA CEBEK-C-0503_JOAN

1 VCC 9V

Page 9: Proyecto de Transmisión de Datos - Hosting Miarrobapedrojoanmiro.webcindario.com/Desarrollo_de_Proyectos/Proyectos... · Proyecto de Transmisión de Datos utilizando Tarjetas Híbridas

9

2.2.- Circuito Eléctrico del Receptor de Datos.

Page 10: Proyecto de Transmisión de Datos - Hosting Miarrobapedrojoanmiro.webcindario.com/Desarrollo_de_Proyectos/Proyectos... · Proyecto de Transmisión de Datos utilizando Tarjetas Híbridas

10

2.2.1.- Placa del Receptor de Datos.

Page 11: Proyecto de Transmisión de Datos - Hosting Miarrobapedrojoanmiro.webcindario.com/Desarrollo_de_Proyectos/Proyectos... · Proyecto de Transmisión de Datos utilizando Tarjetas Híbridas

11

2.2.2.- Lista de Materiales del Receptor.

Lista de materiales de la Tarjeta-Receptora.DSN

Título : Tarjeta-Receptora.DSN

Autor : Pedro Alonso Sanz

Revisión : domingo, 25 de junio de 2006

Fecha de creación : miércoles, 16 de febrero de 2006

Última modificación : domingo, 25 de junio de 2006

Número de componentes : 17

2 Resistors

Quantity: References Value

1 R11 100

1 R12 10k

3 Capacitors

Quantity: References Value

2 C6, C7 15pF

1 C8 100nF

1 Integrated Circuits

Page 12: Proyecto de Transmisión de Datos - Hosting Miarrobapedrojoanmiro.webcindario.com/Desarrollo_de_Proyectos/Proyectos... · Proyecto de Transmisión de Datos utilizando Tarjetas Híbridas

12

Quantity: References Value

1 U1 PIC16F877_JOAN

11 Miscellaneous

Quantity: References Value

1 ANTENA BORNIER1_JOAN

1 CRISTAL DE CUARZO CRYSTAL_JOAN

3 J1-J3 CONN-SIL8

2 J4, J7 CONN-SIL2

1 J5 CONN-SIL6

1 J6 CONN-SIL3

1 SW1 PULSADOR_JOAN

1 TARJETA RECEPTORA CEBEK-C-0504_JOAN

Page 13: Proyecto de Transmisión de Datos - Hosting Miarrobapedrojoanmiro.webcindario.com/Desarrollo_de_Proyectos/Proyectos... · Proyecto de Transmisión de Datos utilizando Tarjetas Híbridas

13

2.3.- Circuito Eléctrico de la Tarjeta de Pruebas.

Page 14: Proyecto de Transmisión de Datos - Hosting Miarrobapedrojoanmiro.webcindario.com/Desarrollo_de_Proyectos/Proyectos... · Proyecto de Transmisión de Datos utilizando Tarjetas Híbridas

14

2.3.1.- Placa de la Tarjeta de Pruebas.

Page 15: Proyecto de Transmisión de Datos - Hosting Miarrobapedrojoanmiro.webcindario.com/Desarrollo_de_Proyectos/Proyectos... · Proyecto de Transmisión de Datos utilizando Tarjetas Híbridas

15

2.3.2.- Lista de Materiales de la Tarjeta de Pruebas.

Lista de materiales de la Tarjeta de pruebas.DSN

Título : Tarjeta de pruebas.DSN

Autor : Pedro Alonso Sanz

Revisión : domingo, 25 de junio de 2006

Fecha de creación : miércoles, 16 de febrero de 2006

Última modificación : domingo, 25 de junio de 2006

Número de componentes : 72

25 Resistors

Page 16: Proyecto de Transmisión de Datos - Hosting Miarrobapedrojoanmiro.webcindario.com/Desarrollo_de_Proyectos/Proyectos... · Proyecto de Transmisión de Datos utilizando Tarjetas Híbridas

16

Quantity: References Value

25 R1-R25 220

6 Capacitors

Quantity: References Value

1 C1 2200uF

1 C2 220uF

4 C3-C6 100nF

5 Integrated Circuits

Quantity: References Value

4 U1-U4 74HC04

1 U5 7805_JOAN

25 Diodes

Quantity: References Value

24 D1-D24 LED-GREEN_JOAN

1 D25 LED-YELLOW_JOAN

11 Miscellaneous

Quantity: References Value

1 BAT1 9V

1 BR1 BRIDGE_JOAN

6 J1-J3, J5-J7 CONN-SIL8

2 J4, J8 CONN-SIL2

1 J9 (JACK HEMBRA) BORNIER 2_JOAN

Page 17: Proyecto de Transmisión de Datos - Hosting Miarrobapedrojoanmiro.webcindario.com/Desarrollo_de_Proyectos/Proyectos... · Proyecto de Transmisión de Datos utilizando Tarjetas Híbridas

17

3.1.- Programa del Transmisor ( T1_MU_RF.ASM ).

title " Transmisor Múltiple SERIE utilizando Librería de Transmisión" ;************ Leer el Puerto B y transmitirlo vía serie *********************************************** ;Programa para PIC 16F876. ;Velocidad del Reloj:4 MHz. ;Reloj instrucción: 1 MHz = 1uS. ;Perro Guardián deshabilitado. ;Tipo de Reloj XT. ;Protección de Código: OFF. ;**************************** Elegimos PIC ************************************************************* list p=16f876, f=inhx32 ;********** Asignacion de Registros de Funciones especiales a direcciones ****************** #include <p16f876.inc> ; Este fichero contiene los nombres y direcciones de los ; registros de funciones especiales. ; Este fichero esta localizado en este directorio ; con el nombre MPASM. ;***************************** Igualdades *************************************************************** LLAVE_MICROPULSADORES EQU B'01011010' ;(Dato). LLave Común Micropulsadores. LLAVE_POT_DERECHO EQU B'11001001' ;(Dato). LLave Común Micropulsadores. LLAVE_POT_IZQUIERDO EQU B'10001101' ;(Dato). LLave Común Micropulsadores. ;***************************** Registros ***************************************************************** CBLOCK 0X20 REGISTRO_MICROPULSADORES REGISTRO_DERECHO REGISTRO_IZQUIERDO ENDC ;**************************** Sección Código de Reset ************************************************ ORG 0X00 ;Dirección del Vector Reset GOTO COMIENZO ;Comienzo del Programa ;**************************** Sección de Configuración *********************************************** ORG 0X05 ; Inicio de Programa ;(Una posición detrás del vector de Interrupción) COMIENZO CALL CONFIGURACION_TRANS_SERIE ;*************************** Configuración *************************************************************

Page 18: Proyecto de Transmisión de Datos - Hosting Miarrobapedrojoanmiro.webcindario.com/Desarrollo_de_Proyectos/Proyectos... · Proyecto de Transmisión de Datos utilizando Tarjetas Híbridas

18

BSF STATUS,RP0 MOVLW B'11111111' MOVWF TRISB BCF TRISC,3 MOVLW B'00000000' ; Seleccionamos el Puerto A como entradas Analógicas. MOVWF ADCON1 BCF STATUS,RP0 ;*************************** Principal ********************************************************************* ;****** Testeo de los Micropulsadores, Interruptor y lanzamiento de su información.******** SEG6 BSF PORTC,3 ; Inhabilitar tarjeta de Radiofrecuencia. MOVF PORTB,W ANDLW B'00111111' MOVWF REGISTRO_MICROPULSADORES SUBLW B'00111111' BTFSC STATUS,Z GOTO SEG1 BCF PORTC,3; Habilitar tarjeta de Radiofrecuencia. MOVLW LLAVE_MICROPULSADORES MOVWF LLAVE_ENTRADA COMF REGISTRO_MICROPULSADORES,W CALL LANZAR_DATO_SERIE SEG2 BTFSS PORTB,5 GOTO SEG2 ;************ Testeo del Potenciómetro Derecho y lanzamiento de su información.************ SEG1 MOVLW B'00000001' ; Habilitamos el Conversor Analógico-Digital. MOVWF ADCON0 ; Seleccionamos la entrada RA0 CALL Retardo_10ms BSF ADCON0,GO_DONE ; Lanzamos el Conversor A/D. SEG3 BTFSC ADCON0,GO_DONE GOTO SEG3 MOVF ADRESH,W ; Preguntamos si la última muestra es igual a la nueva muestra. SUBWF REGISTRO_DERECHO,W BTFSC STATUS,Z GOTO SEG4 MOVF ADRESH,W MOVWF REGISTRO_DERECHO BCF PORTC,3 ; Habilitar tarjeta de Radiofrecuencia. MOVLW LLAVE_POT_DERECHO MOVWF LLAVE_ENTRADA MOVF REGISTRO_DERECHO,W CALL LANZAR_DATO_SERIE

Page 19: Proyecto de Transmisión de Datos - Hosting Miarrobapedrojoanmiro.webcindario.com/Desarrollo_de_Proyectos/Proyectos... · Proyecto de Transmisión de Datos utilizando Tarjetas Híbridas

19

;********** Testeo del Potenciómetro Izquierdo y lanzamiento de su información.************ SEG4 MOVLW B'00001001' ; Habilitamos el Conversor Analógico-Digital. MOVWF ADCON0 ; Seleccionamos la entrada RA1 CALL Retardo_10ms BSF ADCON0,GO_DONE ; Lanzamos el Conversor A/D. SEG5 BTFSC ADCON0,GO_DONE GOTO SEG5 MOVF ADRESH,W ; Preguntamos si la ultima muestra es igual a la nueva SUBWF REGISTRO_IZQUIERDO,W ; muestra. BTFSC STATUS,Z GOTO SEG6 MOVF ADRESH,W MOVWF REGISTRO_IZQUIERDO BCF PORTC,3 ; Habilitar tarjeta de Radiofrecuencia. MOVLW LLAVE_POT_IZQUIERDO MOVWF LLAVE_ENTRADA MOVF REGISTRO_IZQUIERDO,W CALL LANZAR_DATO_SERIE GOTO SEG6 ;*************************** Librerías ********************************************************************* INCLUDE <T_M_S_RF.INC> INCLUDE <RETARDOS.INC> END

Page 20: Proyecto de Transmisión de Datos - Hosting Miarrobapedrojoanmiro.webcindario.com/Desarrollo_de_Proyectos/Proyectos... · Proyecto de Transmisión de Datos utilizando Tarjetas Híbridas

20

3.2.- Progama del Transmisor ( T2_MU_RF.ASM ).

title " Transmisor Múltiple SERIE utilizando Librería de Transmisión" ;************ Leer el Puerto B y transmitirlo vía serie *********************************************** ;Programa para PIC 16F876. ;Velocidad del Reloj:4 MHz. ;Reloj instrucción: 1 MHz = 1uS. ;Perro Guardián deshabilitado. ;Tipo de Reloj XT. ;Protección de Código: OFF. ;**************************** Elegimos PIC ************************************************************* list p=16f876, f=inhx32 ;********** Asignacion de Registros de Funciones especiales a direcciones ****************** #include <p16f876.inc> ; Este fichero contiene los nombres y direcciones de los ; registros de funciones especiales. ; Este fichero esta localizado en este directorio ; con el nombre MPASM. ;***************************** Igualdades *************************************************************** LLAVE_MICROPULSADORES EQU B'01011010' ;(Dato). LLave Común Micropulsadores. LLAVE_POT_DERECHO EQU B'11001001' ;(Dato). LLave Común Micropulsadores. LLAVE_POT_IZQUIERDO EQU B'10001101' ;(Dato). LLave Común Micropulsadores. ;***************************** Registros ***************************************************************** CBLOCK 0X20 VARIACION_PORTB REGISTRO_MICROPULSADORES REGISTRO_DERECHO REGISTRO_IZQUIERDO ENDC ;**************************** Sección Código de Reset ************************************************ ORG 0X00 ;Dirección del Vector Reset GOTO COMIENZO ;Comienzo del Programa ;**************************** Sección de Configuración *********************************************** ORG 0X05 ; Inicio de Programa ;(Una posición detrás del vector de Interrupción) COMIENZO CALL CONFIGURACION_TRANS_SERIE

Page 21: Proyecto de Transmisión de Datos - Hosting Miarrobapedrojoanmiro.webcindario.com/Desarrollo_de_Proyectos/Proyectos... · Proyecto de Transmisión de Datos utilizando Tarjetas Híbridas

21

;*************************** Configuración ************************************************************* BSF STATUS,RP0 MOVLW B'11111111' MOVWF TRISB BCF TRISC,3 MOVLW B'00000000' ; Seleccionamos el Puerto A como entradas Analógicas. MOVWF ADCON1 BCF STATUS,RP0 ;*************************** Principal ********************************************************************* ;****** Testeo de los Micropulsadores, Interruptor y lanzamiento de su información.******** SEG6 BSF PORTC,3 ; Inhabilitar tarjeta de Radiofrecuencia. CHEQUEO_PORTB BTFSS PORTB,0

CALL IRPB0 BTFSS PORTB,1 CALL IRPB1 BTFSS PORTB,2 CALL IRPB2 BTFSS PORTB,3 CALL IRPB3 BTFSS PORTB,4 CALL IRPB4 CALL IRPB5

MOVF VARIACION_PORTB,W ; Preguntamos si la ultima

muestra es igual a la nueva muestra.

SUBWF REGISTRO_MICROPULSADORES,W BTFSC STATUS,Z GOTO SEG1 MOVF VARIACION_PORTB,W MOVWF REGISTRO_MICROPULSADORES BCF PORTC,3 ; Habilitar tarjeta de Radiofrecuencia. CALL Retardo_100ms MOVLW LLAVE_MICROPULSADORES MOVWF LLAVE_ENTRADA MOVF REGISTRO_MICROPULSADORES,W CALL LANZAR_DATO_SERIE SEG2 BTFSS PORTB,5 GOTO SEG2 ;************ Testeo del Potenciómetro Derecho y lanzamiento de su información.************ SEG1 MOVLW B'00000001' ; Habilitamos el Conversor Analógico-Digital. MOVWF ADCON0 ; Seleccionamos la entrada RA0 CALL Retardo_10ms

Page 22: Proyecto de Transmisión de Datos - Hosting Miarrobapedrojoanmiro.webcindario.com/Desarrollo_de_Proyectos/Proyectos... · Proyecto de Transmisión de Datos utilizando Tarjetas Híbridas

22

BSF ADCON0,GO_DONE ; Lanzamos el Conversor A/D. SEG3 BTFSC ADCON0,GO_DONE GOTO SEG3 MOVF ADRESH,W ; Preguntamos si la última muestra es igual a la nueva muestra. SUBWF REGISTRO_DERECHO,W BTFSC STATUS,Z GOTO SEG4 MOVF ADRESH,W MOVWF REGISTRO_DERECHO BCF PORTC,3 ; Habilitar tarjeta de Radiofrecuencia. MOVLW LLAVE_POT_DERECHO MOVWF LLAVE_ENTRADA MOVF REGISTRO_DERECHO,W CALL LANZAR_DATO_SERIE ;********** Testeo del Potenciómetro Izquierdo y lanzamiento de su información.************ SEG4 MOVLW B'00001001' ; Habilitamos el Conversor Analógico-Digital. MOVWF ADCON0 ; Seleccionamos la entrada RA1 CALL Retardo_10ms BSF ADCON0,GO_DONE ; Lanzamos el Conversor A/D. SEG5 BTFSC ADCON0,GO_DONE GOTO SEG5 MOVF ADRESH,W ; Preguntamos si la última muestra es igual a la nueva SUBWF REGISTRO_IZQUIERDO,W ; muestra. BTFSC STATUS,Z GOTO SEG6 MOVF ADRESH,W MOVWF REGISTRO_IZQUIERDO BCF PORTC,3 ; Habilitar tarjeta de Radiofrecuencia. MOVLW LLAVE_POT_IZQUIERDO MOVWF LLAVE_ENTRADA MOVF REGISTRO_IZQUIERDO,W CALL LANZAR_DATO_SERIE GOTO SEG6 ;*************************** Subrutina IRPB0 *********************************************************** IRPB0 BTFSC VARIACION_PORTB,0 GOTO VARIACION_PORTB0_0 BSF VARIACION_PORTB,0 GOTO SALIR_IRPB0 VARIACION_PORTB0_0 BCF VARIACION_PORTB,0 SALIR_IRPB0 RETURN ;*************************** Subrutina IRPB1 *********************************************************** IRPB1 BTFSC VARIACION_PORTB,1 GOTO VARIACION_PORTB1_0 BSF VARIACION_PORTB,1

Page 23: Proyecto de Transmisión de Datos - Hosting Miarrobapedrojoanmiro.webcindario.com/Desarrollo_de_Proyectos/Proyectos... · Proyecto de Transmisión de Datos utilizando Tarjetas Híbridas

23

GOTO SALIR_IRPB1 VARIACION_PORTB1_0 BCF VARIACION_PORTB,1 SALIR_IRPB1 RETURN ;*************************** Subrutina IRPB2 *********************************************************** IRPB2 BTFSC VARIACION_PORTB,2 GOTO VARIACION_PORTB2_0 BSF VARIACION_PORTB,2 GOTO SALIR_IRPB2 VARIACION_PORTB2_0 BCF VARIACION_PORTB,2 SALIR_IRPB2 RETURN ;*************************** Subrutina IRPB3 *********************************************************** IRPB3 BTFSC VARIACION_PORTB,3 GOTO VARIACION_PORTB3_0 BSF VARIACION_PORTB,3 GOTO SALIR_IRPB3 VARIACION_PORTB3_0 BCF VARIACION_PORTB,3 SALIR_IRPB3 RETURN ;*************************** Subrutina IRPB4 *********************************************************** IRPB4 BTFSC VARIACION_PORTB,4 GOTO VARIACION_PORTB4_0 BSF VARIACION_PORTB,4 GOTO SALIR_IRPB4 VARIACION_PORTB4_0 BCF VARIACION_PORTB,4 SALIR_IRPB4 RETURN ;*************************** Subrutina IRPB5 *********************************************************** IRPB5 BTFSC PORTB,5 GOTO VARIACION_PORTB5_0 BSF VARIACION_PORTB,5 GOTO SALIR_IRPB5 VARIACION_PORTB5_0 BCF VARIACION_PORTB,5 SALIR_IRPB5 RETURN ;*************************** Librerías ********************************************************************* INCLUDE <T_M_S_RF.INC> INCLUDE <RETARDOS.INC> END

Page 24: Proyecto de Transmisión de Datos - Hosting Miarrobapedrojoanmiro.webcindario.com/Desarrollo_de_Proyectos/Proyectos... · Proyecto de Transmisión de Datos utilizando Tarjetas Híbridas

24

3.2.1.- Librería ( T_M_S_RF.INC ).

;*************** Librería del Transmisor SERIE vía Radiofrecuencia para una Tarjeta Emisora SAW para Datos 433,92 MHz. ( CEBEK C-0503 )************* ;***************************** 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. ;***************************** Registros ****************************************************************** CBLOCK DATO_TRANSMITIDO CONTADOR_TRANSMISION LLAVE_ENTRADA ENDC ;**************************** Sección de Configuración *********************************************** CONFIGURACION_TRANS_SERIE BCF STATUS,RP1 ; Ir al Banco 1. BSF STATUS,RP0 MOVLW D'39' MOVWF SPBRG ; Cargar la Velocidad de

Transmisión de Datos. ; BR = (Fosc/64(X+1)) BR =

(4MHz/64(39+1)) = 1562,5 Hz MOVLW B'00100000' MOVWF TXSTA ; Configuración de la

Transmisión Serie. BCF STATUS,RP0 ; Ir al Banco 0. BCF STATUS,RP1 BSF RCSTA,SPEN ;Activamos la Puerta Serie (TX). RETURN ;*************************** Lanzar LLaves y Muestra Digital **************************************** LANZAR_DATO_SERIE MOVWF DATO_TRANSMITIDO MOVLW d'10' MOVWF CONTADOR_TRANSMISION MOVLW TODOCERO ;Lanzar llave TODOCERO. MOVWF TXREG ;Transmisión de Datos en Serie. BSF STATUS,RP0 SEG1_TRANSMISION BTFSS TXSTA,TRMT ;Preguntamos si se ha transmitido el

dato.

Page 25: Proyecto de Transmisión de Datos - Hosting Miarrobapedrojoanmiro.webcindario.com/Desarrollo_de_Proyectos/Proyectos... · Proyecto de Transmisión de Datos utilizando Tarjetas Híbridas

25

GOTO SEG1_TRANSMISION REPETIR_TRANSMISION BCF STATUS,RP0 ;Lanzar llave LLAVE_ENTRADA. MOVF LLAVE_ENTRADA,W MOVWF TXREG ;Transmisión de Datos en Serie. BSF STATUS,RP0 SEG2_TRANSMISION BTFSS TXSTA,TRMT ;Preguntamos si se ha transmitido el dato. GOTO SEG2_TRANSMISION BCF STATUS,RP0 ;Lanzar DATO_TRANSMITIDO. MOVF DATO_TRANSMITIDO,W MOVWF TXREG ;Transmisión de Datos en Serie. BSF STATUS,RP0 SEG3_TRANSMISION BTFSS TXSTA,TRMT ;Preguntamos si se ha

transmitido el dato. GOTO SEG3_TRANSMISION BCF STATUS,RP0 DECFSZ CONTADOR_TRANSMISION,F GOTO REPETIR_TRANSMISION RETURN

Page 26: Proyecto de Transmisión de Datos - Hosting Miarrobapedrojoanmiro.webcindario.com/Desarrollo_de_Proyectos/Proyectos... · Proyecto de Transmisión de Datos utilizando Tarjetas Híbridas

26

3.2.2.- Librería ( RETARDOS.INC ).

;**************************** Librería "RETARDOS.INC" **************************** ; ; =================================================================== ; Del libro "MICROCONTROLADOR PIC16F84. DESARROLLO DE PROYECTOS" ; E. Palacios, F. Remiro y L. López. ; Editorial Ra-Ma. www.ra-ma.es ; =================================================================== ; ; Librería con múltiples subrutinas de retardos, desde 4 microsegundos hasta 20 segundos. ; Además se pueden implementar otras subrutinas muy fácilmente. ; ; Se han calculado para un sistema microcontrolador con un PIC trabajando con un cristal ; de cuarzo a 4 MHz. Como cada ciclo máquina son 4 ciclos de reloj, resulta que cada ; ciclo máquina tarda 4 x 1/4MHz = 1 µs. ; ; En los comentarios, "cm" significa "ciclos máquina". ; ;************** ZONA DE DATOS *********************************************************************** CBLOCK R_ContA ; Contadores para los retardos. R_ContB R_ContC ENDC ; ;----------------- RETARDOS de 4 hasta 10 microsegundos ------------------------------------------------ ; ; A continuación retardos pequeños teniendo en cuenta que para una frecuencia de 4 MHZ, ; la llamada a subrutina "call" tarda 2 ciclos máquina, el retorno de subrutina ; "return" toma otros 2 ciclos máquina y cada instrucción "nop" tarda 1 ciclo máquina. ; Retardo_10micros ; La llamada "call" aporta 2 ciclos máquina. nop ; Aporta 1 ciclo máquina. nop ; Aporta 1 ciclo máquina. nop ; Aporta 1 ciclo máquina. nop ; Aporta 1 ciclo máquina. nop ; Aporta 1 ciclo máquina. Retardo_5micros ; La llamada "call" aporta 2 ciclos máquina. nop ; Aporta 1 ciclo máquina. Retardo_4micros ; La llamada "call" aporta 2 ciclos máquina. return ; El salto del retorno aporta 2 ciclos máquina. ; ;---------------- RETARDOS de 20 hasta 500 microsegundos --------------------------------------------- ; Retardo_500micros ; La llamada "call" aporta 2 ciclos máquina. nop ; Aporta 1 ciclo máquina. movlw d'164' ; Aporta 1 ciclo máquina. Este es el valor de "K". goto RetardoMicros ; Aporta 2 ciclos máquina. Retardo_200micros ; La llamada "call" aporta 2 ciclos máquina. nop ; Aporta 1 ciclo máquina. movlw d'64' ; Aporta 1 ciclo máquina. Este es el valor de "K". goto RetardoMicros ; Aporta 2 ciclos máquina. Retardo_100micros ; La llamada "call" aporta 2 ciclos máquina.

Page 27: Proyecto de Transmisión de Datos - Hosting Miarrobapedrojoanmiro.webcindario.com/Desarrollo_de_Proyectos/Proyectos... · Proyecto de Transmisión de Datos utilizando Tarjetas Híbridas

27

movlw d'31' ; Aporta 1 ciclo máquina. Este es el valor de "K". goto RetardoMicros ; Aporta 2 ciclos máquina. Retardo_50micros ; La llamada "call" aporta 2 ciclos máquina. nop ; Aporta 1 ciclo máquina. movlw d'14' ; Aporta 1 ciclo máquina. Este es el valor de "K". goto RetardoMicros ; Aporta 2 ciclos máquina. Retardo_20micros ; La llamada "call" aporta 2 ciclos máquina. movlw d'5' ; Aporta 1 ciclo máquina. Este es el valor de "K". ; ; El próximo bloque "RetardoMicros" tarda: ; 1 + (K-1) + 2 + (K-1)x2 + 2 = (2 + 3K) ciclos máquina. ; RetardoMicros movwf R_ContA ; Aporta 1 ciclo máquina. Rmicros_Bucle decfsz R_ContA,F ; (K-1)x1 cm (cuando no salta) + 2 cm (al saltar). goto Rmicros_Bucle ; Aporta (K-1)x2 ciclos máquina. return ; El salto del retorno aporta 2 ciclos máquina. ; ;En total estas subrutinas tardan: ; - Retardo_500micros: 2 + 1 + 1 + 2 + (2 + 3K) = 500 cm = 500 µs. (para K=164 y 4 MHz). ; - Retardo_200micros: 2 + 1 + 1 + 2 + (2 + 3K) = 200 cm = 200 µs. (para K= 64 y 4 MHz). ; - Retardo_100micros: 2 + 1 + 2 + (2 + 3K) = 100 cm = 100 µs. (para K= 31 y 4 MHz). ; - Retardo_50micros : 2 + 1 + 1 + 2 + (2 + 3K) = 50 cm = 50 µs. (para K= 14 y 4 MHz). ; - Retardo_20micros : 2 + 1 + (2 + 3K) = 20 cm = 20 µs. (para K= 5 y 4 MHz). ; ;------------------------ RETARDOS de 1 ms hasta 200 ms. --------------------------------------------------- ; Retardo_200ms ; La llamada "call" aporta 2 ciclos máquina. movlw d'200' ; Aporta 1 ciclo máquina. Este es el valor de "M". goto Retardos_ms ; Aporta 2 ciclos máquina. Retardo_100ms ; La llamada "call" aporta 2 ciclos máquina. movlw d'100' ; Aporta 1 ciclo máquina. Este es el valor de "M". goto Retardos_ms ; Aporta 2 ciclos máquina. Retardo_50ms ; La llamada "call" aporta 2 ciclos máquina. movlw d'50' ; Aporta 1 ciclo máquina. Este es el valor de "M". goto Retardos_ms ; Aporta 2 ciclos máquina. Retardo_20ms ; La llamada "call" aporta 2 ciclos máquina. movlw d'20' ; Aporta 1 ciclo máquina. Este es el valor de "M". goto Retardos_ms ; Aporta 2 ciclos máquina. Retardo_10ms ; La llamada "call" aporta 2 ciclos máquina. movlw d'10' ; Aporta 1 ciclo máquina. Este es el valor de "M". goto Retardos_ms ; Aporta 2 ciclos máquina. Retardo_5ms ; La llamada "call" aporta 2 ciclos máquina. movlw d'5' ; Aporta 1 ciclo máquina. Este es el valor de "M". goto Retardos_ms ; Aporta 2 ciclos máquina. Retardo_2ms ; La llamada "call" aporta 2 ciclos máquina. movlw d'2' ; Aporta 1 ciclo máquina. Este es el valor de "M". goto Retardos_ms ; Aporta 2 ciclos máquina. Retardo_1ms ; La llamada "call" aporta 2 ciclos máquina. movlw d'1' ; Aporta 1 ciclo máquina. Este es el valor de "M". ; ; El próximo bloque "Retardos_ms" tarda: ; 1 + M + M + KxM + (K-1)xM + Mx2 + (K-1)Mx2 + (M-1) + 2 + (M-1)x2 + 2 = ; = (2 + 4M + 4KM) ciclos máquina. Para K=249 y M=1 supone 1002 ciclos máquina ; que a 4 MHz son 1002 µs = 1 ms. ; Retardos_ms movwf R_ContB ; Aporta 1 ciclo máquina. R1ms_BucleExterno

Page 28: Proyecto de Transmisión de Datos - Hosting Miarrobapedrojoanmiro.webcindario.com/Desarrollo_de_Proyectos/Proyectos... · Proyecto de Transmisión de Datos utilizando Tarjetas Híbridas

28

movlw d'249' ; Aporta Mx1 ciclos máquina. Este es el valor de "K". movwf R_ContA ; Aporta Mx1 ciclos máquina. R1ms_BucleInterno nop ; Aporta KxMx1 ciclos máquina. decfsz R_ContA,F ; (K-1)xMx1 cm (cuando no salta) + Mx2 cm (al saltar). goto R1ms_BucleInterno ; Aporta (K-1)xMx2 ciclos máquina. decfsz R_ContB,F ; (M-1)x1 cm (cuando no salta) + 2 cm (al saltar). goto R1ms_BucleExterno ; Aporta (M-1)x2 ciclos máquina. return ; El salto del retorno aporta 2 ciclos máquina. ; ;En total estas subrutinas tardan: ; - Retardo_200ms: 2 + 1 + 2 + (2 + 4M + 4KM) = 200007 cm = 200 ms. (M=200 y K=249). ; - Retardo_100ms: 2 + 1 + 2 + (2 + 4M + 4KM) = 100007 cm = 100 ms. (M=100 y K=249). ; - Retardo_50ms : 2 + 1 + 2 + (2 + 4M + 4KM) = 50007 cm = 50 ms. (M= 50 y K=249). ; - Retardo_20ms : 2 + 1 + 2 + (2 + 4M + 4KM) = 20007 cm = 20 ms. (M= 20 y K=249). ; - Retardo_10ms : 2 + 1 + 2 + (2 + 4M + 4KM) = 10007 cm = 10 ms. (M= 10 y K=249). ; - Retardo_5ms : 2 + 1 + 2 + (2 + 4M + 4KM) = 5007 cm = 5 ms. (M= 5 y K=249). ; - Retardo_2ms : 2 + 1 + 2 + (2 + 4M + 4KM) = 2007 cm = 2 ms. (M= 2 y K=249). ; - Retardo_1ms : 2 + 1 + (2 + 4M + 4KM) = 1005 cm = 1 ms. (M= 1 y K=249). ; ;----------------------- RETARDOS de 0.5 hasta 20 segundos ----------------------------------------------- ; Retardo_20s ; La llamada "call" aporta 2 ciclos máquina. movlw d'200' ; Aporta 1 ciclo máquina. Este es el valor de "N". goto Retardo_1Decima ; Aporta 2 ciclos máquina. Retardo_10s ; La llamada "call" aporta 2 ciclos máquina. movlw d'100' ; Aporta 1 ciclo máquina. Este es el valor de "N". goto Retardo_1Decima ; Aporta 2 ciclos máquina. Retardo_5s ; La llamada "call" aporta 2 ciclos máquina. movlw d'50' ; Aporta 1 ciclo máquina. Este es el valor de "N". goto Retardo_1Decima ; Aporta 2 ciclos máquina. Retardo_2s ; La llamada "call" aporta 2 ciclos máquina. movlw d'20' ; Aporta 1 ciclo máquina. Este es el valor de "N". goto Retardo_1Decima ; Aporta 2 ciclos máquina. Retardo_1s ; La llamada "call" aporta 2 ciclos máquina. movlw d'10' ; Aporta 1 ciclo máquina. Este es el valor de "N". goto Retardo_1Decima ; Aporta 2 ciclos máquina. Retardo_500ms ; La llamada "call" aporta 2 ciclos máquina. movlw d'5' ; Aporta 1 ciclo máquina. Este es el valor de "N". ; ; El próximo bloque "Retardo_1Decima" tarda: ; 1 + N + N + MxN + MxN + KxMxN + (K-1)xMxN + MxNx2 + (K-1)xMxNx2 + ; + (M-1)xN + Nx2 + (M-1)xNx2 + (N-1) + 2 + (N-1)x2 + 2 = ; = (2 + 4M + 4MN + 4KM) ciclos máquina. Para K=249, M=100 y N=1 supone 100011 ; ciclos máquina que a 4 MHz son 100011 µs = 100 ms = 0,1 s = 1 décima de segundo. ; Retardo_1Decima movwf R_ContC ; Aporta 1 ciclo máquina. R1Decima_BucleExterno2 movlw d'100' ; Aporta Nx1 ciclos máquina. Este es el valor de "M". movwf R_ContB ; Aporta Nx1 ciclos máquina. R1Decima_BucleExterno movlw d'249' ; Aporta MxNx1 ciclos máquina. Este es el valor de "K". movwf R_ContA ; Aporta MxNx1 ciclos máquina. R1Decima_BucleInterno nop ; Aporta KxMxNx1 ciclos máquina. decfsz R_ContA,F ; (K-1)xMxNx1 cm (si no salta) + MxNx2 cm (al saltar). goto R1Decima_BucleInterno ; Aporta (K-1)xMxNx2 ciclos máquina. decfsz R_ContB,F ; (M-1)xNx1 cm (cuando no salta) + Nx2 cm (al saltar). goto R1Decima_BucleExterno ; Aporta (M-1)xNx2 ciclos máquina.

Page 29: Proyecto de Transmisión de Datos - Hosting Miarrobapedrojoanmiro.webcindario.com/Desarrollo_de_Proyectos/Proyectos... · Proyecto de Transmisión de Datos utilizando Tarjetas Híbridas

29

decfsz R_ContC,F ; (N-1)x1 cm (cuando no salta) + 2 cm (al saltar). goto R1Decima_BucleExterno2 ; Aporta (N-1)x2 ciclos máquina. return ; El salto del retorno aporta 2 ciclos máquina. ; ;En total estas subrutinas tardan: ; - Retardo_20s: 2 + 1 + 2 + (2 + 4N + 4MN + 4KMN) = 20000807 cm = 20 s. ; (N=200, M=100 y K=249). ; - Retardo_10s: 2 + 1 + 2 + (2 + 4N + 4MN + 4KMN) = 10000407 cm = 10 s. ; (N=100, M=100 y K=249). ; - Retardo_5s: 2 + 1 + 2 + (2 + 4N + 4MN + 4KMN) = 5000207 cm = 5 s. ; (N= 50, M=100 y K=249). ; - Retardo_2s: 2 + 1 + 2 + (2 + 4N + 4MN + 4KMN) = 2000087 cm = 2 s. ; (N= 20, M=100 y K=249). ; - Retardo_1s: 2 + 1 + 2 + (2 + 4N + 4MN + 4KMN) = 1000047 cm = 1 s. ; (N= 10, M=100 y K=249). ; - Retardo_500ms: 2 + 1 + (2 + 4N + 4MN + 4KMN) = 500025 cm = 0,5 s. ; (N= 5, M=100 y K=249). ; =================================================================== ; Del libro "MICROCONTROLADOR PIC16F84. DESARROLLO DE PROYECTOS" ; E. Palacios, F. Remiro y L. López. ; Editorial Ra-Ma. www.ra-ma.es ; ===================================================================

Page 30: Proyecto de Transmisión de Datos - Hosting Miarrobapedrojoanmiro.webcindario.com/Desarrollo_de_Proyectos/Proyectos... · Proyecto de Transmisión de Datos utilizando Tarjetas Híbridas

30

3.3.- Programa del Receptor ( R1_MU_RF.ASM ).

title " Receptor SERIE " ;Programa para PIC 16F877a. ;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=16f877, f=inhx32 ;*************** Asignación de Registros de Funciones especiales a direcciones ************* #include <p16f877.inc> ; Este fichero contiene los nombres y direcciones de ; los registros de funciones especiales. ; Este fichero esta localizado en este directorio ; con el nombre MPASM. ;******************************************* Igualdades ************************************************** LLAVE_MICROPULSADORES EQU B'01011010' ;(Dato). LLave Común Micropulsadores. LLAVE_POT_DERECHO EQU B'11001001' ;(Dato). LLave Común Micropulsadores. LLAVE_POT_IZQUIERDO EQU B'10001101' ;(Dato). LLave Común Micropulsadores. ;******************************************* Registros **************************************************** CBLOCK 0X20 W_TEMP ;(Registros). Registro de salvaguarda de la Rutina de Interr. STATUS_TEMP RCREG_GUARDA ENDC ;*************************************** Sección Código de Reset ************************************* ORG 0X00 ;Dirección del Vector Reset GOTO COMIENZO ;Comienzo del Programa ;***************************************** Vector de Interrupción ************************************** ORG 0X04 GOTO INTERRUPCION ;Vector de Interrupción. ;*************************************** Sección de Configuración ************************************ ORG 0X05 ;Inicio de Programa ;(Una posición detrás del vector de

Interrupción). COMIENZO BSF STATUS,RP0 CLRF TRISB CLRF TRISC

Page 31: Proyecto de Transmisión de Datos - Hosting Miarrobapedrojoanmiro.webcindario.com/Desarrollo_de_Proyectos/Proyectos... · Proyecto de Transmisión de Datos utilizando Tarjetas Híbridas

31

CLRF TRISD BCF STATUS,RP0 CLRF PORTB CLRF PORTC CLRF PORTD CALL CONFIGURACION_RECEP_SERIE ;******************************************** Principal **************************************************** PRINCIPAL NOP GOTO PRINCIPAL ;****************************************** Rutina de Interrupción ************************************* INTERRUPCION BTFSS PIR1,RCIF ; Detectamos si ha interrumpido la

Recepcion Serie. RETFIE SALVAR MOVWF W_TEMP ; Salvamos Registros SWAPF STATUS,W MOVWF STATUS_TEMP MOVF RCREG,W ;Preguntamos si ha llegado la "LLAVE_MICROPULSADORES". MOVWF RCREG_GUARDA XORLW LLAVE_MICROPULSADORES BTFSS STATUS,Z GOTO POT_DER CALL MICROPULSADORES GOTO RECUPERAR POT_DER MOVF RCREG_GUARDA,W ;Preguntamos si ha llegado la

"LLAVE_POT_DERECHO". XORLW LLAVE_POT_DERECHO BTFSS STATUS,Z GOTO POT_IZQ CALL POTENCIOMETRO_DERECHO GOTO RECUPERAR POT_IZQ MOVF RCREG_GUARDA,W ;Preguntamos si ha llegado la

"LLAVE_POT_IZQUIERDO". XORLW LLAVE_POT_IZQUIERDO BTFSC STATUS,Z CALL POTENCIOMETRO_IZQUIERDO RECUPERAR SWAPF STATUS_TEMP,W ;Recuperamos Registros. MOVWF STATUS SWAPF W_TEMP,F SWAPF W_TEMP,W

Page 32: Proyecto de Transmisión de Datos - Hosting Miarrobapedrojoanmiro.webcindario.com/Desarrollo_de_Proyectos/Proyectos... · Proyecto de Transmisión de Datos utilizando Tarjetas Híbridas

32

RETFIE ;Retorno de Interrupción. ;********************************** Subrutina MICROPULSADORES********************************** MICROPULSADORES MOVLW LLAVE_MICROPULSADORES MOVWF LLAVE_ENTRADA CALL RECEPCION_DATO_SERIE MOVF DATO_SERIE_VALIDO,W MOVWF PORTC RETURN ;****************************** Subrutina POTENCIOMETRO_DERECHO**************************** POTENCIOMETRO_DERECHO MOVLW LLAVE_POT_DERECHO MOVWF LLAVE_ENTRADA CALL RECEPCION_DATO_SERIE MOVF DATO_SERIE_VALIDO,W MOVWF PORTB RETURN ;****************************** Subrutina POTENCIOMETRO_IZQUIERDO************************** POTENCIOMETRO_IZQUIERDO MOVLW LLAVE_POT_IZQUIERDO MOVWF LLAVE_ENTRADA CALL RECEPCION_DATO_SERIE MOVF DATO_SERIE_VALIDO,W MOVWF PORTD RETURN ;*********************************************** Librerías ************************************************* INCLUDE <R_M_S_RF.INC> END

Page 33: Proyecto de Transmisión de Datos - Hosting Miarrobapedrojoanmiro.webcindario.com/Desarrollo_de_Proyectos/Proyectos... · Proyecto de Transmisión de Datos utilizando Tarjetas Híbridas

33

3.3.1.- Librería ( R_M_S_RF.INC ).

;******** Librería del Receptor SERIE vía Radiofrecuencia para una Tarjeta Receptora SAW para Datos 433,92 MHz. ( CEBEK C-0504 ) ******************* ; Esta configurada la Interrupción en Recepción Serie. Es necesario cargar el Vector de interrupción ; ORG 0X04 ; GOTO INTERRUPCION ; La Subrutina de Recepción Serie devuelve el dato valido en el Registro DATO_SERIE_VALIDO ;******************************************* Igualdades ************************************************** ;******************************************* Registros**************************************************** CBLOCK DATO_SERIE1 DATO_SERIE2 DATO_SERIE_VALIDO LLAVE_ENTRADA ENDC ;*************************************** Sección de Configuración ************************************ CONFIGURACION_RECEP_SERIE BSF STATUS,RP0 ; Banco 1 BCF STATUS,RP1 BSF TRISC,7 MOVLW D'39' ; Cargar la Velocidad de

Recepción de Datos. MOVWF SPBRG BCF TXSTA,SYNC MOVLW B'11000000' ;Habilitar Interrupcion Serie MOVWF INTCON MOVLW B'00100000' ;Habilitar Interrupcion Serie MOVWF PIE1 BCF STATUS,RP0 ; Banco 0 BCF STATUS,RP1 MOVLW B'10010000' ;Configurar y lanzar la

Recepcion Serie MOVWF RCSTA RETURN

Page 34: Proyecto de Transmisión de Datos - Hosting Miarrobapedrojoanmiro.webcindario.com/Desarrollo_de_Proyectos/Proyectos... · Proyecto de Transmisión de Datos utilizando Tarjetas Híbridas

34

;****************************** Subrutina de Recepción Serie **************************************** ;Tiene que estar dentro de la Rutina de INTERRUPCION RECEPCION_DATO_SERIE BCF PIR1,RCIF ;Borramos Flag de la Recepción. NO_DATO_SERIE1 BTFSS PIR1,RCIF ;Preguntamos si hemos recibido una

nuevo DATO. GOTO NO_DATO_SERIE1 MOVF RCREG,W MOVWF DATO_SERIE1 ;Guardamos el Dato Primero BCF PIR1,RCIF ;Borramos Flag de la Recepción. NO_LLAVE_ENTRADA BTFSS PIR1,RCIF ;Preguntamos si ha llegado la LLave

"LLAVE_ENTRADA". GOTO NO_LLAVE_ENTRADA MOVF RCREG,W ;Preguntamos si ha llegado la LLave

"LLAVE_ENTRADA". XORWF LLAVE_ENTRADA,W BTFSS STATUS,Z ;Si es correcta la LLave volvemos a

preguntar. GOTO SALIR_SERIE ;No es correcta la LLave volvemos al

PP previa recuperación de registros. BCF PIR1,RCIF ;Borramos Flag de la Recepción. NO_DATO_SERIE2 BTFSS PIR1,RCIF ;Preguntamos si hemos recibido una

nuevo DATO. GOTO NO_DATO_SERIE2 MOVF RCREG,W MOVWF DATO_SERIE2 ;Guardamos el Dato Segundo MOVF DATO_SERIE1,W ;Si ambos datos son Iguales

validamos el dato serie recibido.

SUBWF DATO_SERIE2,F BTFSS STATUS,Z GOTO SALIR_SERIE VALIDAR_DATO_SERIE MOVF DATO_SERIE1,W MOVWF DATO_SERIE_VALIDO ; El Dato se queda cargado

en el Registro DATO_SERIE_VALIDO

SALIR_SERIE BCF PIR1,RCIF RETURN