Ciclo Formativo de Grado Superior de Desarrollo de ... · Ciclo Formativo de Grado Superior de...

23
Ciclo Formativo de Grado Superior de Desarrollo de Productos Electrónicos Módulo: Desarrollo de Proyectos. Proyecto: Hexápodo 1 Profesor: Pedro Alonso Sanz Instituto: I.E.S. Joan Miró Localidad: San Sebastián de los Reyes Provincia: Madrid Curso: 2005/2006

Transcript of Ciclo Formativo de Grado Superior de Desarrollo de ... · Ciclo Formativo de Grado Superior de...

Page 1: Ciclo Formativo de Grado Superior de Desarrollo de ... · Ciclo Formativo de Grado Superior de Desarrollo de Productos Electrónicos Módulo: Desarrollo de Proyectos. Proyecto: Hexápodo

Ciclo Formativo de Grado Superior

de Desarrollo de Productos Electrónicos

Módulo: Desarrollo de Proyectos.

Proyecto: Hexápodo 1

Profesor: Pedro Alonso Sanz

Instituto: I.E.S. Joan Miró

Localidad: San Sebastián de los Reyes

Provincia: Madrid

Curso: 2005/2006

Page 2: Ciclo Formativo de Grado Superior de Desarrollo de ... · Ciclo Formativo de Grado Superior de Desarrollo de Productos Electrónicos Módulo: Desarrollo de Proyectos. Proyecto: Hexápodo

2

INDICE PAGINA

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

1.-Simulación con Proteus del Hexápodo y el Mando. .................... 4 2.- Esquema Eléctrico del Hexápodo. .................................................. 5

2.1.- Diseño de placa de la Hexápodo. (Cara de componentes y pistas Top Cooper). .............. 5

2.2.- Cara de pistas Bottom Cooper. ..................................... 6

3.- Esquema Eléctrico del Mando. ................................................... 6

3.1.- Cara de componentes, pistas Top Cooper y Bottom Cooper. …………………………………….….. 7

4.- Esquema Eléctrico de la Baliza. ................................................. 8

4.1.- Cara de componentes, pistas Top Cooper y Bottom Cooper. …………………………………..…... 8

5.- Software del Mando. ( Mando.asm) ........................................... 9

5.1.- Librería de Transmisión Serie. (T_S_RF.INC) ............ 10

5.2.- Librería de Retardos. (RETARDOS.INC) .................... 11 6.- Software del Hexápodo. (Araña.asm) ........................................ 13

6.1- Librería de Recepción de Datos. (R_S_RF.INC) ……… 18 7.- Lista de Materiales. .................................................................... 20

7.1.- Mando. .......................................................................... 20 7.2.- Hexápodo. .................................................................... 21 7.3.- Baliza. ........................................................................... 22

Page 3: Ciclo Formativo de Grado Superior de Desarrollo de ... · Ciclo Formativo de Grado Superior de Desarrollo de Productos Electrónicos Módulo: Desarrollo de Proyectos. Proyecto: Hexápodo

3

1.- Explicación breve del Proyecto.

Realizar un Hexápodo que pueda dirigirse con un Mando electrónico o seguir

una señal procedente de una Baliza.

La señal que emite la Baliza, es una señal cuadrada de 36 KHz de ondas infrarrojas.

Las herramientas software utilizadas son:

Proteus. (Simulación y diseño de placas).

MPLAB. (Simulación del software).

PICdownloader. (Software de grabación del microcontrolador)

Es diseño mecánico está por desarrollar y es una parte crítica a tener muy en cuenta.

En este proyecto se integrar software, hardware (electrónico, mecánico y de

telecomunicaciones).

Page 4: Ciclo Formativo de Grado Superior de Desarrollo de ... · Ciclo Formativo de Grado Superior de Desarrollo de Productos Electrónicos Módulo: Desarrollo de Proyectos. Proyecto: Hexápodo

4

1.-Simulación con Proteus del Hexápodo y el Mando.

Page 5: Ciclo Formativo de Grado Superior de Desarrollo de ... · Ciclo Formativo de Grado Superior de Desarrollo de Productos Electrónicos Módulo: Desarrollo de Proyectos. Proyecto: Hexápodo

5

2.- Esquema Eléctrico del Hexápodo.

2.1.- Diseño de placa del Hexápodo. (Cara de componentes y pistas Top Cooper).

