Es un circuito integrado programable que contiene todos los componentes de un computador. Se emplea para controlar el funcionamiento de una tarea determinada y, debido a su reducido tamaño, suele ir incorporado en el propio dispositivo al que gobierna. Esta última característica es la que le confiere la denominación de controlador integrado. El microcontrolador es un computador dedicado. En su memoria sólo reside un programa destinado a gobernar una aplicación determinada; sus líneas de entrada/salida soportan el conexionado de los sensores y actuadores del dispositivo a controlar, y todos los recursos complementarios disponibles tienen como única finalidad atender sus requerimientos. Una vez programado y configurado el microcontrolador solamente sirve para gobernar la tarea asignada. En la Figura 16 se presenta la forma en la que el microcontrolador se comunica con el exterior, esto es, a través de dispositivos periféricos de entrada y salida.
Figura 16.- Comunicación a través de periféricos con un microcontrolador
El microcontrolador en un sistema cerrado. Todas las partes del computador están contenidas en su interior y sólo salen al exterior las líneas que gobiernan los periféricos. Un microcontrolador posee todos los componentes de un computador, pero con unas características fijas que no pueden alterarse. Las partes principales de un microcontrolador son:
1. Procesador
2. Memoria no volátil para contener el programa
3. Memoria de lectura y escritura para guardar los datos 4. Líneas de EIS para los controladores de periféricos 5. Recursos auxiliares:
a) Circuito de reloj b) Temporizadores
c) Perro Guardián (watchdog) d) Conversores AD y DA
2.9.1 PIC16F628A
Microchip es la empresa que fabrica los microcontroladores PIC. En los últimos tiempos esta familia de microcontroladores ha revolucionado el mundo de las aplicaciones electrónicas. Tienen una facilidad de uso y programación tales, que junto a las inmensas posibilidades de E/S que brindan han conquistado a programadores y desarrolladores. Su principal ventaja (y según sus detractores la principal desventaja) es su carácter general, la flexibilidad que les permite ser empleados en casi cualquier aplicación. Otras familias de microcontroladores son más eficaces en aplicaciones específicas. En la figura 17 se muestra la estructura física del microcontrolador PIC16F628a en el encapsulado comercial tipo PDIP.
Figura 17.- Estructura física del Pic16f628a
La gama básica consiste en una serie de PIC de recursos limitados, pero con una de las mejores relaciones coste/prestaciones de la familia. Sus versiones están encapsuladas con 18 y 28 pines y pueden alimentarse a partir de una tensión de 2,5 V, lo que les hace ideales en las aplicaciones que funcionan con pilas teniendo en cuenta su bajo consumo (menos de 2 mA a 5 V y 4 MHz). Tienen un repertorio de 33 instrucciones cuyo formato consta de 12 bits. Al igual que todos los miembros de la familia PIC16/17, los componentes de la gama básica se caracterizan por poseer los siguientes recursos: Sistema “Power On Reset”, Perro guardián (Watchdog o WDT), Código de protección, etc. El PIC16f628a se trata de un microcontrolador CMOS de 8 bits con tecnología “nanoWattt” y que está basado en memoria Flash, así mismo es fabricado en encapsulado PDIP de 18 pines. En la Figura 18 se muestra una breve descripción de la distribución de pines en el microcontrolador. Características de periféricos:
16 pines de entrada/salida con dirección individual de control
Alta corriente tipo sink/source para manejar directamente LED’s.
Módulo comparador analógico
2 timers de 8 bits y uno de 16 bits
Figura 18.- Distribución del pines del Pic16f6281
2.9.2 LENGUAJES DE PROGRAMACIÓN PARA MICROCONTROLADORES
La utilización de los lenguajes más cercanos a la máquina (de bajo nivel) representan un considerable ahorro de código en la confección de los programas, lo que es muy importante dada la estricta limitación de la capacidad de la memoria de instrucciones. Los programas bien realizados en lenguaje Ensamblador optimizan el tamaño de la memoria que ocupan y su ejecución es muy rápida. Los lenguajes de alto nivel más empleados con microcontroladores son el C y el BASIC, de los que existen varias empresas que comercializan versiones de compiladores e intérpretes para diversas familias de microcontroladores. Realmente cuando cargamos (quemamos) un PIC con un programa no lo hacemos con ningún lenguaje, en realidad lo cargamos con OPCODES o “códigos de operación” que por lo general están en base hexadecimal, sin importar la gama de PIC baja, media ó alta.
2.9.3 COMPARATIVA DE LOS LENGUAJES DE PROGRAMACIÓN.
1. El lenguaje BASIC:
Ventajas:
Es un lenguaje muy simple y con instrucciones fácilmente legibles, incluso por no expertos.
Desventajas:
Tiene limitaciones cuando genera el archivo .hex, es decir no optimiza el tamaño de memoria de programa del PIC.
2. Lenguaje C:
Ventajas:
Puedes construir rutinas matemáticas fácilmente.
Puede ser de ayuda al combinarlo con Ensamblador sobre todo en la gama alta.
Es aceptado por la empresa fabricante Microchip, incluso ellos tienen algunos compiladores C.
Desventajas:
Los programas al compilarlos pueden resultar un poco extensos y pesados por ello debe tenerse en cuenta la capacidad de memoria de programa del PIC a utilizar.
3. Lenguaje Ensamblador:
Ventajas:
Es el lenguaje de bajo nivel natural de la línea PIC tanto para gama baja, media o alta. Con él se tiene un aprovechamiento eficiente de los recursos del PIC, además es excelente para manejar interrupciones simultáneas.
Cuando se genera el archivo .hex éste es completamente optimizado.
Desventajas:
Cuando no se tiene experiencia en programación puede tardarse el desarrollo de alguna rutina en comparación con los otros lenguajes
2.9.4 AMBIENTES DE DESARROLLO INTEGRADO PARA LA PROGRAMACIÓN DE MICROCONTROLADORES PIC.
Microcode studio
MicroCode Studio es un poderoso entorno de desarrollo integrado visual con la capacidad de depuración diseñado específicamente para los laboratorios de microEngineering LABS PICBASIC. En la figura 19 se muestra el entorno de desarrollo integrado MicroCode Studio en el ambiente de Microsoft Windows.
El explorador de código permite saltar automáticamente para incluir archivos, definiciones, constantes, variables, alias y los modificadores, símbolos y etiquetas, que son contenidos dentro del código fuente. Permite identificar y corregir errores en la compilación del código fuente.
Figura 19.- Entorno de programación MicroCode Studio WIN PIC 800
Se trata de un software para la grabación de microcontroladores de la familia PIC en el entorno de Windows. La figura 20 muestra el ambiente de desarrollo integrado bajo la plataforma de Microsoft Windows.