tutorial: ¿porqué usar el lenguaje ANSI C?

   

 

 

¿Porqué usar el lenguaje ANSI C para programar microcontroladores?

El ANSI C se ha convertido en el lenguaje de alto nivel estándar para programar microcontroladores PICS. El C fue desarrollado en los Laboratorios Bell a principios de los años 70, por Dennis Ritchie y Brian Kernighan. Programar en C presenta numerosas ventajas si se le compara a la programación en lenguaje ensamblador.

El C permite definir variables enteras ó de punto flotante, cuenta con librerías para realizar todo tipo de operaciones aritméticas, el manejo de arreglos ó tablas de datos y de strings, el uso de declaraciones condicionales e iterativas (do/while, for, if/else, switch/case).

La estructura de las funciones, permite transferir parámetros ó argumentos de entrada y salida en forma directa al llamar a determinada función.

Existen varios compiladores para los microcontroladores PIC micro en su versión Lite y PRO que pueden ser bajados libremente del sitio de Microchip. Abajo se da más información al respecto.

 

EL ANSI C CONTIENE LIBRERÍAS ESTÁNDAR:

Mención especial merecen la funciones de librerías estándar incluídas en los compiladores C como por ejemplo "printf( )" y "gets( )", las cuales permiten enviar y recibir a través del puerto serial asíncrono RS232, datos de valores de variables con un cierto formato, así como strings de texto. Los microcontroladores con puerto serial 16F628, 16F88 , 16F877 y 18F2550, entre otros, permiten el manejo de estas funciones. Cualquier computadora PC equipada con puerto serial RS232 (Puerto COM- conector DB9) ó bien una interfaz USB-Serial y el software "Hyperterminal" (incluído en todos los sistemas Windows) puede comunicarse en forma inmediata con un sistema de microcontrol programado en ANSI C.

Vea aquí las funciones de librerías estándar incluídas en el compilador C18

EL ANSI C OFRECE LIBRERÍAS ESPECIALIZADAS PARA CADA CIRCUITO DEL MICROCONTROLADOR:

Adicionalmente, a través de librerías configurables para cada microcontrolador PIC en particular, se permite el uso de funciones especializadas para el manejo de puertos de entrada/salida, puertos síncronos (SPI), convertidores ADC, generadores de PWM, temporizadores, la lectura y escritura de datos en la EEPROM, los puertos para LCD y teclado y el sensor de temperatura.

Vea aquí las funciones de librerías especializadas disponibles para las familias 16/ y 18/ de Microchip

MANEJO FÁCIL DE BITS, REGISTROS Y PUERTOS:

El lenguaje cuenta con la posibilidad de hacer operaciones booleanas (AND, OR, XOR, NOT) entre constantes ó variables y facilita además el uso de operadores para el manejo de bits individuales dentro de cualquier variable, de tal forma que es posible realizar corrimientos de bits ó, en forma directa, controlar bits individuales en los registros, variables o puertos de entrada /salida ó hacer pruebas condicionales del contenido de un bit en particular. 

La programación de los registros especiales y puertos como TRISA, TRISB, PORTA, PORTB, OPTION, INTCON es inmediata. El manejo del cambio de bancos de registros en la memoria de datos, que constituye una tarea importante en la programación en lenguaje ensamblador, es realizada en C en forma completamente transparente al usuario.

EL ANSI C PERMITE EL MANEJO SENCILLO DE INTERRUPCIONES:

También se permite desde C, el manejo del sistema de interrupciones, así como intercalar rutinas escritas en lenguaje ensamblador con un programa escrito directamente en C.

COMPILADORES C GRATUITOS PARA LOS MICROCONTROLADORES DE MICROCHIP

Los principales compiladores ANSI C para PICS disponibles en el mercado, tienen compatibilidad para incorporarlos al software MPLAB IDE, desde donde es posible hacer la simulación paso por paso de cualquier programa escrito en C, y observar simultáneamente la actualización de puertos, registros internos y memoria de datos del microcontrolador.

Es importante considerar que cuando se trabaja con microcontroladores PIC con capacidad de memoria de código limitada como los de la familia /12 y algunos de la familia /16, como el 16F84 (1K) ó el 16F628 (2K), la programación en C en aplicaciones que requieran la utilización de variables de punto flotante, de funciones aritméticas sofisticadas ó el manejo de arreglos grandes, pueden consumir una parte considerable de la memoria de código y datos en estos microcontroladores.

En seguida se listan los compiladores ANSI C más populares para microcontroladores PIC. Existen varias versiones gratuitas de la propia empresa Microchip, de distribución libre (aunque con ciertas restricciones comparadas con su versión "PRO"). También existen opciones ofrecidas por distintas empresas y que son ideales para implementar aplicaciones sencillas. Asimismo, se ofrece una versión Free Open Source.

 

 

Compilador C18 para la familia /18 de Microchip

El C18-MPLAB-IDE ®, es un compilador de C para PIC18 MCU, y una poderosa herramienta compatible con ANSI para la familia de alto rendimiento 18/ de PICmicro ®. Puede realizar el download en forma gratuita directamente de la página de Microchip, eligiendo las opciones "Design support" y "Compilers".

