Coche Teledirigido. Profesor: Pedro Alonso Sanz Instituto: I.E.S. Joan Miró Localidad: San Sebastián de los Reyes

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Coche Teledirigido. Profesor: Pedro Alonso Sanz Instituto: I.E.S. Joan Miró Localidad: San Sebastián de los Reyes"

Transcripción

1 Coche Teledirigido Profesor: Pedro Alonso Sanz Instituto: I.E.S. Joan Miró Localidad: San Sebastián de los Reyes

2 Índice Página 1.- Hardware Esquema Eléctrico simulado del Mando y Coche Teledirigido Esquema Eléctrico del Mando Esquema Eléctrico del Coche Teledirigido Placa del Mando Placa del Coche Teledirigido Lista de Materiales del Mando Lista de Materiales del Coche Teledirigido Carrocería Software Programa del Mando (TR_CO_1.ASM) Diagrama de Flujo Programa del Transmisor del Coche Teledirigido Librería T_M_S_RF.INC Librería RETARDOS.INC Programa del Coche Teledirigido (RE_CO_1.ASM) Diagrama de Flujo Programa del Receptor del Coche Teledirigido Librería R_S_M_RF.INC

3 1.- Hardware Esquema Eléctrico simulado del Mando y Coche Teledirigido. 3

4 1.2.- Esquema Eléctrico del Mando. 4

5 1.3.- Esquema Eléctrico del Coche Teledirigido. 5

6 1.4.- Placa del Mando. Top Cooper and Top Silk Bottom Cooper Bottom Cooper (Mirror) 6

7 1.5.- Placa del Coche Teledirigido. Top Cooper and Top Silk Bottom Cooper Bottom Cooper (Mirror) 7

8 1.6.- Lista de Materiales del Mando. Lista de materiales del Mando1.DSN Título : Mando1.DSN Autor : Pedro Alonso Sanz Revision : Fecha de creación : sábado, 16 de septiembre de 2006 Ultima modificación : jueves, 28 de septiembre de 2006 Número de componentes: 36 7 Resistors Quantity: References Value 6 R1-R R7 2.2k 3 Capacitors Quantity: References Value 2 C2, C3 15pF 1 C4, C1 220uF 2 Integrated Circuits Quantity: References Value 1 U1 7805_JOAN 1 U2 PIC16F876_JOAN 1 Transistors 8

9 Quantity: References Value 1 Q1 BD136_JOAN 7 Diodes Quantity: References Value 1 D1 1N4007_JOAN 1 D2 LED-YELLOW_JOAN 1 D3 LED-GREEN_JOAN 4 D4-D7 LED-RED_JOAN 10 Miscellaneous Quantity: References Value 5 ADELANTE, ATRAS, DERECHA, IZQUIERDA, PARAR PULSADOR_JOAN 1 ANTENA BORNIER1_JOAN 1 E1 CEBEK-C-0503_JOAN 1 ENCENDIDO INTERRUPTOR_JOAN 1 VCC 9V 1 X1 CRYSTAL_JOAN (4 MHz ) sábado, 04 de noviembre de :29: Lista de Materiales del Coche Teledirigido Lista de materiales Coche Teledirigido 1.DSN Título : Coche Teledirigido 1.DSN 9

10 Autor : Pedro Alonso Sanz Revision : Fecha de creación : sábado, 16 de septiembre de 2006 Ultima modificación : jueves, 28 de septiembre de 2006 Número de componentes : 36 9 Resistors Quantity: References Value 1 R R R R4 47k 5 R5-R Capacitors Quantity: References Value 1 C1,C4 220uF 2 C2, C3 15pF 3 Integrated Circuits Quantity: References Value 1 U1 PIC16F876_JOAN 1 U2 L298 1 U4 7805_JOAN 1 Transistors Quantity: References Value 1 Q1 BD136_JOAN 10

11 12 Diodes Quantity: References Value 5 D1, D3-D6 1N4007_JOAN 2 D2, D11 LED-RED_JOAN 2 D7, D9 LED-YELLOW_JOAN 2 D8, D10 LED-GREEN_JOAN 1 D12 DIODO_ZENER_JOAN (6.8V) 8 Miscellaneous Quantity: References Value 1 ANTENA (17 CM) BORNIER1_JOAN 1 BAT1 12V 1 MOTOR DC 12V 1 RF1 CEBEK-C-0504_JOAN 1 SERVOMOTOR SERVOMOTOR-PWM_JOAN 1 SW1 INTERRUPTOR_JOAN 1 SW2 PULSADOR_JOAN 1 X1 CRYSTAL_JOAN martes, 17 de octubre de :17: Carrocería. 11

12 12

13 2.- Software Programa del Mando (TR_CO_1.ASM) Diagrama de Flujo del Transmisor del Coche Teledirigido 1 Transmisor Coche Teledirigido TR_C0_1.ASM Retardo_100mS Elegimos PIC List p=16f876, f=inhx32 Principal PC3 1 Inhabilitar Tarjeta de radiofrecuencia Asignación de nombres de RFS a direcciones. #include <p16f876.inc> PB0 =1? Igualdades MAX_VEL_ADE = D'248' Máxima velocidad hacia adelante. MAX_VEL_ATR = D 0 Máxima velocidad hacia atrás. VEL_CERO = D 128 Velocidad cero. INC_VEL = D 8 Incremento de velocidad. POS_MAX_DE = D 28 Posición máxima del Servo hacia la derecha. POS_MAX_IZ = D 9 Posición máxima del Servo hacia la Izquierda. POS_CENTRAL = D 19 Posición central del Servomotor. INC_POS = D 1 Incremento de posición. LLAVE_VELOCIDAD = D'205' LLave Velocidad. LLAVE_POCION = D'121 LLave Posición. VELOCIDAD_MAS PB1 =1? IZQUIERDA Registros CBLOCK 0X20 VELOCIDAD POCION ENDC PB2 =1? PARAR Sección de código de Reset ORG OOH Dirección del vector de Reset GOTO COMIENZO Comienzo del Programa Sección de Configuración PB3 =1? VELOCIDAD_MES ORG 0x05 Inicio de Programa COMIENZO CONFIGURACION_TRANS_SERIE RP0 1 Ir al Banco 1 TRISB B Poner el Puerto B como entrada de datos. TRISC(3) 0 Poner el PC3 como salida de datos. RP0 0 Ir al Banco 0 POCIÓN #POS_CENTRAL Posición central del Servomotor VELOCIDAD #VEL_CERO Motor tractor parado. PB4 =1? DERECHA 1 13

14 Subrutina de VELOCIDAD_MAS Subrutina de VELOCIDAD_MES VELOCIDAD = MAX_VEL_ADE? VELOCIDAD = MAX_VEL_ATR? Incrementar la velocidad Decrementar la velocidad VELOCIDAD VELOCIDAD + #INC_VEL VELOCIDAD VELOCIDAD - #INC_VEL Lanzar código de velocidad vía radiofrecuencia Lanzar código de velocidad vía radiofrecuencia LANZAR_VELOCIDAD LANZAR_VELOCIDAD Subrutina de PARAR Parar Coche VELOCIDAD #VEL_CERO Lanzar código de velocidad vía radiofrecuencia LANZAR_VELOCIDAD Subrutina de IZQUIERDA Subrutina de DERECHA POCION = POS_MAX_IZ? POCION = POS_MAX_DE? Decrementar la posición. POCION POCION - #INC_POS Incrementar la posición. POCION POCION + #INC_POS Lanzar código de posición vía radiofrecuencia LANZAR_POCION Lanzar código de posición vía radiofrecuencia LANZAR_POCION 14

15 Subrutina de LANZAR_VELOCIDAD Subrutina de LANZAR_POCION Cargar llave de velocidad LLAVE_ENTRADA #LLAVE_VELOCIDAD Cargar llave de posición. LLAVE_ENTRADA #LLAVE_POCION Cargar en W el contenido de VELOCIDAD W VELOCIDAD Cargar en W el contenido de POCION W POCION Lanzar código de velocidad vía radiofrecuencia LANZAR_DATO_SERIE Lanzar código de velocidad vía radiofrecuencia LANZAR_DATO_SERIE Librería de Transmisión de datos (Carga en el W el dato a transmitir) (Cargar la llave de entrada en el registro LLAVE_ENTRADA) T_M_S_RF.INC Igualdades TODOCERO = B Registros CBLOCK DATO_TRANSMITIDO CONTADOR_TRANSMIÓN LLAVE-ENTRADA ENDC Sección de Configuración CONFIGURACION_TRANS_SERIE RPO 1 Ir al Banco 1 SPBRG D 39 Cargar la Velocidad de Transmisión de Datos Baud Rate = Fosc/(64(X+1)) Baud Rate = 4MHz/(64(39+1)) = 1562,5 BIT por segundo TXSTA B Configuración de la transmisión serie de datos (Modo Asíncrono y baja velocidad. RP0 0 Ir al Banco 0 SPEN 1 Activamos la Puerta Serie (TX) 2 15

16 2 LANZAR_DATO_SERIE DATO _ TRANSMITIDO W Cargar el número de transmisión CONTADOR_TRANSMIÓN D 10 Lanzar TODOCERO TXREG #TODOCERO Ha terminado la transmisión? TRMT = 1? Lanzar LLAVE_ENTRADA TXREG #LLAVE_ENTRADA CONTADOR_TRANSMIÓN = 0? Ha terminado la transmisión? TRMT = 1? Decrementar el registro CONTADOR_TRANSMION CONTADOR_TRANSMION CONTADOR_TRANSMIÓN - 1 Lanzar DATO_TRANSMITIDO TXREG #DATO_TRANSMITIDO Ha terminado la transmisión? TRMT = 1? 16

