TUTORIAL MICROCONTROLADORES PIC

´ ´ — INICIACION RAPIDA —
MIGUEL TORRES TORRITI

Contenidos Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 1.1. 1.2. 1.3. 2. 2.1. 2.2. 2.3. 2.4. 2.5. 3. 3.1. 3.2. 3.3. 3.4. 3.5. 3.6. 4. 4.1. 4.2. 4.3. 4.4. 4.5. 4.6. Microcontroladores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Introducci´n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o Caracter´ ısticas de los Microcontroladores . . . . . . . . . . . . . . . . . . . . . . Proceso de Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PIC16F84 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Introducci´n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o Desarollo de Software para el PIC16F84 . . . . . . . . . . . . . . . . . . . . . . Programaci´n del µC PIC16F84 . . . . . . . . . . . . . . . . . . . . . . . . . . . o 2 3 3 3 4 7 7 7 9

Circuito Base para Operaci´n Regular . . . . . . . . . . . . . . . . . . . . . . . 13 o T´cnicas Avanzadas: Programaci´n Mediante Bootloaders . . . . . . . . . . . . 14 e o Ejemplo 1: Programaci´n en JAL . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 o Descripci´n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 o Paso 1: Instalaci´n y Configuraci´n del Compilador JAL . . . . . . . . . . . . . 15 o o Paso 2: Creaci´n del Programa en JAL . . . . . . . . . . . . . . . . . . . . . . . 15 o Paso 3: Compilaci´n del Programa en JAL . . . . . . . . . . . . . . . . . . . . . 16 o Paso 4: Programaci´n del µC . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 o Circuito del Ejemplo 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Ejemplo 2: Programaci´n en PICC Lite . . . . . . . . . . . . . . . . . . . . . . . 17 o Descripci´n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 o Paso 1: Instalaci´n y Configuraci´n del Compilador PICC Lite . . . . . . . . . 17 o o Paso 2: Creaci´n del Proyecto en MPLAB IDE . . . . . . . . . . . . . . . . . . 18 o Paso 3: Compilaci´n del Proyecto con PICC Lite . . . . . . . . . . . . . . . . . 22 o Paso 4: Programaci´n del µC . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 o Circuito del Ejemplo 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

Version 1.0 – 26 Abril 2007 – http://www.ing.puc.cl/∼ mtorrest/publicaciones.htm.
1

2

MIGUEL TORRES TORRITI

5. 5.1. 5.2.

Desarrollos m´s all´ de este Documento . . . . . . . . . . . . . . . . . . . . . . . 25 a a PIC16F87x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Freescale MC68HC08 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 . . . . . . . . . . . . . . . . . 26

Agradecimientos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Ap´ndice A. Lista de Componentes del Programador e Ap´ndice B. Lista de Componentes para los Ejemplos . . . . . . . . . . . . . . . . . 26 e Ap´ndice C. Configuraci´n del PROG84 . . . . . . . . . . . . . . . . . . . . . . . . . 26 e o Referencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

Objetivos
Mediante explicaciones paso a paso, este documento busca iniciar r´pida y econ´micamente a o al lector en el desarrollo de circuitos basados en microcontroladores. Para dicho prop´sito se o emplear´ el popular microcontrolador PIC16F84, el cual por su simplicidad permite implea mentar circuitos con componentes de bajo costo disponibles comercialmente, y sin requerir de instrumentaci´n de laboratorio complejo. Tambi´n las herramientas de software de desarrollo o e que se presentan son de libre distribuci´n y pueden conseguirse f´cilmente sin costo. o a Los pasos que deber´ completar en este tutorial para desarrollar una aplicaci´n basada en a o microcontroladores se resumen en: (1) Selecci´n del microcontrolador: En este tutorial se utilizar´ el PIC16F84x por simplio e cidad y costo. Para aplicaciones m´s avanzadas se recomiendan el PIC16F87x o el a PIC18F452. (2) Selecci´n/Instalaci´n del compilador/ensamblador: Se emplear´ el compilador PICC o o a Lite de la empresa HI-TECH Software LLC. [3], junto con el software de desarrollo MPLAB IDE de Microchip Technology Inc. [1]. Obtenga estos software de los sitios webs que se indican en las referencias e inst´lelos. a (3) Selecci´n/Instalaci´n del software programador: En este tutorial se utilizar´ el softo o a ware programador PROG84. Obtenga el software programador PROG84 de las referencias que se indican en la secci´n 2.3 o 2.3.1. Para aplicaciones m´s avanzadas se o a recomiendan el IC-Prog o el WinPIC. (4) Construcci´n del circuito programador: En este tutorial se emplear´ el circuito prograo a mador JDM PIC Programmer 2 (JDM2). La construcci´n del circuito programador o JDM2 se explica en la secci´n 2.3.2 o en las referencias de la secci´n 2.3. El JDM2 es o o un programador simple y vers´til para aplicaciones avanzadas. Alternativamente, se a recomiendan el Multi PIC Programmer 5 Ver. 2 o el Progrmador PIC Pablin II. Si est´ a inici´ndose en la programaci´n de microcontroladores y necesita desarrollar una aplia o caci´n r´pidamente, tal vez sea recomendable que invierta en un programador de PIC o a comercial como los de Olimex, que son una alternativa econ´mica a los programadores o PICStart Plus de Microchip. (5) Desarrollo del software y programaci´n: Para escribir el programa que se incorporar´ o a al microcontrolador se emplear´ el ambiente de desarrollo MPLAB IDE. Es posible a prescindir de este ambiente y escribir el c´digo en un procesador de textos simple. Sin o

