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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

cadsoft. Santiıa. Chile.cadsoft. : 56 (2) 354-2000 . ago. ı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.de/ Excelente software para el dise˜o de PCBs y dibujo de esquem´ticos que funciona bajo Linux/BSD o n a Windows.de/ a ´ ˜ Escuela de Ingenier´ Pontificia Universidad Catolica de Chile. Tiene una librer´ de componentes muy completa y es muy f´cil agregar componentes nuevos. http://www. Vicuna Mackenna 4860. Tel.

Sign up to vote on this title
UsefulNot useful