17 Programa del Transmisor del Coche Teledirigido title " Transmisor Coche Teledirigido" ***************************** 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 ********** Asignación de etiquetas 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 el directorio con el nombre MPASM ******************************************* Igualdades *************************************************** MAX_VEL_ADE EQU D'248' Máxima velocidad hacia adelante. MAX_VEL_ATR EQU D 0 Máxima velocidad hacia atrás. VEL_CERO EQU D 128 Velocidad cero. INC_VEL EQU D 8 Incremento de velocidad. POS_MAX_DE EQU D 28 Posición máxima del Servo hacia la derecha. POS_MAX_IZ EQU D 9 Posición máxima del Servo hacia la Izquierda. POS_CENTRAL EQU D 19 Posición central del Servomotor. INC_POS EQU D 1 Incremento de posición. LLAVE_VELOCIDAD EQU D'205' LLave Velocidad. LLAVE_POCION EQU D'121 LLave Posición. ******************************************** Registros **************************************************** CBLOCK 0X20 VELOCIDAD POCION 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 BSF STATUS,RP0 17

18 MOVLW B' ' MOVWF TRISB BCF TRISC,3 BCF STATUS,RP0 MOVLW POS_CENTRAL MOVWF POCION MOVLW VEL_CERO MOVWF VELOCIDAD Posición central del Servomotor (Dirección). Motor tractor parado. **************************************** Principal ********************************************************* ********** Testeo de los Micropulsadores de Velocidad y lanzamiento de su información.********* SEG1 BSF PORTC,3 Inhabilitar tarjeta de Radiofrecuencia. CALL Retardo_100ms BTFSS PORTB,0 Aumentamos velocidad? CALL VELOCIDAD_MAS BTFSS PORTB,1 Vamos hacia la izquierda? CALL IZQUIERDA BTFSS PORTB,2 Paramos? CALL PARAR BTFSS PORTB,3 Disminuimos la velocidad? CALL VELOCIDAD_MES BTFSS PORTB,4 CALL DERECHA Vamos hacia la derecha? GOTO SEG1 *************************** Subrutina de VELOCIDAD_MAS ****************************************** VELOCIDAD_MAS MOVF VELOCIDAD,W Hemos llegado a la máxima Velocidad hacia adelante? SUBLW MAX_VEL_ADE BTFSC STATUS,Z GOTO SALIR_VEL_MAS MOVLW INC_VEL Incrementar la velocidad. SALIR_VEL_MAS ADDWF VELOCIDAD,F CALL LANZAR_VELOCIDAD Lanzar el código de velocidad vía radiofrecuencia. *************************** Subrutina de VELOCIDAD_MES *************************************** VELOCIDAD_MES MOVF VELOCIDAD,W SALIR_VEL_MES SUBLW MAX_VEL_ATR BTFSC STATUS,Z GOTO SALIR_VEL_MES MOVLW INC_VEL SUBWF VELOCIDAD,F CALL LANZAR_VELOCIDAD Hemos llegado a la máxima Velocidad hacia atrás? Decrementar la velocidad. Lanzar el código de velocidad vía radiofrecuencia 18

19 ************************** Subrutina de PARAR ******************************************************** PARAR MOVLW VEL_CERO Parar el coche. MOVWF VELOCIDAD CALL LANZAR_VELOCIDAD Lanzar el código de velocidad vía radiofrecuencia *************************** Subrutina de DERECHA **************************************************** DERECHA MOVF POCION,W Hemos llegado a la máxima posición hacia la derecha? SUBLW POS_MAX_DE BTFSC STATUS,Z GOTO SALIR_DER SALIR_DER MOVLW INC_POS ADDWF POCION,F CALL LANZAR_POCION Incrementar posición. Lanzar el código de posición vía radiofrecuencia *************************** Subrutina de IZQUIERDA ************************************************** IZQUIERDA MOVF POCION,W Hemos llegado a la máxima posición hacia la izquierda? SUBLW POS_MAX_IZ BTFSC STATUS,Z GOTO SALIR_IZQ SALIR_IZQ MOVLW INC_POS SUBWF POCION,F CALL LANZAR_POCION Decrementar posición. Lanzar el código de posición vía radiofrecuencia *************************** Subrutina de LANZAR_VELOCIDAD ************************************** LANZAR_VELOCIDAD BCF PORTC,3 Habilitar tarjeta de Radiofrecuencia. MOVLW LLAVE_VELOCIDAD Cargar llave de velocidad. MOVWF LLAVE_ENTRADA MOVF VELOCIDAD,W CALL LANZAR_DATO_SERIE Lanzar datos vía radiofrecuencia. *************************** Subrutina de LANZAR_POCION **************************************** LANZAR_POCION BCF PORTC,3 Habilitar tarjeta de Radiofrecuencia. MOVLW LLAVE_POCION Cargar llave de posición. MOVWF LLAVE_ENTRADA MOVF POCION,W CALL LANZAR_DATO_SERIE Lanzar datos vía radiofrecuencia. *************************** Librerias ********************************************************************** INCLUDE <T_M_S_RF.INC> INCLUDE <RETARDOS.INC> END 19

20 Librería T_M_S_RF.INC Librería de Transmisor SERIE vía Radiofrecuencia para una Tarjeta Emisora SAW para Datos 433,92 MHz. ( CEBEK C-0503 ) Cargar la llave de entrada en el registro LLAVE_ENTRADA Cargar en W el dato a transmitir ***************************** Igualdades **************************************************************** TODOCERO EQU B' ' (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_TRANSMION 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 MOVLW B' ' MOVWF TXSTA Cargar la Velocidad de Transmisión de Datos. BR = (Fosc/64(X+1)) BR = (4MHz/64(39+1)) = 1562,5 Hz 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). *************************** Lanzar Llaves y Muestra Digital ****************************************** LANZAR_DATO_SERIE MOVWF DATO_TRANSMITIDO MOVLW d'10' MOVWF CONTADOR_TRANSMION MOVLW TODOCERO Lanzar llave TODOCERO. MOVWF TXREG Transmisión de Datos en Serie. BSF STATUS,RP0 SEG1_TRANSMION BTFSS TXSTA,TRMT Preguntamos si se ha transmitido el dato. GOTO SEG1_TRANSMION REPETIR_TRANSMION BCF STATUS,RP0 Lanzar llave LLAVE_ENTRADA. 20

21 SEG2_TRANSMION MOVF LLAVE_ENTRADA,W MOVWF TXREG Transmisión de Datos en Serie. BSF STATUS,RP0 BTFSS TXSTA,TRMT Preguntamos si se ha transmitido el dato. GOTO SEG2_TRANSMION BCF STATUS,RP0 Lanzar DATO_TRANSMITIDO. MOVF DATO_TRANSMITIDO,W MOVWF TXREG Transmisión de Datos en Serie. BSF STATUS,RP0 SEG3_TRANSMION BTFSS TXSTA,TRMT Preguntamos si se ha transmitido el dato. GOTO SEG3_TRANSMION BCF STATUS,RP0 DECFSZ CONTADOR_TRANSMION,F GOTO REPETIR_TRANSMION 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. =================================================================== 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. 21

22 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) (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 + 3K) = 500 cm = 500 µs. (para K=164 y 4 MHz). - Retardo_200micros: (2 + 3K) = 200 cm = 200 µs. (para K= 64 y 4 MHz). - Retardo_100micros: (2 + 3K) = 100 cm = 100 µs. (para K= 31 y 4 MHz). - Retardo_50micros : (2 + 3K) = 50 cm = 50 µs. (para K= 14 y 4 MHz). - Retardo_20micros : (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. 22

23 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) (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 + 4M + 4KM) = cm = 200 ms. (M=200 y K=249). - Retardo_100ms: (2 + 4M + 4KM) = cm = 100 ms. (M=100 y K=249). - Retardo_50ms : (2 + 4M + 4KM) = cm = 50 ms. (M= 50 y K=249). - Retardo_20ms : (2 + 4M + 4KM) = cm = 20 ms. (M= 20 y K=249). - Retardo_10ms : (2 + 4M + 4KM) = cm = 10 ms. (M= 10 y K=249). - Retardo_5ms : (2 + 4M + 4KM) = 5007 cm = 5 ms. (M= 5 y K=249). - Retardo_2ms : (2 + 4M + 4KM) = 2007 cm = 2 ms. (M= 2 y K=249). - Retardo_1ms : (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) (N-1)x2 + 2 = = (2 + 4M + 4MN + 4KM) ciclos máquina. Para K=249, M=100 y N=1 supone ciclos máquina que a 4 MHz son µ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. 23

24 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 + 4N + 4MN + 4KMN) = cm = 20 s. (N=200, M=100 y K=249). - Retardo_10s: (2 + 4N + 4MN + 4KMN) = cm = 10 s. (N=100, M=100 y K=249). - Retardo_5s: (2 + 4N + 4MN + 4KMN) = cm = 5 s. (N= 50, M=100 y K=249). - Retardo_2s: (2 + 4N + 4MN + 4KMN) = cm = 2 s. (N= 20, M=100 y K=249). - Retardo_1s: (2 + 4N + 4MN + 4KMN) = cm = 1 s. (N= 10, M=100 y K=249). - Retardo_500ms: (2 + 4N + 4MN + 4KMN) = 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. =================================================================== 24