Page 6: Ciclo Formativo de Grado Superior de Desarrollo de ... · Ciclo Formativo de Grado Superior de Desarrollo de Productos Electrónicos Módulo: Desarrollo de Proyectos. Proyecto: Hexápodo

6

2.2.- Cara de pistas Bottom Cooper.

3.- Esquema Eléctrico del Mando.

Page 7: Ciclo Formativo de Grado Superior de Desarrollo de ... · Ciclo Formativo de Grado Superior de Desarrollo de Productos Electrónicos Módulo: Desarrollo de Proyectos. Proyecto: Hexápodo

7

3.1.- Cara de componentes, pistas Top Cooper y Bottom Cooper.

Page 8: Ciclo Formativo de Grado Superior de Desarrollo de ... · Ciclo Formativo de Grado Superior de Desarrollo de Productos Electrónicos Módulo: Desarrollo de Proyectos. Proyecto: Hexápodo

8

4.- Esquema Eléctrico de la Baliza.

4.1.- Cara de componentes, pistas Top Cooper y Bottom Cooper .

Page 9: Ciclo Formativo de Grado Superior de Desarrollo de ... · Ciclo Formativo de Grado Superior de Desarrollo de Productos Electrónicos Módulo: Desarrollo de Proyectos. Proyecto: Hexápodo

9

5.- Software del Mando. ( Mando.asm) title " Transmisor SERIE utilizando Librería de Transmisión"

;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

;********** Asignación 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 MPASMWIN.EXE.

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

CBLOCK 0X20

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 *********************************************

BSF STATUS,RP0

MOVLW B'11111111' MOVWF TRISB

BCF TRISC,3 BCF STATUS,RP0

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

SEG1 BSF PORTC,3

MOVF PORTB,W

ANDLW B'00111111' SUBLW B'00111111'

BTFSC STATUS,Z

GOTO SEG1 BCF PORTC,3

CALL LANZAR_DATO_SERIE

SEG2 BTFSS PORTB,5 GOTO SEG2

GOTO SEG1

;*************************** Librerías ************************************************

INCLUDE <T_S_RF.INC> INCLUDE <RETARDOS.INC>

END

Page 10: Ciclo Formativo de Grado Superior de Desarrollo de ... · Ciclo Formativo de Grado Superior de Desarrollo de Productos Electrónicos Módulo: Desarrollo de Proyectos. Proyecto: Hexápodo

10

5.1.- Librería de Transmisión Serie. (T_S_RF.INC)

title " 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.

LLAVE_ENTRADA EQU B'01011010' ;(Dato). Llave Común.

;***************************** Registros *********************************************

CBLOCK

DATO_TRANSMITIDO CONTADOR_TRANSMISION

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.

GOTO SEG1_TRANSMISION

REPETIR_TRANSMISION BCF STATUS,RP0 ;Lanzar llave LLAVE_ENTRADA.

MOVLW LLAVE_ENTRADA 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

Page 11: Ciclo Formativo de Grado Superior de Desarrollo de ... · Ciclo Formativo de Grado Superior de Desarrollo de Productos Electrónicos Módulo: Desarrollo de Proyectos. Proyecto: Hexápodo

11

BCF STATUS,RP0

DECFSZ CONTADOR_TRANSMISION,F

GOTO REPETIR_TRANSMISION

RETURN

5.2.- Librería de Retardos. (T_S_RF.INC)

;**************************** Librería "RETARDOS.INC" *********************** ;

; 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.

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.

Page 12: Ciclo Formativo de Grado Superior de Desarrollo de ... · Ciclo Formativo de Grado Superior de Desarrollo de Productos Electrónicos Módulo: Desarrollo de Proyectos. Proyecto: Hexápodo

12

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 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".

Page 13: Ciclo Formativo de Grado Superior de Desarrollo de ... · Ciclo Formativo de Grado Superior de Desarrollo de Productos Electrónicos Módulo: Desarrollo de Proyectos. Proyecto: Hexápodo

13

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.

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).

6.- Software de la Araña. (Araña.asm) title " Control de una Araña "

;Programa para PIC 16F876a.

;Velocidad del Reloj = 1 MHz. ;Reloj instruccion: 250 kHz = 4 uS.

;Perro Guardián deshabilitado.

;Tipo de Reloj XT. ;Protección de Código: OFF.

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

list p=16f876, f=inhx32

;*********************** Asignación 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 MPASMWIN.EXE.

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

Page 14: Ciclo Formativo de Grado Superior de Desarrollo de ... · Ciclo Formativo de Grado Superior de Desarrollo de Productos Electrónicos Módulo: Desarrollo de Proyectos. Proyecto: Hexápodo

