Está en la página 1de 80

2ª forros.

qxd:Maquetación 1 15/01/14 12:46 Página 1


PIC para Estudiantes y Aficionados es una segunda edición reformada de un
texto publicado en el año 2003 y corresponde a la serie sobre Microcontrolado-
res PIC que escribo y reemplaza al texto: “Curso de PICs Primer Nivel (2004)”.
Se trata de una obra que enseña paso a paso cómo trabajar con los PICs de Mi-
crochip, brindando abundante información teórico-práctica, desarrollada en for-
ma amena para que cada tema pueda ser comprendido aún por quienes recién
comienzan a trabajar con estos circuitos integrados. Su edición, ampliada y re-
visada, obedece a que sus textos antecesores se agotaron, razón por la cual
“preferimos” modificar levente el contenido pero manteniendo el “espíritu” que
debe poseer una obra destinada a los que “poco” saben sobre el tema.
En la obra se emplean programas y utilitarios que, en su mayoría, puede des-
cargar de Internet a través de claves que se dan en cada caso. A su vez, podrá
obtener (también de Internet) los programas en versión “.asm” y “.hex” de todos
los ejemplos ilustrados.
Son muchos los microcontroladores que se fabrican (Motorola, National Se-
miconductor, Philips, Texas Instruments, Atmel, Intel, etc) pero no cabe duda que
los PICs de Microchip siguen acaparando la atención de los estudiantes y aficio-
nados por su facilidad de manejo, la protección de sus terminales y la gran can-
tidad de ejemplos y proyectos disponibles en Internet.
Este texto debe ser estudiado de la misma manera que se realiza un “curso”,
es decir, en la medida que se sugieren prácticas es aconsejable que Ud. las rea-
lice para afianzar los conocimientos que se imparten.
Se describen las bases que hacen al funcionamiento de los PICs, tomando co-
mo ejemplo al PIC16F84, sin embargo, todo lo que se desarrolla es aplicable a
la mayoría de chips de la familia de Microchip. Luego el lector aprenderá cuá-
les son las instrucciones que forman parte del set de este circuito integrado y có-
mo se realiza un programa en el lenguaje assembler de Microchip. Tenga en
cuenta que el estudio de las instrucciones, como así también el manejo de los re-
gistros internos, no es objeto de esta obra y se describen en el libro “Microcon-
troladores PIC”. Con el manejo simplificado de las instrucciones y sabiendo có-
mo deben ingresar los datos, se detalla el funcionamiento de distintos equipos
para cargar y programar microcontroladores.
Quizá el capítulo 4 sea la “síntesis” de lo que pretendo con esta obra, ya
que el lector podrá armar el circuito de un semáforo partiendo desde “cero” y
llegando al montaje final, previa programación del integrado.
En suma, es un libro que está destinado a los que realizan sus “primeras ar-
mas” pero también podrá ser útil para quienes deseen contar con una guía prác-
tica para “refrescar conocimientos”.

ISBN Nº:987-1116-68-3
ISBN Nº: 978-987-1116-68-3

1
Nº 116
CAPITULO 1
Director de la Colección Club Saber
ESTRUCTURA Y CARACTERŒSTICAS DE UN PIC Electrónica
Que es un PIC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 Ing. Horacio D. Vallejo
La Memoria de Programa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6 Jefe de Redacción
La Memoria de Datos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7 Pablo M. Dodero
Los Puertos del PIC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7 Club Saber Electrónica es una publi-
El Clock
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8 cación de Saber Internacional SA de
El Reset
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8 CV de México y
Primeras Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8 Editorial Quark SRL de Argentina

Editor Responsable en Argentina y


CAPITULO 2 México: Ing. Horacio D. Vallejo

PROGRAMACI N DE PICS Administración México:


Manejo de las Instrucciones de un. .PIC . . . . . . . . . . . . . . . . . . . .11 Patricia Rivero Rivero
El SET de Instrucciones del 16X84 . . . . . . . . . . . . . . . . . . . . . . . . .13
Comercio Exterior México:
C mo se Ordena un Programa. . . . . . . . . . . . . . . . . . . . . . . . . . . .16
Margarita Rivero Rivero
Aprendiendo a Programar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16
Programas de Pr ctica
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18 Director Club Saber Electrónica:
Secuenciador de 8 Canales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20 José María Nieves
Conclusiones del Cap tulo ... 2. . . . . . . . . . . . . . . . . . . . . . . . . . .22
Responsable de Atención al Lector:
Alejandro A. Vallejo
CAPITULO 3
Coordinador Internacional
CARGADORES (PROGRAMADORES) DE PIC C Y EEPROM Luis Alberto Castro Regalado
Entrenador de PIC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23
Publicidad
La Placa Verificadora . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23
Argentina: 4301-8804 - México: 5839-
El Programador (Quemador) NOPPP . . . . . . . . . . . . . . . . . . . . . . . . .25
5277
Prueba Preliminar del NOPPP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .28
El Cargador Quark Pro. .2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31
Programe Microcontroladores PIC con el ICPROG . . . . . . . . . . . . . . . . .36
Internet: www.webelectronica.com.ar
Programaci n de un PIC 16F84 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .40 Web Manager: Pablo Ábalos
Errores Frecuentes en la Programaci . . . .n. . . . . . . . . . . . . . . . . . . . .41
Programaci n de un PIC 16F87X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42
Lectura de un PIC 16F84 o un PIC 16F87X . . . . . . . . . . . . . . . . . . . . . .43
Lecturas Especiales de Datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .44 Club Saber Electrónica. Fecha de publicación:
julio 2014. Publicación mensual editada y publi-
Verificaci n de un Dispositivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .44
cada por Editorial Quark, Herrera 761 (1295) Ca-
Borrado de un Dispositivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45
pital Federal, Argentina (005411-43018804), en
Opciones Finales. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45
conjunto con Saber Internacional SA de CV, Av.
Instalaci n de su Programador Quark Pro 2
Moctezuma Nº 2, Col. Sta. Agueda, Ecatepec de
en Diferentes Sistemas Operativos . . . . . . . . . . . . . . . . . . . . . . . . . . . .46
Morelos, México (005255-58395277), con Certifi-
cado de Licitud del título (en trámite). Distribu-
ción en México: REI SA de CV. Distribución en
CAPITULO 4 Argentina: Capital: Carlos Cancellaro e Hijos SH,
Gutenberg 3258 - Cap. 4301-4942 - Interior: Distri-
TRABAJANDO CON PICS DESDE CERO buidora Bertrán S.A.C. Av. Vélez Sársfield 1950 -
Sem foro con PIC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .51 Cap. – Distribución en Uruguay: Rodesol SA Ciu-
Compilaci n del Archivo Assembler . . . . . . . . . . . . . . . . . . . . . . . .58 dadela 1416 – Montevideo, 901-1184 – La Edito-
Carga del PIC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .59 rial no se responsabiliza por el contenido de las
Aprendiendo por Asociaci n. Estructura de un Programa . . . . . . . .61 notas firmadas. Todos los productos o marcas
Conclusiones del Cap tulo ... 4. . . . . . . . . . . . . . . . . . . . . . . . . . .64 que se mencionan son a los efectos de prestar un
servicio al lector, y no entrañan responsabilidad
de nuestra parte. Está prohibida la reproducción
CAPITULO 5 total o parcial del material contenido en esta re-
vista, así como la industrialización y/o comercia-
MANEJO DEL MPLAB lización de los aparatos o ideas que aparecen en
Edici n y Simulaci n de Programas . . . . . . . . . . . . . . . . . . . . . . . . .67 los mencionados textos, bajo pena de sanciones
legales, salvo mediante autorización por escrito
Instalaci n. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .67
de la Editorial.
Conclusiones del Cap tulo ... 5. . . . . . . . . . . . . . . . . . . . . . . . . . .76

2 Revista Club Saber Electrónica, ISSN: 1668-6004


¿Qué es un PIC?
Los circuitos integrados programables (Programma-
ble Integrated Circuits = PIC) son componentes sumamen-
te útiles en la electrónica de Consumo. Aun cuando son
conocidos desde hace más de veinte años, existen en la
actualidad nuevos tipos que cumplen con una serie de re-
quisitos y características sumamente útiles. Como una pri-
mera aproximación podemos definir a un PIC como “un
chip que me permite obtener un circuito integrado a mi
medida”, es decir puedo hacer que el PIC se comporte
como un procesador de luminancia, un temporizador o
cualquier otro sistema mediante un programa que le gra-
bo en una memoria ROM interna.
Los microcontroladores PIC son, en el fondo, proce-
sadores similares a otros tipos, como por ejemplo la fa-
milia de los microprocesadores X86, 80486, Pentium y
muchos otros que usan una arquitectura interna del tipo
Von neumann. en este tipo de arquitectura los datos y
la memoria del programa se encuentran en el mismo es-
pacio de direcciones.

en realidad, un microprocesador y un microcontrola-


dor no son la misma cosa. Los PICs son microcontrolado-
res, es decir, una unidad que posee en su interior al mi-
croprocesador y a los elementos indispensables para
que pueda funcionar como una minicomputadora en un
solo chip.

un microprocesador es solamente la unidad central


de procesos o CPu, la memoria, los puertos y todos los
demás periféricos son exteriores. La programación de un
microprocesador es, por lo tanto, una tarea compleja
porque deben controlarse todos estos dispositivos exter-
nos.
un microcontrolador integra la CPu y todos los peri-
féricos en un mismo chip. el programador se desentien-
de de una gran cantidad de dispositivos y se concentra
en el programa de trabajo. esta circunstancia da lugar
a una gran pérdida de tiempo porque los datos tienen
que ser retirados de la memoria y llevados a la CPu
(Central Processor unit) y viceversa. esto significa que la
computadora dedica la mayor parte del tiempo al trans- 3
den ser programados como de entrada o de salida. el
terminal 4 opera como reset pero también cumple funcio-
nes de carga de memoria de programa cuando es exci-
tado con pulsos de 15V. el terminal RA4 (pata 3) tam-
bién tiene funciones como entrada de un temporizador y
RBO (pata 6) cumple también funciones como entrada de
interrupción.

Figura 1 Vamos a realizar la explicación de este curso en ba-


se al microcontrolador 16F84 por ser uno de los PICs de
mayor renombre y por existir abundante bibliografía y
proyectos disponibles gratuitamente en Internet. sin em-
porte de datos de ida o de vuelta, en lugar de usar este bargo, debemos aclarar que existen otros chips como el
tiempo para trabajar sobre los datos. 16F628, que son similares a éste, más económicos y de
Los PICs emplean un conjunto de instrucciones del ti- mejores prestaciones. Oportunamente veremos cómo “mi-
po RIsC (Reduced Instruction set Computer). Con el RIsC grar” de uno a otro sin mayores complicaciones.
se suele ejecutar la mayoría de las instrucciones con un
solo pulso del clock. Con las instrucciones que se usan Ahora bien, la mayoría de los microcontroladores
en otros equipos del tipo CIsC (Complex Instruction set (sean de Microchip, o de national, Motorola, Philips,
Computer), se logran instrucciones más poderosas, pero etc.) se comportan de forma similar, por ello nos vamos
a costa de varios ciclos del clock. en el bien conocido a referir a los microcontroladores PIC16F84 cuya arqui-
procesador 68HC11 de Motorola se requieren, a veces, tectura interna puede observarse en la figura 3.
hasta 5 ciclos del clock para ejecutar una instrucción. Observe primero los bloques externos. existe un cris-
A los fines prácticos, nos vamos a referir a los micro- tal que se conecta en OsC1 y OsC2 para generar el
controladores como bloques que poseen una memoria CLOCK del sistema. Luego una señal de entrada llama-
de programa, que es el lugar donde deben alojarse los da MCLR negada, que es un nombre de fantasía para
datos que le indiquen al chip qué es lo que debe hacer; nuestro conocido ReseT (debido a que esa pata tiene un
una memoria de datos donde ingresen las señales que doble uso) y, por último, dos puertos paralelos de I/O
debe procesar el programa, una unida aritmética y lógi- (entrada o salida) llamados puerto A y puerto B. una de
ca donde se desarrollen todas las tareas, una unidad de las patas del puerto A puede ser utilizada como entrada
control que se encargue de supervisar todos los procesos de interrupciones (esta pata especial hace que el micro-
y puertos de entrada y salida para que el PIC tenga con- procesador deje de realizar la tarea que estaba ejecu-
tacto con el exterior (figura 1). tando y pase a realizar otra tarea alternativa; cuando la
un microcontrolador, como cualquier circuito integra- termina vuelve a su programa original).
do analógico, tiene entradas, salidas y algunos compo- Analicemos el bloque más grande (temporizadores),
nentes exteriores necesarios para procesar las señales de en éste observamos un grupo de bloques dedicados a
entrada y convertirlas en las señales de salida (figura 2). mejorar el funcionamiento pero sin influir directamente
el 16C54 (con memoria tipo OTP) y su similar 16F84 en el flujo de señales. Vemos un temporizador de encen-
(con memoria eePROM tipo flash) requieren un cristal con dido, un temporizador de arranque del oscilador de
dos capacitores y como mínimo un resistor para el reset. CLOCK, un circuito de reset y un circuito llamado de vi-
Por supuesto necesita una tensión de fuente de 5V (VDD) gilancia o WATCHDOG. Los dos primeros bloques pro-
aplicada con respecto al terminal de masa (Vss). Posee curan un arranque ordenado para no producir una car-
dos puertos de salida, el A y el B, cuyos terminales son ga al mismo tiempo sobre la fuente. Por último, existe un
marcados RA0 al RA4 y RB0 al RB7. estos puertos pue- circuito con un nombre curioso: “perro guardián”. su
función es estar vigilante el máximo de tiempo que tarda
el microprocesador en completar su programa (o mejor
sería decir, la derivación más larga de su programa) y
en caso de superarse ese tiempo, provocar un reset au-
tomático porque el microprocesador se quedó trabado
en alguna parte de su programa. También se dice que
el microprocesador se quedó colgado o congelado.
este bloque de circuitos no trabaja independiente-
mente sino que requiere conexiones al exterior y al inte-
rior del dispositivo. Por ejemplo, no siempre son utiliza-
4 Figura 2 dos y es el programa quien determina su utilización y
1 - ESTRUCTURA Y CARACTERISTICAS DE UN PIC

además ajusta sus parámetros. esto se realiza a través tenga, a su vez, un loop secundario y cuando se ejecu-
del bloque de control o decodificador de instrucciones. ta ese loop secundario se debe volver al mismo punto
Analicemos ahora la sección de arriba a la izquier- del loop primario, eso se consigue con guardar ese nú-
da en donde observamos la memoria de programa, el mero de instrucción del loop secundario en otro registro
contador de programa, el registro de instrucciones y la de la pila.
pila o sTACK de 8 niveles. Cuando hablamos de regis- Analicemos ahora la sección inferior derecha. en
tros nos referimos a pequeñas unidades de memoria ese sector se ubican los bloques responsables de efec-
transitoria, construida por lo general, con un registro de tuar operaciones matemáticas y lógicas binarias; recor-
desplazamiento. son memorias volátiles que se utilizan demos que el nombre ALu proviene de Aritmetic Logic
para guardar información por un tiempo mínimo, con el unite (unidad arimética y lógica). en este sector es im-
fin de realizar una operación compleja de varios pasos. prescindible utilizar un registro ya que una operación
el contador de programa es el responsable de que aritmética o lógica siempre se efectúa entre dos núme-
el microprocesador vaya analizando las instrucciones en ros. Los números binarios que deben procesarse se to-
orden ascendente. este guarda el número de instrucción man de la memoria de datos, el primero se acumula en
en el sTACK y la instrucción misma la pasa al registro el registro de trabajo o registro W (de Work = trabajo)
de instrucciones desde donde se envía al resto del micro- el segundo es el presente en el instante en que se invo-
procesador. el sTACK es, en realidad, una pila de regis- ca la memoria de datos. Como las operaciones pueden
tros (en nuestro ejemplo hay 8), debido a que el progra- ser encadenadas (cuando el resultado sirve como ope-
ma puede tener derivaciones (en la jerga LOOPs, rulos rando de la siguiente operación, tal como el caso de un
o subprogramas). Cuando se termina de ejecutar un producto) el registro W tiene un retorno a la ALu. Vemos
loop se debe volver al mismo punto del programa en además que la ALu está comandada por el bloque MuX
donde se había producido la bifurcación y eso es posi- (MultipleXador). en efecto, la ALu requiere que se le en-
ble porque ese número de instrucción quedó guardado víen números para procesar que le lleguen desde la me-
en uno de los registros de la pila. es común que un loop moria de datos, pero antes se la debe predisponer para

Figura 3
5
que efectúe la operación requerida (comparación, rota- enseñarle significa programarlo y eso se realiza con
ción de dígitos, etc.). una plaqueta de programación que depende de cada
el registro de estado o estatus colabora durante las marca y modelo de microcontrolador. Antiguamente los
operaciones matemáticas. Piense cómo opera ud. para microprocesadores tenían una ventanita transparente y
realizar una resta: primero ubica el primer número, lue- era necesario exponerlos a la luz ultravioleta para bo-
go el segundo y después comienza a analizar los bits rrar su memoria e introducir un programa nuevo. Actual-
menos significativos (las unidades), pero si el número de mente cuentan con memorias que no tienen este requisi-
arriba es menor que el número de abajo, entonces toma to. Basta con cargarlos con un programa para que se
prestado de la columna de las decenas, luego debe re- borre el anterior. esto significa que, con el mismo inte-
cordar esto porque el número de arriba en la columna grado, podremos construir diferentes dispositivos que
de las decenas se redujo en una unidad. en realidad, realicen funciones totalmente distintas unas de otras.
aunque se trate de una operación entre dos números su
ejecución requiere guardar lo que se llama acarreo en
otro registro y éste no es otra cosa más que el registro LA MeMORIA De PROGRAMA
sTATus.
La memoria del PIC16F84 es una eePROM, es decir,
el PIC16F84 contiene además de todo lo visto, una
de lectura solamente (ROM = Read Only Memory) que
memoria RAM de registros que puede ser llamada des-
se programa por tensión (no necesita luz ultravioleta);
de el registro de instrucción a través de un multiplexador
es decir que basta con introducir los datos con cierto ni-
de direcciones. esta sección sólo se utiliza en desarrollos
vel de tensión para que éstos borren el programa ante-
avanzados. Ahora bien, un microcontrolador sin progra-
rior y graben uno nuevo.
ma no sabe hacer nada, es como un niño recién nacido;
tiene algunos reflejos condicionados como el de succión ¿Por qué esta memoria se llama ROM, si se pueden
que le permite alimentarse pero no sabe hacer más que grabar datos sobre ella?
eso. nosotros deberemos enseñarle a realizar acciones se llama ROM porque para grabarla se debe conec-
y lo vamos a hacer como a un bebé, paso a paso. su tar el PIC al programador; luego de que el PIC coloca
capacidad de aprendizaje es enorme y sumamente va- estos datos en la plaqueta del dispositivo, sólo pueden
riada. Le vamos a enseñar a llorar a intervalos regulares, ser leídos, ya que entonces forman el programa del PIC.
a encender luces, a sumar, a restar, etc. esta memoria (figura 4) tiene una longitud de 1 Kby-
te con palabras de 14 bits. Digamos
que tiene un ancho de 14 bits y una al-
tura de 1.000 Bytes o que es una me-
moria de 1.000 x 14. Observe que
los números de instrucción en hexade-
cimal van desde el 000 al 3FF, lo cual
implica que existen 1.040 posiciones
de memoria, valor obtenido emplean-
do la fórmula:

Figura 4 3 x 162+16 x 161+16 x 160

Observe que
Figura 5 dos de las posicio-
nes de memoria tie-
nen las indicaciones
“vector de reset” y
“vector de interrup-
ción”.
eso significa
que, cuando se pro-
voca un reset, el mi-
croprocesador vuel-
ve a la posición
000 del programa
y cuando se produ-
6 ce una interrupción,
1 - ESTRUCTURA Y CARACTERISTICAS DE UN PIC

a la posición 004. estos retornos forzados deben ser mediante el programa. estos resistores se desconectan
considerados al diseñar el programa del microprocesa- automáticamente si una pata se predispone como pata
dor; es decir que el reset se produce porque la señal ex- de salida debido a que las salidas ya tienen posibilidad
terna pone el contador de programa en 000 y todo el de entregar corriente desde fuente con un transistor. To-
programa se reinicia. en cambio, cuando ingresa una dos los resistores de pull-up se conectan o desconectan
señal por la pata de interrupción el contador de progra- al mismo tiempo (no existe un comando que los conec-
ma va a 004 y la acción que, en general ocurre, es que te independientemente). Como puerto de salida, una
se comienza a leer un subprograma particular. Cuando pata puede tomar 25mA del circuito o entregar 20mA
este subprograma termina, el contador de programa re- al mismo, sin embargo, en el puerto “A” sólo se pueden
cupera el número que tenía en el momento de arribar la consumir 80mA en total o entregar 50mA, esto signifi-
interrupción. ca que sólo algunas patas pueden trabajar al máximo
porque si todas lo hicieran (y son 8) el consumo total se-
ría de 25 x 8 = 200mA. el puerto “B” tiene otras carac-
LA MeMORIA De DATOs terísticas máximas, ya que en total puede tomar 150mA
o entregar 100mA. Como vemos, las salidas admiten
La RAM (Random Access Memory = memoria de ac-
suficiente carga como para alimentar directamente a un
ceso aleatorio, figura 5) es una memoria de lectura y es-
led (figura 6). Los puertos no utilizados siempre se de-
critura de 64. De estos 64 registros, los primeros 12 son
ben conectar a la fuente de 5V a través de un resistor de
fijos y cumplen un propósito determinado, en tanto que
10kΩ debido a que se trata de un dispositivo CMOs que,
desde el 13 hasta el 64 son registros de propósito gene-
de otro modo, podría deteriorarse por captación elec-
ral, en donde el programa puede indicar que se almace-
trostática (figura 7).
ne un dato para ser tomado más tarde. Además, posee
La pata 3 perteneciente al puerto “A” puede ser con-
un conjunto de memoria sRAM de 36 posiciones con los
figurada como de entrada/salida o como de arranque
que se pueden construir registros de 8 bits con carac-
terísticas eePROM. en lo personal, prefiero designar a
este conjunto de registros como “memoria libre”. Figura 7

LOs PueRTOs DeL PIC


el PIC16C84 tiene dos puertos paralelos de entrada
o salida: el puerto “A” de 8 patas y el “B” de 5 patas.
Cada pata puede ser predispuesta por el programa pa-
ra operar como de entrada o de salida.
Cada pata tiene un resistor de pull-up (resistor co-
nectado a fuente) interno que puede ser desconectado

Figura 6

7
de un temporizador/contador (figura 8). Cuando se pro- eL ReseT
grama como entrada esta pata funciona como un dispa-
el PIC “se resetea” cuando la pata 4 (MCLR nega-
rador de sCHMITT o schmitt trigger, ideal para recono-
da) se pone a potencial bajo. Para simplificar el circuito
cer señales distorsionadas o con crecimiento lento. esta
de reset, el PIC posee un temporizador interno que per-
misma pata también tiene una característica distinta
mite realizar un reset automático cuando se aplica ten-
cuando opera como salida. ella es la única que trabaja
sión de 5V. en estos casos el circuito externo de reset só-
a colector abierto, es decir, que no puede emplearse co-
lo implica el uso de un resistor de 10kΩ entre la pata 4 y
mo fuente, en este caso siempre se utilizará un resistor
fuente tal como se muestra en la figura 11.
externo.
en muchos circuitos es necesario realizar un reset
manual y para ello existen dos posibilidades, una es uti-
lizar sólo el temporizador interno (por programa) y la
eL CLOCK otra es agregar una constante de tiempo exterior como
Los PICs poseen un oscilador configurable por pro- se muestra en la figura 12. en el segundo circuito C1
grama de características muy amplias. Cuando no se re- provee un retardo al encendido o posterior al pulsado
quiere mucha precisión se puede trabajar con un oscila- de reset porque C1 se cargará lentamente a través de
dor a RC conectado según la figura 9. R1 con una constante de tiempo de 22kΩ x 10µF =
Para circuitos que requieran una gran precisión se 220ms.
puede trabajar con un cristal de frecuencia baja, media el resistor R3 limita la corriente de descarga de C1
o alta (figura 10). Como máximo el PIC16F84 puede tra- a valores compatibles con sus características de corrien-
bajar con un cristal de 10MHz. te de pico máxima.
Internamente la frecuencia del cristal se divide por 4, D1 descarga a C1 cuando la tensión de fuente de-
por lo tanto, es muy común la utilización de un cristal de cae para permitir un reset inmediato cuando la fuente se
4MHz para obtener un CLOCK interno de 1MHz que apaga y se enciende en rápida sucesión. R2 limita la co-
garantiza que cada instrucción dure exactamente 1ms. rriente de reset, tomada desde el microprocesador. es-
Para temporizadores de período largo se utilizan crista- te segundo sistema se suele utilizar cuando se requiere
les de baja frecuencia. un reseteado remoto a través de varios metros de cable
que podrían captar zumbido (C1 reduce la
impedancia del circuito de reset).
Figura 8

PRIMeRAs COnCLusIOnes
el PIC es un microcontrolador, una es-
pecie de "ordenador en miniatura" (con
muchas comillas) que podremos progra-
mar. Hay muchos tipos de microcontrola-
dores PIC, los hay de 8 patas con 6 termi-
nales para intercambio de datos (6 termi-
nales de entrada / salida de datos), pero
también existen dispositivos más poderosos
de 80 patas con 40 pines I/O (de entrada
y salida de datos).

Figura 9 Figura 10 Figura 11

8
1 - ESTRUCTURA Y CARACTERISTICAS DE UN PIC

Figura 12

el PIC16F84 posee en su interior un microprocesa- 68 bytes (de 8 bits) de memoria RAM


dor, una memoria RAM (volátil) donde guardaremos las 64 bytes de memoria eePROM para datos (no
variables, una memoria eePROM (no volátil) donde volátiles)
guardaremos nuestro programa, un timer o contador que Programable con sólo 35 instrucciones
nos facilitará algunas tareas, y otros bloques de control Posee 13 pines de entrada/salida (un puerto
y apoyo. Algunas características más representativas del de 8 bits + otro de 5 bits)
PIC16F84 son: Tiene un timer/contador de 8 bits

Opera a una frecuencia máxima de 10MHz También posee una serie de registros y temporizado-
(excepto el PIC16F84A que puede operar a 20MHz). res, cuyo estudio no realizaremos en esta obra.
1kbyte de memoria eePROM para nuestro
programa (1024 posiciones). •••••••••••••••••••••

9
Art Tapa - OBD y escaner.qxd:ArtTapa 17/01/14 09:56 Página 13
Ma­ne­jo de las Ins­truc­cIo­nes
de un PIc

una­ins­truc­ción­es­un­co­man­do,­par­te­del­pro­gra­ma,
que­se­le­apli­ca­al­PIc­pa­ra­que­lo­in­ter­pre­te­y­eje­cu­te
su­cum­pli­mien­to.­la­ins­truc­ción­se­com­po­ne­de­una­se­rie
de­ bits­ pre­sen­ta­da­ en­ sec­cio­nes­ o­ po­si­cio­nes­ per­fec­ta­-
men­te­ de­li­mi­ta­das,­ que­ el­ pro­ce­sa­dor­ in­ter­pre­ta­ pa­ra
cum­plir­una­or­den­de­sea­da,­que­dan­do­es­ta­ble­ci­das­las
va­ria­bles­que­se­mo­di­fi­can.­
di­cho­de­otra­for­ma,­las­ins­truc­cio­nes­po­seen­un­for­-
ma­to­de­acuer­do­a­un­sis­te­ma­de­co­di­fi­ca­ción.­el­for­ma­-
to­cam­bia­de­acuer­do­con­la­ope­ra­ción­que­se­va­a­rea­-
li­zar.
ca­da­ins­truc­ción,­pa­ra­la­lí­nea­ba­ja­de­los­PIcs­ti­po
16X54­(con­la­X­que­re­mos­de­no­tar­que­pue­de­ser­un­PIc
con­me­mo­ria­otP­-16c54-­o­me­mo­ria­FlasH­-16F84-),
con­sis­te­en­una­pa­la­bra­de­12­bits­que­co­di­fi­ca­en­un
so­lo­blo­que,­la­or­den,­el­ope­ra­dor­y­la­ubi­ca­ción­del­re­-
sul­ta­do­o­el­sal­to­(en­ca­so­de­que­lo­hu­bie­re).­en­los­mi­-
cro­con­tro­la­do­res­PIcs­ti­po­16X84­ca­da­ins­truc­ción­tie­ne
una­lon­gi­tud­de­14­bits.
los­ bits­ que­ ac­túan­ co­mo­ da­tos­ de­ la­ me­mo­ria
eProM­se­re­ci­ben­en­el­de­co­di­fi­ca­dor­de­ins­truc­-
cio­nes,­y­ope­ran­con­el­con­ta­dor­de­pro­gra­ma­y
el­re­gis­tro­de­tra­ba­jo­W,­pa­ra­ac­ce­der­a­lu­ga­res Figura 1
es­pe­cí­fi­cos­ del­ mi­cro­con­tro­la­dor,­ ta­les­ co­mo­ la
alu,­po­si­cio­nes­de­me­mo­ria,­re­gis­tros,­etc.
co­mo­sa­be­mos,­los­PIcs­16X84,­en­tre­otros,
ma­ne­jan­un­set­re­du­ci­do­de­ins­truc­cio­nes­(35­ins­-
truc­cio­nes­en­lo­que­se­de­no­mi­na­rIsc)­que­pre­-
sen­tan­ una­ co­di­fi­ca­ción­ muy­ par­ti­cu­lar­ lla­ma­da
“for­ma­to­de­la­ins­truc­ción”.­
ca­da­ins­truc­ción­po­see­su­for­ma­to­y­es­to­tal­-
men­te­de­fi­ni­do­por­MI­cro­cHIP.­
en­la­fi­gu­ra­1­po­de­mos­apre­ciar­“la­sin­ta­xis”
de­una­ins­truc­ción­del­set.­se­tra­ta­de­la­ins­truc­-
ción­que­su­ma­el­con­te­ni­do­del­re­gis­tro­de­tra­ba­-
jo­con­el­con­te­ni­do­de­un­re­gis­tro­cu­ya­di­rec­ción
es­tá­de­ter­mi­na­da­por­el­ope­ra­dor­“f”.­en­es­ta­fi­-
gu­ra,­en­pri­mer­lu­gar­se­ob­ser­va­la­“sin­ta­xis”,­es
de­cir,­la­for­ma­en­que­el­pro­gra­ma­dor­es­cri­bi­rá­la
11
ins­truc­ción­en­el­len­gua­je­“en­ten­di­ble­por­el­ope­ra­dor” addWF­­f,d
(el­pro­gra­ma­en­.asm).­la­co­di­fi­ca­ción­es­el­for­ma­to­de el­en­sam­bla­dor­ge­ne­ra­rá­el­có­di­go:
la­ pa­la­bra­ que­ de­fi­ne­ la­ ins­truc­ción­ y­ que­ ve­re­mos­ en
de­ta­lle­lue­go.­­no­te­que­pa­ra­que­se­com­ple­te­la­ins­truc­- 0001­11df­ffff
ción­se­ne­ce­si­ta­una­so­la­pa­la­bra­y­un­so­lo­ci­clo­del­con­-
ta­dor­de­pro­gra­mas. en­es­te­có­di­go,­los­seis­bits­de­ma­yor­pe­so­(bits­6­al
co­mo­ve­re­mos,­el­re­sul­ta­do­de­la­ope­ra­ción­se­guar­- 11­en­la­fi­gu­ra­2)­de­fi­nen­la­ope­ra­ción­que­va­a­rea­li­-
da­en­un­si­tio­de­fi­ni­do­por­el­pro­gra­ma­dor­(de­pen­dien­- zar­la­ins­truc­ción­de­acuer­do­a­lo­re­que­ri­do­por­el­pro­-
do­de­qué­es­ta­do­to­me­el­bit­“d”)­y­que­es­ta­ins­truc­ción gra­ma­dor.­aquí­se­de­fi­ne­una­or­den­que­el­PIc­in­ter­pre­-
mo­di­fi­ca­los­bits­c,­dc­y­Z­del­re­gis­tro­de­es­ta­do­(sta­- ta­y­eje­cu­ta­so­bre­un­ope­ran­do­de­ter­mi­na­do,­cu­ya­di­rec­-
tus).­es­to­quie­re­de­cir­que­cuan­do­co­lo­co­la­ins­truc­ción: ción­la­bus­ca­se­gún­lo­in­di­ca­do­por­los­5­bits­me­nos­sig­-
ni­fi­ca­ti­vos­(bits­0­al­4­en­la­fi­gu­ra­2).
el­bit­5­es­un­có­di­go­de­re­co­-
no­ci­mien­to­ de­ des­ti­no­ y­ de­ter­mi­-
na­en­qué­lu­gar­se­va­a­alo­jar­el
re­sul­ta­do­de­la­ope­ra­ción.­si­es­te
bit­es­“0”­el­des­ti­no­de­la­ope­ra­-
ción­se­rá­pues­to­en­el­re­gis­tro­de
tra­ba­jo­(W).­si­el­bit­“d”­es­pues­-
to­ a­ “1”­ el­ des­ti­no­ se­rá­ el­ de­ la
po­si­ción­de­me­mo­ria­de­fi­ni­do­por
“f”.­los­cin­co­bits­de­me­nor­pe­so
en­el­for­ma­to­de­la­ins­truc­ción­re­-
pre­sen­tan­la­di­rec­ción­don­de­es­tá
guar­da­do­el­ope­ran­do­(f),­que­es­-
tá­en­la­me­mo­ria­de­da­tos­y­por
te­ner­cin­co­bits­só­lo­po­de­mos­di­-
rec­cio­nar­ una­ de­ las­ po­si­cio­nes
de­me­mo­ria­de­da­tos.­
la­ ma­yo­ría­ de­ las­ ins­truc­cio­-
Figura 2 nes­se­rea­li­zan­en­un­ci­clo­de­con­-
ta­dor­ de­ pro­gra­ma­ (ci­-
clo­ de­ ins­truc­ción)­ ex­-
cep­to­ las­ ins­truc­cio­nes
de­ sal­to­ que­ ne­ce­si­tan
dos­ ci­clos­ pa­ra­ eje­cu­-
tar­la.­ se­ de­ter­mi­na­ el
ci­clo­de­ins­truc­ción­di­vi­-
dien­do­ por­ cua­tro­ la
fre­cuen­cia­ del­ os­ci­la­-
dor,­ ele­gi­da­ pa­ra­ el
fun­cio­na­mien­to­ del­ mi­-
cro­con­tro­la­dor­tal­co­mo
se­ob­ser­va­en­la­fi­gu­ra
3.
es­ de­cir,­ la­ se­ñal
que­pro­vie­ne­del­os­ci­la­-
dor­ex­ter­no,­co­nec­ta­do
a­ los­ pi­nes­ osc1/cl­-
KIn­ y­ osc2/cl­Kout
del­ mi­cro­con­tro­la­dor,
se­ di­vi­de­ en­ cua­tro­ ci­-
clos,­ ob­te­nién­do­se­ así
la­ se­ñal­ re­que­ri­da­ por
Figura 3 el­ pro­ce­sa­dor­ in­ter­no
12
2­-­ProGraMacIon­de­PIcs