25 2.2.- Programa del Coche Teledirigido (RE_CO_1.ASM) Diagrama de Flujo Receptor del Coche Teledirigido RE_CO_1.ASM 1 Sección de Configuración ORG 0X05H Igualdades Elegimos PIC List p=16f876, f=inhx32 Asignación de nombres de RFS a direcciones. #include <p16f876.inc> POS_CENTRAL = D'19' Posición central del Servomotor. VEL_CERO_INI = D'255' Velocidad cero. LLAVE_VELOCIDAD = D'205' Llave Velocidad. LLAVE_POCION = D'121' Llave Posición. PERIODO = D 255 Representa el Periodo de la señal de PWM. Registros CBLOCK 0X20 VELOCIDAD POCION W_TEMP STATUS_TEMP RCREG_GUARDA ENDC COMIENZO RP0 1 Ir al Banco 1 TRISB B Poner Puerto B como salida de dato TRISC B Poner Puerto C como salida de dato RP0 0 Ir al Banco 0 PORTC B Limpiar el Puerto C. CONFIGURACION_RECEP_SERIE RP0 1 Ir al Banco 1 PR2 #PERIODO Cargamos el Periodo de la señal de PWM. RP0 0 Ir al Banco 0 T2CON B Cargamos el Valor Preescalar. (PWM INTER) CCP1CON B Cargamos los 2 BIT menos significativos del nivel Alto de la Señal PWM y configuramos y lanzamos el PWM. Salida de señal por RC2 CCP2CON B Cargamos los 2 BIT menos significativos del nivel Alto de la Señal PWM y configuramos y lanzamos el PWM. Salida de señal por RC1 POCION #POS_CENTRAL Posicionamos el Servo en el centro. VELOCIDAD #VEL_CERO_INI Posicionamos el Servo en el centro. PORTB B Activamos el Led de Parada. Sección de código de Reset ORG OOH Dirección del vector de Reset GOTO COMIENZO Comienzo del Programa Principal CCPR1L POCION Nivel Alto de la señal PWM (Salida por RC2) (Rueda delantera). Vector de Interrupción ORG 04H GOTO INTERRUPCION CCPR2L VELOCIDAD Nivel Alto de la señal PWM (Salida por RC1) (Ruedas tractoras). 1 Retardo 20 ms 25

26

27 Rutina de Interrupción INTERRUPCION RCIF = 1? Salvar Registros RETFIE W_TEMP W STATUS_TEMP STATUS Guardamos el registro RCREG RCREG_GUARDA RCREG Ha llegado la llave de velocidad? RCREG = LLAVE_VELOCIDAD? Ir a la subrutina de Velocidad SUBR_VELOCIDAD Ha llegado la llave de posición? RCREG_GUARDA = LLAVE_POCION? Ir a la subrutina de Posición SUBR_POCION Recuperar Registros STATUS STATUS_TEMP W W_TEMP RETFIE 27

28 Subrutina SUBR_VELOCIDAD Cargar la llave de velocidad en llave de entrada LLAVE_ENTRADA LLAVE_VELOCIDAD El Dato se queda cargado en el registro DATO_SERIE_VALIDO RECEPCION_DATO_SERIE DATO_SERIE_VALIDO = 128? VEL_CERO DATO_SERIE_VALIDO > 128? MA_128 DATO_SERIE_VALIDO < 128? ME_128 Complementar el código a 128 VELOCIDAD VELOCIDAD Multiplicar por 2 el contenido del registro VELOCIDAD Subrutina MA_128 VELOCIDAD 2 X VELOCIDAD Transformamos los códigos del registro comprendidos entre 129 y 255 en códigos de 1 a 127 y los cargamos en el registro VELOCIDAD. DATO_SERIE_VALIDO (7) 0 VELOCIDAD DATO_SERIE_VALIDO Inversor de giro hacia adelante PC3 1 PC4 0 PC5 1 Activar led de señalización PB3 0 PB2 1 PB1 1 Led Adelante ON. Led Atras OFF. Led Parada OFF. 28

29 Subrutina VEL_CERO Cargamos 1 en el registro velocidad VELOCIDAD 1 Inversor de giro desactivado PC3 0 PC4 0 PC5 0 Activar led de señalización Subrutina ME_128 PB3 1 PB2 1 PB1 0 Led Adelante OFF. Led Atras OFF. Led Parada ON. Transformamos los códigos del registro DATO_SERIE_VALIDO comprendidos entre 0 y 127 en códigos de 128 a 1 y los cargamos en el registro VELOCIDAD. Subrutina SUBR_POCION Cargar la llave de posición en llave de entrada VELOCIDAD < DATO_SERIE_VALIDO Inversor de giro hacia atrás PC3 0 PC4 1 PC5 1 LLAVE_ENTRADA LLAVE_POCION Activar led de señalización El Dato se queda cargado en el registro DATO_SERIE_VALIDO RECEPCION_DATO_SERIE PB3 1 PB2 0 PB1 1 Led Adelante OFF. Led Atras ON. Led Parada OFF. Cargar el dato serie valido en posición. POCION DATO_SERIE_VALIDO POCION = #POS_CENTRAL? POCION > #POS_CENTRAL? POCION < #POS_CENTRAL? Desactivar led de señalización PB4 1 Led Izquierda OFF. PB0 1 Led Derecha OFF. Activar led de señalización PB4 1 Led Izquierda OFF. PB0 0 Led Derecha ON. Activar led de señalización PB4 0 Led Izquierda ON. PB0 1 Led Derecha OFF. 29

30 R_S_M_RF.INC Igualdades Registros CBLOCK DATO_SERIE1 DATO_SERIE2 DATO_SERIE_VALIDO LLAVE_ENTRADA ENDC Sección de Configuración CONFIGURACION_RECEP_SERIE RP0 1 Ir al Banco 1 BRGH 0 Trabajar con velocidad baja de recepción. SPBRG D 9 Cargar la velocidad de Transmisión de datos Baud Rate = Fosc/(64(X+1)) Baud Rate = 1MHz/(64(9+1)) = 1562,5 BIT por segundo SYNC 0 INTCON B PIE B Habilitamos la recepción asíncrona. Habilitar la Interrupción serie Habilitar la Interrupción serie RP0 0 Ir al Banco 0 RCSTA B Configurar y lanzar la recepción serie (Habilitar puerto serie, 8 BIT y recepción continua). 2 30

31 2 RECEPCION_DATO_SERIE RCIF 0 Borramos flag de Recepción Borramos flag de Recepción RCIF 0 Ha llegado un nuevo dato? RCIF = 1? Validamos los datos recibidos DATO_SERIE_VALIDO DATO_SERIE1 Guardamos el dato primero DATO_SERIE1 RCREG Son iguales los datos recibidos? DATO_SERIE1 = DATO_SERIE2? Borramos flag de Recepción RCIF 0 Ha llegado la llave de entrada? RCREG = LLAVE_ENTRADA? Guardamos el dato segundo DATO_SERIE2 RCREG Borramos flag de Recepción RCIF 0 Ha llegado un nuevo dato? RCIF = 1? 31

32 Programa del Receptor del Coche Teledirigido title " Receptor Coche Teledirigido " 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=16f876, f=inhx32 *************** Asignación de etiquetas 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 el directorio con el nombre MPASM. ******************************************** Igualdades ************************************************** POS_CENTRAL EQU D'19' Posición central del Servomotor. VEL_CERO_INI EQU D'255' Velocidad cero. LLAVE_VELOCIDAD EQU D'205' Llave Velocidad. LLAVE_POCION EQU D'121' Llave Posición. PERIODO EQU D 255 Representa el Periodo de la la señal de PWM. *********************************** Registros ************************************************************* CBLOCK 0X20 VELOCIDAD POCION W_TEMP STATUS_TEMP RCREG_GUARDA Registro de salvaguarda de la Rutina de Interrupción. 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). 32

33 COMIENZO BSF STATUS,RP0 Ir al Banco 1. CLRF TRISB Poner el PORTB como salida de datos. CLRF TRISC Poner el PORTC como salida de datos. BCF STATUS,RP0 Ir al Banco 0. CLRF PORTC Limpiar el PORTC. CALL CONFIGURACION_RECEP_SERIE Configuración de la Recepción serie. BSF STATUS,RP0 Ir al Banco 1. MOVLW PERIODO Cargamos el Periodo de la señal de PWM. MOVWF PR2 BCF STATUS,RP0 Ir al Banco 0. MOVLW B' ' MOVWF T2CON MOVLW B' ' MOVWF CCP1CON MOVLW B' ' MOVWF CCP2CON Cargamos el Valor Preescalar.(PWM INTER) Cargamos los 2 BIT menos significativos del nivel Alto de la Señal PWM y configuramos y lanzamos PWM. Salida de señal por RC2 Cargamos los 2 BIT menos significativos del nivel Alto de la Señal PWM y configuramos y lanzamos PWM. Salida de señal por RC1 MOVLW POS_CENTRAL MOVWF POCION MOVLW VEL_CERO_INI MOVWF VELOCIDAD MOVLW B' ' MOVWF PORTB Posicionamos el Servo en el centro. El coche esta parado. Activamos el Led de Parada. ******************************************** Principal ***************************************************** PRINCIPAL MOVF POCION,W MOVWF CCPR1L MOVF VELOCIDAD,W MOVWF CCPR2L CALL Retardo_20ms GOTO PRINCIPAL Nivel Alto de la señal PWM (Salida por RC2) (Rueda delantera). Nivel Alto de la señal PWM.(Salida por RC1) (Ruedas tractoras). Tiene que transcurrir un periodo antes de refrescar el nivel alto de la señal. **************************************** Rutina de Interrupción ***************************************** INTERRUPCION 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 RCREG,W Guardamos el registro RCREG. MOVWF RCREG_GUARDA XORLW LLAVE_VELOCIDAD Preguntamos si ha llegado la 33