14

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

CARGA_TMR0 EQU D'220' ;Tiempo de Interrupción del Programa Principal por el TIMER0.

;**************************** Registros ***************************************************

CBLOCK 0X20

W_TEMP

STATUS_TEMP T_ALTO3

R_T_ALTO3

T_BAJO3 CICLO_COMPLETO

TRASERAS

DELANTERAS CENTRALES

BITCORRECTOS

ENDC

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

ORG 0X00 ;Dirección del Vector Reset

GOTO COMIENZO ;Comienzo del Programa

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

ORG 04H

GOTO INTERRU

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

ORG 0X05 ;Inicio de Programa ;(Una posición detrás del vector de Interrupción).

COMIENZO CALL CONFIGURACION_RECEP_SERIE

BSF STATUS,RP0 ; Banco1

BCF STATUS,RP1

MOVLW B'00000000' ;Configuramos Puerto A como entradas Analógicas.

MOVWF ADCON1 ;El resultado se queda en ADRESH

BCF TRISC,2 ; Habilitamos PC2 como salida para atacar el

Servomotor 1. BCF TRISC,1 ; Habilitamos PC1 como salida para atacar el

Servomotor 2.

BCF TRISC,0 ; Habilitamos PC0 como salida para atacar el Servomotor 3.

BCF TRISB,7 ; Habilitamos PB7 como salida para indicar DERECHA.

BCF TRISB,6 ; Habilitamos PB6 como salida para indicar RECTO. BCF TRISB,5 ; Habilitamos PB5 como salida para indicar

IZQUIERDA.

BSF TRISB,0 ; Habilitamos PB0 como entrada OJO DERECHO.

BSF TRISB,3 ; Habilitamos PB3 como entrada OJO IZQUIERDO.

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

MOVWF PR2

MOVLW B'00001000' ;Se configura el TIMER0 como Temporizador sin

preescaler.

MOVWF OPTION_REG

BCF STATUS,RP0

MOVLW B'00000111' ;Cargamos el Valor Preescalar.(PWM INTERNO)

MOVWF T2CON

MOVLW B'00001100' ;Cargamos los 2 Bit menos significativos del nivel

;Alto de la Senal PWM y configuramos y lanzamos

PWM. MOVWF CCP1CON ;Salida de senal por RC2

Page 15: Ciclo Formativo de Grado Superior de Desarrollo de ... · Ciclo Formativo de Grado Superior de Desarrollo de Productos Electrónicos Módulo: Desarrollo de Proyectos. Proyecto: Hexápodo

15

MOVLW B'00001100' ;Cargamos los 2 Bit menos significativos del nivel

;Alto de la Senal PWM y configuramos y lanzamos

PWM. MOVWF CCP2CON ;Salida de senal por RC1

MOVLW 0X01 ;Forzamos a coger el primer dato de T_ALTO3 MOVWF CICLO_COMPLETO

MOVLW B'10100010' ;Permitimos la Interrupción del TIMER0 y entramos inicialmente.

MOVWF INTCON

BCF PORTB,7 ; Reseteamos PB7.

BCF PORTB,6 ; Reseteamos PB6. BCF PORTB,5 ; Reseteamos PB5.

BSF DATO_SERIE_VALIDO,5

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

PRINCIPAL BTFSS DATO_SERIE_VALIDO,5 GOTO CONTROL_MANDO

RASTREADOR MOVF PORTB,W ANDLW B'00001001'

MOVWF BITCORRECTOS

XORLW B'00000000'

BTFSC STATUS,Z

GOTO ADELANTE

MOVF BITCORRECTOS,W

XORLW B'00000001' BTFSC STATUS,Z

GOTO IZQUIERDA

MOVF BITCORRECTOS,W

XORLW B'00001001'

BTFSC STATUS,Z GOTO PARADA

MOVF BITCORRECTOS,W XORLW B'00001000'

BTFSC STATUS,Z

GOTO DERECHA

GOTO PRINCIPAL

CONTROL_MANDO MOVF DATO_SERIE_VALIDO,W XORLW B'00000001'

BTFSC STATUS,Z

GOTO ADELANTE

MOVF DATO_SERIE_VALIDO,W

XORLW B'00000010' BTFSC STATUS,Z

GOTO IZQUIERDA

MOVF DATO_SERIE_VALIDO,W

XORLW B'00000100'