pa­ra­rea­li­zar­las­ope­ra­cio­nes.­de­es­ta­ma­ne­ra­se­pue­de so­bre­las­no­tas­a­las­que­ha­ce­mos­re­fe­ren­cia­en­di­-
rea­li­zar­la­bús­que­da­y­eje­cu­ción­de­la­ins­truc­ción.­ chas­fi­gu­ras,­de­be­te­ner­en­cuen­ta­lo­si­guien­te:
el­re­loj­de­ins­truc­ción­es­el­ci­clo­in­ter­no­que­po­see­el no­ta­1. al­mo­di­fi­car­un­re­gis­tro­de­en­tra­da­/sa­li­da
mi­cro­con­tro­la­dor­ pa­ra­ cro­no­me­trar­ el­ tiem­po­ de­ eje­cu­- (e/s)­ con­ una­ ope­ra­ción­ so­bre­ él­ mis­mo­ (por­ ejem­plo
ción­de­las­ins­truc­cio­nes.­ MoVF­PortB,1),­el­va­lor­uti­li­za­do­es­el­que­se­en­cuen­-
los­pul­sos­en­tran­tes­del­re­loj­son­di­vi­di­dos­por­4,­ge­- tre­pre­sen­te­en­las­pa­tas­del­PortB.­Por­ejem­plo,­si­el
ne­ran­do­di­fe­ren­tes­se­ña­les­de­no­mi­na­das­Q1,­Q2,­Q3­y bies­ta­ble­tie­ne­un­"1"­pa­ra­una­pa­ta­con­fi­gu­ra­da­co­mo
Q4.­el­es­ta­do­Q1­ha­ce­in­cre­men­tar­el­con­ta­dor­de­pro­- en­tra­da­y­se­po­ne­a­ni­vel­ba­jo­des­de­el­ex­te­rior,­el­da­-
gra­ma,­Q2­y­Q3,­se­en­car­gan­de­la­de­co­di­fi­ca­ción­y to­se­vol­ve­rá­a­es­cri­bir­co­mo­un­"0".­
eje­cu­ción­de­la­ins­truc­ción­y­por­úl­ti­mo,­Q4­es­la­fa­se­de no­ta­2. si­se­eje­cu­ta­es­ta­ins­truc­ción­so­bre­el­tMr0
bús­que­da­de­la­ins­truc­ción.­el­có­di­go­se­al­ma­ce­na­en­el y­ d=1,­ se­rá­ bo­rra­do­ el­ di­vi­sor­ de­ fre­cuen­cia­ (prees­ca­-
re­gis­tro­de­ins­truc­cio­nes.­ ler),­si­es­tá­asig­na­do­al­tMr0.­
no­ta­3. si­se­mo­di­fi­ca­el­con­ta­dor­de­Pro­gra­ma­(Pc
ó­cP)­o­es­ver­da­de­ra­una­con­di­ción­de­prue­ba,­la­ins­-
el set de Ins­truc­cIo­nes del 16X84 truc­ción­re­quie­re­dos­ci­clos­de­má­qui­na.­el­se­gun­do­ci­-
clo­se­eje­cu­ta­co­mo­un­noPPP. a­los­efec­tos­de­en­ten­-
der­có­mo­“fun­cio­na”­ca­da­ins­truc­ción,­va­mos­a­dar­una
Vi­mos­có­mo­es­la­es­truc­tu­ra­de­una­ins­truc­ción,­ra­-
bre­ve­ ex­plia­ción­ de­ “lo­ que­ ha­ce”­ ca­da­ una­ de­ ellas.
zón­por­la­cual­le­re­co­men­da­mos­que­lea­nue­va­men­te­el
ten­ga­en­cuen­ta­que­en­el­li­bro­Mi­cro­con­tro­la­do­res­PIc,
co­mien­zo­de­es­te­ca­pí­tu­lo­si­no­en­tien­de­lo­que­a­con­ti­-
del­Ing.­Ho­ra­cio­d.­Va­lle­jo,­edi­to­rial­Quark,­es­te­te­ma­se
nua­ción­ex­pre­sa­re­mos.­­
de­sa­rro­lla­con­ma­yor­pro­fun­di­dad.­Pa­ra­en­ten­der­me­jor
los­có­di­gos­(de­no­mi­na­dos­mne­mó­ni­cos)­que­sim­bo­-
ca­da­ins­truc­ción­pri­me­ro­ex­pli­ca­mos­el­sig­ni­fi­ca­do­de­al­-
li­zan­un­con­jun­to­de­ins­truc­cio­nes,­re­pre­sen­tan­la­ta­rea
gu­nos­pa­rá­me­tros:
que­ de­be­ ha­cer­ el­ mi­cro­con­tro­la­dor­ una­ vez­ que­ las
ana­li­ce­en­fun­ción­del­ope­ran­do.
f:­re­gis­tro­al­que­afec­ta­la­ins­truc­ción
un­mne­mó­ni­co­ayu­da­a­re­cor­dar­el­sig­ni­fi­ca­do­que
W:­acu­mu­la­dor­(Wor­king­re­gis­ter)
tie­ne­la­ins­truc­ción.­
b:­nú­me­ro­de­bit­(hay­ins­truc­cio­nes­que­afec­-
Pa­ra­po­der­ana­li­zar­al­con­jun­to­de­ins­truc­cio­nes­que
tan­a­un­so­lo­bit)
con­for­man­el­set­rIsc,­se­los­sue­le­agru­par­te­nien­do­en
k:­cons­tan­te­(un­nú­me­ro)
cuen­ta­el­ti­po­de­ope­ra­ción­que­rea­li­zan,­así­es­co­mún
d:­se­lec­ción­de­des­ti­no­del­re­sul­ta­do­de­la­ins­-
que­se­las­pre­sen­te­ba­jo­cua­tro­po­si­bles­for­mas,­a­sa­ber:
truc­ción,­pue­de­ser­"0"­o­"1",­si­es­"0"­el­re­sul­ta­do­se
guar­da­en­el­acu­mu­la­dor­(W)­y­si­es­"1"­se­guar­da­en
1.­Ins­truc­cio­nes­orien­ta­das­a­re­gis­tros.
el­re­gis­tro­f­al­que­afec­ta­la­ins­truc­ción.
2.­Ins­truc­cio­nes­orien­ta­das­a­bits.
3.­Ins­truc­cio­nes­con­li­te­ra­les.
4.­Ins­truc­cio­nes­de­con­trol­y­es­pe­cia­les.
Ins­truc­cIo­nes orIen­ta­das a re­GIs­tros
en­la­fi­gu­ra­4­ve­mos­un­cua­dro­don­de­se­re­pro­du­- addWFf,d: su­ma­W­(su­con­te­ni­do)­y­el­re­gis­tro­f
cen­las­ins­truc­cio­nes­orien­ta­das­al­bit,­la­fi­gu­ra­5­mues­- (el­con­te­ni­do),­el­re­sul­ta­do­lo­guar­da­se­gún­d­(si­d=0­se
tra­las­ope­ra­cio­nes­orien­ta­das­a­re­gis­tros­y­la­fi­gu­ra­6 guar­da­en­W­y­si­d=1­se­guar­da­en­f).
nos­per­mi­te­co­no­cer­cuá­les­son­las­ins­truc­cio­nes­con­li­te­- andWF f,d:­rea­li­za­la­ope­ra­ción­and­ló­gi­-
ra­les­y­de­con­trol. ca­en­tre­W­y­f,­el­re­sul­ta­do­lo­guar­da­se­gún­d.

Figura 4

13
Figura 5

clrF f: Bo­rra­el­re­gis­tro­f­(po­ne­to­dos­sus­bits plo,­si­que­re­mos­co­piar­el­va­lor­del­re­gis­tro­"reG1"­­al


a­ce­ro). re­gis­tro­"reG2"­(ya­ve­re­mos­có­mo­po­ner­les­nom­bres­a
clrW: Bo­rra­el­acu­mu­la­dor. los­re­gis­tros)­es­cri­bi­re­mos:
coMF f,d:­ cal­cu­la­ el­ com­ple­men­ta­rio­ del­ re­- MoVF­­­­­­reG1,0­­­­­;mue­ve­el­va­lor­de­reG1­a­W
gis­tro­f­(los­bits­que­es­tán­a­"0"­los­po­ne­a­"1"­y­vi­ce­- MoVWF­­­reG2­­­­­­­;mue­ve­el­va­lor­de­W­a­reG2
ver­sa.­re­sul­ta­do­se­gún­d. lo­que­va­des­pués­del­;­son­co­men­ta­rios
decF f,d:­de­cre­men­ta­f­en­uno­(le­res­ta­uno). noP:­­no­ha­ce­na­da,­so­lo­pier­de­el­tiem­po­du­ran­-
re­sul­ta­do­se­gún­d. te­un­ci­clo.
decFsZ f,d:­de­cre­men­ta­f­y­se­sal­ta­la­si­guien­te rlF f,d: ro­ta­el­re­gis­tro­f­ha­cia­la­iz­quier­-
ins­truc­ción­si­el­re­sul­ta­do­es­ce­ro.­re­sul­ta­do­se­gún­d. da­a­tra­vés­del­bit­carrY­(to­dos­los­bits­se­mue­ven
IncF f,d:­In­cre­men­ta­f­en­uno­(le­su­ma­uno). un­ lu­gar­ ha­cia­ la­ iz­quier­da,­ el­ bit­ 7­ de­ f­ pa­sa­ al
re­sul­ta­do­se­gún­d. carrY­y­el­bit­carrY­pa­sa­al­bit­0­de­f).­re­sul­ta­do
IncFsZ f,d: In­cre­men­ta­f­y­se­sal­ta­la­si­guien­- se­gún­d.
te­ins­truc­ción­si­el­re­sul­ta­do­es­ce­ro­(cuan­do­se­des­- rrF­ f,d:­lo­mis­mo­que­rlF­pe­ro­ha­cia­la­de­-
bor­da­un­re­gis­tro­vuel­ve­al­va­lor­00h).­re­sul­ta­do­se­- re­cha.
gún­d. suBWF­ f,d: res­ta­f­y­W­(f­-­W).­re­sul­ta­do­se­-
IorWF f,d: rea­li­za­la­ope­ra­ción­ló­gi­ca­or­en­- gún­d.
tre­W­y­f.­re­sul­ta­do­se­gún­d. sWaPF­ f,d: In­ter­cam­bia­los­4­pri­me­ros­bits­de­f
MoVF f,d:­Mue­ve­el­con­te­ni­do­del­re­gis­tro­f­a por­los­otros­cua­tro.­re­sul­ta­do­se­gún­d.
W­si­d=0­(si­d=1­lo­vuel­ve­a­po­ner­en­el­mis­mo­re­gis­tro) XorWF­ f,d:­rea­li­za­la­ope­ra­ción­ló­gi­ca­Xor­(or
14 MoVWF f:­Mue­ve­el­va­lor­de­W­a­f.­Por­ejem­- ex­clu­si­va)­en­tre­W­y­f.­re­sul­ta­do­se­gún­d.
2­-­ProGraMacIon­de­PIcs

Figura 6

Ins­truc­cIo­nes orIen­ta­das a BIts retlW k:­car­ga­el­va­lor­k­en­W­y­vuel­ve­de­la


in­te­rrup­ción
BcF­­­ f,b:­Po­ne­a­"0"­el­bit­b­del­re­gis­tro­f
re­turn: Vuel­ve­de­una­su­bru­ti­na.
BsF­­­ f,d:­Po­ne­a­"1"­el­bit­b­del­re­gis­tro­f
sleeP: el­pic­pa­sa­a­mo­do­de­standby
BtFsc­ f,b:­se­sal­ta­la­si­guien­te­ins­truc­ción­si­el
bit­b­del­re­gis­tro­f­es­"0"
BtFss­­­f,b:­se­sal­ta­la­si­guien­te­ins­truc­ción­si­el­bit Ins­truc­cIo­nes Pa­ra en­saM­Blar
b­del­re­gis­tro­f­es­"1"
Pro­Gra­Mas
Ins­truc­cIo­nes orIen­ta­das a Po­de­mos­usar­pa­ra­es­cri­bir­los­pro­gra­mas­el­“bloc
de­no­tas­de­Win­dows”­o­el­Word­o­el­MPlaB.­una­vez
cons­tan­tes (lI­te­ra­les)­­ Y de con­trol es­cri­to­el­pro­gra­ma,­se­guar­da­con­ex­ten­sión­“.asm” y
addlW k:­le­su­ma­el­va­lor­k­al­acu­mu­la­dor­(W). se­lo­con­vier­te­(en­sam­bla)­con­un­pro­gra­ma­en­sam­bla­-
andlW k:­ope­ra­ción­ló­gi­ca­and­en­tre­W­y­el dor­a­for­ma­to­“.hex”­(ar­chi­vo­he­xa­de­ci­mal);­el­pro­gra­-
va­lor­k­(re­sul­ta­do­en­W). ma­com­pi­la­dor­su­ge­ri­do­es­el­MPasM­de­Mi­cro­chip.­al
call k:­lla­ma­da­a­su­bru­ti­na­cu­yo­ini­cio­es­tá ar­chi­vo­ con­ ex­ten­sión­ “.hex”­ re­sul­tan­te­ lo­ po­de­mos
en­la­di­rec­ción­k trans­fe­rir­al­PIc16F84.­exis­ten­una­se­rie­de­ins­truc­cio­nes
clrWdt:­Bo­rra­el­re­gis­tro­Watch­dog que­son­pa­ra­el­en­sam­bla­dor­y­nos­ha­cen­la­ta­rea­de
Go­to k: sal­ta­a­la­di­rec­ción­k­de­pro­gra­ma. pro­gra­ma­ción­más­sen­ci­lla­y­más­le­gi­ble.­es­tas­ins­truc­-
IorlW k: ope­ra­ción­ ló­gi­ca­ or­ en­tre­ W­ y­ el cio­nes­son­las­si­guien­tes:
va­lor­k­(re­sul­ta­do­en­W)
MoVlW k: car­ga­el­acu­mu­la­dor­con­el­va­lor­k. eQu:­ un­ ejem­plo­ de­ es­to­ son­ las­ eti­que­tas,­ po­de­-
Por­ejem­plo,­si­que­re­mos­car­gar­el­va­lor­2ah­en­el­re­gis­- mos­po­ner­un­nom­bre­a­un­re­gis­tro­de­me­mo­ria,­es­to­se
tro­"reG1"­es­cri­bi­re­mos: ha­ce­me­dian­te­la­ins­truc­ción­eQu.­Por­ejem­plo:
MoVlW­­­2aH­;car­ga­el­acu­mu­la­dor­con­el­va­- Va­rIa­Ble1­­­­eQu­­­­0cH
lor­2ah a­par­tir­de­aho­ra­en­lu­gar­de­es­cri­bir­0cH­po­de­mos
MoVWF­ ­ ­ reG1­ ­ ­ ;mue­ve­ el­ va­lor­ de­ W­ a es­cri­bir­Va­rIa­Ble1
"reG1" con­eQu­tam­bién­po­de­mos­po­ner­nom­bre­a­cons­-
ret­FIe:­Ins­truc­ción­pa­ra­vol­ver­de­la­in­te­rrup­ción tan­tes­de­la­mis­ma­for­ma. 15
.........
[Hay­pro­gra­ma­an­te­rior] Programa 1
1.........
BtFsc­­­Va­rIa­Ble1,0 ;si­el­bit­0­­de­Va­rIa­Ble1­es
;"0"­se­sal­ta­la­si­guien­te­ins­truc­ción
Go­to­­­­­esu­no­­ ;sal­ta­a­esu­no­so­lo­si­el­bit­0
;de­Va­rIa­Ble1­es­"1"
BsF­­­­­­­­Va­rIa­Ble1,0 ;si­el­bit­0­de­Va­rIa­Ble1­es­0­se­eje­cu­ta­es­ta­
;ins­truc­ción­y­el­pro­gra­ma­si­gue­por­aquí
............
[con­ti­núa­el­pro­gra­ma]
............
esu­no­ ;eti­que­ta­a­una­di­rec­ción­de­pro­gra­ma
BcF­­­­­­­Va­rIa­Ble1,0 ;si­el­bit­0­de­Va­rIa­Ble1­es­"1"­se­eje­cu­ta­
;es­ta­otra­ins­truc­ción­y­el­pro­gra­ma­si­gue­por­aquí
......
[con­ti­núa­el­pro­gra­ma]
......

#de­FI­ne:­es­otra­ins­truc­ción­pa­ra­el­en­sam­bla­dor. 4)­en­la­se­gun­da­co­lum­na­se­po­nen­las­ins­truc­cio­nes
es­pa­re­ci­do­a­eQu,­so­lo­que­aquí­no­po­ne­mos­eti­que­tas (BsF,­clrF,­BtFsc...­etc.)
a­un­re­gis­tro,­po­de­mos­po­ner­la­a­una­ins­truc­ción­en­te­ra, 5)­en­la­ter­ce­ra­co­lum­na­se­po­nen­los­re­gis­tros­o­pa­-
Por­ejem­plo: rá­me­tros­a­los­que­afec­ta­la­ins­truc­ción.
#de­FI­ne­­­­Ban­co1­­­­BsF­­­sta­tus,5 6)­ en­ la­ cuar­ta­ co­lum­na­ se­ po­nen­ los­ co­men­ta­rios
#de­FI­ne­­­­Ban­co0­­­­BcF­­­sta­tus,5 que­crea­per­ti­nen­tes­(cuan­tos­más­me­jor)­se­gui­dos­de­un
a­par­tir­de­aho­ra,­cuan­do­es­cri­ba­mos­Ban­co1­se pun­to­y­co­ma.
pon­drá­a­"1"­el­bit­de­se­lec­ción­de­ban­co­y­pa­sa­re­mos ca­be­acla­rar­que­to­do­lo­que­es­tá­des­pués­de­“;”
al­ban­co­1,­al­es­cri­bir­Ban­co0­pa­sa­re­mos­al­ban­co­0 (pun­to­y­co­ma)­en­una­fi­la,­no­es­te­ni­do­en­cuen­ta­por­el
pro­gra­ma,­és­te­“sa­be”­que­es­una­ob­ser­va­ción­pa­ra­que
orG: In­di­ca­al­en­sam­bla­dor­la­di­rec­ción­(de­me­mo­- pue­da­sa­ber­qué­qui­so­ha­cer­el­pro­gra­ma­dor­con­di­cha
ria­de­pro­gra­ma)­don­de­se­guar­da­rá­la­ins­truc­ción­que ins­truc­ción.­si­bien­no­exis­ten­es­truc­tu­ras­de­pro­gra­ma­-
va­ya­a­con­ti­nua­ción.­Por­ejem­plo: ción­de­fi­ni­das,­siem­pre­con­vie­ne­se­guir­un­or­den,­tal­co­-
orG­­­­00H mo­ex­pli­ca­mos­an­te­rior­men­te.­da­mos­en­el­Pro­gra­ma­2
clrF­­­Va­rIa­Ble1­­­­­ un­ ejem­plo­ ­ “or­de­na­do”­ pro­pues­to­ por­ car­los­ díaz,­ y
la­ins­truc­ción­clrF­es­tá­en­la­di­rec­ción­de­me­mo­ria pa­ra­ma­yor­in­for­ma­ción­de­be­di­ri­gir­se­a:­http://ww­w.e­-
de­pro­gra­ma­00H­(se­rá­la­pri­me­ra­ins­truc­ción­en­ser­eje­- lec­tro­n.es.vg/.­
cu­ta­da­por­el­pic)

end: se­es­cri­be­al­fi­nal­del­pro­gra­ma­pa­ra­in­di­car
que­ya­ha­aca­ba­do.­(es­obli­ga­to­rio,­si­no­da­error). aPren­dIen­do a Pro­Gra­Mar
eti­que­tas­a­di­rec­cio­nes­de­Pro­gra­ma: muy­úti­les­pa­-
ra­usar­con­ins­truc­cio­nes­call­(lla­ma­da­a­su­bru­ti­na)­o
an­tes­ de­ dar­ los­ pri­me­ros­ ejem­plos­ prác­ti­cos­ pa­ra
Go­to­(sal­to).­Por­ejem­plo,­vea­el­pro­gra­ma­1.
que­us­ted­“ar­me”­sus­pri­me­ros­cir­cui­tos,­es­con­ve­nien­te
te­ner­en­cuen­ta­los­si­guien­tes­con­cep­tos:

1) en­to­do­pro­gra­ma­se­de­be­de­cir­cuál­es­el­ti­po
có­Mo se or­de­na un Pro­Gra­Ma de­PIc­que­se­em­plea­rá,­hay­que­in­cluir­sus­li­bre­rías­y
con­fi­gu­rar­lo:
es­im­por­tan­te­lle­var­un­po­co­de­or­den­a­la­ho­ra­de
es­cri­bir­el­pro­gra­ma,­nos­ayu­da­rá­mu­cho: ejem­plo:
1)­al­prin­ci­pio­van­los­eQu­y­los­#de­FI­ne,­des­pués list p=16f84
co­men­za­mos­con­el­pro­gra­ma. in­clu­de <p16f84.inc>
2)­el­pro­gra­ma­se­es­cri­be­en­cua­tro­co­lum­nas­se­pa­- __con­fig_r­c_osc­&_Wd­t_oFF
ra­das­por­ta­bu­la­do­res:
3)­en­la­pri­me­ra­co­lum­na­se­po­nen­las­eti­que­tas­o 2)­al­es­cri­bir­un­pro­gra­ma­se­rea­li­zan­las­sen­ten­-
las­di­rec­cio­nes­de­pro­gra­ma cias­en­co­lum­nas.­la­pri­me­ra­co­lum­na­se­uti­li­za­pa­ra
16
2­-­ProGraMacIon­de­PIcs

;************************************
;*­ejeM­Plo­:­Pro­Gra­Ma­BIen­or­de­na­do* Programa 2
;************************************
;*­el­si­guien­te­pro­gra­ma­con­fi­gu­ra­­*
;*­ra1­co­mo­en­tra­da­y­ra0­co­mo­­­­­­*
;*­sa­li­da­y­ha­ce­que­la­sa­li­da­(ra0)*
;*­sea­la­in­ver­sa­de­la­en­tra­da­­­­­*
;*­(ra1)­­­­­­­­­­­­­­­­­­­­­­­­­­­­*
;************************************

;(con­vie­ne­po­ner­tí­tu­lo­y­una­pe­que­ña­ex­pli­ca­ción­de­lo­que
;ha­ce­el­pro­gra­ma)

;(Pri­me­ro­los­ecu­y­los­#de­FI­ne)

sta­tus eQu 03H


trI­sa eQu 05H
Por­ta eQu 05H

#de­FI­ne Ban­co0 BcF sta­tus,5


#de­FI­ne Ban­co1 BsF sta­tus,5

;(des­pués­em­pe­za­mos­con­el­pro­gra­ma)

orG 00H ;em­pe­za­mos­siem­pre­a­es­cri­bir­en­es­ta­di­rec­ción


Ban­co1 ;Pa­sa­mos­al­ban­co­1­pa­ra­ha­cer­al­gu­nas
;con­fi­gu­ra­cio­nes
BcF trI­sa,0 ;con­fi­gu­ra­mos­ra0­co­mo­sa­li­da
BsF trI­sa,1 ;con­fi­gu­ra­mos­ra1­co­mo­en­tra­da
Ban­co0 ;Vol­ve­mos­al­ban­co­0

InI­cIo BtFsc Por­ta,1 ;com­prue­ba­la­en­tra­da­(ra1),­si­es­"0"­se­sal­ta­la


;si­guien­te­ins­truc­ción
Go­to esu­no ;si­la­en­tra­da­(ra1)­es­"1"­va­a­esu­no

BsF Por­ta,0 ;Po­ne­a­"1"­la­sa­li­da­ra0.­eje­cu­ta­es­ta­ins­truc­ción


;por­que­la­en­tra­da­ra1­era­"0"
Go­to InI­cIo ;Vuel­ve­otra­vez­a­com­pro­bar­el­es­ta­do­de­la
;en­tra­da­ra1

esu­no BcF Por­ta,0 ;Po­ne­a­"0"­la­sa­li­da­ra0.­eje­cu­ta­es­ta­ins­truc­ción


;por­que­la­en­tra­da­ra1­era­"1"
Go­to InI­cIo ;Vuel­ve­otra­vez­a­com­pro­bar­el­es­ta­do­de­la
;en­tra­da­ra1

end ;In­di­ca­fi­nal­del­pro­gra­ma

nom­brar­va­ria­bles­o­co­lo­car­eti­que­tas.­la­se­gun­da­co­- equ es­la­ins­truc­ción­que­sig­ni­fi­ca­asig­nar­o­de­fi­nir


lum­na­se­uti­li­za­pa­ra­apli­car­la­ins­truc­ción.­ d­‘26’ es­la­po­si­ción­de­me­mo­ria­ex­pre­sa­da­en­nú­-
la­ter­cer­co­lum­na­con­tie­ne­los­da­tos­ne­ce­sa­rios­pa­- me­ro­de­ci­mal.
ra­que­pue­da­eje­cu­tar­se­di­cha­ins­truc­ción.­
la­cuar­ta­co­lum­na­con­tie­ne­da­tos­úti­les­pa­ra­el­pro­- 3) se­em­plean­sig­nos­pa­ra­efec­tuar­de­ter­mi­na­das
gra­ma­dor­pe­ro­que­no­son­te­ni­dos­en­cuen­ta­por­el­mi­- con­si­de­ra­cio­nes,­por­ejem­plo:
cro­con­tro­la­dor.
; se­em­plea­pa­ra­co­lo­car­ob­ser­va­cio­nes.­el­pro­gra­-
ejem­plo: ma­no­to­ma­en­cuen­ta­to­do­lo­que­es­tá­en­una­lí­nea
Voy­a­de­fi­nir­a­la­va­ria­ble­M­en­la­po­si­ción­de­me­mo­- lue­go­de­di­cho­sig­no.
ria­ex­pre­sa­da­en­nú­me­ro­de­ci­mal­‘26’: : se­uti­li­za­nor­mal­men­te­pa­ra­de­fi­nir­eti­que­tas,­que
son­lu­ga­res­a­don­de­va­el­pro­gra­ma­cuan­do­así­lo­re­-
1ª­col. 2ª­col. 3ª­col. 4ªcol. quie­re.
M equ d‘26’ ;de­fi­ní­a­la­va­ria­ble­M­ ‘’ se­uti­li­za­pa­ra­de­cir­que­lo­que­es­tá­en­tre­ellas
;en­la­po­si­ción­26. es­el­nú­me­ro­y­pue­de­es­tar­ex­pre­sa­do­en­len­gua­je
de­ci­mal,­bi­na­rio­o­he­xa­de­ci­mal.
M es­la­va­ria­ble­que­de­fi­ní .­se­em­plea­pa­ra­de­fi­nir­un­nú­me­ro­en­de­ci­mal. 17
ejem­plo: que­és­te­pue­da­re­co­no­cer­qué­set­de­ins­truc­ción­de­be­uti­-
r equ .28 ;de­fi­ní­a­la­va­ria­ble­r­en­la­po­si­ción­de­me­mo­ria­28 li­zar.­
la­zo: rlf r,f ;ro­to­el­con­te­ni­do­de­­r­y­el­re­sul­ta­do­que­da­en­r­
ptob equ 06
4)­un­pro­gra­ma­siem­pre­“de­be­ría”­co­men­zar­con­la nom­bré­a­la­va­ria­ble­ptob­y­la­co­lo­qué­en­la­di­rec­-
ins­truc­ción­org y­ter­mi­nar­con­la­ins­truc­ción­end. ción­06­de­la­raM,­“es­ta­di­rec­ción­es­tá­re­ser­va­da­pa­ra
el­Puer­to­B”,­es­de­cir,­ra­ti­fi­co­que­ptob­es­el­re­gis­tro
es­te­ma­nual­no­pre­ten­de­ser­un­“tra­ta­do”­de­pro­gra­- del­Port­B.­
ma­ción­y­su­ob­je­ti­vo­es­ca­pa­ci­tar­al­es­tu­dian­te­y­afi­cio­- cuan­do,­más­ade­lan­te,­de­ba­en­viar­in­for­ma­ción­al
na­do­en­el­uso­y­car­ga­de­pro­gra­ma­de­un­PIc.­si­ud. puer­to­b,­só­lo­de­bo­men­cio­nar­ptob.­
de­sea­ob­te­ner­una­ca­pa­ci­ta­ción­com­ple­ta­le­re­co­men­da­-
mos­ es­tu­diar­ el­ “cur­so­ com­ple­to­ de­ PIcs”­ pre­pa­ra­do re­set org 0­
por­edi­to­rial­Quark­y­que­se­com­po­ne­de­dos­tex­tos,­un sig­ni­fi­ca­que­al­rea­li­zar­se­el­re­set,­el­pro­gra­ma­co­-
cd­y­un­vi­deo­de­en­tre­na­mien­to. mien­za­por­la­po­si­ción­0­de­la­me­mo­ria­del­pro­gra­ma.
Pe­ro­de­in­me­dia­to­pa­sa­a­la­po­si­ción­1­que­tie­ne­es­cri­-
ta­la­si­guien­te­sen­ten­cia:

Pro­Gra­Mas de Prác­tI­ca Ini­cio­­ movlw 0


con­es­to­se­car­ga­el­re­gis­tro­w­con­el­he­xa­de­ci­mal
sea­el­pro­gra­ma­3­de­la­pá­gi­na­si­guien­te. 0­(es­de­cir­el­bi­na­rio­00000000).
el­ pro­gra­ma­ co­mien­za­ con­ un (;),­ por­ lo­ tan­to,­ lo
que­si­gue­en­el­ren­glón­es­to­ma­do­co­mo­un­co­men­ta­rio. tris ptob
los­sig­nos­= for­man­un­re­sal­te­pa­ra­in­di­car­el­ini­cio­del es­ta­ins­truc­ción­en­vía­la­in­for­ma­ción­del­re­gis­tro­W
pro­gra­ma­y­ayu­dan­a­dar­le­una­dis­tri­bu­ción­agra­da­ble al­puer­to­B­pa­ra­in­di­car­le­que­to­dos­sus­pi­nes­son­de­sa­-
a­la­vis­ta.­el­pro­gra­ma­se­lis­ta­en­cua­tro­co­lum­nas;­la­pri­- li­da­(si­se­hu­bie­ra­car­ga­do­el­bi­na­rio­11111111­to­dos
me­ra­sir­ve­pa­ra­co­lo­car­las­“va­ria­bles”­que­uti­li­za­re­mos los­ pi­nes­ se­rían­ de­ en­tra­da­ y­ si­ se­ hu­bie­ra­ car­ga­do
co­mo­re­gis­tros­y­las­“eti­que­tas”­que­son­ubi­ca­cio­nes­del 11001010­al­gu­nos­se­rían­en­tra­das­y­otros­sa­li­das).
pro­gra­ma­ adón­de­ se­ de­be­ ir­ cuan­do­ el­ ope­ran­do­ de
una­ins­truc­ción­así­lo­re­quie­ra.­ movlw 0f­
en­la­se­gun­da­co­lum­na­se­co­lo­ca­la­ins­truc­ción­y­en car­ga­ el­ re­gis­tro­ W­ con­ el­ he­xa­de­ci­mal­ 15­ que
la­ter­ce­ra­el­ope­ran­do­de­la­ins­truc­ción.­la­cuar­ta­co­lum­- equi­va­le­al­bi­na­rio­00001111­y
na­siem­pre­va­pre­ce­di­da­de­(;)­y­se­uti­li­za­pa­ra­co­lo­car
ob­ser­va­cio­nes­que­le­sir­van­al­pro­gra­ma­dor­co­mo­guía movlw­ ptob
pa­ra­ sa­ber­ qué­ qui­so­ ha­cer­ o­ qué­ fun­ción­ cum­ple­ esa en­vía­el­va­lor­car­ga­do­al­puer­to­"B" que­pro­du­ci­rá
sen­ten­cia,­ ob­via­men­te,­ al­ com­pi­lar­ esa­ ins­truc­ción,­ las un­es­ta­do­al­to­en­rB0,­rB1,­rB2­y­rB3­y­un­es­ta­do­ba­-
ob­ser­va­cio­nes­no­son­te­ni­das­en­cuen­ta. jo­en­rB4,­rB5,­rB6­y­rB7.­la­in­for­ma­ción­del­puer­to
pa­sa­al­buf­fer­que­lle­va­las­pa­tas­15,­16,­17­y­18­de­un
list­­p­=­16c84 PIc16c84­a­ma­sa­en­cen­dien­do­los­leds­d7,­d8,­d9­Y
es­el­en­ca­be­za­do­del­pro­gra­ma.­es­ta­lí­nea­le­in­di­ca d10.
al­ en­sam­bla­dor­ qué­ ti­po­ de­ PIc­ se­ es­tá­ uti­li­zan­do­ pa­ra ci­clo nop

Programa 3
; Primer programa de práctica

List p = 16C84 ; voy a utilizar el PIC16C84


ptob equ 0x06 ; inicializo la variable ptob en
; la dirección 06h
Reset org h’0’ ; comienza el programa
Inicio movlw h’0’ ; cargo a W con 0
tris ptob ; mando el contenido de W a ptob
movlw h’0f’ ; cargo a W con el número binario 15
ciclo nop ; rutina nula
goto ciclo ; vaya a ciclo
18
2­-­ProGraMacIon­de­PIcs

rea­li­za­ una­ ru­ti­na­ nu­la,­ es­ de­cir,­ que­ no­ efec­túa


ope­ra­ción­al­gu­na.