34 BTFSS STATUS,Z GOTO IR_POCION CALL SUBR_VELOCIDAD GOTO RECUPERAR "LLAVE_VELOCIDAD". Ir a la subrutina de Velocidad IR_POCION MOVF RCREG_GUARDA,W Preguntamos si ha llegado la "LLAVE_POCION". XORLW LLAVE_POCION BTFSC STATUS,Z CALL SUBR_POCION Ir a la subrutina de Posición. RECUPERAR SWAPF STATUS_TEMP,W Recuperamos Registros. MOVWF STATUS SWAPF W_TEMP,F SWAPF W_TEMP,W RETFIE Retorno de Interrupción. ********************************* Subrutina SUBR_VELOCIDAD ************************************** SUBR_VELOCIDAD MOVLW LLAVE_VELOCIDAD Cargar la LLAVE_VELOCIDAD en el registro LLAVE_ENTRADA. MOVWF LLAVE_ENTRADA CALL RECEPCION_DATO_SERIE Ir a la subrutina de recepción de datos serie. COMPARACION MOVLW D'128' Si DATO_SERIE_VALIDO = 128 ir a la Subrutina de VELOCIDAD _ CERO. SUBWF DATO_SERIE_VALIDO,W BTFSC STATUS,Z GOTO VELOCIDAD_CERO MAYOR_128 MER_128 VELOCIDAD_CERO BTFSC STATUS,C GOTO MAYOR_128 GOTO MER_128 CALL MA_128 GOTO SAL_VELOCIDAD CALL ME_128 GOTO SAL_VELOCIDAD CALL VEL_CERO Si DATO_SERIE_VALIDO < 128 ir a la Subrutina de ME_128. Si DATO_SERIE_VALIDO > 128 ir a la Subrutina de MA_128. SAL_VELOCIDAD MOVF VELOCIDAD,W VELOCIDAD <- 128-VELOCIDAD (Complementar el código a 128) SUBLW D'128' Esto es debido a que el TRT del circuito se satura con cero. MOVWF VELOCIDAD RLF VELOCIDAD,F VELOCIDAD <- VELOCIDAD * 2 (Multiplicar por 2 la Velocidad) Esto es debido a que el registro CCPR2L va de 0 a 255. ************************************* Subrutina VEL_CERO ******************************************** VEL_CERO MOVLW D'1' Cargamos 1 en el registro VELOCIDAD. MOVWF VELOCIDAD BCF PORTC,3 BCF PORTC,4 BCF PORTC,5 Inversor de giro esta desactivado. 34

35 BSF PORTB,3 BSF PORTB,2 BCF PORTB,1 Led Adelante OFF. Led Atras OFF. Led Parada ON. ****************************************** Subrutina MA_128 ******************************************* MA_128 BCF DATO_SERIE_VALIDO,7 Transformamos los códigos del registro DATO_SERIE_VALIDO MOVF DATO_SERIE_VALIDO,W comprendidos entre 129 y 255 en códigos de 1 a 127 y los cargamos MOVWF VELOCIDAD en el registro VELOCIDAD. BSF PORTC,3 BCF PORTC,4 BSF PORTC,5 BCF PORTB,3 BSF PORTB,2 BSF PORTB,1 Inversor de giro hacia adelante. Led Adelante ON. Led Atras OFF. Led Parada OFF. ******************************************** Subrutina ME_128 ***************************************** ME_128 MOVF DATO_SERIE_VALIDO,W Transformamos los códigos del registro DATO_SERIE_VALIDO SUBLW D'128' comprendidos entre 0 y 127 en códigos de 128 a 1 MOVWF DATO_SERIE_VALIDO MOVF DATO_SERIE_VALIDO,W MOVWF VELOCIDAD VELOCIDAD < DATO_SERIE_VALIDO BCF PORTC,3 BSF PORTC,4 BSF PORTC,5 BSF PORTB,3 BCF PORTB,2 BSF PORTB,1 Inversor de giro hacia atrás. Led Adelante OFF. Led Atras ON. Led Parada OFF. ************************************* Subrutina SUBR_POCION ************************************* SUBR_POCION MOVLW LLAVE_POCION Cargar la LLAVE_POCION en el registro LLAVE_ENTRADA. MOVWF LLAVE_ENTRADA CALL RECEPCION_DATO_SERIE Ir a la subrutina de recepción de datos serie. MOVF DATO_SERIE_VALIDO,W Cargar el DATO_SERE_VALIDO en POCION. MOVWF POCION MOVLW POS_CENTRAL SUBWF POCION,W Preguntamos si estamos en la posición central Si POCION = #POS_CENTRAL ir a 35

36 BTFSC STATUS,Z GOTO CENTRO CENTRO. BTFSC STATUS,C Si POCION < #POS_CENTRAL ir a DERECHA. GOTO DERECHA Si POCION > #POS_CENTRAL ir a IZQUIERDA. GOTO IZQUIERDA DERECHA BSF PORTB,4 Led Izquierda OFF. BCF PORTB,0 Led Derecha ON. GOTO SALIR_POCION IZQUIERDA BCF PORTB,4 Led Izquierda ON. BSF PORTB,0 Led Derecha OFF. GOTO SALIR_POCION CENTRO BSF PORTB,4 Led Izquierda OFF. BSF PORTB,0 Led Derecha OFF. SALIR_POCION *********************************************** Librerías ************************************************** INCLUDE <R_M_S_RF.INC> INCLUDE <RETARDOS.INC> END Librería R_S_M_RF.INC Librería Receptor SERIE vía Radiofrecuencia para una Tarjeta Emisora SAW para Datos 433,92 MHz. ( CEBEK C-0504 ) La Llave de entrada aleatoria. Los datos se validan si llegan dos datos idénticos consecutivos. El dato recibido se carga en el registro DATO_SERIE_VALIDO Si se reciben dos datos consecutivos se valida el dato. Esta configurada la Interrupción en Recepción Serie. Es necesario cargar el Vector de interrupción ORG 0X04 GOTO INTERRUPCION Se pregunta primero en la rutina de interrupción serie que llave de entrada ha llegado y se carga la llave de entrada que corresponda. (Ejemplo Proyecto de Transmisión de datos) 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 36

37 **************************** Sección de Configuración ************************************************* CONFIGURACION_RECEP_SERIE BSF STATUS,RP0 Banco 1 BCF STATUS,RP1 BCF TXSTA,BRGH BSF TRISC,7 MOVLW D'39' MOVWF SPBRG Trabajar con velocidad baja de recepción. Cargar la Velocidad de Recepción de Datos. BCF TXSTA,SYNC MOVLW B' ' MOVWF INTCON MOVLW B' ' MOVWF PIE1 Habilitar Interrupción Serie Habilitar Interrupción Serie BCF STATUS,RP0 Banco 0 BCF STATUS,RP1 MOVLW B' ' MOVWF RCSTA Configurar y lanzar la Recepción Serie ****************************** 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. _DATO_SERIE1 BTFSS PIR1,RCIF Preguntamos si hemos recibido una nuevo DATO. GOTO _DATO_SERIE1 MOVF RCREG,W MOVWF DATO_SERIE1 Guardamos el Dato Primero BCF PIR1,RCIF Borramos Flag de la Recepción. _LLAVE_ENTRADA BTFSS PIR1,RCIF Preguntamos si ha llegado la Llave "LLAVE_ENTRADA". GOTO _LLAVE_ENTRADA MOVF RCREG,W XORWF LLAVE_ENTRADA,W BTFSS STATUS,Z GOTO SALIR_SERIE Preguntamos si ha llegado la Llave "LLAVE_ENTRADA". Si es correcta la Llave volvemos a preguntar. No es correcta la Llave volvemos al PP previa recuperación de registros. BCF PIR1,RCIF Borramos Flag de la Recepción. _DATO_SERIE2 BTFSS PIR1,RCIF Preguntamos si hemos recibido una nuevo DATO. 37

38 GOTO _DATO_SERIE2 MOVF RCREG,W MOVWF DATO_SERIE2 MOVF DATO_SERIE1,W SUBWF DATO_SERIE2,F BTFSS STATUS,Z GOTO SALIR_SERIE Guardamos el Dato Segundo Si ambos datos son Iguales validamos el dato serie recibido. VALIDAR_DATO_SERIE SALIR_SERIE MOVF DATO_SERIE1,W MOVWF DATO_SERIE_VALIDO BCF PIR1,RCIF El Dato se queda cargado en el Registro DATO_SERIE_VALIDO 38

Programa del PIC 16F877A

Programa del PIC 16F877A APÉNDICE B Programa del PIC 16F877A ;* "CONTROL AUTOMÁTICO DE VELOCIDAD VEHICULAR". * ;* EL PRESENTE PROGRAMA TIENE COMO FINALIDAD CONTROLAR LA VELOCIDAD DEL * ;* VEHÍCULO, DEPENDIENDO DE LA SEÑAL RECIBIDA

Más detalles

Practica de PIC 16F84

Practica de PIC 16F84 Practica de PIC 16F84 Los PIC son circuitos que pueden controlar dispositivos y diferentes sistemas, son como los PLC (controles lógico programable), además debo decir que es un circuito que tiene todas

Más detalles

Proyecto ROBOT-BALIZA

Proyecto ROBOT-BALIZA Proyecto ROBOT-BALIZA Departamento de Electricidad-Electrónica Alumno: Juan Manuel Romero Rodríguez Profesores: Pedro Alonso Sanz Alfonso García Gallego Juan Dongil García Instituto: I.E.S. Joan Miró Localidad:

Más detalles

Las Instrucciones. A continuación vamos a presentar el conjunto de instrucciones básico de los Microcontroladores Picmicro.

Las Instrucciones. A continuación vamos a presentar el conjunto de instrucciones básico de los Microcontroladores Picmicro. Las Instrucciones A continuación vamos a presentar el conjunto de instrucciones básico de los Microcontroladores Picmicro. En general la instrucciones de los microcontroladores pueden clasificarse como:

Más detalles

Microcontrolador PIC 16F84

Microcontrolador PIC 16F84 PROGRAMACIÓN PIC (II) Microcontrolador PIC 16F84 mail : enric.serra 0 - INTRODUCCIÓN. Este documento es una continuación al documento de programación del PIC 16f84. Este documento se puede copiar y utilizar

Más detalles

Registros SFR vistos hasta ahora: Microcontroladores PIC

Registros SFR vistos hasta ahora: Microcontroladores PIC Registros SFR vistos hasta ahora: Microcontroladores PIC Microcontroladores PIC: Timer Características del Timer TMR0: Cumple básicamente la función de contador de eventos (o divisor de frecuencia). El

Más detalles

Bucles: o Bucles infinitos o Bucles finitos o Bucles anidados Medir tiempos con MPLAB Ejemplos y ejercicios