tambi´n llamada arquitectura Princeton. Adem´s. como aplicaciones industriales de automatia zaci´n y rob´tica. hornos de microondas. los microcontroladores son ampliamente utilizados como el cerebro de una gran variedad de sistemas embebidos que controlan m´quinas. componentes de sistemas complejos. los microcontroladores ser´n referidos a en este documento por µC. Al completar este tutorial. De ahora en adelante. e incluso dispositivos o o o e de la vida diaria como autom´viles. a o El funcionamiento de los microcontroladores est´ determinado por el programa almacenado a en su memoria. ıa Por las caracter´ ısticas mencionadas y su alta flexibilidad. Microcontroladores 1. Caracter´ ısticas de los Microcontroladores. Introducci´n. Este puede escribirse en distintos leguajes de programaci´n. o arquitectura de von Neumann. I2 C (Inter-Integrated Circuit). Las principales caracter´ ısticas de los µC son: • Unidad de Procesamiento Central (CPU): T´ ıpicamente de 8 bits. la o a mayor´ de los microcontroladores actuales pueden reprogramarse repetidas veces.2. 16. sistemas aeroespaciales. una memoria para almacenar datos y puertos de entrada salida. dom´tica. 8. la MPLAB IDE provee una serie de herramientas que facilitan el desarrollo y la administraci´n del c´digo. • Generador del Reloj: Usualmente un cristal de cuarzo de frecuencias que genera una se˜al oscilatoria de entre 1 a 40 MHz. 1. o e Frecuentemente se emplea la notaci´n µC o las siglas MCU (por microcontroller unit para o referirse a los microcontroladores. pero tambi´n e las hay de 4. 2 4. o los microcontroladores son unidades autosuficientes y m´s econ´micas. 32 kilobytes. EEPROM (Electrically Erasable/Programable ROM) o Flash que almacena el c´digo del programa que t´ o ıpicamente puede ser de 1 kilobyte a varios megabytes. equipos m´dicos. Los circuitos bases de la aplicaci´n se o o o presentan en en los ejemplos de este documento. usted deber´ ser capaz de aplicar los pasos anteriores al desarrollo ıa de aplicaciones basadas en otros microcontroladores adem´s del PIC16F84. o o (6) Construcci´n del circuito base de la aplicaci´n. seriales (UARTs. • Memoria de Programa: Es una memoria ROM (Read-Only Memory).TUTORIAL MICROCONTROLADORES PIC 3 embargo. o Los micrconctoladores son computadores digitales integrados en un chip que cuentan con un microprocesador o unidad de procesamiento central (CPU). tel´fonos y televisores. con memoria/bus de datos separada de la memoria/bus de instrucciones de programa. a 1.1. 32 y hasta 64 bits con arquitectura Harvard. como los que se usan en los computadores PC. Interfaces de Perif´ricos . • Memoria de Datos: Es una memoria RAM (Random Access Memory) que t´ ıpicamente puede ser de 1. Universal Asyne chronous Receiver/Transmitter). A diferencia de los microprocesadores de prop´sito general. n e • Interfaz de Entrada/Salida: Puertos paralelos. con memoria/bus de datos y memoe ria/bus de programa compartidas. EPROM (Electrically Programable ROM). o tambi´n resonadores o circuitos RC. una memoria para almacenar el programa.

Monitoreando el valor de las entradas. El proceso de desarrollo de una aplicaci´n basada en microcontroladores se compone de las o siguientes etapas principales. Red de Area de Controladores (CAN. la cantidad o u de pistas y espacio que se requerir´ en un circuito impreso si se implementase un sistema ıa equivalente usando chips separados. Controller Area Network). Un aspecto de especial inter´s para el desarrollador de circuitos basados en microcontroladores e son las interfaces de entrada/salida. que por ejemplo podr´ activar un pin de salida para encender o ıa un led. se genera una se˜al de interrupci´n que iniciar´ la ejecuci´n de n o a o la subrutina de interrupci´n. No todas las interrupciones necesariamente est´n asociadas al cambio del estado de los pines a de entrada. es decir pueden configurarse como entradas o salidas. Pulse-Width Modulation) para generar ondas cuadradas de frecuencia fija pero con ancho de pulso modificable. los n µCs cuentan con un recurso conocido como interrupciones. • Programaci´n del µC: En esta etapa el c´digo de m´quina correspondiente al o o a programa desarrollado en la etapa anterior se descarga en la memoria del µC. • Desarrollo de software: Esta etapa corresponde a la escritura y compilaci’on/ensamblaje del programa que regir´ las acciones del µC y los sistemas perif´ricos conectados a a e este. • Otras opciones: – Conversores An´logo-Digitales (A/D. . La alta integraci´n de subsistemas que componen un µC reduce el n´mero de chips.3. a 1. Por lo general varios pines de datos son bidireccionales. Tambi´n hay interrupciones que pueden estar asociadas al valor de una entrada e AD. – Moduladores por Ancho de Pulso (PWM. el µC debe conectarse al circuito base y someo ´ terse a pruebas para verificar el funcionamiento correcto del programa. Las interrupciones son se˜ales que n se generan internamente en el microcontrolador que detienen la ejecuci´n normal del programa o para ejecutar alguna subrutina de respuesta al evento. Serial Peripheral Interfaces). USB (Universal Serial Bus). • Prueba y verificaci´n: Por ultimo. pueden adquirir datos interpretando el valor de voltaje como un valor l´gico 0 o 1. Cuando son entradas. o al cumplimiento de un periodo de tiempo fijado por un timer o temporizador. Una vez pulsado. Para responder a eventos externos.4 MIGUEL TORRES TORRITI Seriales (SPIs. mientras que cuando son salidas pueden entregar una se˜al binaria de voltaje o n cuya magnitud depender´ del valor l´gico 0 o 1. Estas caracter´ ısticas depender´n del modelo de µC empleado. el a o microcontrolador puede responder a eventos externos y realizar una cierta acci´n. Una vez ejecutada la subrutina de interrupci´n la ejecuci´n del progama continua en el punto en que se encontraba antes de o o generarse la interrupci´n. Un ejemplo t´ o ıpico es el de un bot´n pulsador conectado a un pin o de entrada. analog-to-digital) para convertir un nivel a de voltaje en un cierto pin a un valor digital manipulable por el programa del microcontrolador. Proceso de Desarrollo. como variar o las se˜ales de salida de acuerdo al valor en la entradas. A trav´s de los pines del chip asociados a las interaces e de entrada/salida el µC puede interactuar con otros circuitos externos enviandoles se˜ales de n comando o recibiendo est´ ımulos correspondientes a variables externas. las cuales se explican en m´s detalle en las siguientes subseca ciones.

3.o. es decir que est´n ligadas a las caraco a ter´ ısticas del microcontrolador y con un n´mero m´ u ınimo o nulo de abstracciones.1. .asm) → ensamblador → (. Etapas del desarrollo de software.o. . .bin. o o . es normal en el uso profesional emplear la palabra Assema bler en forma ambigua para referirse tanto al lenguaje de programaci´n como a la herramienta de software o ensambladora.bin (por binario). Al carecer de abstracciones. . compuesto por instrucciones en c´digo binario que a o o son directamente entendidas por la CPU del microcontrolador. o a Figura 1.c.Lenguaje Assembly . Assembly es el lenguaje y Assembler es la herramienta de software que traduce el c´digo o Assembly a lenguaje de m´quina. .hex. Sin embargo.hex (por hexadecimal).Lenguaje de M´quina/C´digo Objeto a o (. .o (por objeto). .coff) • Lenguaje de Alto Nivel .asm) → ensamblador → (. La ventaja es que el c´digo de m´quina generado a partir de un o a programa escrito en lenguaje de m´quina es por lo general m´s eficiente. El ensamblador normalmente genera un archivo con extensi´n . . El m´todo b´sico es escribir el programa en lenguaje Assembly1 (lenguaje de Ensamblador) e a en un archivo de texto con extensi´n . tambi´n denominado c´digo de a e o m´quina o c´digo objeto (object code). el lenguaje Assembly es m´s dif´ de emplear.coff (common object file format) dependiendo del ensamblador. requiere experiencia y un a ıcil mayor tiempo de desarrollo. Otra alternativa es emplear un lenguaje de alto nivel con una mayor cantidad de abstracciones. El lenguaje Assembly se compone de instrucciones mnem´nicas de bajo nivel. ya que el programa a a se desarrolla en un nivel cercano a las caracter´ ısticas del hardware. Tal vez los lenguajes de a a 1En estricto rigor. .cpp) → compilador → (.TUTORIAL MICROCONTROLADORES PIC 5 1. . Existen distintas maneras de desarrollar el programa.asm y luego utilizar una programa ensamblador (Aso sembler) para generar un archivo en lenguaje de m´quina.coff) En la figura 1 se muestran las dos alternativas t´ ıpicas que tiene el desarrollador para generar el c´digo de m´quina que es entendido por el microcontrolador. la cuales son m´s f´ciles de usar y reducen los tiempos de desarrollo. En esta etapa consiste en escribir y compilar/ensamblar el programa que determinar´ las a acciones del µCy su funcionamiento.hex. dependiendo del lenguaje inicial que se utiliza para escribir el programa: • Lenguaje Assembly .Lenguaje de M´quina/C´digo Objeto a o (. Desarrollo del software.bin.

. Se acostumbra denominar programador tanto al sofware como al hardware involucrados para este prop´sito. 1. o lo cual puede prestarse a confusi´n. Prueba y verificaci´n. Programacion del µC. Programaci´n del µC. ya sea a lenguaje a de Ensamblador o directamente a lenguaje de m´quina. USB. Una vez escrito el programa en el lenguaje de alto nivel.asm). muy utiles cuando el programa alcanza cierta complejidad. ya que su prop´sito es descargar o transferir desde el PC al µC el o c´digo ensamblado.hex. En la figura 2 se muestran las componentes involucradas en el proceso o de programaci´n del µC. ıa u paralelo. pero tambi´n a u o e existen otros lenguajes variantes del BASIC y el Pascal. etc. y lo env´ mediante alg´n puerto (serial. o a 1.2.3. mientras que el segundo se refiere transferir el c´digo de m´quina a la memoria o a del µC. Para resolver problemas en un circuito real. Es importante mencionar que no deben confundirse los t´rminos o e desarrollo o programaci´n del software y programaci´n del µC. Existen heramientas de software que permiten simular el comportamiento de un µC.6 MIGUEL TORRES TORRITI alto nivel m´s com´nes para la programaci´n de controladores es el C y C++. o Este proceso corresponde a utilizar un programa en el PC que toma el c´digo ensamblado o (. o Una vez programado el µC. . Figura 2. Un vez que el compilador ha generado el c´digo de Ensamblador (. se puede instalar en el circuito final para comprobar su adecuado funcionamiento. Es importante considerar que el a c´digo de Ensamblador generado por los compiladores tiende a ser m´s lagro e ineficiente o a que aquel directamente desarrollado en lenguaje de Ensamblador.3. el primero se refiere a escribir o o el programa. El software programador a veces recibe tambi´n el o e nombre de downloader.coff) para el µC espec´ ıfico. .o. ser´ necesario emplear un compilador para traducirlo.bin.3. Esta desventaja puede ser cr´ ıtica en ciertas aplicaciones que requieren un programas compactos y de una alta velocidad de ejecuci´n.) a un dispositivo que lo escribe en la memoria del µC. a o . ser´ o o a necesario utilizar un ensamblador para generar el c´digo binario de m´quina. el instrumento m´s utilizado es el analizador l´gico.

comunicaci´n serial por hardware y tiene menos memoria y puertos (conjuntos de l´ o ıneas de datos) disponibles. Desarollo de Software para el PIC16F84. el PIC16F84 carece de convertidor A/D. o El µC PIC16F84 de Microchip Technology Inc. El proceso de desarrollo de aplicaciones para el PIC es equivalente al descrito en la figura 1.microchip. que manejan datos de 8 bits. Introducci´n.2. Como se muestra en la figura 3. El µC PIC16F84. PWM. su f´cil uso. cuenta con un timer. Pines del PIC16F84. ıa 5 V para un estado l´gico 1 y 0 V para el estado 0. o su version actual el µC PIC16F84A pertenece a la familiad Microchip de microcontroladores de rango medio de 8 bits con 18 pines. [1] es uno de los microcontroladores m´s utia lizados en proyectos electr´nicos pequeos. Sin embargo. PIC16F84 2. este tiene 13 l´ ıneas de entrada/salida (RA0–RA5. Requiere un oscilador externo de hasta o 20 MHz. Figura 3.com/ 2Overflow se refiere al evento que ocurre al incrementar un registro por sobre el valor m´ximo de bits que a posee . RB0–RB7) con tecnolog´ TTL/CMOS. se programa mediante un juego de 37 instrucciones en Assembly.1. • Overflow2 del timer. lo han convertido en un µC muy a popular y el favorito en un gran rango de aplicaciones. muchas de las caracter´ ısticas que este µCno posee pueden ser implementadas por software. precio reducido.TUTORIAL MICROCONTROLADORES PIC 7 2. En lo que respecta al desarrollo de software para los µCs PIC existen varias alternativas empleando compiladores o ensambladores disponibles en forma gratuita como: • Assembler: – MPLAB IDE [1]. 2. un watchdog timer y responde las siguientes interrupciones: • Cambios de estado en las l´ ıneas RB4 a RB7 del puerto B. A pesar de que este µC no posee . http://www. es decir. A diferencia de versiones m´s avanzadas como o a el igualmente popular PIC16F87x. • Flanco de subida o bajada en la l´ ınea RB0/INT del puerto B.

El compilador posee numerosas opciones y ejemplos que a se encuentran adecuadamente documentados.php • Pascal: – JAL [4]. pero lamentablemente ya no dispone de una versi´n gratuita para estudiantes. En el caso de Windows. se o o a recomienda utilizar las soluciones m´s probadas. el cual se puede descargar en forma gratuita de su sitio web [1].1. Al ser parecido al Pascal. en el ambiente Linux/BSD el gpasm es el ensablador del conjunto de utilidades gputils (GNU PIC Utilities). El uso de C puede ser muy conveniente para aquellos que ya estan familiarizados con este lenguaje y deseen iniciarse r´pidamente en el desarrollo de circuitos a basados en µCs PIC. 2. Desarrollo en JAL. Microchip Technola ogy Inc. provee el ensamblador por defecto de para los PICs a trav´s de un ambiente integrado e de desarrollo llamado MPLAB IDE (Integrated Development Environment). En todo caso estas restricciones no limitan el desarrollo de aplicaciones razonablemente complejas y avanzadas. excepto el compilador para la familia PIC18. las cuales se pueden obtener gratuitamente [2]. http://jal.htsoft. El PICC Lite es la versi´n gratuita para estudiantes del compilador PICC desarrollado por o HI-TECH Software.net/ Existen muchos otros compiladores incluso de lenguajes similares al BASIC que pueden encontrarse a trav´s de Internet [6].2. pero existen otros compiladores disponibles grauitamente con a caracter´ ısticas similares. aunque el a proceso de desarrollo normalmente es tedioso y requiere de un aprendizaje m´s largo que con a lenguajes de m´s alto nivel.2.2. A continuaci´n se o explican algunas caracter´ ısticas de cada herramienta de desarrollo de programas para los µCs PIC. Un buen compilador de C para PIC es el CCS PCWH [5]. el leguaje es m´s intuitivo que el C. El compilador genera directamente un archivo . 2. http://www. estos tampoco son gratuitos.hex con el c´digo de o m´quina a partir del programa en C. El JAL tambi´n cuenta con librer´ para realizar m´ltiples tareas comunes y al e ıas u . del PIC16F84. la cual permite familiarizarse con el conjunto de instrucciones disponibles. La disponibilidad del PICC LITE en el futuro no est´ asegurada. Para seguir esta v´ se recomienda leer la hoja de datos (datasheet a ıa.sourceforge.3. Desarrollo en Assembly. 2. Sin embargo. Desarrollo en C usando HI-TECH PICC Lite. e Este dispone tambi´n de muchos ejemplos de c´digos en C que pueden reutilizarse en divere o sos proyectos.net/ • C: – HI-TECH PICC Lite [3]. Los programas desarrollados en lenguaje Assembly pueden ser los m´s eficientes. El JAL es un lenguaje parecido al Pascal desarrollado por Wouter van Ooijen especificamente a para µCs PIC y algunos µCs SX [4]. Por otro lado.com/products/PICClite. El PICC Lite tiene las mismas caracter´ ısticas profesionales de la versi´n o comercial. aunque tiene ciertas limitaciones principalmente en t´rminos de la longitud de los e programas que se pueden desarrollar. Existen varias opciones para ensamblar el c´digo y generar c´digo de m´quina.2. Sin embargo.8 MIGUEL TORRES TORRITI – gpasm parte de gputils [2].sourceforge. o Otros compiladores de C son los creados por los mismos fabricantes de los PIC. http://gputils.

Chips: Solamente probado con el PIC16F84. ya que no s´lo son capaces de programar una gran variedad de o µCs.rentron. En Internet se pueden encontrar disponibles en forma gratuita numerosas duplas softwarehardware para programar µCs PIC bajo diferentes sistemas operativos. Este est´ basado en el programador JDM y se alimenta del a puerto serial. 2. El dise˜o cono n sidera adem´s de factores como costo y simplicidad.com/ a a Observaciones: El IC-Prog es tal vez el software programador m´s vers´til junto con el WinPIC DL4HYF.htm Observaciones: Este programador emplea un circuito similar al COM84 con cuatro partes adicionales y alimentaci´n externa.Bonny Gijzen http://www. a 2.jp/en/pg5v2. Este tambi´n se parece al Multi PIC Programmer e 5 Ver.ic-prog.com/Myke4. si bien en la pr´ctica la expresi´n programaci´n del µC se utiliza en forma ambigua a o o para referirse tanto a la escritura del programa como a la descarga del mismo en la memoria del µC. lo que puede dificultar encontrar una combinaci´n que funcione correctamente y sea a la vez simple y general. En el siguiente resumen.3. 2 http://feng3. Por lo general estas duplas software-hardware son interdependientes. o Es importante recordar que en este documento la expresi´n programaci´n del µC se refiere al o o proceso de descargar a la memoria del µC el c´digo de m´quina generado por el ensamblador. 2. Entre los e programadores destacan algunos que no se encuentran mencionados en la p´gina de a IC-Prog. Programaci´n del µC PIC16F84.TUTORIAL MICROCONTROLADORES PIC 9 igual que varios comipladores de C.cool. aunque en algunos aspectos el circuito parece una versi´n simplificada o del ProPIC II: * Multi PIC Programmer 5 Ver. Uno de ellos es el Multi PIC Programmer 5 Ver. • SW: IC-Prog + HW: JDM / Fluffy2 / Ludpipo / Multi PIC Programmer 5 Ver. 2* / Pablin II** / ProPic II / Shaer / Tait /Shaer IC-Prog Prototype Programmer . SW significa software y HW significa hardware. dise˜ado por Feng para n chips de 8/18/28/40 pines. la flexibilidad de uso en diferentes a computadores. pero usa el puerto paralelo. A continuaci´n se presenta o o un resumen de las combinaciones software-hardware para programadores.html Otro dise˜o para chips de 8/18/28/40 pines que se alimenta del puerto paralelo es el n programador Pablin II de Pablin.ne. El programador Pablin II se puede encontrar en: ** Programador PIC Pablin II . Ya que aparentemente alternativas m´s minimalistas como el COM84 a no funcionan correctamente en ciertos computadores que no entregan suficiente corriente por el puerto serial. • SW: ElCheapo + HW: ElCheapo PIC Programmer by Myke Predko http://www. este compila y ensambla a la vez entregando el c´digo de o m´quina en un archivo . sino tambi´n pueden trabajar con variados circuitos programadores.hex. o a Este proceso no debe confundirse con el proceso de escribir el programa tratado en la secci´n o anterior. Todos los programadores funcionan bajo Windows o DOS y se programan a trav´s del puerto serial RS-232 e a menos que se indique algo distinto.

iasi. 59Cxx. 16F87x.net/mirrors/ftp. 89Cx051.htm Existe un circuito m´s sencillo que el programador COM84 y que solo requiere unas a resistencias. Chips: PIC 12Cxx. este es s´lo para la llamada programaci´n serial en circuito o o o ICSP (in-circuit serial programming). 24Cxx.htm Chips: Solamente probado con el PIC16F84. Windows+Cygwin.com/techref/piclist/cheapic/COM84. 16C6x/7x/923/924.tele.dk/easypic2. • SW: PIP-02 + HW: COM84 Beginners’ PIC and AVR Page . AVR .rowe/micros/ Observaciones: El circuito programador COM84 es probablmente el m´s sencillo que a existe que se alimenta directamente del puerto serial.com/matthew.tapr.com. otros.ntlworld.htm PIX 1.inet. actualmente mantenido por Frank Damgaard. • SW: PROG84 + HW: COM84 / Ludpipo / Uniprog IV/ BR870 Prog84.pablin.3 + HW: JDM Jens Madsen PIC-Programmer 2 Jaakko Hyv¨tti Picporg 1.13 .com. es decir la programaci´n del µC en su circuito o base.13 + HW: COM84 / JDM / JDM84 / Ludi / Pixxer /Shaer / Tait COM84 PC Board http://www. • SW: PIX 1. pero es una soluci´n esa e o pec´ ıfica a cada µC y menos general.htm Ambos programadores.3 documentation a http://hyvatti.piclist. Est´ t´cnica tiene ventajas evidentes en simplicidad.8. Para a informaci´n adicional consulte la documentaci´n del fabricante [1] o el ejemplo en: o o http://www.rowe/micros/dosgear.swipnet.10 MIGUEL TORRES TORRITI http://www.ar/electron/circuito/mc/com84/index.Bengt Lindgrens http://home.htm http://homepage. 89S53.fi/~jaakko/pic/picprog. En este caso se o recomienda emplear el JDM PIC Programmer 2 que es una versi´n similar pero que o funciona bajo todas condiciones.html OS: Linux. Sin embargo. 93Cxx.8. el Multi PIC Programmer 5 y el Pablin II se presentan como opciones muy atractivas por su simplicidad y versatilidad. 90Sxxx. ıa Chips: El software programador PROG84 soportar´ los PIC 16C84/16F84.homepage.html Observaciones: Proyecto de Wim Lewis. Un explicaci´n del circuito COM84 en espa˜ol puede encontrarse en: o n Programador PIC y E2PROM sin fuente (puerto serie) . 16Fxx.pablin.jdm. 12C5xx y 24C16 con los circuitos programadores Ludpipo / Uniprog IV/ . PIC16x84/24c16 programming utils http://home3.ar/electron/circuito/mc/ppp2/index.se/~w-53783/ http://ftp.com/matthew. es posible que no funcione en muchos computadores nuevos que no son capaces generar el voltaje de alimentaci´n suficiente con los nuevos circuitos de bajo consumo. 16Cxxx.org/picsig/software/ Chips: Solamente probado con el PIC16F84.Pablin http://www. por lo que no se considerar´ en este tutorial. 16F7x.iki. • SW: Picprog 1. 16F87x. Sin embargo.dk/frda/picasm/prog.Matthew Rowe http://homepage. 18Fxxx.roedu. 250x0.ntlworld. 80C51.

rowe/micros/dosgear.homepage. a Existen una gran cantidad de otras alternativas.html • Programador PIC Pablin II http://www. el cual se puede emplear junto con el MPLAB IDE.htm http://www. como el PICStart Plus II de Microchip.ee/PIC/ . aunque alternativas m´s econ´micas son a o los programadores de Olimex: http://www.com/leon_heller/pic. 2 por Feng http://feng3.jp/en/pg5v2.geocities.com.com/Myke4.com/v2/content/category/4/2/8/ Existen varias opciones de programadores comerciales. Se ha verificado el funcionamiento del PROG84 con el circuito programador COM84.html u Chips: Un gran n´mero de la series PIC10/12/16/18.htm • Tait: Programadores por David Tait http://www.com/techref/piclist/cheapic/COM84.cool.htm http://www.pablin.jdm.htm http://sciencezero.TUTORIAL MICROCONTROLADORES PIC 11 BR870. • SW: WinPic + HW: COM84 / JDM / JDM PIC Programmer 2 / Otros DL4YHF’s WinPic .qsl.ar/electron/circuito/mc/ppp2/index.dk/newpic.piclist.html • Multi PIC Programmer 5 Ver. Un listado de programadores para Linux puede encontrarse en: http://www.micahcarrick. BSD.html http://www.nomad. consulte las referencias en [6].cl/ Algunos circuitos programadores de µCs PIC ampliamente difundidos y principalmente para la programaci´n de µCs de la serie PIC16x84 son: o • COM84: Programador por Matthew Rowe http://homepage.ntlworld. aunque es posible que por las caracter´ ısticas de este ultimo s´lo sea posible ´ o programar el PIC16F84.4hv.A PIC Programmer for Windows http://freenet-homepage. Sin embargo.com/matthew. OS: Linux.de/dl4yhf/winpicpr. DOS. Windows.ne.net/dl4yhf/winpicpr.rentron.htm • JDM: Programadores por Jens Dyekjær Madsen JDM PIC Programmer 2 http://www.org/electronics/com84.htm http://www. debe tenerse en cuenta que el circuito programador COM84 sin modificaciones adicionales muy probablemente no podr´ programar otro µC que el PIC16F84.olimex.

16 V como el condensador C2 22 µC. se recomienda utilizar la combinaci´n SW: PROG84 + HW: COM84 en el deo sarrollo de los ejemplos de este tutorial.dk/frda/picasm/prog. El circuito programador JDM PIC Programmer 2 (JDM2) es una interfaz de hardware muy simple que permite programar al µC PIC16F84 con muy pocos componentes. o 2. D5.5 kΩ como R2 de 10 kΩ. con sus respectivos n´meros de pin en el conector DB9 o DB25. Ver Anexo C con un ejemplo de archivo de configuraci´n. Software Programador: PROG84. Ludpipo. bajo costo y disponibilidad tanto para Linux/BSD como para Windows.1.omnigroup.hex En este ultimo caso la opci´n a indica que el programador verifique que los datos fueron ´ o cargados correctamente en el µC. Dada la simpleza del circuito JDM2. a . El software programador PROG84 fue desarrollado por Wim Lewis y actualmente es mantenido por Frank Damgaard. D2. El diodo Zener D3 y el led pueden a reemplazarse por un unico diodo Zener de 8.12 MIGUEL TORRES TORRITI Por su simplicidad. Tanto el condensador C1 de 100 µC. Las resistenu cias requeridas. Una vez configurado y conectado el hardware adecuadamente.1V como el BZV55C5V1. El diodo D3 debe ser un diodo Zener de 6. Para utilizar el PROG84 deber´ a configurar el tipo de hardware y el puerto serial editando el archivo lp_cfg contenido en el directorio donde PROG84 fue colocado. 16 V deben ser electrol´ ıticos. que en caso de un cristal es X.2 V como el BZV55C6V2 y debe colocarse en serie con el led como se muestra en el esquem´tico.html Ver tambi´n: e http://people.com/wiml/soft/pic/ Este software programador puede ser utilizado con circuitos programadores por puerto serial o paralelo como el COM84.hex. generalidad. pueden ser de baja potencia (0.hex o con prog84 -azC UX -v -x archivo. la opci´n z indica que borre la memoria del µCantes de o escribir el c´digo del archivo archivo. A continuaci´n se explican brevemente el programador PROG84+COM84. El diodo D4 tambi´n es un diodo Zener. se sugiere construirlo directamente en una placa PCB. o 2.3.tele.2. Los diodos D1.2 V. aunque se recomienda el 1N4148. Uniprog IV. El condensador C2 tambi´n puede reemplazarse por e un condensador de 100 µC.3. la programaci´n se o o efectua con el siguiente comando: prog84 -x archivo. de modo que sea m´s duradero y su operaci´n a o m´s confiable. por lo tanto para otros proyectos considere utilizar SW: IC-Prog/WinPIC + HW: Multi PIC Programmer 5 Ver. Tengase presente que el programador COM84 estar´ ıa limitado a los µCs de la familia PIC16F84x. ya que se alimenta directamente del puerto serial RS-232 del PC sin requerir una fuente de alimentaci´n o externa como se muestra en la figura 4. este puede obtenerse en: http://home3. D6 son diodos rectificadores cualquiera.25 W). Circuito Programador JDM PIC Programmer 2. 2/Programador PIC Pablin II. pero ´ e de 5. la opci´n C programa los fuses como U para el o o power up timer (on) y la configuraci´n del oscilador. BR870. tanto R1 de 1. Al lado izquierdo de esta figura se muestran las l´ ıneas del puerto serial. La opci´n o o v es para aumentar los mensaje (verbosidad) de estado del proceso de programaci´n del µC.inet. 16 V como C1.

e inmediatamente despu´s deber llevase y mantenerse en un voltaje e entre 12 y 14 V durante toda la programaci´n. o o mientras que RB6 (PGC o Program Clock) se utiliza como seal de reloj para aceptar cada bit en RB7. el circuito JDM2 puede ser modificado seg´n la a u especificaci´n de programaci´n ya descrita para utilizar una fuente de alimentaci´n externa. o o Es importante destacar que este dise˜o minimalista requiere que el puerto serial del PC n entregue al circuito los niveles de voltaje y potencia adecuados. En todo caso. se utiliza RB7 (PGD o Program Data) para ingresar serialmente la informaci´n. Esto se logra mediante el software programador. mientras que M CLR (pin 4) debe llevarse a 0 por un periodo corto para resetear el µC. Una vez que el µC ha entrado en modo de o programaci´n. 2.4. o o o Figura 4. como aquellos que utilizan circuitos seriales de baja potencia para ahorro de consumo muy comunes en algunos computadores port´tiles. Por esta raz´n el programador o puede presentar problemas de funcionamiento en ciertos computadores. Los detalles del protocolo de programaci´n pueden encontrarse en la documentaci´n del fabricante [1]. Circuito Base para Operaci´n Regular. Programador serial minimalista JDM PIC Programmer 2. o .TUTORIAL MICROCONTROLADORES PIC 13 Para que el PIC16F84 entre en modo de programaci´n debe forzarse un estado l´gico 0 en o o RB6 (pin 12) y RB7 (pin 13).

a o • Arme un circuito con un conversor serial RS-232 a TTL como el circuito integrado MAX232. • PIC16F87x / 16F87xA PIC micro and C .homepage. En los siguientes sitios de Internet podr´ encontrar dos bootloaders muy recomendables con a explicaciones muy detalladas de como emplearlos.PIC downloader . T´cnicas Avanzadas: Programaci´n Mediante Bootloaders. Para desarrollar programas usando o bootloaders los pasos b´sicos son: a • Descargue el c´digo del bootloader a la memoria del µC empleando un programador o est´ndar como los mencionados en la subsecci´n anterior. • Compile/ensamble su c´digo con alg´n compilador/ensamblador de los mencionados o u anteriormente.com/PIC16bootload/ EHL elektronik .bootloader .dk/newpic. En a este m´todo el programador de microcontroladores solo se emplea una vez para descargar el e microsistema operativo bootloader al µC. el PIC16F84 requiere ciertos componentes basicos. • Coloque el circuito con el µC en modo de comunicaci´n serial y descargue el c´digo o o binario .5. Programador JDM2 terminado. M CLR es el reset.microchipc. com´nmente denominado firmware. e o Los bootloaders son un peque˜o c´digo binario que se descarga en los µCs y tiene por finalidad n o simplificar el desarrollo de programas ya que actuan como una especie de sistema operativo m´ ınimo que tiene por finalidad obtener via un pin configurado para funcionar como puerto serial el c´digo del programa que se requiere ejecutar. Vss . y tierra. que proveen la seal de reloj.Petr Kolomaznik . e La ventaja de utilizar est´ t’ecnica es que permite muy facilmente hacer actualizaciones del a c´digo de la aplicaci´n.jdm. 2. iguales para cualquier configuracion: un cristal y condensadores.14 MIGUEL TORRES TORRITI Figura 5.Shane Tolmie http://www. Esto se puede observar en la figura del ejemplo 1. Imagen en http://www.hex usando el software bootloader. por lo que debe mantenerse en estado l´gico o 1 durante su funcionamiento. que reside en la memoria del o o u µC sin necesidad de sacarlo del circuito para colocarlo en un programador est´ndar. y las lineas de alio mentaci´n. Vdd . En el circuito final.htm. • Re-inicie el circuito con el µC en modo normal para que se ejecute el programa que descargo a trav´s del bootloader.

Los comentarios se incluyen con el prefijo ’--’.jal.htm • PIC8Fx52 PIC micro and C . Para esto se implementar´ un programa que continuamente cambie el estado de un pin y a espere cierto tiempo antes de repetir la acci´n.1.3. o . Ejemplo 1: Programacion en JAL 3. 3.Configuracion pin_b7_direction = output -.bootloader . a o 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: -.com/PIC18bootload/ ´ 3. En este ejemplo se utilizar´ el lenguaje JAL o a para desarrollar el programa.sourceforge. o Un ejemplo muy simple y demostrativo para iniciarse con un µC es hacer parpadear un LED. 3. En las siguientes secciones se indican los pasos necesarios para implementar el parpadeo de un LED.Loop Principal forever loop -.Ejemplo 1 -.cz/pic/pic_e.TUTORIAL MICROCONTROLADORES PIC 15 http://www. Paso 1: Instalaci´n y Configuraci´n del Compilador JAL.net/ (2) Descomprima el archivo con el compilador.Retardo delay_1ms(250) end loop Comentarios Generales del Programa: El alto nivel de JAL permite que el c´digo sea bastante autoexplicativo.ehl.Shane Tolmie http://www. o o (1) Obtenga el compilador JAL en: http://jal. o (1) Escriba el c´digo del ejemplo que se muestra a continuaci´n en un procesador de textos o o simple y gr´belo en un archivo con extensi´n . Descripci´n.2.Inclusiones include 16f84_4 include jlib -.microchipc.Variables var bit led is pin_b7 led = high -.Cambio de estado del pin led = ! led -. Paso 2: Creaci´n del Programa en JAL.

(1) Inicie la aplicaci´n MPLAB IDE. tal que el tiempo u u transcurrido antes de continuar con la ejecuci´n del resto del programa sea igual al o especificado.2 del presente u documento.. El par´metro -slib indica al compilador o o a que debe buscar las librer´ utilizadas en la carpeta lib. En las ı o l´neas 11 y 12 se define la variable led y se la asigna a RB7 con un estado incial ı activo. o (2) Ejecute la opci´n File/Import. que corresponden al c´digo en Assembly y al c´digo de o o m´quina ensamblado. Finalmente.3. work en el directorio donde instal´ JAL y colocar el c´digo del ejemplo en dicha carpeta. Verifique tambi´n que los bits de configuraci´n de e o la opci´n Configure/Configuration Bits. La funci´n delay_1ms() causa un retardo o de 1 ms multiplicado por su argumento. y las funciones que generan el retardo.asm y archivo.. o (1) En el directorio donde guard´ el archivo del ejemplo compile el c´digo mediante la o o siguiente l´ ınea de comando: <directorio>\jal -s<directorio>\lib archivo.4. a o Los archivos en las l´neas 4 y 5 son incluidos ya que estos contienen definiciones ı espec´ficas del PIC16F84. se puede crear una carpeta llamada. 3. a Alternativamente.hex) haya sido previamente generado o a fuera del MPLAB IDE como en este ejemplo.\lib archivo.. A continaci´n se explican los pasos de programaci´n desde MPLAB IDE o o en el caso que el archivo con el c´digo de m´quina (. por ejemplo.jal donde <directorio> se refiere al directorio donde instal´ JAL.jal 3.. archivo.. el cual se ı ejecuta indefinidamente.. 2. En este se cambia el estado del pin/led (l´nea 17) y se genera ı un retardo de 250 ms mediante la funci´n delay_1ms (l´nea 19) para producir una o ı pausa en el encendido o apagado del led. Paso 4: Programaci´n del µC.3.5.hex. La velocidad del reloj se encuentra especificada en el programa dado que se incluy´ la versi´n de 4 MHz (l´nea 4) de las funciones espec´ o o ı ıficas de PIC16F84. Luego o o bastar´ con ejecutar el siguiente comando de compilaci´n desde la carpeta work: ıa o . por lo que se ejecuta un loop o auxiliar el n´mero de veces requerido seg´n la velocidad del reloj. (3) Verifique las opciones de configuraci´n de MPLAB IDE.. de la barra de men´ que el dispositivo correo u sponde al µC PIC 16F84 o 16F84A. 2.3. de la barra de men´ son: Oscillator o u .jal es el o archivo donde guard´ el c´digo del ejemplo. Su funcionamiento se basa en el hecho de que una instrucci´n (en Assembler) tarda 4 ciclos de reloj.. o Puede programar el µC seg´n lo explicado en las secciones 2. respectivamente. Paso 3: Compilaci´n del Programa en JAL.1. En particular verifique en la o opci´n Configure/Select Device. entre las l´neas 15 y 20 se encuentra el loop del programa. o bien usando el MPLAB IDE si posee alg´n programador Microchip como el u PICSTART Plus. JAL generar´ los archivos ıas a archivo. En la l´nea 8 se define la direcci´n de RB7 (pin 13) como pin de salida. como las correspondientes a las direcciones de memoria para ı pin_b7 y pin_b7_direction.16 MIGUEL TORRES TORRITI Es fundamental dejar un espacio en blanco entre el prefijo de comentario y la frase de lo contrario se producir´n errores de compilaci´n. de la barra de men´ y seleccione el archivo .\jal -s.hex o u que desea descargar al µC.

Watchdog Timer = Off.php (4) Instale el compilador siguiendo todos los pasos de la instalaci´n. Si o u la programaci´n se realiz´ en forma correcta tanto el c´digo compilado como el c´digo o o o o leido de vuelta del µC deben tener el mismo checksum que se muestra en la barra de men´ del MPLAB IDE. o Seleccione el hardware programador.2.microchip. o (3) Obtenga el compilador PICC Lite en: http://www. o Este ejemplo ilustra la respuesta a est´ ımulos externos utilizando interrupciones implementada en lenguaje C para el compilador PICC Lite. Ejemplo 2: Programacion en PICC Lite 4. o Borre la memor´ del µC presionando el icono de p´gina en blanco a µC o la opci´n ıa a o Programmer/Erase Flash Device de la barra de men´. o o (1) Obtenga el MPLAB IDE en: http://www. El LED conectado a RB7 se encender´ de acuerdo al estado de la variable led en el c´digo del a o programa del microcontrolador.TUTORIAL MICROCONTROLADORES PIC 17 (4) (5) (6) (7) (8) = XT. Al dise˜ar otras aplicaciones es o n importante tener presente la corriente m´xima que puede entregar o recibir un pin en el caso a de la l´gica positiva o negativa. Tambi´n puede ver los contenidos de la u e memoria del µC utilizando la opci´n View/Program Memory de la barra de men´. Con excepci´n de los componentes o conectados a RB7 (pin 13). empleando la opci´n Programmer/Select Programmer de la barra de men´. El programa permite encender y apagar un LED al presionar un bot´n pulsador. Descripci´n. respectivamente. Una configuraci´n alternativa es o ıa conectar desde Vdd (5 V) el LED en serie con la resitencia a RB7.com/ (2) Instale el MPLAB siguiendo todos los de la instalaci´n. si desea verificar si efectivamente la programaci´n se realiz´ o o en forma correcta. 4. Sin embargo. Paso 1: Instalaci´n y Configuraci´n del Compilador PICC Lite. o u Normalmente el programador entregar´ un mensaje indicando si la programaci´n fue a o exitosa. Code Protect = Off (a menos que desee otra configuraci´n particular). por ejemplo el PICSTART Plus. un voltaje o de 5 V ser´ aplicado al LED.1. o . el resto de los componentes constituyen la circuiter´ m´ ıa ınima para el funcionamiento del PIC16F84. Cuando el estado l´gico de la variable led es 1. o ´ 4. Circuito del Ejemplo 1. Power Up Timer = Off. En la figura 6 se muestra el circuito para el Ejemplo 1. Esto causar´ que el LED se encienda cuando la variable led tenga un estado l´gico 0. emplee el bot´n de verificaci´n (p´gina con check) o la opci´n o o a o Programmer/Verify de la barra de men´. u Programe el dispositivo presionando el icono de p´gina llena (amarilla) a µC o la a opci´n Programmer/Program de la barra de men´. los cuales corresponden a elementos espec´ ıficos del ejemplo.6. Antes de encender o apagar el LED este parpadea tres o veces anunciando el cambio de estado.htsoft. u 3. Para limitar el exceso de corriente que podr´ da˜ar el LED o el a ıa n puerto del PIC se coloca una resistencia en serie con el LED.com/products/compilers/PICClite. o u Habilite el hardware programador con la opci´n Programmer/Enable Programmer.

por ejemplo: o o C:\Program Files\HI-TECH Software\PICC\lite\9. (9) Elija la opci´n de la barra de men´ File/New para crear el archivo que contendr´ o u a el programa del ejemplo. y luego fije la ubicaci´n del directorio o del proyecto creado en el paso 1. de lo contrario retroa ceda a los pasos anteriores y haga las correcciones necesarias. presiones Next.. 4.60\bin\picl.60\samples o donde haya instalado PICC Lite a la carpeta del proyecto que creo en el paso anterior. o u (4) Elija el µC seleccionando PIC16F84A.exe. por ejemplo: ej2.exe (c) Si es necesario agregue la ubicaci´n donde se ubiquen archivos include (.3. a (2) Copie los archivos delay. e o (8) Si todas las opciones elegidas est´n conformes. por ejemplo:ej2.c. o (1) Cree un directorio donde guardar´ los archivos del proyecto. Circuito del ejemplo 1. Escriba el c´digo que se muestra a continuaci´n y guarde o o . y agr´guelos al proyecto con el bot´n Add.18 MIGUEL TORRES TORRITI Figura 6. (5) Elija la herramineta de compilaci´n activa HI-TECH Universal ToolSuite y actualice o la ubicaci´n del compilador de ser necesario.. (b) Elija la opci´n HI-TECH Universal ToolSuite/Executables/HI-TECH C Compiler o y fije la ubicaci´n donde instal´ el compilador picl.h) bajo la o opci´n HI-TECH Universal ToolSuite/Default Search Path & Directories/Include o Search Path.h y delay. (3) Elija la opci´n de la barra de men´ Project/Project Wizard y luego presione Next. (5) Una vez instalado el PICC Lite. (7) Seleccione los archivos delay.h y delay. o (6) Escriba el nombre del proyecto. inicie el MPLAB IDE y actualice la lista de compiladores para que funcione junto con PICC Lite mediante los siguientes pasos: (a) En la opci´n de la barra de men´ elija Project/Set Language Tool Locations/HI-TECH o u Universal Toolsuite. Paso 2: Creaci´n del Proyecto en MPLAB IDE.c ubicados en la directorio: C:\Program Files\HI-TECH Software\PICC\lite\9.

Disable) // PWRT: Power-up Timer (EN/DIS: Enable. // Habilitacion global de interrupciones.} led = !led.i++){ DelayMs(125). //#define XTAL_FREQ 20MHZ #define PORTBIT(adr. . Fuses) // Estas lineas son opcionales. // Deshabilita interrupciones en pin INT boton = 1.h> #include "delay.a.k.c en el directorio del o proyecto.i<5.TUTORIAL MICROCONTROLADORES PIC 19 el archivo con extensi´n . bit) ((unsigned)(&adr)*8+(bit)) // Variables Globales static volatile bit led @ PORTBIT(PORTB.h" // Configuration Bits (a. // Habilitacion de interrupciones externas. for(i=0.i<5.i++){ DelayMs(255). for(i=0. GIE = 1. Para guardar el archivo utilice la opci´n File/Save As. XTAL.7). por ejemplo con el nombre ej2. INTE = 1.} led = !led. // Funcion Interrupcion static void interrupt isr(void) { if(INTF){ // -.. // Fija el pin RB0 en como entrada // (en alta impedancia). ya que se pueden fijar externamente // en MPLAB IDE bajo la opcion de la barra de menu // <Configure/Configuration Bits. // Limpia flag de interrupcion INTF } } // Rutina Parpadeo void blink(void){ // Parpadea el una veces antes de cambiar // de estado char i. Low-power XTAL // WDT: Watchdog Timer (EN/DIS: Enable. static volatile bit boton = 0. o 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: #include <pic.i++){ DelayMs(125). Disable) // PROTECT: Code write protection __CONFIG(XT&WDTDIS&PWRTDIS&PROTECT).i++){ DelayMs(255). } // Rutina Principal void main(void){ led = 1. //__CONFIG(RC&WDTEN&PWRTEN&UNPROTECT).Flag Interrupcion en pin INT -// INTE = 0.c.i<5. // OPTION = 0b00000111. for(i=0. // Fija PS0-PS2 Pre-escaladores del // Watchdog Timer WDTR TRISB = 0b00000001.i<5.. for(i=0.> // Definiciones: // RC/HS/XT/LP: Oscilador RC.} led = !led. High-speed XTAL. // Boton presionado INTF = 0.} led = !led.