go­to ci­clo
en­vía­el­pro­gra­ma­ha­cia­la­eti­que­ta­"ci­clo".­las­dos
úl­ti­mas­ ope­ra­cio­nes­ ha­cen­ que­ al­ eje­cu­tar­se­ un­ pro­gra­-
ma,­és­te­se­que­de­en­un­la­zo­que­se­lla­ma­­“loop­ce­rra­-
do”.­
Figura 7
la­úni­ca­ma­ne­ra­de­sa­lir­de­es­te­loop­es­pul­san­do
re­set.­en­ton­ces­se­ob­ser­va­que­los­leds­se­apa­gan­has­-
ta­que­se­suel­ta­el­pul­sa­dor­y­el­pro­gra­ma­co­mien­za­nue­-
va­men­te­por­la­eti­que­ta­re­set.­
ob­via­men­te,­es­te­pro­gra­ma­de­be­ser­edi­ta­do­en­un
uti­li­ta­rio­ade­cua­do­(MPlaB,­por­ejem­plo)­y­lue­go­de­be
ser­com­pi­la­do­(uti­li­zan­do­el­MPasM­o­el­mis­mo­MPlaB)
pa­ra­ob­te­ner­el­ar­chi­vo­.hex­que­me­per­mi­ti­rá­car­gar­el
PIc­que­de­be­ré­co­lo­car­en­el­cir­cui­to­de­la­fi­gu­ra­1­pa­-
ra­ve­ri­fi­car­que­real­men­te­“ha­ce”­lo­que­es­ta­mos­di­cien­-
do.­Pa­ra­car­gar­el­PIc­con­el­pro­gra­ma­.hex­se­uti­li­za
un­pro­to­ti­po­ade­cua­do­(car­ga­dor­de­PIcs)­que­con­sis­te
en­un­cir­cui­to­que­es­ma­ne­ja­do­por­un­pro­gra­ma­pa­ra pro­gra­ma);­por­lo­tan­to,­la­de­mo­ra­es­de­5µs.­Vea­mos
per­mi­tir­la­car­ga.­to­do­es­te­pro­ce­so­se­ex­pli­ca­con­to­tal aho­ra­al­gu­nos­ejem­plos­de­pro­gra­mas­sen­ci­llos­que­rá­-
cla­ri­dad­en­el­pri­mer­tex­to­de­es­ta­se­rie,­ti­tu­la­do:­“to­do pi­da­men­te­po­de­mos­lle­var­a­la­prác­ti­ca:
so­bre­PIcs”.
en­la­fi­gu­ra­7­se­pue­de­ob­ser­var­un­dia­gra­ma­de­flu­-
jo­que­re­fle­ja­el­fun­cio­na­mien­to­del­pro­gra­ma­que­aca­-
ba­mos­de­ex­pli­car. Pro­Gra­Ma Que Per­MI­te el
en­cen­dI­do de los dos BIts Me­nos
¿cuán­to­tar­dan­en­en­cen­der­se­los­leds­lue­go­de­sol­-
tar­el­bo­tón­de­re­set?­ sIG­nI­FI­ca­tI­Vos del Port B­
si­se­ob­ser­va­el­cir­cui­to,­se­ve­rá­un­cris­tal­de­clock sea­ el­ si­guien­te­ lis­ta­do­ que­ res­pon­de­ al­ pro­gra­ma
de­4MHz­(0,25µs­de­pe­río­do);­co­mo­in­ter­na­men­te­exis­- de­la­fi­gu­ra­8­y­que­usa­re­mos­co­mo­ejem­po­pa­ra­de­ter­-
te­un­di­vi­sor­x4­ca­da­ope­ra­ción­se­rea­li­za­rá­en­0,25­x mi­nar­si­ud.­ha­apren­di­do­có­mo­es­la­se­cuen­cia­que­de­-
4­=­1µs.­si­con­ta­mos­las­sen­ten­cias­has­ta­lle­gar­a­car­- be­se­guir­un­pro­gra­ma:
gar­el­puer­to­B,­ve­re­mos­que­hay­5­(cin­co­ren­glo­nes­de list p=16f84

Figura 8
19
in­clu­de <p16F84.inc> tris PortB
org 0 con­es­tas­dos­ins­truc­cio­nes­di­go­que­to­das­las­pa­tas
movlW B'00000000' del­PortB­se­rán­sa­li­das.
tris PortB
movlw B'00000011' movlw b'00000001'
movwf PortB movwf PortB
end Man­dé­un­“1”­a­la­pa­ta­B0,­es­de­cir­que­si­hay­un­led
co­nec­ta­do­en­tre­esa­pa­ta­y­ma­sa,­el­mis­mo­se­en­cen­de­rá.
le­ re­co­men­da­mos­ que­ si­ga­ pa­so­ a­ pa­so­ ca­da­ ins­-
truc­ción­pa­ra­ver­si­in­ter­pre­ta­la­se­cuen­cia,­si­no­lo­gra mloop: rlf PortB,f
ha­cer­lo,­en­ton­ces­vuel­va­a­“es­tu­diar”­to­do­es­te­te­ma. en­es­ta­sen­ten­cia­co­lo­qué­una­eti­que­ta­(una­mar­-
ca)­que­se­rá­la­po­si­ción­a­la­que­irá­el­pro­gra­ma­en
al­gún­mo­men­to,­cuan­do­se­le­dé­la­ins­truc­ción.­lue­go
se­cuen­cIa­dor de 8­ca­na­les con­la­ins­truc­ción­rlf­di­go­que­se­ro­te­ha­cia­la­iz­quier­-
da­el­con­te­ni­do­del­re­gis­tro­PortB,­es­de­cir­que­lue­-
en­ la­ fi­gu­ra­ 9­ se­ ob­ser­va­ el­ pro­gra­ma­ co­rres­pon­- go­de­es­ta­ins­truc­ción­aho­ra­man­dé­un­“1”­al­bit­B1
dien­te­a­un­se­cuen­cia­dor­de­8­ca­na­les­que­he­mos­edi­ta­- y­to­das­las­de­más­pa­tas­que­dan­en­ce­ro,­es­de­cir,­se
do­en­el­pro­gra­ma­MPlaB. apa­ga­el­led­co­nec­ta­do­en­B0­y­se­en­cien­de­el­led­co­-
list p=16f84 nec­ta­do­en­B1­(pa­ta­7­del­in­te­gra­do).
in­clu­de <p16f84.inc>
__con­FIG­_rc_osc­&­_Wd­t_oFF­&­_PWr­te_on movlw d'50'
es­te­jue­go­de­sen­ten­cias­in­di­ca­que­se­va­a­uti­li­- movwf j
zar­el­PIc­16F84,­se­pi­de­que­se­car­guen­las­li­bre­rías Pu­se­en­la­po­si­ción­de­me­mo­ria­j­el­nú­me­ro­50
del­PIc­y­se­con­fi­gu­ra­al­pro­gra­ma­pa­ra­tra­ba­jar­con
clock­rc,­el­tem­po­ri­za­dor­Wdt­apa­ga­do­y­el­tem­po­- jloop movwf k
ri­za­dor­li­bre­ac­ti­vo. Pu­se­ en­ la­ po­si­ción­ de­ me­mo­ria­ k­ el­ nú­me­ro­ 50,
ade­más­en­es­ta­sen­ten­cia­co­lo­qué­una­eti­que­ta­y­en­al­-
j equ h'11' gún­mo­men­to­le­di­ré­al­pro­gra­ma­que­va­ya­ha­cia­esa­di­-
k equ h'12'
de­fi­no­a­las­va­ria­bles­j­y­k­en­las­po­si­cio­nes­de­me­mo­-
ria­de­da­to­11­y­12­(en­he­xa­de­ci­mal)­res­pec­ti­va­men­te.

org 0
co­mien­za­el­pro­gra­ma
movlw b'00000000'

Figura 10

Figura 9
20
2­-­ProGraMacIon­de­PIcs

rec­ción. go­to jloop


con­es­tas­sen­ten­cias­ini­cia­mos­un­nue­vo­la­zo­ce­rra­-
kloop decfsz k,f do­cuan­do­k=0,­en­es­te­ca­so­pa­ra­de­cre­men­tar­el­con­-
go­to kloop te­ni­do­de­la­va­ria­ble­j.­­
aho­ra­doy­la­ins­truc­ción­pa­ra­que­se­de­cre­men­te­el con­ es­te­ jue­go­ de­ ins­truc­cio­nes­ cuen­to­ “50­ ve­ces
con­te­ni­do­de­la­va­ria­ble­k­y­si­ese­con­te­ni­do­es­“0”­en­- 50”­(cuen­to­has­ta­2500)­y­con­ca­da­cuen­ta­con­su­mo­4
ton­ces­que­sal­te­una­ins­truc­ción;­si­no­es­“0”­en­ton­ces ci­clos­de­re­loj­de­mo­do­que­tar­dé­10.000­ci­clos­en­ter­-
man­do­al­con­ta­dor­de­pro­gra­ma­a­la­eti­que­ta­kloop­pa­- mi­nar­el­la­zo­com­ple­to.­
ra­que­se­ha­ga­un­nue­vo­de­cre­men­to.­es­de­cir,­es­toy­ha­- si­la­fre­cuen­cia­de­re­loj­es­de­10.000Hz,­en­ton­ces
cien­do­un­la­zo­ce­rra­do­pa­ra­“per­der­tiem­po” tar­da­ré­un­se­gun­do­en­com­ple­tar­el­do­ble­la­zo.
decfsz j,f go­to mloop

Tabla 1 - Programa Secuenciador de 4 canaleS

list P=16C84 ;el dispositivo usa el 16C84


;-------------------------------------------------------------------------------------------
ptob equ 06 ;el puerto B se ubica en 06 de la RAM.
Rot equ 0d ;al registro ubicado 0d se lo llama Rot.
Reg1 equ 0e ;al registro ubicado en 0e se lo llama reg1
reg2 equ 0f ;al registro ubicado en 0f se lo llama reg2
reg3 equ 10 ;al registro ubicado en 10 se lo llama reg3
grueso equ 00 ;se asignan nombres a los literales.
medio equ 40 ;se asignan nombres a los literales.
fino equ 50 ;se asignan nombres a los literales.
;-------------------------------------------------------------------------------------------
reset org 0 ;reset en dirección 00h
goto comenzar ;se lleva el control a comienzo
comenzar movlw 00 ;se carga w con 00h
tris ptob ;se programa el puerto "b" como salida.
ppal movlw 01 ;se carga w con 01h
movwf rot ;se descarga w en el registro rot
;preparándolo para la rotación.
sec movf rot,0 ;el contenido de rot pasa a w
movwf ptob ;enciende el led conectado donde indica w
call demora ;se mantiene encendido el led.
rlf rot ;se mueven los bits de "rot".
btfss rot,4 ;se comprueba el 5º bit.
goto sec ;si el 5º bit es cero se reenvía a sec.
goto ppal ;si el 5º bit es uno se reenvía a ppal para
;comenzar una nueva secuencia.
demora movlw grueso ;recarga w con el número hexadecimal
;“grueso” es decir, con 30
movwf reg1 ;se vuelca “grueso” en el registro
;reg 1
dem3 movlw medio ;se carga w con el número hexadecimal
;“medio” es decir con 40
movwf reg2 ;se vuelca "medio" en el registro
;reg2.
dem2 movlw fino ;se carga w con el número hexadecimal
;"fino" es decir con 50.
movwf reg3 ;se vuelca "fino" en el registro reg3.
dem1 decfsz reg3 ;se decrementa el registro reg3 en una
;unidad y si el resultado es cero se salta a
;la siguiente instrucción, si no se sigue
;decrementando.
goto dem1 ;retorno a la frecuencia etiqueta dem1.
decfsz reg2 ;idem con reg2.
goto dem2 ;retorno a la etiqueta dem2.
decfsz reg3 ;idem con reg1.
goto dem1 ;retorno a la etiqueta dem3.
retlw 0 ;se carga w con 0 y se retorna al
;programa principal.
end 21
aho­ra­man­do­al­con­ta­dor­de­pro­gra­ma­a­la­po­si­- na­de­un­se­cuen­cia­dor­de­4­ca­na­les.­le­su­gie­ro­que­in­-
ción­don­de­es­tá­la­eti­que­ta­mloop­pa­ra­que­se­ha­ga ten­te­se­guir­pa­so­a­pa­so­ca­da­ins­truc­ción­pa­ra­com­pren­-
una­nue­va­ro­ta­ción­del­con­te­ni­do­del­PortB,­es­de­cir, der­su­es­truc­tu­ra.
se­en­cen­de­rá­aho­ra­otro­led,­apa­gán­do­se­el­an­te­rior.
es­ta­ru­ti­na­se­si­gue­in­de­fi­ni­da­men­te,­es­de­cir,­te­ne­mos
un­se­cuen­cia­dor­de­8­ca­na­les. con­clu­sio­nes­del­ca­pí­tu­lo­2
end
In­di­ca­que­fi­na­li­zó­el­pro­gra­ma. el­PIc16F84­po­see­un­sis­te­ma­rIsc­(set­re­du­ci­do­de
ins­truc­cio­nes)­y­por­me­dio­de­35­sen­ten­cias­y­unas­10
de­más­es­tá­de­cir­que­és­ta­es­una­for­ma­de­pro­gra­- ins­truc­cio­nes­ de­ en­sam­bla­do,­ es­ po­si­ble­ edi­tar­ pro­gra­-
mar­ “no­ muy­ ade­cua­da”­ pe­ro­ que­ sir­ve­ per­fec­ta­men­te mas­ tan­to­ sen­ci­llos­ co­mo­ com­ple­jos.­ la­ pro­gra­ma­ción
pa­ra­que­el­lec­tor­apren­da­a­es­truc­tu­rar­sus­pro­pios­pro­- “as­sem­bler”­de­Mi­cro­chip­no­di­fie­re­mu­cho­de­los­len­-
yec­tos. gua­jes­de­pro­gra­ma­ción­co­mu­nes,­con­la­di­fe­ren­cia­que
es­acon­se­ja­ble­que­al­edi­tar­un­pro­gra­ma­lo­ha­ga la­es­truc­tu­ra­de­ar­ma­do­de­pro­gra­mas­re­sul­ta­bas­tan­te
en­ el­ MPlaB,­ pues­ de­ es­ta­ ma­ne­ra­ ten­drá­ la­ opor­tu­ni­- fá­cil­de­com­pren­der­por­la­ma­yo­ría­de­los­lec­to­res.­lo
dad­de­po­der­com­pro­bar­si­ha­co­me­ti­do­erro­res­o­no­en da­do­hasta­aquí­es­ape­nas­una­in­tro­duc­ción­a­la­pro­gra­-
su­tra­ba­jo.­el­MPlaB­es­ideal­por­que­la­for­ma­de­ma­ne­- ma­ción­de­mi­cro­con­tro­la­do­res­ya­que­es­te­te­ma,­co­mo
jar­lo­es­sen­ci­lla­y­sis­te­má­ti­ca.­a­los­fi­nes­prác­ti­cos,­en­la así­tam­bién­el­ma­ne­jo­de­re­gis­tros­in­ter­nos­y­la­con­fi­gu­-
fi­gu­ra­10­­da­mos­el­pro­gra­ma­co­rres­pon­dien­te­a­un­se­- ra­ción­­del­PIc­se­ex­pli­ca­en­el­li­bro­Mi­cro­con­tro­la­do­res
má­fo­ro­muy­sen­ci­llo­y­en­la­tabla­1­se­lista­el­program- PIc­de­es­ta­mis­ma­edi­to­rial.*************

22
En­trE­na­dor dE PIC me­ra­es­el­noPPP­por­ser­muy­sen­ci­lo­de­ar­mar,
fá­cil­de­usar­y­muy­di­dác­ti­co­pa­ra­que­el­“lec­tor”
Un­en­tre­na­dor­de­PIC­es­un­sis­te­ma­com­pues­to se­pa­en­to­do­mo­men­to­qué­es­lo­que­es­tá­ha­cien­-
de­un­en­tor­no­de­de­sa­rro­llo­(el­MPLaB),­un­car­ga­- do.­Sin­em­bar­go,­es­ta­apli­ca­ción­po­see­la­des­ven­-
dor­(tam­bién­lla­ma­do­pro­gra­ma­dor­o­que­ma­dor)­y ta­ja­de­pre­ci­sar­una­fuen­te­de­ali­men­ta­ción­ex­ter­-
una­ pla­ca­ ve­ri­fi­ca­do­ra.­ El­ MPLaB­ es­ un­ “pro­gra­- na­y­la­ver­sión­que­re­co­men­da­mos­só­lo­fun­cio­na
ma”­que­en­tre­ga­gra­tui­ta­men­te­MI­Cro­CHIP­en­su ba­jo­am­bien­te­doS,­por­lo­cual­quie­nes­po­seen­el
pá­gi­na­de­In­ter­net­y­que­per­mi­te­edi­tar­pro­gra­mas sis­te­ma­ ope­ra­ti­vo­ Win­dows­ XP­ o­ 2000­ de­be­rán
en­as­sem­bler,­si­mu­lar­su­fun­cio­na­mien­to,­de­tec­tar uti­li­zar­el­noPPP­arran­can­do­la­com­pu­ta­do­ra­con
y­co­rre­gir­erro­res­y­mu­chas­otras­fun­cio­nes­que­no un­dis­co­de­boo­teo­con­el­sis­te­ma­doS.
se­ ex­pli­can­ en­ es­ta­ sec­ción.­ Ca­be­ acla­rar­ que­ si El­ otro­ pro­gra­ma­dor­ re­co­men­da­do­ es­ el
Ud.­de­sea­des­car­gar­es­te­pro­gra­ma­y­un­ma­nual QUarK­Pro­2,­que­per­mi­te­la­pro­gra­ma­ción­de
de­ uso­ en­ es­pa­ñol­ de­be­ di­ri­gir­se­ a­ nues­tra­ web ca­si­to­dos­los­PICS,­di­fe­ren­tes­me­mo­rias­EE­ProM
(www­.we­be­lec­tro­ni­ca­.co­m.ar)­ lue­go­ de­be­ ha­cer y­otros­mi­cro­con­tro­la­do­res.­Se­lo­uti­li­za­con­el­pro­-
“click”­ en­ el­ íco­no­ pass­word­ e­ in­gre­sar­ la­ cla­ve gra­ma­ IC­ProG­ y­ no­ pre­ci­sa­ fuen­te­ ex­ter­na,­ ya
“mplab”. que­se­ali­men­ta­con­la­ten­sión­del­puer­to­se­rie­de
En­cuan­to­al­pro­gra­ma­dor,­se­tra­ta­de­un­dis­- la­com­pu­ta­do­ra.
po­si­ti­vo­com­pues­to­de­un­hard­wa­re­don­de­se­co­lo­-
ca­rá­el­PIC­a­pro­gra­mar­y­un­soft­wa­re­que­per­mi­- La­Pla­ca­Ve­ri­fi­ca­do­ra
te­la­co­mu­ni­ca­ción­en­tre­la­PC­y­di­cho­hard­wa­re. Un­cir­cui­to­con­PIC­siem­pre­se­com­po­ne­de­dos
Exis­ten­ dos­ ver­sio­nes­ que­ re­co­men­da­mos,­ la­ pri­- sec­cio­nes.­El­cir­cui­to­del­dis­po­si­ti­vo­de­sea­do­y­los

23
ne­ce­sa­rios­ com­po­nen­tes
pe­ri­fé­ri­cos­ im­pres­cin­di­-
bles­ pa­ra­ que­ el­ PIC­ fun­-
cio­ne,­a­sa­ber:­clock­y­re­-
set­ (la­ pri­mer­ sec­ción
cam­bia­con­ca­da­pro­yec­-
to,­en­tan­to­que­la­se­gun­-
da­ pue­de­ ser­ co­mún­ a
mu­chos­ pro­yec­tos).­ am­-
bos­ cir­cui­tos­ pe­ri­fé­ri­cos
tie­nen­ di­fe­ren­tes­ op­cio­-
nes:­el­clock­pue­de­ser­a
cris­tal­cuan­do­se­re­quie­ra
pre­ci­sión,­ o­ a­ rC­ (co­mo
en­ nues­tro­ ca­so)­ cuan­do
só­lo­se­re­quie­re­que­la­se­-
cuen­cia­ de­ en­cen­di­do
ten­ga­ un­ tiem­po­ apro­xi­-
ma­do.­En­cuan­to­al­re­set,
és­te­ pue­de­ ser­ ex­ter­no
con­un­pul­sa­dor­o­in­ter­no Figura 1
y­ au­to­má­ti­co,­ ca­da­ vez
que­se­co­nec­ta­la­ali­men­-
ta­ción­de­5V.­ ¿Qué­ocu­rri­ría­si­com­pro­los­com­po­nen­tes,­los
Una­vez­de­fi­ni­das­es­tas­co­sas­se­pue­de­di­bu­- ar­mo­y­prue­bo­di­rec­ta­men­te­el­cir­cui­to?­
jar­ el­ cir­cui­to­ com­ple­to­ de­ un­ sen­ci­llo­ “en­tre­na­- no­va­a­fun­cio­nar­por­que­el­PIC­no­es­tá­ins­trui­-
dor”,­que­nos­va­a­per­mi­tir­ve­ri­fi­car­si­he­mos­pro­- do­pa­ra­rea­li­zar­nin­gu­na­fun­ción­y­los­LEds­van­a
gra­ma­do­y­car­ga­do­bien­a­un­chip. per­ma­ne­cer­to­dos­en­cen­di­dos.­El­PIC­tie­ne­una­me­-
ob­ser­ve­pri­me­ro­en­la­fi­gu­ra­1­la­sec­ción­pe­ri­- mo­ria­in­ter­na­que­de­be­car­gar­se­con­nú­me­ros­bi­-
fé­ri­ca­ im­pres­cin­di­ble.­ El­ clock­ es­tá­ ge­ne­ra­do­ por na­rios­de­8­dí­gi­tos;­exac­ta­men­te­tie­ne­48­po­si­cio­-
un­os­ci­la­dor­rC­rea­li­za­do­con­el­PIC,­r1­y­C2­(ele­- nes­de­me­mo­ria­(nu­me­ra­das­des­de­el­0­has­ta­el­2F
gi­dos­ pa­ra­ ob­te­ner­ una­ se­cuen­cia­ com­ple­ta­ que en­nú­me­ros­he­xa­de­ci­ma­les),­en­don­de­se­le­in­di­ca­-
du­re­un­se­gun­do­apro­xi­ma­da­men­te),­en­tan­to­que rá­qué­ta­rea­de­be­rea­li­zar­o­qué­da­tos­fi­jos­de­be
el­re­set­se­rea­li­za­en­for­ma­au­to­má­ti­ca,­ca­da­vez car­gar­pa­ra­eje­cu­tar­esas­ta­reas.­
que­ se­ en­cien­de­ el­ equi­po,­ si­ bien­ en­ el­ cir­cui­to En­nues­tro­ca­so­ac­ti­var­tran­sis­to­res­in­ter­nos­en
pue­de­ no­ co­lo­car­se,­ es­ re­co­men­da­ble­ el­ uso­ de al­gu­nas­pa­tas­del­puer­to­“B”­(pre­dis­pues­tas­co­mo
una­re­sis­ten­cia­de­10kΩ­en­tre­la­pa­ta­4­del­PIC­y­la sa­li­das)­de­mo­do­de­ge­ne­rar­cor­to­cir­cui­tos­mo­men­-
ten­sión­de­ali­men­ta­ción­(r10).­nues­tro­cir­cui­to­de tá­neos­a­ma­sa­en­for­ma­se­cuen­cial.
apli­ca­ción­ no­ pue­de­ ser
más­ sen­ci­llo,­ só­lo­ uti­li­za­-
mos­ ­ ocho­ LEds­ so­bre­ las
pa­tas­ rB0­ a­ rB7­ (puer­to
“B”­)­y­sus­co­rres­pon­dien­-
tes­re­sis­to­res­de­pull­up­(re­-
sis­to­res­ a­ fuen­te).­ na­da
más­ sim­ple­ y­ fá­cil­ de­ ar­-
mar­ en­ un­ pa­nel­ pro­to­-
board.­ En­ la­ fi­gu­ra­ 2­ se
mues­tra­ una­ su­ge­ren­cia
de­ cir­cui­to­ im­pre­so­ pa­ra
la­ pla­ca­ ve­ri­fi­ca­do­ra­ del
en­tre­na­dor­de­PICs. Figura 2
24
3­-­CarGadorES­dE­PIC­µC­Y­EEProM

Figura 3

El­ dis­po­si­ti­vo­ con­ un­ zó­ca­lo­ pa­ra­ co­nec­tar­ el ble­de­13­y­5V­y­un­co­nec­tor­pa­ra­el­puer­to­pa­-


PIC­e­ins­truir­lo­(car­gar­le­los­da­tos­en­la­me­mo­ria ra­le­lo­de­la­PC.­El­nom­bre­del­soft­wa­re­pro­vie­ne
de­pro­gra­ma)­se­lla­ma­ge­né­ri­ca­men­te­“Pro­gra­ma­- de­las­ini­cia­les­de­no­Parts­PIC­Pro­gra­mer,­es­de­-
dor­de­PICs”,­pe­ro­no­so­tros,­con­ve­ni­mos­en­lla­mar­- cir:­Pro­gra­ma­dor­pa­ra­PIC­sin­Pie­zas,­en­alu­sión
lo­“Car­ga­dor­de­PICs”­­y­es­co­mo­un­apén­di­ce­de a­los­muy­po­cos­com­po­nen­tes­que­re­quie­re.­En­el
nues­tra­PC,­co­nec­ta­do­con­un­ca­ble­al­puer­to­pa­- cir­cui­to,­mos­tra­do­en­la­fi­gu­ra­3,­las­pa­tas­de­co­-
ra­le­lo­de­la­mis­ma. mu­ni­ca­ción­con­el­puer­to­pa­ra­le­lo­de­la­PC­es­tán
in­di­ca­das­co­mo­1J1,­2J1,­etc,­ya­con­J1­de­sig­na­-
mos­al­co­nec­tor­de­en­tra­da­y­el­nú­me­ro­ini­cial­in­-
EL Pro­Gra­Ma­dor (QUE­Ma­dor)­­noPPP di­ca­a­qué­pa­ta­se­di­ri­ge­el­ca­ble.­Los­da­tos­(0V
El­ noPPP­ es­ un­ soft­wa­re­ pa­ra­ un­ car­ga­dor o­5V)­in­gre­san­en­su­ce­sión­por­el­ca­ble­14J1­y,
muy­sim­ple­y­efec­ti­vo.­real­men­te­no­tie­ne­de­fec­- atra­ve­san­do­ el­ re­sis­tor­ r2,­ lle­gan­ a­ la­ pa­ta­ 13
tos­ im­por­tan­tes­ y­ nos­ per­mi­te­ car­gar­ los­ PIC del­PIC.­La­pa­ta­13­per­te­ne­cien­te­al­puer­to­“B”­se
16C83,­16C84­y­16F84­en­for­ma­muy­eco­nó­mi­- com­por­ta­co­mo­una­pa­ta­de­en­tra­da­de­da­tos­en
ca­ ya­ que­ el­ hard­wa­re­ co­rres­pon­dien­te­ só­lo­ re­- tan­to­el­ca­ble­2J1­se­en­cuen­tra­en­el­es­ta­do­ba­jo,
quie­re­dos­dio­dos­rá­pi­dos­de­se­ñal,­un­BC548­y es­de­cir­que­la­pa­ta­4­Vpp­es­tá­a­un­po­ten­cial­de
4­re­sis­to­res,­ade­más­de­una­fuen­te­re­gu­la­da­do­- 13V­apro­xi­ma­da­men­te.­
al­mis­mo­tiem­po,­el
ca­ble­17J1­se­man­da­a
po­ten­cial­de­ma­sa­pa­ra
que­ los­ da­tos­ en­tran­tes
no­sal­gan­a­su­vez­por
el­ ca­ble­ 11J1;­ de­ es­te
mo­do,­ el­ dio­do­ d1­ no
per­mi­te­que­el­po­ten­cial
del­ca­ble­su­pe­re­la­ten­-
sión­de­ba­rre­ra­del­dio­-
do­(es­de­cir­que­el­dio­-
do­d1­ope­ra­co­mo­una
lla­ve).­ Co­mo­ ya­ sa­be­-
mos,­ los­ da­tos­ de­ben
ser­ va­li­da­dos­ por­ me­-
Figura 4 dio­de­un­cam­bio­de­es­-
25
ta­do­ de­ la­ se­ñal­ de­ clock­ que nec­tor­del­ti­po­dB21­ma­cho­pa­-
in­gre­sa­ des­de­ la­ PC­ por­ el­ ca­- ra­ co­nec­tar­ el­ dis­po­si­ti­vo­ di­rec­-
ble­1J1. ta­men­te­a­la­sa­li­da­de­la­im­pre­-
Fór­me­se­una­ima­gen­men­tal so­ra­de­una­PC.­En­el­cir­cui­to­di­-
del­flu­jo­de­da­tos.­Pien­se­en­la bu­ja­mos­el­co­nec­tor­vis­to­por­el
PC­co­mo­si­bom­bea­ra­da­tos­al la­do­de­las­pa­tas­de­co­ne­xio­nes
PIC­ por­ el­ ca­ble­ 14J1;­ el­ PIC, y­el­có­di­go­de­co­lo­res­de­ca­ble
pa­ra­ no­ in­flar­se,­ los­ de­vuel­ve ade­cua­do­ pa­ra­ usar­ un­ ca­ble
por­el­ca­ble­11J1.­En­rea­li­dad, pla­no­de­5­hi­los­(ne­gro,­ma­rrón,
los­ da­tos­ in­gre­san­ por­ la­ pa­ta ro­jo,­na­ran­ja­y­ama­ri­llo),­al­cual
13­ del­ PIC­ y­ se­ ins­ta­lan­ en­ la se­ le­ re­tuer­ce­ por­ en­ci­ma­ otro
me­mo­ria;­ pe­ro­ a­ con­ti­nua­ción, de­ co­lor­ blan­co­ que­ ope­ra­ co­-
el­ pro­gra­ma­ de­ car­ga­ ve­ri­fi­ca Figura 5 mo­ma­sa­y­blin­da­je.­
que­el­da­to­es­té­en­la­po­si­ción En­ la­ fi­gu­ra­ 4­ te­ne­mos­ una
de­ me­mo­ria­ co­rres­pon­dien­te­ y su­ge­ren­cia­ pa­ra­ el­ ar­ma­do­ en
si­así­ocu­rre,­se­ha­bi­li­ta­la­car­- la­pla­ca­de­cir­cui­to­im­pre­so­que
ga­ del­ si­guien­te­ da­to.­ La­ se­- no­ in­clu­ye­ los­ com­po­nen­tes­ de
cuen­cia­es­tal­que:­ la­fuen­te­(la­fuen­te­no­for­ma­par­-
te­del­kit).
a)­ se­ di­rec­cio­na­ una­ po­si­- Pa­ra­ po­der­ car­gar­ un­ PIC
ción­de­la­me­mo­ria,­ con­el­cir­cui­to­de­la­fi­gu­ra­3­em­-
B)­se­gra­ba,­ plea­mos­ el­ soft­wa­re­ noPPP.
C)­ se­ ve­ri­fi­ca­ es­ta­ úl­ti­ma Pue­de­ba­jar­lo­des­de­nues­tra­pá­-
gra­ba­ción­y­si­es­co­rrec­ta, gi­na­web­ www­.we­be­lec­tro­ni­ca­-
d)­ se­ ha­bi­li­ta­ al­ pro­gra­ma .co­m.ar,­ ha­cien­do­ click­ en­ el
pa­ra­car­gar­el­si­guien­te­da­to. íco­no­Pass­word­e­in­gre­san­do­la
cla­ve­te­pec26.­Co­mo­men­cio­na­-
de­acuer­do­al­pro­gra­ma­de mos,­ es­te­ soft­wa­re­ co­rre­ ba­jo
car­ga,­ si­ fa­lla­ la­ car­ga­ de­ un Figura 6 am­bien­te­doS­por­lo­cual,­si­tie­-
da­to­ se­ pue­de­ se­guir­ con­ los ne­ins­ta­la­do­un­sis­te­ma­ti­po­nt
otros­y­al­fi­nal­se­in­ten­ta­la­car­- (co­mo­ Win­dows­ XP)­ de­be­rá
ga­ del­ da­to­ que­ no­ se­ car­gó. arran­car­ su­ com­pu­ta­do­ra­ con
En­otros,­una­fa­lla­de­ve­ri­fi­ca­ción­sig­ni­fi­ca­que­el un­dis­co­de­ini­cio­de­Win­dows­98.
pro­gra­ma­de­be­vol­ver­a­car­gar­se­com­ple­to.­ Una­vez­guar­da­do­el­pro­gra­ma­en­el­dis­co­rí­-
Las­fuen­tes­es­tán­con­for­ma­- gi­do­ de­ su­ PC­ de­be­ des­com­pri­-
das­por­dos­re­gu­la­do­res­de­5­y mir­lo.­an­tes­de­eje­cu­tar­lo­co­nec­-
de­ 12V­ pe­ro,­ co­mo­ ne­ce­si­ta­- te­ el­ car­ga­dor­ de­ PICs­ (cir­cui­to
mos­un­re­gu­la­dor­de­13V,­rea­- de­ la­ fi­gu­ra­ 3­ ali­men­ta­do­ con
li­za­mos­una­pe­que­ña­mo­di­fi­ca­- una­ fuen­te­ de­ 5V­ y­ 13,2V­ res­-
ción­ en­ el­ re­gu­la­dor­ de­ 12V; pec­ti­va­men­te,­pe­ro­sin­la­ali­men­-
agre­gan­do­los­dio­dos­d1­y­d2 ta­ción­ ac­ti­va)­ al­ puer­to­ pa­ra­le­lo
la­ ten­sión­ de­ sa­li­da­ se­ in­cre­- de­ la­ PC.­ ­ Eje­cu­te­ el­ ar­chi­vo
men­ta­a­un­va­lor­de­13,2V.­El noPPP­­del­di­rec­to­rio­PIC­y­apa­-
otro­ cam­bio­ im­por­tan­te­ es­ el re­ce­rá­una­pan­ta­lla­co­mo­la­que
agre­ga­do­de­ca­pa­ci­to­res­de­fil­- mos­tra­mos­en­la­fi­gu­ra­5.
tro­ que,­ co­mo­ Ud.­ ob­ser­va, Es­ta­ pan­ta­lla­ ini­cial­ nos­ pre­-
siem­pre­se­ubi­can­de­a­dos:­un gun­ta­ en­ qué­ puer­to­ es­tá­ co­nec­-
Figura 7
elec­tro­lí­ti­co­ pa­ra­ fil­trar­ las­ ba­- ta­do­el­hard­wa­re­(cir­cui­to­­car­ga­-
jas­ fre­cuen­cias­ y­ un­ ce­rá­mi­co dor­de­la­fi­gu­ra­3)­y­nos­da­las
dis­co­ pa­ra­ las­ al­tas­ fre­cuen­- op­cio­nes­1,­2­y­3.­En­la­ma­yo­ría
cias.­ de­ las­ má­qui­nas­ (sal­vo­ que­ se
En­ el­ kit,­ se­ agre­ga­ un­ co­- ha­ya­pre­dis­pues­to­lo­con­tra­rio­o
26
3­-­CarGadorES­dE­PIC­µC­Y­EEProM

que­exis­tan­más­de­una­sa­li­da­pa­ra­le­lo)­siem­pre­se el­que­ma­ne­ja­el­pro­gra­ma­dor,­por­lo­tan­to,­an­tes
usa­el­puer­to­1.­Pul­se­la­te­cla­“1”­pa­ra­pa­sar­a­la de­ car­gar­ el­ PIC­ de­be­mos­ ge­ne­rar­ es­te­ ar­chi­vo
si­guien­te­pan­ta­lla­que­po­de­mos­ob­ser­var­en­la­fi­- “hex”.
gu­ra­6. S)­Se­lec­cio­nar­el­ti­po­de­PIC.­En­nues­tro­ca­so
En­ es­ta­ pan­ta­lla­ se­ con­fir­ma­ que­ se­ es­tá­ uti­li­- el­PIC­ya­fue­se­lec­cio­na­do,­pe­ro­po­dría­mos­ne­ce­-
zan­do­el­puer­to­1­y­que­es­te­puer­to­tie­ne­una­po­- si­tar­un­cam­bio­si­de­be­mos­pro­gra­mar­más­de­un
si­ción­de­me­mo­ria­378h­(pa­ra­Win­dows­98,­pa­ra ti­po.
otro­sis­te­ma­pue­de­ser­otra­po­si­ción­y­quie­nes­sa­- E)­ Bo­rrar­ un­ PIC­ pre­via­men­te­ gra­ba­do.­ En­ lo
ben­ de­ com­pu­ta­do­ras­ tam­bién­ co­no­cen­ la­ for­ma per­so­nal,­acon­se­jo­bo­rrar­el­PIC­co­mo­pa­so­pre­vio
de­ mo­di­fi­car­ es­ta­ di­rec­ción­ si­ hi­cie­ra­ fal­ta).­ ade­- a­la­gra­ba­ción­por­ra­zo­nes­de­se­gu­ri­dad.­
más­ el­ pro­gra­ma­ in­di­ca­ que V)­Ve­ri­fi­car­el­pro­gra­ma­car­-
se­de­be­co­nec­tar­la­fuen­te,­pe­- ga­do­en­un­PIC.­En­es­ta­fun­ción
ro­man­te­nien­do­el­PIC­sin­ubi­- se­car­ga­un­pro­gra­ma­he­xa­de­ci­-
car­en­el­zó­ca­lo­(ba­se).­Lue­go mal­y­el­car­ga­dor­ve­ri­fi­ca­que­el
de­be­mos­ apre­tar­ la­ ba­rra­ es­- pro­gra­ma­al­ma­ce­na­do­en­el­PIC
pa­cia­do­ra­pa­ra­ir­a­la­si­guien­- sea­igual­al­he­xa­de­ci­mal.
te­pan­ta­lla­(fi­gu­ra­7).
En­es­ta­pan­ta­lla­el­pro­gra­- Por­lo­ge­ne­ral,­el­ar­chi­vo­de
ma­nos­in­di­ca­que­só­lo­so­por­- pro­gra­ma­ que­ te­ne­mos­ dis­po­ni­-
ta­ tres­ ti­pos­ de­ PICs­ y­ de­be­- ble­ tie­ne­ una­ ex­ten­sión­ “.asm”
mos­op­tar­por­uno­de­los­tres, (más­ ade­lan­te­ ve­re­mos­ es­te­ te­-
pul­san­do­ las­ te­clas­ C,­ F­ o­ 3. ma­más­de­ta­lla­da­men­te)­que­co­-
tam­bién­ se­ pue­de­ ha­cer­ una rres­pon­de­ a­ la­ ver­sión­ “as­sem­-
ve­ri­fi­ca­ción­ del­ fun­cio­na­mien­- Figura 8 bler”­ (en­sam­bla­do),­ ne­mo­téc­ni­-
to­del­car­ga­dor­pul­san­do­la­te­- ca­ o­ ne­mó­ni­ca­ del­ mi­cro­con­tro­-
cla­t.­ la­dor­con­el­que­va­mos­a­tra­ba­-
Lue­go­de­pul­sar­la­te­cla­co­- jar.­ ­ Co­mo­ el­ car­ga­dor­ de­ PIC
rrec­ta­(por­ejem­plo­la­C)­apa­- no­ en­tien­de­ ese­ idio­ma,­ el­ pro­-
re­ce­una­nue­va­pan­ta­lla­co­mo gra­ma­se­“pa­sa”­por­un­pro­gra­-
la­in­di­ca­da­en­la­fi­gu­ra­8.­Es­- ma­ tra­duc­tor­ lla­ma­do­ ­ MPaSM
ta­pan­ta­lla­só­lo­nos­in­di­ca­que (es­un­com­pi­la­dor)­que­ade­más
es­ el­ mo­men­to­ de­ in­ser­tar­ el de­la­tra­duc­ción­rea­li­za­un­con­-
PIC­en­el­zó­ca­lo­(no­te­que­ya trol­y­per­mi­te­de­pu­rar­erro­res­y
apa­re­ce­ la­ pa­la­bra pue­de­ ba­jar­ sin­ car­go­ de­ la
PIC16C84,­in­di­can­do­que­va­- web.­
mos­a­car­gar­a­es­te­µC).­aho­- Pa­ra­ pro­gra­mar­ el­ PIC­ (op­-
ra­de­be­co­nec­tar­la­fuen­te­de ción­P)­an­tes­de­be­mos­car­gar­el
ali­men­ta­ción­ y­ apre­tar­ la­ ba­- pro­gra­ma­“.hex”­en­el­noPPP­y
rra­es­pa­cia­do­ra­de­mo­do­que pa­ra­ ello­ pre­sio­na­mos­ la­ le­tra
apa­rez­can­ las­ op­cio­nes­ de “L”­ de­ “load­ he­xa­de­ci­mal­ fi­le”
Figura 9
ma­ne­jo,­ tal­ co­mo­ se­ mues­tra cu­ya­tra­duc­ción­exac­ta­es­“car­-
en­la­fi­gu­ra­9.­En­es­ta­pan­ta­- gar­ar­chi­vo­he­xa­de­ci­mal”.­apa­-
lla­ po­de­mos­ ele­gir­ la­ ope­ra­- re­ce­rá­ una­ pan­ta­lla­ co­mo­ la
ción­ que­ de­sea­mos­ rea­li­zar mos­tra­da­en­la­fi­gu­ra­10.­
en­tre­las­op­cio­nes­(se­lec­cio­na­- Es­cri­ba­el­nom­bre­del­ar­chi­-
bles­por­las­te­clas­res­pec­ti­vas) vo­a­car­gar­­es­de­cir,­por­ejem­-
L,­ S,­ E,­ y­ V­ que­ tie­nen­ las­ si­- plo­ se­cua­.hex,­ te­nien­do­ en
guien­tes­fun­cio­nes: cuen­ta­que­es­te­ar­chi­vo­de­be­es­-
tar­ den­tro­ de­ la­ mis­ma­ car­pe­ta
L)­Car­gar­el­PIC­con­un­ar­- don­de­se­alo­ja­el­noPPP­(si­no
chi­vo­que­de­be­ser­del­ti­po­he­- Figura 10 sa­be­ma­ne­jar­doS­ha­ga­al­pie
xa­de­ci­mal.­Es­te­for­ma­to­no­es de­la­le­tra­lo­que­le­in­di­ca­mos).
27
El­ ar­chi­vo­ “se­cua­.hex”,­ que cien­den­ en­ se­cuen­cia­ una­ y
tam­bién­ pue­de­ ba­jar­ de­ nues­- otra­vez.­
tra­ web­ con­ la­ cla­ve­ te­pec26, Prue­ba­
co­rres­pon­de­a­un­se­cuen­cia­dor Pre­li­mi­nar­
de­4­ca­na­les­que­po­drá­pro­bar del­noPPP
con­la­pla­ca­ve­ri­fi­ca­do­ra.
Una­vez­ti­pea­do­el­nom­bre Si­ eje­cu­ta­ el­ noPPP­ y­ no
del­ar­chi­vo­aprie­te­la­te­cla­En­- es­tá­co­nec­ta­do­el­hard­wa­re­en
tEr­­pa­ra­que­se­car­gue­el­pro­- el­puer­to­pa­ra­le­lo­de­la­com­pu­-
gra­ma­en­el­noPPP­­y­el­re­sul­- ta­do­ra,­ lue­go­ de­ apre­tar­ la­ te­-
ta­do­ de­ la­ car­ga­ se­ ob­ser­va­rá cla­ “1”­ (cuan­do­ lo­ so­li­ci­ta­ el
en­ una­ pan­ta­lla­ co­mo­ la­ mos­- Figura 11 pro­gra­ma)­ va­ a­ apa­re­cer­ una
tra­da­en­la­fi­gu­ra­11. pan­ta­lla­ co­mo­ la­ in­di­ca­da­ en
En­ es­ta­ pan­ta­lla­ se­ pue­den la­fi­gu­ra­12.­Es­ta­pan­ta­lla­le­in­-
ob­ser­var­al­gu­nos­de­ta­lles­del­ta­ma­ño­del­ar­chi­vo di­ca­que­el­dis­po­si­ti­vo­es­tá­des­co­nec­ta­do­(noPPP
“.hex”­ des­glo­sa­do­ en­ can­ti­dad­ de­ pa­la­bras­ de hard­wa­re­ not­ found),­ si­ es­tá­ co­nec­ta­do­ sig­ni­fi­ca
pro­gra­ma,­ de­ con­fi­gu­ra­ción,­ de­ iden­ti­fi­ca­ción­ y que­su­PC­tie­ne­un­puer­to­pa­ra­le­lo­de­ida­so­la­men­-
de­da­tos.­tam­bién­apa­re­ce­una­in­di­ca­ción­de­que te­(en­vía­se­ña­les­a­la­im­pre­so­ra,­pe­ro­no­re­ci­be­to­-
el­pro­gra­ma­fue­car­ga­do­com­ple­to.­Por­úl­ti­mo­se das­las­se­ña­les­de­re­tor­no­des­de­la­mis­ma).­En­es­-
in­di­ca­ “apre­tar­ la­ ba­rra­ es­pa­cia­do­ra­ pa­ra­ con­ti­- te­ ca­so­ ig­no­re­ la­ pan­ta­lla­ que­ le­ va­ a­ apa­re­cer
nuar”­con­lo­cual­apa­re­ce­­nue­va­men­te­la­pan­ta­lla siem­pre.­Pue­de­tam­bién­apa­re­cer­es­ta­pan­ta­lla­si
de­op­cio­nes. es­tá­mal­ar­ma­do­el­car­ga­dor­o­el­ca­ble­de­co­ne­-
aho­ra­ po­de­mos­ pro­gra­mar­ el­ PIC­ eli­gien­do xión.­ Ig­no­re­ la­ in­di­ca­ción,­ ya­ que­ en­ el­ pro­ce­so
“P”­(Pro­GraM­PIC).­Se­ob­ser­va­rá­un­mo­vi­mien­to pos­te­rior­apa­re­ce­rá­el­mo­do­de­re­pa­rar­la­fa­lla.­Si
en­ la­ pan­ta­lla­ y­ unos de­sea­ sa­lir­ del­ pro­gra­-
se­gun­dos­des­pués­apa­- ma­ de­be­ pul­sar­ las­ te­-
re­ce­rá­ un­ car­tel­ in­di­- clas­ Ctrl­ y­ C­ al­ mis­mo
can­do­que­la­car­ga­fue tiem­po­ o­ de­be­ ha­cer
exi­to­sa.­ re­cuer­de­ que click­ so­bre­ la­ cru­ce­si­ta
el­noPPP­­car­ga­rá­los que­ es­tá­ en­ el­ mar­gen
da­tos­en­la­me­mo­ria­y su­pe­rior­ de­re­cho.­ Pa­ra
lue­go­ los­ irá­ le­yen­do; con­ti­nuar,­ig­no­ran­do­el
si­el­úl­ti­mo­da­to­se­car­- men­sa­je,­pul­se­la­ba­rra
gó­co­rrec­ta­men­te­pa­sa­- es­pa­cia­do­ra.
rá­a­car­gar­el­si­guien­te La­ si­guien­te­ pan­ta­-
y­ así­ su­ce­si­va­men­te lla­ es­ la­ que­ ya­ vi­mos
has­ta­lle­gar­al­úl­ti­mo. en­ la­ fi­gu­ra­ 7­ don­de
Pos­te­rior­men­te­ el Figura 12 de­be­ele­gir­un­de­ter­mi­-
pro­gra­ma­in­di­ca­rá­que na­do­ti­po­de­PIC­o­pue­-
se­ de­be­ qui­tar­ la­ ten­- de­ rea­li­zar­ el­ tESt­ de
sión­ de­ ali­men­ta­ción­ y prue­ba­ del­ PIC.­ La­ pri­-
lue­go­ sa­car­ el­ PIC­ del me­ra­ vez­ que­ co­nec­te
zó­ca­lo.­ el­ hard­wa­re­ acep­te­ la
Cum­pla­ con­ las­ in­- pro­pues­ta­de­rea­li­zar­el
di­ca­cio­nes­y­co­lo­que­el au­to­ diag­nós­ti­co­ pul­-
PIC­ pro­gra­ma­do­ en­ el Figura 13 san­do­ “t”.­ ­ Si­ re­ci­be
zó­ca­lo­(ba­se)­del­en­tre­- una­ pan­ta­lla­ co­mo­ la
na­dor­de­la­fi­gu­ra­1.­Y mos­tra­da­ en­ la­ fi­gu­ra
por­ úl­ti­mo­ ali­men­te­ el 13­sig­ni­fi­ca­que­el­car­-
cir­cui­to­ y­ ob­ser­ve­ los ga­dor­no­re­ci­be­ten­sión
leds.­Si­to­do­sa­lió­bien de­ fuen­te.­ Si­ su­ fuen­te
ob­ser­va­rá­ que­ se­ en­- es­tá­ ac­ti­va­ apa­re­ce­rá
28
3­-­CarGadorES­dE­PIC­µC­Y­EEProM