Bucles: o Bucles infinitos o Bucles finitos o Bucles anidados Medir tiempos con MPLAB Ejemplos y ejercicios SISTEMAS ELECTRÓNICOS Y AUTOMÁTICOS PRACTICAS DE MICROCONTROLADORES PIC PRÁCTICA 3: Bucles Bucles: o Bucles infinitos o Bucles finitos o Bucles anidados Medir tiempos con MPLAB Ejemplos y ejercicios -

Más detalles

El único lenguaje que entienden los microcontroladores es el código máquina formado por ceros y unos del sistema binario.

El único lenguaje que entienden los microcontroladores es el código máquina formado por ceros y unos del sistema binario. 1 LENGUAJE ENSAMBLADOR El único lenguaje que entienden los microcontroladores es el código máquina formado por ceros y unos del sistema binario. El lenguaje ensamblador expresa las instrucciones de una

Más detalles

x u 05h - - RA5 RA4 RA3 RA2 RA1 RA0 Bit 7 6 5 4 3 2 1 0 Registro PORTA (05h)

x u 05h - - RA5 RA4 RA3 RA2 RA1 RA0 Bit 7 6 5 4 3 2 1 0 Registro PORTA (05h) 3..- Descriipciión Dettallllada dell PIIC16F877 Descripción Detallada del PIC16F87 3.1.- Los Puertos Paralelos de Entrada / Salida Los integrados PIC16F874 y PIC16F877 poseen 5 puertos de entrada / salida

Más detalles

1. Proponer un circuito que tenga el puerto b como salida conectando 8 leds, realizando un programa que me encienda los bits 0, 1, 3, 5, 7.

1. Proponer un circuito que tenga el puerto b como salida conectando 8 leds, realizando un programa que me encienda los bits 0, 1, 3, 5, 7. 1. Proponer un circuito que tenga el puerto b como salida conectando 8 leds, realizando un programa que me encienda los bits 0, 1, 3, 5, 7. a. Diagrama de flujo b. Circuito C1 4 MHZ C2 R2 10k 16 15 4 R1

Más detalles

;*****************************************PROGRAMA*******************************************

;*****************************************PROGRAMA******************************************* 176 ;*****************************************PROGRAMA******************************************* LIST p=16f628a ; Procesador utilizado INCLUDE "P16F628A.INC" ; Definición de los registros del Pic CONFIG

Más detalles

Capítulo VIII: PROGRAMACIÓN DEL PIC 16F876A

Capítulo VIII: PROGRAMACIÓN DEL PIC 16F876A Capítulo VIII: PROGRAMACIÓN DEL PIC 16F876A Proyecto Fin de Carrera 95 Antonio Andújar Caballero 8. PROGRAMACIÓN DEL PIC 16F876A. A la hora de realizar el programa de control para nuestro ecualizador,

Más detalles

Tema 6: Microcontroladores

Tema 6: Microcontroladores Tema 6: Microcontroladores Carlos Garre del Olmo 1 Microcontroladores Contenidos Introducción a los microcontroladores. Principales familias y sus características. La familia PIC16. Programación de microcontroladores.

Más detalles

Tema: Comunicación serie entre PIC y PC.

Tema: Comunicación serie entre PIC y PC. 1 Facultad: Ingeniería Escuela: Electrónica Asignatura: Microcontroladores Lugar de ejecución: Laboratorio de microprocesadores, Edif. 3 Electrónica. Tema: Comunicación serie entre PIC y PC. Objetivo general

Más detalles

Instrucciones para programar el PIC16F877

Instrucciones para programar el PIC16F877 Instrucciones para programar el PIC16F877 2 Estos microcontroladores responden a una serie de instrucciones o códigos que se deben grabar en su memoria de programa, en total son 35. A continuación se encuentra

Más detalles

Programación en PIC Los primeros pasos

Programación en PIC Los primeros pasos Capítulo V Programación en PIC Los primeros pasos Encender y apagar un LED Secuenciador con cuatro LED's Leer los pulsadores y encender el LED correspondiente Programa avanzado utilizando el entrenador

Más detalles

Jesús Alberto Díaz Carmona Ingeniería en Informática. Curso 2005/06. Diseño de Sistemas Basados en Microprocesador

Jesús Alberto Díaz Carmona Ingeniería en Informática. Curso 2005/06. Diseño de Sistemas Basados en Microprocesador Jesús Alberto Díaz Carmona Ingeniería en Informática. Curso 2005/06. Diseño de Sistemas Basados en Microprocesador Descripción El proyecto se trata de un sistema de cámaras de vigilancia en circuito cerrado,

Más detalles

[CURSO BÁSICO DE PIC TABLAS]

[CURSO BÁSICO DE PIC TABLAS] 2009 GRUPO ESTUDIANTIL INVENTRONICA Joel Oswaldo Campos Pérez [CURSO BÁSICO DE PIC ] En esta sección explicaremos que son las tablas, para que se usan y como se hacen. Se describe un ejercicio completo

Más detalles

Proyecto Final Robot. Docentes: Collovati Susana Lasarte Matias Correa Diego Integrante: Jesús Olguera

Proyecto Final Robot. Docentes: Collovati Susana Lasarte Matias Correa Diego Integrante: Jesús Olguera Proyecto Final Robot Docentes: Collovati Susana Lasarte Matias Correa Diego Integrante: Jesús Olguera 1 Introducción: En el siguiente informe se expone la construcción de un robot capaz de seguir líneas.

Más detalles

Control de avance al encendido

Control de avance al encendido Control de avance al encendido Diseño de microcontroladores Proyecto final Profesor: Alumno: Ing. José Juarez Kikot Pablo 1 INDICE _ Introducción 3 Funcionamiento básico de un motor 4 Encendido tradicional

Más detalles

1. ÍNDICE. Índice de contenido 2. INTRODUCCIÓN 3. CONTENIDO 1. OBJETIVOS DEL PROYECTO

1. ÍNDICE. Índice de contenido 2. INTRODUCCIÓN 3. CONTENIDO 1. OBJETIVOS DEL PROYECTO ULPGC, Universidad de Las Palmas de Gran Canarias. Facultad de Informática. Asignatura: Diseño de Sistemas Basados en Microprocesadores Profesor: Ricardo Pérez García. Regador Automático ACOSTA PADRÓN,

Más detalles

RECURSOS FUNDAMENTALES

RECURSOS FUNDAMENTALES RECURSOS FUNDAMENTALES Los recursos que se considerarán son : Temporizadores Puertos de E/S La Palabra de Configuración EEPROM de datos 1 TEMPORIZADORES Una labor habitual en los programas de control suele

Más detalles

Indice. Escrito por Administrator Martes, 02 de Septiembre de 2008 17:45 - Actualizado Domingo, 20 de Septiembre de 2009 07:45 1 / 15

Indice. Escrito por Administrator Martes, 02 de Septiembre de 2008 17:45 - Actualizado Domingo, 20 de Septiembre de 2009 07:45 1 / 15 1 / 15 El contenido del libro " MICROCONTROLADOR PIC16F84. Desarrollo de proyectos " de la Editorial Ra CAPÍTULOS: 1. MICROCONTROLADOR PIC16F84 2. PERIFÉRICOS BÁSICOS 3. GRABACIÓN DE MICROCONTROLADORES

Más detalles

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERÍA DIVISIÓN DE INGENIERÍA ELÉCTRICA DEPARTAMENTO DE INGENIERÍA EN COMPUTACIÓN

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERÍA DIVISIÓN DE INGENIERÍA ELÉCTRICA DEPARTAMENTO DE INGENIERÍA EN COMPUTACIÓN UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERÍA DIVISIÓN DE INGENIERÍA ELÉCTRICA DEPARTAMENTO DE INGENIERÍA EN COMPUTACIÓN PRACTICAS LABORATORIO DE MICROCOMPUTADORAS Basadas en el Microcontrolador

Más detalles

Proyectos con el PIC16F84

Proyectos con el PIC16F84 Capítulo 2 Proyectos con el PIC6F84 Conexión de LED y dipswitch Manejo de un display de siete segmentos Multiplexaje de teclados y displays Conexión de memorias seriales al PIC Manejo de un módulo LCD

Más detalles

PIC MICRO ESTUDIO Reloj en tiempo real RTCU2 Clave: 719 www.electronicaestudio.com

PIC MICRO ESTUDIO Reloj en tiempo real RTCU2 Clave: 719 www.electronicaestudio.com PIC MICRO ESTUDIO Reloj en tiempo real RTCU2 Clave: 719 www.electronicaestudio.com Guía de Operación Reloj en tiempo real Modulo: RTCU2iempo real Clave: 719 El modulo 719 Reloj en tiempo real- utiliza

Más detalles

Sistema de seguridad con emisión de mensaje SMS

Sistema de seguridad con emisión de mensaje SMS Sistema de seguridad con emisión de mensaje SMS INDICE 1.- INTRODUCCIÓN Pág. 1 2.- ELEMENTOS HARDWARE EMPLEADOS. Pág. 1 3.- COMUNICACIÓN SERIE (Comandos at)... Pág. 4 4.- EXPLICACIÓN DEL PROGRAMA... Pág.

Más detalles

CALCULADORA DE FUNCIONES BÁSICAS Oscar Gregorio Pérez Macías mummy007_02@hotmail.com

CALCULADORA DE FUNCIONES BÁSICAS Oscar Gregorio Pérez Macías mummy007_02@hotmail.com CALCULADORA DE FUNCIONES BÁSICAS Oscar Gregorio Pérez Macías mummy007_02@hotmail.com RESUMEN La función de la calculadora de funciones básicas, es realizar las operaciones tales como: suma, resta y multiplicación

Más detalles

Transmisión de datos por Radio Frecuencia

Transmisión de datos por Radio Frecuencia Transmisión de datos por Radio Frecuencia Diseño de Sistemas Basados en Microcontrolador Universidad de Las Palmas de Gran Canaria 2003-04 José Carlos Ruiz Luque Francisco García Rodríguez 1 CONTENIDOS

Más detalles