// Habilita todos los tipos de interruptciones // di(). Estos indican al µC el tipo de oscilador. bit). El calificador static se emplea para indicar al . o u La l´nea 16 muestra la manera de definir la frecuencia del cristal. ya que es requerida por las rutinas de retardo especificadas en delay. la habilitaci´n del ı o o Power-up Timer y la proteccci´n contra escritura de la memoria. En la l´nea 21 se utiliza la definici´n PORT(adr. // Habilita interrupciones en pin INT } } Comentarios Generales del Programa: En la l´nea 1 se incluye las definiciones ı generales para la compilaci´n empleando PICC Lite. Todas las variables que est´n asociadas a puertos (pines) de a entrada/salida o que son modificadas en rutinas de interrupci´n siempre o deben ser declaradas volatile. de la barra de men´. Estas funciones reciben como argumento un n´mero entero entre 0 y 255 para gener retardos de miu crosegundos o milisegundos. es decir la variable led est´ asociada a RB7 en el pin a 13. Comentarios de ı m´ltiples l´neas pueden realizarse colocando /* al inicio y */ al final de la secci´n de u ı o comentarios.){ // -. Esta l´nea es opo ı cional. Esta opci´n ya ı o fue agregada a las opciones de compilaci´n..h espec´fico a este ejemplo con ı ı las definiciones de las funciones de retardo delayUs() y delayMs(). En el caso de la funci´n delayUs() se o recomienda utilizar valores bastante menores a 255. si no se fija en el programa. Ambas variables son declaradas como static volatile bit.Loop sin fin -if(boton){ // Boton presionado boton = 0. por lo que no es necesaria en el c´digo. La variable boton se define de manera similar en la l´nea 22 y se emplea m´s ı a adelante para indicar si el pulsador ha sido presionado o no. el valor de bit puede estar entre 0 y 7.. // Deshabilita todas las interrupciones for(. los bits de configuraci´n deber´n fijarse mediante o a la opci´n Configure/Configuration Bits.. Como las direcciones de memoria son bytes. e t´picamente un cristal (XT). Esto evita que el a optimizador elimine m´ltiples referencias a las variables que de otro modo pudiesen u ser consideradas redundantes.>. En la l´nea 2 se incluye el archivo delay. // Cambia el estado del led DelayUs(10). El calificador volatile se utiliza para indicar al compilador que no est´ garana tizado que la variables retendr´n su valor entre llamadas sucesivas. La l´nea 18 permite indicar un bit espec´fico de una direcci´n de memoria adr meı ı o diante el texto PORT(adr. // INTE = 1. la habilitaci´n del Watchdog Timer. // Limpia flag del boton presionado led = !led. respectivamente.h. Estas definiciones especifican dio recciones de memoria de programa. En lenguaje C // indica el inicio de un comentario en una l´nea. ya que eliminarlas podr´a alterar el comportamiento ı del programa. En la l´nea 13 se utiliza la macro __CONFIG() para fijar los bits de configuraci´n.. o o Si se quisiese definir en el c´digo. ı o tambi´n conocidos como fuses (fusibles). deber´ removerse de las opciones de compilaci´n y o a o colocarse antes de los #include <. puertos de entrada y salida de cada µC.20 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: } MIGUEL TORRES TORRITI // ei(). // Espera 10 microsegundos blink(). interrupciones. bit) para asignar el bit 7 del ı o puerto B a la variable led.. El tipo bit indica que son un bit de un registro.