la­pri­mer­pan­ta­lla­de­au­- sión­ de­ la­ unión­ de­ los


to­diag­nós­ti­co­que­se­ob­- dio­dos­d1­y­d2.
ser­va­en­la­fi­gu­ra­14.­La Si­ Ud.­ tie­ne­ una­ ten­-
pan­ta­lla­in­di­ca­que­de­be sión­en­la­pa­ta­4­(ten­sión
co­nec­tar­ el­ ter­mi­nal­ ne­- de­ gra­ba­ción)­ al­ta­ (cer­-
ga­ti­vo­ del­ mul­tí­me­tro­ a ca­na­ a­ los­ 13V)­ pro­ba­-
Gnd­ (pa­ta­ 5­ del­ PIC)­ y ble­men­te­ ten­drá­ cor­ta­do
con­ el­ ter­mi­nal­ po­si­ti­vo el­ ca­ble­ que­ va­ co­nec­ta­-
de­be­ me­dir­ las­ pa­tas­ 4, do­a­la­pa­ta­2­del­co­nec­-
12­y­13­que­de­ben­es­tar tor­ J1.­ tam­bién­ pue­de
a­ un­ po­ten­cial­ ba­jo­ me­- ocu­rrir­ que­ el­ tran­sis­tor
nor­a­0.8V­y­la­pa­ta­14 Q1­es­té­abier­to­o­no­sea
de­fuen­te­que­de­be­es­tar Figura 14 de­ la­ po­la­ri­dad­ ade­cua­-
a­ un­ po­ten­cial­ com­pren­- da­ (es­to­ tam­bién­ se­ pre­-
di­do­en­tre­4,75V­y­5,25V.­ sen­ta­si­por­error,­co­nec­ta­al­re­vés­el­tran­sis­tor).
La­unión­de­los­dio­dos­d1­y­d2­con­el­re­sis­tor Si­tie­ne­ten­sio­nes­al­tas­en­las­pa­tas­12­y­13­de­-
r1­de­be­te­ner­una­ten­sión­me­nor­a­0.8V.­ be­rá­bus­car­cor­to­cir­cui­tos­en­las­pa­tas­del­zó­ca­lo
Es­tas­me­di­cio­nes­de­ben­rea­li­zar­se­sin­co­lo­car (ba­se)­del­PIC­o­en­el­cir­cui­to­im­pre­so­o­en­el­co­-
el­PIC­en­el­zó­ca­lo.­ nec­tor­J1.­Si­las­ten­sio­nes­me­di­das­son­co­rrec­tas,
En­es­ta­prue­ba­el­ca­ble­de­13V­es­tá­a­po­ten­- pre­sio­ne­ la­ ba­rra­ es­pa­cia­do­ra­ pa­ra­ pa­sar­ al­ test
cial­ al­to­ (la­ com­pu­ta­do­ra­ ha­bi­li­ta­ la­ ten­sión­ de 2.­apa­re­ce­rá­una­pan­ta­lla­co­mo­la­in­di­ca­da­en­la
13V)­y­por­lo­tan­to­Q1­es­ta­rá­sa­tu­ra­do.­En­es­tas fi­gu­ra­15.
con­di­cio­nes­el­co­lec­tor­só­lo­pue­de­te­ner­me­nos­de de­be­me­dir­las­ten­sio­nes­de­las­pa­tas­4,­12­y
un­volt­res­pec­to­de­Gnd­­y­el­PIC­es­ta­rá­en­con­di­- 13­con­res­pec­to­a­tie­rra­o­ma­sa­(pa­ta­5)­pe­ro­es­-
ción­de­lec­tu­ra­de­me­mo­ria.­El­ca­ble­de­sa­li­da­de ta­vez­con­el­tran­sis­tor­Q1­cor­ta­do.­
da­tos­tie­ne­un­po­ten­cial­co­rres­pon­dien­te­a­la­ba­- Las­ ten­sio­nes­ me­di­das­ en­ las­ pa­tas­ 12­ y­ 13
rre­ra­de­d1­(0,6V).­ pro­vie­nen­ de­ la­ com­pu­ta­do­ra­ y­ de­pen­den­ de­ su
Si­la­ten­sión­de­la­pa­ta­13­es­ma­yor­a­800mV fuen­te­re­gu­la­da­in­ter­na­y­del­puer­to­de­sa­li­da­pa­-
es­por­que­se­gu­ra­men­te­el­ca­ble­co­nec­ta­do­al­ter­- ra­le­lo.­Lo­im­por­tan­te­en­es­ta­prue­ba­es­que­la­ten­-
mi­nal­17­del­co­nec­tor­no­es­tá­a­po­ten­cial­de­ma­- sión­su­pe­re­los­4V­pa­ra­que­el­PIC­in­ter­pre­te­que
sa­y­d1­no­es­tá­con­du­cien­do­po­la­ri­za­do­por­r1. hay­un­es­ta­do­al­to­en­su­en­tra­da­de­da­toS­y­en
Pro­ba­ble­men­te­ es­té­ cor­ta­do­ el­ ca­ble,­ o­ es­tá­ mal el­CLoCK.­
co­nec­ta­do­a­la­pa­ta­17­del­co­nec­tor­J1.­tam­bién En­el­test­1­se­ve­ri­fi­có­el­es­ta­do­ba­jo­de­es­tas
pue­de­ocu­rrir­que­el­ca­ble­es­té­a­po­ten­cial­de­ma­- pa­tas­y­en­és­te­se­ve­ri­fi­ca­el­es­ta­do­al­to­com­ple­tan­-
sa­pe­ro­el­dio­do­d1­es­té­abier­to­o­in­ver­ti­do.­Pa­ra do­la­prue­ba­de­las­pa­tas­12­­y­13.­La­ten­sión­me­-
sa­car­con­clu­sio­nes­más­ade­cua­das­ve­ri­fi­que­la­ten­- di­da­en­la­pa­ta­4­de­be­te­ner­un­va­lor­com­pren­di­-
do­en­tre­12­y­14­V­apro­xi­ma­da­men­te,­ya­que­el
tran­sis­tor­ Q1­ no­ de­be­ con­du­cir­ (de­pen­dien­do­ de
la­ten­sión­que­en­tre­gue­nues­tra­fuen­te­de­ali­men­ta­-
ción,­ya­no­la­com­pu­ta­do­ra).
La­unión­de­los­dio­dos­d1­y­d2­de­be­rá­man­te­-
ner­se­a­un­po­ten­cial­in­fe­rior­a­los­800mV­ase­gu­-
Figura 15 rán­do­nos­que­el­dio­do­d2­no­es­tá­en­cor­to­cir­cui­to
o­in­ver­ti­do.­ob­ser­ve­que­en­es­te­test­el­dio­do­que­-
da­po­la­ri­za­do­en­in­ver­sa.
Si­la­ten­sión­de­la­pa­ta­4­es­ba­ja­o­no­exis­te,
el­re­sis­tor­r5­es­tá­cor­ta­do,­mal­co­nec­ta­do­o­con­un
va­lor­ equi­vo­ca­do;­ tam­bién­ pue­de­ ocu­rrir­ que­ el
tran­sis­tor­ten­ga­un­cor­to­cir­cui­to­en­tre­el­emi­sor­y­el
co­lec­tor­(pue­de­des­co­nec­tar­lo­del­cir­cui­to­pa­ra­ve­-
ri­fi­car­que­su­ba­la­ten­sión­de­fuen­te).­de­be­ve­ri­fi­-
car­pri­me­ro­que­la­fuen­te­de­13V­ten­ga­la­ten­sión
29
co­rrec­ta.­ Si­ la­ pa­ta­ 12­ no­ tie­nen­ una
Figura 16 ten­sión­su­pe­rior­a­4V,­­pro­ba­ble­men­te
el­re­sis­tor­r3­es­té­equi­vo­ca­do­de­va­lor
o­mal­co­nec­ta­do.­Si­la­ten­sión­en­la­pa­-
ta­13­es­me­nor­a­4V­pue­de­es­tar­equi­-
vo­ca­do­o­abier­to­el­re­sis­tor­r2­o­el­dio­-
do­d2­pue­de­es­tar­in­ver­ti­do­o­en­cor­to­-
cir­cui­to.­
Si­las­ten­sio­nes­son­co­rrec­tas­pre­sio­-
ne­la­ba­rra­es­pa­cia­do­ra­pa­ra­pa­sar­al
test­3­(apa­re­ce­rá­la­pan­ta­lla­de­la­fi­gu­-
ra­16)­en­don­de­se­si­mu­la­rá­un­es­ta­do
ba­jo­ sa­lien­do­ de­ la­ pa­ta­ de­ da­to­ del
PIC.­La­ac­ción­del­PIC­pa­ra­sa­car­da­tos
se­si­mu­la­co­nec­ta­do­un­re­sis­tor­de­470Ω
en­tre­las­pa­tas­13­(rB­7/da­ta)­y­la­pa­ta­5­(ma­sa).
La­ten­sión­de­la­pa­ta­13­de­be­ser­aho­ra,­in­fe­rior­a
0.7V­al­apo­yar­el­re­sis­tor.­
Si­las­me­di­cio­nes­son­co­rrec­tas­po­de­mos­pa­sar
al­test­4.­apre­tan­do­la­ba­rra­es­pa­cia­do­ra­apa­re­ce
Figura 17 una­pan­ta­lla­co­mo­la­in­di­ca­da­en­la­fi­gu­ra­17.
Es­es­te­test­se­es­ta­ble­ce­el­es­ta­do­ba­jo­de­la­sa­-
li­da­de­da­tos­cuan­do­se­es­cri­be­un­da­to­al­to.­Es­to
sig­ni­fi­ca­que­no­de­be­ha­ber­re­tor­no­di­rec­to­­por­el
ca­ble­de­es­cri­tu­ra­de­bi­do­a­que­el­dio­do­d1­es­tá
po­la­ri­za­do­con­su­cá­to­do­a­ma­sa­pa­ra­evi­tar­que
la­ten­sión­so­bre­él­su­pe­re­los­600mV.­­Si­la­ten­sión
es­la­co­rrec­ta,­pul­se­la­ba­rra­es­pa­cia­do­ra­pa­ra­pa­-
sar­ a­ la­ úl­ti­ma
pan­ta­lla­ de­ test­ .
aquí­se­prue­ba­al
dis­po­si­ti­vo­ co­mo
ge­ne­ra­dor­ de­ un
da­to­ al­to.­ Si­ to­-
das­ las­ prue­bas
pa­sa­ron­ co­rrec­ta­-
men­te,­ se­ pue­de
ase­gu­rar­ que­ ya
no­hay­erro­res­de
ar­ma­do­y­que­los
dio­dos­ y­ re­sis­to­-
res­ no­ es­tán­ al­te­-
ra­dos.­En­la­fi­gui­-
ra­ 18­ se­ mues­tra
el­ car­ga­dor
noPPP­ con­ su
fuen­te­ de­ ali­men­-
ta­ción­ y­ la­ pla­ca
en­tre­na­do­ra,­ ar­-
ma­dos­ en­ un­ ex­-
Figura 18 pe­ri­men­ta­dor­ti­po
pro­to­board.
30
3­-­CarGadorES­dE­PIC­µC­Y­EEProM

Figura 19

EL Car­Ga­dor QUarK Pro 2 un­Pen­tium­100­has­ta­un­Pen­tium­III­de­850MHz


sin­in­con­ve­nien­tes.­no­re­quie­re­de­nin­gún­ti­po­de
En­va­rias­di­rec­cio­nes­de­in­ter­net­apa­re­ce­el­cir­- adap­ta­dor,­ y­ en­ tres­ zó­ca­los­ que­ dis­po­ne,­ po­de­-
cui­to­que­des­cri­bi­re­mos­a­con­ti­nua­ción,­ad­ju­di­cán­- mos­pro­gra­mar:
do­le­la­au­to­ría­a­di­fe­ren­tes­per­so­nas­y­con­el­nom­-
bre­“Car­ga­dor­Uni­ver­sal”.­La­ver­sión­que­re­pro­du­- -­PIC12C508­/a,­PIC12C509­/a
ci­mos­es­en­ba­se­al­tra­ba­jo­de­un­tal­“droky”­de
-­PIC12C67x
ra­di­Kal­By­tEs.­
-­PIC16C55x
nues­tros­téc­ni­cos­han­rea­li­za­do­al­gu­nas­mo­di­-
fi­ca­cio­nes­y­el­re­sul­ta­do­es­el­si­guien­te: -­PIC16C61

Con­es­te­pro­yec­to­se­pue­de­rea­li­zar­un­pro­gra­- -­PIC16C62x
ma­dor­ pa­ra­ PICs­ y­ EE­ProMs­ de­ la­ se­rie­ 24LXxx -­PIC16C71
que­fun­cio­na­bien­y­re­quie­re­po­cos­com­po­nen­tes -­PIC16C71x
ex­ter­nos.­ El­ cir­cui­to­ es­tá­ ba­sa­do­ en­ el­ “Lud­di”­ o -­PIC16C8x
pro­gra­ma­dor­de­JdM­(vea:­www.jdm­.com),­sien­do
-­PIC16F8x
com­pa­ti­ble­ con­ di­fe­ren­tes­ soft­wa­res­ car­ga­do­res.
Se­ha­pro­ba­do­en­di­fe­ren­tes­com­pu­ta­do­ras­des­de -­PIC16F873/4/6/7­(Mo­de­los­de­28­pa­tas)
-­PIC16C73B/74B/76/77
-­EE­ProMs­de­la­se­rie­24LCxx

En­la­fi­gu­ra­19­se­mues­tra­el­cir­cui­to­del­car­ga­-
dor,­ en­ la­ 20a­ la­ pla­ca­ de­ cir­cui­to­ im­pre­so­ pro­-
pues­ta­y­en­la­20b­la­mis­ma­pla­ca­pe­ro­del­la­do
de­los­com­po­nen­tes.­­
El­ta­ma­ño­del­car­ga­dor­es­bas­tan­te­re­du­ci­do­y
po­see­ ba­ses­ (zó­ca­los)­ pa­ra­ la­ ma­yo­ría­ de­ los
chips­que­pue­de­pro­gra­mar­(siem­pre­en­en­cap­su­-
Figura 20a la­do­dIL­no­en­tSoP,­SMd­ni­otros­for­ma­tos).
31
Figura­20b Existen­mu­chos­car­ga­do­res,­sin­em­bar­-
go,­ de­sa­rro­lla­mos­ es­te­ pro­to­ti­po­ pa­ra
usua­rios­de­PICs­más­exi­gen­tes.­
Es­te­ nue­vo­ pro­to­ti­po­ les­ per­mi­ti­rá­ pro­-
gra­mar­ PICs­ más­ po­de­ro­sos­ co­mo­ el
PIC16F873­ (de­ 28­ pins)­ ,­ el­ PIC16F874
(de­ 40­ pins)­ o­ pics­ me­jo­ra­dos­ co­mo­ el
PIC16F627.
Exis­ten,­en­In­ter­net,­mu­chos­pro­gra­ma­-
do­res­de­pics­de­uso­li­bre,­co­mo­el­JdM,­el
taIt,­ el­ Pro­PIC­ 2­ y­ el­ ta­FE,­ en­tre­ otros
Si­bien­es­po­si­ble­uti­li­zar­dis­tin­tos­ti­pos­de­soft­- mu­chos.­Sin­em­bar­go,­nin­gún­que­ma­dor­(pro­gra­-
wa­res,­ he­mos­ rea­li­za­do­ ex­pe­rien­cias­ con­ el­ ital­- ma­dor)­ fun­cio­na­ sin­ un­ pro­gra­ma­ que­ lo­ ope­re,
que,­el­des­den,­el­pix­y­el­ic­prog.­Es­pre­ci­sa­men­te pa­ra­ello­exis­ten­tam­bién­mu­chos­uti­li­ta­rios­co­mo
el­ic­prog­el­que­per­mi­te­“car­gar”­a­ca­si­to­dos­los el­IC-ProG,­el­PIC-aLL,­el­noPPP,­el­PonY-ProG,
chips­in­di­ca­dos­y­lo­pue­de­ba­jar­gra­tui­ta­men­te­si­- etc.­(mu­chos­de­uso­li­bre).­
guien­do­los­pa­sos­que­men­cio­na­mos­an­te­rior­men­- Ca­da­ pro­gra­ma­dor­ y­ ca­da­ pro­gra­ma­ po­see
te,­uti­li­zan­do­la­cla­ve­de­ac­ce­so:­ai­wa15. sus­ pro­pias­ ven­ta­jas­ y­ des­ven­ta­jas,­ lo­ im­por­tan­te
El­ pro­gra­ma­ pix­ se­ pue­de­ usar­ pa­ra­ los es­es­co­ger­un­pro­gra­ma­que­sea­com­pa­ti­ble­con­el
PIC16F8x­ y­ PIC16C8x,­ es­ rá­pi­do­ y­ per­mi­te­ bas­- pro­gra­ma­dor­ele­gi­do.
tan­tes­ op­cio­nes.­ Pa­ra­ las­ EE­ProM­ 24LCxx,­ pue­-
den­em­plear­se­tan­to­el­Ic­prog­co­mo­el­PIX­. ¿Por­ qué­ ba­sar­ el­ di­se­ño­ en­ el­ pro­gra­ma­dor
Pa­ra­los­12C508/a­y­12C509­/a­lo­más­se­- JdM?
gu­ro­es­usar­el­prog508­y­el­prog509­(vea­los­fo­- En­prin­ci­pio,­pa­ra­pro­gra­mar­un­PIC­se­re­quie­-
ros­PSX)­y­que­se­pue­den­des­car­gar­de­la­pá­gi­na re­de­una­fuen­te­de­5­volt­pa­ra­ali­men­tar­lo­(Vdd)
de­JdM.­ y­ otra­ fuen­te­ de­ 13­ volt­ pa­ra­ pro­gra­mar­ o­ “que­-
La­lis­ta­de­ma­te­ria­les­del­car­ga­dor­uni­ver­sal­es mar”­el­PIC­(Vpp)­­lo­que­im­pli­ca­que­de­be­mos­te­-
la­si­guien­te: ner­dos­fuen­tes­de­vol­ta­je­pa­ra­rea­li­zar­la­ope­ra­-
ción,­lo­que­de­en­tra­da­nos­ele­va­ría­el­cos­to.­
C1­-­22µF­,­16v­tan­ta­lio/E­lec­tro­lí­ti­co
En­el­JdM­(véa­se­www.jdm­.ho­me­pa­ge.dk)­ca­-
C2­-­100µF­,­16v­tan­ta­lio/E­lec­tro­lí­ti­co be­des­ta­car­“lo­in­ge­nio­so­del­di­se­ño”­ya­que­em­-
C3,­C4­-­0,001µF­-­Ce­rá­mi­co plea­los­vol­ta­jes­dis­po­ni­bles­del­puer­to­se­rie­de­la
d1,d2,d3,d4­-­1n4148 com­pu­ta­do­ra­pa­ra­que,­me­dian­te­­un­arre­glo­con
dio­dos­y­ca­pa­ci­to­res­(llá­me­se­mul­ti­pli­ca­dor­de­ten­-
d5­-­5.1V­1/2W
sión­in­te­gra­do­por­d3,­d4,­d5,­d6,­C1­Y­C2)­se
d6­-­8.2V­1/2W pue­dan­ob­te­ner­los­más­de­13V­ne­ce­sa­rios­pa­ra
J1­-­Zó­ca­lo­24LCXX­8­Pa­ti­llas pro­gra­mar­cual­quier­PIC.­
J2­-­Zó­ca­lo­PIC­18­Pa­ti­llas Es­to­­nos­ofre­ce­una­gran­ven­ta­ja,­ya­que­no
re­que­ri­mos­fuen­te­de­ali­men­ta­ción­ex­ter­na­al­gu­na
J3­-­Zó­ca­lo­PIC­28­Pa­ti­llas
con­vir­tien­do­el­pro­gra­ma­dor­en­un­cir­cui­to­“pa­rá­-
P2­-­Co­nec­tor­dB9­Hem­bra
si­to”­­que­en­nues­tro­ca­so­se­ali­men­ta­del­puer­to
Q1,Q2­-­BC548B se­rie­ de­ la­ com­pu­ta­do­ra,­ lo­gran­do­ así­ aba­tir­ el
Q3­-­BC558B cos­to­más­al­to­que­re­pre­sen­tan­las­fuen­tes­de­ali­-
r1­-­100kΩ men­ta­ción.­
otra­ ven­ta­ja­ que­ ofre­ce­ es­te­ pro­gra­ma­dor­ es
r2­-­10kΩ
que­no­re­que­ri­mos­de­un­li­mi­ta­dor­de­co­rrien­te­pa­-
r3­-­1k5 ra­el­ca­so­de­in­ser­tar­un­PIC­da­ña­do,­ya­que­el­cir­-
cui­to­rS232­del­puer­to­se­rie­de­la­PC­tie­ne­su­pro­-
pio­li­mi­ta­dor­de­co­rrien­te.­Sin­em­bar­go,­no­po­de­-
aho­ra­ bien,­ co­mo­ he­mos­ di­cho,­ exis­ten­ mu­-
mos­te­ner­to­da­la­glo­ria,­ya­que­pa­ra­los­que­se
chos­cir­cui­tos­car­ga­do­res­de­PICs­que­se­pue­den
de­di­can­a­la­pro­gra­ma­ción­“in­si­tu”,­es­de­cir,­los
ba­jar­de­In­ter­net.
32 que­pro­gra­man­los­PIC’s­en­el­mis­mo­cir­cui­to­don­-
3­-­CarGadorES­dE­PIC­µC­Y­EEProM

Figura 22

Figura 23

de­ope­ra­y­el­cual­se­di­se­ña­con­un
co­nec­tor­ es­pe­cial­men­te­ des­ti­na­do
pa­ra­ la­ pro­gra­ma­ción,­ es­te­ pro­gra­-
ma­dor­o­car­ga­dor­de­PIC’s­no­fun­cio­-
na­ ya­ que­ la­ tie­rra­ del­ cir­cui­to­ no­ es­ com­pa­ti­ble soft­wa­re­(IC-ProG),­ba­sa­dos­en­el­que­fue­ra­más
con­la­tie­rra­flo­tan­te­de­nues­tro­pro­gra­ma­dor.­Pa­- com­pa­ti­ble.­El­IC-ProG­­ofre­ce­va­rias­ven­ta­jas:­La
ra­tal­ca­so,­se­su­po­ne­que­los­que­rea­li­zan­es­te­ti­- pri­me­ra­es­que­es­den­tro­de­su­me­nú­ofre­ce­op­cio­-
po­de­pro­gra­ma­ción­se­de­di­can­pro­fe­sio­nal­men­te nes­ im­por­tan­tes­ co­mo­ la­ po­si­bi­li­dad­ de­ se­lec­cio­-
a­ello,­y­por­en­de­con­ta­rán­tam­bién­con­un­pro­gra­- nar­el­puer­to­a­uti­li­zar,­­así­co­mo­el­pro­to­ti­po­de
ma­dor­ pro­fe­sio­nal­ que­ ten­ga­ sus­ pro­pias­ fuen­tes pro­gra­ma­dor­a­uti­li­zar;­la­se­gun­da­es­que­el­pro­-
de­ ali­men­ta­ción.­ Ca­be­ re­cor­dar­ que­ el­ ob­je­ti­vo gra­ma­ofre­ce­un­am­bien­te­de­tra­ba­jo­muy­ami­ga­-
prin­ci­pal­de­nues­tro­pro­to­ti­po­es­que­sea­eco­nó­mi­- ble,­ya­que­es­te­pro­gra­ma­y­gra­cias­a­las­apor­ta­-
co,­fá­cil­de­usar­y­con­fia­ble. cio­nes­de­mu­chos­co­la­bo­ra­do­res­de­to­do­el­mun­-
En­la­fi­gu­ra­21­se­mues­tra­el­dia­gra­ma­es­que­- do,­ es­tá­ tra­du­ci­do­ a­ va­rios­ idio­mas­ y­ ter­ce­ro­ es
má­ti­co­del­pro­gra­ma­dor­JdM.­En­la­fi­gu­ra­22­se que­es­com­pa­ti­ble­con­la­ma­yo­ría­de­los­sis­te­mas
mues­tra­en­cir­cui­to­im­pre­so­su­ge­ri­do. ope­ra­ti­vos­ de­ la­ PC,­ ade­más­ que­ con­ fre­cuen­cia
es­tán­dis­po­ni­bles­de­ma­ne­ra­gra­tui­ta­ver­sio­nes­ac­-
¿Por­qué­uti­li­zar­el­pro­gra­ma­IC-ProG? tua­li­za­das­(véa­se­ww­w.ic-prog­.com).­En­la­fi­gu­ra
Con­ el­ mis­mo­ cri­te­rio­ que­ se­lec­cio­na­mos­ el 23­se­mues­tra­el­am­bien­te­de­tra­ba­jo­de­es­te­pro­-
hard­wa­re­ (pro­gra­ma­dor­ JdM),­ se­lec­cio­na­mos­ el gra­ma.­

Figura 21

33
Si­ us­ted­ ha­ tra­ba­ja­do­ con­ am­bien­tes
de­ pro­gra­mas­ di­fe­ren­tes,­ po­drá­ ob­ser­var
que­el­am­bien­te­del­IC-Prog­dis­po­ne­de­he­-
rra­mien­tas­de­tra­ba­jo­muy­com­ple­tas.­
Pa­ra­car­gar­un­pro­gra­ma­en­un­mi­cro­-
con­tro­la­dor­ PIC­ se­ re­quie­re­ de­ una­ se­rie
de­ pa­rá­me­tros­ bá­si­cos,­ tal­ co­mo­ he­mos
vis­to­y­el­Quark­Pro­2­no­es­la­ex­cep­ción.
Las­ten­sio­nes­ne­ce­sa­rias­son:

Vdd­=­­Vol­ta­je­de­ali­men­ta­ción­de­5V
VSS­=­re­fe­ren­cia­de­tie­rra­del­cir­cui­to
VPP­=­Vol­ta­je­de­pro­gra­ma­ción­de­14V
PGd­=­da­tos­de­pro­gra­ma­ción
PGC­=­Pul­sos­­de­re­loj­pa­ra­la­sin­cro­ni­-
za­ción

En­la­fi­gu­ra­24­se­mues­tra­el­cir­cui­to­eléc­tri­co ma­ción­VPP,­car­gan­do­el­ca­pa­ci­tor­C2­­y­es­ta­bi­li­-
del­pro­gra­ma­dor­QUarK-Pro­2.­Co­mo­pue­de­ob­- zan­do­con­el­dio­do­ze­ner­­d6­(8.2V)­el­cual­se­su­-
ser­var­no­exis­te­nin­gu­na­fuen­te­de­ali­men­ta­ción­ex­- ma­ al­ vol­ta­je­ del­ ze­ner­ d5­ (5,1V),­ ob­te­nién­do­se
ter­na.­El­cir­cui­to­se­ali­men­ta­del­puer­to­se­rial­de­la así­ 13.3­ Volt­ su­fi­cien­tes­ pa­ra­ rea­li­zar­ la­ pro­gra­-
PC­a­tra­vés­del­co­nec­tor­dB9.­El­vol­ta­je­de­ali­men­- ma­ción­del­PIC.­Se­han­adi­cio­na­do­el­LEd­L1­pa­-
ta­ción­Vdd­se­ob­tie­ne­de­los­mis­mos­pul­sos­de­re­- ra­vi­sua­li­zar­el­pro­ce­so­de­gra­ba­ción­o­lec­tu­ra­del
loj­(pin­7­del­dB9),­los­cua­les­son­rec­ti­fi­ca­dos­por PIC,­así­co­mo­el­LEd­L2­pa­ra­in­di­car­que­el­cir­cui­-
los­dio­dos­d3­y­d4­y­es­ta­bi­li­za­do­a­5­volt­me­dian­- to­se­en­cuen­tra­ali­men­ta­do,­ade­más,­si­se­co­lo­ca­-
te­el­dio­do­ze­ner­d5­(5.1V)­y­el­ca­pa­ci­tor­C1.­de ra­un­PIC­en­cor­to,­es­te­LEd­se­apa­ga­rá­o­ba­ja­rá
la­mis­ma­ma­ne­ra,­se­ob­tie­ne­el­vol­ta­je­de­pro­gra­- sig­ni­fi­ca­ti­va­men­te­su­in­ten­si­dad.­

Figura­24
34
3­-­CarGadorES­dE­PIC­µC­Y­EEProM

y­ ten­ga­ con­flic­tos
en­ la­ eje­cu­ción
del­IC-Prog.
abra­ el­ ar­chi­-
vo­con­Win-Zip­­y
eje­cu­te­ el­ pro­gra­-
ma­ ic­pro­g.e­xe­ (fi­-
gu­ra­27)­pa­ra­ins­-
ta­lar­lo.­ Una­ vez
que­ ha­ya­ he­cho
es­to,­ apa­re­ce­rá
un­ íco­no­ de­ ac­ce­-
so­ di­rec­to­ a­ su
pro­gra­ma­ (fi­gu­ra
28)­que­le­per­mi­ti­-
rá­ abrir­ di­rec­ta­-
men­te­ en­ pro­gra­-
Figura 25 ma­ cuan­do­ lo­ de­-
see­uti­li­zar.­al­eje­-
cu­tar­ es­te­ íco­no
apa­re­ce­rá­ una
ven­ta­na­ del­ pro­-
gra­ma­(fi­gu­ra­23).
aho­ra­ só­lo­ que­da
pro­bar­ su­ pro­yec­-
to.­ Co­nec­te­ al
puer­to­se­rial­de­su
PC­ el­ pro­gra­ma­-
dor­ y­ el­ led­ ­ ro­jo
(L2)­de­be­rá­en­cen­-
der.­ Se­lec­cio­ne
cual­quier­dis­po­si­ti­-
vo­ y­ eli­ja­ la­ op­-
ción­“pro­gra­mar”,
eje­cu­te­ y­ ob­ser­ve
el­ led­ ver­de­ (L1).
Es­te­ de­be­rá­ en­-
En­la­fi­gu­ra­25­se­mues­tra­el­cir­cui­to­im­pre­so
cen­der­­con­for­me­se­lle­ve­a­ca­bo­el­pro­ce­so.­Si­to­-
su­ge­ri­do­pa­ra­nues­tro­pro­to­ti­po.
do­va­bien:­–fe­li­ci­da­des!,­su­pro­yec­to­fun­cio­na.­Si
Una­vez­que­ha­ya­ar­ma­do­su­pro­to­ti­po­de­pro­-
tie­ne­al­gún­pro­ble­ma­o­du­da,­por­fa­vor­es­cri­ba­a
gra­ma­dor­(que­ma­dor)­QUarK-Pro,­ya­tie­ne­lis­to
ate­clien­@we­be­lec­tro­ni­ca­.co­m.ar­ y­ con­ gus­to­ lo
su­hard­wa­re,­aho­ra­le­fal­ta­el­soft­wa­re,­que­pa­ra
ayu­da­re­mos.­
nues­tro­ca­so­he­mos­su­ge­ri­do­el­IC-ProG.
Va­ya­a­la­pá­gi­na­de­In­ter­net­ww­w.ic-prog­.com
a­con­ti­nua­ción­da­mos­la­lis­ta­de­ma­te­ria­les­de
e­in­gre­se­al­área­de­des­car­gas­(down­load),­ahí­en­-
es­te­car­ga­dor:
con­tra­rá­va­rias­ver­sio­nes­de­es­te­pro­gra­ma­tal­co­-
mo­se­su­gie­re­en­la­fi­gu­ra­26.­­
U1­-­Ba­se­(zó­ca­lo)­pa­ra­CI­de­8­pins
des­car­gue­la­úl­ti­ma­ver­sión­y­guár­de­la­en­una
U2­-­Ba­se­pa­ra­CI­de­18­pins
car­pe­ta­de­su­dis­co­rí­gi­do.­tam­bién­des­car­gue­el
U3­-­­Ba­se­pa­ra­CI­de­28­pins­(usar­2­ba­ses
ar­chi­vo­IC-Prog­nt/2000­dri­ver­y­guár­de­lo­en­la
de­14­pins)
mis­ma­car­pe­ta,­­por­que­pue­de­ser­le­útil­en­ca­so­de
U4­-­Ba­se­pa­ra­CI­de­40­pins
que­es­té­usan­do­un­sis­te­ma­ope­ra­ti­vo­Win­dows­XP
dB9­-­Co­nec­tor­dB9­hem­bra 35
Figura 29

Figura­26

Si­ lo­ pre­fie­re­ pue­de­ so­li­ci­tar­ el


mon­ta­je­com­ple­to­ar­ma­do­o­el­kit­pa­-
ra­que­Ud.­lo­ar­me,­los­cua­les­se­pro­-
veen­con­el­ins­truc­ti­vo­de­tra­ba­jo­y­un
Cd­ com­ple­tí­si­mo,­ con­ un­ Cur­so­ de
Mi­cro­con­tro­la­do­res­PIC,­va­rios­pro­to­-
ti­pos­com­ple­tos,­un­cur­so­de­pro­gra­-
ma­ción,­un­mon­tón­de­pro­gra­mas,­un
clip­com­ple­to­en­VCd,­ade­más­in­clui­-
mos­ la­ úl­ti­ma­ ver­sión­ del­ pro­gra­ma
de­de­sa­rro­llo­pa­ra­PIC’S­­MPLaB­de
Mi­cro­chip,­ a­ en­tor­nos­ de­ de­sa­rro­llo
(MPLaB,­ MPaSM,­ etc.)­ y­ gran­ can­ti­-
Figura­27 dad­de­apli­ca­cio­nes.­­El­cos­to­del­kit
con­el­pro­to­ti­po­ar­ma­do­en­ar­gen­ti­na
es­de­$95­y­en­Mé­xi­co­de­$290­y­el
kit­ con­ la­ pla­ca­ y­ los­ com­po­nen­tes
pa­ra­mon­tar­tie­ne­un­va­lor­en­ar­gen­-
ti­na­de­$85­y­en­Mé­xi­co­de­$260.­­Si
es­tá­ in­te­re­sa­do­ en­ es­tos­ pro­duc­tos,
pue­de­ so­li­ci­tar­ ma­yor­ in­for­ma­ción­ al
mail:­ ate­clien­@we­be­lec­tro­ni­ca­.co­-
m.ar­(por­te­lé­fo­no­en­ar­gen­ti­na­lla­me
al­(011)­4301-8804­y­en­Mé­xi­co­lla­-
Figura­28 me­al­te­lé­fo­no:­(0155)­5839-7277).­

Pro­Gra­ME
dI,­d2,­d3,­d4­-­dio­do­1n4148
d5­-­­dio­do­ze­ner­de­5.1V­­1W MI­Cro­Con­tro­La­do­rES
d6­-­­dio­do­ze­ner­de­8.2V­­1W Con EL IC­ProG
Q1,­Q2­-­tran­sis­tor­BC547C
Q3­-­tran­sis­tor­BC557C
C1,­C2­-­Elec­tro­lí­ti­cos­de­470µF­x­25V­
C3,­C4­-­Ce­rá­mi­cos­de­0.001µF Con­el­uso­del­car­ga­dor­uni­ver­sal­de­mi­cro­con­-
r1­-­re­sis­ten­cia­de­100kΩ tro­la­do­res,­ el­ soft­wa­re­ IC-ProG­ per­mi­te­ pro­gra­-
r2­-­re­sis­ten­cia­de­10kΩ mar­gran­can­ti­dad­de­dis­po­si­ti­vos­elec­tró­ni­cos.­
r3­-­re­sis­ten­cia­de­1.5kΩ a­ con­ti­nua­ción­ nos­ va­mos­ a­ re­fe­rir,­ bre­ve­ y
r4­-­re­sis­ten­cia­de­1kΩ úni­ca­men­te,­a­la­pro­gra­ma­ción­de­dis­po­si­ti­vos­PIC
r5­-­re­sis­ten­cia­de­2.7kΩ de­­Mi­cro­chip­del­ti­po­16F84,­16F873­y­16F876.
L1­-­dio­do­Led­ver­de El­ma­te­rial­mí­ni­mo­ne­ce­sa­rio­e­im­pres­cin­di­ble
36 L2­-­dio­do­Led­ro­jo pa­ra­ la­ pro­gra­ma­ción­ de­ los­ mi­cro­con­tro­la­do­res
3­-­CarGadorES­dE­PIC­µC­Y­EEProM