Tema: Utilización del módulo ADC en los microcontroladores PIC.

Tema: Utilización del módulo ADC en los microcontroladores PIC. 1 Facultad: Ingeniería Escuela: Electrónica Asignatura: Microcontroladores Lugar de ejecución: Laboratorio de microprocesadores, Edif. 3 Electrónica. Tema: Utilización del módulo ADC en los microcontroladores

Más detalles

17 Con el chorro de agua pequeño, la cubeta se llena en 10 minutos

17 Con el chorro de agua pequeño, la cubeta se llena en 10 minutos 17 Con el chorro de agua pequeño, la cubeta se llena en 10 minutos Cuál será el valor de precarga necesario para que este sistema nos indique que ha transcurrido un tiempo de 6 minutos? Seria depositar

Más detalles

LOS PIC16F88X: EEPROM de Usuario

LOS PIC16F88X: EEPROM de Usuario LOS PIC16F88X: EEPROM de Usuario IES Juan de la Cierva Aprendizaje de la Electrónica a través de la Robótica Domínguez Diagrama de bloques PIC16F884-PIC16F887 Interrupciones en de los PIC16F88X PIR2 INTCON

Más detalles

Microcontrolador PIC 16F84

Microcontrolador PIC 16F84 INTRODUCCIÓN A LA PROGRAMACIÓN Microcontrolador PIC 16F84 mail : enric.serra 0 - INTRODUCCIÓN. Este documento es una introducción a la programación del PIC 16f84. Este documento se puede copiar y utilizar

Más detalles

ocontro- lador PIC16F84

