Home

programando microcontroladores pic en lenguaje c

image

Contents

1. siguientes INT_EXT Interrupci n externa INT_TRCC Desbordamiento del TIMERO RTCC INT_RB Cambio en los pines B4 B5 B6 B7 INT_AD Conversor A D HINT_TIMER 1 Desbordamiento del TIMER1 HINT_TIMER2 Desbordamiento del TIMER2 INT_CP1 Modo captura de datos por CCP1 INT_CCP2 Modo captura por CCP2 FUSE DELAY Clock Frecuencia Esta directiva indica al compilador la frecuencia del procesador en ciclos por segundo a la vez que habilita el uso de las funciones DELAY_MS y DELAY_USO Ejemplo FUSE DELAY CLOCK 4000000 Scientia et Technica A o XV No 43 Diciembre de 2009 Universidad Tecnol gica de Pereira 39 FUSE STANDARD _ o Puerto Esta directiva afecta al c digo que el compilador generar para las instrucciones de entrada y salida Este m todo r pido de hacer I O ocasiona que el compilador realice I O sin programar el registro de direcci n El puerto puede ser A G Ejemplo USE STANDARD _ o B FUSE RS232 BAUD baudios XMIT pin RCV pin Esta directiva le dice al compilador la velocidad en bits por segundo y los pines utilizados para la comunicaci n serie Esta directiva tiene efecto hasta que se encuentra otra directiva RS232 La directiva FUSE DELAY debe aparecer antes de utilizar FUSE RS232 Esta directiva habilita el uso de funciones tales como GETCH PUTCHAR y PRINTF 2 4 FUNCIONES DISCRETAS DE 1 0 Input pin Devuelve el estado 0 o I de la patilla indicada en pin El m
2. todo de acceso de I O depende de la ltima directiva USE _IO utilizada El valor de retorno es un entero corto Ejemplo if Input Pin_B0 1 Output Pin Value Esta funci n saca el bit dado en value 0 o 1 por la patilla de I O especificada en pin El modo de establecer la direcci n del registro est determinada por la ltima directiva HUSE _IO Ejemplo output_bit PIN_BO 0 Output _high pin Pone a uno el pin indicado El m todo de acceso de I O depende de la ltima directiva USE _IO utilizada Ejemplo Output_high PIN_CO0 Output_low pin Pone a cero el pin indicado El m todo de acceso de I O depende de la ltima directiva FUSE _IO Ejemplo Output_low PIN_DO Port_b_pullups flag Esta funci n activa desactiva las resistencias pullups en las entradas del puerto B Flag puede ser TRUE activa o FALSE desactiva Ejemplo Port_b_pullups false Set_ tris_puerto Valor Estas funciones permiten escribir directamente los registros tri estado para la configuraci n de los puertos configurar pines de entrada y salida Esto debe usarse con FAST_IO cuando se accede a los puertos de I O como si fueran memoria igual que cuando se utiliza una directiva B YTE Cada bit de value representa una patilla Un 1 indica que la patilla es de entrada y un 0 que es de salida Ejemplo Set_tris_A Oxff puerto A como entrada 2 5 FUNCIONES DE RETARDO Delay_cicles Valor Esta funci n realiz
3. en adelante 4 CONCLUSIONES e El compilador PCW es una herramienta poderosa que permite programar MICROCONTROLADORES PIC reduciendo el tiempo de programaci n y complejidad en los algoritmos e El PCW es un compilador muy completo ya que permite desde el manejo de una LCD hasta un protocolo de comunicaci n e En las pruebas realizadas se obtuvieron excelentes resultados al comparar el desempe o del microcontrolador programado en ensamblador y el programado en lenguaje C mediante el PCW 5 BIBLIOGRAF A 1 Jos Mar a Angulo Uscategui Dise o Practico de Aplicaciones de Microcontroladores PIC16F877 Mcgraw hill Segunda Edici n Espa a 2000 2 Jose Mar a Angulo Uscategui Dise o Pr ctico de Aplicaciones Primera Parte PIC16F84 Lenguaje Pbasic y Ensamblador Tercera Edici n Mcgraw hill Espa a 2003 3 Andr s C nova L pez Manual de Usuario del Compilador PCW de CCS Microchip Espa a 2000 4 www microchip com
4. Divisi n enteros div a b M dulo residuo Mod a b Tabla 2 1 Operadores aritm ticos 2 1 2 OPERADORES RELACIONES Los operadores relacionales son los siguientes Operador Descripci n lt Menor que gt Mayor que lt Menor o igual que gt Mayor o igual que Igual que Tabla 2 2 Operadores relaciones 38 Scientia et Technica A o XV No 43 Diciembre de 2009 Universidad Tecnol gica de Pereira 2 1 3 FORMATOS DE LAS VARIABLES C Caracter U Entero sin signo xX Entero en Hex en min scula X Entero en Hex en may scula D Entero sin signo Joe Real en formato exponencial Vf Real float Lx Entero largo en Hex en min scula LX Entero largo en Hex en may scula Lu Decimal largo sin signo Ld Decimal largo con signo Tabla 2 3 Formatos de las variables 2 1 4 SENTENCIAS B SICAS Y BUCLES El compilador PCW contiene los bucles y sentencias b sicas del lenguaje C que son principalmente las siguientes e Sentencia if expresi n Sentencia if Else Bucle while Bucle for Bucle do while 2 2 COMPILADOR PCB Y PCM PCH Esta herramienta contiene 3 compiladores que son PCB Genera c digo para microcontroladores de 12 bits en memoria de programa ejemplo la familia PIC12C54x PCM Genera c digo para microcontroladores de 14 bits en memoria de programa ejemplo la familia PIC16F87x PCH Genera c digo par
5. Scientia et Technica A o XV No 43 Diciembre de 2009 Universidad Tecnol gica de Pereira ISSN 0122 1701 37 PROGRAMANDO MICROCONTROLADORES PIC EN LENGUAJE C PIC Microcontrollers Programming in C language RESUMEN En este art culo se presenta el manejo del compilador PCW para microcontroladores PIC el cual permite programar f cilmente los microcontroladores en lenguaje C con lo cual se realiza m s r pidamente el desarrollo de programas que ser an bastante complejos de abordar en lenguaje ensamblador PALABRAS CLAVES Compilador lenguaje C microcontrolador ABSTRACT In this article management PCW compiler for PIC microcontrollers which can easily program the PIC microcontrollers in C language which is quickly developing programs that would be quite complex to make in assembly CARLOS ALBERTO HENAO Tecn logo El ctrico Estudiante de Ingenier a El ctrica caramelo Outp edu co EDISON DUQUE Ingeniero Electr nico M Sc Profesor Asociado Universidad Tecnol gica de Pereira eduque Outp edu co language KEYWORDS Compiler C language microcontroller 1 INTRODUCCI N Tradicionalmente muchos programadores de microcontroladores PIC utilizan el lenguaje ensamblador para realizar sus proyectos pero en la actualidad existen compiladores de lenguajes de alto nivel que permiten realizar las mismas tareas en un menor tiempo de desarrollo y con mucha mayor facilidad en la programaci n El PCW Compiler es una herramie
6. a microcontroladores de 16 bits en memoria de programa En la siguiente gr fica se muestra la funci n de los compiladores COMPILADOR DE PCB PCM PCH Fichero de Fichero para Fichero con Fichero de la depuraci n Errores c digo m quinas funciones y del programa de compilaci n para grabaci n llamadas rbol v ensamblador CODYCOF ERR HEX TRE Figura 2 1 Funci n de los compiladores 2 3 DIRECTIVAS EN EL CCS INCLUDE lt NOMBRE_DEL_FICHERO gt Esta directiva hace que el compilador incluya en el fichero fuente el texto que contiene el archivo indicado Ejemplo include lt 16F877 H gt FUSE Esta directiva define qu fusibles deben activarse en el dispositivo cuando se programe Esta directiva no afecta a la compilaci n sin embargo esta informaci n se pone en el archivo de salida Algunas de las opciones m s usadas son LP XT HS RC Tipo de oscilador WDT NOWDT Activaci n del Watch Dog Timer PROTECT NOPROTECT Protecci n del c digo PUT NOPUT Temporizador de arranque BROWNOUT NOBROWNOUT Detecci n de ca das de tensi n de la fuente de alimentaci n Ejemplo fuse HS WDT INT_XX Estas directivas especifican que la funci n que le sigue es una funci n de interrupci n Las funciones de interrupci n no pueden tener ning n par metro Como es natural no todas las directivas pueden usarse con todos los dispositivos Las directivas m s comunes son las
7. a retardos seg n el n mero de ciclos de instrucci n especificado en count los valores posibles van desde 1 a 255 Un ciclo de instrucci n es igual a cuatro periodos de reloj Ejemplo Delay_cicles 100 Cuenta 100 ciclos Delay_ms Valor Esta funci n realiza retardos del valor especificado en time Dicho valor de tiempo es en milisegundos y el rango es 0 65535 Para obtener retardos m s largos as como retardos variables es preciso hacer llamadas a una funci n separada v ase el ejemplo siguiente Delay_us Valor Esta funci n realiza retardos del valor especificado en time Dicho valor es en microsegundos y el rango va desde O a 65535 Es necesario utilizar la directiva use delay antes de la llamada a esta funci n para que el compilador sepa la frecuencia de reloj 2 6 FUNCIONES PARA LA MANIPULACI N DE BITS Bit_clear Var Bit Esta funci n simplemente borra pone a 0 el d gito especificado en bit 0 7 0 15 del byte o palabra aportado en var El bit menos significativo es el 0 Ejemplo int x 10 40 Scientia et Technica A o XV No 43 Diciembre de 2009 Universidad Tecnol gica de Pereira Bit_clear x 0 Bit_set Var bit Esta funci n pone a 1 el d gito especificado en bit 0 7 o 0 15 del byte o palabra aportado en var Rotate_left Direcci n bytes Esta funci n rota a la izquierda un bit de un array o de una estructura N tese que la rotaci n implica que el bit MSB pasa a ser e
8. icrocontrolador se a utilizar e Definir la frecuencia del oscilador e Configurar el protocolo RS 232 utilizando la directiva FUSE RS232 BAUD bits por segundo XMIT pin RCV pin e Mandar dato utilizando la printf Funtion string valor instrucci n En el ejemplo se utiliz un PIC16F877 que contiene en su arquitectura un USART m dulo de comunicaciones seriales para la comunicaci n con otros dispositivos En la figura 3 2 se muestran la conexiones Conector DB9 hembra Conectar al computador Figura 3 2 Comunicaci n serial RS 232 Se transmite por el Puerto C bit 6 y se recibe por el Puerto C pin 7 El programa es el siguiente if defined __PCM__ ttinclude lt 16f877 h gt use delay clock 4000000 use rs232 baud 2400 xmit PIN_C6 rev PIN_C7 use standard_io c void main do printf n MICROCONTROLADORES PIC while true CIR TA 42 Scientia et Technica A o XV No 43 Diciembre de 2009 Universidad Tecnol gica de Pereira Este peque o programa tiene como funci n enviar la cadena de caracteres MICROCONTROLADORES PIC hacia otro dispositivo por ejemplo otro microcontrolador un controlador l gico programable o una computadora con puerto serial Si lo que se quiere es enviar alg n valor num rico se deben utilizar los formatos de la tabla 2 3 Los ejemplos antes mencionados se pueden simular en el software Proteus versi n 6 0
9. l bit LSB Direcci n puede ser un identificador de un array o la direcci n a un byte o a una estructura por ejemplo amp dato bytes es el n mero de bytes implicados en la rotaci n Ejemplo X 0 50 Rotate_left X 1 O AO Rotate_right Direcci n bytes Esta funci n rota a la derecha un bit de un array o de una estructura N tese que esta rotaci n implica que el bit LSB pasa a ser el bit MSB address puede ser un identificador de un array o la direcci n a un byte o a una estructura por ejemplo amp dato bytes es el n mero de bytes implicados en la rotaci n 2 7 MANEJO DEL PROTOCOLO RS232 GETCO GETCHO GETCHARO Estas funciones esperan un car cter por la patilla RCV del dispositivo RS232 y retorna el caracter recibido Es preciso utilizar la directiva USE RS232 antes de la llamada a esta funci n para que el compilador pueda determinar la velocidad de transmisi n y la patilla utilizada La directiva F USE RS232 permanece efectiva hasta que se encuentre otra que anule la anterior Los procedimientos de I O serie exigen incluir FUSE DELAY para ayudar a sincronizar de forma correcta la velocidad de transmisi n Se debe tener en cuenta que es necesario adaptar los niveles de voltaje antes de conectar el PIC a un dispositivo RS 232 PUTO PUTCHARO Estas funciones env an un caracter a la patilla XMIT del dispositivo RS232 Es preciso utilizar la directiva FUSE RS232 antes de la llamada a esta funci n para q
10. la LCD borra toda la pantalla Ejemplo do lcd_init printf led_putc Microcontroladores delay_ms 1000 while true 3 0 EJEMPLOS DE PROGRAMACI N 3 1 EJEMPLO MODULO LCD En el presente ejemplo se muestra como escribir en una pantalla LCD utilizando el compilador PCW los pasos son los siguientes Scientia et Technica A o XV No 43 Diciembre de 2009 Universidad Tecnol gica de Pereira 41 e Definir que tipo de compilador PCB PCM PCH y que tipo de microcontrolador se va a utilizar e Definir la frecuencia del oscilador Definir los puertos por donde se van a conectar la LCD Inicializar la LCD Escribir en la LCD Esperar un tiempo Volver a empezar el ciclo Las conexiones se muestran en la figura 3 1 sy PUERTO B MODULO LCD PIC16F877A Figura 3 1 Diagrama de conexiones de modulo LCD El c digo es siguiente if defined __PCM__ HHnclude lt 16f877 h gt use delay clock 4000000 define use_portb_lcd TRUE include lt lcd c gt void main do led_init se inicializa la lcd led_gotoxy 5 1 ubica puntero printf lcd_putc MICROCHIP delay_ms 1000 while true 3 2 EJEMPLO MANEJO DEL PROTOCOLO RS232 En el siguiente ejemplo dan las pautas para programar el microcontrolador para que envie datos utilizando el protocolo RS 232 con el compilador PCW los pasos son los siguientes e Definir que tipo de compilador PCB PCM PCH y que tipo de m
11. nta til para programar microcontroladores PIC en la cual est n incluidas las librer as para manejar una pantalla LCD el protocolo de comunicaci n serial manejo de puertos etc En la actualidad el compilador PCW es una herramienta en desarrollo poco a poco se han ido adaptando nuevas librer as nuevos microcontroladores y nuevas ayudas 2 CARACTER STICAS DE COMPILADOR PCW e Traduce el c digo C del archivo fuente c a lenguaje de m quina para programar microcontroladores PIC HEX e Se incluye Drivers o librer as de c digo fuente para manejo de pantallas LCD teclados sensores protocolos de comunicaci n memorias conversi n anal gico a digital etc e Se integra al m dulo de desarrollo IDE del MPLAB software de desarrollo de Microchip y otros simuladores y editores para la depuraci n del c digo fuente e Funciones para el manejo de interrupciones Fecha de Recepci n 15 de Septiembre de 2009 Fecha de Aceptaci n 12 de Octubre de 2009 2 1 EL COMPILADOR PCW B sicamente el compilador PCW maneja la misma estructura de programaci n que el lenguaje de programaci n C las similitudes m s importantes son 2 1 1 OPERADORES ARITM TICOS Los operadores aritm ticos del PCW son praticamenete los mismos que su hom logo el lenguaje C y son los siguientes Operador Descripci n Ejemplo Suma enteros Suma a b Resta enteros Resta a b Producto enteros Produ a b
12. ue el compilador pueda determinar la velocidad de transmisi n y la patilla utilizada La directiva USE RS232 permanece efectiva hasta que se encuentre otra que anule la anterior Printf funtion string valor La funci n de impresi n formateada PRINTF saca una cadena de caracteres al est ndar serie RS 232 o a una funci n especificada Cuando se usan variables string debe ser una constante El car cter se pone dentro de string para indicar un valor variable seguido de uno o m s caracteres que dan formato al tipo de informaci n a representar 2 8 MANEJO DEL MODULO LCD INCLUDE lt LCD C gt Librer a que maneja el m dulo LCD se debe poner siempre que se vaya a utilizar una de estas pantallas o displays Por defecto se utiliza conexi n a 4 bitas entre el microcontrolador y la pantalla LCD Al puerto asignado para el manejo del m dulo LCD se le asigna por defecto la siguiente configuraci n de conexi n hacia la LCD Puert_X0 Al terminal E de la LCD Puerto_X1 Al terminal RW de la LCD Puerto_X2 Al terminal RS de la LCD Puerto_X4 X7 Al los terminales D4 D7 respectivamente Puerto_X3 No se conecta Donde X puede ser el puerto A B C D E G PRINTF LCD_PUTC STRING Est funci n permite escribir en la LCD es decir poner caracteres que se vayan a visualizar en el modulo LCD Ejemplo Printf lcd_putc Hola Mundo escribe Hola Mundo en la LCD LCD_INITO Esta funci n inicializa

Download Pdf Manuals

image

Related Search

Related Contents

Philips US2-PH1620 User's Manual  Sony VAIO VGN-NS230DP User's Manual  Español - Graphic Communications  Visualizar  GPLAB A Genetic Programming Toolbox for MATLAB  RCA STAV3860 Stereo Receiver User Manual  µLadder User Manual    WNAP-1110 - PLANET Technology Corporation.  User Manual  

Copyright © All rights reserved.
Failed to retrieve file