Microcontroladores PIC Objetivos: El personal que recibe esta instrucción podrá utilizar y buscar soluciones en diseños electrónicos mediante microcontroladores PIC. Requisitos: - Conocimiento en electrónica. Utilización a nivel usuario de computador. Materiales: - Microcontrolador PIC16F84A Programador PROPIC2 Manual de programación PICBasic pro Software PICBasic pro Compiler versión 2.43 Software MicroCode Studio Plus Software IC-Prog versión 1.05 Desarrollado por: Rodrigo Gómez Bustamante Título: Técnico Electrónico mención Industrial (INACAP Antofagasta) Cargo: Técnico Instrumentista nivel III, Compañía Minera Cerro Colorado Ltda. Teléfono: Correo: Internet: 9-8540109 [email protected] www.rodrigog.com Concepto Controlador es un dispositivo que se emplea para el gobierno de uno o varios procesos. Aunque el concepto ha permanecido invariable a través de los tiempos, su implementación física ha variado frecuentemente. Hace tres décadas, los controladores se construían exclusivamente con componentes de lógica discreta; posteriormente se emplearon los microprocesadores, que se rodean con chips de memoria RAM , ROM y E/S sobre una tarjeta de circuito impreso. En la década de los 70’ los fabricantes de circuitos intergrados iniciaron la difución de un nuevo circuito de control, medición he instrumentación al que llamaron microcomputador en un solo chips, o de manera más exácta microcontrolador. Un microcontrolador es un circuito integrado programable que contiene todos los componentes de un computador, aunque de limitadas prestaciones. 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 inscructado”. El microcontrolador es un dispositivo dedicado. En su memoria sólo deside un programa destinado a controlar una aplicación determinada; sus líneas de entrada/salida soportan el conexionado de sensores y actuadores del dispositivo a gobernar y todos los recursos complementarios disponibles tienen como única finalidad atender sus requerimientos. Una vez programado y configurado el microcontrolador solamente sirve para ejecutar la tarea asignada. Historia El microcontrolador es uno de los logros más sobresalientes del siglo XX, Hace un cuarto de siglo tal afirmación habría parecido absurda. Pero cada año, el microcontrolador se acerca más al centro de nuestras vidas, forjándose un sitio en el núcleo de una máquina tras otra, su presencia ha comenzado a cambiar la forma en que percibimos el mundo e incluso a nosotros mismos. Cada vez se hace más difícil pasar por alto al microcontrolador como otro simple producto en una larga línea de innovaciones tecnológicas. Ninguna otra invención en la historia se ha diseminado tan aprisa por todo el mundo o ha tocado tan profundamente tantos aspectos de la vida humana. Hoy existen 15.000 millones de microchips de alguna clase en uso. De cara a esa realidad, ¿Quién puede dudar que el microcontrolador no sólo está transformando los productos que usamos, sino también nuestra forma de vivir y, por último, la forma en que percibimos de realidad? El microcontrolador ha eclipsado hasta la revolución industrial. Evolucionando a mayor velocidad que ningún otro invento en la historia, la capacidad del microcontrolador ha aumentado 10.000 veces en los últimos 25 años. El mayor atributo del microcontrolador es que puede integar inteligencia a casi cualquier artefacto. Se le puede programar para adaptarse a su entorno, responder a condiciones cambiantes y volverse más eficiente y que responda a las necesidades únicas de sus usuarios. El desarrollo del microcontrolador es un ejemplo palpable del “mejoramiento continuo”. Un microcontrolador contiene toda la estructura de un sencillo pero completo computador contenidos en el corazón de un circuito integrado. Los resultados prácticos que pueden lograrse a partir de estos elementos son sorprendentes. De bajo costo, bajo consumo de energía, fácil implementación, es una pieza clave para el desarrollo de la robótica. La única limitación que tienen las aplicaciones de los microcontroladores actuales está en la imaginación de los desarrolladores, los campos más destacados de los microcontroladores son: - Automatización industrial Medidas y control de procesos Enseñanza e investigación Perisféricos para computadores Electrodomésticos Aparatos portátiles o de bolsillo Juguetes Instrumentación Electromedicina Robótica Domótica Sistemas de seguridad y alarmas Aplicaciones Para explicar el funcionamiento de un microcontrolador nos basaremos en el PIC16F84A, fabricado por la Compañía Microchip (www.microchip.com). Es uno de los chips más comunes que se incluye en casi la totalidad de los libros de uso práctico de los microcontroladores PIC. El microcontrolador contiene todo lo necesario de un computador: Memoria, EEPROM, Temporizadores, Osciladores, puertos de entrada y salida, bus de datos, registros, pilas, etc. El diagrama de bloques parece complejo, en la práctica es bastante sencillo, observando la descripción de pines se aclara bastante. Puerto A RA0 bit RA1 bit RA2 bit RA3 bit (E/S) 0 1 2 3 Puerto B RB0 bit RB1 bit RB2 bit RB3 bit RB4 bit RB5 bit RB6 bit RB7 bit (E/S) 0 1 2 3 4 5 6 7 Alimentación VDD +5 Volts DSS GND Reloj CLKIN / CLKOUT Cristal de cuarzo, ó malla RC. Para funcionar el PIC sólo requiere +5 Volts de alimentación y un cristal con la frecuencia adecuada, para el caso del PIC 16F84 acepta 4 y 20 MHz. El ahorro de componentes es tal que hasta la conexión de diodos LED y displays 7 segmentos se hace directa, no requiere resistencias para limitar la corriente, el PIC lo tiene interno. Incluso hay versiones más pequeñas de 8 pines que ni siquiera requieren un oscilador, viene includo en el mismo chips. Un ejemplo de la aplicación de un PIC 16F84. Esta aplicación puede tener muchas aplicaciones, todo depende de la programación que llevará el microcontrolador. Un circuito con un solo chip comandando 4 displays reduce bastante el costo de fabricación, además cuenta con la gran ventaja de ser una aplicación “actualizable”, en la que se pueden hacer mejoras al programa cuantas veces quieras sin tener que cambiar la circuitería como ocurría con los circuitos digitales de puertas lógicas. Los pulsos de reloj (pines 15 y 16) son muy importantes si se van a realizar aplicaciones con medidas de tiempo precisas, como medición o generaciones de pulsos del órden de los microsegundos. Si los tiempos no son tan importantes se puede optar por una solución más económica, malla RC (Resistencia y condensador). La comunicación serial es otra característica de los PIC, mediante una interface transistorizada es posible conectar nuestra aplicación al puerto serial de un computador. Puede ser muy util para desarrollar un software de control, registro de datos, etc. Una pantalla de LCD fácilmente se conecta directa a un microcontrolador, tal como en la comunicación serial el juego de comandos de programación tiene incluído el manejo de una pantalla LCD. Este ejemplo es un termostato electrónico, una el PIC16F870 que tiene la característica de configurar 4 entradas análogas (0 a 5 Volts), internamente el conversor A/D trabaja con resolución de 8 bit (255 pasos), unos 0,019 Volts si se toma como escala los 5 Volts. La conexión del LCD es directa al PIC. Estos ejemplos bastan para imaginar la potenciabilidad de los PIC. Programación El lenguaje de programación de un microcontrolador es el Asembler. Un lenguaje de bajo nivel bastante complejo que sólo los desarrolladores más experimentados logran desarrollar aplicaciones. Pero gracias a Micro Engineering Lab www.picbasic.com quienes desarrollaron un lenguaje de última generación llamado PICBASIC que facilita 100% la programación de aplicaciones, éste lenguaje es similar al legendario lenguaje de programación de computadores BASIC o QBASIC. El juego de instrucciones incluye el IF … THEN … ENDIF ó el GOSUB para subrutinas, operaciones matemáticas, comandos excusivos como SERIN y SEROUT para comunicación serial, DEFINE LCD para pantallas LCD, etc. El software contiene un compilador para transformar el programa Picbasic a Asembler y un archivo binario *.HEX. Pero antes de programar se requiere software editor similar a un Word del Office, para escribir el programa y que pueda corregir errores de sintaxis o de programación. Este software se llama MicroCode Studio Plus, desarrollado por Mecanique http://www.mecanique.co.uk/ ¿Cómo se escribiría un programa en Picbasic? Si tenemos un PIC16F84 y necesitamos que por el pin 6 (RB0) encienda un diodo LED en forma intermitente, el tiempo de encedido del LED de 0,5 seg y de apagado 1 seg. El programa puede ser escrito de la siguiente forma: '*************************************************************************** 'Programa: MORSE.BAS 'Descripción : Programa enciende y apaga LED conectado a RB0. 'Programado por: Rodrigo Gómez, 5 Noviembre 2005. DEFINE OSC 4 led VAR portb.0 OUTPUT led loop: HIGH led PAUSE 500 LOW led PAUSE 1000 'define la velocidad del cristal... 4MHz 'Crea a "led" como alias del bit 0 del puerto B. 'Configura a "led" como un pin de salida. 'Etiqueta “loop” 'enciende el LED 'pausa de 0,5 seg expresada en mS 'enciende el LED 'pausa de 1 seg expresada en mS GOTO loop 'vuelve a repetir los pasos desde la etiqueta "loop" END 'En realidad en este programa no es necesario, pero END deja al PIC en modo ahorro de energía. '*************************************************************************** Es muy importante que el programa quede estructurado y lo más documentado posible, esta buena práctica ayudará a desarrollar programas ordenados y fáciles de corregir ó modificar. Compilación del programa El programa escrito en Picbasic debe ser compilado a un archivo binario. El software MicroCode transforma cada línea de programa mediante el compilador Picbasic pro en un archivo Asembler *.ASM y otro binario *.HEX El compilado se realiza con la tecla F9 ó mediante el ícono señalado en la figura. El archivo resultante que se utilizará para transferirlo al chip es el *.HEX, señalado en la figura Grabación del PIC El software utilizado para grabar el circuito integrado es el IC-Prog www.icprog.com Primero se debe configurar el programador de chips, utilizaremos PROPIC2 www.icprog.com Este programador universal tiene varios zócalos para programar una amplia gama de microcontroladores, memorias y EPROM. Es conectado en el puerto paralelo LPT1 del computador. La configuración del programador PROPIC2 en el software IC-PROG es la siguiente: Una vez configurado el programador se debe abrir el archivo *.HEX mediante el ícono seleccionado en la figura. Una vez cargado el archivo binario mediante el ícono seleccionado el la figura grabará el contenido en el chip insertado en el programador PROPIC2. Este chip programado está listo para ser usado en la aplicación. En las pruebas realizadas con microcontroladores PIC demuestran ser chips muy resistentes al calor, incluso a polarizaciones inversas producto de errores de conexión durante el desarrollo y pruebas del circuito. Conclusión Mediante este curso hemos aprendido en forma directa y didáctica que es un microcontrolador PIC y cómo programarlo, esta herramienta nos abre un mundo nuevo en el diseño de circuitos electrónicos mediante la tecnología programables. La tecnología no es amable, no espera y no pide permiso, se instala en sistemas, sociedades y estructuras… y normalmente los destruye… creando nuevas estructuras. Eso es “El Efecto mariposa” (el efecto multiplicativo de pequeños cambios, logran grandes resultados).