PIC,­es­el­si­guien­te:­ par­tir­de­aho­ra­se­su­po­ne­el­es­-
Figura 30
pa­ñol).­
1)­ Soft­wa­re­ de­ pro­gra­ma­-
ción­IC-ProG.­ El­pa­so­si­guien­te­es­con­fi­gu­-
2)­Ca­ble­se­rie­con­co­nec­to­- rar­el­hard­wa­re­ne­ce­sa­rio­pa­ra
res­ dB9­ hem­bra­ –­ hem­bra, pro­gra­mar­ los­ mi­cro­con­tro­la­do­-
pro­lon­ga­dor­sin­nin­gún­ti­po­de res­PIC.­­
cru­ce­en­tre­sus­unio­nes­(se­co­- En­la­pla­ca­de­pro­gra­ma­ció­-
nec­tan­ los­ pi­nes­ co­rres­pon­- n/u­ti­li­za­ción­que­se­ha­rea­li­za­-
dien­tes­ del­ mis­mo­ nú­me­ro­ en do,­la­par­te­del­cir­cui­to­que­se
ca­da­ex­tre­mo).­ en­car­ga­ de­ la­ pro­gra­ma­ción,
3)­ Pla­cas­ de­ pro­gra­ma­- es­tá­ ba­sa­da­ en­ el­ pro­gra­ma­-
ción­y­uso­co­mo­la­del­Quark dor­ti­po­JdM.­
Pro­ 2­ (fi­gu­ra­ 29),­ el­ Pony En­ pan­ta­lla­ prin­ci­pal­ de
Quark,­ o­ el­ clá­si­co­ noPPP IC-ProG,­po­de­mos­ac­ce­der­a
(fi­gu­ra­30). la­con­fi­gu­ra­ción­del­hard­wa­re

La­ins­ta­la­ción­de­es­te­soft­- pul­san­do­ el­ íco­no­ o


wa­re­es­muy­sen­ci­lla,­y­bas­ta bien­me­dian­te­la­pes­ta­ña­ajus­-
con­ des­com­pri­mir­ el­ fi­che­ro tes­y­des­pués­el­co­man­do­ti­po
IC­Prog­.zip,­que­se­pue­de­en­- Hard­wa­re,­o­bien­pul­san­do­la
con­trar­ en­ la­ pá­gi­na­ web te­cla­ de­ fun­ción­ F3,­ de­ cual­-
ww­w.ic-prog­.com,­es­te­ar­chi­- Figura 32 quie­ra­de­las­ma­ne­ras­ac­ce­de­-
vo­ cons­ta­ del­ fi­che­ro­ Ic­pro­- re­mos­a­la­pan­ta­lla­que­se­ve
g.e­xe que­con­tie­ne­to­do­el­có­di­go­ne­ce­sa­rio­pa­ra en­la­fi­gu­ra­32.­­Es­ta­es­la­con­fi­gu­ra­ción­que­de­-
su­fun­cio­na­mien­to,­con­ver­sio­nes­de­Win­dows­95, be­re­mos­ele­gir­pa­ra­el­co­rrec­to­fun­cio­na­mien­to­del
98­ó­Win­dows­Mi­lle­niun.­­tam­bién­pue­de­ob­te­ner­- pro­gra­ma­dor­que­for­ma­par­te­de­la­pla­ca­de­apli­-
se­un­fi­che­ro­de­ayu­da­Ic­prog.hlp (ac­tual­men­te­no ca­ción.­
exis­te­ver­sión­en­cas­te­lla­no),­si­bien­es­te­fi­che­ro­no Una­vez­ele­gi­do­el­ti­po­de­pro­gra­ma­dor­co­mo
es­ne­ce­sa­rio­pa­ra­el­fun­cio­na­mien­to­del­pro­gra­ma JdM­y­se­lec­cio­na­do­el­puer­to­se­rie­ade­cua­do,­es
(vea­la­fi­gu­ra­31). im­por­tan­te­no­ol­vi­dar­se­de­ele­gir­el­ti­po­de­In­ter­fa­-
En­ el­ ca­so­ de­ uti­li­zar­ es­te­ soft­wa­re­ con­ Win­- ce­co­mo­di­rect­I/o,­y­en­cuan­to­al­tiem­po­de­re­-
dows­2000,­Win­dows­nt­ó­Win­dows­XP,­tam­bién tar­do,­ si­ hu­bie­se­ pro­ble­mas­ ­ se­ pue­den­ pro­bar
es­ ne­ce­sa­rio­ te­ner­ en­ el­ mis­mo­ di­rec­to­rio­ que­ el tiem­pos­ más­ lar­gos.­ En­ or­de­na­do­res­ rá­pi­dos­ qui­-
eje­cu­ta­ble,­el­fi­che­ro ic­prog.sys pa­ra­Win­dows­XP zás­se­pue­dan­po­ner­tiem­pos­de­re­tar­do­más­pe­-
(se­en­cuen­tra­en­la­mis­ma­pá­gi­na),­sin­el­cual­no que­ños,­lo­que­nos­da­ría­una­ve­lo­ci­dad­­de­gra­ba­-
se­pue­de­te­ner­ac­ce­so­a­los­puer­tos­del­or­de­na­dor.­ ción­más­rá­pi­da.­
Una­vez­ins­ta­la­do­el­soft­wa­re,­al
uti­li­zar­lo­ por­ pri­me­ra­ vez,­ y­ acep­-
tan­do­las­con­fi­gu­ra­cio­nes­por­de­fec­-
to,­se­nos­pre­sen­ta­rán­las­pan­ta­llas
en­el­idio­ma­in­glés,­y­pa­ra­cam­biar
el­idio­ma­se­de­be­rán­de­se­guir­es­tos
pa­sos:­

1.­ abrir­ la­ pes­ta­ña­ de­ Set­tings