Rebote del bot´n. o La funci´n main(void) contiene parte del programa principal. as´ como los bits de habilitaci´n de interrupciones GIE. El prop´sito de deshabilı o o itar las interrupciones externas es evitar nuevas interrupciones por rebotes del bot´n o pulsador. 5. INTE. RBIE. a Entre las l´neas 25 y 32 se define la funci´n interrupci´n isr(void) empleando el ı o o calificador interrupt.mikroe. El registro TRISB se utiliza para indicar los pines del puerto B que son de alta impedancia (entradas). o Figura 7.TUTORIAL MICROCONTROLADORES PIC 21 compilador que reserve una posici´n fija de la RAM para almacenar la variable. Aqueo llas variables que no son static se crean en posiciones que son asignadas en forma din´mica a medida que se necesitan. por o ejemplo un overflow del timer o un cambio de estado en el pin RB0. Otros flags de interrupci´n son el del timer (T0IF) y las interrupciones o por cambio de estado en alguno de los pines 4.htm En el c´digo del programa la funci´n de interrupci´n se encarga de reconocer el o o o evento colocando nuevamente en 0 el flag de interrupci´n INTF y colocando la variable o boton en 1 para indicar que el bot´n fue presionado. En primer lugar se o enciende el LED colocando su estado en 1 (l´nea 54).. Siempre al iniciar todo programa es importante fijar los bits que ser´n utilizados como entradas de los puertos a . 6 o 7 del puerto B (RBIF).). El rebote de un bot´n se refiere a las oscilaciones que se producen antes de o que el bot´n se cierre completamente y la tensi´n se nivele en su valor final. o La desabilitaci´n de la interrupciones se puede realizar fijando INTE en 0 como se o muestra en la l´nea 28. en la pr´ctica las funciones de retardo hacen ı a innecesaria la l´nea 28. o Las funci´n blink(void) se utiliza para hacer parpadear el led cambiando su estado o repetidas veces por periodos de tiempo controlados por la funci´n DelayMs(. En la l´nea 57 se fija el pin ı ı RB0 como una entrada.. Sin embargo. M´s informaci´n sobre las interrupciones y su manejo se a o pueden encontrar en la hoja de especificaciones del µC PIC16F84 o tambi´n en: e http://www. La variable INTF (flag de interrupci´n) cambiar´ de 0 a 1 cuando se produce una interrupci´n externa en o a o RB0 (pin 4). El nombre de la funci´n no tiene importancia.com/en/books/picbook/2_07chapter. ı o son bits del registro INTCON. La funci´n o o interrupci´n es ejecutada cuando ocurre cualquiera de las interrupciones posibles. por esta raz´n ha sido comentada. Este o o fen´meno se muestra en la figura 7. Todos estos flags. T0IE.

esto deo a ber´ agregar el archivo al a secci´n Source Files en la ventana con la lista de archivos ıa o del proyecto. se hacer parpadear al LED invocando la funci´n blink(void) creada para dicho prop´sito. a o o Alternativamente puede definir la macro con el pragma: #define XTAL_FREQ 20MHZ antes de colocar las l´ ıneas #include <.22 MIGUEL TORRES TORRITI A y B. Por ultimo se inicia un loop sin fin.4. (10) Agregue el archivo con el c´digo en lenguaje C (creado en el paso anterior al proyecto) o empleando la opci´n Project/Add Files to Project.. o La definici´n de esta macro es necesaria para ajustar el ciclo de operaci´n de las o o rutinas de retardo a la frecuencia del cristal oscilador. Otra manera de agregar un archivo es seleccionando con el bot´n dereo cho del mouse la secci´n deseada en la lista de archivo del proyecto. Paso 3: Compilaci´n del Proyecto con PICC Lite. con un cristal de 20 MHz desde la l´ ınea de comando en una ventana DOS ejecute las siguientes instrucciones: picl --chip=16F84A -DXTAL_FREQ=20MHZ -C delay. Se abrir´ una ventana con u a el nombre Output. la cual mostrar´ el estado de la compilaci´n. por ejemplo ej2. (2) Existen dos opciones para compilar el programa: o • MPLAB IDE: Para compilar el proyecto seleccione la opci´n de la barra de men´ Project/Build o presione las teclas CTRL+F10. Luego. 4. puesto que estas no ı son deshabilitadas en ning´n momento. o o o (1) Seleccione la opci´n Project/Build Options.as) y que la opci´n Auto est´ seleccionada.. Presione Open. y si estaba o en 1 se coloca en 0..mcb. Esto se realiza asignando un 1 a los bits correspondientes de los registros TRISA y TRISB. el PIC16F84A. a o • L´ ınea de Comando: Para compilar el proyecto para la version actual del PIC16F84. Del men´ desplegado elija la opci´n Add Files y siga o ıa u o los pasos ya explicados en este punto para seleccionar el archivo. entonces ser´ necesario volverlas a habilitar en la l´nea o ı ıa ı 70 para poder reconocer nuevas interrupciones.># en el c´digo del programa.cof . Una ı alternativa es utilizar la funci´n ei() comentada en la l´ o ınea 61. se reconoce que el bot´n pulsador fue presionado colocando la variable ı o de estado boton nuevamente en 0. la o secci´n ser´ Source Files. es decir si estaba en 0 se coloca en 1. Luego seleccione la secci´n Compiler y agregue la siguiente definici´n de macro: o XTAL_FREQ=20MHZ Esto agregar´ la opci´n de compilaci´n -DXTRAL_FREQ=20MHZ (ver el paso siguiente). En este caso. a o De ser as´.c.c creado en el paso anterior.. La l´nea o o ı para volver habilitar las interrupciones (l´nea 70) fue comentada. y seleccione el archivo o ej2. Verifique que el tipo de archivo esta fijado en Source (*. (11) De la lista de archivos del proyecto.c picl --chip=16F84A -DXTAL_FREQ=20MHZ -oej2.. la cual cambiar´ a 1 si ocurre una interrupci´n externa. el cual permanentemente est´ detectando el ´ a estado de la variable boton. Luego se habilitan las interrupciones (l´neas 59 y 60). Si estas fuese deshabilitadas por la funci´n u o interrupci´n en la l´nea 28. Antes de cambiar de estado finalmente. Del men´ desplegado elija la opci´n Save para u o grabar el proyecto. *../Project. seleccione con el bot´n derecho del mouse el t´ o ıtulo del proyecto.c picl --chip=16F84A -DXTAL_FREQ=20MHZ -C ej2.. el estado de la varaible led se invierte mediante el operador ! de negaci´n.

2 del presente u documento.3. definiendo el tipo de dato para los caracteres.obj Es importante considerar que las l´ ıneas anteriores deben ser ejecutadas en una sola l´ ınea.TUTORIAL MICROCONTROLADORES PIC 23 -mej2.5. Paso 4: Programaci´n del µC. etc. %l. deber´ entonces realizar los dos primeros pasos de la secci´n 3. Por razones de espacio estas fueron divididas en tres l´ ıneas en este documento. primero de los archivos con las o definiciones para las funciones de retardo delayUs() y delayMs(). 4.3.%c %s" "--msgformat=Advisory[%n] %s" "--warnformat=Warning [%n] %f. por ejempa plo.%c %s" "--msgformat=Advisory[%n] %s" "--warnformat=Warning [%n] %f. %l. es posible desactivar o controlar el nivel de optimizaciones con la opci´n o --OPT<=type>.c picl -q -g --asmlist --chip=16F84A "--errformat=Error [%n] %f.map delay.obj ej2.%c %s" "--msgformat=Advisory[%n] %s" "--warnformat=Warning [%n] %f.map delay. o bien usando el MPLAB IDE si posee alg´n programador Microchip como el u PICSTART Plus.3. velocidad.obj y ej2. %l. o Puede programar el µC seg´n lo explicado en las secciones 2. se realiza el proceso de uni´n (linking) o o de los c´digos objetos delay. Es importante que estas est´n activas para este ejemplo.obj ej2.%c %s" -P --char=unsigned -DXTAL_FREQ=20MHZ -C ej2.%c %s" -P --char=unsigned -DXTAL_FREQ=20MHZ -C delay. %l. fijando el formato de los mensajes de error y advertencias. 2.obj Alternativamente puede ejecutar las instrucciones con m´s opciones.c picl -q -g --asmlist --chip=16F84A "--errformat=Error [%n] %f. ya que las funciones de retardo las requieren. %l. o picl -q -g --asmlist --chip=16F84A "--errformat=Error [%n] %f. Assembler) activas.hex fue creado usando el PICC mediante compilaci´n fuera del ambiente o o MPLAB IDE. Si el archivo . donde <=type> puede tomar distintos valores que se especifican en el manual del compilador PICC Lite. 2.1.cof -mej2.. como se o muestra a continuaci´n. la generaci´n de o c´digo Assembly.%c %s" -P --char=unsigned -DXTAL_FREQ=20MHZ -oej2. %l.5. En e otros casos.hex con el o c´digo de m´quina para el µC.obj para generar el archivo ej2. En todos los casos la compilaci´n se realiza con todas o a o las optimizaciones (espacio. Luego se compila el c´digo principal del ejemplo. a o . Finalmente. En ambos casos la compilaci´n se ejecutar por partes. A continaci´n se explican los pasos de programaci´n desde MPLAB IDE o o asumiendo que ha realizado los pasos descritos en la etapa de creaci´n del proyecto y compio laci´n.

Code Protect = On. Power Up Timer = Off. Como se puede apreciar en la figura. de la barra de men´ que el dispositivo correo u sponde al µC PIC16F84 o 16F84A. u (4) Programe el dispositivo presionando el icono de p´gina llena (amarilla) a µC o la a opci´n Programmer/Program de la barra de men´. o u (5) Normalmente el programador entregar´ un mensaje indicando si la programaci´n fue a o exitosa.24 MIGUEL TORRES TORRITI (1) Verifique las opciones de configuraci´n de MPLAB IDE. Si se desea que la interrupci´n n o se genere al soltar el bot´n.. La resistencia Pull-Down mantiene el puerto en LOW (0). de la barra de men´ son: Oscillator o u = XT. En particular verifique en la o opci´n Configure/Select Device. La unica modificacion al circuito ´ del ejemplo anterior es la adici´n de un bot´n pulsador B1 entre 5 V y RB0/INT con una o o resistencia Pull-Down R3. Circuito del ejemplo 2. u 4. el circuito de este ejemplo es muy similar al del Ejemplo 1. empleando la opci´n Programmer/Select Programmer de la barra de men´. Circuito del Ejemplo 2. Verifique tambi´n que los bits de configuraci´n de e o la opci´n Configure/Configuration Bits.. por ejemplo el PICSTART Plus. mientras el pulsador no sea presionado y cambie la se˜al a HIGH (1)... Watchdog Timer = Off. . En la figura 8 se muestra el circuito para el Ejemplo 2. Tambi´n puede ver los contenidos de la u e memoria del µC utilizando la opci´n View/Program Memory de la barra de men´. emplee el bot´n de verificaci´n (p´gina con check) o la opci´n o o a o Programmer/Verify de la barra de men´. o u (3) Borre la memor´ del µC presionando el icono de p´gina en blanco a µC o la opci´n ıa a o Programmer/Erase Flash Device de la barra de men´. o Figura 8. Sin embargo. entonces deber´n intercambiarse la resistencia Pull-Down por el o a bot´n pulsador. si desea verificar si efectivamente la programaci´n se realiz´ o o en forma correcta.6. (2) Seleccione el hardware programador. Si o u la programaci´n se realiz´ en forma correcta tanto el c´digo compilado como el c´digo o o o o leido de vuelta del µC deben tener el mismo checksum que se muestra en la barra de men´ del MPLAB IDE.

entre otros aspectos. a a o que es la que cuenta con m´s caracter´ a ısticas de la serie. Sin embargo.2. El PIC16F87x es el m´s popular para aplicaciones de nivel intermedio. oscilador interno. los µCs de e o nivel de entrada (entry-level) tienen mucho en com´n. n u Una vez que se ha dominado adecuadamente el PIC16F84. Las aplicaciones posibles del PIC16F84 solo est´n limitadas por la imaginaci´n. Consulte las n´merosas u referencias incluidas al final de este documento. como un menor costo frente al PIC16F84. Estos documentos son muy ilustrativos. Freescale MC68HC08. Existen versiones con distintas caro acter´ ısticas como el tama˜o de la memoria y n´mero de pines. Se recomienda en particular leer y hacer los ejemplos presentados en [11]. Este es el caso de los µCs Freescale u MC68HC08 (originalmente Motorola HC08). a 5. los cuales describen t´cnicas espc´ o e ıficas. Microchip provee tambi´n de documentos llamados e Application Notes (Notas de Aplicaci´n). Por otro lado. esta familia de u dispositivos tiene ciertos atractivos. se˜ales PWM. Otros fabricantes pueden tener productos considerablemente diferentes. aplicaciones y su implementaci´n con un gran nivel de detalles. PIC16F87x. Para mayor informaci´n consulte la secci´n de microcontroladores de Freescale o o (http://www. a e existe una gran cantidad de ejemplos y recursos en libros y la Internet. Desarrollos mas alla de este Documento Existe una variedad de µCs y posibles aplicaciones tan grande que puede parecer abrumadora al punto de dificultar o confundir la decisi´n de c´mo abordar nuevos temas y cual es el mejor o o camino a seguir. o f´ciles de comprender y mantienen la rigurosidad t´cnica de los fabricantes. es aproximadamente el doble que el del PIC16F84 con valores entorno a USD $10 versus USD $ 5. a Para dominar el PIC16F84 u otros µCs es esencial conocer y comprender a cabalidad la hoja de datos del µC provista por el fabricante. . convertidores A/D. se˜ ales PWM. convertidores A/D en casi todas sus versiones. El costo de la versi´n PIC16F877. En esta secci´n se sugieren algunos caminos para involucrarse en el desarrollo o de aplicaciones m´s complejas. y la disponibilidad gratuita n del popular entorno de desarrollo CodeWarrior.freescale. En la secci´n de educaci´n de Microchip tambi´n es posible o o e encontrar referencias de varios libros sobre los µCs PIC [23]. tanto en su funcionamiento. Adem´s est´n disponibles en encapsulados de a a 8 y 16 pines. n comunicaci´n serial por hardware. 5.TUTORIAL MICROCONTROLADORES PIC 25 ´ ´ 5. Estos fueron introducidos al mercado para competir con los µCs de Microchip. instrucciones de CPU o m´todo de programaci´n.1. adquirir los conocimientos para utilizar este nuevo PIC es considerablemente m´s f´cil. A pesar que actualmente la popularidad y disponibilidad de herramientas de software para estos µCs es a´n menor que la de los µCs PIC. En Intera o net pueden encontrarse aplicaciones sorprendentemente creativas a pesar de la simplicidad y restricciones de este µC b´sico.com/). y es una excelente a opci´n cuando se requieren m´s l´ o a ıneas de entrada/salida.

de Ingenier´ El´ctrica de la Universidad Cat´lica de Chile. Lista de Componentes del Programador e 2 1 1 1 1 1 1 Resistencias de 4. Condensador electrol´ ıtico de 100 µF. Este debe modificarse para o seleccionar el puerto serial a utilizar y el tipo de hardware programador. Resistencia de 470 Ω (valor no cr´ ıtico). o ´ Ap´ndice C. Bot´n pulsador “siempre abierto” (normalmente abierto). Condensadores de 22 pF. Lista de Componentes para los Ejemplos e 2 1 2 1 1 1 Resistencias de 10 kΩ (valor no cr´ ıtico). Para el programador COM84 lo esencial es configurar el puero serial que se desea utilizar (l´ ıneas 4 a 7) seg´n se u muestra en el siguiente ejemplo: 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: port serial ### for serial port: base= 0x3f8 # com1. no_power_C4C8 = 0 power: TxD mclr: TxD data: DTR data_f: CTS clock: RTS . n Conector DB9 Hembra para PCB en 90◦ . ıa e o Ap´ndice A. Base DIP18.26 MIGUEL TORRES TORRITI Agradecimientos Este tutorial fue posible gracias a una versi´n anterior del tutorial preparad por Juan Pablo o Caram en Octubre del 2003 para el curso IEE2712 Laboratorio de Circuitos del Dpto. Condensador de 4. Cristal oscilador de 20 MHz (alternativamente 4 MHz. ttyS3 # settings for UniprogIV / BR870 # and similar seriel PIC programmers. Regulador de voltaje 7805. Resistencia de 10 kΩ (valor no cr´ ıtico).7 µF (valor no critico).7 kΩ (valor no cr´ ıtico). o 10 MHz). ttyS2 #base= 0x2e8 # com4. Diodo 1N4148 u otro diodo rectificador de se˜al. Ap´ndice B. ttyS1 #base= 0x3e8 # com3. ttyS0 #base= 0x2f8 # com2. Configuracion del PROG84 e El archivo de configuraci´n del PROG84 se denomina lp_cfg.

http://www. http://www. Los cap´ ıtulos del libro abordan la introducci´n general a los microcontroladores.gnupic.html [10] Eric’s PIC Page.botkin. o http://people. y varios ejemplos.ccsinfo. TUTORIALES [12] http://www. por Wouter van Ooijen. un buen complemento al presente tutorial. [13] http://www.org/ Recopilaci´n de recursos para el manejo y desarrollo de aplicaciones con PICs para Linux/BSD. Aqu´ podr´ obtener JAL para Linux/BSD. http://www.ic-prog.com/en/books/picbook/picbook. desensambladores.com/ HITECH Software LLC. que incluyen compiladores. http://www.. Programador de PICs e informaci´n relacionada. produce el compilador PICC Lite para C. 2000. http://www. y simuladores.com/~eric/pic/ [11] mikroElektronika : books : PIC microcontrollers: http://www. mikroElectronica.ac.nl/swp/ Introducci´n sencilla y completa.microchipc. Este es util como referencia pero no es el mejor ´ ejemplo para empezar. Inc. a [2] Gnu PIC Utilities (gputils).htm Contiene ejemplos sencillos de aplicaci´n.pdf Tutorial Descriptivo del PIC16F87x por John Becker. Inc.org/dale/PIC.htm Este sitio contiene una excelente introducci´n a los microcontroladores PIC. Windows o MacOS ı a X. http://gputils. ensambladores.wimborne. por Nebojsa Matic y Dragan Andric.com/conference/ Tutorial Descriptivo del PIC18Fxxxx. o MLAB IDE. http://www.com/ [6] GNUPIC. toda la documentaci´n asociada y acceder a numerosos ejemplos. o [9] David Tait.sourceforge.TUTORIAL MICROCONTROLADORES PIC 27 Referencias REFERENCIAS BASICAS [1] Microchip Technology. ensambladores. http://jal.htsoft. [14] PIC Pages http://www.microchip.brouhaha. Aqui encontrar´ las hojas de datos y Application Notes.uk/pictutorial.epemag. o a [7] IC-Prog Prototype Programmer.sourceforge. Util como referencia general pero no para empezar.net/ Sitio de la comunidad de desarrollo de JAL.man. La versi´n completa de este producto es uno de los compiladores m´s poderosos existentes o a para microcontroladores PIC. o [5] CCS.mikroe. http://www. En la secci´n programadores encontrar´ un link para bajar el Prog84.net/ Conjunto de herramientas para microcontroladores Microchip PIC.com/ Sitio del fabricante de los microcontroladores PIC. Incluye o links a compiladores. [4] Jal. Este puede obtenerse en forma gratuita de su sitio web. May. 3a ed. o . el lenguaje de ensamblador. programadores y otras herramientas. Starting with PIC microcontrollers. El sitio presente en forma o resumida los cap´ ıtulos del libro: The PIC microcontroller. simuladores. [3] HI-TECH Software LLC.co.uk/~mbhstdj/piclinks.com/ INTRODUCCION A LOS MICROCONTROLADORES PIC [8] Wouter van Ooijen.voti.

info/links/icup.hobby-electronics. nivel y tipo de microcontrolador que se emplea en el e libro. Using microcontrollers in your robot: http://homepages. ver referencia m´s abajo.net/~paul.microchipc. Application Note AN 964.com/ Software de simulaci´n de circuitos anal´gicos y digitales que permite simular los circuitos a partir de su o o descripci´n en base a esquem´ticos.ac. entre otros. [18] Peter Anderson’s PIC Page: http://www.pablin.pablin.ac.com.pablin.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1441 Este sitio contiene una extensa lista de libros publicados por diversos autores sobre los microcontroladores PIC. a a [17] Build Your Own Microcontroller Projects: http://www.com/PIC16bootload/ http://www. e [19] Paul Hills.kmitl. o pero de gran utilidad pr´ctica. DC y AC. La lista tambi´n incluye datos sobre el idioma.ni. tambi´n basado en SPICE. Lourens. El proyecto original es de Wichit Sirichote.htm (Software para electr´nica.ar/electron/proyecto/picnet/index. R. PICs by Hobby-Electronics: http://www.9.com/PIC18bootload/ REFERENCIAS ADICIONALES [21] IEE2172 Laboratorio de Circuitos UC http://www2.ar/electron/ http://www. Esta basado en Spice y permite realizar an´lisis transiente. Este proyecto tambi´n se encuentra traducido al espa˜ol en la p´gina web de Pablin.htm REMOTE[RS232] Using Easy-Server V0. Charais. e Actualmente es desarrollado por National Instruments y ha incorporado otras herramientas.com/multisim/ Originalmente llamado Electronics Workbench. SOFTWARE PARA SIMULACION DE CIRCUITOS [24] Microcap: http://www.th/~kswichit%20/easyserver0. como el desarrollo de PCBs a partir de los esquem´ticos o herramientas para facilitar la ense˜anza y aprendizaje de a n electr´nica.ing.microchip.microchip.28 MIGUEL TORRES TORRITI EJEMPLOS DE APLICACION [15] J.cl/~iee2172/?q=node/2 [22] Links about Electronics Microprocessors.hills/Embedded/Embedded.9 – Excelente ejemplo de una aplicaci´n sencialla. pero de gran o utilidad pr´ctica.phanderson. es muy similar a Microcap.which. interfaces serial. ver a e n a referencia anterior.com. o [16] Pablin Electr´nica.ar/electron/download/index. rutinas aritm´ticas.) o http://www.html BOOTLOADERS [20] PIC micro and C bootloader by Shane Tolmie: http://www. Programmable Components.htm Entradas y Salidas de un PIC controladas por Internet – Excelente ejemplo de una aplicaci´n sencilla.com.php?PHPSESSID=2aa545e794080ff3d135ba1b9caa6b4a#pic [23] Microchip Technology’s University Corner: http://www. o .com/downloads/en/AppNotes/00964A.kmitl. Proyectos y circuitos de ejemplo. o a a [25] Multisim: http://www. Software PID Control of an Inverted Pendulum Using the PIC 16F684.spectrum-soft. o http://www.pdf Interesante ejemplo de aplicaci´n de microcontroladores al control de motores.microchipc. http://ww1.puc.9/easyserver0.com/PIC/ Presenta ejemplos con interrupciones. Microchip Technology Inc.th/~kswichit%20/ http://www.

Tiene una librer´ de componentes muy completa y es muy f´cil agregar componentes nuevos.cadsoft.de/ a ´ ˜ Escuela de Ingenier´ Pontificia Universidad Catolica de Chile. ago. http://www. ıa a Permite generar los PCBs directamente a partir de los esquem´ticos. : 56 (2) 354-2000 .cadsoft. Chile. Tel. Vicuna Mackenna 4860. Santiıa.TUTORIAL MICROCONTROLADORES PIC 29 ˜ SOFTWARE PARA DISENO DE PCBs y ESQUEMATICOS [26] Eagle: http://www.de/ Excelente software para el dise˜o de PCBs y dibujo de esquem´ticos que funciona bajo Linux/BSD o n a Windows.

Sign up to vote on this title
UsefulNot useful