Entre los microcontroladores de Microchip más utilizados en desarrollos con este compilador, se encuentran el PIC18F2550, y el 18F4550.

El compilador C18 es una aplicación de 32-bit de Windows ® totalmente integrada al ambiente MPLAB IDE de Microchip que permite la depuración de programas con el software MPLAB IDE y sus numerosas herramientas.

El usuario puede realizar a su medida proyectos incluyendo si así lo desea, scripts especiales para el linker del compilador, todo controlado a través de MPLAB IDE mediante una interfaz gráfica. El compilador C18 maneja variables de punto flotante, arreglos y estructuras de datos.

Más información sobre el compilador C18-MPLAB-IDE ®

Baje aquí el manual básico del usuario del compilador C18

Baje aquí el manual avanzado del usuario del compilador C18

Baje aquí el manual de librerías del compilador C18

Manual del estudiante del compilador C18

Baje aquí los archivos para generar una carpeta con una plantilla para su proyecto C18

Como crear un proyecto para el compilador C18 en MPLAB IDE v8.63

 

 

 

hitech.jpg (1548 bytes)

Compilador HiTech ansi-C para la familia /16 de Microchip

HI-TECH C PRO, compilador ANSI C de la compañía Hi-Tech, con variable de punto flotante con formatos de 24 ó 32 bits. La versión "LITE" de este compilador funciona para cualquiera de los microcontroladores de las familias PIC/10/12/16/18. Realice el download directamente desde la página web de HITECH, www.htsoft.com. Al hacer la instalación, elija la opción "LITE" del compilador, la cual es de libre distribución (freeware). Por favor siga este instructivo para integrarlo al MPLAB.

Entre los microcontroladores de Microchip más utilizados en desarrollos con este compilador, se encuentra el PIC16F88.

Si usted cuenta con la versión de MPLAB IDE v8.50, ó posterior, ésta  instala automáticamente la versión "LITE" de este compilador.

En una versión anterior, la misma empresa ofrece PICCLITE, compilador ANSI C desarrollado por Hi-Tech para los microcontroladores de la familia PIC de rango medio ("midrange"), entre los que se incluye el 16F84 (sin restricciones) y el 16F628 (restringido al uso de 1K de memoria FLASH). Puede integrarse al programa de desarrollo MPLAB IDE. Opera con variables enteras o de punto flotante de 24 y hasta 32 bits. Contamos con varios programas muestra disponibles para que usted pueda integrarlos en su aplicación. Por favor siga este instructivo para integrarlo al MPLAB.

Baje aquí el manual del usuario del compilador HiTech.pdf

Vea aquí numerosos ejemplos de programación utilizando el compilador HiTech

Como crear un proyecto HiTech para MPLAB IDE

Baje aquí los archivos para generar una carpeta con una plantilla y librerías para su proyecto HiTech

 

 

 

ccs.jpg (13855 bytes)

Compilador CCS C para la familia /16 de Microchip

La compañía CCS ( www.ccsinfo.com/content.php?page=compilers ) vende un compilador de punto flotante para las familias PIC 12/16/18 que puede integrarse al ambiente MPLAB IDE de Microchip. A pesar de que CCS no cumple en un 100% el estándar ANSI C, a través de directivas especiales permite el fácil manejo de interrupciones y otras funciones. El compilador contiene numerosas librerías ya integradas al compilador para manejar retrasos de precisión, los puertos de entrada/salida y el puerto serial asíncrono RS232 (para los microcontroladores que cuentan con UART como el 16F628 ó el 16F88) con funciones como getchar( ) y printf( ) . También incluye funciones para operar LCD, teclado, convertidores ADC y EEPROM con instrucciones directas. La nueva versión de MPLAB IDE v8.50 instala automáticamente un compilador CCS versión "Lite" para trabajar con PICS, pero solamente de la familia /12. El costo de la versión PRO completa integrada al MPLAB para PICS /12/16/18, es de aproximadamente 150 dls.

Entre los microcontroladores de Microchip más utilizados en desarrollos con este compilador, se encuentra el PIC16F88.

Manual de usuario del compilador CCS Inglés.pdf

Manual de usuario del compilador CCS Español.pdf

Vea aquí numerosos ejemplos de programación utilizando el compilador CCS

Baje aquí los archivos para generar una carpeta con una plantilla y librerías para su proyecto CCS

 

 

SDCC, compilador ansi-C  free open source

SDCC SMALL DEVICE C COMPILER, compilador ANSI C para los microcontroladores de 8 bits, de las familias Intel 8051 , Maxim 80DS390 , Zilog Z80,  Motorola 68HC08 y Microchip series PIC/16/18. El compilador SDCC es software "Free Open Source", y es compatible con las plataformas Linux, Mac OS X y Windows. El manual del compilador puede usted bajarlo aquí: sdccman.pdf. También contamos con un instructivo para incorporar SDCC a su computadora con plataforma Windows 98/XP así como varios programas de muestra que funcionan para el sistema EDUPIC 16F84. Por favor tome nota que, tratándose de software "Free Open Source", está permanentemente siendo modificado  y actualizado por muchos desarrolladores, razón por la cual pudiesen existir "bugs" o errores que aún no han sido detectados o debidamente corregidos.