P. 1
Tutorial Pic16f84

Tutorial Pic16f84

|Views: 91|Likes:

More info:

Published by: Fernando Gonzales Sanchez on May 21, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

02/10/2013

pdf

text

original

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Este o o fen´meno se muestra en la figura 7. 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. En la l´nea 57 se fija el pin ı ı RB0 como una entrada. Siempre al iniciar todo programa es importante fijar los bits que ser´n utilizados como entradas de los puertos a . 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.TUTORIAL MICROCONTROLADORES PIC 21 compilador que reserve una posici´n fija de la RAM para almacenar la variable. por o ejemplo un overflow del timer o un cambio de estado en el pin RB0. INTE. T0IE. RBIE. por esta raz´n ha sido comentada. El registro TRISB se utiliza para indicar los pines del puerto B que son de alta impedancia (entradas). 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). 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(. 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).mikroe.. 5. El prop´sito de deshabilı o o itar las interrupciones externas es evitar nuevas interrupciones por rebotes del bot´n o pulsador. ı o son bits del registro INTCON.com/en/books/picbook/2_07chapter. 6 o 7 del puerto B (RBIF). Sin embargo. Rebote del bot´n. en la pr´ctica las funciones de retardo hacen ı a innecesaria la l´nea 28. M´s informaci´n sobre las interrupciones y su manejo se a o pueden encontrar en la hoja de especificaciones del µC PIC16F84 o tambi´n en: e http://www.. La funci´n o o interrupci´n es ejecutada cuando ocurre cualquiera de las interrupciones posibles.). Aqueo llas variables que no son static se crean en posiciones que son asignadas en forma din´mica a medida que se necesitan. 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. o La funci´n main(void) contiene parte del programa principal. o La desabilitaci´n de la interrupciones se puede realizar fijando INTE en 0 como se o muestra en la l´nea 28. o Figura 7. Todos estos flags.

y si estaba o en 1 se coloca en 0. a o • L´ ınea de Comando: Para compilar el proyecto para la version actual del PIC16F84. puesto que estas no ı son deshabilitadas en ning´n momento. entonces ser´ necesario volverlas a habilitar en la l´nea o ı ıa ı 70 para poder reconocer nuevas interrupciones. Una ı alternativa es utilizar la funci´n ei() comentada en la l´ o ınea 61. es decir si estaba en 0 se coloca en 1./Project. Verifique que el tipo de archivo esta fijado en Source (*. 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. 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. el estado de la varaible led se invierte mediante el operador ! de negaci´n. seleccione con el bot´n derecho del mouse el t´ o ıtulo del proyecto. Si estas fuese deshabilitadas por la funci´n u o interrupci´n en la l´nea 28. Antes de cambiar de estado finalmente.. Luego se habilitan las interrupciones (l´neas 59 y 60). a o De ser as´.mcb... (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.22 MIGUEL TORRES TORRITI A y B.># en el c´digo del programa. la cual cambiar´ a 1 si ocurre una interrupci´n externa.as) y que la opci´n Auto est´ seleccionada. se reconoce que el bot´n pulsador fue presionado colocando la variable ı o de estado boton nuevamente en 0. se hacer parpadear al LED invocando la funci´n blink(void) creada para dicho prop´sito.. Esto se realiza asignando un 1 a los bits correspondientes de los registros TRISA y TRISB.cof . 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. Luego. el cual permanentemente est´ detectando el ´ a estado de la variable boton. o o o (1) Seleccione la opci´n Project/Build Options.c creado en el paso anterior.c picl --chip=16F84A -DXTAL_FREQ=20MHZ -oej2. y seleccione el archivo o ej2. 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. (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. el PIC16F84A. La l´nea o o ı para volver habilitar las interrupciones (l´nea 70) fue comentada. Presione Open. por ejemplo ej2..c. Se abrir´ una ventana con u a el nombre Output.c picl --chip=16F84A -DXTAL_FREQ=20MHZ -C ej2.. *. Paso 3: Compilaci´n del Proyecto con PICC Lite. Del men´ desplegado elija la opci´n Save para u o grabar el proyecto. la cual mostrar´ el estado de la compilaci´n. Por ultimo se inicia un loop sin fin. 4. En este caso. a o o Alternativamente puede definir la macro con el pragma: #define XTAL_FREQ 20MHZ antes de colocar las l´ ıneas #include <.4. 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 o secci´n ser´ Source Files. 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 %s" "--msgformat=Advisory[%n] %s" "--warnformat=Warning [%n] %f. ya que las funciones de retardo las requieren. Por razones de espacio estas fueron divididas en tres l´ ıneas en este documento. a o . 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.3.cof -mej2. %l. primero de los archivos con las o definiciones para las funciones de retardo delayUs() y delayMs(). o picl -q -g --asmlist --chip=16F84A "--errformat=Error [%n] %f.1. donde <=type> puede tomar distintos valores que se especifican en el manual del compilador PICC Lite. %l. la generaci´n de o c´digo Assembly.3. 2.%c %s" "--msgformat=Advisory[%n] %s" "--warnformat=Warning [%n] %f. etc. Finalmente.obj y ej2.%c %s" -P --char=unsigned -DXTAL_FREQ=20MHZ -oej2. como se o muestra a continuaci´n.%c %s" -P --char=unsigned -DXTAL_FREQ=20MHZ -C ej2. Paso 4: Programaci´n del µC..obj para generar el archivo ej2.2 del presente u documento. %l.obj ej2. es posible desactivar o controlar el nivel de optimizaciones con la opci´n o --OPT<=type>.map delay. Si el archivo . %l.obj Alternativamente puede ejecutar las instrucciones con m´s opciones. En todos los casos la compilaci´n se realiza con todas o a o las optimizaciones (espacio.map delay.3. 4.obj ej2. Luego se compila el c´digo principal del ejemplo.hex con el o c´digo de m´quina para el µC. velocidad.5. 2. %l.TUTORIAL MICROCONTROLADORES PIC 23 -mej2.5. o Puede programar el µC seg´n lo explicado en las secciones 2. %l. por ejempa plo. En ambos casos la compilaci´n se ejecutar por partes. Assembler) activas.obj Es importante considerar que las l´ ıneas anteriores deben ser ejecutadas en una sola l´ ınea.%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.%c %s" -P --char=unsigned -DXTAL_FREQ=20MHZ -C delay. 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. se realiza el proceso de uni´n (linking) o o de los c´digos objetos delay. deber´ entonces realizar los dos primeros pasos de la secci´n 3. fijando el formato de los mensajes de error y advertencias. En e otros casos.c picl -q -g --asmlist --chip=16F84A "--errformat=Error [%n] %f. Es importante que estas est´n activas para este ejemplo. definiendo el tipo de dato para los caracteres.

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

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

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

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

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

Chile. Tel.TUTORIAL MICROCONTROLADORES PIC 29 ˜ SOFTWARE PARA DISENO DE PCBs y ESQUEMATICOS [26] Eagle: http://www. : 56 (2) 354-2000 . http://www. ago. Santiıa. Vicuna Mackenna 4860.cadsoft.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.de/ Excelente software para el dise˜o de PCBs y dibujo de esquem´ticos que funciona bajo Linux/BSD o n a Windows. ıa a Permite generar los PCBs directamente a partir de los esquem´ticos.cadsoft.

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->