Un llcrocontrolador PIC es una computadora de muy bajo costo, este chip
manufacturado por Microchip Technology, Inc. es un microcontrolador muy similar a los microprocesadores empleados en una PC, pero mucho ms pequeos y baratos, optimizado para trabajar en operaciones cotidianas. La diferencia entre un microprocesador y un microcontrolador bsicamente es que este ltimo integra en un solo chip los elementos perifricos que requiere el procesador para su operacin. Tiene una CPU (unidad de proceso central) que ejecuta los programas en el microcontrolador, dicho programa est guardado en la memoria de programa. Tiene una memoria de datos temporal, al igual que la PC tiene una memoria RAM, en donde se almacenan momentneamente las variables utilizadas por el programa. Y una no voltil que no borra los datos an se desconecte el microcontrolador, as como en la PC sucede con el disco duro. Tiene puertos de entrada y salida para interactuar con el entorno, al igual que la pe tiene dispositivos de entrada y salida, como son el teclado el ratn el monitor y la impresora. Los microcontroladores son computadoras con un propsito muy concreto, la PC es una computadora de propsito general que puede correr cientos de programas. Los microcontroladores se dedican a realizar un propsito en especfico, y ejecutan un programa para este propsito. Caractersticas de los Microcontroladores. Unidad de Procesamiento Central o CPU: Es el cerebro del sistema, lleva a cabo las funciones lgicas y aritmticas, siguiendo las instrucciones que lee de la memoria de programa, lee y escribe a la memoria de datos, tomando decisiones que controlan el estado de las entradas y salidas. Memoria de Programa: Es una memoria que almacena el cdigo del . programa el cual es ledo por el CPU. puede ser de varios tipos, solo lectura, . ROM CRead Only Memory, Borrable elctricamente y con capacidad de . AB de los microcontroladores . 9 reescribir EEPROM (Erasable Electric Programmable Read Only Memory), y Flash que puede reescribirse y bomrrse cientos de miles de veces. Memoria de Datos: Est formada por una memoria RAM (Random Access Memory), y en la mayora de los modelos por una memoria EEPROM (Erasable Electric Programmable Read Only Memory) que conserva las variables usadas por el programador, el CPU escribe y lee de esta memoria. Reloj: Es el corazn del sistema, genera una seal de frecuencias, su operacin puede ser entre 1 a 40 MHz, su funcin es sincronizar todas las funciones del microcontrolador PIC, generalmente es un cristal de cuarzo, resonador cermico. circuitos RC, o circuitos internos en el chip. Puertos de Entrada y Salida: Proporcionan la comunicacin del microcontrolador con el mundo exterior. Otras opciones: Perifricos construidos en el hardware del microcontrolador, la siguiente lista son ejemplos de estos: o Puertos de comunicacin Comunicacin serie UART (Universal Asynchronous ReceiverfTransmitter) 12C (Inter-Integrated Circuit) Interfaz de Perifricos Seriales SPI, (Serial Peripheral Interfaces), . Red de Controladores (CAN, Controller Area Network) USB (Universal Serial Bus) Conversores Anlogo-Digitales (A/D, analog-to-digital) para convertir un nivel de voltaje presente en un pin a un valor digital manipulable por el programa del microcontrolador. Modulacin de Ancho de Pulso PWM, (Pulse-Width Modulation) para generar ondas cuadradas de frecuencia fija con el ancho de pulso modificable. 10 ABe de los microcontroladores Microcontroladores PIC y Hardware. Descripcin del microcontrolador PIC. En la figura hemos tomado como ejemplo la distribucin que tiene el PICI6F628A RA2/AN2NREF . RA3/AN3/CMPl RA4fTOCKI/CMP2 RAS/MCLR/VPP . GND/VSS .RBO/INT RBlIRX/DT RB2/TX/CK RB3/CCPl 2 17 3 4 e{ ex) N -o 16 15 5 u. -o .... 14 6 O 13 7 ii: 12 8 11 9 10 RA1/ANl RAO/ANO RA7/0SC1/CLKIN RA6/0SC2/CLKOUT VDD RB7/T1QSI/PGD RB6/Tl0S0fTlCKI/PGC Rb5/ RB4/PGM La figura nos muestra la distribucin del microcontrolador PIC,vemos que se alimenta en el pin 14, el voltaje de trabajo tpico es de 5 V DC, niveles TTL, (consultar El ABC de la Electrnica), nunca deber exceder de 5.5 volts, o podra sufrir daos irreversible, la referencia de tierra est en el pin 5, en el pin 4 se encuentra el reset, este normalmente deber permanecer en un nivel de UNO lgico (5 volts), a travs de una resistencia de pull-up de 10,000 ohms, lOill en caso de querer reiniciar deber llevar este pin a CERO lgico (O volts); cuenta con 2 puertos que se programan como un registro tipo Byte, y puede programarse cada pin individualmente como un Bit para que trabaje como entrada o salida. As el puerto A, . tene 8 entradas o salidas, lo mismo que el puerto B ambos programables por Software El puerto A, que se identifica como RAO, RAI, RA2, RA3, RA4, RA5, RA6, Y RA7, . comparte otras funciones que se describen en la tabla que est a continuacin, una de esas funciones alternas se encuentran en RA6, y RA7 que puede configurarse como Oscilador externo cuando as lo requiera el proyecto. El puerto B identificado como RBO, RBI, RB2, RB3, RB4, RB5, RB6, Y RB7, comparte tambin otras funciones descritas en la tabla. ABe de los microcontroladores . 11 " d 1 D escnpcwn e ospmes de116F628A RAO/ANO RAO ST CMOS Puerto Bidireccional Entrada/Salida ANO AN Entrada del Comparador Analgico RAlIANl RAI ST CMOS Puerto Bidireccional Entrada/Salida ANl AN Entrada del Comparador Analgico RA2/AN2NREF RA2 ST CMOS Puerto Bidireccional Entrada/Salida AN2 AN Entrada del Comparador Analgico VREF AN Salida del VREF RA3/AN3/CMP I RA3 ST CMOS Puerto Bidireccional Entrada/Salida AN3 AN Entrada del ComQarador Analgico .CMPl CMOS Salida del Comparador 1 RA4/TOCKI/CMP2 RA4 ST OD Puerto Bidireccional Entrada/Salida f-TOCKI ST Entrada del Reloj del Temporizador O CMP2 OD Salida del Comparador 2 RA5IMCLRlVPP RA5 ST Puerto de en trada . MCLR ST Master clear. Cuando de configura como MCLR, este pin provoca el Reset en el dispositivo, es activo en bajo VPP Entrada del voltaje de programacin RA6/0SC2/CLKOf RA6 ST CMOS Puerto Bidireccional Entrada/Salida OSC2 XTAL Salida del Oscilador a Cristal se conecta al cristal o resonador cuando est en el modo de Crystal Oscillator. CLKOf CMOS En el modo de RC/INTOSC, el pn tiene en su salida CLKOf, el cual es 1/4 de la frecuencia del OSCl. RA7/0SC]/CLKIN RA7 ST CMOS Puerto Bidireccional Entrada/Salida OSCl XTAL Entrada del Oscilador a Cristal CLKIN ST Entrada del reloj externo. RBO TTL CMOS Puerto Bidireccional Entrada/Salida RBO/INT puede programarse por Software para configurarse como un pull-upinterno INT ST Interrupcin externa RBl TTL CMOS Puerto Bidireccional En trada/Salida RBlIRX/DT Puede programarse por Software para I configurarse como un pull-up interno RX . ST Pin de recepcin USART. DT -ST CMOS Entrada y salida de Datos sincrnicos RB2 TTL CMOS Puerto Bidireccional Entrada/Salida RB2!TXlCK Puede programarse por Software para configurarse como un pull-up interno TX CMOS Pin de transmisin USART CK ST CMOS Entrada y salida del reloj sincrnico RB3 TTL CMOS Puerto Bidireccional Entrada/Salida RB3/CCPl Puede programarse por Software para configurarse como un pull-up interno 12- ABe de los microcontroladores ,'_ .. '".-,'-"'" -. ..:.:....\'"-: CCPI ST CMOS Entrada y salida de Captura/Compara!PWM RB4 TTL CMOS Puerto Bidireccional Entrada/S alida. RB4IPGM Interrupcin por cambio en el pin, puede programarse por Software para conflEurarse como un pulI-up interno PGM ST Entrada de la programacin por bajo, cuando esta . , est opclOn habilitada la interrupcin y el pun-up se deshabilitan. RBS TTL CMOS Puerto Bidireccional Entrada/Salida. RBS Interrupcin por cambio en el pin, puede programarse por Software para conf!Burarse como un puIl-up interno RB6 TTL CMOS Puerto Bidireccional Entrada/Salida. Interrupcin por cambio en el pin, puede programarse por Software para RB6/Tl OSO/TI CKIIPGC configurarse comoun pulI-up interno TlOSO XTAL Salida del oscilador temporizador 1 TTCK.r- ST Entrada del reloj del 1:_ PGC ST Reloj de la programacin serie. en circuito, ICSpTM RB7 TTL CMOS Puerto Bidireccional Entrada/Salda. Interrupcin por cambio en el pin, puede programarse por Software para RB7/TIOSIIPGD configurarse como un pull-up interno TIOSI XTAL Entrada del oscilador del I temporizador 1 PGD ST CMOS Entrada y salida de datos ..:- de la programacin serie en circuito, ICSpTM VSS VSS Power Referencia de tierra lgica y de todos los pines de entrada/salida VDD Power Alimentacin, VDD Positivo lgico de los pines de entrada/salida. O =SalIda CMOS SalIda tIpO CMOS p:= Potencia, Power - =No usada . 1 =Entrada ST::: Entrada Schmitt Trigger TTL =Entrada TTL OD ::: Salida Open Drain AN ::: Analogo ABe de los microcontroladores . 13 Microcontroladores PIC y Software. Sin un programa, el microntrolador es solo una pieza de plstico y Silicio sin utilidad prctica, un microcontrolador es un dispositivo que requiere de un programa para realizar la funcin a la que se tenga destinado. Un programa es una secuencia de instrucciones le indican paso a paso al microcontrolador las acciones que deber efectuar, tomando en cuenta los factores y condiciones que se le presenten, en los primeros microcontroladores el programa se haca escribiendo el cdigo binario de cada instruccin, es decir cada instruccin se reconoca como un conjunto de unos y. ceros, posteriormente y hasta la fecha los microcontroladores se han programado con el lenguaje ensamblador del fabricante, este lenguaje consiste de una serie de instrucciones en forma de mnemnicos, con la desventaja de que cada fabricante tiene su propio conjunto de instrucciones. El ensamblador es ms fcil de entender que el cdigo binario, sin embargo conlleva un largo proceso de aprendizaje y prctica para lograr que los programas trabajen adecuadamente, por esta razn se han vuelto populares los lenguajes de programacin de alto nivel como el mikroBasic, PicBasc, C, Pascal etc. La empresa mikroElektronika desarroll el Compilador mikroBasicPro, o mBasicPro, en el cual se escriben los programas en un lenguaje de alto nivel como mikroBasic, este al compilar el ejecutable lo convierte de alto nivel a ensamblador y por ltimo lo transfiere en formato hexadecimal al microcontrolador. mikroBasic es un lenguaje fcil de aprender, el cual ayuda en facilitar el proceso de trabajar sobre un proyecto. El archivo de salida al compilar un programa est en la forma de comandos binarios, el archivo generado por el ensamblador de microcontrolador PIC es de formato Intel Hex, y lleva la extensin. hex. Este archivo.hex es el que se deposita por medio del dispositivo de programacin en la memoria de programa del microcontrolador PIC 14 ABe de los microcontroladores Clarificando Trminos Para evitar confusiones se hace nfasis en los siguientes trminos: Programador.- Es en primer trmino la persona que desarrolla un proyecto o quien escribe el programa fuente que emplea un microcontrolador. Tambin de este modo se le conoce al dispositivo que carga, o quema el cdigo hexadecimal al microcontrolador. Lenguaje de Programacin.- Se entiende como un juego de comandos e instrucciones de acuerdo a los cuales se escribe el programa. Programa.- Consiste de una secuencia de los comandos escritos en el lenguaje de programacin que el microcontrolador ejecuta uno a uno. Compilador BASIC.- Es un programa que corre en nuestra PC, y su funcin es convertir el cdigo escrito en mikroBasic a un archivo hexadecimal, es decir un lenguaje de Unos y Ceros que entiende nuestro microcontrolador. El proceso de creacin de un proyecto con mikroBasic se muestra en la figura 1.1, el proyecto creado se guarda con la extensin .mbppi. este archivo al compilar genera los diferentes archivos. El cdigo fuente, Oligen del programa escrito en mikroBasic se guarda con la extensin .mbas, como Programa.mbas, se genera un proyecto con la extensin .mbppi, que posteriormente se convierte en un cdigo en lenguaje ensamblador que se guarda como Programa.asm, y que se convierte en un archivo Programa.hex, este es el archivo que ser escrito en el microcontrolador, con un dispositivo llamado programador, cuya funcin es la de transferir los archivos HEX de la PC a la memoria de programa del microcontrolador. ABe de los microcontroladores . 15 Archivo de Proyecto .mbppi Programador PIC MCU Archiv de .me! . Biblioteca de Diagrama de flujo del Compilador mikroBasicPro Proyectos Figura 1.1.- Proyecto. Archivo Cdigo Fuente .mbas Modulos Compilador Archivo .asm 16- ABC de los microcontroladores