Programación de Microcontroladores PIC en Lenguaje C
Enviado por MrJP y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 3,42 KB
Introducción a la Programación de Microcontroladores
El Código Ejecutable
El microcontrolador ejecuta un programa cargado en la memoria Flash, conocido como código ejecutable. Este código, compuesto por ceros y unos, se organiza en palabras de 12, 14 o 16 bits, según la arquitectura del microcontrolador. Cada palabra representa una instrucción del conjunto de instrucciones del microcontrolador. Para facilitar la lectura, el código binario se representa en formato hexadecimal (código Hex). Los microcontroladores PIC, con palabras de programa de 14 bits, suelen tener un conjunto de 35 instrucciones.
Del Ensamblador a los Lenguajes de Alto Nivel
Para simplificar la escritura de código ejecutable, se creó el lenguaje ensamblador (ASM). Con una sintaxis más legible, el ensamblador facilita la comprensión del código. Un programa ensamblador traduce las instrucciones del ensamblador a código máquina. Aunque el ensamblador ofrece un control preciso del hardware, presenta algunas desventajas:
- Complejidad: Una simple operación puede requerir muchas instrucciones en ensamblador.
- Especificidad: Cada microcontrolador tiene su propio conjunto de instrucciones.
- Conocimiento de Hardware: El programador debe conocer el hardware del microcontrolador.
Para superar estas limitaciones, se desarrollaron lenguajes de programación de alto nivel como Basic, Pascal y C. Estos lenguajes permiten expresar varias instrucciones de ensamblador en una sola sentencia, simplificando el desarrollo y la portabilidad del código. Aunque se pierde algo de control a bajo nivel, siempre es posible insertar secuencias en ensamblador cuando sea necesario.
Ventajas de los Lenguajes de Alto Nivel
Un ejemplo claro de la ventaja de los lenguajes de alto nivel se ve en la multiplicación. En ensamblador, la multiplicación se implementa mediante sumas sucesivas (a x b = a + a + a + ... + a). En C, simplemente se escribe a * b, y el compilador se encarga de la traducción a las instrucciones necesarias.
Lenguaje C para Microcontroladores
El lenguaje C combina las ventajas de un lenguaje de alto nivel con la capacidad de realizar operaciones a nivel de bits y bytes, cruciales para la programación de microcontroladores. Además, el estándar ANSI C garantiza la portabilidad del código entre diferentes plataformas. El compilador de C traduce el código fuente a lenguaje máquina.
Características del MikroC para PIC
MikroC, desarrollado por Mikroelektronika, es similar al C estándar pero con algunas diferencias. Estas diferencias buscan facilitar la programación de microcontroladores PIC, aunque algunas son consecuencia de las limitaciones del hardware.
Fases de Compilación
- Preprocesador: Procesa las directivas del preprocesador (que comienzan con '#') para modificar el código fuente (inclusión de archivos, definición de constantes, etc.).
- Analizador Sintáctico (Parser): Elimina la información innecesaria del código (comentarios, espacios en blanco).
- Compilador: Traduce el código a un archivo binario (.mcl).
- Enlazador (Linker): Combina la información de los archivos externos y las librerías en un solo archivo (.dbg).
- Generador .hex: Crea el archivo .hex que se carga en el microcontrolador.