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

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

como variar o las se˜ales de salida de acuerdo al valor en la entradas. analog-to-digital) para convertir un nivel a de voltaje en un cierto pin a un valor digital manipulable por el programa del microcontrolador. Monitoreando el valor de las entradas. Serial Peripheral Interfaces). 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. Por lo general varios pines de datos son bidireccionales. las cuales se explican en m´s detalle en las siguientes subseca ciones. La alta integraci´n de subsistemas que componen un µC reduce el n´mero de chips. el a o microcontrolador puede responder a eventos externos y realizar una cierta acci´n. • 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. 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. Red de Area de Controladores (CAN. 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.4 MIGUEL TORRES TORRITI Seriales (SPIs. es decir pueden configurarse como entradas o salidas. a 1. No todas las interrupciones necesariamente est´n asociadas al cambio del estado de los pines a de entrada. se genera una se˜al de interrupci´n que iniciar´ la ejecuci´n de n o a o la subrutina de interrupci´n. . • 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. 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. Una vez pulsado. Para responder a eventos externos. que por ejemplo podr´ activar un pin de salida para encender o ıa un led. Pulse-Width Modulation) para generar ondas cuadradas de frecuencia fija pero con ancho de pulso modificable. 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. Un aspecto de especial inter´s para el desarrollador de circuitos basados en microcontroladores e son las interfaces de entrada/salida. pueden adquirir datos interpretando el valor de voltaje como un valor l´gico 0 o 1. el µC debe conectarse al circuito base y someo ´ terse a pruebas para verificar el funcionamiento correcto del programa. Proceso de Desarrollo. USB (Universal Serial Bus). Un ejemplo t´ o ıpico es el de un bot´n pulsador conectado a un pin o de entrada. El proceso de desarrollo de una aplicaci´n basada en microcontroladores se compone de las o siguientes etapas principales. • Prueba y verificaci´n: Por ultimo. Controller Area Network). – Moduladores por Ancho de Pulso (PWM.3. Estas caracter´ ısticas depender´n del modelo de µC empleado. Tambi´n hay interrupciones que pueden estar asociadas al valor de una entrada e AD. Cuando son entradas. • Otras opciones: – Conversores An´logo-Digitales (A/D. o al cumplimiento de un periodo de tiempo fijado por un timer o temporizador. los n µCs cuentan con un recurso conocido como interrupciones.

cpp) → compilador → (. Desarrollo del software.o. .coff (common object file format) dependiendo del 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.bin. 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.coff) • Lenguaje de Alto Nivel .o. .o (por objeto).hex. compuesto por instrucciones en c´digo binario que a o o son directamente entendidas por la CPU del microcontrolador. tambi´n denominado c´digo de a e o m´quina o c´digo objeto (object code).TUTORIAL MICROCONTROLADORES PIC 5 1. 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 . En esta etapa consiste en escribir y compilar/ensamblar el programa que determinar´ las a acciones del µCy su funcionamiento.1. Otra alternativa es emplear un lenguaje de alto nivel con una mayor cantidad de abstracciones. ya que el programa a a se desarrolla en un nivel cercano a las caracter´ ısticas del hardware. . .asm y luego utilizar una programa ensamblador (Aso sembler) para generar un archivo en lenguaje de m´quina. Tal vez los lenguajes de a a 1En estricto rigor. el lenguaje Assembly es m´s dif´ de emplear. . .Lenguaje de M´quina/C´digo Objeto a o (. El ensamblador normalmente genera un archivo con extensi´n . El lenguaje Assembly se compone de instrucciones mnem´nicas de bajo nivel. 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. o o .bin.Lenguaje Assembly .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. requiere experiencia y un a ıcil mayor tiempo de desarrollo. .Lenguaje de M´quina/C´digo Objeto a o (.c. dependiendo del lenguaje inicial que se utiliza para escribir el programa: • Lenguaje Assembly .hex.asm) → ensamblador → (. Existen distintas maneras de desarrollar el programa.bin (por binario). o a Figura 1.asm) → ensamblador → (.hex (por hexadecimal). Assembly es el lenguaje y Assembler es la herramienta de software que traduce el c´digo o Assembly a lenguaje de m´quina. Al carecer de abstracciones. Sin embargo.3. Etapas del desarrollo de software. . .

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

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

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

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

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

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

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

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. como aquellos que utilizan circuitos seriales de baja potencia para ahorro de consumo muy comunes en algunos computadores port´tiles. 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. se utiliza RB7 (PGD o Program Data) para ingresar serialmente la informaci´n. e inmediatamente despu´s deber llevase y mantenerse en un voltaje e entre 12 y 14 V durante toda la programaci´n. mientras que M CLR (pin 4) debe llevarse a 0 por un periodo corto para resetear el µC. Esto se logra mediante el software programador. En todo caso. o . 2. Circuito Base para Operaci´n Regular. o o o Figura 4. Programador serial minimalista JDM PIC Programmer 2. Una vez que el µC ha entrado en modo de o programaci´n. o o mientras que RB6 (PGC o Program Clock) se utiliza como seal de reloj para aceptar cada bit en RB7.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).4. Los detalles del protocolo de programaci´n pueden encontrarse en la documentaci´n del fabricante [1]. Por esta raz´n el programador o puede presentar problemas de funcionamiento en ciertos computadores.

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

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

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

un voltaje o de 5 V ser´ aplicado al LED. Code Protect = Off (a menos que desee otra configuraci´n particular). Watchdog Timer = Off. o u Normalmente el programador entregar´ un mensaje indicando si la programaci´n fue a o exitosa.TUTORIAL MICROCONTROLADORES PIC 17 (4) (5) (6) (7) (8) = XT.microchip. o o (1) Obtenga el MPLAB IDE en: http://www. Una configuraci´n alternativa es o ıa conectar desde Vdd (5 V) el LED en serie con la resitencia a RB7. Con excepci´n de los componentes o conectados a RB7 (pin 13). Antes de encender o apagar el LED este parpadea tres o veces anunciando el cambio de estado. Cuando el estado l´gico de la variable led es 1.6. el resto de los componentes constituyen la circuiter´ m´ ıa ınima para el funcionamiento del PIC16F84. Ejemplo 2: Programacion en PICC Lite 4. empleando la opci´n Programmer/Select Programmer de la barra de men´. los cuales corresponden a elementos espec´ ıficos del ejemplo. Power Up Timer = Off. Esto causar´ que el LED se encienda cuando la variable led tenga un estado l´gico 0.com/products/compilers/PICClite. por ejemplo el PICSTART Plus. 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´. 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. o Este ejemplo ilustra la respuesta a est´ ımulos externos utilizando interrupciones implementada en lenguaje C para el compilador PICC Lite.1.2. 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.php (4) Instale el compilador siguiendo todos los pasos de la instalaci´n. Circuito del Ejemplo 1. u 3. o Seleccione el hardware programador. 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´. respectivamente. 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´. 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. Paso 1: Instalaci´n y Configuraci´n del Compilador PICC Lite.com/ (2) Instale el MPLAB siguiendo todos los de la instalaci´n. o . En la figura 6 se muestra el circuito para el Ejemplo 1. o (3) Obtenga el compilador PICC Lite en: http://www. 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´. Sin embargo. 4. si desea verificar si efectivamente la programaci´n se realiz´ o o en forma correcta.htsoft. Descripci´n. El programa permite encender y apagar un LED al presionar un bot´n pulsador. o u Habilite el hardware programador con la opci´n Programmer/Enable Programmer. o ´ 4. 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.

(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.c ubicados en la directorio: C:\Program Files\HI-TECH Software\PICC\lite\9.h y delay.exe (c) Si es necesario agregue la ubicaci´n donde se ubiquen archivos include (. a (2) Copie los archivos delay. e o (8) Si todas las opciones elegidas est´n conformes. (5) Una vez instalado el PICC Lite.60\bin\picl.. presiones Next. (3) Elija la opci´n de la barra de men´ Project/Project Wizard y luego presione Next. o (1) Cree un directorio donde guardar´ los archivos del proyecto. de lo contrario retroa ceda a los pasos anteriores y haga las correcciones necesarias. por ejemplo:ej2.exe. y luego fije la ubicaci´n del directorio o del proyecto creado en el paso 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. (7) Seleccione los archivos delay. Paso 2: Creaci´n del Proyecto en MPLAB IDE.h) bajo la o opci´n HI-TECH Universal ToolSuite/Default Search Path & Directories/Include o Search Path. por ejemplo: ej2. Circuito del ejemplo 1.c.. (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.18 MIGUEL TORRES TORRITI Figura 6.h y delay. 4. 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. o u (4) Elija el µC seleccionando PIC16F84A.60\samples o donde haya instalado PICC Lite a la carpeta del proyecto que creo en el paso anterior. o (6) Escriba el nombre del proyecto.3. por ejemplo: o o C:\Program Files\HI-TECH Software\PICC\lite\9. (5) Elija la herramineta de compilaci´n activa HI-TECH Universal ToolSuite y actualice o la ubicaci´n del compilador de ser necesario.

ya que se pueden fijar externamente // en MPLAB IDE bajo la opcion de la barra de menu // <Configure/Configuration Bits. Disable) // PROTECT: Code write protection __CONFIG(XT&WDTDIS&PWRTDIS&PROTECT). por ejemplo con el nombre ej2. static volatile bit boton = 0.} led = !led.c. //#define XTAL_FREQ 20MHZ #define PORTBIT(adr. Disable) // PWRT: Power-up Timer (EN/DIS: Enable. // Habilitacion de interrupciones externas. GIE = 1.c en el directorio del o proyecto.h" // Configuration Bits (a. XTAL. } // Rutina Principal void main(void){ led = 1.i<5. // Habilitacion global de interrupciones.h> #include "delay.} led = !led. // Limpia flag de interrupcion INTF } } // Rutina Parpadeo void blink(void){ // Parpadea el una veces antes de cambiar // de estado char i. for(i=0. for(i=0. for(i=0. // Funcion Interrupcion static void interrupt isr(void) { if(INTF){ // -.a. for(i=0. // Boton presionado INTF = 0. bit) ((unsigned)(&adr)*8+(bit)) // Variables Globales static volatile bit led @ PORTBIT(PORTB.i<5.i++){ DelayMs(255). Fuses) // Estas lineas son opcionales. 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).7).k. // OPTION = 0b00000111.} led = !led.. Low-power XTAL // WDT: Watchdog Timer (EN/DIS: Enable. // Deshabilita interrupciones en pin INT boton = 1.i++){ DelayMs(255). INTE = 1. Para guardar el archivo utilice la opci´n File/Save As.Flag Interrupcion en pin INT -// INTE = 0.TUTORIAL MICROCONTROLADORES PIC 19 el archivo con extensi´n . // Fija PS0-PS2 Pre-escaladores del // Watchdog Timer WDTR TRISB = 0b00000001. .. //__CONFIG(RC&WDTEN&PWRTEN&UNPROTECT).> // Definiciones: // RC/HS/XT/LP: Oscilador RC.} led = !led. // Fija el pin RB0 en como entrada // (en alta impedancia).i++){ DelayMs(125).i<5. High-speed XTAL.i<5.

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

Siempre al iniciar todo programa es importante fijar los bits que ser´n utilizados como entradas de los puertos a .TUTORIAL MICROCONTROLADORES PIC 21 compilador que reserve una posici´n fija de la RAM para almacenar la variable. El nombre de la funci´n no tiene importancia. por esta raz´n ha sido comentada. En primer lugar se o enciende el LED colocando su estado en 1 (l´nea 54). Sin embargo. 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(.. INTE. La funci´n o o interrupci´n es ejecutada cuando ocurre cualquiera de las interrupciones posibles. Todos estos flags.. 5. Aqueo llas variables que no son static se crean en posiciones que son asignadas en forma din´mica a medida que se necesitan. o La desabilitaci´n de la interrupciones se puede realizar fijando INTE en 0 como se o muestra en la l´nea 28. o La funci´n main(void) contiene parte del programa principal.). por o ejemplo un overflow del timer o un cambio de estado en el pin RB0. 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). 6 o 7 del puerto B (RBIF). Rebote del bot´n.mikroe. En la l´nea 57 se fija el pin ı ı RB0 como una entrada. El registro TRISB se utiliza para indicar los pines del puerto B que son de alta impedancia (entradas). 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. 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. T0IE. RBIE. as´ como los bits de habilitaci´n de interrupciones GIE.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. a Entre las l´neas 25 y 32 se define la funci´n interrupci´n isr(void) empleando el ı o o calificador interrupt.com/en/books/picbook/2_07chapter. El prop´sito de deshabilı o o itar las interrupciones externas es evitar nuevas interrupciones por rebotes del bot´n o pulsador. Otros flags de interrupci´n son el del timer (T0IF) y las interrupciones o por cambio de estado en alguno de los pines 4. ı o son bits del registro INTCON. o Figura 7. en la pr´ctica las funciones de retardo hacen ı a innecesaria la l´nea 28. Este o o fen´meno se muestra en la figura 7.

*. el estado de la varaible led se invierte mediante el operador ! de negaci´n. 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.c picl --chip=16F84A -DXTAL_FREQ=20MHZ -C ej2. 4. 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. Luego. es decir si estaba en 0 se coloca en 1. Verifique que el tipo de archivo esta fijado en Source (*.as) y que la opci´n Auto est´ seleccionada. 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.cof . el PIC16F84A. (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. En este caso.4. Luego se habilitan las interrupciones (l´neas 59 y 60). puesto que estas no ı son deshabilitadas en ning´n momento.. Por ultimo se inicia un loop sin fin. Esto se realiza asignando un 1 a los bits correspondientes de los registros TRISA y TRISB. y seleccione el archivo o ej2. 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). la cual mostrar´ el estado de la compilaci´n... y si estaba o en 1 se coloca en 0. Del men´ desplegado elija la opci´n Save para u o grabar el proyecto. Paso 3: Compilaci´n del Proyecto con PICC Lite. a o o Alternativamente puede definir la macro con el pragma: #define XTAL_FREQ 20MHZ antes de colocar las l´ ıneas #include <. a o De ser as´..c picl --chip=16F84A -DXTAL_FREQ=20MHZ -oej2.c.># en el c´digo del programa. La l´nea o o ı para volver habilitar las interrupciones (l´nea 70) fue comentada.. la o secci´n ser´ Source Files. 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. la cual cambiar´ a 1 si ocurre una interrupci´n externa. el cual permanentemente est´ detectando el ´ a estado de la variable boton. seleccione con el bot´n derecho del mouse el t´ o ıtulo del proyecto. a o • L´ ınea de Comando: Para compilar el proyecto para la version actual del PIC16F84.. o o o (1) Seleccione la opci´n Project/Build Options. por ejemplo ej2. Presione Open. 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.mcb. entonces ser´ necesario volverlas a habilitar en la l´nea o ı ıa ı 70 para poder reconocer nuevas interrupciones. se reconoce que el bot´n pulsador fue presionado colocando la variable ı o de estado boton nuevamente en 0.. Si estas fuese deshabilitadas por la funci´n u o interrupci´n en la l´nea 28.c creado en el paso anterior./Project. se hacer parpadear al LED invocando la funci´n blink(void) creada para dicho prop´sito. Se abrir´ una ventana con u a el nombre Output. Antes de cambiar de estado finalmente. (11) De la lista de archivos del proyecto.22 MIGUEL TORRES TORRITI A y B. Una ı alternativa es utilizar la funci´n ei() comentada en la l´ o ınea 61. (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.

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

Circuito del ejemplo 2. La resistencia Pull-Down mantiene el puerto en LOW (0). (2) Seleccione el hardware programador. En la figura 8 se muestra el circuito para el Ejemplo 2. 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. o u (5) Normalmente el programador entregar´ un mensaje indicando si la programaci´n fue a o exitosa.6. 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´.24 MIGUEL TORRES TORRITI (1) Verifique las opciones de configuraci´n de MPLAB IDE.. 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´. el circuito de este ejemplo es muy similar al del Ejemplo 1. Como se puede apreciar en la figura. Si se desea que la interrupci´n n o se genere al soltar el bot´n.. u 4. 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´. 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. si desea verificar si efectivamente la programaci´n se realiz´ o o en forma correcta. mientras el pulsador no sea presionado y cambie la se˜al a HIGH (1). o Figura 8. empleando la opci´n Programmer/Select Programmer 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´. Code Protect = On. . Circuito del Ejemplo 2. Sin embargo. En particular verifique en la o opci´n Configure/Select Device.. por ejemplo el PICSTART Plus. de la barra de men´ que el dispositivo correo u sponde al µC PIC16F84 o 16F84A. Verifique tambi´n que los bits de configuraci´n de e o la opci´n Configure/Configuration Bits. entonces deber´n intercambiarse la resistencia Pull-Down por el o a bot´n pulsador. Watchdog Timer = Off. Power Up Timer = Off. de la barra de men´ son: Oscillator o u = XT..

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

Lista de Componentes del Programador e 2 1 1 1 1 1 1 Resistencias de 4. Resistencia de 10 kΩ (valor no cr´ ıtico). Condensadores de 22 pF. Ap´ndice B. Condensador electrol´ ıtico de 100 µF.7 kΩ (valor no cr´ ıtico). Regulador de voltaje 7805. de Ingenier´ El´ctrica de la Universidad Cat´lica de Chile.7 µF (valor no critico).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. Cristal oscilador de 20 MHz (alternativamente 4 MHz. Configuracion del PROG84 e El archivo de configuraci´n del PROG84 se denomina lp_cfg. 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. Bot´n pulsador “siempre abierto” (normalmente abierto). ttyS2 #base= 0x2e8 # com4. ttyS0 #base= 0x2f8 # com2. ttyS1 #base= 0x3e8 # com3. Resistencia de 470 Ω (valor no cr´ ıtico). ıa e o Ap´ndice A. o 10 MHz). o ´ Ap´ndice C. Condensador de 4. no_power_C4C8 = 0 power: TxD mclr: TxD data: DTR data_f: CTS clock: RTS . ttyS3 # settings for UniprogIV / BR870 # and similar seriel PIC programmers. Lista de Componentes para los Ejemplos e 2 1 2 1 1 1 Resistencias de 10 kΩ (valor no cr´ ıtico). n Conector DB9 Hembra para PCB en 90◦ . Diodo 1N4148 u otro diodo rectificador de se˜al. Este debe modificarse para o seleccionar el puerto serial a utilizar y el tipo de hardware programador. Base DIP18.

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

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

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

Sign up to vote on this title
UsefulNot useful