(ajus­tes).­
2.­ Ele­gir­ el­ co­man­do­ op­tions
(op­cio­nes).­
3.­ abrir­ la­ pes­ta­ña­ Lan­gua­je
Figura 31
(Idio­ma) de­es­te­me­nú.­
4.­Ele­gir­el­idio­ma­pre­fe­ri­do.­(a 37
EX­PLI­Ca­CIón dE LoS ME­núES

Los­me­núes­prin­ci­pa­les­de­IC-ProG­tie­nen­un
íco­no­grá­fi­co­en­la­pan­ta­lla­prin­ci­pal,­de­tal­for­ma
que­con­es­tos­íco­nos­prác­ti­ca­men­te­se­pue­de­leer,
bo­rrar,­pro­gra­mar­y­ve­ri­fi­car­cual­quier­dis­po­si­ti­vo.­­

abrir­un­nue­vo­ar­chi­vo

Con­fi­gu­rar­el­hard­wa­re

Leer­un­chip

Bo­rrar­un­chip
Figura 33
Mos­trar­en­en­sam­bla­dor

Guar­dar­el­buf­fer­a­un­ar­chi­vo­

op­cio­nes­

Gra­bar­un­chip­

Ve­ri­fi­car­un­chip­

Mos­trar­en­he­xa­de­ci­mal­
Figura 34
En­la­pan­ta­lla­prin­ci­pal­del­IC-ProG­se­nos­pre­-
sen­ta­ to­da­ la­ in­for­ma­ción­ re­la­ti­va­ al­ dis­po­si­ti­vo­ en
cues­tión­(vea­la­fi­gu­ra­33). y­ la­ po­si­ble­ iden­ti­fi­ca­ción­ del­ mi­cro­con­tro­la­dor,­ si
Es­ta­ ven­ta­na­ mues­tra­ el­ ti­po­ de­ dis­po­si­ti­vo­ que és­te­lo­tu­vie­ra.­
se­ha­se­lec­cio­na­do.­Pul­san­do­en­la­fle­cha­de­la­ven­- de­ba­jo­ de­ la­ pan­ta­lla­ prin­ci­pal­ po­de­mos­ ver
ta­na­ po­de­mos­ ele­gir­ cual­quie­ra­ de­ los­ dis­po­si­ti­vos que­exis­ten­unas­pes­ta­ñas­pa­ra­in­di­car­el­con­te­ni­do
so­por­ta­dos­ por­ el­ soft­wa­re­ de­ pro­gra­ma­ción­ IC- de­5­buf­fers­di­fe­ren­tes­(fi­gu­ra­34).
ProG­ (tam­bién­ se­ pue­de­ ele­gir­ el­ dis­po­si­ti­vo­ me­- dis­po­ne­mos­de­5­buf­fers­di­fe­ren­tes­don­de­al­ma­-
dian­te­la­pes­ta­ña­ajus­tes y­la­op­ción­dis­po­si­ti­vo).­ ce­nar­da­tos­en­me­mo­ria.­En­ca­da­uno­de­es­tos­buf­-
tam­bién­­se­pue­den­ver­las­op­cio­nes­de­con­fi­gu­- fers­po­de­mos­te­ner­al­ma­ce­na­do­el­con­te­ni­do­de­un
ra­ción­del­dis­po­si­ti­vo­se­lec­cio­na­do.­ chip­o­bien­el­con­te­ni­do­de­un­fi­che­ro.­
Se­ mues­tra­ in­for­ma­ción­ del­ ti­po­ de­ os­ci­la­dor Con­los­da­tos­con­te­ni­dos­en­cual­quie­ra­de­es­tos
usa­do­por­el­mi­cro­con­tro­la­dor­en­cues­tión­(rC,­Xt, buf­fers­se­pue­de­rea­li­zar­cual­quie­ra­de­las­ope­ra­cio­-
HS).­ nes­que­he­mos­vis­to­en­los­íco­nos­an­te­rio­res.­Es­de­-
tam­bién­se­mues­tran­los­di­fe­ren­tes­bits­de­con­fi­- cir­que­se­pue­den­guar­dar­en­un­ar­chi­vo­en­dis­co,
gu­ra­ción­que­tie­ne­el­mi­cro­con­tro­la­dor.­Es­tos­bits­se­- o­bien­se­pue­de­pro­gra­mar­un­chip­con­ellos.­tam­-
rán­di­fe­ren­tes­pa­ra­ca­da­uno­de­los­mi­cro­con­tro­la­- bién­se­pue­de­com­pa­rar­el­con­te­ni­do­de­es­tos­buf­-
do­res­ uti­li­za­dos.­ Los­ de­ la­ ima­gen­ son­ los­ bits­ de fers­ en­tre­ sí­ pa­ra­ sa­ber­ si­ exis­ten­ di­fe­ren­cias­ en­tre
con­fi­gu­ra­ción­del­PIC­16F84,­y­que­mues­tran­el­es­- ellos­o­no.­
ta­do­ del­ Wacht­dog­ (Wdt),­ el­ Po­wer­ on­ re­set
(PWrt)­y­la­pro­tec­ción­de­có­di­go­(CP).­
Si­el­pro­gra­ma­ya­tie­ne­una­pa­la­bra­de­con­fi­gu­- aJUS­tES
ra­ción­de­ter­mi­na­da­aquí­apa­re­ce­rán­es­tas­op­cio­nes
mar­ca­das.­ Cuan­do­se­lec­cio­na­mos­el­idio­ma­de­uti­li­za­ción,
En­el­ca­so­de­se­quie­ra­mo­di­fi­car­el­es­ta­do­de vi­mos­la­pes­ta­ña­ajus­tes y­el­co­man­do­op­cio­nes del
al­gu­no­de­es­tos­bits,­bas­ta­con­mar­car­lo­o­no­en­es­- prin­ci­pal.­Va­mos­a­ver­aho­ra,­un­po­co­más­en­de­ta­-
ta­pan­ta­lla.­ lle,­los­ajus­tes­ne­ce­sa­rios­pa­ra­el­co­rrec­to­fun­cio­na­-
te­ne­mos,­ ade­más,­ in­for­ma­ción­ del­ check­sum mien­to­del­pro­gra­ma.
38 (che­queo­que­se­ge­ne­ra­de­to­do­el­fi­che­ro­de­da­tos), Los­co­man­dos­po­si­bles­de­es­ta­pes­ta­ña­son­los
3­-­CarGadorES­dE­PIC­µC­Y­EEProM

si­guien­tes:­ pro­gra­ma­ción.­
dis­po­si­ti­vo. Sir­ve­ pa­ra ac­ti­va­re­mos­ la­ ca­si­lla­ de
ele­gir­ el­ dis­po­si­ti­vo­ con­ el ve­ri­fi­car­ tras­ la­ pro­gra­ma­-
que­ que­re­mos­ tra­ba­jar. ción,­ pa­ra­ que­ el­ pro­gra­ma
(16F84).­ ca­da­ vez­ que­ rea­li­ce­ la­ pro­-
dis­po­si­ti­vos­ re­cien­tes. gra­ma­ción­ de­ un­ chip,­ au­to­-
Mues­tra­el­ti­po­de­los­úl­ti­mos má­ti­ca­men­te­ des­pués­ de­ es­-
dis­po­si­ti­vos­uti­li­za­dos.­­­ cri­bir­el­chip,­ve­ri­fi­que­que­el
ti­po­ Hard­wa­re­ F3. aquí con­te­ni­do­ del­ chip­ es­ el­ mis­-
se­ eli­ge­ el­ ti­po­ de­ hard­wa­re mo­que­el­buf­fer­ac­ti­vo­en­ese
Figura 35
que­ va­mos­ a­ usar­ pa­ra­ pro­- mo­men­to.
gra­mar­el­dis­po­si­ti­vo­ele­gi­do al­ac­ti­var­tam­bién­la­ca­si­-
an­te­rior­men­te­ (JdM­ Pro­gram­- lla­de­Ve­ri­fi­car­du­ran­te­la­pro­-
mer).­ gra­ma­ción,­ lo­ que­ le­ in­di­ca­-
Prue­ba­hard­wa­re. Se­pue­de­rea­li­zar­una­prue­ba mos­al­pro­gra­ma­es­que­ca­da­blo­que­de­da­tos­que
de­que­el­hard­wa­re­ele­gi­do­es­tá­co­nec­ta­do­al­or­de­- es­cri­ba­en­el­chip­va­ya­com­pa­ran­do­que­se­ha­es­-
na­dor­en­el­puer­to­ele­gi­do,­y­por­lo­tan­to­es­tá­lis­to cri­to­co­rrec­ta­men­te,­le­yén­do­lo­y­ve­ri­fi­can­do­su­con­-
pa­ra­usar­se.­ te­ni­do­con­el­buf­fer­ac­ti­vo.­
op­cio­nes. des­de­es­te­co­man­do­se­pue­den­rea­li­- Es­to­ha­ce­que­el­tiem­po­em­plea­do­en­pro­gra­mar
zar­las­con­fi­gu­ra­cio­nes­que­van­a­ha­cer­que­el­uso un­ chip­ sea­ ma­yor,­ pe­ro­ tam­bién­ nos­ ase­gu­ra­mos
de­IC-ProG­sea­mu­cho­más­sen­ci­llo,­prác­ti­co­y­ade­- de­ que­ los­ erro­res­ de­ pro­gra­ma­ción­ son­ mí­ni­mos.
más­fia­ble­(vea­la­fi­gu­ra­35). otra­de­las­pes­ta­ñas­que­se­pue­den­con­fi­gu­rar­es­la
Vea­mos,­a­con­ti­nua­ción,­los­cam­bios­a­rea­li­zar de­los­ata­jos,­pa­ra­que­nos­sea­mu­cho­más­fá­cil­el
pa­ra­que­es­te­soft­wa­re­que­de­adap­ta­do­a­nues­tras uso­del­pro­gra­ma.­
ne­ce­si­da­des.­ Co­mo­el­nú­me­ro­de­dis­po­si­ti­vos­que­pue­den­pro­-
El­idio­ma­ya­lo­cam­bia­mos­al­prin­ci­pio­de­es­ta gra­mar­se­con­es­te­soft­wa­re­es­muy­gran­de,­me­dian­-
guía,­así­es­que­va­mos­a­con­fi­gu­rar­las­op­cio­nes­de te­es­tos­ata­jos­po­de­mos­ha­cer­que­ele­gir­uno­u­otro
pa­ra­tra­ba­jar­con­él­sea­muy­sen­ci­llo­(vea­la­fi­gu­ra
36).­Bas­ta­con­ele­gir­aquí­los­más­uti­li­za­dos­y­asig­-
nar­les­ una­ de­ las­ com­bi­na­cio­nes­ de­ te­clas­ que­ se
mues­tran,­pa­ra­que­des­pués­des­de­la­pan­ta­lla­prin­-
ci­pal­ bas­te­ con­ te­clear­ la­ com­bi­na­ción­ de­ te­clas
CtrL­+­F1­pa­ra­que­au­to­má­ti­ca­men­te­el­dis­po­si­ti­vo
ele­gi­do­que­de­se­lec­cio­na­do­en­el­buf­fer­ac­ti­vo,­con
el­con­si­guien­te­aho­rro­de­tiem­po­(fi­gu­ra­37).
En­el­ca­so­de­tra­ba­jar­con­los­sis­te­mas­ope­ra­ti­-
vos­Win­dows­nt,­Win­dows­2000­o­Win­dows­XP,
Figura 36 co­mo­ya­se­co­men­tó­an­te­rior­men­te­se­de­be­rá­te­ner
en­el­mis­mo­di­rec­to­rio­que­el­ar­chi­vo­eje­cu­ta­ble­de
IC-ProG,­el­fi­che­ro­ic­prog.sys­pa­ra­Win­dows­XP,­y
ade­más­de­es­to,­ac­ti­var­la­op­ción­de­Ha­bi­li­tar­dri­-
ver­ nt/2000,­ que­ se­ en­cuen­tra­ en­ la­ pes­ta­ña­ de
Mis­ce­lá­nea­de­es­ta­op­ción­de­ajus­tes.­Es­ta­op­ción
so­la­men­te­po­drá­ac­ti­var­se­en­uno­de­es­tos­sis­te­mas
ope­ra­ti­vos,­ya­que­en­Win­dows­95,­98­ó­Me­no­se
en­cuen­tra­ac­ti­va,­co­mo­pue­de­ver­se­en­la­si­guien­te
pan­ta­lla.­
El­res­to­de­op­cio­nes­que­pue­dan­apa­re­cer­es­tán
con­fi­gu­ra­das­ por­ de­fec­to,­ pa­ra­ un­ co­rrec­to­ fun­cio­-
na­mien­to­en­la­ma­yo­ría­de­los­or­de­na­do­res­y­sis­te­-
Figura 37 mas­ope­ra­ti­vos­ac­tua­les,­y­en­ca­so­de­du­da­siem­pre
se­po­drá­ac­ce­der­a­la­ayu­da­en­lí­nea­en­la­pá­gi­na
web­ww­w.ic-prog­.com­.­
39
Figura 38

Pro­Gra­Ma­CIón dE Un
PIC­16F84­ Figura 39

Los­pa­sos­que­ex­po­nen­a­con­ti­nua­ción,­son
prác­ti­ca­men­te­idén­ti­cos­en­cual­quier­ti­po­de­dis­-
po­si­ti­vo­ a­ pro­gra­mar,­ con­ las­ úni­cas­ va­ria­cio­-
nes­de­las­ca­rac­te­rís­ti­cas­par­ti­cu­la­res­de­ca­da­uno­de ellos­ se­ pue­de­ ha­cer­ clic­kean­do­ di­rec­ta­men­te­ so­bre
los­dis­po­si­ti­vos,­pe­ro­el­pro­ce­so­se­pue­de­ge­ne­ra­li­zar él.­ tam­bién­ se­ pue­de­ cam­biar­ el­ ti­po­ de­ os­ci­la­dor
pa­ra­cual­quie­ra­que­sea­el­dis­po­si­ti­vo­a­pro­gra­mar.­ con­que­tra­ba­ja­rá­la­apli­ca­ción­una­vez­car­ga­da­en
Se­su­po­ne­que­el­soft­wa­re­IC-ProG­ya­se­en­cuen­- el­PIC.­Si­en­nues­tra­apli­ca­ción­no­se­pro­gra­mó­nin­-
tra­con­fi­gu­ra­do­co­mo­se­ha­ex­pli­ca­do­an­te­rior­men­te, gu­na­pa­la­bra­de­con­fi­gu­ra­ción,­se­nos­mos­tra­rán­los
y­tam­bién­el­hard­wa­re­de­pro­gra­ma­ción­se­en­cuen­tra da­tos­por­de­fec­to­del­pro­gra­ma­(os­ci­la­dor­ti­po­rC­y
co­nec­ta­do­y­con­fi­gu­ra­do­co­rrec­ta­men­te.­(En­ca­so­de Watch­dog­Wdt­ac­ti­va­do).­
que­no­sea­así,­se­rue­ga­leer­es­te­do­cu­men­to­des­de Cual­quie­ra­de­las­áreas­de­da­tos­(có­di­go­de­pro­-
su­ini­cio­y­se­guir­las­pau­tas­mar­ca­das­por­el­mis­mo).­ gra­ma­o­da­tos­EE­prom),­pue­de­ser­aquí­mo­di­fi­ca­da,
•­ abrir­ el­ ar­chi­vo­ que­ con­tie­ne­ los­ da­tos­ a­ pro­- ya­que­es­te­soft­wa­re­per­mi­te­la­edi­ción­de­los­da­tos
gra­mar­en­el­PIC­16F84­(vea­la­fi­gu­ra­38). que­es­tán­pre­sen­tes­en­el­buf­fer­del­or­de­na­dor­an­tes
de­ser­en­via­dos­al­PIC.­Es­to­de­be­rá­ha­cer­se­con­su­-
Me­dian­te­el­íco­no­ o­bien­con­la­pes­ta­ña mo­cui­da­do­pues­la­edi­ción­de­los­da­tos­se­lle­va­rá­a
ar­chi­vo y­el­co­man­do­abrir­da­tos,­se­ac­ce­de­al­di­rec­- ca­bo­ en­ he­xa­de­ci­mal­ di­rec­ta­men­te,­ con­ el­ con­si­-
to­rio­don­de­se­guar­dan­los­ar­chi­vos,­co­mo­se­ob­ser­- guien­te­ries­go­de­co­me­ter­erro­res­y­cau­sar­un­mal­fun­-
va­en­la­fi­gu­ra.­ cio­na­mien­to­del­pro­gra­ma­car­ga­do.­
Los­ fi­che­ros­ de­ da­tos­ que­ usan­ pa­ra­ pro­gra­mar
un­ PIC,­ nor­mal­men­te­ ten­drán­ la­ ex­ten­sión­ .hex (for­- •­Pro­Gra­Mar EL PIC­16F84
ma­to­In­tel­he­xa­de­ci­mal­de­8­bits).­ Pa­ra­pro­ce­der­a­la­pro­gra­ma­ción­fí­si­ca­del­chip
•­ajus­tar­la­pa­la­bra­de­con­fi­gu­ra­ción­y­el­ti­po­de
os­ci­la­dor. del­PIC,­bas­ta­con­clic­kear­so­bre­el­íco­no­­ ,­o
Una­ vez­ car­ga­dos­ los­ da­tos­ del­ ar­chi­vo­ co­rres­- bien­ac­ti­var­la­pes­ta­ña­Co­man­do y­des­pués­Pro­gra­-
pon­dien­te,­la­pan­ta­lla­del­IC-ProG­pre­sen­ta­rá­un­as­-
pec­to­co­mo­el­mos­tra­do­en­la­fi­gu­ra­39.
Se­ ob­ser­va­ que­ los­ da­tos­ se­ han­ car­ga­do­ en­ el
área­ de­ có­di­go­ de­ pro­gra­ma­ y­ si­ exis­tie­ran­ ­ da­tos
tam­bién­en­la­EE­prom­in­ter­na­de­PIC. Figura 42
En­el­ca­so­de­que­se­ha­ya­pro­gra­ma­do­la­pa­la­-
bra­de­con­fi­gu­ra­ción,­los­bits­co­rres­pon­dien­tes­apa­-
re­ce­rán­ mar­ca­dos.­ Si­ se­ quie­re­ cam­biar­ al­gu­no­ de

Figura 40 Figura 43

Figura 41
40
3­-­CarGadorES­dE­PIC­µC­Y­EEProM

mar­ to­do,­ o­ bien­ pul­sar­ la­ te­cla­ de­ fun­ción­ F5,­ de con­te­ni­do­del­chip­en­la­pri­me­ra­po­si­ción­de­me­mo­ria­del
cual­quie­ra­de­es­tas­tres­for­mas,­y­des­pués­de­so­li­ci­- mis­mo­0000h.
tar­nos­con­fir­ma­ción­de­la­or­den­da­da,­el­chip­co­men­- Es­te­error­sue­le­es­tar­mo­ti­va­do­por­al­gún­fa­llo­en­la
za­rá­a­ser­pro­gra­ma­do­con­los­da­tos­car­ga­dos­en­el co­mu­ni­ca­ción­ en­tre­ el­ or­de­na­dor­ y­ el­ pro­gra­ma­dor,­ tal
buf­fer­ac­ti­vo.­ co­mo­una­ma­la­co­ne­xión­del­ca­ble­se­rie,­o­una­­co­lo­ca­-
El­ pro­ce­so­ de­ gra­ba­ción­ se­ nos­ irá­ mos­tran­do, ción­erró­nea­del­PIC­en­el­pro­gra­ma­dor,­o­has­ta­in­clu­so
tal­co­mo­pue­de­ver­se­en­la­fi­gu­ra­40. por­te­ner­mal­con­fi­gu­ra­do­el­puer­to­se­rie­con­el­que­co­-
El­ tiem­po­ em­plea­do­ en­ la­ gra­ba­ción­ del­ PIC mu­ni­ca­mos­el­or­de­na­dor­y­el­pro­gra­ma­dor.­tam­bién­pue­-
16F84­ de­pen­de­rá­ de­ la­ ra­pi­dez­ del­ or­de­na­dor­ en de­es­tar­pro­du­ci­do­por­que­el­PIC­que­es­ta­mos­in­ten­tan­do
que­se­es­té­tra­ba­jan­do.­ pro­gra­mar­se­en­cuen­tre­de­fec­tuo­so­o­se­ha­ya­es­tro­pea­do
des­pués­de­pro­gra­mar­el­có­di­go­se­pro­gra­ma­rán por­un­mal­uso.­
los­da­tos­de­la­me­mo­ria­EE­prom­y­pos­te­rior­men­te­la Cuan­do­apa­re­ce­es­te­error­po­de­mos­tra­tar­de­evi­tar­-
pa­la­bra­de­con­fi­gu­ra­ción­de­nues­tro­pro­gra­ma,­to­do lo­si­guien­do­los­pa­sos­que­se­enu­me­ran­a­con­ti­nua­ción:­
ello­ sin­ re­que­rir­ pa­ra­ na­da­ la­ aten­ción­ del­ usua­rio. •­­Lo­pri­me­ro­de­to­do­es­ase­gu­rar­nos­de­que­no­he­-
Vea­en­la­fi­gu­ra­41­co­mo­que­dan,­en­for­ma­au­to­má­- mos­se­lec­cio­na­do­la­pro­tec­ción­de­có­di­go­CP­en­los­bits
ti­ca,­los­bits­de­con­fi­gu­ra­ción. de­con­fi­gu­ra­ción (Es­te­es­un­error­muy­tí­pi­co,­y­en­es­te­ca­-
Una­vez­ter­mi­na­da­la­pro­gra­ma­ción­se­pro­ce­de­- so­el­pro­gra­ma­lee­ría­los­8­pri­me­ros­by­tes­de­da­tos­co­mo
rá­au­to­má­ti­ca­men­te­a­la­ve­ri­fi­ca­ción­de­los­da­tos­es­- ce­ros,­dan­do­por­tan­to­el­error­de­ve­ri­fi­ca­ción­en­la­pri­-
cri­tos­en­el­chip­(re­cor­dar­que­se­ac­ti­vó­la­ve­ri­fi­ca­ción me­ra­di­rec­ción).­
tras­la­pro­gra­ma­ción).­ Una­vez­com­pro­ba­do­que­no­se­ha­ele­gi­do­la­op­ción
del­pro­ce­so­de­ve­ri­fi­ca­ción­tam­bién­se­nos­irá­in­- de­pro­tec­ción­de­có­di­go­pa­ra­pro­gra­marr­el­PIC,­po­de­mos
for­man­do,­tal­co­mo­mues­tra­la­fi­gu­ra­42.­ pro­bar­ con­ las­ si­guien­tes­ com­pro­ba­cio­nes­ del­ soft­wa­re­ y
Se­rán­ve­ri­fi­ca­dos,­igual­men­te,­el­có­di­go­de­pro­- hard­wa­re­que­uti­li­za­mos:­
gra­ma,­los­da­tos­de­la­me­mo­ria­EE­prom­y­los­bits­de •­Com­pro­bar­que­el­PIC­se­en­cuen­tra­bien­in­tro­du­ci­-
la­pa­la­bra­de­con­fi­gu­ra­ción.­En­el­ca­so­de­que­la­ve­- do­en­el­zó­ca­lo­del­pro­gra­ma­dor.­
ri­fi­ca­ción­ha­ya­si­do­co­rrec­ta­se­nos­in­for­ma­rá­de­tal •­Ve­ri­fi­car­que­el­ca­ble­se­rie­es­tá­bien­co­nec­ta­do­en
he­cho­me­dian­te­la­ven­ta­na­re­pre­sen­ta­da­en­la­fi­gu­ra sus­dos­ex­tre­mos,­tan­to­en­el­co­nec­tor­del­pro­gra­ma­dor
43,­y­el­pro­ce­so­de­gra­ba­ción­ha­brá­fi­na­li­za­do.­ co­mo­en­el­del­or­de­na­dor.­
Una­bue­na­prác­ti­ca­pa­ra­evi­tar­­erro­res­en­la­pro­- •­ase­gu­rar­nos­de­que­he­mos­ele­gi­do­en­ajus­tes­ti­po
gra­ma­ción,­es­la­de­una­vez­ter­mi­na­do­el­pro­ce­so­de Hard­wa­re,­ el­ ti­po­ de­ pro­gra­ma­dor­ co­rrec­to­ y­ el­ puer­to
gra­ba­ción,­co­mo­se­ha­des­crip­to­has­ta­aquí,­ir­a­la CoM­ade­cua­do.­
sec­ción­de­leer­dis­po­si­ti­vo­y­pre­vio­cam­bio­del­buf­fer •­Com­pro­bar­que­el­dis­po­si­ti­vo­ele­gi­do­es­el­que­es­-
ac­ti­vo­leer­de­nue­vo­el­PIC­pro­gra­ma­do­y­pro­ce­der­a ta­mos­ real­men­te­ pro­gra­man­do­ (PIC­ 16F84­ ó­ PIC
la­ com­pa­ra­ción­ en­tre­ los­ con­te­ni­dos­ de­ los­ dos­ buf­- 16F84a).­
fers,­ es­ de­cir­ com­pa­rar­ el­ ar­chi­vo­ con­ el­ con­te­ni­do •­Com­pro­bar­que­en­nin­gu­no­de­los­ajus­tes­rea­li­za­-
del­PIC.­En­rea­li­dad­es­ta­mos­vol­vien­do­a­rea­li­zar­la dos­he­mos­va­ria­do­las­con­fi­gu­ra­cio­nes­re­la­ti­vas­a­las­pa­-
com­pro­ba­ción­ que­ ya­ se­ ha­ rea­li­za­do­ au­to­má­ti­ca­- ti­llas­de­Vcc­pa­ra­el­ti­po­de­pro­gra­ma­dor­(JdM)­uti­li­za­do.­
men­te­ al­ pro­gra­mar­ el­ dis­po­si­ti­vo.­ Es­ta­ nue­va­ com­- En­el­ca­so­de­que­nin­gu­na­de­es­tas­com­pro­ba­cio­nes
pro­ba­ción­trae­con­si­go­el­em­pleo­de­más­tiem­po,­pe­- die­ra­un­re­sul­ta­do­que­nos­per­mi­ta­vol­ver­a­pro­gra­mar­el
ro­a­ve­ces­más­va­le­pre­ve­nir…­ PIC,­lo­me­jor­es­re­pe­tir­la­pro­gra­ma­ción­con­otro­chip­que
es­té­en­buen­es­ta­do,­pa­ra­des­car­tar­com­ple­ta­men­te­que
el­fa­llo­es­té­en­el­soft­wa­re­o­hard­wa­re­del­or­de­na­dor­o
pro­gra­ma­dor­y­po­der­ase­gu­rar­que­se­tra­ta­del­chip­que
se­en­cuen­tra­en­mal­es­ta­do.­­
Erro­rES FrE­CUEn­tES
Cuan­do­se­tra­ba­ja­en­uno­de­los­sis­te­mas­ope­ra­ti­vos
En La Pro­Gra­Ma­CIón Win­dows­ XP,­ Win­dows­ nt­ o­ Win­dows­ 2000,­ ade­más
del­an­te­rior­se­pue­de­dar­el­que­se­mues­tra­en­la­fi­gu­ra
Cuan­do­por­al­gu­na­cau­sa­la­pro­gra­ma­ción­no­se­rea­- 45.
li­za­co­rrec­ta­men­te,­el­pro­gra­ma­nos­in­for­ma­rá­de­ello­me­- Es­te­error,­en­rea­li­dad,­es­tá­in­di­cán­do­nos­que­el­sis­-
dian­te­el­avi­so­opor­tu­no.­
El­ error­ más­ fre­cuen­te­ en
la­pro­gra­ma­ción­de­un­PIC­es
el­que­se­mues­tra­en­la­fi­gu­ra
44,­que­nos­in­for­ma­de­que­se
pro­du­jo­un­error­al­ve­ri­fi­car­el Figura 44 Figura 45
41
te­ma­no­pue­de­ac­ce­der­a­los­puer­tos­del­or­de­na­dor­y­por 16F84.­­Los­ti­pos­de­os­ci­la­dor­que­pue­den­ele­gir­se­(rC,
tan­to­al­pro­gra­ma­dor­co­nec­ta­do­a­ellos,­y­co­mo­se­in­di­có LP,­Xt,­HS),­son­los­que­mar­ca­el­fa­bri­can­te­Mi­cro­chip
an­te­rior­men­te­ pa­ra­ so­lu­cio­nar­lo­ se­ de­be­rá­ ins­ta­lar­ el­ ar­- pa­ra­es­te­ti­po­de­dis­po­si­ti­vos.­­La­pro­tec­ción­del­có­di­go
chi­vo­ic­prog.sys­en­la­car­pe­ta­don­de­se­en­cuen­tra­el­eje­- de­nues­tro­pro­gra­ma,­que­en­el­ca­so­del­PIC­16F84­so­la­-
cu­ta­ble­y­ade­más­ha­bi­li­tar­el­dri­ver­pa­ra­nt/2000 en­las men­te­po­día­ac­ti­var­se­o­no­ha­cer­lo,­en­es­te­ti­po­de­dis­po­-
op­cio­nes­de­Mis­ce­lá­nea en­la­pes­ta­ña­de­ajus­tes.­ si­ti­vos­se­pue­de­ele­gir­en­tre­man­te­ner­la­sin­ac­ti­var,­pro­te­-
Una­ vez­ ha­bi­li­ta­do­ es­te­ dri­ver­ el­ pro­gra­ma­ pe­di­rá ger­to­do­el­có­di­go,­o­bien­pro­te­ger­lo­por­pá­gi­nas,­co­mo
vol­ver­a­ini­ciar­se,­y­a­par­tir­de­ese­mo­men­to­ya­es­tá­per­- se­ob­ser­va­en­las­fi­gu­ras­46­y­47.­­El­res­to­de­los­bits­que
fec­ta­men­te­ ha­bi­li­ta­do­ pa­ra­ rea­li­zar­ la­ pro­gra­ma­ción­ de for­man­ la­ pa­la­bra­ de­ con­fi­gu­ra­ción­ (Wdt,­ PWrt,­ Bo­-
los­dis­po­si­ti­vos­ne­ce­sa­rios.­ dEn,­LVP,­CPd,­Wtr,­dE­BUG­GEr)­se­pue­den­ac­ti­var­o
de­sac­ti­var­ sim­ple­men­te­ con­ clic­kear­ so­bre­ la­ ca­si­lla­ co­-
rres­pon­dien­te.­­
Pro­Gra­Ma­CIón Si­ cuan­do­ se­ es­cri­bió­ el
pro­gra­ma­ fuen­te,­ bien­ en­ en­-
dE Un PIC­16F87X­ sam­bla­dor­o­bien­en­cual­quier
otro­len­gua­je­de­al­to­ni­vel,­co­-
to­do­lo­ex­pues­to­an­te­rior­men­te­pa­ra­el­PIC­16F84­es mo­pue­da­ser­el­C,­se­ac­ti­va­ron
vá­li­do­ pa­ra­ los­ PIC’s­ de­ la­ ga­ma­ más­ al­ta,­ del­ ti­po al­gu­nos­de­es­tos­bits,­cua­do­se
16F87X,­con­la­úni­ca­di­fe­ren­cia­de­que­su­ca­pa­ci­dad­es car­ga­ el­ ar­chi­vo­ .hex­ en­ IC-
ma­yor­(de­4kb­a­8kb­de­me­mo­ria),­lo­que­ha­rá­que­los­fi­- ProG,­ es­tos­ bits­ apa­re­cen­ ya Figura 46
che­ros­de­da­tos­usa­dos­sean­de­ma­yor­ta­ma­ño­y­que­el au­to­má­ti­ca­men­te­ ac­ti­va­dos.­ Es
tiem­po­em­plea­do­en­pro­gra­mar­y­ve­ri­fi­car­un­dis­po­si­ti­vo de­cir­ es­te­ soft­wa­re­ es­ sen­si­ble
sea­tam­bién­más­gran­de.­ a­ la­ pa­la­bra­ de­ con­fi­gu­ra­ción
Co­mo­en­el­ca­so­del­PIC­16F84,­el­pro­ce­so­de­pro­- pro­gra­ma­da.­
gra­ma­ción­de­un­PIC­16F87X,­se­com­po­ne­de­los­pro­ce­- Los­po­si­bles­erro­res­que­se
sos­de­aper­tu­ra­y­edi­ción­(si­es­el­ca­so)­del­fi­che­ro­de­da­- pu­die­ran­pre­sen­tar­son­los­mis­-
tos,­gra­ba­ción­fí­si­ca­del­chip­y­pos­te­rior­ve­ri­fi­ca­ción­del mos­ que­ vi­mos­ pa­ra­ el­ ca­so
con­te­ni­do­del­chip­pro­gra­ma­do­con­el­fi­che­ro­de­da­tos.­ del­PIC­16F84,­y­se­de­be­rá­te­-
En­la­gra­ba­ción­de­un­PIC­16F87X­se­man­tie­nen­to­- ner­ más­ cui­da­do­ si­ ca­be­ que
dos­los­ajus­tes­tan­to­de­soft­wa­re­co­mo­de­hard­wa­re­que an­te­rior­men­te­ pa­ra­ tra­tar­ de
he­mos­rea­li­za­do­an­te­rior­men­te.­ evi­tar­ el­ Error­ de­ pro­gra­ma­-
So­la­men­te­cam­bia­rá­la­pla­ca­de­pro­gra­ma­ción­que ción­de­có­di­go­en­la­di­rec­ción
se­uti­li­za­rá,­ya­que­aho­ra­usa­re­mos­la­di­se­ña­da­a­pro­- 0000h,­ ya­ que­ el­ tiem­po­ em­-
pó­si­to­pa­ra­es­tos­dis­po­si­ti­vos.­ plea­do­ en­ pro­gra­mar­ y­ ve­ri­fi­-
En­el­ca­so­de­uti­li­zar­otro­ti­po­de­pro­gra­ma­dor­equi­- car­es­tos­dis­po­si­ti­vos­es­del­or­-
va­len­te­se­de­be­rá­te­ner­cui­da­do­de­con­fi­gu­rar­sus­op­cio­- den­de­4­y­8­ve­ces­más­que­el
nes­co­rrec­ta­men­te­pa­ra­es­te­ti­po­de­mi­cro­con­tro­la­dor.­­ em­plea­do­pa­ra­un­16F84.­­­
Los­pa­sos­a­se­guir­pa­ra­la­gra­ba­ción,­son­los­mis­- LEC­tU­ra dE Un Figura 47
mos­que­pa­ra­cual­quier­otro­dis­po­si­ti­vo,
se­ pue­den­ es­que­ma­ti­zar­ en­ la­ si­guien­te
lis­ta.­

•­Se­lec­cio­nar­en­IC-ProG­el­dis­po­si­-
ti­vo­a­pro­gra­mar­PIC­16F87X.­
•­ abrir­ el­ ar­chi­vo­ que­ con­tie­ne­ los
da­tos­a­pro­gra­mar­en­el­PIC­16F87X.­
•­ ajus­tar­ la­ pa­la­bra­ de­ con­fi­gu­ra­-
ción­y­el­ti­po­de­os­ci­la­dor.­
•­Pro­gra­mar­el­dis­po­si­ti­vo.­
Figura 48
Va­mos­a­ex­pli­car­bre­ve­men­te­lo­re­fe­-
ren­te­a­los­bits­de­con­fi­gu­ra­ción­y­el­ti­po
de­os­ci­la­dor­ele­gi­do,­pues­to­que­en­es­tos
PIC´s­de­ga­ma­al­ta,­los­bits­de­con­fi­gu­ra­-
ción­ son­ bas­tan­tes­ más­ que­ en­ el­ PIC
42
3­-­CarGadorES­dE­PIC­µC­Y­EEProM

PIC­16F84­
o Un
PIC­16F87X­

La­lec­tu­ra­de­un­dis­po­si­ti­-
vo­ me­dian­te­ el­ soft­wa­re­ IC-
Figuras 49, 50 y 51
ProG­y­el­pro­gra­ma­dor­ade­-
cua­do,­ es­ idén­ti­ca­ pa­ra­ to­-
dos­ los­ dis­po­si­ti­vos­ so­por­ta­-
dos.­
En­es­ta­obra­to­do­lo­re­la­-
ti­vo­a­la­lec­tu­ra­de­un­dis­po­-
si­ti­vo­ se­ rea­li­za­rá­ so­bre­ un
PIC­ti­po­16F873.­­
Es­muy­im­por­tan­te­se­lec­-
cio­nar­ el­ ti­po­ de­ dis­po­si­ti­vo
que­ va­mos­ a­ leer,­ pues­ el
pro­gra­ma­ IC-ProG­ al­ in­di­-
car­le­ el­ ti­po­ de­ dis­po­si­ti­vo
ajus­ta­ au­to­má­ti­ca­men­te­ la
ca­pa­ci­dad­ del­ buf­fer­ de­ lec­-
tu­ra­ al­ ta­ma­ño­ del­ PIC­ en Figuras 52 y 53
cues­tión.­ reas.­ ­ Una­ bue­na­ me­di­da­ es­ cam­biar­ el­ buf­fer­ ac­ti­vo­ y
así­si­ele­gi­mos­un­PIC­16F873,­ve­re­mos­que­el­buf­fer vol­ver­ a­ leer­ el­ chip­ pa­ra­ pos­te­rior­men­te­ com­pa­rar­ los
de­có­di­go­de­pro­gra­ma­se­ajus­ta­al­ta­ma­ño­de­4­Kby­tes con­te­ni­dos­de­am­bos­buf­fers­y­te­ner­se­gu­ri­dad­de­que­la
de­ me­mo­ria­ (0000h­ –­ 0FFFh),­ mien­tras­ que­ al­ ele­gir­ el lec­tu­ra­ha­si­do­co­rrec­ta.­re­cor­dar­que­al­leer­no­se­ve­ri­fi­-
PIC­16F876­el­buf­fer­au­men­ta­su­ca­pa­ci­dad­has­ta­los­8 can­los­da­tos.­
Kb­(0000h­–­1FFFh).­ La­com­pa­ra­ción­de­los­dos­buf­fers­de­da­tos­se­rea­li­-
al­leer­un­dis­po­si­ti­vo,­no­se­rea­li­za­una­pos­te­rior­ve­- za­en­la­pes­ta­ña­Buf­fer con­el­co­man­do­Com­pa­rar,­y­si­la
ri­fi­ca­ción,­con­lo­cual­si­el­buf­fer­ele­gi­do­es­de­me­nor­ca­- com­pa­ra­ción­es­co­rrec­ta,­se­nos­in­di­ca­el­re­sul­ta­do­tal­co­-
pa­ci­dad­que­el­PIC­leí­do,­las­úl­ti­mos­da­tos­no­se­al­ma­ce­- mo­se­mues­tra­en­las­fi­gu­ras­52­y­53.
na­rán­en­él­y­se­per­de­rá­su­con­te­ni­do.­ En­el­ca­so­de­que­la­com­pa­ra­ción­de­los­buf­fers­de
no­es­ne­ce­sa­rio­ac­ti­var­nin­gún­bit­de­la­pa­la­bra­de da­tos­dé­como­re­sul­ta­do­que­és­tos­no­son­igua­les,­el­pro­-
con­fi­gu­ra­ción,­ni­ele­gir­el­ti­po­de­os­ci­la­dor,­ya­que­una gra­ma­nos­irá­in­for­man­do­de­las­di­fe­ren­cias­que­se­va­yan
vez­leí­do­el­PIC,­se­rá­el­pro­pio­soft­wa­re­IC-ProG­quien en­con­tran­do­en­tre­uno­y­otro­buf­fer.­
nos­mues­tre­la­in­for­ma­ción­de­to­dos­ellos,­si­es­que­exis­-
te­en­el­pro­gra­ma­leído.­ de­es­ta­ma­ne­ra­po­de­mos­ave­ri­guar­tam­bién­las­di­fe­-
ren­cias­en­tre­los­con­te­ni­dos­de­un­chip­y­otro­que­aun­que
Pul­san­do­so­bre­el­íco­no­ co­mien­za­la­lec­tu­ra
es­tén­pro­gra­ma­dos­con­el­mis­mo­pro­gra­ma,­no­fun­cio­nen
de­ los­ da­tos­ del­ chip,­ se­-
cuen­cial­men­te­se­irán­le­yen­- TABLA 1
do­ el­ có­di­go­ de­ pro­gra­ma, 0000: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF ÿÿÿÿÿÿÿÿ
los­da­tos­de­la­me­mo­ria­EE­- 0008: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF ÿÿÿÿÿÿÿÿ
prom­y­fi­nal­men­te­los­bits­de 0010: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF ÿÿÿÿÿÿÿÿ
con­fi­gu­ra­ción.­ ­ El­ buf­fer­ de 0018: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF ÿÿÿÿÿÿÿÿ
có­di­go­de­pro­gra­ma,­y­en­su 0020: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF ÿÿÿÿÿÿÿÿ
ca­so­ el­ de­ la­ EE­prom­ in­ter­-
na,­se­lle­na­rá­con­los­da­tos
TABLA 2
leí­dos,­ y­ és­tos­ se­ mos­tra­rán
0000: 0000 0000 0000 0000 0000 0000 0000 0000 ........
en­he­xa­de­ci­mal.­Pa­ra­po­der
0008: 0000 0000 0000 0000 0000 0000 0000 0000 ........
ver­los­ en­ en­sam­bla­dor­ se
0010: 0000 0000 0000 0000 0000 0000 0000 0000 ........
pue­de­ ac­ti­var­ el­ íco­-
0018: 0000 0000 0000 0000 0000 0000 0000 0000 ........
no de­la­ba­rra­de­ta­- 0020: 0000 0000 0000 0000 0000 0000 0000 0000 ........
43
TABLA 3 to­das­ las­ po­si­cio­nes­ del­ PIC­ y­ una­ pos­te­rior­ lec­tu­ra­ del
0000: FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿ mis­mo,­pa­ra­ve­ri­fi­car­que­es­tá­en­blan­co.­
0008: FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿ Si­el­PIC­es­tá­pro­te­gi­do­con­tra­lec­tu­ras­(CP­ac­ti­va­do)
0010: FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿ su­con­te­ni­do­al­leer­lo­se­rá­de­to­das­las­po­si­cio­nes­a­0,­co­-
mo­se­mues­tra­en­la­ta­bla­2.­
0018: FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿ
Si­só­lo­es­tu­vie­se­pro­te­gi­da­una­par­te­del­có­di­go,­al
0020: FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿ
leer­el­PIC,­la­par­te­que­no­es­tá­pro­te­gi­da­se­lee­nor­mal­-
co­rrec­ta­men­te,­o­de­un­fi­che­ro­y­otro­que­al­en­sam­blar­los men­te­y­la­par­te­de­có­di­go­que­es­té­pro­te­gi­da­se­lee­rá­co­-
no­sean­exac­ta­men­te­igua­les.­ mo­to­das­las­po­si­cio­nes­a­0000.­
Cuan­do­un­pro­gra­ma­ocu­pa­só­lo­una­par­te­de­la­me­-
mo­ria­de­có­di­go,­si­lee­mos­el­PIC,­el­res­to­de­po­si­cio­nes
no­ocu­pa­das­por­el­pro­gra­ma­se­lee­rán­co­mo­si­es­tu­vie­-
LEC­tU­raS ES­PE­CIa­LES dE da­toS sen­en­blan­co­3FFF.­­Los­da­tos­de­la­me­mo­ria­EE­prom­son
de­8­bits­y­por­eso­al­leer­los­si­es­tán­va­cíos­se­mues­tran
Si­un­PIC­no­ha­si­do­nun­ca­pro­gra­ma­do,­o­es­tá­com­- co­mo­se­pue­de­ver­en­la­ta­bla­3.­
ple­ta­men­te­bo­rra­do,­su­con­te­ni­do­se­rá­de­3FFF­(son­po­si­-
cio­nes­de­13­bits),­una­prue­ba­de­ello­se­mues­tra­a­con­-
ti­nua­ción:­ ver­ ta­bla­ 1.­ Es­ta­ lec­tu­ra­ de­ un­ PIC­ com­ple­ta­-
men­te­bo­rra­do­es­lo­que­se­co­no­ce­co­mo­ve­ri­fi­ca­ción­de
blan­co,­y­pue­de­rea­li­zar­se­au­to­má­ti­ca­men­te­me­dian­te­la
VE­rI­FI­Ca­CIón dE Un dIS­Po­SI­tI­Vo
or­den­ Ve­ri­fi­car­ blan­co,­ que­ se­ en­cuen­tra­ en­ la­ pes­ta­ña
Co­man­do.­ aun­que­ya­se­ha­ex­pli­ca­do­an­te­rior­men­te­que­al­rea­-
Más­tar­de­ve­re­mos­la­op­ción­de­bo­rra­do­de­un­dis­- li­zar­la­pro­gra­ma­ción­de­un­dis­po­si­ti­vo,­és­te­es­au­to­má­ti­-
po­si­ti­vo,­que­lo­que­rea­li­za­es­una­es­cri­tu­ra­de­3FFF­en ca­men­te­ve­ri­fi­ca­do,­en­el­me­nú­prin­ci­pal­de­IC-ProG­se

dis­po­ne­ del­ íco­no­ ,


me­dian­te­el­cual­se­ac­ce­de
a­la­ve­ri­fi­ca­ción­del­dis­po­-
si­ti­vo­ ele­gi­do.­ tam­bién­ se
Figura 54
pue­de­ rea­li­zar­ la­ ve­ri­fi­ca­-
ción­ me­dian­te­ la­ op­ción
Ve­ri­fi­car­ den­tro­ de­ la­ pes­-
ta­ña­Co­man­do o­bien­pul­-
Figura 56
san­do­ la­ te­cla­ de­ fun­ción
F6.­
Figura 58
de­cual­quie­ra
Figura 55 de­ es­tas­ tres­ for­-
mas­ el­ pro­gra­ma
IC-ProG­ com­pa­-
ra­ el­ con­te­ni­do
del­chip­co­lo­ca­do
en­ el­ pro­gra­ma­-
dor,­con­los­da­tos
car­ga­dos­ en­ el
buf­fer­ac­ti­vo.­
Figura 59
La­ve­ri­fi­ca­-
ción­ del­ chip
se­ rea­li­za­ en
dos­pa­sos:­
•­ En­ pri­-
mer­ lu­gar­ se
ve­ri­fi­ca­ el
área­ de­ có­di­-
go­ de­ pro­gra­-
ma,­y­en­ca­so
Figura 57
44
3­-­CarGadorES­dE­PIC­µC­Y­EEProM

Figura 60 de­ que­ ha­- que­el­chip­es­tá­en­blan­co,­o­bien­de­que­no­lo­es­tá­en


lle­ al­gún una­di­rec­ción­de­ter­mi­na­da­de­me­mo­ria.­
error­en­los
da­tos­ com­-
pa­ra­dos­ se
de­tie­ne­ la oP­CIo­nES FI­na­LES
v e ­r i ­f i ­c a ­-
ción­ y­ se
a­con­ti­nua­ción­se­mues­tran­las­fi­gu­ras­58­a­60­con
nos­ in­for­-
las­op­cio­nes­de­ca­da­una­de­las­pes­ta­ñas­del­me­nú­prin­-
ma­ de­ la
ci­pal­de­IC-ProG.­
d i ­r e c ­c i ó n
Es­tas­fi­gu­ras­se­dan­a­ni­vel­in­for­ma­ti­vo,­y­en­nin­gún
dón­de­ se
ca­so­se­pre­ten­de­ex­pli­car­ex­haus­ti­va­men­te­su­uso,­ya­que
ha­pro­du­ci­do­el­error­de­com­pa­ra­ción.­
eso­no­es­mi­sión­de­es­ta­obra.­Pa­ra­una­ma­yor­in­for­ma­-
•­ Una­ vez­ su­pe­ra­da­ con­ éxi­to­ la­ com­pa­ra­ción­ del
ción­con­sul­tar­el­ar­chi­vo­ic­prog.hlp­que­se­en­cuen­tra­en
área­de­có­di­go­de­pro­gra­ma,­en­se­gun­do­lu­gar­se­ve­ri­fi­-
la­pá­gi­na­web­prin­ci­pal­de­es­te­pro­gra­ma.­
ca­el­área­de­da­tos­de­la­me­mo­ria­EE­prom­(si­el­dis­po­si­-
ti­vo­es­tá­do­ta­do­de­ella).­­al­fi­nal­de­la­com­pa­ra­ción,­si
no­han­exis­ti­do­di­fe­ren­cias­en­tre­los­da­tos,­se­nos­in­for­ma
de­que­se­ha­te­ni­do­éxi­to­en­la­ve­ri­fi­ca­ción­del­dis­po­si­ti­-
vo,­con­una­pan­ta­lla­co­mo­­la­que­ve­mos­en­la­fi­gu­ra­55.­

Bo­rra­do dE Un dIS­Po­SI­tI­Vo
Cuan­do­se­quie­re­rea­li­zar­el­bo­rra­do­com­ple­to­de­un
chip,­an­tes­de­pro­ce­der­a­una­nue­va­pro­gra­ma­ción,­es­to

se­pue­de­ha­cer­con­el­íco­no­ del­me­nú­prin­ci­pal,
o­bien­con­la­op­ción­Bo­rrar­to­do que­se­en­cuen­tra­en­la
pes­ta­ña­Co­man­do.­
Si­den­tro­de­la­pes­ta­ña­de­ajus­tes,­en­el­me­nú­de­op­- Figura 62
cio­nes la­ca­si­lla­de­Bo­rrar­un­dis­po­si­ti­vo (co­mo­se­mues­-
tra­en­la­fi­gu­ra­57)­es­tá­ac­ti­va­da,­an­tes­de­pro­ce­der­al
bo­rra­do­del­chip,­se­nos­pe­di­rá­que­con­fir­me­mos­la­op­-
ción­ ele­gi­da­ me­dian­te­ una­ pan­ta­-
lla­de­avi­so,­ca­so­de­no­es­tar­ac­ti­-
Figura 61
va­da­es­ta­ca­si­lla­no­se­pe­di­rá­con­-
fir­ma­ción­y­el­chip­se­bo­rra­rá­per­-
dien­do­to­dos­sus­da­tos.­
El­bo­rra­do­del­chip­se­lle­va­a
ca­bo­en­un­tiem­po­muy­bre­ve,­y­al
fi­na­li­zar­ el­ mis­mo­ se­ nos­ in­for­ma
de­que­el­pro­ce­so­ha­fi­na­li­za­do.­
La­ com­pro­ba­ción­ de­ es­te­ pro­-
ce­so­se­pue­de­rea­li­zar­de­dos­ma­-
ne­ras:­
1.­Me­dian­te­una­nue­va­lec­tu­ra
del­chip,­lo­cual­nos­da­rá­co­mo­re­-
sul­ta­do­ que­ el­ buf­fer­ ten­drá­ to­das
sus­po­si­cio­nes­a­3FFF.­
2.­ rea­li­zan­do­ la­ ve­ri­fi­ca­ción
del­blan­co.­En­cu­yo­ca­so­se­nos­in­-
for­ma­rá­me­dian­te­una­pan­ta­lla­de
45
InStaLaCIón dE SU ProGraMador QUarK-
LISta­1 Pro En dIFErEntES
SIStEMaS oPEratIVoS
U1­-­Base­para­CI­de­8­pins
U2­-­Base­para­CI­de­18­pins InStrUCCIonES
U3­-­Base­para­CI­de­28­pins­(usar­2­bases
de­14­pins) 1.­ asegúrese­ de­ tener­ instalado­ el­ programa­ WIn-
ZIP,­de­lo­contrario,­instale­primero­este­programa.
U4­-­Base­para­CI­de­40­pins
dB9­-­Conector­dB9­hembra 2.­ abra­ la­ carpeta­ IC-Prog­ ,­ copie­ el­ programa
dI,­d2,­d3,­d4­-­diodo­1n4148 “icprog105c”­ y­ guárdelo­ en­ una­ carpeta.­ desde­ ahí
d5­-­diodo­zener­de­5.1V­1/2W extraiga­el­programa­icprog.exe­(EXCtraCt)­a­la­misma
carpeta.­ En­ ese­ momento­ aparecerá­ en­ su­ carpeta­ un
d6­-­diodo­zener­de­8.2V­1/2W
ícono­para­el­acceso­directo­a­su­programa.
Q1,­Q2­-­transistor­BC547C
Q3­-­transistor­BC557C 3.­Conecte­el­programador­al­puerto­serie­de­su­com-
C1,­ C2­ -­ Capacitor­ electrolítico­ de putadora.­El­led­rojo­deberá­encender.

1000µF/25V
C3,­C4­-­Capacitor­cerámico­de­0.001µF
r1­-­resistencia­de­100kΩ­1/8W
r2­-­resistencia­de­10kΩ­1/8W
r3­-­resistencia­de­1.5kΩ­1/8W
r4­-­resistencia­de­1kΩ­1/8W
r5­-­resistencia­de­2.7kΩ­1/8W
L1­-­diodo­Led­verde
L2­-­diodo­Led­rojo
J1­-­Puente­de­alambre
Figura 63

Figura 64
46
3­-­CarGadorES­dE­PIC­µC­Y­EEProM

4.­ abra­ el­ programa­ IC-Prog­ instalado­ (aparecerá la­ casilla­ “Ejecutar­ este­ programa.....”­ y­ seleccione
una­pantalla­igual­a­la­fig.61)­­y­realice­una­operación Windows­ 98­ preferentemente­ (puede­ probar­ con­ win-
de­ borrado,­ lectura­ o­ programación­ sin­ colocar­ ningún dows­2000­o­nt),­­seleccione­aplicar­y­aceptar.­Cierre
PIC­ en­ el­ programador.­ Si­ todo­ va­ bien,­ el­ led­ verde la­ventana.
deberá­encender.­
d.­ abra­ normalmente­ el­ programa­ IC-Prog,­ selec-
5.­Si­no­enciende­el­led­verde,­es­que­no­existe­comu- cione­ “ajustes­ de­ hardware”.­ ahí­ active­ la­ casilla
nicación­ con­ el­ programador.­ En­ ­ este­ caso,­ vaya­ a Windows­aPI.­En­esta­misma­ventana,­verifique­y/o­selec-
“ajustes­de­hardware”­(fig.­63)­y­confirme­la­siguiente­con- cione­ que­ el­ programador­ seleccionado­ sea­ “JdM
figuración:­­­ Programmer”­y­el­puerto­serial­(­CoM)­correspondiente.
Programador:­JdM­Programmer El­retardo­normalmente­debe­estar­en­10,­pero­para­este
Interfaz:­direct­I/o caso­ajústelo­a­5.­Vea­la­figura­63.
retardo:­(Mueva­el­cursor­a­10)
Comunicación:­(ninguna­casilla­seleccionada) E.­realice­la­comprobación­de­funcionamiento­de­la
Puertos:­(Seleccione­el­puerto­correspondiente.­Si­no misma­manera­que­en­los­puntos­4­y­5.­
lo­conoce,­pruebe­con­cada­uno­de­ellos)
6.­Para­confirmar­el­correcto­funcionamiento,­instale En­la­figura­64­se­ve­el­diagrama­esquemático­y­en
un­PIC­y­selecciónelo­de­la­librería­correspondiente­para la­lista­1,­los­componentes­utilizados.
configurarlo.­Cargue­un­programa­o­simplemente­escriba
en­el­buffer­editor­cualquier­dato­de­manera­aleatoria­y
programe­ su­ PIC.­ después­ abra­ otro­ buffer­ y­ realice­ la Instalación­del­MP-LaB
operación­de­lectura.­El­buffer­2­deberá­contener­los­mis-
1. Seleccione­de­la­carpeta­MP-Lab­la­versión­más
mos­ datos­ del­ buffer­ 1.­ Si­ esto­ es
reciente­(6.40)­y­ejecute­el­programa­de­instalación.
correcto....Felicidades....la­ comunicación­ del­ programa
2. dependiendo­ del­ sistema­ operativo­ que­ esté
con­ el­ programador­ es­ correcta,­ ­ ha­ quedado­ perfecta-
usando,­ se­ pueden­ generar­ conflictos­ por­ actualiza-
mente­instalado­y­listo­para­usar.
ciones.­ En­ este­ caso­ se­ recomienda­ utilizar­ una­ versión
anterior­del­MP-Lab­

Para WIndoWS XP nota­IMPortantE: El­programador­Quark­Pro­es


un­prototipo­el­cual­ha­sido­probado­su­alto­desempeño.
En­el­ambiente­windows­XP­se­pueden­generar­con- Su­desarrollo­ha­sido­basado­en­hardware­­(JdM)­y­soft-
flictos­ de­ “PErMISIon”­ y­ el­ programador­ no­ funciona ware­(IC-Prog).­tanto­los­mencionados­anteriormente,­así
correctamente.­ Si­ este­ es­ el­ caso,­ realice­ los­ siguientes como­los­programas­incluidos­en­este­disco,­son­de­uso
pasos: libre­ en­ Internet,­ por­ lo­ que­ se­ proporcionan­ solo­ para
facilitar­el­uso­de­los­microcontroladores­PICS­para­apli-
a. Proceda­de­igual­manera­que­en­los­puntos­1­y caciones­didácticas­y­el­costo­pagado­por­este­proyecto
2­anteriores. es­solo­la­recuperación­de­los­gastos­de­producción­de­la
tablilla­y­circuito­impreso­y­no­de­la­venta­de­los­progra-
B. de­ la­ carpeta­ IC-Prog,­ copie­ el­ archivo mas­e­información.­Se­recomienda­no­utilizar­la­placa­del
“icprog.sys”­y­guárdelo­en­la­misma­carpeta­donde­copio impreso­sobre­áreas­metálicas­ya­que­está­alimentado­del
el­archivo­“icprog105c”­. mismo­computador­donde­se­conecta,­lo­que­podría­oca-
sionar­un­cortocircuito­en­la­tarjeta­del­puerto.
C. Con­ el­ botón­ derecho­ del­ mouse­ seleccione Por­lo­anterior,­­cabe­aclarar­que­el­uso­correcto­de
“propiedades”­ del­ programa­ IC-Prog­ instalado. este­producto­es­responsabilidad­de­quien­lo­usa.­
Seleccione­la­pestaña­de­compatibilidad­(fig.­62),­­active ******************

47
3ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1
Tec Punta - Redes:ArtTapa 08/27/2013 15:29 Página 69
Se­má­fo­ro con PIc

An­tes­de­em­pe­zar­su­Pro­yec­to
A­ mo­do­ de­ re­su­men,­ di­ga­mos­ que­ la­ gran
ven­ta­ja­de­los­PIcs­ra­di­ca­en­que­exis­te­abun­dan­-
te­bi­blio­gra­fía­gra­tui­ta­dis­po­ni­ble­en­dis­tin­tas­pla­-
ta­for­mas­ (sin­ du­da­ In­ter­net­ ha­ con­tri­bui­do­ a­ po­-
ten­cia­li­zar­es­ta­ven­ta­ja),­los­en­tor­nos­de­de­sa­rro­-
llo­son­pro­vis­tos­por­la­mis­ma­mi­cro­chip­en­for­ma
gra­tui­ta­y­se­los­pue­de­pro­gra­mar­y­car­gar­con
gran­can­ti­dad­de­dis­po­si­ti­vos.­
exis­ten­di­fe­ren­tes­mo­de­los­de­PIcs,­es­tán­los
de­ga­ma­ba­ja­con­ape­nas­un­puer­to­de­en­tra­da
y­ sa­li­da­ de­ da­tos­ de­ 6­ pa­tas­ co­mo­ el
PIc12c508,­ los­ de­ me­jor­ de­sem­pe­ño,­ en­tre­ los
que­se­en­cuen­tra­el­PIc16f84,­con­dos­puer­tos­y
13­pi­nes­de­en­tra­da­y­sa­li­da­de­da­tos­o­los­de
ga­ma­ al­ta,­ co­mo­ el­ PIc18c658,­ de­ 80­ pa­tas,
con­40­ter­mi­na­les­de­en­tra­da­y­sa­li­da­y­pre­pa­ra­-
dos­pa­ra­trans­mi­sio­nes­de­da­tos,­en­tre­otras­co­-
sas.
Sin­du­das,­tra­ba­jar­con­un­PIc­re­quie­re­co­no­-
ci­mien­tos­pre­vios,­pe­ro­po­de­mos­de­cir­que,­con
muy­po­cos­co­no­ci­mien­tos­de­elec­tró­ni­ca,­es­po­si­-
ble­di­se­ñar­ca­si­cual­quier­pro­yec­to,­y­ha­cer­lo­fun­-
cio­nar­aun­que­no­se­pa­pro­gra­mar.
Al­res­pec­to,­de­be­mos­te­ner­en­cuen­ta­que­to­-
do­mi­cro­con­tro­la­dor­po­see­en­su­in­te­rior­a­un­mi­-
cro­pro­ce­sa­dor,­una­me­mo­ria­ee­Prom­en­don­de
se­alo­ja­el­pro­gra­ma­que­de­be­rá­se­guir­el­mi­cro­-
pro­ce­sa­dor­pa­ra­que­ha­ga­lo­que­no­so­tros­es­pe­-
ra­mos,­ una­ me­mo­ria­ de­ da­tos­ pa­ra­ la­ crea­ción
de­vec­to­res­y­pa­ra­po­der­con­du­cir­los­da­tos­des­-
de­y­ha­cia­el­ex­te­rior­y­puer­tos­pa­ra­que­ac­túen
co­mo­in­ter­faz­en­tre­el­cir­cui­to­in­te­gra­do­y­el­ex­te­-
rior.
el­pro­gra­ma­que­te­ne­mos­que­in­tro­du­cir­en­la
me­mo­ria­de­pro­gra­ma­del­mi­cro­con­tro­la­dor­de­be
51
Figura 1

es­tar­en­len­gua­je­bi­na­rio­ya­que­los­mi­cro­pro­ce­sa­do­- Se­ di­ce­ que,­ cuan­do­ un­ pro­gra­ma­ se­ ex­pre­sa


res­só­lo­in­ter­pre­tan­“1”­y­“0”­ló­gi­co,­co­mo­es­ta­dos me­dian­te­un­dia­gra­ma­de­flu­jo­o­un­jue­go­de­ins­truc­-
de­“co­rrien­te”­y­“no­co­rrien­te”.­ cio­nes­ re­du­ci­do,­ el­ len­gua­je­ es­ de­ ba­jo­ ni­vel.­ Hay
Aho­ra­bien,­cuan­do­ten­go­ex­pre­sa­do­el­pro­gra­- mu­chos­uti­li­ta­rios­que­per­mi­ten­ha­cer­pro­gra­mas­en
ma­en­len­gua­je­bi­na­rio,­se­di­ce­que­el­ar­chi­vo­de­be un­len­gua­je­por­me­dio­de­dia­gra­mas­de­flu­jo­y­los
te­ner­ ex­ten­sión­ “.bin”­ (así­ co­mo­ un­ ar­chi­vo­ es­cri­to ar­chi­vos­ge­ne­ra­dos­po­seen­ter­mi­na­cio­nes­o­ex­ten­sio­-
con­el­pro­gra­ma­Word­ge­ne­ra­ar­chi­vos­“.doc”,­los nes­de­acuer­do­con­el­uti­li­ta­rio­se­lec­cio­na­do.­cuan­-
ar­chi­vos­ en­ len­gua­je­ bi­na­rio­ ten­drán­ ex­ten­sión do­un­pro­gra­ma­se­ex­pre­sa­me­dian­te­el­jue­go­de­ins­-
“.bin”) truc­cio­nes­re­du­ci­do­de­un­PIc­(el­16f84,­por­ejem­-
Pa­ra­po­der­gra­bar­un­pro­gra­ma­en­la­me­mo­ria plo),­se­ge­ne­ra­un­ar­chi­vo­con­ter­mi­na­ción­“.asm”,
del­PIc­se­uti­li­zan­di­fe­ren­tes­apli­ca­ti­vos,­com­pues­tos lue­go­se­de­be­“pa­sar,­tra­du­cir­o­com­pi­lar”­ese­ar­chi­-
de­ un­ soft­wa­re­ (pro­gra­ma­ de­ ma­ne­jo­ de­ la­ apli­ca­- vo­“.asm”­pa­ra­ob­te­ner­el­co­rres­pon­dien­te­“.hex”­ne­-
ción)­y­un­hard­wa­re­(cir­cui­to­eléc­tri­co­que­per­mi­te­la ce­sa­rio­pa­ra­ma­ne­jar­las­apli­ca­cio­nes­que­per­mi­ten
car­ga)­ta­les­co­mo­el­noPPP­o­el­QUArK­Pro­2,­ya car­gar­a­un­PIcs
des­cri­tos.
Pa­ra­po­der­car­gar­la­me­mo­ria­de­un­PIc­con­es­-
tas­apli­ca­cio­nes,­es­pre­ci­so­que­el­ar­chi­vo­de­pro­gra­-
ma­es­té­ex­pre­sa­do­en­len­gua­je­he­xa­de­ci­mal,­con­ex­- es­truc­tu­ra­del­Pro­gra­ma
ten­sión­“.hex”;­lue­go,­la­apli­ca­ción­po­see­un­con­ver­- Pa­ra­ex­pli­car­me­jor­có­mo­ob­te­ne­mos­un­pro­yec­-
sor­he­xa­de­ci­mal­a­bi­na­rio­pa­ra­que­los­da­tos­in­gre­- to­ ter­mi­na­do­ a­ par­tir­ de­ un­ pen­sa­mien­to,­ de­be­mos
sen­a­la­me­mo­ria­del­PIc­sin­in­con­ve­nien­tes.­Sin­em­- te­ner­en­cuen­ta,­qué­cir­cui­to­in­te­gra­do­va­mos­a­em­-
bar­go,­cuan­do­uno­ha­ce­o­es­cri­be­un­pro­gra­ma­nor­- plear,­qué­uti­li­ta­rio­usa­re­mos­pa­ra­ge­ne­rar­el­pro­gra­-
mal­men­te­ ge­ne­ra­ un­ do­cu­men­to­ com­pren­si­ble­ pa­ra ma­me­dian­te­su­dia­gra­ma­de­flu­jo­y­pos­te­rior­ob­ten­-
el­usua­rio­y­el­ar­chi­vo­o­do­cu­men­to­que­con­tie­ne­a ción­del­ar­chi­vo­as­sem­bler­(.asm),­cuál­se­rá­el­soft­-
di­cho­pro­gra­ma­po­drá­te­ner­di­fe­ren­tes­ter­mi­na­cio­nes wa­re­ com­pi­la­dor­ pa­ra­ ob­te­ner­ el­ ar­chi­vo­ “.hex”­ y
o­ex­ten­sio­nes­de­acuer­do­con­el­len­gua­je­de­pro­gra­- qué­car­ga­dor­usa­re­mos­pa­ra­in­tro­du­cir­el­pro­gra­ma
ma­ción. en­la­me­mo­ria­del­pro­gra­ma.
52
4 ? TRABAJANDO?CON?PICS?DESDE?CERO

*­ co­mo­ apli­ca­ción­ pa­ra­ cons­- Figura 2


truir­el­dia­gra­ma­de­flu­jo­em­plea­re­-
mos­el­ni­ple,­pro­gra­ma­que­ge­ne­ra
ar­chi­vos­con­ex­ten­sión­“.npl”­y­que,
a­par­tir­del­dia­gra­ma­de­flu­jo,­nos
dá­ tam­bién­ el­ as­sem­bler­ de­ mi­cro­-
chip,­ es­ de­cir,­ el­ pro­gra­ma­ en­ un
ar­chi­vo­“.asm”
*­ co­mo­ com­pi­la­dor­ usa­re­mos
la­ apli­ca­ción­ de­ mi­cro­chip­ mP­-
SAm,­ que­ com­pi­la­ el­ ar­chi­vo
“.asm”­ob­te­ni­do­con­el­ni­ple­pa­ra
ob­te­ner­el­pro­gra­ma­en­un­ar­chi­vo
con­ex­ten­sión­“.hex”.
*­ co­mo­ car­ga­dor­ usa­re­mos­ el
Quark­Pro­2,­cir­cui­to­­que­em­plea­al­Ic­ProG­co­mo to­A­y­se­gui­ría­mos­el­mis­mo­pro­ce­di­mien­to­que­va­mos
pro­gra­ma­pa­ra­per­mi­tir­la­car­ga. a­des­cri­bir).
Una­ vez­ que­ co­mien­za­ el­ pro­gra­ma,­ de­be­ en­cen­-
Va­mos­a­cons­truir­un­se­má­fo­ro­que­fun­cio­ne­con der­se­el­led­ver­de,­per­ma­ne­cer­en­cen­di­do­du­ran­te­45
se­gun­dos,­apa­gar­se­el­ver­de­y­pren­der­se­el­ama­ri­llo­du­-
12V­y­que­sea­ca­páz­de­ma­ne­jar­lám­pa­ras­de­50W
ran­te­5­se­gun­dos,­apa­gar­se­el­ama­ri­llo­y­pren­der­se­el
con­ di­cha­ ten­sión.­ Par­ti­re­mos­ des­de­ ce­ro…­ su­po­-
ro­jo­du­ran­te­45­se­gun­dos,­apa­gar­el­led­ro­jo­y­pren­der
nien­do­el­cir­cui­to­de­la­fi­gu­ra­1.
el­ver­de­du­ran­te­45­se­gun­dos­y­así­su­ce­si­va­men­te.
el­PIc­16f84­de­be­te­ner­en­su­in­te­rior­el­pro­gra­-
Pa­ra­ ha­cer­ que­ un­ led­ per­ma­nez­ca­ en­cen­di­do­ se
ma­que­ha­ga­que­se­en­cien­dan­en­se­cuen­cia­las­lám­- uti­li­zan­tem­po­ri­za­do­res­que­cuen­ten­di­cho­tiem­po­y­pa­-
pa­ras­LA1­(co­lor­ver­de),­LA2­(co­lor­ama­ri­llo)­y­LA3 ra­cons­truir­el­dia­gra­ma­de­flu­jo,­em­plea­mos­la­apli­ca­-
(co­lor­ro­jo).
A­ los­ efec­tos­ de­ mo­ni­to­rear­ el­ en­cen­di­do
de­ las­ lám­pa­ras,­ usa­mos­ co­mo­ pi­lo­tos­ a­ los
leds­D1­(ver­de),­D2­(ama­ri­llo)­y­D3­(ro­jo)­y­pa­-
ra­ ma­ne­jar­ las­ lám­pa­ras­ de­ po­ten­cia­ se­ uti­li­-
zan­tran­sis­to­res­nPn­de­po­ten­cia­con­di­si­pa­-
dor­del­ti­po­TI­P41A.
r1­ en­ se­rie­ con­ Vr1­ y­ c1­ con­for­man­ un
cir­cui­to­de­car­ga­cu­ya­cons­tan­te­de­tiem­po­de­-
ter­mi­na­la­fre­cuen­cia­de­ope­ra­ción­del­con­ta­-
dor­de­pro­gra­ma­del­PIc­y­por­en­de,­el­tiem­-
po­en­que­las­lám­pa­ras­per­ma­ne­ce­rán­en­cen­- Figura 3
di­das,­mien­tras­que­D4­jun­to­con­Q4­re­pre­sen­-
tan­ un­ li­mi­ta­dor­ de­ ten­sión­ pa­ra­ ali­men­tar­ al
PIc­con­5V.