BTFSC STATUS,Z GOTO PARADA

MOVF DATO_SERIE_VALIDO,W XORLW B'00001000'

BTFSC STATUS,Z

GOTO ATRAS

MOVF DATO_SERIE_VALIDO,W

XORLW B'00010000' BTFSC STATUS,Z

Page 16: Ciclo Formativo de Grado Superior de Desarrollo de ... · Ciclo Formativo de Grado Superior de Desarrollo de Productos Electrónicos Módulo: Desarrollo de Proyectos. Proyecto: Hexápodo

16

GOTO DERECHA

GOTO PRINCIPAL

ADELANTE BCF PORTB,7 ; Apagamos Led Derecho.

BSF PORTB,6 ; Encendemos Led Recto.

BCF PORTB,5 ; Apagamos Led Izquierdo.

MOVLW D'26' ; 28

MOVWF DELANTERAS MOVLW D'26' ; 28

MOVWF TRASERAS

MOVLW D'5' MOVWF CENTRALES

CALL MOVIMIENTO_PATAS

CALL Retardo_50ms ; CALL Retardo_50ms

MOVLW D'14'

MOVWF DELANTERAS

MOVLW D'14'

MOVWF TRASERAS

MOVLW D'7' MOVWF CENTRALES

CALL MOVIMIENTO_PATAS

CALL Retardo_50ms ; CALL Retardo_50ms

GOTO PRINCIPAL

ATRAS BSF PORTB,7 ; Apagamos Led Derecho.

BSF PORTB,6 ; Encendemos Led Recto.

BSF PORTB,5 ; Apagamos Led Izquierdo.

MOVLW D'26' ; 28

MOVWF DELANTERAS MOVLW D'26' ; 28

MOVWF TRASERAS

MOVLW D'7' MOVWF CENTRALES

CALL MOVIMIENTO_PATAS

CALL Retardo_50ms ; CALL Retardo_50ms

MOVLW D'14' MOVWF DELANTERAS

MOVLW D'14'

MOVWF TRASERAS MOVLW D'5'

MOVWF CENTRALES

CALL MOVIMIENTO_PATAS CALL Retardo_50ms

; CALL Retardo_50ms

GOTO PRINCIPAL

DERECHA BSF PORTB,7 ; Encendemos Led Derecho. BCF PORTB,6 ; Apagamos Led Recto.

BCF PORTB,5 ; Apagamos Led Izquierdo.

MOVLW D'30';

MOVWF DELANTERAS

MOVLW D'23'; MOVWF TRASERAS

MOVLW D'5';

MOVWF CENTRALES CALL MOVIMIENTO_PATAS

CALL Retardo_50ms

; CALL Retardo_20ms

MOVLW D'21';

MOVWF DELANTERAS MOVLW D'13'; 19

MOVWF TRASERAS

MOVLW D'7'; MOVWF CENTRALES

CALL MOVIMIENTO_PATAS

CALL Retardo_50ms ; CALL Retardo_20ms

Page 17: Ciclo Formativo de Grado Superior de Desarrollo de ... · Ciclo Formativo de Grado Superior de Desarrollo de Productos Electrónicos Módulo: Desarrollo de Proyectos. Proyecto: Hexápodo

17

GOTO PRINCIPAL

IZQUIERDA BCF PORTB,7 ; Apagamos Derecho.

BCF PORTB,6 ; Apagamos Led Recto. BSF PORTB,5 ; Encendemos Led Izquierdo.

MOVLW D'20'; MOVWF DELANTERAS

MOVLW D'29'; 23

MOVWF TRASERAS MOVLW D'5';

MOVWF CENTRALES

CALL MOVIMIENTO_PATAS CALL Retardo_50ms

; CALL Retardo_20ms

MOVLW D'13';

MOVWF DELANTERAS

MOVLW D'18';

MOVWF TRASERAS

MOVLW D'7';

MOVWF CENTRALES CALL MOVIMIENTO_PATAS

CALL Retardo_50ms

; CALL Retardo_20ms GOTO PRINCIPAL

PARADA BCF PORTB,7 ; Apagamos Derecho. BCF PORTB,6 ; Apagamos Led Recto.

BCF PORTB,5 ; Apagamos Led Izquierdo.

MOVLW D'21'

MOVWF DELANTERAS

MOVLW D'21' MOVWF TRASERAS

MOVLW D'6'

MOVWF CENTRALES CALL MOVIMIENTO_PATAS

CALL Retardo_50ms

GOTO PRINCIPAL

