2.1 Lenguajes De Programación
El microcontrolador ejecuta el programa cargado en la memoria Flash. Esto se denomina el código ejecutable y está compuesto por una serie de ceros y unos, aparentemente sin significado. Dependiendo de la arquitectura del microcontrolador, el código binario está compuesto por palabras de 12, 14 o 16 bits de anchura. Cada palabra es interpretada por la CPU como una instrucción a ser ejecutada durante el funcionamiento del microcontrolador. Como es más fácil trabajar con el sistema de numeración hexadecimal, el código ejecutable se representa con frecuencia como una serie de los números hexadecimales denominada código Hex. A todas las instrucciones que el microcontrolador puede reconocer y ejecutar se le denominan colectivamente Juego de instrucciones. En los microcontroladores PIC con las palabras de programa de 14 bits de anchura, el conjunto de instrucciones tiene 35 instrucciones diferentes. Normalmente los programas se escriben en el lenguaje ensamblador cuando se requiere controlar completamente la ejecución de programa. Como el proceso de escribir un código ejecutable era considerablemente arduo, en consecuencia fue creado el primer lenguaje de programación denominado ensamblador (ASM). El proceso de programación se hizo un poco más complicado. Por otro lado, el proceso de escribir un programa dejó de ser una pesadilla. Las instrucciones en ensamblador consisten en las abreviaturas con significado. Un programa denominado ensamblador instalado en la PC compila las instrucciones del lenguaje ensamblador a código máquina (código binario). Este programa compila instrucción a instrucción sin optimización. La ventaja principal del lenguaje ensamblador es su simplicidad y el hecho de que a cada instrucción cle orresponde una localidad de memoria. Como permite controlar todos los procesos puestos en marcha dentro del microcontrolador, este lenguaje de programación todavía sigue siendo popular. Por otro lado, los programas se ejecutan siempre a alta velocidad y en la mayoría de casos no es necesario saber en detalle qué ocurre dentro del microcontrolador. A pesar de todos los lados buenos del lenguaje ensamblador, los programadores siempre han necesitado un lenguaje de programación similar al lenguaje utilizado en el habla cotidiana. Por último, los lenguajes de programación de alto nivel (Basic entre otros) fueron creados. La ventaja principal de estos lenguajes es la simplicidad de escribir un programa. Varias instrucciones en ensamblador se sustituyen por una sentencia en Basic. El programador ya no tiene que conocer el conjunto de instrucciones del microcontrolador utilizado. Ya no es posible conocer exactamente cómo se ejecuta cada sentencia, de todas formas ya no importa. Aunque siempre se puede insertar en el programa una secuencia escrita en ensamblador.
El proceso de escribir un programa en Basic. Al seleccionar la opción apropiada, el programa será compilado en el ensamblador y luego en el código hex que será cargado en el microcontrolador. Similar al lenguaje ensamblador, un programa especializado e instalado en la PC se encarga de compilar un programa a código máquina. A diferencia del ensamblador, los compiladores para los lenguajes de programación de alto nivel crean un código ejecutable que no es siempre tan corto como el código escrito en ensamblador.
La figura anterior describe el proceso de la compilación de programa escrito en Basic en código hex. Ejemplo de un programa simple escrito en Basic:
VENTAJAS DE LOS LENGUAJES DE PROGRAMACIÓN DE ALTO NIVEL
Si alguna vez ha escrito un programa para un microcontrolador PIC en lenguaje ensamblador, probablemente sepa que la arquitectura RISC carece de algunas instrucciones. Por ejemplo, no hay instrucción apropiada para multiplicar dos números. Por supuesto, este problema se puede resolver gracias a la aritmética que permite realizar las operaciones complejas al descomponerlas en un gran número de operaciones más simples. En este caso, la multiplicación se puede sustituir con facilidad por adición sucesiva (a x b = a + a + a + ... + a). Ya estamos en el comienzo de una historia muy larga... No hay que preocuparse al utilizar uno de estos lenguajes de programación de alto nivel como es Basic, porque el compilador encontrará automáticamente la solución a éste problema y otros similares. Para multiplicar los números a y b, basta con escribir a*b.