cons­truc­ción­
del­Dia­gra­ma­de­flu­jo
no­te­que­tan­to­los­leds­pi­lo­tos­co­mo­los­tran­-
sis­to­res­que­ma­ne­jan­las­lám­pa­ras­es­tán­co­nec­ta­-
dos­a­los­ter­mi­na­les­6,­7­y­8­del­PIc­que­co­rres­-
pon­den­a­los­bits­me­nos­sig­ni­fi­ca­ti­vos­del­Puer­to
B­(vea­la­fi­gu­ra­2),­o­sea,­pa­ra­cons­truir­nues­tro
dia­gra­ma­de­flu­jo,­de­be­mos­re­cor­dar­que­usa­re­- Figura 4
mos­los­bits­B0,­B1­y­B2­del­PIc­(po­dría­mos­ha­-
ber­em­plea­do­otras­pa­tas,­in­clu­so­has­ta­del­puer­-
53
ción­nI­PLe.­ca­be­acla­rar­que­uti­li­za­mos­un­De­mo,­que có­mo­usar­lo,­es­cri­to­por­el­Ing.­Al­ber­to­H.­Pi­cer­no.­A­los
pue­de­uti­li­zar­pa­ra­sus­pro­yec­tos.­el­De­mo­po­see­va­- fi­nes­ prác­ti­cos,­ da­re­mos­ una­ bre­ve­ ex­pli­ca­ción­ de­ su
ins­ta­la­ción­ y­ có­mo­ ha­ce­mos­ pa­ra­ ge­ne­rar­ el­ có­di­go
rias­li­mi­ta­cio­nes,­pe­ro­el­pro­gra­ma­ori­gi­nal­tie­ne­un­cos­-
to­ac­ce­si­ble. “.asm”­del­se­má­fo­ro.
Pa­ra­des­car­gar­el­De­mo­sin­car­go,­di­rí­ja­se­a­nues­- Pa­ra­ins­ta­lar­el­De­mo­del­ni­ple­en­su­com­pu­ta­do­-
tra­ pá­gi­na­ web:­ www­.we­be­lec­tro­ni­ca­.co­m.ar,­ ha­ga ra,­có­pie­lo­en­el­dis­co­rí­gi­do­de­su­com­pu­ta­do­ra,­des­-
click­en­el­íco­no­pass­word­e­in­gre­se­la­cla­ve­nip11.­Po­- com­prí­ma­lo­y­lue­go­eje­cu­te­el­ar­chi­vo­se­tu­p.e­xe.­el­pro­-
drá­ba­jar­tan­to­el­De­mo­co­mo­el­ar­tí­cu­lo­que­ex­pli­ca gra­ma­ lo­ guia­rá­ du­ran­te­ la­ ins­ta­la­ción­ y­ le­ avi­sa­rá
cuan­do­la­mis­ma­ha­ya­fi­na­li­za­do­(fi­gu­ra­3).
Ud­sa­brá­dón­de­ha­si­do­alo­ja­do­el­pro­gra­-
Figura 5 ma­den­tro­de­su­dis­co­rí­gi­do,­por­lo­tan­to­eje­cú­-
te­lo­y­de­in­me­dia­to­ten­drá­la­pan­ta­lla­de­bien­-
ve­ni­da­(fi­gu­ra­4).
Pos­te­rior­men­te­ (y­ sin­ que­ Ud.­ de­ba­ ha­cer
na­da),­se­des­ple­ga­rá­la­pan­ta­lla­de­con­fi­gu­ra­-
ción­de­sis­te­ma­(fi­gu­ra­5)­pa­ra­que­Ud.­co­lo­que
la­ubi­ca­ción­don­de­es­tá­el­soft­wa­re­com­pi­la­dor
que­em­plea­rá­pa­ra­sus­pro­yec­tos­(no­so­tros­di­ji­-
mos­que­em­plea­ría­mos­el­mPASm,­ra­zón­por­la
cual­pos­te­rior­men­te­vol­ve­re­mos­a­es­te­te­ma)­y­la
ubi­ca­ción­del­pro­gra­ma­car­ga­dor­(uti­li­za­re­mos
el­ Ic­ProG­ con­ el­ cual­ con­tro­la­mos­ nues­tro
Quark­Pro­2).
en­es­te­pa­so,­y­sin­rea­li­zar­mo­di­fi­ca­ción­al­-
gu­na,­ha­ce­mos­click­en­in­gre­sar.
Aho­ra­va­mos­a­la­ven­ta­na­Ar­cHI­Vo­­y,­co­-
mo­ se­ tra­ta­ de­ un­ De­mo,­ te­ne­mos­ la­ po­si­bi­li­-
dad­de­“Abrir­un­Pro­yec­to­exis­ten­te”­(fi­gu­ra­6),
Figura 6 por­ lo­ tan­to­ se­lec­cio­na­mos­ es­ta­ op­ción­ y­ abri­-
mos­el­ar­chi­vo­que­se­en­cuen­tra­den­tro­de­car­-
pe­ta­TU­To­rIAL_1­que,­a­su­vez,­es­tá­den­tro­del
di­rec­to­rio­ ni­ple.­ Ha­ce­mos­ do­ble­ click­ so­bre­ di­-
cha­car­pe­ta­y­en­su­in­te­rior­apa­re­ce­el­ar­chi­vo
“De­mo­01_Quark.nPL”,­lo­se­lec­cio­na­mos,­apre­-
ta­mos­“abrir”­y­se­des­plie­ga­la­pan­ta­lla­de­la­fi­-
gu­ra­7.­
Ve­mos­el­dia­gra­ma­de­flu­jo­co­rres­pon­dien­te
al­ejem­plo­que­el­Ing.­Pi­cer­no­uti­li­zó­pa­ra­ex­pli­-
car­ el­ fun­cio­na­mien­to­ del­ pro­gra­ma.­ no­so­tros
va­mos­ a­ mo­di­fi­car­ di­cho­ dia­gra­ma­ pa­ra­ rea­li­-

Figura 7

Figura 8

54
4 ? TRABAJANDO?CON?PICS?DESDE?CERO

zar­el­pro­yec­to­co­rres­pon­dien­te­al­se­má­fo­ro.­Pa­ra­ello,
man­te­nien­do­apre­ta­do­el­bo­tón­iz­quier­do­del­mou­se­se­-
lec­cio­na­mos­to­dos­los­blo­ques­del­dia­gra­ma­(vea­la­fi­-
gu­ra­8)­y­apre­ta­mos­la­te­cla­de­le­te­pa­ra­que­se­bo­rren
to­dos­los­blo­ques.­De­es­ta­ma­ne­ra­nos­que­da­“la­ho­ja
en­blan­co”­pa­ra­que­mo­di­fi­que­mos­el­pro­yec­to­abier­to
de­mo­do­de­po­der­ha­cer­el­dia­gra­ma­de­flu­jo­del­se­má­-
fo­ro.­en­tién­da­se­que­“es­ta­mos­mo­di­fi­can­do­el­pro­yec­to
exis­ten­te”­y­que­es­te­De­mo­po­see­sus­li­mi­ta­cio­nes,­tal
co­mo­ya­he­mos­ex­pli­ca­do.­Pa­ra­ar­mar­el­dia­gra­ma­de
flu­jo­te­ne­mos­que­de­fi­nir­qué­pa­tas­del­PIc­va­mos­a­em­-
plear­pa­ra­en­cen­der­las­lám­pa­ras­del­se­má­fo­ro.­De­ci­-
mos­en­ton­ces­que­usa­re­mos­los­si­guien­tes­pi­nes:

Bit­y­puer­to Pa­ta Lám­pa­ra


B0 6 ver­de
B1 7 ama­ri­llo
B2 8 ro­jo Figura 9

Lue­go,­pa­ra­ha­cer­el­dia­gra­ma­de­flu­jo,­de­be­re­mos te­que­en­la­par­te­de­re­cha­del­pro­gra­ma­(de­be­eje­cu­tar
rea­li­zar­los­si­guien­tes­pa­sos: el­pro­gra­ma,­abrir­el­pro­yec­to­exis­ten­te­y­bo­rrar­el­dia­-
gra­ma­de­flu­jo­pa­ra­po­der­ha­cer­el­nue­vo­dia­gra­ma)­le
1)­Ini­cia­mos­el­pro­gra­ma. di­ce­que­tra­ba­ja­rá­con­el­“dia­gra­ma­prin­ci­pal­de­nues­-
2)­con­fi­gu­ra­mos­el­puer­to­B­con­to­das­las­pa­tas­co­- tro­pro­yec­to”­y­tam­bién­tie­ne­las­he­rra­mien­tas­pa­ra­tra­-
mo­sa­li­da,­só­lo­nos­in­te­re­san­los­3­bits­me­nos­sig­ni­fi­ca­- ba­jar­con­el­16f84­(fi­gu­ra­9).
ti­vos,­pe­ro­igual­con­fi­gu­ra­mos­a­to­das­las­pa­tas­co­mo no­te­que­en­dia­gra­ma­de­flu­jo­po­drá­in­ser­tar:
sa­li­da).
3)­es­cri­bi­mos­en­el­puer­to­B­el­da­to­“00000001”, Ins­truc­cio­nes,­ru­ti­nas­Bá­si­cas,­
de­es­ta­ma­ne­ra­man­da­mos­un­“1”­ló­gi­co­al­bit­B0­pa­- In­te­rrup­cio­nes,­Su­bru­ti­nas­de­Usua­rio
ra­que­se­en­cien­da­la­lám­pa­ra­ver­de. A­los­efec­tos­de­rea­li­zar­un­dia­gra­ma­de­flu­jo,­va­-
4)­Ha­ce­mos­un­tem­po­ri­za­dor­de­45­se­gun­dos,­pa­- mos­ a­ in­ser­tar
ra­ que­ la­ lám­pa­ra­ ver­de­ per­ma­nez­ca­ en­cen­di­da­ ese “ru­ti­nas­ bá­si­-
tiem­po­(no­te­que­las­lám­pa­ras­ama­ri­lla­y­ro­ja­van­a­es­- cas”,­por­lo­tan­-
tar­apa­ga­das­por­que­los­bits­B1­y­B2­es­tán­en­“0”). to,­ ha­ce­mos­ do­-
5)­ es­cri­bi­mos­ en­ el­ puer­to­ B­ el­ da­to­ “00000010” ble­ click­ so­bre
pa­ra­ que­ se­ en­cien­da­ la­ lám­pa­ra­ ama­ri­lla­ y­ que­den esa­ op­ción­ y­ se
apa­ga­das­las­lám­pa­ras­ro­ja­y­ver­de­(no­te­que­el­bit­B1 des­plie­guen­ to­-
es­ta­rá­ en­ “1”­ mien­tras­ que­ los­ bits­ b0­ y­ B2­ es­tán­ en das­ las­ op­cio­-
“0”). nes­ po­si­bles­ (fi­-
6)­Ha­ce­mos­un­tem­po­ri­za­dor­de­5­se­gun­dos,­pa­ra gu­ra­10).
Figura 10
que­ la­ lám­pa­ra­ ama­ri­lla­ per­ma­nez­ca­ en­cen­di­da­ ese Ha­ce­mos­un
tiem­po­(no­te­que­las­lám­pa­ras­ver­de­y­ro­ja­van­a­es­tar do­ble­ click­ so­-
apa­ga­das­por­que­los­bits­B0­y­B2­es­tán­en­“0”). bre­ la­ op­ción
7)­es­cri­bi­mos­en­el­puer­to­B­el­da­to­“000000100” “Ini­ciar­ Pro­gra­-
pa­ra­que­se­en­cien­da­la­lám­pa­ra­ro­ja­y­que­den­apa­ga­- ma”­ y­ de­ in­me­-
das­las­lám­pa­ras­ama­ri­lla­y­ver­de­(no­te­que­el­bit­B2­es­- dia­to­ apa­re­ce­rá
ta­rá­en­“1”­mien­tras­que­los­bits­B0­y­B1­es­tán­en­“0”). el­sím­bo­lo­en­la
8)­Ha­ce­mos­un­tem­po­ri­za­dor­de­45­se­gun­dos,­pa­- ho­ja­ de­ tra­ba­jo
ra­que­la­lám­pa­ra­ro­ja­per­ma­nez­ca­en­cen­di­da­ese­tiem­- (fi­gu­ra­ 11).­ Lue­-
po­(no­te­que­las­lám­pa­ras­ama­ri­lla­y­ver­de­van­a­es­tar go,­ de­be­mos
apa­ga­das­por­que­los­bits­B0­y­B1­es­tán­en­“0”). con­fi­gu­rar­ el
9)­re­tor­na­mos­al­pa­so­(3). puer­to­ B;­ no­te
10)­fin­del­pro­gra­ma. que­en­la­co­lum­-
na­ de­ “ru­ti­nas
Pa­ra­ha­cer­es­te­dia­gra­ma­de­flu­jo­en­el­noPPP,­no­- Bá­si­cas”­ es­tá­ la
55
op­ción­puer­to­y­al­ha­cer­un­do­ble­click­so­bre­di­cha­op­- Si­guien­do­ el­ de­sa­rro­llo­ del­ pro­gra­ma,­ de­be­mos
ción,­se­des­plie­gan­to­das­las­co­sas­que­po­de­mos­rea­li­- aho­ra­“es­cri­bir­so­bre­el­puer­to”­por­lo­tan­to,­se­lec­cio­na­-
zar­en­los­puer­tos­y­una­de­ellas­es­“con­fi­gu­rar­Puer­to mos­es­ta­op­ción­de­la­ba­rra­de­he­rra­mien­tas­del­16f84
B”,­así­que­ha­ce­mos­un­do­ble­click­y­apa­re­ce­la­ima­gen (a­la­de­re­cha­de­la­pan­ta­lla­del­ni­ple)­ha­ce­mos­do­ble
mos­tra­da­en­la­fi­gu­ra­12.­no­te­que­por­de­fec­to,­el­pro­- click­so­bre­ella­y­se­des­plie­ga­la­pan­ta­lla­de­la­fi­gu­ra
gra­ma­nos­po­ne­a­to­das­las­pa­tas­del­puer­to­B­co­mo­sa­- 14.­ele­gi­mos­la­op­ción­“un­va­lor­Li­te­ral”­y­se­lec­cio­na­-
li­das­pe­ro­uno­po­dría­cam­biar­es­ta­con­di­ción­co­lo­can­- mos­co­lo­car­el­da­to­en­bi­na­rio,­lue­go­es­cri­bi­mos­el­nú­-
do­un­til­de­con­el­bo­tón­iz­quier­do­del­mou­se­so­bre­la me­ro­“00000001”,­tal­co­mo­lo­ex­pre­sa­mos­en­el­pun­-
pa­ta­re­que­ri­da.­no­so­tros­de­ja­mos­to­das­las­pa­tas­co­mo to­3­del­pro­gra­ma­ex­pli­ca­do­an­te­rior­men­te.­Por­úl­ti­mo,
sa­li­da,­así­que­pul­sa­mos­el­bo­tón­“In­gre­sar”­y­es­ta­ac­- se­lec­cio­na­mos­la­op­ción­“Puer­to­B”­y­apre­ta­mos­el­bo­-
ción­apa­re­ce­en­el­dia­gra­ma­de­flu­jo,­tal­co­mo­se­mues­- tón­“In­gre­sar”­(fi­gu­ra­15).­De­es­ta­ma­ne­ra,­en­la­ho­ja
tra­en­la­fi­gu­ra­13. de­tra­ba­jo­del­ni­ple­nos­que­da­rá­el­dia­gra­ma­de­flu­jo
de­la­fi­gu­ra­16.
Aho­ra,­tal­co­mo­se­men­cio­na­en­el­pa­so­4,­de­be­-
mos­ ha­cer­ el­ tem­po­ri­za­dor,­ por­ lo­ tan­to,­ ha­ce­mos­ un
do­ble­click­so­bre­la­op­ción­“Tem­po­ri­za­do­res”­de­las­ru­-
ti­nas­ Bá­si­cas­ y­ se­lec­cio­na­mos­ la­ op­ción­ “Tiem­pos­ por
bu­cles”­(fi­gu­ra­17).­en­la­ven­ta­na­que­apa­re­ce­se­lec­cio­-
na­mos­un­tiem­po­fi­jo,­ex­pre­sa­do­en­se­gun­dos­y­co­lo­ca­-
mos­el­va­lor­45,­tal­co­mo­se­mues­tra­en­la­fi­gu­ra­18,
he­cho­es­to­apre­ta­mos­el­bo­tón­“In­gre­sar”.­Au­to­má­ti­ca­-
men­te­apa­re­ce­un­car­tel­que­nos­di­ce­que­el­pro­gra­ma
creó­re­gis­tros­en­for­ma­au­to­má­ti­ca,­pul­sa­mos­oK­y­nos
que­da­el­dia­gra­ma­de­flu­jo­tal­co­mo­mos­tra­mos­en­la­fi­-
gu­ra­19.­De­es­ta­ma­ne­ra­pren­di­mos­la­lám­pa­ra­ver­de
Figura 11 y­ la­ man­tu­vi­mos­ en­cen­di­da­ 45­ se­gun­dos.­ Aho­ra­ te­ne­-

Figura 12

Figura 13

Figura 14
Figura 15
56
4 ? TRABAJANDO?CON?PICS?DESDE?CERO

mos­que­con­ti­nuar­con­el­pa­so­5,­es­cri­bien­do­el­va­lor ción­as­sem­bler,­bus­ca­mos­el­lu­gar­de­nues­tro­dis­co­du­-
“00000010”­en­el­puer­to­B­y­lue­go­rea­li­zar­un­tem­po­- ro­en­don­de­que­re­mos­guar­dar­el­ar­chi­vo­“.asm”­que­se
ri­za­dor­pe­ro­aho­ra­de­5­se­gun­dos,­pro­ce­dien­do­de­la ge­ne­re­y­le­da­mos­un­nom­bre,­por­ejem­plo:­“sem”­(fi­gu­-
ma­ne­ra­que­fui­mos­ex­pli­can­do.­Así,­rea­li­za­mos­los­pa­- ra­24).­Acon­se­ja­mos­crear­una­car­pe­ta­con­el­nom­bre
sos­5­a­8­y­al­fi­na­li­zar,­ten­dre­mos­el­dia­gra­ma­de­flu­jo “se­má­fo­ro”­ en­ don­de­ guar­da­rá­ los­ ar­chi­vos­ que­ es­ta­-
de­la­fi­gu­ra­20. mos­ge­ne­ran­do.­en­par­ti­cu­lar,­po­de­mos­crear­es­ta­car­-
Aho­ra,­ tal­ co­mo­ di­ce­ el­ pa­so­ 9,
de­be­mos­ ha­cer­ una­ rea­li­men­ta­ción­ o
re­tor­no­al­pa­so­3.­Pa­ra­ello,­nos­po­si­-
cio­na­mos­con­el­mou­se­so­bre­el­cen­-
tro­del­úl­ti­mo­blo­que­ci­to,­apre­ta­mos­el
bo­tón­ iz­quier­do­ del­ mou­se­ y,­ man­te­-
nien­do­ el­ bo­tón­ apre­ta­do,­ des­pla­za­-
mos­el­mou­se­has­ta­el­sím­bo­lo­co­rres­-
pon­dien­te­al­pa­so­3­(fi­gu­ra­21)­y­sol­-
ta­mos­ el­ bo­tón,­ ve­re­mos­ có­mo­ se­ ha
ge­ne­ra­do­el­re­tor­no­en­for­ma­au­to­má­-
ti­ca,­fi­gu­ra­22.
De­es­ta­ma­ne­ra,­he­mos­cons­truí­do
el­ dia­gra­ma­ de­ flu­jos­ que­ re­pre­sen­ta Figura 16
el­ fun­cio­na­mien­to
de­ un­ se­má­fo­ro­ y
por­lo­tan­to­po­de­-
mos­ ob­te­ner­ el
pro­gra­ma­ en­ ar­-
chi­vo­ as­sem­bler
de­mi­cro­chip.
Pa­ra­ ob­te­ner
di­cho­ pro­gra­ma,
va­mos­a­“Ar­chi­vo­-
s/Ar­chi­vo­ ASm­-
/Ge­ne­rar­ có­di­go
ASm”­(fi­gu­ra­23),
ha­ce­mos­un­click­y
nos­ apa­re­ce­ la
Figura 18
ven­ta­de­op­cio­nes Figura 17
pa­ra­ la­ co­di­fi­ca­-

Figura 20

Figura 19
57
pe­ta­en­el­es­cri­to­rio­de­Win­dows.­He­cho­es­to,­pul­sa­mos
el­bo­tón­“co­di­fi­car­ASm”­y­se­crea­rá­el­ar­chi­vo­en­la­lo­-
Figura 22 ca­ción­es­pe­ci­fi­ca­da­an­te­rior­men­te.­Apa­re­ce­rá­un­car­tel
que­nos­in­di­ca­que­el­ar­chi­vo­“se­m.asm”­se­ha­crea­do
sa­tis­fac­to­ria­men­te­ya­al­pul­sar­oK­apa­re­ce­rá­el­lis­ta­do
del­pro­gra­ma­(fi­gu­ra­25)­en­as­sem­bler­con­las­ins­truc­-
cio­nes­ del­ sis­te­ma­ rISc­ del­ 16f84.­ A­ los­ fi­nes­ prác­ti­-
cos,­en­la­fi­gu­ra­26­po­de­mos­ver­el­lis­ta­do­com­ple­to­del
pro­gra­ma.­ca­be­acla­rar­que,­una­vez­que­te­ne­mos­el
pro­gra­ma­en­la­ver­sión­as­sem­bler,­po­dría­mos­em­plear
el­ ni­ple­ pa­ra­ “abrir”­ el­ pro­gra­ma­ com­pi­la­dor­ y­ lue­go
pe­dir­la­eje­cu­ción­del­pro­gra­ma­car­ga­dor,­pa­ra­lo­cual
de­be­ría­mos­con­fi­gu­rar­lo­pa­ra­que­nos­per­mi­ta­es­tas­op­-
cio­nes.­co­mo­nues­tro­in­te­rés­es­ex­pli­car­có­mo­lle­gar­a
un­pro­yec­to­fi­nal­des­de­el­mo­men­to­que­lo­pen­sa­mos,­y
no­la­ex­pli­ca­ción­del­fun­cio­na­mien­to­del­ni­ple,­da­mos
por­fi­na­li­za­do­el­uso­de­es­te­pro­gra­ma­re­cor­dan­do­que,
al­ser­una­ver­sión­De­mo,­no­va­mos­a­po­der­sal­var­los
cam­bios­efec­tua­dos.

com­PI­LA­cIón DeL
Figura 23 Ar­cHI­Vo AS­Sem­BLer
Ya­te­ne­mos­nues­tro­pro­gra­ma­“se­m.asm”­guar­da­do

Figura 24

Figura 25

Figura 21
58
4 ? TRABAJANDO?CON?PICS?DESDE?CERO