;*************************** Subrutina MOVIMIENTO_PATAS **********************************************

MOVIMIENTO_PATAS MOVF TRASERAS,W

MOVWF CCPR1L ; Nivel Alto de la senal PWM (Salida por RC2)

(Patas traseras). MOVF DELANTERAS,W

MOVWF CCPR2L ; Nivel Alto de la senal PWM.(Salida por RC1)

(Patas delanteras). MOVF CENTRALES,W

MOVWF T_ALTO3 ; Nivel Alto de la senal PWM.(Salida por RC0)

(Patas Centrales). RETURN

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

INTERRU MOVWF W_TEMP SWAPF STATUS,W

MOVWF STATUS_TEMP

BTFSC PIR1,RCIF

GOTO INT_REC_SERIE BTFSC INTCON,T0IF

GOTO INT_TIMER0

RETFIE

INT_REC_SERIE CALL RECEPCION_DATO_SERIE ; El Dato se queda cargado en

DATO_SERIE_VALIDO GOTO SALIR

INT_TIMER0 MOVLW CARGA_TMR0 ;Cargamos el TIMER0 con el tiempo que interrumpe el Programa Principal.

MOVWF TMR0

MOVF CICLO_COMPLETO,F ;Preguntamos si hemos completado un

Page 18: Ciclo Formativo de Grado Superior de Desarrollo de ... · Ciclo Formativo de Grado Superior de Desarrollo de Productos Electrónicos Módulo: Desarrollo de Proyectos. Proyecto: Hexápodo

18

Periodo del Servo3

BTFSC STATUS,Z ;

GOTO NO_CICLO_COMPLETO

SI_CICLO_COMPLETO MOVF T_ALTO3,W

MOVWF R_T_ALTO3 CLRF CICLO_COMPLETO

NO_CICLO_COMPLETO CALL SENAL_SERVO3

SALIR SWAPF STATUS_TEMP,W

MOVWF STATUS SWAPF W_TEMP,F

SWAPF W_TEMP,W

BCF INTCON,T0IF

BCF PIR1,RCIF

RETFIE

;******************************* Subrutina SENAL_SERVO3*************************************************

SENAL_SERVO3 BTFSS PORTC,0

GOTO IR_A_CERO IR_A_UNO BSF PORTC,0

DECFSZ R_T_ALTO3,F

RETURN

RESET_PC0 BCF PORTC,0

MOVLW D'50' MOVWF T_BAJO3

RETURN

IR_A_CERO DECFSZ T_BAJO3,F

RETURN

BSF PORTC,0

MOVLW 0X01

MOVWF CICLO_COMPLETO

RETURN

;********************************* Librerias****************************************************************

INCLUDE <RETARDOS.INC> INCLUDE <R_S_RF.INC>

6.1- Librería de Recepción de Datos. (R_S_RF.INC)

title " Receptor SERIE via Radiofrecuencia para una Tarjeta Emisora 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 **************************************************

LLAVE_ENTRADA EQU B'01011010' ;(Dato). Llave Común.

;**************************** Registros****************************************************

CBLOCK

DATO_SERIE1

DATO_SERIE2

Page 19: Ciclo Formativo de Grado Superior de Desarrollo de ... · Ciclo Formativo de Grado Superior de Desarrollo de Productos Electrónicos Módulo: Desarrollo de Proyectos. Proyecto: Hexápodo

19

DATO_SERIE_VALIDO

ENDC

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

CONFIGURACION_RECEP_SERIE BSF STATUS,RP0 ; Banco 1 BCF STATUS,RP1

MOVLW D'39' ; 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 ; Banco 0

BCF STATUS,RP1

MOVLW B'10010000' ;Configurar y lanzar la Recepción Serie

MOVWF RCSTA

RETURN

;****************************** Subrutina de Recepción Serie *********************************************

;Tiene que estar dentro de la Rutina de INTERRUPCION

RECEPCION_DATO_SERIE MOVF RCREG,W ;Preguntamos si ha llegado la Llave "LLAVE_ENTRADA".

XORLW LLAVE_ENTRADA

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_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". XORLW LLAVE_ENTRADA

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

END

Page 20: Ciclo Formativo de Grado Superior de Desarrollo de ... · Ciclo Formativo de Grado Superior de Desarrollo de Productos Electrónicos Módulo: Desarrollo de Proyectos. Proyecto: Hexápodo

20

7.- Lista de Materiales.

7.1.- Mando.