ocontro- lador PIC16F84 8 In Electronics Generación de señales PWM con el microcontr ocontro- lador PIC16F84 por Pietro Loglisci Se considera la forma de utilizar el microcontrolador Microchip PIC16F84 (uno de las más corrientes

Más detalles

Experiencia con Motores paso a paso

Experiencia con Motores paso a paso Diseño de Sistemas Basados en Microprocesadores Experiencia con Motores paso a paso Rubén Tauroni Gil ITIS 2008-2009 Universidad de Las Palmas de Gran Canaria Índice Objetivos...3 Parte Teórica...4 Desarrollo

Más detalles

:: Microcontroladores PIC - Tabla de Referencias. Conceptos Básicos

:: Microcontroladores PIC - Tabla de Referencias. Conceptos Básicos Tutorial de Microcontroladores PIC Http://perso.wanadoo.es/luis_ju San Salvador de Jujuy República Argentina :: Microcontroladores PIC - Tabla de Referencias Conceptos Básicos Qué son los microcontroladores...?

Más detalles

Tema 8. Saltos. (parte I)

Tema 8. Saltos. (parte I) Tema 8 Saltos (parte I) 1 Ya vimos el salto incondicional con goto. SALTOS CONDICIONALES El repertorio del PIC16F84 también dispone de instrucciones de salto condicional, que son aquellas que producen

Más detalles

Pines de entrada/salida (I/O) de propósito general. Mediante ellos, el micro PIC puede monitorizar y controlar otros dispositivos.

Pines de entrada/salida (I/O) de propósito general. Mediante ellos, el micro PIC puede monitorizar y controlar otros dispositivos. 1 Pines de entrada/salida (I/O) de propósito general Mediante ellos, el micro PIC puede monitorizar y controlar otros dispositivos. Para añadir flexibilidad al micro, muchos de sus pines de entrada/salida

Más detalles

Alarma con Interfaz DTMF de Línea Telefónica basado en PIC16F84

Alarma con Interfaz DTMF de Línea Telefónica basado en PIC16F84 Alarma con Interfaz DTMF de Línea Telefónica basado en PIC16F84 Propósito En toda aplicación donde normalmente se requiera el establecimiento de una conexión telefónica se hace necesario el diseño de una

Más detalles

UNIVERSIDAD DON BOSCO

UNIVERSIDAD DON BOSCO CICLO 02 2013 UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS COORDINACIÓN DE ELECTRÓNICA GUÍA DE LABORATORIO Nº 03 ASIGNATURA: Control Digital NOMBRE DE LA PRACTICA: Configuración de los Puertos

Más detalles

Práctica 1. Introducción al laboratorio y al ensamblador del PIC. 1. Objetivos. 2. Introducción. 2.1 Ensamblar y simular

Práctica 1. Introducción al laboratorio y al ensamblador del PIC. 1. Objetivos. 2. Introducción. 2.1 Ensamblar y simular Práctica Introducción al laboratorio y al ensamblador del PIC Práctica Introducción al laboratorio y al ensamblador del PIC. Objetivos El objetivo de esta primera sesión es que el alumno aprenda el manejo

Más detalles

Manejo LCD Gráfico DSM

Manejo LCD Gráfico DSM Manejo LCD Gráfico DSM Christopher Orihuela Sosa 10/09/07 Índice Introducción...1 Hardware...2 LCD...3 patillaje...4 tabla de instrucciones...5 Timings...6 Organización de la pantalla...8 Circuito completo...9

Más detalles

Tema 11. Introducción a los Microprocesadores y Microcontroladores

Tema 11. Introducción a los Microprocesadores y Microcontroladores Unidad 11 Introducción a los microprocesadores y microcontroladores Andres.Iborra@upct.es Juan.Suardiaz@upct.es Septiembre 2002 1 CONTENIDO Unidad 11. Introducción a los microprocesadores y microcontroladores.

Más detalles

Interrupciones Fuentes de Interrupciones para el PIC16F1787

Interrupciones Fuentes de Interrupciones para el PIC16F1787 Fuentes de para el PIC16F1787 Interrupción externa a través del pin RB0/INT Interrupción por cambio de nivel Interrupción por escritura en la EEPROM Interrupción por desbordamiento del TMR0 Interrupción

Más detalles

Energía fotovoltaica y su aplicación rural

Energía fotovoltaica y su aplicación rural Energía fotovoltaica y su aplicación rural Antonio Blanco Solsona, Francisco García Trobat Antonio.Blanco@uv.es gtrobat@telefonica.net INTRODUCCIÓN En las fincas rurales aisladas es cada vez más necesario

Más detalles

Temporizadores y contadores en tiempo real: El módulo Timer0 del PIC.

Temporizadores y contadores en tiempo real: El módulo Timer0 del PIC. Temporizadores y contadores en tiempo real: El módulo Timer0 del PIC. 1. Introducción... 1 2. Funcionamiento del Timer0... 1 2.1. Estructura general del Timer0...2 2.2. Entrada de reloj del modulo Timer0...2

Más detalles

Rutinas de programación

Rutinas de programación Capítulo VI Rutinas de programación La suma La resta La rotación La multiplicación La división Conversión binario a BCD Suma BCD Conexión de displays al PIC Curso Básico de Microcontroladores PIC 79 80

Más detalles

UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA UNIDAD ENSENADA MATERIA: CONTROL DIGITAL MAESTRO: ZAMARRIPA TOPETE JOSE DE JESUS PRACTICA 1 DAC

UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA UNIDAD ENSENADA MATERIA: CONTROL DIGITAL MAESTRO: ZAMARRIPA TOPETE JOSE DE JESUS PRACTICA 1 DAC UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA UNIDAD ENSENADA MATERIA: CONTROL DIGITAL MAESTRO: ZAMARRIPA TOPETE JOSE DE JESUS PRACTICA 1 DAC ALUMNO: LIERA GRIJALVA CÉSAR ALBERTO. GRUPO: 3 83 22 DE FEBRERO DE

Más detalles

Dentro del PIC16F877 se distinguen tres bloques de memoria.

Dentro del PIC16F877 se distinguen tres bloques de memoria. 1 ORGANIZACIÓN de la MEMORIA Dentro del PIC16F877 se distinguen tres bloques de memoria. Memoria de programa En sus 8192 posiciones (8Kx14bits) contiene el programa con las instrucciones que gobiernan

Más detalles

PRÁCTICA 1: Entorno de desarrollo MPLAB-IDE. Primeros ejemplos de programación.

PRÁCTICA 1: Entorno de desarrollo MPLAB-IDE. Primeros ejemplos de programación. SISTEMAS ELECTRÓNICOS Y AUTOMÁTICOS PRACTICAS DE MICROCONTROLADORES PIC PRÁCTICA 1: Entorno de desarrollo MPLAB-IDE. Primeros ejemplos de programación. Introducción a la programación en ensamblador Entorno

Más detalles

Indice General: :: Microcontroladores PIC - Parte IV - Trabajando con Display's y Tablas. Microcontroladores - Parte IV - Manejo de Tablas y Display's

Indice General: :: Microcontroladores PIC - Parte IV - Trabajando con Display's y Tablas. Microcontroladores - Parte IV - Manejo de Tablas y Display's Microcontroladores - Parte IV - Manejo de Tablas y Display's Tutorial bajado de... http://perso.wanadoo.es/luis_ju :: Microcontroladores PIC - Parte IV - Trabajando con Display's y Tablas. Indice General:

Más detalles

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS COORDINACIÓN DE ELECTRÓNICA GUÍA DE LABORATORIO Nº 02

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS COORDINACIÓN DE ELECTRÓNICA GUÍA DE LABORATORIO Nº 02 CICLO II-2013 UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS COORDINACIÓN DE ELECTRÓNICA GUÍA DE LABORATORIO Nº 02 Asignatura: Control Digital Nombre de la Practica: Instrucciones básicas de los

Más detalles

Seguidores de clase. Universidad Pontificia de Salamanca (Madrid) Microcontrolador PIC 16F877

Seguidores de clase. Universidad Pontificia de Salamanca (Madrid) Microcontrolador PIC 16F877 Seguidores de clase Universidad Pontificia de Salamanca (Madrid) Microcontrolador PIC 16F877 Microcontroladores Versión 1.5 04 oct. 07 pág. 1 INDICE Características generales del PIC 16F877...2 Diagrama

Más detalles

EDUPIC Módulo 16F628 Manual del Usuario

EDUPIC Módulo 16F628 Manual del Usuario 1 EDUPIC Módulo 16F628 Manual del Usuario Indice : 1. Introducción 2 2. Descripción general 2 3. Definición de los pines en el 16F628 4 4. Programador de la memoria FLASH 5 5. Oscilador 5 6. Arquitectura

Más detalles

PIC16F88. Características

PIC16F88. Características Osciladores PIC16F88. Características Osciladores a cristal: LP, XT y HS hasta 20Mhz Oscilador externo hasta 20Mhz Oscilador interno: 31Khz 8Mhz Periféricos Módulo PWM/CCP CCP (captura/comparación) ->

Más detalles

TEMA 6 MICROCONTROLADORES. PIC 16F84. 1. Introducción. 1.1. Referencia histórica.

TEMA 6 MICROCONTROLADORES. PIC 16F84. 1. Introducción. 1.1. Referencia histórica. T-6 Microcontroladores. PIC16F84. 1 TEMA 6 MICROCONTROLADORES. PIC 16F84. 1. Introducción. En las aplicaciones sencillas resultan preferibles las soluciones no programables que no requieren desarrollo

Más detalles

PRIMERA PRÁCTICA: PRIMERA TOMA DE CONTACTO CON MPLAB IDE MICROBOT RASTREADOR CONSTRUCCIÓN DE UN GRABADOR

PRIMERA PRÁCTICA: PRIMERA TOMA DE CONTACTO CON MPLAB IDE MICROBOT RASTREADOR CONSTRUCCIÓN DE UN GRABADOR SISTEMAS ELECTRÓNICOS DIGITALES PRIMERA PRÁCTICA: PRIMERA TOMA DE CONTACTO CON MPLAB IDE MICROBOT RASTREADOR CONSTRUCCIÓN DE UN GRABADOR Curso 2008-2009 Profesor: Jaime Gómez Gil E.T.S. Ing. Telecomunicación

Más detalles

SecurityBot. Entrega. Pontificia Universidad Católica de Chile. Departamento de Ciencias de la Computación IIC2342 Arquitectura de Computadores

SecurityBot. Entrega. Pontificia Universidad Católica de Chile. Departamento de Ciencias de la Computación IIC2342 Arquitectura de Computadores Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencias de la Computación IIC2342 Arquitectura de Computadores Entrega 2: SecurityBot Integrantes: - Cristián Alcoholado

Más detalles

PRÁCTICA 4 LOS BITS DE CONFIGURACIÓN DEL PIC16F628

PRÁCTICA 4 LOS BITS DE CONFIGURACIÓN DEL PIC16F628 Los Bits de Configuración del PIC16F628 44 PRÁCTICA 4 LOS BITS DE CONFIGURACIÓN DEL PIC16F628 OBJETIVOS Identificar cada uno de los bits de configuración que rigen el funcionamiento del PIC16F628. Verificar

Más detalles

PIC16C5X (GAMA BAJA) Solo en dispositivos de 28 pins. Encapsulado y patillaje:

PIC16C5X (GAMA BAJA) Solo en dispositivos de 28 pins. Encapsulado y patillaje: PIC6C5X (GAMA BAJA) Oscilador RESET SLEEP WatchDog Timer (WDT) Protección de código e IDs Periféricos: Timer/Contador de 8bits (T) con prescaler compartido para WDT o TMR Hasta 3 puertos I/O (RA,RB,RC)

Más detalles

SERVOS v1.0 INTRODUCCIÓN

SERVOS v1.0 INTRODUCCIÓN INTRODUCCIÓN El módulo Servos v1.0 está diseñado para controlar diez servomotores de forma independiente, gobernado por un microcontrolador PIC18F previamente programado, es capaz de recibir la información

Más detalles

Características generales en el PIC16F877

Características generales en el PIC16F877 Módulo de Conversión / TEUniversidad de Oviedo 1 Módulo de Conversión / Características generales en el PIC16F877 Ocho canales de conversión. Cinco pines de PORT y los tres de PORTE. Convierte la señal

Más detalles

Tema: Uso de pantalla matricial LCD y teclado matricial con eliminación de rebote.

Tema: Uso de pantalla matricial LCD y teclado matricial con eliminación de rebote. 1 Facultad: Ingeniería Escuela: Electrónica Asignatura: Microcontroladores Lugar de ejecución: Laboratorio de microprocesadores, Edif. 3 Electrónica. Tema: Uso de pantalla matricial LCD y teclado matricial

Más detalles

LCD. Las pantallas de cristal líquido o módulos LCD, como. Módulo. con interface serial

LCD. Las pantallas de cristal líquido o módulos LCD, como. Módulo. con interface serial Módulo Módulo LCD con interface serial LCD con interface serial EDISON DUQUE C. Este módulo permite mostrar, en una pantalla de cristal líquido, los mensajes que son enviados desde una computadora o un

Más detalles

ÍNDICE 1 INTRODUCCIÓN... 4 2 DESCRIPCIÓN DEL MÓDULO POR ETAPAS... 4

ÍNDICE 1 INTRODUCCIÓN... 4 2 DESCRIPCIÓN DEL MÓDULO POR ETAPAS... 4 RADIO OBSERVATORIO DE JICAMARCA INSTITUTO GEOFÍSICO DEL PERÚ MÓDULO DDS USB IVÁN MANAY SALAZAR RICARDO ROJAS QUISPE ÁREA DE ELECTRÓNICA E INSTRUMENTACIÓN MARZO 2010 1 RESUMEN El radar del Radio Observatorio

Más detalles

PIC16F882/883/884/886/887

PIC16F882/883/884/886/887 12.0 Transmisor Receptor Síncrono Asíncrono Universal Mejorado. EUSART. El módulo Transmisor Receptor Síncrono Asíncrono Mejorado, en adelante, EUSART, es un periférico de comunicación serie de entrada/salida.

Más detalles

PROYECTO: Velocista y coche teledirigido

PROYECTO: Velocista y coche teledirigido PROYECTO: Velocista y coche teledirigido Departamento de Electricidad y Electrónica Ciclo Formativo de Grado Superior: Desarrollo de Productos Electrónicos Alumno: Profesores: Instituto: Localidad: Pedro

Más detalles

IMPLEMENTACION DE UN PROTOTIPO EXPERIMENTAL A PEQUEÑA ESCALA QUE SE ENCARGUE DE AUTOMATIZAR EL PROCESO DE DEVOLUCIÓN DE UN LIBRO EN UNA BIBLIOTECA

IMPLEMENTACION DE UN PROTOTIPO EXPERIMENTAL A PEQUEÑA ESCALA QUE SE ENCARGUE DE AUTOMATIZAR EL PROCESO DE DEVOLUCIÓN DE UN LIBRO EN UNA BIBLIOTECA IMPLEMENTACION DE UN PROTOTIPO EXPERIMENTAL A PEQUEÑA ESCALA QUE SE ENCARGUE DE AUTOMATIZAR EL PROCESO DE DEVOLUCIÓN DE UN LIBRO EN UNA BIBLIOTECA Ernesto Daniel Restrepo C. Código: 1088242403 Lina Sorany

Más detalles

DISEÑO DE TELEALARMAS. COMISIÓN FEDERAL DE ELECTRICIDAD.

DISEÑO DE TELEALARMAS. COMISIÓN FEDERAL DE ELECTRICIDAD. Digitally signed by Universidad Tecnológica de Querétaro DN: CN = Universidad Tecnológica de Querétaro, C = MX, O = UTEQ Date: 2004.11.05 13:40:57-06'00' Universidad Tecnológica de Querétaro UNIVERSIDAD

Más detalles

Comprobador de Encendido Electrónico de un Motor de Explosión

Comprobador de Encendido Electrónico de un Motor de Explosión Comprobador de Encendido Electrónico de un Motor de Explosión Titulación: Ingeniería Técnica en Electrónica Industrial Alumno: Ignacio Doñate Domenech. Tutor: Dr. Roberto Giral. Fecha: Abril del 2011.

Más detalles

El objeto de este proyecto es el de construir un robot araña controlado por un PIC16F84A.

El objeto de este proyecto es el de construir un robot araña controlado por un PIC16F84A. .. Memoria Descriptiva... Objeto El objeto de este proyecto es el de construir un robot araña controlado por un PIC6F8A.... Antecedentes El diseño original no se llegó a realizar en circuito impreso, en

Más detalles

MCBtec Mas información en

MCBtec Mas información en MCBtec Mas información en www.mcbtec.com CONEXIÓN DEL PC A MICROCONTROLADOR POR RS232 INDICE: 1. Introducción. 2. Estructura física y características básicas de la RS232. 3. Conexión física y flujo de

Más detalles

Tema. Módulo Captura Comparación Modulación n de Achura de Pulsos. C. F. G.S. D.P.E. Módulo de Proyectos 1

Tema. Módulo Captura Comparación Modulación n de Achura de Pulsos. C. F. G.S. D.P.E. Módulo de Proyectos 1 Tema Módulo Captura Comparación Modulación n de Achura de Pulsos C. F. G.S. D.P.E. Módulo de Proyectos 1 Módulo de Captura/ aptura/comparación/ n/pwm Los microcontroladores de la familia 16F87X disponen

Más detalles

El Microcontrolador PIC16F877. Resumen de hoja de datos

El Microcontrolador PIC16F877. Resumen de hoja de datos El Microcontrolador PIC16F877 Resumen de hoja de datos 2 El PIC16F877 es un microcontrolador con memoria de programa tipo FLASH, lo que representa gran facilidad en el desarrollo de prototipos y en su

Más detalles

PIC 18F45XX CARACTERÍSTICAS GENERALES

PIC 18F45XX CARACTERÍSTICAS GENERALES PIC 18F45XX CARACTERÍSTICAS GENERALES 1. Características generales CPU con arquitectura Harvard (77 instrucciones) Todas las instrucciones constan de 1 sola palabra de 16 bits (2 bytes) excepto las de

Más detalles

Sistemas con Microprocesadores II

Sistemas con Microprocesadores II Sistemas con Microprocesadores II 1 El PIC16F628 PIC16F628 Memoria de datos EEPROM Memoria de programa FLASH Rebotes en los pulsadores Teclado matricial Display de 7 segmentos Teclado Matricial con display

Más detalles

CURSO BÁSICO DE PIC16F877

CURSO BÁSICO DE PIC16F877 CURSO BÁSICO DE PIC16F877 Raúl Peralta Meza Carlos Quiñones Quispe Generalidades Historia e importancia de los microcontroladores Metodología de estudio Microcontroladores Microchip 16F87X Arquitectura

Más detalles

Coche teledirigido. Autores: David López Luengo Nauzet Melián Batista Jose Luis Santana Acosta Aythami Santana Monzón

Coche teledirigido. Autores: David López Luengo Nauzet Melián Batista Jose Luis Santana Acosta Aythami Santana Monzón Coche teledirigido Autores: David López Luengo Nauzet Melián Batista Jose Luis Santana Acosta Aythami Santana Monzón Año académico: 2005/2006 Introducción La práctica que a continuación se presenta y expone,

Más detalles

DISEÑO Y CONSTRUCCIÓN DE UN BANCO DE PRUEBA PARA MOTORES DC DE BAJA POTENCIA

DISEÑO Y CONSTRUCCIÓN DE UN BANCO DE PRUEBA PARA MOTORES DC DE BAJA POTENCIA DISEÑO Y CONSTRUCCIÓN DE UN BANCO DE PRUEBA PARA MOTORES DC DE BAJA POTENCIA CARLOS IVAN MINOTTA PEÑALOZA OSCAR RODRÍGUEZ QUIMBAYO UNIVERSIDAD DE SAN BUENVENTURA FACULTAD DE INGENIERÍA INGENIERÍA MECATRÓNICA

Más detalles

proyecto: robot hexápodo (spidy.00)

proyecto: robot hexápodo (spidy.00) proyecto: robot hexápodo (spidy.00) Departamento de Electricidad-Electrónica Alumnos: Rodrigo García Martín Jesús Torrejón López Instituto: I.E.S. Joan Miró Localidad: San Sebastián de los Reyes Curso:

Más detalles

Práctica 5. Comunicación serie y entradas analógicas

Práctica 5. Comunicación serie y entradas analógicas Práctica 5 Comunicación serie y entradas analógicas Práctica 5 Comunicación serie y entradas analógicas. Objetivos El objetivo de esta sesión es que el alumno aprenda a programar la EUART interna del PIC,

Más detalles

Proyecto Rastreador + Coche Teledirigido

Proyecto Rastreador + Coche Teledirigido Proyecto Rastreador + Coche Teledirigido Profesor: Pedro Alonso Sanz Instituto: I.E.S. Joan Miró Localidad: San Sebastián de los Reyes Curso: Enero_009 Índice de contenido.- Explicación breve del Proyecto....-

Más detalles

Diseño Basado en Microcontroladores. Programa Detallado

Diseño Basado en Microcontroladores. Programa Detallado Diseño Basado en Microcontroladores. Programa Detallado Tema 5. Temporizadores e Interrupciones. (4 horas + 8 horas de laboratorio) 5.1.Temporizadores A y B. Modos de funcionamiento. 5.2. Temporizador

Más detalles

CONEXIÓN DE UNA PANTALLA LCD A UN MICROCONTROLADOR

CONEXIÓN DE UNA PANTALLA LCD A UN MICROCONTROLADOR CONEXIÓN DE UNA PANTALLA LCD A UN MICROCONTROLADOR ALUMNOS: José Hipólito Pascual José Luis Fernández Enrique Silvestre Mario Pozo José Ignacio Seguí 1 INDICE 1-Introducción 2- Qué es un LCD? 2.1-Los caracteres

Más detalles

INTRODUCCIÓN AL USO DEL MPLAB v 8.00

INTRODUCCIÓN AL USO DEL MPLAB v 8.00 INTRODUCCIÓN AL USO DEL MPLAB v 8.00 MPLAB es un ambiente de desarrollo integrado (IDE, por sus siglas en inglés) creado por Microchip Technology para dar soporte a la realización de proyectos basados

Más detalles

MONITOR REMOTO DE TEMPERATURA Y HUMEDAD

MONITOR REMOTO DE TEMPERATURA Y HUMEDAD UNIVERSIDAD POLITÉCNICA DE VALENCIA ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA PROYECTO FINAL DE CARRERA MONITOR REMOTO DE TEMPERATURA Y HUMEDAD CÓDIGO P.F.C.: DISCA-115 ALUMNO: JAVIER LLUESMA

Más detalles

Microcontroladores PIC - PIC16F84

Microcontroladores PIC - PIC16F84 Microcontroladores PIC - PIC16F84 1 Qué es un microcontrolador? Se denomina controlador al dispositivo que se emplea para el gobierno de uno o varios procesos. Por ejemplo, el controlador que regula el

Más detalles

COMO PROGRAMAR UN PIC En cuatro pasos

COMO PROGRAMAR UN PIC En cuatro pasos COMO PROGRAMAR UN PIC En cuatro pasos Un PICmicro es un circuito integrado programable. Microchip, su fabricante dice: Programable Integrated Circuit. Programable quiere decir que se puede planificar la

Más detalles

Características Técnicas del PIC 16F84

Características Técnicas del PIC 16F84 Características Técnicas del PIC 16F84 Repertorio de 35 Instrucciones. Todas las instrucciones se ejecutan en un solo ciclo excepto las de salto que necesitan dos. Versiones de 4 MHz (PIC16F84-04) y 10

Más detalles

Introducción a la programación en Lenguaje Assembler.

Introducción a la programación en Lenguaje Assembler. Introducción a la programación en Lenguaje Assembler. Que son las instrucciones El set de instrucciones de un microprocesador es el set de entradas binarias que producen acciones definidas durante un ciclo

Más detalles

2.2-1 Visión Interna PIC16F873/876. SBM

2.2-1 Visión Interna PIC16F873/876. SBM 2.2-1 Visión Interna PIC16F873/876. 1 2.2-2 Visión Interna PIC16F874/877. 2 2.2-3 Sistema de memoria. Tienen arquitectura Harvard, separa la memoria de datos y la memoria de programa, y se accede a ellas

Más detalles

MANUAL DE MICROCONTROLADORES PIC

MANUAL DE MICROCONTROLADORES PIC MANUAL DE MICROCONTROLADORES PIC Contenido: CAPITULO 1 Introducción a los microcontroladores ( Microcontroladores PIC de Microchip) CAPITULO 2 Programación en lenguaje ensamblador CAPITULO 3 Técnicas en

Más detalles

PIC16F882/883/884/886/ Funcionamiento de Timer1 6 EL MODULO TMR1 CON PUERTA DE CONTROL Selección de Fuente de reloj

PIC16F882/883/884/886/ Funcionamiento de Timer1 6 EL MODULO TMR1 CON PUERTA DE CONTROL Selección de Fuente de reloj 6.1. Funcionamiento de Timer1 6 EL MODULO TMR1 CON PUERTA DE CONTROL El módulo TMR1 es un temporizador/contador de 16 bits con las siguientes características: Temporizador/Contador de 16 bits (TMR1L:TMR1H)

Más detalles

INGENIERIA EN MICROCONTROLADORES. Maquinas de Estado. Introducción

INGENIERIA EN MICROCONTROLADORES. Maquinas de Estado. Introducción INGENIERIA EN MICROCONTROLADORES Maquinas de Estado Introducción MAQUINA DE ESTADOS www.i-micro.com Ingeniería en Microcontroladores Teléfono 044 55 11 29 55 05 E-mail: cursos@i-micro.com elp@i-micro.com

Más detalles

SISTEMAS ELECTRÓNICOS DIGITALES

SISTEMAS ELECTRÓNICOS DIGITALES SISTEMAS ELECTRÓNICOS DIGITALES PRÁCTICA 6 SISTEMA DE ENCRIPTACIÓN 1. Objetivos - Estudio del funcionamiento de memorias RAM y CAM. - Estudio de métodos de encriptación y compresión de datos. 2. Enunciado

Más detalles

Modificado por Luis Frino www.frino.com.ar Fuente www.micro1.com.ar

Modificado por Luis Frino www.frino.com.ar Fuente www.micro1.com.ar Modificado por Luis Frino www.frino.com.ar Fuente www.micro1.com.ar comprensión de los mismos (por ejemplo, sacar un resultado por una serie de LEDS, en lugar de guardarlos en un registro). Las excepciones

Más detalles

Microprocesadores, Tema 2:

Microprocesadores, Tema 2: Microprocesadores, Tema 2: Introducción al Microcontrolador PIC18 Guillermo Carpintero, guiller@ing.uc3m.es Universidad Carlos III de Madrid Diagrama de bloques PIC microcontrollers: An introduction to

Más detalles

Control del LCD. Fernando Remiro

Control del LCD. Fernando Remiro Control del LCD Fernando Remiro Control del LCD CARACTERÍSTICAS Consumo muy reducido, del orden de los 7,5 mw. Pantalla de caracteres ASCII, además de los caracteres japoneses Kanji, caracteres griegos

Más detalles

Programación de Microcontroladores PIC-Microchip

Programación de Microcontroladores PIC-Microchip 69 Instituto Politécnico Nacional Escuela Superior de Cómputo Departamento de Programación y Desarrollo de Sistemas Academia de Algoritmia y Programación Programación de Microcontroladores PIC-Microchip

Más detalles

Control de pantallas de cristal líquido mediante PIC

Control de pantallas de cristal líquido mediante PIC INGENIERÍA Control de pantallas de cristal líquido mediante PIC Ejemplo práctico de interconexión y control de una pantalla de cristal líquido (LCD) por un microcontrolador PIC CELESTINO BENÍTEZ VÁZQUEZ

Más detalles