en­ la­ car­pe­ta­ “se­má­fo­ro”­ que­ es­tá­ en­ el­ es­cri­to­rio­ de lo­ sa­be­ ma­ne­jar,­ dé­je­lo­ to­do­ co­mo­ es­tá­ y­ só­lo­ ha­ga
Win­dows,­de­be­mos­aho­ra,­com­pi­lar­di­cho­ar­chi­vo­pa­- click­so­bre­el­bo­tón­“AS­Sem­BLe”)­e­in­me­dia­ta­men­te­se
ra­ob­te­ner­el­co­rres­pon­dien­te­“sem­.hex”.­co­mo­soft­wa­- ge­ne­ra­rá­el­ar­chi­vo­“sem­.hex”­y­una­se­rie­de­ar­chi­vos
re­com­pi­la­dor­pue­de­em­plear­el­mP­SAm­que­es­tá­jun­to adi­cio­na­les­ que­ es­tán­ re­la­cio­na­dos­ con­ las­ op­cio­nes
con­ el­ pro­gra­ma­ mPLAB­ que­ pue­de­ des­car­gar­ des­de del­pro­gra­ma­pe­ro­que­no­son­ne­ce­sa­rios­pa­ra­nues­tra
nues­tra­ web,­ di­ri­gién­do­se­ al­ íco­no­ pass­word­ e­ in­gre­- ex­pli­ca­ción­(fi­gu­ra­33).­Ten­ga­en­cuen­ta­que­en­el­ca­-
san­do­la­cla­ve­te­pec26. pí­tu­lo­5­se­ex­pli­ca­có­mo­se­em­plea­el­mPLAB,­“en­tor­no
Pa­ra­ins­ta­lar­el­mPLAB­en­nues­tra­com­pu­ta­do­ra,­co­- de­de­sa­rro­llo”­que­tra­ba­ja­en­con­jun­to­con­el­mPASm
pia­mos­des­de­la­web­el­ar­chi­vo­mPLA­B.e­xe­en­al­gún­lu­- que­aca­ba­mos­de­uti­li­zar.
gar­del­dis­co­rí­gi­do­y­lue­go­ha­ce­mos­do­ble­click­en­él.
Apa­re­ce­rá­la­pan­ta­lla­de­bien­ve­ni­da­que­nos­guia­-
rá­pa­ra­la­ins­ta­la­ción­del­pro­gra­ma­(fi­gu­ra­27).­Se­gui­- cAr­GA DeL PIc
mos­los­pa­sos­que­nos­in­di­ca­el­pro­gra­ma,­pa­ra­ellos,
aprie­te­el­bo­tón­“next”­su­ce­si­va­men­te­(a­me­nos­que­Ud. Ya­te­ne­mos­el­ar­chi­vo­“sem­.hex”,­ne­ce­sa­rio­pa­ra
de­see­cam­biar­al­gu­na­de­las­op­cio­nes­que­allí­se­men­- car­gar­ a­ nues­tro­ PIc.­ Pa­ra­ ha­cer­lo,­ po­de­mos­ uti­li­zar
cio­nan)­ has­ta­ que­ co­mien­ce­ la
ins­ta­la­ción­ del­ pro­gra­ma­ co­mo Figura 26
se­mues­tra­en­la­fi­gu­ra­28.
Ter­mi­na­da­ la­ ins­ta­la­ción,­ el
pro­gra­ma­nos­pre­gun­ta­rá­si­que­-
re­mos­leer­in­for­ma­ción­im­por­tan­-
te­(se­lec­cio­na­mos­la­op­ción­que
nos­in­te­re­se)­y­por­úl­ti­mo­nos­di­-
rá­que­la­ins­ta­la­ción­ha­fi­na­li­za­-
do­(fi­gu­ra­29),­acep­ta­mos­y­nos
pe­di­rá­que­rei­ni­cie­mos­la­Pc,­lo
cual­de­be­re­mos­ha­cer.
Lue­go,­abri­mos­el­pro­gra­ma
tal­ co­mo­ mues­tra­ la­ fi­gu­ra­ 30
(Ini­cio/Ar­chi­vo­ de­ Pro­gra­mas­-
/mi­cro­chip­ mPLAB/m­PASm­ for
Win­dows).
Apa­re­ce­rá­ la­ pan­ta­lla­ del
mPASm­(fi­gu­ra­31)­y­se­lec­cio­na­-
mos­ el­ bo­tón­ “BroW­Se”­ pa­ra
bus­car­ el­ ar­chi­vo­ “se­m.asm”­ (fi­-
gu­ra­32).­Lue­go­pul­sa­mos­el­bo­-
tón­ “AS­Sem­BLe”­ (si­ sa­be­ ma­ne­-
jar­el­mPASm­pue­de­se­lec­cio­nar
las­op­cio­nes­de­su­agra­do,­si­no

Figura 27

Figura 28

59
cual­quie­ra­ de­ los­ car­ga­do­res­ des­crip­tos­ en­ di­fe­ren­tes
opor­tu­ni­da­des.
no­so­tros­ em­plea­re­mos­ el­ QUArK­ Pro­ 2­ (fi­gu­ra
34)­ que­ em­plea­ el­ pro­gra­ma­ Ic­ProG­ co­mo­ in­ter­fa­se
de­pro­gra­ma­ción,­por­lo­tan­to,­con­la­cla­ve­te­pec26­ba­-
ja­mos­el­pro­gra­ma­de­la­pá­gi­na­de­con­te­ni­dos­es­pe­cia­-
les­de­www­.we­be­lec­tro­ni­ca­.co­m.ar,­lo­co­pia­mos­en­el
dis­co­du­ro­de­nues­tra­com­pu­ta­do­ra,­lo­des­com­pri­mi­mos
y­lo­ins­ta­la­mos­si­guien­do­las­ins­truc­cio­nes­que­se­in­di­-
can­du­ran­te­el­pro­ce­so.
Lue­go­ eje­cu­ta­mos­ el­ pro­gra­ma­ y­ de­be­re­mos­ rea­li­-
Figura 29 zar­una­pe­que­ña­con­fi­gu­ra­ción­(si­no­en­tien­de,­de­je­to­-
do­co­mo­es­tá),­al­con­cluir,­apa­re­ce­rá­la­ima­gen­de­la
fi­gu­ra­35.­Se­ob­ser­va­rán­dos­cua­dros­con­nú­me­ros.­el
cua­dro­su­pe­rior­co­rres­pon­de­al­con­te­ni­do­de­la­me­mo­-
ria­de­pro­gra­ma­(ca­da­po­si­ción­po­see­el­da­to­“3fff”,
que­ co­rres­pon­de­ l­ bi­na­rio­ “11111111111111”)­ que,
co­mo­co­rres­pon­de,­tie­ne­to­dos­los­bits­en­“1”­de­bi­do­a

Figura 30

Figura 33

Figura 34

Figura 31

Figura 32

Fig. 35

60
4 ? TRABAJANDO?CON?PICS?DESDE?CERO

Figura 37

Figura 36

que­es­tá­bo­rra­da­(no­con­tie­ne­in­for­ma­ción).­el­cua­dro
in­fe­rior­co­rres­pon­de­a­las­64­po­si­cio­nes­de­la­me­mo­ria
li­bre.
en­la­fi­gu­ra­36­po­de­mos­ob­ser­var­qué­con­se­gui­mos
con­la­ba­rra­de­me­nú­del­Ic­ProG­(car­gar­un­ar­chi­vo
pa­ra­pro­gra­ma­el­PIc,­leer­el­PIc,­bo­rrar­lo,­pro­gra­mar­-
lo,­etc.)­ade­más,­po­de­mos­se­lec­cio­nar­la­ope­ra­ción­con
di­fe­ren­tes­com­po­nen­tes,­ya­sea­una­gran­va­rie­dad­de
PIcs­co­mo­mi­cro­con­tro­la­do­res­de­otras­fa­mi­lias,­me­mo­-
rias­ee­Prom,­etc.
Pa­ra­ pro­gra­mar­ al­ PIc,­ abri­mos­ el­ ar­chi­vo­ “sem­-
.hex”­(fi­gu­ra­37).­cuan­do­ha­ya­mos­abier­to­el­ar­chi­vo, Fig. 38
ha­brán­cam­bia­do­los­da­tos­de­la­me­mo­ria­de­pro­gra­-
ma,­tal­co­mo­se­pue­de­ver­en­la­fi­gu­ra­38.
co­nec­ta­mos­ el­ hard­wa­re­ del­ QUArK­ Pro­ 2­ al
puer­to­ se­rie­ de­ nues­tra­ com­pu­ta­do­ra,­ po­ne­mos­ el
PIc16f84­en­el­zó­ca­lo­(ba­se)­co­rres­pon­dien­te,­y­ya­es­-
¿es­di­fí­cil­rea­li­zar­un­pro­gra­ma?
ta­mos­lis­tos­pa­ra­la­úl­ti­ma­par­te­de­nues­tro­pro­yec­to.­en
no,­no­lo­es.­es­más,­en­el­ca­pí­tu­lo­2­de­es­te­li­bro
pri­mer­lu­gar­bo­rra­mos­el­PIc­ha­cien­do­un­click­con­el
ex­pli­ca­mos­có­mo­se­pro­gra­ma­un­PIc,­sin­em­bar­go,­so­-
bo­tón­ iz­quier­do­ del­ mou­se­ so­bre­ el­ íco­no­ co­rres­pon­-
mos­cons­cien­tes­de­que­exis­ten­lec­to­res­que­po­seen­co­-
dien­te­(vea­nue­va­men­te­la­fi­gu­ra­36).­cuan­do­se­ha­ya
no­ci­mien­tos­bá­si­cos­y­por­lo­tan­to­“es­pro­ba­ble”­que­no
bo­rra­do­apa­re­ce­rá­un­car­tel­que­nos­in­di­ca­es­te­es­ta­do.
ha­yan­com­pren­di­do­real­men­te­“qué­es­un­pro­gra­ma”.
Lue­go­pro­gra­ma­mos­el­PIc­cli­can­do­so­bre­el­bo­tón­ade­-
cua­do­de­la­ba­rra­de­me­nú;­nos­pre­gun­ta­si­real­men­te
que­re­mos­pro­gra­mar­el­PIc­a­lo­cual­con­tes­ta­mos­que
sí­y­la­pan­ta­lla­del­Ic­ProG­mos­tra­rá­có­mo­evo­lu­cio­na
la­gra­ba­ción,­au­to­má­ti­ca­men­te­ve­ri­fi­ca­los­da­tos­gra­ba­- Aprendiendo­por­Asociación
dos­y­por­úl­ti­mo­nos­di­ce­que­la­gra­ba­ción­se­com­ple­tó estructura­de­un­Programa
con­éxi­to­(sal­vo­que­ha­ya­mos­co­me­ti­do­un­error).­
De­es­ta­ma­ne­ra­ya­te­ne­mos­el­PIc­gra­ba­do­y­lis­to
pa­ra­co­lo­car­en­el­cir­cui­to­del­se­má­fo­ro.­en­la­fi­gu­ra­39 el­PIc16f84,­co­mo­otros­mi­cro­con­tro­la­do­res­de­la
te­ne­mos­el­PcB­pa­ra­la­pla­ca­de­cir­cui­to­im­pre­so­del­se­- mis­ma­cla­se,­pue­den­pro­gra­mar­se­por­me­dio­de­un­set
má­fo­ro­pre­vis­to­en­la­fi­gu­ra­1.­el­mon­ta­je­es­sen­ci­llo­pe­- re­du­ci­do­de­ins­truc­cio­nes­(son­35­ins­truc­cio­nes,­tal­co­-
ro­re­co­men­da­mos­la­co­lo­ca­ción­de­un­zó­ca­lo­pa­ra­po­- mo­vi­mos­en­el­ca­pí­tu­lo­2).
der­co­lo­car­y­qui­tar­el­PIc­a­los­efec­tos­de­po­der­rea­li­- en­ el­ vi­deo­ To­do­ So­bre­ PIcs­ vo­lu­men­ 1­ (que­ es­tá
zar­di­fe­ren­tes­ex­pe­rien­cias. dis­po­ni­ble­en­ver­sio­nes­VHS,­en­VcD­pa­ra­com­pu­ta­do­-
co­mo­pue­de­apre­ciar,­en­es­te­ca­pí­tu­lo­ex­pli­ca­mos ra­y­en­DVD­pa­ra­re­pro­duc­to­res­ho­ga­re­ños)­y­en­el­li­-
“pa­so­a­pa­so”­có­mo­ob­te­ner­un­PIc­pro­gra­ma­do­des­de bro­mi­cro­con­tro­la­do­res­PIc,­de­edi­to­rial­Quark,­se­ex­-
que­“pen­sa­mos”­en­la­for­ma­en­que­ope­ra­un­se­má­fo­- pli­can­to­das­las­ins­truc­cio­nes­del­set­y­có­mo­es­la­es­truc­-
ro.­ tu­ra­bá­si­ca­de­un­pro­gra­ma,­in­di­can­do­có­mo­se­rea­li­-
De­ la­ mis­ma­ ma­ne­ra,­ po­de­mos­ pro­ce­der­ pa­ra­ la zan­ las­ ope­ra­cio­nes­ en­ for­ma­ grá­fi­ca,­ pa­ra­ que­ sea
ela­bo­ra­ción­ de­ cual­quier­ otro­ pro­yec­to,­ sin­ em­bar­go, com­pren­si­ble,­ sin­ em­bar­go,­ rea­li­za­re­mos­ una­ bre­ve
no­he­mos­“he­cho­un­pro­gra­ma”­da­do­que­és­te­fue­ge­- des­crip­ción­so­bre­la­“es­truc­tu­ra­de­un­pro­gra­ma”­pa­ra
ne­ra­do­por­el­ni­ple;­la­pre­gun­ta­en­ton­ces­es: que­el­lec­tor­“ten­ga­una­idea”­de­có­mo­se­rea­li­za­un 61
pro­gra­ma.­en­di­cho­vi­deo­se­di­ce­que­una­me­mo­ria­es jo­ne­ra­co­rres­pon­de­a­una­po­si­ción­de­me­mo­ria,­el­mi­-
co­mo­una­ca­jo­ne­ra­(fi­gu­ra­40),­ca­da­ca­jón­de­esa­ca­- cro­con­tro­la­dor­en­tien­de­a­la­po­si­ción­de­me­mo­ria­que
no­so­tros­ lla­ma­mos­ “A”
con­un­de­ter­mi­na­do­nú­-
me­ro­ex­pre­sa­do­en­he­-
xa­de­ci­mal­de­no­mi­na­do
po­si­ción­de­me­mo­ria.
en­el­ejem­plo­de­la
fi­gu­ra­ 40­ te­ne­mos­ una
me­mo­ria­de­4­pa­la­bras
(ca­jo­ne­ra­de­4­ca­jo­nes)
y­ ca­da­ pa­la­bra­ pue­de
te­ner­ un­ con­te­ni­do­ ex­-
pre­sa­do­en­bits.
Su­pon­ga­mos­ que
yo­ quie­ro­ su­mar­ el­ nú­-
me­ro­ 5­ con­ el­ nú­me­ro
7­y­de­bo­guar­dar­el­re­-
sul­ta­do­en­una­po­si­ción
de­me­mo­ria.
car­go­el­nú­me­ro­5
en­ la­ po­si­ción­ de­ me­-
mo­ria,­ co­rres­pon­dien­te
a­la­va­ria­ble­“A”­(fi­gu­-
ra­41)­y­el­nú­me­ro­7­lo
car­go­en­la­po­si­ción­de
me­mo­ria­ co­rres­pon­-
dien­te­ a­ “B”­ (fi­gu­ra
42),­ y­ di­go­ que­ voy­ a
Figura 39 su­mar­los­nú­me­ros­en­A
y­B­(fi­gu­ra­43)­y­ex­pre­-
sar­ el­ re­sul­ta­do­ en­ la
uni­dad­c.
Lo­que­ha­ce­la­uni­-
dad­arit­mé­ti­ca­y­ló­gi­ca
es­ su­mar­ el­ con­te­ni­do
de­A­y­B­y­guar­da­el­re­-
sul­ta­do­ don­de­ el­ pro­-
gra­ma­se­lo­in­di­que,­en
es­te­ ca­so­ en­ c­ quie­re
de­cir­que­den­tro­de­esa
po­si­ción­te­ne­mos­el­nú­-
me­ro­ 12­ co­rres­pon­-
dien­te­a­la­su­ma­de­la
va­ria­ble­A­y­B­res­pec­ti­-
va­men­te­(fi­gu­ra­44).
ex­pre­sa­do­ grá­fi­ca­-
men­te­ ve­mos­ una­ me­-
mo­ria­ rAm­ com­pues­ta
de­va­rias­po­si­cio­nes­(fi­-
gu­ra­ 45),­ ob­via­men­te
en­un­mi­cro­con­tro­la­dor
la­ca­pa­ci­dad­de­me­mo­-
ria­es­tá­da­da­por­la­se­-
62 rie­a­la­cual­nos­re­fe­ri­-
4 ? TRABAJANDO?CON?PICS?DESDE?CERO

mos­en­el­PIc­16f84,­te­ne­mos­64­po­si­cio­nes­de­me­mo­- ción­en­tre­los­con­te­ni­dos­de­las­po­si­cio­nes­A­y­B­y­se
ria­y­en­ca­da­uno­de­ellas­se­pue­den­co­lo­car­14­bits. guar­da­el­re­sul­ta­do­en­la­po­si­ción­de­me­mo­ria­co­rres­-
en­nues­tro­ca­so­si­son­los­da­tos­y­te­ne­mos­pa­la­bras pon­dien­te­a­la­va­ria­ble­c­(fi­gu­ra­48).­ma­te­má­ti­ca­men­-
de­8­bits,­en­la­po­si­ción­que­co­rres­pon­de­a­la­va­ria­ble te:
“A”­car­ga­mos­el­nú­me­ro­5­(fi­gu­ra­46),­en­la­po­si­ción
que­ co­rres­pon­de­ a­ la­ va­ria­ble­ B­ el­ nú­me­ro­ 7­ (fi­gu­ra A­+­B­=­c
47),­lue­go,­me­dian­te­la­ins­truc­ción­co­rres­pon­dien­te,­la
ALU­re­ci­be­la­ins­truc­ción­de­su­mar,­y­se­ha­ce­la­ope­ra­-

Figura 43

Figura 40

Figura 44

Figura 41

Figura 45
Figura 42
63
Pe­ro­es­to­no­es­al­go­com­pren­si­ble­por­el­mi­cro­con­- sis­te­mas­ba­sa­dos­en­mi­cro­con­tro­la­do­res­son:
tro­la­dor,­de­be­mos­en­ton­ces­sa­ber­cuál­es­la­es­truc­tu­ra
del­pro­gra­ma,­pa­ra­que­sea­com­pren­si­ble­por­nues­tro *­De­sa­rro­llo­del­soft­wa­re:
con­tro­la­dor,­te­ma­que­se­ex­pli­ca­en­el­vi­deo­To­do­So­- edi­tor­de­Pro­gra­ma.­Hay­mu­chas­for­mas­de­ha­cer
bre­PIcs­1­y­que­tam­bién­ana­li­za­re­mos­en­fu­tu­ras­edi­- un­pro­gra­ma,­no­so­tros­uti­li­za­mos­el­ni­ple­pa­ra­ob­te­ner
cio­nes. un­pro­gra­ma­“.asm”­a­par­tir­de­la­cons­truc­ción­de­un
Lo­que­aca­ba­mos­de­ver­no­es­una­es­truc­tu­ra­com­- dia­gra­ma­de­flu­jo.
pren­si­ble­con­nues­tro­mi­cro­con­tro­la­dor,­ni­si­quie­ra­es­tá en­sam­bla­dor.­La­pro­gra­ma­ción­en­len­gua­je­en­sam­-
ex­pre­sa­do­ de­ for­ma­ tal­ pa­ra­ que­ yo­ lue­go­ pue­da­ en­- bla­dor­pue­de­re­sul­tar­un­tan­to­ar­dua­pa­ra­el­prin­ci­pian­-
sam­blar­lo,­pa­ra­que­sí­lo­com­pren­da­nues­tro­pro­ce­sa­- te,­pe­ro­per­mi­te­de­sa­rro­llar­pro­gra­mas­muy­efi­cien­tes,
dor. ya­que­otor­ga­al­pro­gra­ma­dor­el­do­mi­nio­ab­so­lu­to­del
La­ins­truc­ción­que­per­mi­te­la­su­ma­en­tre­con­te­ni­dos sis­te­ma.­Los­fa­bri­can­tes­sue­len­pro­por­cio­nar­el­pro­gra­-
de­re­gis­tros­(o­po­si­cio­nes­de­me­mo­ria­y­re­gis­tro­W)­es ma­en­sam­bla­dor­de­for­ma­gra­tui­ta­y­en­cual­quier­ca­so
ADDWf­que­sig­ni­fi­ca­ba­que­su­ma­los­con­te­ni­dos­del­re­- siem­pre­ se­ pue­de­ en­con­trar­ una­ ver­sión­ gra­tui­ta­ pa­ra
gis­tro­de­tra­ba­jo­con­los­cie­rres­pen­dien­tes­a­una­va­ria­- los­mi­cro­con­tro­la­do­res­más­po­pu­la­res.­
ble­y­alo­ja­los­re­sul­ta­dos­en­el­con­te­ni­do­de­tra­ba­jo­o no­so­tros­no­he­mos­usa­do­un­en­sam­bla­dor,­sim­ple­-
en­otra­va­ria­ble­(fi­gu­ra­49). men­te­ el­ ni­ple­ ac­tuó­ co­mo­ pro­gra­ma­dor­ y­ en­sam­bla­-
Lo­que­ha­ce­mos­es­su­mar­el­con­te­ni­do­del­re­gis­tro dor­(se­po­dría­ha­ber­em­plea­do­el­mPLAB­pa­ra­en­sam­-
W­con­el­con­te­ni­do­de­la­va­ria­ble­A­que­co­rres­pon­de blar­un­pro­gra­ma­en­su­edi­tor).
a­una­po­si­ción­de­me­mo­ria­y­alo­jar­el­re­sul­ta­do­en­otra com­pi­la­dor. La­pro­gra­ma­ción­en­un­len­gua­je­de­al­-
po­si­ción­de­me­mo­ria­que­no­so­tros­he­mos­de­no­mi­na­do to­ni­vel­(co­mo­el­c)­per­mi­te­dis­mi­nuir­el­tiem­po­de­de­-
r. sa­rro­llo­de­un­pro­duc­to.­no­obs­tan­te,­si­no­se­pro­gra­-
ma­con­cui­da­do,­el­có­di­go­re­sul­tan­te­pue­de­ser­mu­cho
más­ine­fi­cien­te­que­el­pro­gra­ma­do­en­en­sam­bla­dor.­Las
ver­sio­nes­ más­ po­ten­tes­ sue­len­ ser­ muy­ ca­ras,­ aun­que
con­cLU­SIo­neS DeL cA­Pí­TU­Lo 4 pa­ra­los­mi­cro­con­tro­la­do­res­más­po­pu­la­res­pue­den­en­-
con­trar­se­ver­sio­nes­de­mo­li­mi­ta­das­e­in­clu­so­com­pi­la­do­-
Pa­ra­ob­te­ner­un­PIc­“pro­gra­ma­do”­es­pre­ci­so­con­- res­gra­tui­tos.­He­mos­uti­li­za­do­al­mPASm­co­mo­soft­wa­-
tar­con­de­ter­mi­na­dos­re­cur­sos.­Uno­de­los­fac­to­res­que re­ com­pi­la­dor­ pa­ra­ ob­te­ner­ el­ ar­chi­vo­ “.hex”­ a­ par­tir
más­im­por­tan­cia­tie­ne­a­la­ho­ra­de­se­lec­cio­nar­un­mi­- del­ar­chi­vo­“.asm”.
cro­con­tro­la­dor­es­el­so­por­te­tan­to­­de­soft­wa­re­co­mo­de
hard­wa­re­del­que­dis­po­ne­mos.­Un­buen­con­jun­to­de­he­- *­De­sa­rro­llo­del­hard­wa­re:
rra­mien­tas­de­de­sa­rro­llo­pue­de­ser­de­ci­si­vo­en­la­elec­- car­ga­dor o­ Pro­gra­ma­dor: Son­ pla­cas­ ma­ne­ja­das
ción,­ya­que­pue­den­su­po­ner­una­ayu­da­ines­ti­ma­ble­en por­un­pro­gra­ma­que­per­mi­ten­in­tro­du­cir­el­ar­chi­vo­de
el­de­sa­rro­llo­del­pro­yec­to.­ pro­gra­ma­ en­ for­ma­to­ he­xa­de­ci­mal­ a­ la­ me­mo­ria­ ee­-
en­es­te­ca­pí­tu­lo­he­mos­vis­to­có­mo­ob­te­ner­un­pro­- Prom­ del­ mi­cro­con­tro­la­dor.­ Uti­li­za­mos­ pa­ra­ nues­tro
yec­to­ter­mi­na­do­a­par­tir­de­una­idea­“men­tal”­so­bre­el ejem­plo­la­pla­ca­Quark­Pro­2,­con­tro­la­da­por­el­pro­gra­-
fun­cio­na­mien­to­del­apa­ra­to­(en­es­te­ca­so­un­se­má­fo­ro). ma­Ic­ProG.
Las­prin­ci­pa­les­he­rra­mien­tas­de­ayu­da­al­de­sa­rro­llo­de Pla­cas­de­en­tre­na­mien­to. Se­tra­ta­de­pe­que­ños­sis­-

Figura 46
Figura 47
64
4 ? TRABAJANDO?CON?PICS?DESDE?CERO

Figura 48 Figura 49

te­mas­con­un­mi­cro­con­tro­la­dor­ya­mon­ta­do­y­que­sue­- mo­ria­del­mi­cro­con­tro­la­dor,­pue­de­per­mi­tir­en­cual­quier
len­co­nec­tar­se­a­una­Pc­des­de­la­que­se­car­gan­los­pro­- mo­men­to­rea­li­zar­eje­cu­ción­pa­so­a­pa­so,­mo­ni­to­ri­zar­el
gra­mas­que­se­eje­cu­tan­en­el­mi­cro­con­tro­la­dor.­Las­pla­- es­ta­do­del­mi­cro­con­tro­la­dor­o­mo­di­fi­car­los­va­lo­res­al­-
cas­sue­len­in­cluir­vi­sua­li­za­do­res­LcD,­te­cla­dos,­LeDs,­fá­- ma­ce­na­dos­los­re­gis­tros­o­en­la­me­mo­ria.­en­nues­tro­ca­-
cil­ac­ce­so­a­los­pi­nes­de­e/S,­etc.­el­sis­te­ma­ope­ra­ti­vo so,­no­he­mos­em­plea­do­pla­ca­de­en­tre­na­mien­to,­da­do
de­la­pla­ca­re­ci­be­el­nom­bre­de­pro­gra­ma­mo­ni­tor.­el que­di­mos­el­pro­yec­to­PcB­del­se­má­fo­ro­pa­ra­que­po­-
pro­gra­ma­ mo­ni­tor­ de­ al­gu­nas­ pla­cas­ de­ eva­lua­ción, da­mos­ “pro­bar”­ di­rec­ta­men­te,­ el­ com­por­ta­mien­to­ del
apar­te­de­per­mi­tir­car­gar­pro­gra­mas­y­da­tos­en­la­me­- PIc­pro­gra­ma­do.­­­­­­­­­************************

65
3ª de forros.qxd:sumario 223 21/11/13 18:12 Página 3ªFo1
EDI CI NY SI MU LA CI N * Ma ne jar el es cri to rio MPLAB
* Crear un nue vo ar chi vo de c di go fuen te pa ra
DE PRO GRA MAS el en sam ble e in gre sar lo a un nue vo pro yec to pa ra
el 16F84
* Iden ti fi car y co rre gir los erro res sim ples
MPLAB es un entorno de desarrollo integrado que le * Eje cu tar el si mu la dor in ter no
permite escribir, codificar, simular y emular programas
para los microcontroladores PIC de Microchip. El MPLAB Para que Ud. aprenda a programar sus microcontro-
incluye un editor de texto, funciones para el manejo de ladores, damos a continuación, paso a paso, las instruc-
proyectos, un simulador interno y una variedad de herra- ciones de instalación y uso de la aplicación:
mientas que lo ayudarán a mantener y ejecutar su apli-
cación. También provee una interfase de usuario para
todos los productos con lenguaje Microchip, programa- INS TA LA CI N
dores de dispositivos, sistemas emuladores y herramien-
Descargue los archivos del software de instalación y
tas de tercer orden.
ejecute el archivos correspondientes al programa. Estos
Posee varias versiones y es posible “conseguir” la
archivos puede obtenerlos por medio de Internet en la di-
versión 4.0 que está diseñada para ser ejecutada bajo
rección:
Windows 3.11, y puede operar con Windows 95, 98 o
versiiones actuales con características superiores y ca-
http//www .mi cro chip .com
paz de correr en Windows XP (vea www.microchip-
.com). Nosotros haremos este “manual de aplicación”
Si bien la empresa “actualiza” periódicamente su
haciendo uso de las tres versiones, para que note que es
página, no tendrá inconvenientes en “encontrar” los ar-
posible aplicar cualquiera de ellas para los alcances de
chivos para descargar. En la figura 1 podemos ver la
este libro. Asume que el usuario ya conoce el entorno de
imagen correspondiente a la página web de Microchip
Windows y sabe manejarlo. La guía que describimos le
al momento de escribir este texto. Note que en la segun-
permitirá realizar las siguientes tareas:
67
da columna tiene la posibilidad
de acceder al sitio correspon-
diente a la opción “MPLAB®I-
DE”. Al hacer click en dicho
ítem, se despliega la pantalla de
la figura 2.
Luego, elija la opción
“MPLAB®IDE v6.50” y lo lleva-
rá al sitio de descarga del pro-
grama. Este programa está com-
primido y tiene un peso 34MB
por lo cual la descarga le lleva-
rá un tiempo bastante amplio,
especialmente si se conecta a In-
Figura 1 ternet por medio de la línea tele-
fónica. Sin embargo, tiene la
posibilidad de “bajar” versiones
anteriores de menor peso y que
le permitirán trabajar sin incon-
venientes. Por ejemplo, la ver-
sión 4.1 tiene un peso inferior a
los 9MB y ya está subidividido
en archivos que puede copiar
en disquetes en caso de que Ud.
desee bajar estos archivos des-
de un cyber café.
Si Ud. baja la versión 6.51
o superior, cópiela al disco rígi-
do de su computadora (en la fi-
gura 3 puede ver el archivo que
debe bajar desde el sitio de Mi-
crochip), descomprímalo con el
Winzip, ejecute el archivo co-
rrespondiente y siga las instruc-
Figura 2
ciones de pantalla. En la figura
4 puede ver una imagen corres-
pondiente a esta versión ejecuta-
da y con sus ventanas desplega-
das.
A los fines prácticos, y res-
petando a todos aquellos que
Figura 3
poseen computadoras con unos
cuántos años, explicaremos el
manejo del PMLAB en su versión
4.0, teniendo en cuenta que las
versiones posteriores se mane-
jan de forma similar y que, las
modificaciones introducidas en
las versiones superiores, no se
utilizan para las aplicaciones
que son objeto de esta obra.
Recuerde que, cuando con-
siga la versión 4.1, puede trans-
ferir los archivos a disquetes si
68 desea instalar el MPLAB en otra
5 ? MANEJO?DEL?MPLAB

Figura 4

computadora. De acuerdo a la versión que haya descar- programador o emulador del dispositivo, sólo debiera
gado, los nombres de los archivos pueden variar leve- instalar las siguientes herramientas del software:
mente. Por ejemplo, la versión 4.00 del MPLAB tendría
los siguientes archivos: Ar chi vos MPLAB IDE
Ar chi vos MPASM/M PLINK/M PLIB
MP40000.E XE Ar chi vos de Pro tec ci n del Si mu la dor MPLAB?
MP 40000.WO2 SIM
MP 40000.WO3 Ar chi vos de Ayu da
MP 40000.WO4
MP 40000.WO5
MP 40000.WO6
Figura 5
Si Ud. lo prefiere, puede dirigirse
a nuestra web: www.webelectronica-
.com.ar y con la clave: tepec26 en-
contrará los links para acceder a dife-
rentes versiones del MPLAB.
En el caso de obtener la versión
4.00, copie el contenido de los 6 dis-
quetes en el disco rígido de su PC (en
un lugar que pueda identificar).
Cuando ejecute el archivo MPLA-
B.exe, comenzará la instalación del
MPLAB en su sistema. Seguidamente
deberá elegir los componentes del
MPLAB que desea instalar en su siste-
ma. A menos que haya comprado un 69
los todos (por defecto). Al hacer
“doble click” en MP40000.EXE,
el instalador le va diciendo lo
que debe hacer. Luego de insta-
Figura 6
larlos, ejecute MPLAB.EXE o cli-
que el ícono MPLAB para iniciar
el sistema.
Aparecerá el escritorio del
MPLAB (figura 6).

Con fi gu rar el Mo do
de De sa rro llo
Cuando ejecute el progra-
ma MPLAB, verá que su escrito-
rio básico se asemeja al de las
aplicaciones de Windows (co-
mo pudo ver en la pantalla de
la figura 6, que muestra el escri-
torio de la versión 5.6). Tiene
Luego aparecerá el menú de la figura 5 que le per- una barra de menú en el margen superior, una barra de
mitirá seleccionar los componentes de lenguaje Micro- herramientas y también una barra de estado en el mar-
chip que desee instalar. Usualmente debiera seleccionar- gen inferior. Podrá advertir que la barra de esta-
do incluye información sobre cómo se ha configu-
rado el sistema.
No ta: El "mo do de de sa rro de termina
llo"
la herramienta, debe elegir alguna, que ejecutará
el código. Para esta guía, usaremos el simulador
de software MPLAB?SIM . Si sabe del tema y tie-
ne un emulador, en este capítulo encontrará más
información para cambiar a una de sus operacio-
nes. Al seleccionar el ítem del menú "Op cio ?
nes >Mo do de De sa rro , apa recerá una ca-
llo"
ja de diálogo semejante a la de la figura 7.
El MPLAB es un producto en constante evolu-
ción, de modo que pueden aparecer sutiles dife-
Figura 7
rencias entre la pantalla que usted vea y la que
mostramos aquí. Seleccione el
ícono próximo al Simulador
MPLAB-SIM (MPLAB-SIM Simula-
tor) y elija 16F84 (que corres-
ponde a un tipo de PIC) en la lis-
ta de procesadores disponibles
que pueden ser resistidos por el
simulador. Clique 16F84 y lue-
go presione el botón "Re set" .
De este modo se iniciará el simu-
lador, y debería aparecer en la
barra de estado "16F84" y
"Sim". Se encuentra así en el
modo simulador para el 16F84.

Figura 8 C mo Crear un
Pro yec to Sim ple
El simulador se ejecutará
desde el mismo archivo, llama-
70
5 ? MANEJO?DEL?MPLAB

do "ar chi vo hex" , el cual pue-


de ser programado en el micro
PIC. Para que se ejecute el simu-
lador, primero deberá crear un
archivo de código fuente y reali-
zar el montaje del código fuente.
A continuación explicare-
mos cómo llevar a cabo este pro-
ceso:
No ta: El lenguaje ensambla-
dor produce, entre otros elemen-
tos, un archivo hex. Este archivo
tiene la extensión (.hex). A este
archivo lo llamaremos:

ejem plo .hex. Figura 9

Más adelante este archivo


puede ser cargado directamente
en el programador del dispositivo sin usar el ensambla- Los proyectos le dan la flexibilidad para describir có-
dor o un proyecto del MPLAB. Este archivo también pue- mo se construirá la aplicación y qué herramientas se usa-
de ser cargado por otros programadores de tercer or- rán para crear el archivo .hex. Obviamente, en la guía
den. nos ocuparemos de todos estos detalles.
Seleccione "Ar chi vo >Nue vo (Fi le en el
>New)" El diálogo "Edi tar Pro yecseto" rá semejante al
menú y aparecerá la caja de diálogo de la figura 8. mostrado en la figura 10.
Clique en el botón S , seguidamente aparecerá un Advierta que el nombre del archivo de destino ya ha
diálogo de exploración de Windows estándar. Decida sido completado. Ya conoce el modo de desarrollo que
dónde desea crear su proyecto (en qué carpeta o lugar configuramos previamente y asume que usaremos la se-
de su disco rígido lo va a guardar) y recuerde dónde lo rie de herramientas de lenguaje Microchip. En la venta-
ubicó. Más tarde necesitará esta información. Esta guía na "Ar chi vos de Pro yec to (Fi les, en conyect)"
pro -
usa un directorio en c: \ar chi vo\M PLAB y crea el ar- trará ejem plo. [hex]. Al destacar este nombre, se po-
chivo de proyecto llamado ejem plo.pjt (figura 9). drá utilizar el ícono "Pro pie da des del No do (No de
"PJT"es el sufijo estándar para los archivos de proyec- Pro per ties)" . Seguidamente debe indicarle al MPLAB
tos en el MPLAB. có mo crear el archivo hex. Hágalo clicando el botón
El prefijo del nombre de ar-
chivo del proyecto, en este caso
"ejemplo", será el prefijo por de-
fecto de muchos de los archivos
que el MPLAB usará o creará pa-
ra esta guía. Clique "Acep tar
(OK)" para que aparezca el
diálogo Proyecto MPLAB. Este
diálogo puede parecer confuso,
pero en realidad es muy simple.
No ta:El simulador, los pro-
gramadores y los sistemas emu-
ladores que operan con el
MPLAB usan un archivo hex
creado por el ensamble, la com-
pilación y/o el “linking” del có-
digo fuente. Algunas herramien- Figura 10
tas diferentes pueden crear ar-
chivos hex, al tener en cuenta
que estas herramientas formarán
parte de cada proyecto. 71
"Propiedades del Nodo". Aparece-
rá el diálogo "Propiedades del No-
do". Este diálogo contiene todas
las configuraciones por defecto pa-
ra la herramienta de lenguaje -en
este caso MPASM , como podrá
ver en en el ángulo superior dere-
cho del diálogo. En su forma más
simple, el proyecto contiene un ar-
chivo hex creado desde un archivo
fuente de ensamble. Esta será la
configuración por defecto cuando
aparezca el diálogo "Propiedades
del Nodo (Node Properties)", vea
la figura 11.
No ta:Como puede ver, hay
Figura 11 una cantidad de filas y columnas
en este diálogo.
Cada fila usualmente corres-
ponde a un "cam bio" , aquellos
elementos que se establecen en la
línea de comando cuando se invo-
ca una herramienta. De hecho, la
configuración de estos cambios se
refleja en la ventana "L nea de
Co man do (co mand li , ne)" pró-
xima al margen inferior de la pan-
talla. Esta es la línea de comando
que se usará cuando se invoque el
MPASM desde el MPLAB. Por el
momento, puede usar las configu-
raciones por defecto, pero cuando
ya sepa construir una aplicación,
probablemente deseará cambiar
algunas.
Figura 12
Al clicar el botón "Acep tar
(OK)", aplicará estas configuracio-
nes, y retornará al diálogo "Edi tar
Pro yec to (Edit Pro con el
ject)",
ícono (botón) "Agre ga No do
(Add No de)"disponible. Presio-
ne el botón "Agre gar No do" .
Figura 13 Aparecerá el diálogo de explora-
ción de Windows estándar (figura
12), con el mismo directorio usado
para el proyecto. Ingrese el nom-
bre de archivo: ejem plo.asmy
presione "Acep tar" . Retornará al
diálogo "Edi tar Pro yec , don
to"-
de podrá ver "ejem plo.asm"
añadido debajo del archivo hex,
que indica que es un nodo concu-
rrente. Al presionar "Acep tar" ,
retornará al escritorio MPLAB con
72 un archivo de código fuente abier-
5 ? MANEJO?DEL?MPLAB

Figura 14
to y aún sin nombre. ingrese el texto de la figura 14, exactamente como está
C mo Crear un Nue vo Ar chi vo Fuen te Simescri pleto en cada línea. No debe ingresar los comentarios
Clique dentro del espacio en blanco de la ventana (los textos que siguen a cada punto y coma).
de archivo creada. Seguramente se llamará "Sin t tu lo Este código es un programa muy simple que incre-
(Un ti tled)". De este modo accederá al "fo co"de la menta un contador y lo "resetea" a un valor predetermi-
ventana. Use la opción de menú "Ar chi vo >Guar dar nado cuando el contador vuelve a cero.
co mo... ", y guarde el archivo vacío como ejem ? No ta: Todos los rótulos comienzan en la primera co-
plo.asm. Cuando abra el diálogo de exploración están- lumna, y la última línea tiene una directiva "end". Las pá-
dar, encontrará su ubicación en el directorio del proyec- ginas de datos del micro PIC contienen información com-
to. Ingrese el nombre de archivo y presione "Acep tar ". pleta sobre instrucciones con ejemplos para su uso.
Vea la figura 13. Guarde el archivo usando la función de menú "Ar?
Ahora estarán disponibles el escritorio MPLAB y la chi vo >Guar dar" (Fi le >Sa ve).
ventana de archivo vacío, pero el nombre de la ventana
de archivo reflejará su nuevo nombre. En sam ble del Ar chi vo Fuen te
No ta: El nombre del archivo fuente y el nombre del El ensamble del archivo puede realizarse de varias
proyecto ("ejemplo" en esta guía) deben ser iguales en maneras. Aquí describiremos un método. Use el ítem de
este tipo de proyectos. Hay otros proyectos de archivo menú "Pro yec to >Cons truir to do (Pro yect >Build
múltiple que usan el “linker” y permiten que el nombre All)" . De este modo ejecutará el lenguaje ensamblador
del archivo de salida sea diferente al del archivo de en- MPASM en el trasfondo usando las configuraciones
trada (hay una guía aparte para los proyectos de archi- guardadas con el proyecto anteriormente. Una vez com-
vos múltiples que usan el linker). pletado el proceso de ensamble, aparecerá la ventana
"Re sul ta dos de Cons truc ci n (Build (fiRe - sults"
El MPASM siempre creará un archivo hex de salida gura 15):
con el mismo nombre que el archivo fuente, y esta confi- Ha ingresado intencionalmente al menos “un error”
guración no puede modificarse. Si cambia el nombre si ingresó el código tal como lo hemos escrito en el pa-
del archivo fuente, también deberá cambiar el nombre so anterior. El último "goto" en el programa refiere a un
del proyecto. Ahora ya
está listo para escribir el
código que almacenará
en el PIC para que cumpla
una función determinada.

In gre sar el C di go
Fuen te
Use el mouse para
ubicar el cursor al comien-
zo de la ventana de archi-
vo vacío ejem plo.asm ,e Figura 15
73
rá destacada con
una barra oscura.
También advertirá
que en la barra
de estado, la PC
se establecerá en
0x00.
Use el ítem de
menú "De bu?
g>E je cu tar ?
>Pa so (De bu ?
Figura 16 g>Run>s tep)"
(figura 17). Al ha-
cerlo, el contador
del programa
rótulo inexistente llamado "bug". Dado que este rótulo avanzará hasta la siguiente ubicación de instrucción. La
no ha sido definido previamente, el lenguaje ensambla- barra oscura seguirá el código fuente y el contador del
dor informará el error. También podría relevar otros programa desplegado en la barra de estado avanzará
errores. hasta "4".
Ha ga un do ble click so bre el men sa je deCuando ejecute el ítem de menú "Debug>Ejecutar-
error. De este modo ubicará el cursor en la línea que >Paso", advierta la aparición de un texto en el lado de-
contiene el error en el código fuente. Cambie "bug" por recho del ítem de menú que dirá "F7". El mismo equiva-
"start". Use la ventana "Re sul ta dos de cons truc leci a "te
n cla de función siete" en su teclado. Muchas fun-
(Build Re sults)" para hacer una búsqueda de errores, ciones del MPLAB se asignan a "teclas-especiales". Estas
y reparar los que aparecieran en el código fuente. Reen- teclas cumplen la misma función que los ítems de menú
samble el archivo ejecutando la función de menú "Pro? a los cuales corresponden. Presione F7 varias veces y ve-
yec to >Cons truir to . Esdo"
te procedimiento puede rá cómo el contador del programa y la barra avanzan a
demandar un par de repeticiones. través del programa.
No ta:Cuando reconstruya un proyecto, todos sus Ejecute el ítem de menú "De bu g>E je cu ta? r>E je
archivos fuente serán guardados en el disco. cu tar (De bu g>Run >Run)" o presione F9 para inciar
Luego de reparar todos los problemas en el código la ejecución del programa desde la ubicación actual del
fuente, la ventana "Resultados de construcción" mostra- contador. Los colores de la barra de estado cambiarán,
rá el mensaje "Cons truc ci n com ple ta da ?exi pa tora sa
indicar que el programa está ejecutando las ins-
men te (Build com ple ted suc cess .fully)" Ya ha trucciones. Ninguno de los campos de la barra de esta-
completado un proyecto que puede ejecutarse usando el do se actualizará mientras el programa esté en ejecu-
simulador (figura 16). ción.
Detenga el programa ejecutando el ítem de menú
Eje cu ci n de su Pro gra ma "De bu g>Run >Halt (de te oner)" presionando F5. La
Cierre la ventana “resultados de la construcción” y barra de estado volverá a su color original, y el conta-
haga "De bu g>E je cu ta r>Re set (De bu ?g>Run dor >Re
del programa y otras informaciones de su estado se-
set)"para iniciar el sistema. El contador del programa rán actualizadas.
se reseteará a cero, que es el vector de reset en el No ta: Otra manera de ejecutar funciones es usar la
16F84. La línea del código fuente en esta dirección se- barra de herramientas ubicada en el margen supe-
rior de la pantalla. Si ubica el cursor sobre los ítems
de la barra de herramientas, podrá ver el nombre
de su función en la barra de estado. El botón de la
izquierda es un botón estándar "cam biar ba rra
de he rra mien tas (chan ge tool que le
bar)"
permite desplegar las barras de herramientas dispo-
nibles. Estas pueden ser personalizadas, como po-
drá advertirlo en la sección "Algunas Sugerencias"
al final de esta guía. En la barra de herramientas
de Debug, la luz verde es equivalente a F9 (Ejecu-
ción) y la luz roja equivale a F5 (Detención).
Figura 17 Hasta aquí, aprendió a instalar el programa y
74
5 ? MANEJO?DEL?MPLAB

crear un archivo para apren der a pro gra mar . Di- tualiza la ventana de observación mientras el valor del
mos un ejemplo de programación y ya sabemos cómo contador se incrementa. Si dejó la ventana de registro
co rrer el pro gra ma en lapaPC ra saber si todo de archivo abierta, la misma también será actualizada
está bien, antes de escribir dicho programa en nuestro (mueva una de ellas para que pueda ver las dos en la
PIC. Sin embargo, cuando los programas son más lar- pantalla).
gos, es posible cometer errores que pueden ser evitados. Puede guardar la ventana de observación y sus con-
A continuación explicamos el procedimiento. figuraciones al ejecutar el ítem "Guar dar ob ser va ci n
(Sa ve Watch)" debajo del botón del sistema, ubicado
Abrir Otras Ven ta nas en el ángulo superior izquierdo de la ventana de obser-
Pa ra el Se gui mien to de Erro res vación. Al clicar este botón, se desplegará un menú en
Hay muchas maneras de visualizar el programa y su cascada. Seleccione "Guardar observación" y aparece-
ejecución usando el MPLAB. Por ejemplo, este programa rá el diálogo de exploración estándar ubicado en el di-
está destinado a incrementar un contador temporario pe- rectorio del proyecto. Elija algún nombre arbitrario y
ro, c mo pue de ase gu rar se que se es?t pre prosiodu
ne "Aceptar (OK)".
cien do di cho in cre Una menma nera es abrir e ins-
to? Si no nombra la ventana de observación, el MPLAB
peccionar una ventana de registro de archivo. Puede ha- lo hará por usted. La ubicación y el estado en la panta-
cerlo ejecutando el ítem de menú "Ven ta na >re? gislla de la ventana abierta o cerrada serán guardados con
tros de ar chi vo (Win dow >Fi le Re . Apa
gisre- ter)"
el proyecto, de modo que la próxima vez que abra su
cerá una pequeña ventana con todos los registros de ar- proyecto, sus ventanas de observación aparecerán res-
chivo o el RAM del 16F84. tauradas.
Presione F7 (ejecute instrucción por instrucción, si No ta:También puede editar ventanas de observa-
piensa anularlo) varias veces, y observe la actualización ción luego de crearlas. Use el botón del sistema y selec-
de valores en la ventana de registro de archivo. cione "Agre gar Ob ser va ci n (Add Watch)" para
Hemos colocado la variable del contador en la ubi- que aparezca un diálogo mediante el cual podrá agre-
cación de dirección 0x0C. Mientras el contador tempo- gar más ítems. Con la tecla "Ins"podrá hacer lo mismo.
rario se incremente, este incremento se reflejará en la Si desea borrar un ítem, selecciónelo y presione la tecla
ventana de registro de archivo. Los registros de archivo Suprimir (Delete); la observación referida desaparecerá
cambian de color cuando su valor cambia, de modo que de la ventana. Puede seleccionar "Edi tar ob ser va ci n
los cambios puedan advertirse fácilmente en la inspec- (Edit Watch)" en el menú del sistema para cambiar el
ción. De todos modos, en muchos programas complejos, modo en el cual se muestra el ítem (en hex, binario, co-
varios valores pueden cambiar, así resultará más difícil mo una variable de 16-bit en vez de 8-bit, etc.).
focalizar las variables que le interesan. Usando una ven-
tana de observación especial, este problema puede so- C mo se Mar ca un Pun to de In te rrup ci n
lucionarse.
Ahora, ya sabemos mejor qué es lo que estamos ha-
ciendo:

Pro gra ma mos al go que in cre men ta en 1


ca da vez que vie ne una se al y po de? mos ve
ri fi car lo vir tual men te, an tes de pro gra mar el
PIC.

Crea ci n de una Ven ta na de Ob ser va ci n

Ejecute el ítem de menú "Ven ta na >Nue va ven ? ta Figura 18


na de ob ser va ci n (Win dow >New Watch? Win
dow)". Aparecerá el diálogo "Agregar Símbolo de Ob- Figura 19
servación (Add Watch Symbol)" (figura 18). Tipee "c1"
en la caja de nombre de símbolo para que la lista se
despliegue hasta el símbolo deseado. Selecciónelo, pre-
sione el botón "Agre gar (Add)" , y luego el botón
"Ce rrar (Clo .se)" Aparecerá en su escritorio MPLAB
una ventana de observación que mostrará el valor actual
del valor "c1" del contador temporario.
Presione F7 varias veces para advertir cómo se ac-
75
Presione F5 ("Debug>Ejecutar>Detener") para ase- res, siempre elija el primer error —generalmente un error
gurarse que el procesador del simulador se ha detenido. causa errores subsiguientes y al reparar el primero corre-
Clique dentro de la ventana del código fuente la línea si- girá los restantes.
guiente al rótulo "start", que dice "movlw 0'09'". Presio- CONFIGURACIóN DE BITS Y EL MODO DEL PROCESADOR - La
ne el botón derecho del mouse para que aparezca el configuración de bits en el archivo fuente no determina-
menú de la figura 19. rá el modo del procesador para el simulador (o los emu-
Clique el ítem de menú "Pun to(s) de in te? rrup ladores).
ci n (Break Point)" . El menú desaparecerá y la línea Use "Opciones>Configurar Procesador>Hardware
donde se ubicó el cursor cambiará de color, para indi- (Options>Procesor Setup>Hardware)" para estas confi-
car que ha sido establecido un punto de interrupción en guraciones. Aún cuando puede establecer estos bits en
dicha ubicación. Presione F6 o ejecute el ítem de menú el archivo fuente del MPASM o del MPLAB-C17, el
"De bu g>E je cu ta r>Re set (De bu g>Run >Re MPLAB
set)" no cambia automáticamente los modos. Por
para resetear el sistema. Luego, presionando F9, ejecu- ejemplo, la configuración de bit Activar Observación de
te el sistema. El programa se ejecutará y se detendrá en Dog Timer puede hacerse de tal modo que, cuando pro-
la instrucción ubicada luego del punto de interrupción. grame un dispositivo, el Dog Timer sea activado. En el
"c1", como aparece en la ventana de observación o en MPLAB también necesitará acceder al diálogo "Opcio-
la de registro de archivo, si la tiene aún abierta, refleja- nes>Configurar Procesador>Hardware" para activar el
rá el estado reset de cero, el modo instrucción por ins- WDT para el simulador o el emulador. Esto le permitirá
trucción ejecutará la carga y c1 luego reflejará un valor hacer un seguimiento de errores con el WDT activado o
de 0x09. Presione F9 varias veces y advierta que la ba- desactivado sin cambiar su código fuente.
rra de estado cambia de color mientras el programa se
esté ejecutando, y luego retorna a su color original cuan-
do el procesador se detiene.

Al gu nas Su ge ren cias:


PUNTOS DE INTERRUPCION - Puede marcar puntos de in-
Con clu sio nes del Ca p tu lo 5
terrupción en la ventana "Ventanas>Memoria de progra- El MPLAB, entorno de desarrollo de Micropchip, re-
ma (Windows>Program Memory)", en la ventana de ar- sulta una herramienta sumamente útil para editar, simu-
chivo fuente (en este caso ejemplo.asm), o en la ventana lar y compilar programas que serán cargados en los mi-
"Ventanas>Listado Absoluto (Windows>Absolute)". crocontroladores.
ARCHIVOS FUENTE - Use "Ventana>Ventana de Proyec- Existen diferentes versiones de este programa confor-
to (Window>Projet Window)" para que aparezca una mes a las actualizaciones que se le practican. A los efec-
lista de sus archivos fuente. Puede hacer un doble click tos de realizar operaciones básicas, como las que se
sobre el nombre de un archivo para trasladarlo al editor. describen en este libro, cualquiera de las versiones sirve.
ERRORES MPASM - Si el MPASM le da un error, haga La explicación sobre el uso del MPLAB que acaba-
un doble click sobre el error en la ventana de error pa- mos de brindar puede aplicarse a cualquier versión com-
ra ir al error en el código fuente. Si tiene múltiples erro- prendida entre la 4.0 y la 6.5. *************

76
3ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1
4ª forros.qxd:Maquetación 1 15/01/14 12:45 Página 1

También podría gustarte