Bill Of Materials For Esquema Eléctrico del Mando.DSN

Design Title : Esquema Eléctrico del Mando.DSN

Author :

Revision :

Design Created : miércoles, 16 de febrero de 2005

Design Last Modified : jueves, 15 de febrero de 2007

Total Parts In Design : 41

10 Resistors

Quantity: References Value

3 R1, R10, R12 10k

6 R3-R6, R13, R14 220

1 R11 100

6 Capacitors

Quantity: References Value

3 C1, C2, C8 100nF

1 C5 220uF

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

1 ANTENA BORNIER1_JOAN

1 E1 CEBEK-C-0503_JOAN

Page 21: Ciclo Formativo de Grado Superior de Desarrollo de ... · Ciclo Formativo de Grado Superior de Desarrollo de Productos Electrónicos Módulo: Desarrollo de Proyectos. Proyecto: Hexápodo

21

2 ENCENDIDO, RAS-CO INTERRUPTOR_JOAN

2 POT_DERECHO, POT_IZQUIERDO 1k

1 VCC 9V

1 X1 CRYSTAL_JOAN

jueves, 15 de febrero de 2007 19:58:22

7.1.- Hexápodo.

Bill Of Materials For Esquema Eléctrico de la Araña.DSN

Design Title : Esquema Eléctrico de la Araña.DSN

Author :

Revision :

Design Created : viernes, 27 de enero de 2006

Design Last Modified : jueves, 15 de febrero de 2007

Total Parts In Design : 41

7 Resistors

Quantity: References Value

1 R1 47k

1 R2 470

1 R3 22

4 R4-R7 220

9 Capacitors

Quantity: References Value

2 C1, C2 15pF

1 C3 470uF

1 C4 220uF

5 C5-C9 1uF

3 Integrated Circuits

Quantity: References Value

1 U1 PIC16F876_JOAN

1 U2 7805

1 U3 MAX232

1 Transistors

Quantity: References Value

1 Q1 MJ2955_JOAN

6 Diodes

Quantity: References Value

1 D1 1N4007_JOAN

1 D2 LED-RED_JOAN

1 D3 LED-GREEN_JOAN

2 D4, D5 LED-YELLOW_JOAN

1 D6 1N4148

Page 22: Ciclo Formativo de Grado Superior de Desarrollo de ... · Ciclo Formativo de Grado Superior de Desarrollo de Productos Electrónicos Módulo: Desarrollo de Proyectos. Proyecto: Hexápodo

22

15 Miscellaneous

Quantity: References Value

1 BAT1 9V

2 INF1, INF3 SFH5110_JOAN

1 INF2 IS471F_JOAN

1 J1 CONN_SIL3_JOAN

1 J2 CONN_SIL2_JOAN

1 RF1 CEBEK-C-0504_JOAN

1 RF2 ANTENA_JOAN

1 RJ1 RJ11_JOAN

3 SER1-SER3 SEVOMOTOR-PWM_JOAN

1 SW1 PULSADOR_JOAN

1 SW2 INTERRUPTOR_JOAN

1 X1 CRYSTAL_JOAN

jueves, 15 de febrero de 2007 20:38:44

7.3.- Baliza. Bill Of Materials For Esquema Eléctrico de la Baliza.DSN

Design Title : Esquema Eléctrico de la Baliza.DSN

Author :

Revision :

Design Created : jueves, 15 de febrero de 2007

Design Last Modified : jueves, 15 de febrero de 2007

Total Parts In Design : 15

4 Resistors

Quantity: References Value

1 R2 120

1 R3 15k

1 R4 4.7k

1 R5 330

3 Capacitors

Quantity: References Value

1 C1 100uF

1 C2 1nF

1 C3 100nF

1 Integrated Circuits

Quantity: References Value

1 U1 NE555_JOAN

1 Transistors

Quantity: References Value

1 Q1 BD139_JOAN

Page 23: Ciclo Formativo de Grado Superior de Desarrollo de ... · Ciclo Formativo de Grado Superior de Desarrollo de Productos Electrónicos Módulo: Desarrollo de Proyectos. Proyecto: Hexápodo

23

3 Diodes

Quantity: References Value

1 D1 1N4007_JOAN

1 D2 LED-RED_JOAN

1 D2 (EMISOR IR)

3 Miscellaneous

Quantity: References Value

1 BAT1 9V

1 RV1 5k

1 SW1 INTERRUPTOR_JOAN

jueves, 15 de febrero de 2007 20:48:07