MICRO CONTROLADORES
Un micro controlador es un circuito integrado que en su interior contiene una unidad central de procesamiento (CPU), unidades de memoria (RAM y ROM), puertos de entrada y salida y periféricos. Estas partes están interconectadas dentro del micro controlador, y en conjunto forman lo que se le conoce como micro computadora. Se puede decir con toda propiedad que un micro controlador es una micro computadora completa encapsulada en un circuito integrado.
Toda micro computadora requiere de un programa para que realice una función específica. Este se almacena normalmente en la memoria ROM. No esta de mas mencionar que sin un programa, los micro controladores carecen de utilidad.
El propósito fundamental de los micro controladores es el de leer y ejecutar los programas que el usuario le escribe, es por esto que la programación es una actividad básica e indispensable cuando se diseñan circuitos y sistemas que los incluyan. El carácter programable de los micro controladores simplifican el diseño de circuitos electrónicos. Permiten modularidad y flexibilidad, ya que un mismo circuito se puede utilizar para que realice diferentes funciones con solo cambiar el programa del micro controlador.
¿Cómo se escriben los programas?
Los micro controladores están diseñados para interpretar y procesar datos e instrucciones en forma binaria. Patrones de 1’s y 0’s conforman el lenguaje maquina de los micro controladores, y es lo único que son capaces de entender. Estos 1’s y 0’s representan la unidad mínima de información, conocida como bit, ya que solo puede adoptar uno de dos valores posibles: 0 ó 1.
La representación de datos, instrucciones y señales en forma de bits resulta dificultosa y tediosa para aquellas personas que no estén familiarizadas con el sistema de numeración binario. Aún para los usuarios expertos no resulta tan evidente la interpretación de instrucciones en forma binaria o lenguaje máquina (el lenguaje maquina se le conoce también como lenguaje de bajo nivel debido a que las instrucciones no son propias del lenguaje humano). Es por esto que la programación comúnmente se lleva a cabo en un lenguaje de alto nivel, es decir, un lenguaje que utilice frases o palabras semejantes o propias del lenguaje humano. Las sentencias de los lenguajes de alto nivel facilitan enormemente la programación ya que son familiares a nuestra manera de comunicarnos. Lenguajes como el C o BASIC son comúnmente utilizados en la programación de micro controladores.
Otro tipo de lenguaje mas especializado es el lenguaje ensamblador. El lenguaje ensamblador es una lista con un limitado numero instrucciones a los cuales puede responder un micro controlador. Estas instrucciones son palabras o abreviaciones que representan las instrucciones en lenguaje maquina del micro controlador.
COMPILACIÓN
Todo programa escrito en un lenguaje de alto nivel debe ser transformado en código maquina. Los programas que escribimos los entendemos nosotros, no así el micro controlador.
Un software de computadora, llamado compilador, traduce y transforma nuestro programa en código maquina, que es lo que realmente puede leer e interpretar el micro controlador.
Una vez compilado el programa, es momento de transferir nuestro código maquina hacia la memoria interna del micro controlador, usualmente hacia la ROM. Para esta tarea se utiliza un programador físico, que es una pieza de hardware que tiene el propósito de escribir el programa en la memoria interna del micro.
¿Qué micro controlador elegir?
Existen varios fabricantes de micro controladores tales como Texas Instruments, Motorota, Atmel, Intel, Microchip, toshiba, Nacional, etc. Todos ellos ofrecen micro controladores con características más o menos similares, sin embargo, en terminos generales se puede decir que todos sirven para lo mismo: leer y ejecutar los programas del usuario.
Evidentemente algunos modelos tienen más capacidad que otros, en cuanto a memoria, velocidad, periféricos, etc.
En el diseño de un sistema con micro controlador se pueden elegir dispositivos de cualquiera de los fabricantes y satisfacer la necesidad del sistema en cuestión. Entonces, se preguntará estimado lector, ¿Qué fabricante he de elegir? Bueno, usted debe tomar en cuenta lo siguiente:
- Disponibilidad de los micro controladores en el mercado local y/o global. Algunos micro controladores son mas comúnmente encontrados en las casas de electrónica que otros. No es conveniente emprender un proyecto basado en cierto micro controlador que escasea en el mercado local y/o global ya que podría no satisfacer nuestra demanda y detener el proyecto.
- Precio. Hay gente y/o empresas que tienen los recursos para pagar lo que sea necesario cuando se trata de tecnología, sin embargo, la mayoría prefiere ahorrarse dinero, por lo que el precio resulta un punto a favor en la selección de un fabricante de micro controladores.
MICRO CONTROLADORES PIC
Los PIC, de Microchip, son una opción más dentro del vasto mercado de micro controladores. La popularidad de estos micros radica en su alta disponibilidad en el mercado y bajo precio.
El fabricante ha procurado una difusión exhaustiva de información relativa a sus productos, lo cual ha traído como consecuencia un proliferado uso de este tipo de micro controladores. Algunos de los profesionales y aficionados que los utilizan difunden sus desarrollos e inventos por Internet lo cual ha promovido su uso. Muchos consideran que los PIC son los mas fáciles de programar.
Por otro lado, se han desarrollado una serie de herramientas de bajo costo por parte de terceros (empresas, profesionales y aficionados), como son programadores, software, etc.
Compiladores de C y Basic están disponibles para programar a los PIC y de reciente aparición son los PICAXE, que es un sistema que permite al usuario implementar una función con micro controlador PIC sin siquiera conocer las instrucciones ni la arquitectura propia del micro controlador.
ELEMENTOS DE UN MICRO CONTROLADOR:
- Microprocesador.
- Periféricos (unidades de entrada/salida).
- Memoria.
ELEMENTOS INTERNOS DE UN MICRO CONTROLADOR:
Un procesador incluye al menos tres elementos, ALU, unidad de control y registros.
- ALU. También conocida como Unidad Aritmetica y Lógica. Está unidad esta compuesta por los circuitos electrónicos digitales del tipo combinatorios (compuertas, sumadores, multiplicadores), cuya principal función es el realizar operaciones. Estas operaciones están divididas en tres tipos:
- Lógicas. Como las operaciones básicas de las compuertas logicas, como la suma lógica (OR), multiplicación lógica (AND), diferencia lógica (XOR) y negación (NOT). Una operación lógica sólo puede tener como entradas y como salidas una respuesta lógica (0 o 1). Esto dependiendo de los niveles de voltajes de una señal digital
- Aritméticas. Las operaciones artiméticas son la suma, resta, multiplicación y división. Dependiendo del procesador (8, 16, 32 o 64 bits) será la rapidez con la que se pueden hacer dichas operaciones.
- Miscelaneas. En estas operaciones caen todas las demás operaciones como la transferencia de bits (<< >>).
- Unidad de control. La unidad de control es el conjunto de sistemas digitales secuenciales (aquellos que tienen memoria) que permiten distribuir la lógica de las señales.
- Registros. Los registros son las memorias principales de los procesadores, ya que funcionan a la misma velocidad que el procesador a diferencia de otras memorias un tanto más lentas (como la RAM, FLASH o la CACHE). Los registros están construidos por Flip-Flops. Los Flip-Flops son circuitos digitales secuenciales.
PERIFÉRICOS.
- Los periféricos son los circuitos digitales que nos permiten una interacción con el mundo «exterior» al microcontrolador. Su función es la de poder habilitar o deshabilitar las salidas digitales, leer sensores analógicos, comunicación con terminales digitales o sacar señales analógicas de una conversión digital.
- Puertos de entrada/salida pararelos. Los puertos están relacionados al tamaño del procesador, es decir que un puerto de 8 bits es porque el procesador es de 8 bits. Un procesador de 64 bits, tiene la capacidad de tener un puerto de 64 bits.
- Puertos seriales. Nos permiten transformar la información digital pararela (bytes de información) en tramas que se pueden transferir por una o varias líneas de comunicación. Existen por ejemplo: SPI, USB, CAN, etc.
- Periféricos analógicos. Como los que convierten señales analógicas a digitales (ADC) o señales digitales a analógicas (DAC) o comparadores analógicos.
COMO SE PROGRAMA A UN MICRO CONTROLADOR
Un microcontrolador se programa en lenguaje ensamblador. Entonces cada microcontrolador, tiene su propio conjunto de instrucciones. Las instrucciones se dividen de acuerdo de las operaciones que realizan en:
- Aritméticas.
- Lógicas.
- Transferencia de bits.
- Miscelaneas.

Ejemplo de un programa para un microcontrolador PIC, muestra la configuración de los registros para configurar el ADC.
Por lo general la curva de aprendizaje del lenguaje ensamblador es muy grande. Para el ciclo de desarrollo de las aplicaciones para sistemas embebidos, esto es mucho tiempo. Por lo tanto se utilizan lenguajes de un nivel superior como basic o C/C++. Además estos lenguajes se traducen al lenguaje ensamblador mediante compiladores. Por ejemplo, el compilador C18 permite traducir el código C al lenguaje maquina de los microcontroladores PIC18XXX.
Para poder programar a un microcontrolador se requieren tres cosas:
- Compilador. Traduce lenguaje como el C y C++ al lenguaje ensamblador.
- IDE. Integrated Development Environment. Entorno de Desarrollo Integrado. Es donde mediante el compilador, se crea y compilan los programas.
- Programador. Cada fabricante y arquitectura tiene su propio programador. Existen programadores llamados Universales que pueden programar distintas arquitecturas.
APLICACIONES DE LOS MICRO CONTROLADORES
Los micro controladores tienen un muchas aplicaciones en los sistemas digitales. Por ejemplo para el diseño de controladores de temperatura automáticos, maquinas dispensadoras, dispositivos biomédicos. En la industria del entretenimiento como juguetes. Incluso en aplicaciones aeroespaciales, sistemas de medición, sistemas de instrumentación.











