Microcontroladores PIC Diseño Practico de Aplicaciones Primera Parte 3ra Edicion José M. Angulo Usateguie
Microcontroladores PIC Diseño Practico de Aplicaciones Primera Parte 3ra Edicion José M. Angulo Usateguie
Microcontroladores PIC Diseño Practico de Aplicaciones Primera Parte 3ra Edicion José M. Angulo Usateguie
Tercera edicin
http://librosysolucionarios.net
MICROCONTROLADORES PIC
Diseo prctico
de aplicaciones
Primera parte. El PIC16F84
Lenguajes PBASIC y Ensamblador
Tercera edicin
http://librosysolucionarios.net
El software contenido en el CD destinado a la edicin, ensamblage, simulacin
y depuracin de programas son propiedad de sus respectivos fabricantes:
Microchip Technology Inc., Parallax Inc. e Ingeniera de Microsistemas
Programados S.L. El simulador SIM2000 es propiedad de los autores.
ISBN: 84-481-3788-4
Depsito legal: M. 16.641-2003
http://librosysolucionarios.net
Prlogo .............................................................. XIII
v
http://librosysolucionarios.net
vi CONTENIDO
http://librosysolucionarios.net
CONTENIDO vii
http://librosysolucionarios.net
viii CONTENIDO
http://librosysolucionarios.net
CONTENIDO i x
http://librosysolucionarios.net
x CONTENIDO
http://librosysolucionarios.net
CONTENIDO Xi
Apndice B: Gua del usuario del SIM2000 . ............. . ........ . ...... . . 255
Apndice C: Breve descripcin del Micro'PIC Trainer ..... . .... . .......... . . 257
Apndice D: La familia PIC al completo .......... . ........................ 265
Apndice E: Contenido del CD .......... . ............................. ... 273
http://librosysolucionarios.net
Los microcontroladores estn conquistando el mundo. Estn presentes en nuestro trabajo, en
nuestra casa y en nuestra vida, en general. Se pueden encontrar controlando el funcionamien-
to de los ratones y teclados de los computadores, en los telfonos y en los hornos microondas
y los televisores de nuestro hogar. Pero la invasin acaba de comenzar y los albores del siglo
xxi sern testigos de la conquista masiva de estos diminutos computadores, que gobernarn la
mayor parte de los aparatos que fabricamos y usamos los humanos.
Las extensas reas de aplicacin de los microcontroladores, que se pueden considerar ili-
mitadas, exigirn un gigantesco trabajo de diseo y fabricacin.
Aprender a manejar y aplicar microcontroladores slo se consigue desarrollando prctica-
mente diseos reales. Sucede lo mismo que con cualquier instrumento musical, cualquier de-
porte y con muchas actividades.
El objetivo primordial que nos ha movido al escribir este libro es facilitar el camino al
lector para que se entusiasme y utilice los microcontroladores, por eso est plagado de pro-
gramas para confeccionar y simular, as como de proyectos reales para manejo de los perif-
ricos tpicos.
La filosofa y el mtodo que hemos empleado nos ha dado excelentes resultados en nues-
tros entornos de trabajo. Un autor es profesor y ensea los microcontroladores en la universi-
dad, y el otro tambin los aplica en los proyectos que dirige en una empresa. Se trata de des-
cribir un modelo simple de microcontrolador de manera lo suficientemente clara para que el
lector quiera usarlo. Cuando se conoce un modelo y se han desarrollado proyectos sencillos, es
inmediato pasar a manejar otros microcontroladores y acometer complejos diseos. En ese
momento, las posibilidades slo estn limitadas por la imaginacin y la capacidad de trabajo.
Esta obra consta de dos libros. Hemos elegido para ambos una familia de microcontro-
ladores: los PIC de Microchip Technology Inc. Dentro de ella seleccionamos un modelo
concreto para la primera parte: el PIC16F84. Las razones que nos han empujado a esta de-
cisin es que este microcontrolador es sencillo, moderno, rpido, barato y en l se pueden es-
cribir los programas y borrarlos montones de veces, dispone de una excelente documentacin
y las herramientas de desarrollo son asequibles para todos los bolsillos. Hay millares de apli-
caciones realizadas con el PIC 16F84 en todo el mundo.
Para dar consistencia a nuestro inters por la experimentacin, el libro incluye un CD que
contiene varios tutoriales, un simulador y los programas necesarios para editar, ensamblar,
xi
http://librosysolucionarios.net
xiv PRLOGO
depurar y simular todos los ejercicios y proyectos que se proponen en el texto y que se hallan
resueltos. Adems, para que el lector no encuentre una barrera en el coste de las herramien-
tas, se han elegido aquellas que por su precio se acomodan a cualquier presupuesto.
En esta nueva edicin se ha modificado el contenido y la estructura de los captulos de
esta primera parte de iniciacin que es la que tiene entre sus manos. Se ha enfocado preferen-
temente a estudiar terica y prcticamente al PIC16F84, modelo que ha logrado un xito a ni-
vel mundial. Adems, se ha intentado ofrecer un solo tema en cada captulo y proporcionar
programas, diseos y manejo de herramientas una vez presentados los conceptos tericos pre-
vios. El libro que conforma la segunda parte de esta obra se destina a los microcontroladores
PIC 16F87X, de mayor complejidad, que exigen el uso de herramientas ms avanzadas y se
utilizan en aplicaciones mucho ms exigentes.
En el Captulo 1 se describen las caractersticas generales del hardware y software que en-
vuelven a los microcontroladores en general y sus aplicaciones. El Captulo 2 se dedica a pre-
sentar las gamas de microcontroladores PIC y las razones por las que se les ha elegido en esta
obra. Una importante novedad la constituyen los Captulos 3 y 4 que contienen todo el material
preciso para conocer, manejar y programar los mdulos de Parallax con el lenguaje PBASIC,
el ms fcil del mundo. Consideramos que este acercamiento al diseo con microcontrola-
dores pone en manos de las personas con escasos conocimientos de Electrnica e Informtica
un camino sencillo y apropiado. Mediante los mdulos BASIC Stamp se ensea a desarrollar
experiencias al alcance de todos. El Captulo 5 toma el primer contacto con el PIC16F84 y pre-
senta los circuitos bsicos que le rodean, destinando el Captulo 6 a la arquitectura interna.
En el 7 se describen los recursos fundamentales: temporizadores, puertas de E/S y EEPROM.
El Captulo 8 expone el manejo de las interrupciones y de algunos circuitos auxiliares. El
repertorio de instrucciones con ejercicios de manejo se analiza en el Captulo 9. En el 10 se
muestran las herramientas ms comunes para el uso de microcontroladores y la implementa-
cin de proyectos. El Captulo 11 ensea a programar aplicaciones en Ensamblador de una for-
ma clara y progresiva y el 12 ofrece una coleccin de prcticas reales de carcter didctico que
son muy asequibles.
Como complemento a los 12 captulos, en la parte final del libro, existen varios apndices
muy tiles. El A es una gua rpida del PIC 16X84. El B es una gua para el usuario del simu-
lador software SIM2000 que se incluye en el CD del libro y que ha sido cedido por sus autores,
Pablo Martnez y Francisco Jos Hernndez, que lo desarrollaron en la Universidad de Carta-
gena bajo la direccin del profesor Manuel Snchez. El Apndice C explica las caractersticas
y el funcionamiento del sistema de desarrollo Micro'PIC Trainer. El E muestra el contenido
del CD que acompaa al libro y el F propone una coleccin de proyectos clsicos con el
PIC 16F84 para implementar con componentes muy comunes y econmicos. Finalmente hay
una seccin de Bibliografa y de direcciones interesantes para trabajar con PIC y un ndice
Alfabtico.
Gran parte de la informacin ofrecida en el libro se ha obtenido de las documentaciones
tcnicas de Microchip (www.microchip.com), de Parallax (www.parallaxinc.com) y de In-
geniera de Microsistemas Programados, S. L. (www.microcontroladores.com), a quienes
agradecemos su colaboracin.
http://librosysolucionarios.net
1.1. QU ES UN MICROCONTROLADOR?
http://librosysolucionarios.net
2 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
http://librosysolucionarios.net
MICROCONTROLADORES PROGRAMABLES: LA SOLUCIN EST EN UN CHIP 3
de automocin, que los aplica en el control de aspectos tan populares como la climatizacin,
la seguridad y los frenos ABS.
Figura 1.3. Estructura de un sistema abierto basado en un microprocesador. La disponibilidad de los buses
en el exterior- permite que se configure a la medida de la aplicacin.
http://librosysolucionarios.net
4 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
Figura 1.4. El microcontrolador en un sistema cerrado. Todas las partes del computador estn contenidas
en su interior y slo salen al exterior las lneas que gobiernan los perifricos.
EJEMPLO
SOLUCIN
Pat - a esta aplicacin es suficiente el PIC16F83 y su empleo supone una importante eco-
noma.
http://librosysolucionarios.net
MICROCONTROLADORES PROGRAMABLES: LA SOLUCIN EST EN UN CHIP 5
Un microcontrolador posee todos los componentes de un computador, pero con unas caracte-
rsticas fijas que no pueden alterarse.
Las partes principales de un microcontrolador son:
1. Procesador
2. Memoria no voltil para contener el programa
3. Memoria de lectura y escritura para guardar los datos
4. Lneas de EIS para los controladores de perifricos:
a) Comunicacin paralelo
b) Comunicacin serie
c) Diversas puertas de comunicacin (bus l2C, USB, etc.)
5. Recursos auxiliares:
a) Circuito de reloj
b) Temporizadores
c) Perro Guardn (watchdog)
d) Conversores AD y DA
e) Comparadores analgicos
f) Proteccin ante fallos de la alimentacin
g) Estado de reposo o de bajo consumo
1.2.1. El procesador
Figura 1.5. En la arquitectura de von Neumann la UCP se comunicaba a travs de un sistema de buses
con la Memoria, donde se guardaban las instrucciones y los datos.
http://librosysolucionarios.net
6 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
El alto rendimiento y elevada velocidad que alcanzan l os modernos procesadores, como el que
poseen los microcontroladores PIC, se debe a la conjuncin de tres tcnicas:
- Arquitectura Harvard
- Computador tipo RISC
- Segmentacin
El microcontrolador est diseado para que en su memoria de programa se almacenen todas las
instrucciones del programa de control. No hay posibilidad de utilizar memorias externas de
ampliacin.
Como el programa a ejecutar siempre es el mismo, debe estar grabado de forma perma-
nente. Los tipos de memoria adecuados para soportar esta funcin admiten cinco versiones
diferentes:
http://librosysolucionarios.net
MICROCONTROLADORES PROGRAMABLES: LA SOLUCIN EST EN UN CHIP 7
2. EPROM
La grabacin de esta memoria se realiza mediante un dispositivo fsico gobernado desde un
computador personal, que recibe el nombre de grabador. En la superficie de la cpsula del
microcontrolador existe una ventana de cristal por la que se puede someter al chip de la memoria
a rayos ultravioletas para producir su borrado y emplearla nuevamente. Es interesante la me-
moria EPROM en la fase de diseo y depuracin de los programas, pero su coste unitario es
elevado.
4. EEPROM
La grabacin es similar a las memorias OTP y EPROM, pero el borrado es mucho ms senci-
llo al poderse efectuar de la misma forma que el grabado, o sea, elctricamente. Sobre el
mismo zcalo del grabador puede ser programada y borrada tantas veces como se quiera, lo
cual la hace ideal en la enseanza y en la creacin de nuevos proyectos. El fabuloso PIC16C84
dispone de 1 K palabras de memoria EEPROM para contener instrucciones y tambin tiene
algunos bytes de memoria de datos de este tipo para evitar que cuando se retira la alimentacin
se pierda informacin.
Aunque se garantiza 1.000.000 de ciclos de escritura/borrado en una EEPROM, todava su
tecnologa de fabricacin tiene obstculos para alcanzar capacidades importantes y el tiempo
de escritura de las mismas es relativamente grande y con elevado consumo de energa.
5. FLASH
Se trata de una memoria no voltil, de bajo consumo, que se puede escribir y borrar en
circuito al igual que las EEPROM, pero suelen disponer de mayor capacidad que estas lti-
mas. El borrado slo es posible con bloques completos y no se puede realizar sobre posiciones
concretas. En las FLASH se garantizan 1.000 ciclos de escritura-borrado.
Son muy recomendables en aplicaciones en las que sea necesario modificar el programa a
lo largo de la vida del producto, como consecuencia del desgaste o cambios de piezas, como
sucede con los vehculos.
Por sus mejores prestaciones est sustituyendo a la memoria EEPROM para contener ins-
trucciones. De esta forma Microchip comercializa dos microcontroladores prcticamente igua-
les, que slo se diferencian en que la memoria de programa de uno de ellos es tipo EEPROM y
http://librosysolucionarios.net
8 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
la del otro tipo Flash. Se trata del PIC 16C84 y el PIC 16F84, respectivamente. En la actualidad
Microchip tiene abierta una lnea de PIC con memoria Flash cada vez ms extensa y utilizada.
Los datos que manejan los programas varan continuamente, y esto exige que la memoria que
les contiene debe ser de lectura y escritura, por lo que la memoria RAM esttica (SRAM) es la
ms adecuada, aunque sea voltil.
Hay microcontroladores que tambin disponen como memoria de datos una de lectura y
escritura no voltil, del tipo EEPROM. De esta forma, un corte en el suministro de la alimen-
tacin no ocasiona la prdida de la informacin, que est disponible al reiniciarse el programa.
El PIC16C84, el PIC16F83 y el PIC16F84 disponen de 64 bytes de memoria EEPROM para
contener datos.
La memoria tipo EEPROM y la tipo Flash pueden escribirse y borrarse elctricamente. Sin nece-
sidad de sacar el circuito integrado del zcalo del grabador pueden ser escritas y borradas nu-
merosas veces.
A excepcin de dos patitas destinadas a recibir la alimentacin, otras dos para el cristal de
cuarzo, que regula la frecuencia de trabajo, y una ms para provocar el Reset, las restantes
patitas de un microcontrolador sirven para soportar su comunicacin con los perifricos ex-
ternos que controla.
Las lneas de E/S que se adaptan con los perifricos manejan informacin en paralelo y se
agrupan en conjuntos de ocho, que reciben el nombre de Puertas. Hay modelos con lneas que
soportan la comunicacin en serie; otros disponen de conjuntos de lneas que implementan
puertas de comunicacin para diversos protocolos, como el I2C, el USB, etc.
Segn las aplicaciones a las que orienta el fabricante cada modelo de microcontrolador, in-
corpora una diversidad de complementos que refuerzan la potencia y la flexibilidad del dispo-
sitivo. Entre los recursos ms comunes se citan a los siguientes:
a) Circuito de reloj, encargado de generar los impulsos que sincronizan el funcionamien-
to de todo el sistema.
b) Temporizadores, orientados a controlar tiempos.
c) Perro Guardin (watchdog), destinado a provocar una reinicializacin cuando el
programa queda bloqueado.
d) Conversores AD y DA, para poder recibir y enviar seales analgicas.
e) Comparadores analgicos, para verificar el valor de una seal analgica.
f) Sistema de proteccin ante fallos de la alimentacin.
http://librosysolucionarios.net
MICROCONTROLADORES PROGRAMABLES: LA SOLUCIN EST EN UN CHIP 9
La utilizacin de los lenguajes ms cercanos a la mquina (de bajo nivel) representan un con-
siderable ahorro de cdigo en la confeccin de los programas, lo que es muy importante dada
la estricta limitacin de la capacidad de la memoria de instrucciones. Los programas bien rea-
lizados en lenguaje Ensamblador optimizan el tamao de la memoria que ocupan y su ejecu-
cin es muy rpida.
Los lenguajes de alto nivel ms empleados con microcontroladores son el C y el BASIC, de
los que existen varias empresas que comercializan versiones de compiladores e intrpretes
para diversas familias de microcontroladores. En el caso de los PIC es muy competitivo e inte
resante el compilador de C PCM de la empresa CCS y el intrprete PBASIC de PARA-
LLAX.
Siempre que se disea con circuitos integrados programables se precisan herramientas para la
puesta a punto del hardware y del software.
Con referencia al software, adems de los compiladores o intrpretes de los lenguajes usa-
dos, es muy interesante disponer de simuladores software, que consisten en programas que
simulan la ejecucin de instrucciones representando el comportamiento interno del procesador
y el estado de las lneas de E/S. Como se simula por software al procesador, el comporta-
miento no es idntico aunque proporciona una aproximacin aceptable, especialmente cuan-
do no es esencial el trabajo en tiempo real.
Microchip pone libremente a disposicin de sus usuarios, a travs de Internet (http://
www.microchip.com), ensambladores como el MPASM y simuladores como el MPSIM.
Ingeniera de Microsistemas Programados, S. L., comercializa un simulador muy completo
para el PIC16X84 y varios compiladores e intrpretes de lenguaje C y BASIC (http://www.mi-
crocontroladores.com).
Respecto a las herramientas hardware, una indispensable es el grabador, encargado de es-
cribir el programa en la memoria del microcontrolador. Existen grabadores muy completos,
capaces de trabajar con muchos modelos de diferentes familias, pero su elevado precio los aleja
de los usuarios personales. Para estos ltimos existen bastantes versiones de sencillos grabado-
res, especficos para ciertos modelos de microcontroladores, que gobernados desde un compu-
tador personal se ofrecen por un precio ligeramente superior al de un libro (vase Figura 1.7).
Los fabricantes de los microcontroladores disponen de numerosas herramientas apropiadas
para sus productos (vase Figura 1.8).
http://librosysolucionarios.net
10 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
http://librosysolucionarios.net
MICROCONTROLADORES PROGRAMABLES: LA SOLUCIN EST EN UN CHIP 11
http://librosysolucionarios.net
12 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
Una vez grabado el microcontrolador sus patitas quedan conectadas a travs de juniper
con los perifricos que hay que controlar y se procede a la ejecucin en tiempo real del
programa. La inclusin de los perifricos clarifica el resultado final. Mediante el programa
de comunicacin con el PC se puede conocer en todo momento el estado de todos los ele-
mentos del computador. Por su sencillez, potencia y economa destacamos el sistema de
desarrollo MICRO'PIC TRAINER (Figura 1.10) de Ingeniera de Microsistemas Pro-
gramados, S. L., que incorpora las siguientes prestaciones:
- Grabador de PIC.
- Hardware y software de adaptacin a PC.
-Programa de comunicaciones.
-Tarjeta que incluye la mayora de los perifricos tpicos: interruptores, leds, display de siete
segmentos, potencimetros para seales analgicas y pantalla LCD.
-Tutorial con fases de montaje y funcionamiento y ejercicios de experimentacin y diseo de
proyectos
http://librosysolucionarios.net
MICROCONTROLADORES PROGRAMABLES: LA SOLUCIN EST EN UN CHIP 13
tarse fcilmente con todas las lneas de E/S presentes en determinadas puntos de la tarjeta
(vase Figura I.11).
http://librosysolucionarios.net
2.1. LA ELECCIN
Sencillez de manejo
Buena isftormacin
,
Precio
Buen prbmedio de parmetros: velocidad, consumo, tamao, alimentacin, ~go compacto,
etctera
Herr~s de deaarrOUo tkilel y baratas
Diseo rpido
+ Disponibilidad inmediata
Compatib+lidad dei software en todos los modelos de la misma gama
15
http://librosysolucionarios.net
16 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
Lo cierto es que en la primera dcada del siglo XXI y en su corta vida, los PIC ocupan las po-
siciones de cabeza en el ranking mundial, compitiendo codo a codo con gigantes como Intel y
Motorola. En 1990 ocupaba el puesto vigsimo y actualmente son ms de 100 millones de PIC
l os que vende Microchip cada ao, lo que le ha alzado al segundo puesto del ranking mundial.
Dentro de los diferentes tipos de microcontroladores los hay que procesan datos de 4, 8,
1 6 y 32 bits, sin embargo, el ms representativo y popular es el de 8 bits, al que pertenecen los
PIC, porque resulta el ms flexible y eficaz para la mayora de los diseos tpicos (Figura 2. l).
Una de las labores ms importantes del ingeniero de diseo es la eleccin del modelo de mi- crocontrolador que mejor satisfaga las necesidades del proyecto con el mnimo presupuesto.
http://librosysolucionarios.net
MICROCONTROLADORES DE 8 BITS: LOS PIC 17
EJEMPLO
Cuntas patitas destina un PICI6C54 (Figura 2.2) para lneas de E/S, sabiendo que se las
denomina RAx y RBx?
SOLUCIN
12 patitas.
http://librosysolucionarios.net
18 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
Encuadrado en la gama media tambin se halla la versin PIC14C000, que soporta el dise-
o de controladores inteligentes para cargadores de bateras, pilas pequeas, fuentes de ali-
mentacin ininterrumpidas y cualquier sistema de adquisicin y procesamiento de seales
que requiera gestin de la energa de alimentacin. Los PIC14C000 admiten cualquier tecno-
loga de las bateras como Li Ion, NiMH, NiCd, Pb y Zinc.
EJEMPLO
Segn la Figura 2.5, la nomenclatura de la subfamilia 16x8x diferencia a sus modelos por la
letra intermedia (C, F o CR). Qu significado tienen dichas letras?
http://librosysolucionarios.net
MICROCONTROLADORES DE 8 BITS: LOS PIC 19
SOLUCIN
En la Figura 2.4 se ofrece el diagrama de conexiones del PIC 16C74 de 40 patitas, que es un
paradigma de la variedad de recursos que pueden incluir los PIC de esta gama.
control, a las que se conectan memorias o controladores de perifricos. Esta filosofa de cons-
truccin del sistema es la que se empleaba en los microprocesadores y no suele ser una prc-
tica habitual cuando se emplean microcontroladores. En la Figura 2.6 se muestran las caracte-
http://librosysolucionarios.net
20 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
rsticas ms relevantes de algunos modelos de esta gama, que slo se utilizan en aplicaciones
muy especiales con grandes requerimientos.
EJEMPLO
Localizar en la tabla de la Figura 2.6 el PIC de la gama alta que tenga mayores capacidades
en sus dos memorias.
SOLUCIN
http://librosysolucionarios.net
MICROCONTROLADORES DE 8 BITS: LOS PIC 21
Aunque los PIC enanos slo tienen 8 patitas, pueden destinar hasta 6 como lneas de E/S para
los perifricos porque disponen de un oscilador interno R-C.
http://librosysolucionarios.net
22 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
EJEMPLO
Segn el esquema de la Figura 2.2, para funcionar un PIC12C508 precisa una tensin de ali-
mentacin comprendida entre 2,5 y 5,5 V, que se aplica a las patitas VDD y Vss. Cuntas pati-
tas quedan disponibles, como mximo, para trabajar como lneas de EIS?
SOLUCIN
http://librosysolucionarios.net
MICROCONTROLADORES DE 8 BITS: LOS PIC 23
La diversidad de los modelos de PIC tiene una finalidad: poder seleccionar el ms adecuado
para cada aplicacin. Por este motivo conviene tener un conocimiento completo y actualizado
de cada gama.
En cuanto a la serie enana, la familia PIC 12C5XX, se trata de un conjunto de microcontro-
ladores CMOS encapsulados con 8 patitas. Tienen un precio muy bajo y resultan altamente
competitivos.
Todos los PIC enanos tienen un formato nico para sus instrucciones, aunque hay mode-
los con 12 bits, otros con 14 y otros con 16. En este grupo los ms usados son los de 14 bits,
que proporcionan una extraordinaria compactacin en el cdigo de los programas, pudindo-
se cifrar en el doble con respecto a otros similares.
La arquitectura RISC, tipo Harvard, unida a la segmentacin del procesador, consigue que
el ciclo de ejecucin de una instruccin sea de 1 microsegundo cuando funciona a una fre-
cuencia de 4 MHz. Todas las instrucciones duran este tiempo menos las de salto, que duran el
doble.
Los PIC enanos son muy apreciados en las aplicaciones de control de personal, en sistemas de
seguridad y en dispositivos de bajo consumo que gestionan receptores y transmisores de sea-
l es. Su pequeo tamao los hace ideales en muchos proyectos donde esta cualidad es funda-
mental.
Dentro de la gama media los PIC 14000 resultan muy interesantes por los recursos que
incorporan: conversor A/D de media a alta resolucin (de 10 a 16 bits), sensor interno de
temperatura, comunicacin serie I2C y muy bajo consumo. Son aptos para el control de carga-
dores de bateras, monitores del estado de pilas y bateras, fuentes de alimentacin ininte-
rrumpibles, gestin del consumo de la energa de alimentacin y sistemas de adquisicin de
datos, especialmente de temperatura.
La gama baja, representada por los PIC16C5X, tiene proyeccin sobre los dispositivos de
alta velocidad usados en la industria de la automocin, el control de motores y los recep-
tores/transmisores y procesadores de bajo consumo encargados de la gestin de comunica-
ciones. Dentro de esta gama se encuentra la subfamilia PIC 16C55X, que incorpora recursos
propios de la gama media. As, dispone de Pila de 8 niveles y mltiples fuentes de interrup-
cin.
Los microcontroladores PIC de la gama baja consiguen superar a sus competidores en velocidad,
a los que aventajan en un factor cercano a 4; y tambin en compresin del cdigo, que llega a ser
del doble.
En la gama media hay una subfamilia, PIC16C62X, con recursos muy especiales, pero
manteniendo el bajo precio y el consumo reducido, que es muy recomendable en aplicaciones
relativas a la gestin de cargadores de bateras, control de sensores remotos con bajo consumo,
etctera.
http://librosysolucionarios.net
24 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
La memoria EEPROM, de igual forma que la FLASH, puede grabarse y borrarse elctri-
camente, sin someterla a rayos ultravioleta como sucede con el borrado de las EPROM con
ventana. Adems, se puede realizar la grabacin y el borrado en serie, lo cual posibilita la
grabacin de un programa, su depuracin y su borrado tantas veces como se desee y mante-
niendo insertado el PIC en el zcalo de la aplicacin. La memoria EEPROM admite hasta
1.000.000 de ciclos de escritura/borrado y almacena la informacin durante ms de 40 aos.
La memoria FLASH tiene un valor tpico de 1.000 ciclos de escritura/borrado, pero aventaja
tcnicamente en varios aspectos a la EEPROM. Destacan en la gama media los PIC 16F87X
con memoria FLASH de gran capacidad y numerosos recursos.
El hecho de poder emplear el mismo dispositivo cuando se realizan numerosos diseos o
cuando se prueban muchos programas en la fase de aprendizaje resulta muy prctico y econ-
mico. Aplicaciones tpicas de estos microcontroladores son el control de puertas de garaje, ins-
trumentacin, inmovilizadores de vehculos, tarjetas codificadas, pequeos sensores, etc. La
grabacin de los PIC16X8X en el propio circuito les hace recomendables para el almacena-
miento de datos de calibracin y para la modificacin del programa al variar las condiciones
http://librosysolucionarios.net
MICROCONTROLADORES DE 8 BITS: LOS PIC 25
del entorno; por ejemplo, al cambiar una pieza de un automvil, el programa de control del
motor se modifica para su adecuacin.
La serie PIC16C9XX tiene como novedad la inclusin de un controlador programable de
LCD, que gestiona ntegramente cualquier pantalla de cristal lquido.
Dentro de la gama alta, la subfamilia PIC17C4X, con 58 instrucciones de 16 bits, tarda
en ejecutar cada una 121 nanosegundos cuando funciona a 33 MHz (las de salto tardan el
doble). El ncleo del procesador est mejorado respecto al de la gama media y la Pila dispo-
ne de 16 niveles. Tambin se han aumentado las fuentes de interrupcin y se ha incorporado
un multiplicador hardware de 8 x 8 bits en un ciclo, para aplicaciones que exijan un clculo
matemtico intensivo. Aplicaciones industriales que requieran alta velocidad y clculos com-
plejos, instrumentacin y telecomunicaciones, son las ideales para los componentes de la
gama alta.
El PIC17C752 y el PIC17C1756 son los modelos ms representativos de la gama alta y
estn encapsulados con 64 y 68 patitas respectivamente. Tienen una elevada capacidad de
memoria que alcanza los 8 K x 16 y 16 K x 16 en el rea reservada a las instrucciones y 454
y 902 bytes en la reservada a los datos, respectivamente. Poseen 12 canales para un conversor
AD de 10 bits, 4 canales para un mdulo de captura de 16 bits, 2 USART, bus 1 2 C, ele.
http://librosysolucionarios.net
26 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
A las puertas del siglo xxi, Microchip ha obtenido un importante xito en el mercado mun-
dial con los microcontroladores RISC FLASH. Se trata de la serie PIC16F87X (3, 4, 5, 6 y 7).
Son unos modelos mucho ms potentes que el PIC16F84, pero que mantienen sus ventajas en
la grabacin y borrado elctrico.
Es una serie que encaja dentro de la gama media y que alcanza una memoria de cdigo
de hasta 8K palabras de 14 bits en memoria FLASH. Soporta hasta 386 x 8 bytes de RAM y
256 x 8 bytes de memoria de datos EEPROM. Pueden programarse slo con +5 VDC y existe
acceso a lectura y escritura de la memoria de programa.
Estos potentes microcontroladores disponen de hasta tres Timer o temporizadores, dos m-
dulos de Captura, Comparacin y PWM, un Convertidor Analgico/Digital de 10 bits, Canal
de comunicaciones sncrono SSP con modo I2C y SPI, canal USART/SCI, puerto paralelo es-
clavo asncrono de 8 bits y deteccin de fallo de alimentacin (BOR).
Los lectores que completen con xito el primer escaln en el manejo del PIC16F84, debern
tener muy en cuenta esta potentsima familia de PIC con memoria FLASH para superar sus di-
seos. A ella se destina gran parte del segundo volumen de esta obra.
Desde el 2000 Microchip se esfuerza por potenciar y ampliar los PIC de la gama mejora-
da destinados a aplicaciones muy avanzadas y orientadas a su programacin en lenguaje C.
http://librosysolucionarios.net
3.1. ACERCANDO LA TECNOLOGA
No suele ser habitual coincidir los planteamientos de dos generaciones, ni la opinin de los
profesionales que se dedican a aplicar la tecnologa y los que se encargan de ensearla. Sin em-
bargo, en este tema los autores coinciden plenamente. Los mdulos BASIC Stamp de Parallax
constituyen el camino ms sencillo y asequible para disear sistemas basados en microcon-
troladores.
En el mundo de la enseanza es frecuente encontrar a jvenes que estudian carreras de In-
geniera que no estn convencidos de su vocacin. La labor del ingeniero es una de las ms
apasionantes a las que el ser humano puede dedicarse. Es el encargado de disear e imple-
mentar los proyectos que le proponen. Es un gran creador de realidades que sirven para mejo-
rar la calidad de vida de todos. La vocacin por la ingeniera debe fraguarse en los jvenes de
15 a 18 aos y para conseguirlo slo hay que demostrarles prcticamente en qu consiste nues-
tra profesin. Los mdulos de Parallax no precisan tener grandes conocimientos de Inform-
tica ni de Electrnica, basta un poco de inters para generar en la juventud una inclinacin y
admiracin por la Ingeniera. Dotar a un laboratorio universitario, de Formacin Profesional
o IES de un equipo para aprender a programar y disear con estos dispositivos exige muy poco
presupuesto.
En el campo profesional hay dos colectivos a los que estas herramientas les interesa en so-
bremanera: el de los nefitos y el de los experimentados. Para los primeros, entre los que se
encuentran los aficionados que no han tenido oportunidad de conocer la Informtica y la Mi-
croelectrnica en profundidad, sta es la nica oportunidad para adentrarse en este mundo del
diseo programado sin necesidad de realizar un esfuerzo intelectual ni econmico. Para los
tcnicos experimentados la filosofa de trabajo con los mdulos BASIC Stamp les proporcio-
na la solucin ms eficaz para desarrollar sus proyectos con la mxima rapidez y seguridad.
La necesidad de optimizar los tiempos de desarrollo de los proyectos que realizaban basa-
dos en microcontroladores, impuls a dos ingenieros americanos, en la dcada de los ochenta
del siglo pasado, a construirse un mdulo hardware que simplificase el desarrollo electrnico,
y un lenguaje de programacin que se adaptara a sus diseos y fuese asequible para cualquier
tcnico con escasos conocimientos en Electrnica e Informtica. Mejoraron la productividad
hasta tal punto que tuvieron la idea de comercializar las herramientas que haban ideado. Y
27
http://librosysolucionarios.net
28 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
en 1992 Parallax ofert a nivel mundial los mdulos BASIC Stamp, que adquirieron tal xito
de ventas que pasaron a erigirse como el producto estrella de la empresa.
La gran aportacin de los mdulos BASIC Stamp reside en la conjuncin de un hardware
seguro, completo y listo para acoplarle los dispositivos a controlar, y un software accesible a
cualquier tcnico al estar basado en el lenguaje ms fcil del mundo, el BASIC. El lenguaje
PBASIC es una versin sencilla del BASIC, de pocas instrucciones y adaptadas a las caracte-
rsticas de las aplicaciones y del microcontrolador. Al mezclarse estos dos ingredientes con
una poltica comercial de total informacin y libre disposicin de manuales, tutoriales y soft-
ware de manejo, una excelente asistencia tcnica y una red de distribuidores profesionales en to-
do el mundo, estas herramientas se convierten en el mejor sistema para iniciarse y desarrollar
profesionalmente este apasionante trabajo del diseo de proyectos con microcontrolador que
va a precisar en un futuro cercano la colaboracin de muchos proyectistas.
Por estas razones hemos decidido incorporar en esta edicin un par de captulos que traten
del equipo fsico y el sistema lgico de los mdulos BASIC Stamp, que aporten una idea cla-
ra de las posibilidades de los mismos. Quienes se interesen en profundizar en el tema slo de-
ben acudir a los magnficos Manuales de Prcticas que tanto en ingls como en castellano pue-
den recogerse de las pginas en Internet de Parallax (www.parallaxinc.com) y de sus
distribuidores como Ingeniera de Microsistemas Programados, S. L., para Espaa (www.mi- crocontroladores.com). Esperamos poder demostrar que manejar estos mdulos y confeccio-
nar y ejecutar programas en PBASIC se puede llevar a cabo sin apenas conocimientos, y por
eso estos captulos se han insertado antes de explicar la arquitectura del microcontrolador y
su repertorio de instrucciones mquina, temas que acometeremos posteriormente para formar
al lector slidamente y as permitirle desarrollar proyectos completos utilizando el lenguaje
Ensamblador.
http://librosysolucionarios.net
LOS SELLOS MGICOS DE PARALLAx 29
de una treintena de instrucciones y se aprende en muy poco tiempo. De esta manera resolvie-
ron sus problemas de diseo y pensaron que tambin poda servir para otros colegas, y as co-
mercializaron en 1992 los mdulos BASIC Stamp.
Los diminutos sellos microcontroladores que utilizan el lenguaje PBASIC se comercia-
lizan en diversos modelos de diferente velocidad, capacidad de memoria, recursos y precios
(Figura 3.1).
Parallax dispone de un mdulo de poca potencia, que es el BS1-IC, basado en un micro-
controlador PIC 16(756 a 4 MHz, lo que permite la ejecucin de 2.0(1(1 instrucciones PBASIC
por segundo. Slo tiene 16 bytes de RAM y 8 lneas de E/S. La capacidad de la EEPROM don-
de se almacenan temporalmente los programas es de 256 bytes, que admite hasta 80 instruc-
ciones PBASIC. Slo soporta 32 comandos de dicho lenguaje y este mdulo puede ser una ex-
celente solucin en el control y automatizacin de productos y sistemas sencillos que exijan
prestaciones mnimas.
El siguiente mdulo, un poco ms avanzado que el anterior. es el Basic Stamp 2. Existen
dos presentaciones de este mdulo. Una se llama BS2-IC, y es un mdulo montado sobre una
pequea PCB con componentes de montaje superficial y la forma de un circuito integrado DIP.
Su fotografa se muestra a la izquierda de la Figura 3.2. La otra versin, OEM BS2-IC, dispo-
ne de componentes convencionales y un PCB ms grande con pines para conexin en una tar-
jeta protoboard, como puede apreciarse a la derecha de la Figura 3.2. Ambos estn basados
en el microcontrolador PIC16C57 funcionando a 20 MHz, lo que permite la ejecucin de
unas 4.000 instrucciones PBASIC por segundo. La capacidad de la EEPROM es de 2 KB con
http://librosysolucionarios.net
30 MICROCONTROLADORES "PIC". DISEO PRCTICO DE APLICACIONES
El mdulo BS2e-IC
Este mdulo utiliza un microcontrolador Scenix SX28AC a 20 MHz del fabricante UBICOM
y proporciona mayor capacidad de memoria RAM para guardar variables y de memoria
EEPROM para almacenar programas de hasta 4.000 instrucciones. Adems del repertorio de
comandos PBASIC que ejecutaba el mdulo BS2-IC, ste soporta tres ms: GET, PUNT y
RUN. En la Figura 3.3 se muestra una fotografa de este mdulo.
El mdulo BS2sx-IC
Con el mismo microcontrolador que el mdulo anterior, pero funcionando a una frecuencia
de 50 MHz, este modelo puede ejecutar 10.000 instrucciones PBASIC por segundo. Acepta las
mismos comandos que el mdulo BS2e-IC.
http://librosysolucionarios.net
LOS SELLOS MGICOS DE PARALLAX 31
Finalmente, se presenta una tabla que recoge las caractersticas ms importantes de los di-
versos mdulos microcontroladores de Parallax.
http://librosysolucionarios.net
32 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
http://librosysolucionarios.net
LOS SELLOS MGICOS DE PARALLAX 33
Cindonos al mdulo OEM BS2-IC, todas las operaciones que realiza estn gobernadas
por el microcontrolador PIC 16C57. Se trata de un pequeo computador que maneja datos de 8
bits y que acta como el cerebro ejecutor de todas las misiones que se encomienda al mdulo.
Las funciones que desarrolla el microcontrolador al ejecutar las instrucciones de los programas
son las siguientes:
1. Entrada y salida de la informacin serie que proviene y se dirige al PC.
2. Carga en la memoria EEPROM del programa PBASIC recibido desde el PC.
3.a Descarga de las instrucciones contenidas en la EEPROM sobre el PIC 16C57 para su in-
terpretacin y ejecucin.
4. Introduccin de informacin desde los perifricos externos y salida de los resultados
del procesamiento de los programas por las patitas del mdulo hacia los perifricos.
http://librosysolucionarios.net
34 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
tud. Esto significa que el mximo tamao del programa de instrucciones mquina (no PBA-
SIC) es de 2.048. En el mdulo OEM BS2-IC el programa que tiene grabado el PIC, adems
de contener el Intrprete de PBASIC, se encarga de recibir y transmitir la informacin serie
con el PC, la escritura y lectura de la EEPROM donde se guarda el programa PBASIC, y el
control de las patitas de entrada y salida. Aprciese que en la memoria de programa del PIC no
reside el programa PBASIC editado en la pantalla del PC, para la aplicacin a desarrollar. Di-
cho programa se graba en la EEPROM 24LC16B desde donde el PIC va recibiendo una a una
esas instrucciones y las va traduciendo a instrucciones mquina y ejecutndolas.
Microchip dispone de una versin del PIC 16C57 cuya memoria de programa es de tipo
EPROM, que puede grabarla el usuario con un grabador y borrarla para volverla a reescribir. El
borrado hay que hacerlo sometiendo el circuito integrado a rayos ultravioleta, por lo que dispo
ne de una ventana en su parte frontal. Hay una versin OTP, barata, que la puede escribir el usua-
rio una vez nada ms. El mdulo OEM BS2-IC soporta el modelo PIC16CR57, cuya memoria
es de tipo ROM, de slo lectura. Se escribe en fbrica y slo se puede leer, si se permite.
Adems de las memorias, el PIC 16C57 posee un temporizador de ocho bits para controlar
el tiempo, que se llama TMR0. Para medir el tiempo el TMR0 puede usar los impulsos de re-
loj del microcontrolador, o bien los que se introducen desde el exterior por la patita RTCC.
Como en el mdulo de prcticas OEM BS2-IC no se usa el TMR0 con impulsos externos, la
patita RTCC se enva a tierra.
Finalmente, el PIC16C57 maneja 20 lneas de E/S implementadas fsicamente mediante 20
patitas por las que se enva y se recibe informacin, a y desde el exterior a lo largo del procesa-
miento de las instrucciones del programa. Las lneas de E/S se distribuyen en grupos que se lla-
man Puertas A, B y C. La Puerta A slo tiene 4 lneas que se implementan fsicamente por las pa-
titas RA0-RA3, la Puerta B tiene 8 con las patitas RB0-RB7 y la Puerta C otras 8 con RCO-RCT
Diagrama de conexionado
Aunque el PIC 16C57 se comercializa con varios encapsulados, en el OEM BS2-IC se emplea
el DIP de 28 patitas en doble hilera. Este mdulo utiliza componentes convencionales y cual-
http://librosysolucionarios.net
LOS SELLOS MGICOS DE PARALLAx 35
quier avera la puede resolver el propio usuario sustituyendo el que se halla averiado, por eso
se ha elegido en esta descripcin de carcter docente. Incluso se puede comprar el mdulo en
kit y soldar sus componentes para ponerlo en marcha. El microcontrolador se inserta sobre un
zcalo soldado a la PCB y tambin puede reemplazarse rpidamente.
Las lneas de E/S para intercambio de informacin con el mundo exterior ocupan 20 pati-
tas. Las cuatro de la Puerta A (RA0-RA3) estn destinadas a la recepcin y transmisin de la
informacin serie al PC y a la escritura y lectura de la memoria EEPROM. Las 16 patitas res-
tantes, 8 de la Puerta B y 8 de la Puerta C, quedan a disposicin de los perifricos a gobernar
en la aplicacin. Dichas lneas estn disponibles en el mdulo OEM BS2-IC por las patitas de-
nominadas PO a P15.
Por las patitas VDD y Vss se recibe la tensin de alimentacin que puede estar comprendi-
da entre +2,5 y +5,5 VDC y que en el mdulo de prcticas se usa +5 VDC, obtenida de la sa-
lida del regulador de tensin.
Los terminales de un resonador cermico que oscila a 20 MHz se aplican a las patitas OSC 1
y OSC2 para conseguir que el microcontrolador funcione a dicha frecuencia. Hay dos patitas
que no se conectan (NC). La patita RTCC se usa para controlar los tiempos del temporizador
TMR0 mediante la frecuencia externa introducida por esta patita; como en el mdulo OEM
BS2-IC no se emplea esta posibilidad se conecta a tierra. Finalmente, la patita MCLR# (#: seal
activa con nivel bajo) sirve para producir un Reset o reinicializacin del programa cuando se
produce un flanco descendente.
En todos los mdulos BASIC Stamp existe una memoria EEPROM independiente en la que se
vuelca el programa PBASIC confeccionado en el PC. Despus, desde la EEPROM se van pa-
http://librosysolucionarios.net
36 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
sando, una a una, las instrucciones al PIC para que all se interpreten y se ejecuten. Esta me-
moria EEPROM se comunica con el PIC en formato serie y segn el protocolo de comunica-
cin del bus I2C.
El bus 12C lo desarroll Philips Corporation para resolver sus propias necesidades en la
i nterconexin de circuitos integrados. 12C significa Interconexin de Circuitos Integrados.
Su gran xito radica en su sencillez, ya que slo emplea dos lneas para comunicarse con los
dispositivos que intervienen en este protocolo y que pueden llegar a 128 en un mismo siste-
ma. La lnea bidireccional SDA transfiere los bits de informacin serie y la SCL los impulsos
de reloj para sincronizar la informacin entre quien la manda y la recibe. En cada momento
hay un dispositivo que funciona como Maestro y que determina las caractersticas de la trans-
ferencia y genera los impulsos de reloj por SCL.
Cada uno de los 128 posibles Esclavos responde a una direccin formada por 7 bits (A0-
A6), y el Maestro al iniciar una transferencia es lo primero que enva en su comunicacin.
Despus de especificar el Maestro la direccin del Esclavo con el que se quiere comunicar,
enva la orden de lectura o escritura y luego otras complementarias. Existen muchos circuitos
http://librosysolucionarios.net
LOS SELLOS MGICOS DE PARALLAX 37
integrados con diversas funciones para el bus 12C y los fabricantes determinan por hardware
la direccin a la que responden y sus caractersticas tcnicas. Sin embargo, es habitual que la
direccin a la que responde un circuito integrado I2C no est totalmente definida. Se suelen
dejar sin especificar las lneas de menos peso de la direccin para poder colocar varios circuitos
integrados iguales en el sistema, respondiendo cada uno a una direccin distinta. En el caso
de la memoria 24LC16B tiene sin definir las tres lneas de menos peso de la direccin (A0-A2),
cuyo valor debe determinar el usuario por hardware, enviando las patitas correspondientes a
tierra o a VDD. En el mdulo OEM BS2-1, como slo se utiliza un circuito integrado EEPROM,
las tres lneas de la direccin se mandan a tierra.
http://librosysolucionarios.net
38 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
Las cuatro patitas de la Puerta A del PIC16C57, RAO-RA3, se destinan a soportar la co-
municacin del mdulo con el PC y con la memoria EEPROM.
http://librosysolucionarios.net
LOS SELLOS MGICOS DE PARALLAX 39
Cuando se disponga de una fuente de alimentacin que proporcione los + 5 VDC precisos
se puede eliminar la intervencin del regulador LM2940-5.0, evitando el calor que disipa. De
esta manera no se introduce nada por V i,, y se aplican los + 5 VDC de la fuente por la patita
20 del mdulo (Vdd).
http://librosysolucionarios.net
40 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
Las lneas digitales de E/S del microcontrolador son configurables por software y pueden
actuar como entrada o salida. Incluso a lo largo de una aplicacin pueden cambiar su actuacin
si lo permiten los perifricos a los que controlan.
http://librosysolucionarios.net
LOS SELLOS MGICOS DE PARALLAX 41
Cuando por una patita del microcontrolador se gobierna el encendido y apagado de un LED
la resistencia de absorcin determina la corriente que circula y la luminosidad del mismo.
Si se eleva el valor de la resistencia colocada en serie con el diodo LED la corriente que lo
atraviesa baja. As, si la resistencia fuese de 270 ohmios la corriente quedara reducida a 11
mA y descendera la luminosidad del LED.
Cuando se colocan varios perifricos en las patitas del mdulo hay que comprobar las limi-
taciones existentes por lnea y por puerta para evitar averas y fallos de funcionamiento. As, por
ejemplo, si interesa colocar 8 LEDs en las lneas de una puerta, como el valor mximo de la
corriente suministrada es de 100 mA el consumo de cada LED debera ser inferior a 13 mA
http://librosysolucionarios.net
4.1. BASIC: EL LENGUAJE MS FCIL DEL MUNDO
Aprender a manejar el lenguaje BASIC para computadoras es una labor muy sencilla, tan sim-
ple como escribir (en ingls). En BASIC las instrucciones coinciden con el nombre en ingls
de la operacin que se debe llevar a cabo. Por ejemplo, escribir o visualizar un valor en la
pantalla utiliza la instruccin PRINT; para introducir por el teclado un valor se emplea la ins-
truccin INPUT y si se desea realizar una suma basta con poner el signo + de la misma. Un
lenguaje para una computadora es un conjunto de instrucciones y comandos, que la mquina
es capaz de interpretar y ejecutar. Fjese en un programa en BASIC.
Este programa se entiende slo. Se introduce por el teclado en primer lugar el valor de la
variable a, despus se introduce por el mismo procedimiento el valor de b y, finalmente, se
visualiza el resultado de la operacin a+b. Consiste en una sucesin ordenada de las instruc-
ciones que debe ejecutar el computador para ir procesando los datos hasta alcanzar el resulta-
do deseado.
El lenguaje BASIC fue desarrollado en I960 por J. Kemeny y T. Kurtz con la finalidad de
simplificar la programacin.
Se trata de un lenguaje muy sencillo que est orientado a las personas y por eso sus instruc-
ciones recuerdan las palabras inglesas con las que se describe la operacin que realizan. Dado
su parecido con el lgebra elemental es muy til para resolver problemas tcnicos de inge-
43
http://librosysolucionarios.net
44 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
niera, aunque tambin es muy cmodo en las aplicaciones que manejan mucha informacin li-
teral, tpico en los negocios.
Las grandes ventajas del lenguaje BASIC desgraciadamente estn acompaadas por algu-
nos defectos, que suelen empujar a los programadores profesionales a repudiarlo. Como ma-
yor defecto se dice que es un lenguaje no estructurado o no procedural, de lo cual la mayor
culpa tiene la instruccin GOTO, que es capaz de desviar el flujo de la ejecucin de ins-
trucciones a cualquier parte del programa, impidiendo la posibilidad de dividir la tarea en
trozos pequeos e independientes.
Las normas puristas de la programacin proponen la confeccin del software en base a un
pequeo programa principal, que se compone de llamadas a rutinas y procedimientos aut-
nomos e independientes en los que se descompone la tarea a resolver. Para implementar esta
estructura es necesario poder salir con facilidad del programa principal a las rutinas traspa-
sando algunos parmetros, as como tambin poder regresar a dicho programa principal desde
la rutina trayendo resultados obtenidos en esta ltima. El lenguaje BASIC no soporta comple-
tamente estas estructuras en los programas.
El lenguaje Ensamblador se dice que es de bajo nivel porque sus instrucciones son exacta-
mente las que el procesador sabe interpretar y ejecutar. En realidad, el computador digital s-
l o acepta instrucciones en cdigo binario y el Ensamblador facilita su escritura al programador
permitiendo expresarlas mediante nemnicos, que son tres o cuatro letras significativas que
referencian, en ingls, la operacin que conlleva la instruccin. Por ejemplo, una instruccin
que mueve un dato de un sitio (A) a otro (B), en Ensamblador se escribe MOV A,B.
El problema surge en el Ensamblador por la poca potencia de las instrucciones que es ca-
paz de ejecutar el procesador. Normalmente las correspondientes a los microcontroladores de
8 bits que manejamos en este libro, consisten en sumar, restar, hacer operaciones lgicas AND,
http://librosysolucionarios.net
PBASIC: EL LENGUAJE MS FCIL DEL MUNDO 45
OR, XOR, tambin rotar un dato de 8 bits, moverlo de un sitio a otro y muy poquito ms. Si
deseamos hacer una multiplicacin hay que confeccionar un programa que para conseguirlo
repita las sumas las veces necesarias. Es un lenguaje de bajo nivel. El programa Ensambla-
dor lo nico que hace es traducir los nemnicos con los que se escriben las instrucciones a
cdigo binario para que el procesador sea capaz de interpretarlas y ejecutarlas.
Los lenguajes de alto nivel tienen instrucciones ms potentes: saben multiplicar, sacar
la raz cuadrada y realizar funciones y operaciones mucho ms complicadas que las que pue-
den hacer las instrucciones de la mquina. Pero como la mquina es la misma, la realizacin
de esas instrucciones se tiene que hacer con programas de instrucciones elementales. Cada ins-
truccin de alto nivel se convierte en un programita de instrucciones de bajo nivel. Por eso
para que el procesador pueda ejecutar las instrucciones de un lenguaje de alto nivel precisa otro
programa que las descomponga en las instrucciones de bajo nivel correspondientes. A estos
programas se les llama compiladores. Los compiladores se encargan de traducir un progra-
ma confeccionado con instrucciones de alto nivel a otro equivalente con instrucciones de bajo
nivel. Hay una variante de estos programas que reciben el nombre de intrpretes que realizan
dicha traduccin pero instruccin por instruccin, o sea, traducen una instruccin de alto ni-
vel en las correspondientes de bajo nivel que ejecuta el procesador y a continuacin pasan a
la siguiente. El microcontrolador de los mdulos BASIC Stamp contiene en su memoria de
programa un Intrprete de PBASIC.
Desarrollar programas en lenguaje Ensamblador exige un conocimiento profundo de la ar-
quitectura interna del procesador, lo que requiere una buena base en Electrnica, as como for-
macin en Informtica. Las instrucciones de bajo nivel realizan operaciones directamente con
los elementos existentes en el interior del procesador.
El lenguaje C es de tipo profesional, muy completo y potente, pero su manejo exige una
buena formacin en Informtica. Tambin es muy conveniente conocer la arquitectura interna
del procesador y en muchas ocasiones hay que combinarlo con el lenguaje Ensamblador.
El lenguaje BASIC tiene potentes instrucciones que se escriben igual que se denominan
en ingls y su manejo no requiere conocimientos de arquitectura de procesadores, de Electr-
nica y tampoco de Informtica. Es para todos. Entiende este programa diseado para calcu-
lar el rea de un crculo introduciendo el radio?
http://librosysolucionarios.net
46 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
Etiquetas. Los programas en PBASIC no numeran las lneas y es una de las novedades ms in-
teresantes respecto a los BASIC clsicos. Cuando se desea hacer mencin a una instruccin
como no tiene nmero se le antepone una etiqueta identificativa.
http://librosysolucionarios.net
PBASIC: EL LENGUAJE MS FCIL DEL MUNDO 47
El nombre de las etiquetas no puede coincidir con el de las instrucciones o variables usadas;
su primer carcter no puede ser un nmero, y la primera vez que se usan deben estar seguidas
por dos puntos (:).
Constantes. Se pueden declarar en decimal, hexadecimal, binario y ASCII. Ejemplos:
Variables y constantes. Para facilitar la programacin se utilizan etiquetas para hacer re-
ferencia a variables y a constantes. Se emplea el comando CON. Ejemplos:
Comentarios. Detrs de cada instruccin se recomienda escribir algn comentario para fa-
cilitar la finalidad de la misma. El procesador ignora los comentarios. Delante del comentario
se puede poner REM o un apstrofe. Ejemplos:
Operaciones aritmticas y lgicas. En la tabla de la Figura 4.2 se indican los smbolos uti-
lizados para las diversas operaciones posibles en PBASIC.
En la realizacin de las operaciones el PBASIC opera siempre de izquierda a derecha; por
ejemplo, 5 + 4 * 7 se lleva a cabo como (5 + 4) * 7.
Reserva de posiciones en la memoria de datos. El lenguaje PBASIC reserva las primeras
posiciones de la memoria de datos del procesador. Las tres primeras palabras se reservan para
Pines de Entrada INS, que es un registro que almacena la informacin de los pines de E/S
cuando son entrada; Pines de Salida OUTS, registro que contiene la informacin a sacar por
los pines que actan como salida, y Bits de direccionamiento de los Pines DIR. Si a un bit de
este ltimo registro se carga con un 0 el pin correspondiente queda configurado como entrada,
mientras que si se carga con un I acta como salida. Las I3 siguientes palabras (WO-W I2) que
pueden utilizarse en tamao byte (130-1325) estn disponibles para guardar variables y datos del
usuario en los programas. (Vase la tabla de la Figura 4.3 en la que se expresa esta distribucin
de la memoria).
http://librosysolucionarios.net
48 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
http://librosysolucionarios.net
PBASIC: EL LENGUAJE MS FCIL DEL MUNDO 49
El mdulo BS2-IC tiene I6 Pines de entrada y salida disponibles para el usuario en donde
se pueden colocar los perifricos a controlar. Para configurar a los I6 Pines como salida hay
que escribir en el programa: DIRS = %11111111111111111.
Se ofrece un breve resumen del cometido de las instrucciones del PBASIC para los lengua-
jes del Intrprete del mdulo BS2-IC. Manejndolas prcticamente se llega a dominarlas en
muy poco tiempo. Para obtener una completa informacin de las instrucciones PBASIC le re-
comendamos acuda al Manual del PBASIC en Internet y al tutorial Qu es un microcon-
trolador?.
http://librosysolucionarios.net
50 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
INSTRUCCIONES DE SALTO
INSTRUCCIONES NUMRICAS
http://librosysolucionarios.net
PBASIC: EL LENGUAJE MS FCIL DEL MUNDO 51
http://librosysolucionarios.net
52 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
Vamos a ir describiendo con esquemas y fotos la realizacin de un primer programa muy sen-
cillo. Para la implementacin fsica de este y otros ejercicios didcticos hemos escogido al La-
boratorio de Prcticas UNIVERSAL TRAINER que junto con el Mdulo PBASIC contie-
nen todos los elementos necesarios para desarrollar multitud de proyectos propuestos en sus
Manuales as como diseo reales. En el volumen 2 de la obra Laboratorio de Prcticas de
Microelectrnica, editada por McGraw-Hill, se describe una coleccin de ejercicios con los
mencionados recursos que posibilitan formarse en el diseo real de proyectos con microcon-
trolador tanto en PBASIC como con Ensamblador (Mdulo PIC I) cmoda y rpidamente con
un coste muy asequible. Todos estos materiales los comercializa Ingeniera de Microsistemas
Programados, S. L. (www.microcontroladores.com).
http://librosysolucionarios.net
PBASIC: EL LENGUAJE MS FCIL DEL MUNDO 53
Con objeto de adaptar el mdulo OEM BS2-IC a las caractersticas especficas del entre-
nador Universal Trainer se han realizado unas pequeas modificaciones en el conexionado de
sus pines. A esta tarjeta ligeramente transformada la llamaremos OEM BS2-IC / MSE, se mues-
tra una fotografa en la Figura 4.5 y tiene las siguientes peculiaridades:
1. Las lneas PO a P15 y la lnea RES disponen de espadines para conexionado horizon-
tales que sita al mdulo paralelo a la protoboard del entrenador en lugar de vertical. De esta
forma se leen mejor los pines y se puede cerrar la tapa del maletn con el circuito montado.
2. Para diferenciar y facilitar la conexin de la alimentacin las patitas Vin, Vss y VDD
disponen espadines verticales sobre la tarjeta PCB.
3. Se proporciona un conector para los tres espadines de alimentacin que dispone de dos
cables, uno rojo que va a V DD y otro negro que va a Vss. El espadn Vin queda sin conexin. El
cable rojo hay que conectarlo al terminal + 5 V de la fuente de alimentacin regulada del en-
trenador. El cable negro se conecta a la GND de dicha fuente del Universal Trainer. Cuando
se dispone de una fuente estabilizada de + 5 VDC se evita el funcionamiento del regulador
LM2940 del mdulo OEM BS2-1C y su calentamiento, ya que al disponer de tensin de +5 V
estabilizada en el entrenador se aplica directamente a V DD, como se aprecia en el esquema de
la Figura 4.4.
La adaptacin del mdulo OEM BS2-1C con la puerta serie del PC se realiza con un cable
con dos conectores DB9 en sus extremos que tienen cortocircuitados los terminales 6 y 7 para
la deteccin automtica del puerto usado (vase la Figura 4.6).
http://librosysolucionarios.net
54 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
http://librosysolucionarios.net
PBASIC: EL LENGUAJE MS FCIL DEL MUNDO SS
http://librosysolucionarios.net
56 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
http://librosysolucionarios.net
PBASIC: EL LENGUAJE MS FCIL DEL MUNDO 57
http://librosysolucionarios.net
58 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
La fotografa de la Figura 4.11 muestra la disposicin del mdulo Parallax sobre el Universal
Trainer y los cables que conectan los dos perifricos que se emplean en esta prctica y la fuen-
te de alimentacin.
En esta experiencia se trata de encender durante 2 segundos el diodo LED conectado en la pa-
tita P0, mientras durante ese tiempo el zumbador est en silencio. Luego, durante 3 segundos.
el zumbador produce un pitido mientras el LED permanece apagado. Adems, el programa
debe visualizar en la pantalla del depurador el nombre del ejercicio LUZ Y SONIDO , as
http://librosysolucionarios.net
PBASIC: EL LENGUAJE MS FCIL DEL MUNDO 59
Una vez editado el programa conecte el PC al mdulo OEM BS2-IC, que ya estar cone-
xionado con los cables a la fuente y a los perifricos, y conecte la energa al Universal Trai-
ner. Ejecute el programa y si todo sale bien se enciende 2 segundos el LED y luego pita du-
rante 3 segundos el zumbador. Adems, en la pantalla del depurador aparece el mensaje
ILUMINA cuando est encendido el LED y el mensaje PITA cuando el zumbador suena. Pe-
ro todos estos mensajes y el primero de LUZ Y SONIDO salen todos seguidos de la siguiente
forma:
LUZ Y SONIDOILUMINAPITAILUMINAPITAILUMINAPITAILUMINA...
http://librosysolucionarios.net
60 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
4.6.1. Objetivos
Manejar perifricos de entrada que gobiernen el funcionamiento de otros de salida. Emplear
instrucciones de salto condicional y de salto a subrutina, y aprender a definir variables.
En esta prctica vamos a regular el comportamiento de dos diodos LED que simulan las luces
roja y verde de un semforo. Adems. cuando se encienda la luz verde un zumbador pitar
durante cortos perodos. Finalmente, existe un interruptor que permite el funcionamiento del
semforo cuando introduce un nivel alto por una patita del mdulo microcontrolador. Si in-
troduce un nivel bajo el semforo tiene encendida la luz roja y el zumbador est en silencio. En
la Figura 4.11 se muestra un esquema del conexionado del perifrico de entrada. o sea, el in-
terruptor utilizado por primera vez en esta coleccin de ejemplos.
El programa del semforo sonoro utiliza las siguientes nuevas instrucciones:
INO: La patita o pin 0 del mdulo queda asignada como entrada digital.
IF condicin THEN etiqueta : Si se cumple la condicin se pasa a ejecutar la instruccin
de la etiqueta y si no se cumple se ejecuta la siguiente.
GOSUB etiqueta: Se salta a una subrutina que comienza en la instruccin de la etiqueta.
RETURN: Es una instruccin que se pone al final de una subrutina y que devuelve el control
de la ejecucin a la siguiente instruccin despus de gosub.
x VAR bit: No es una instruccin PBASIC sino un comando del Editor para indicar que la
variables tiene el tamao de un bit.
http://librosysolucionarios.net
PBASIC: EL LENGUAJE MS FCIL DEL MUNDO 61
En la Figura 4.I2 se muestra el conexionado de las patitas del mdulo OEM BS2-IC / MSE. con
los perifricos del diseo y las salidas de la fuente de alimentacin del Universal Trainer.
Las especificaciones del proyecto son las siguientes: Hay que gobernar las luces roja y verde
de un semforo, que estn simuladas con diodos LED que se conectan a las patitas P15 (roja)
y P14 (verde) del mdulo. Para avisar a los viandantes de que pueden atravesar la calle cuan-
http://librosysolucionarios.net
62 MICROCONTROLADORES PIC>. DISEO PRCTICO DE APLICACIONES
do la luz verde est encendida, hay un zumbador que pila en esa circunstancia a intervalos de
400 milisegundos. Normalmente el semforo slo deja pasar los coches y tiene encendida la
luz roja de peatones y el zumbador en silencio. Cuando se desea poner en marcha para pasar
los viandantes se desplaza un interruptor, que al introducir un nivel lgico alto por la patita
PO del mdulo inicia la secuencia de encendido de la luz verde durante 2 segundos, mientras la
roja est apagada. Luego se produce el encendido de la roja y el apagado de la verde durante
2 segundos y se repite continuamente el ciclo hasta que se desplaza el interruptor para intro-
ducir un nivel bajo y el semforo pasa su condicin habitual de luz roja encendida y verde
apagada. Cuando la luz verde est encendida, el zumbador pita durante 400 ms y se calla du-
rante los 400 ms siguientes hasta finalizar los 2 segundos.
http://librosysolucionarios.net
PBASIC: EL LENGUAJE MS FCIL DEL MUNDO 63
Una gran parte del programa de este ejercicio lo ocupaban las instrucciones de la subrutina
pit que haca generar un pitido interminente de 400 ms de duracin durante 2 segundos.
Todava esta subrutina sera mucho ms larga si la intermitencia del pitido fuese cada 250 ms.
Se pide rehacer la subrutina de pitido para confeccionarla con el mnimo nmero de instruc-
ciones y con una intermitencia de 250 ms.
4.7.1. Objetivos
Implementar un contador binario de 8 bits en base a 8 diodos LED conectados a las 8 lneas de
salida de menos peso que soportan los pines PO-P7 del mdulo OEM BS2-IC / MSE. Poner en
marcha el contador al pulsar brevemente un pulsador y al cabo del contaje desde 0 a 255 cada
100 ms activar el zumbador de alarma.
Aprender a manejar las variables OUTL y DIRL. Aplicar la instruccin FOR...NEXT para
repetir un bucle de instrucciones un nmero conocido de veces.
Se propone manipular a 8 diodos LED colocados en las patitas PO-P7 que conforman OUTL,
para direccionarlas como salidas con la asignacin de DIRL = % 11111111. Estos 8 diodos
luminiscentes van a visualizar el contaje en tiempo real de un contador binario de 8 bits que va
a ir pasando unidad a unidad desde el valor 0 hasta 255, que es el mximo y en el que los 8
LED quedarn encendidos. La puesta en marcha del contador desde el valor inicial se produce
al apretar durante un breve perodo de tiempo un pulsador conectado a la patita P14 del m-
dulo BS2-IC. Finalmente, al llegar al valor final 255 en binario se activa un zumbador conec-
tado a la patita P15.
http://librosysolucionarios.net
64 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
LED VAR OUTL: Asigna el nombre LED a los elementos conectados a las 8 lneas de menos
peso de las lneas de salida OUTL.
DIRL = % 11111111: Configura como salidas las 8 lneas de menos peso (PO-P7) de la puer-
ta de Entrada/Salida.
FOR CONTA = 0 TO 255...... NEXT: Realiza una serie de instrucciones que forman un bu-
cle un nmero de veces determinado por la transicin de la variable (CONTA) desde el valor 0
hasta el 255. Cada vez que ejecuta el bucle incrementa una unidad la variable.
LED = CONTA: Los 8 LED conectados a las patitas PO-P7 toman el valor binario de la varia-
ble CONTA cada vez que se realiza el bucle y visualizando el nmero binario correspondiente.
En la Figura 4.I4 se muestra el conexionado de las patitas del mdulo OEM BS2-IC / MSE. con
l os perifricos del diseo y las salidas de la fuente de alimentacin del Universal Trainer.
http://librosysolucionarios.net
PBASIC: EL LENGUAJE MS FCIL DEL MUNDO 65
La prctica pone en marcha el contador CONTA desde el valor inicial 0 cuando se pulsa bre-
vemente el pulsador conectado a la patita de entrada 14. Desde ese instante cada algo ms de
1 00 milisegundos se ejecuta un bucle que visualiza en 8 diodos LED conectados a las patitas
PO-P7 (OUTL) el valor binario del contador, incrementa el conteo y hace un retardo de 100
milisegundos. Cuando alcanza el conteo final de 255 que corresponde a 8 bits 1 en las patitas
PO-P7 activa el sonido de un zumbador conectado a la patita P15 del mdulo microcontrolador.
El programa es el siguiente:
http://librosysolucionarios.net
66 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
http://librosysolucionarios.net
5.1. PEQUEO, POBRE, PERO EFICIENTE
Nuestro maravilloso PIC pertenece a la familia de la gama media y dentro de ella es uno de
l os ms pequeos; slo tiene 18 patitas. Adems es el que dispone de menos recursos. El res-
to de sus parientes tiene conversores AD y DA, comparadores analgicos, tensin interna de
referencia, ms lneas de E/S, ms capacidad en sus memorias, varios temporizadores y un lar-
go etctera de dispositivos de los que el PIC16X84 carece. Es pobre de nacimiento.
Pero nosotros hemos elegido a este PIC, en sus dos versiones C y F, porque cumple con
los requisitos esenciales para ensear a manejar los microcontroladores y comenzar a disear
proyectos. Es prctico, es sencillo y es econmico, pudiendo considerar como el paradigma
para su empleo en todos los pequeos proyectos que realizan los aficionados, los estudiantes y
quienes prefieren progresar en sus conocimientos de lo fcil a lo difcil. Creemos que sabien-
do manejar un PIC, el hacerlo con todos los dems es muy fcil.
67
http://librosysolucionarios.net
68 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
http://librosysolucionarios.net
EL PRIMER CONTACTO CON EL PIC 16F84 69
Los modelos que tienen las letras C, F o CR intermedias admiten el rango de voltaje de ali-
mentacin estndar, que es el que oscila de 4 a 4,5 V DC como mnimo, hasta 5,5 a 6 V DC
como mximo. Los modelos con las letras LC, LF o LCR intermedias admiten el margen de
voltaje extendido, que abarca desde los 2 V hasta los 6 V DC.
En la tabla de la Figura 5.1 se indican las principales caractersticas de algunos modelos,
atendiendo a la frecuencia mxima y al tipo de oscilador usado.
http://librosysolucionarios.net
70 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
EEPROM se ha sustituido por otra tipo FLASH. Los otros dos modelos la sustituyen por me-
moria ROM con mscara, pero todos ellos mantienen los 64 bytes de EEPROM para datos.
Tambin existen los modelos PIC16F87X enormemente ms potentes que el PIC16F84 y que
se estudian en el segundo volumen de esta obra.
5.1.2. Diferencias
Nuestro fabuloso PIC est fabricado con tecnologa CMOS de altas prestaciones y encapsula-
do en plstico con 18 patitas (Figura 5.3).
Se comenta brevemente la misin de cada una de las patitas.
VDD: Patita por la que se aplica la tensin positiva de la alimentacin.
Vss: Patita conectada a tierra o negativo de la alimentacin.
OSC1/CLKIN: Patita por la que se aplica la entrada del circuito oscilador externo que propor-
ciona la frecuencia de trabajo del microcontrolador.
OSC2/CLKOUT: Patita auxiliar del circuito oscilador.
MCLR#: Esta patita es activa con nivel lgico bajo, lo que se representa con el smbolo #. Su
activacin origina la reinicializacin o Reset del PIC. Tambin se usa esta patita durante la
grabacin de la memoria de programa para introducir por ella la tensin, V pp, que est com-
prendida entre 12 y 14 V DC.
http://librosysolucionarios.net
EL PRIMER CONTACTO CON EL PIC 161`84 71
EJEMPLO
SOLUCIN
Para conseguir ejecutar cada instruccin en un ciclo de instruccin (excepto las de salto,
que tardan dos), se aplica la tcnica de la segmentacin o pipe-fine, que consiste en realizar
en paralelo las dos fases que comprende cada instruccin.
http://librosysolucionarios.net
72 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
En realidad, cada instruccin se ejecuta en dos ciclos: en el primero se lleva a cabo la fase
de bsqueda del cdigo de la instruccin en la memoria del programa, y en el segundo se de-
codifica y se ejecuta (fase de ejecucin). La estructura segmentada del procesador permite
realizar al mismo tiempo la fase de ejecucin de una instruccin y la de bsqueda de la
siguiente. Cuando la instruccin ejecutada corresponde a un salto no se conoce cul ser la si-
guiente hasta que se complete, por eso en esta situacin se sustituye la fase de bsqueda de
l a siguiente instruccin por un ciclo vaco, originando que las instrucciones de salto tarden
en realizarse dos ciclos de instruccin (Figura 5.5).
http://librosysolucionarios.net
EL PRIMER CONTACTO CON EL PIC16F84 73
EJEMPLO
SOLUCIN
Los PIC admiten cuatro tipos de osciladores externos para aplicarles la frecuencia de funcio-
namiento. E1 tipo empleado debe especificarse en dos bits (FOSC1 y FOSCO) de la Palabra
de Configuracin, como se comenta ms adelante.
Oscilador tipo RC
Se trata de un oscilador de bajo coste formado por una simple resistencia y un condensador.
Proporciona una estabilidad mediocre de la frecuencia, cuyo valor depende de los valores de
los dos elementos de la red R-C (Figura 5.6).
http://librosysolucionarios.net
74 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
EJEMPLO
SOLUCIN
Oscilador tipo HS
Se trata de un oscilador que alcanza una alta velocidad comprendida entre 4 y 10 MHz y est
basado en un cristal de cuarzo o un resonador cermico.
Oscilador tipo XT
Es un oscilador de cristal o resonador para frecuencias estndar comprendidas entre 100 KHz
y 4 MHz.
Oscilador tipo LP
Oscilador de bajo consumo con cristal o resonador diseado para trabajar en un rango de fre-
cuencias de 35 a 200 KHz.
El cristal de cuarzo o el resonador cermico se coloca entre las patitas OSC1 y OSC2 (Fi-
gura 5.7).
http://librosysolucionarios.net
EL PRIMER CONTACTO CON EL PIC 16F84 75
EJEMPLO
SOLUCIN
Con lo poco que sabemos ya se puede poner en marcha el PIC 16X84. Conocemos la funcin
de todas las patitas, 13 de las cuales se emplean para adaptarse con los perifricos externos. De
las 5 patitas restantes, dos (V DD y V ss ) aplican la tensin de alimentacin, otras dos (OSC1 y
OSC2) soportan el cristal de cuarzo del reloj externo, y la que queda (MCLR#), ya se ha ex-
puesto cmo hay que conectarla para generar el Reset.
En los circuitos donde se usa un PIC 16X84 es muy habitual utilizar como tensin de ali-
mentacin la de 5 V normalizada y como circuito de reloj externo uno de tipo XT a una fre-
http://librosysolucionarios.net
76 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
cuencia de 4 MHz. Con esta configuracin, el conexionado fijo para cualquier aplicacin del
PIC es el mostrado en la Figura 5.9.
Las patitas que no se hallan conectadas en la Figura 5.9 son las dedicadas a transferir in-
formacin con los perifricos que utilice la aplicacin. Para hacer operativo dicho esquema va-
mos a conectar algunos perifricos sencillos, que no por eso son los menos usados.
Como perifrico de entrada utilizaremos un interruptor (11) que se conecta a la lnea RA1
de la Puerta A. Como perifrico de salida se colocar un diodo led (L3) en la lnea RB3 de la
Puerta B. Segn el interruptor se abra o se cierre introducir un nivel lgico alto o bajo.
Cuando est abierto aplica a la patita RA1 un nivel lgico alto a travs de la resistencia de pull-
up de 10 K. Si se cierra, al conectarse con tierra, introduce un nivel bajo (Figura 5.10).
Aprovechando la corriente de salida de las lneas de la Puerta B, en torno a los 25 mA, co-
nectaremos directamente el diodo led L3 a la patita RB3, a travs de una resistencia de absor-
cin de 330 ohms.
http://librosysolucionarios.net
El, PRIMER CONTACTO CON EL PIC16F84 77
El PIC precisa una circuitera auxiliar comn para cualquier aplicacin, cambiando nica-
mente el conexionado de las lneas de E/S a los perifricos. Existe una forma muy eficaz de
desarrollar el prototipo de un diseo mediante una tarjeta de circuito impreso premontada y
con una zona libre para instalar y tablear los perifricos.
Una tarjeta de prototipos consta de dos zonas. En una se ubica el zcalo que alojar al mi-crocontrolador con el programa ya grabado junto a la circuitera comn (alimentacin, reloj y
Reset). En la otra zona slo existe un rea de agujeros perforados y estaados, sobre los que se
conectarn los perifricos y se unen 'fcilmente con las lneas de E/S que quedan accesibles. En
l a Figura 5.11 se muestra una tarjeta de prototipos para PIC de 18 patitas, diseada por Inge-
niera de Microsistemas Programados, S. L. Una ventaja adicional de esta tarjeta es que ade-
ms del zcalo donde se ubica el PIC, existe otro de 18 patitas, donde quedan disponibles las
del microcontrolador, que puede conectarse por cable plano con un sistema de desarrollo o un
grabador para que el PIC 16X8X resida en el propio grabador y se pueda escribir y borrar el
programa hasta que quede definitivamente a punto. Llegado ese momento, se quita el cable
plano del grabador y se coloca el PIC grabado en el zcalo de la tarjeta de prototipos.
En la Figura 5.12 se muestra el esquema elctrico de la circuitera que viene montada en
la tarjeta de prototipos PIC 1 8-ME y que es la imprescindible para el funcionamiento del mi-
http://librosysolucionarios.net
78 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
http://librosysolucionarios.net
EL PRIMER CONTACTO CON EL PIC 16F84 79
http://librosysolucionarios.net
6.1. UNA ARQUITECTURA MODERNA Y REVOLUCIONARIA
Para lograr una compactacin del cdigo ptima y una velocidad superior a la de sus compe-
tidores los microcontroladores PIC incorporan en su procesador tres de las caractersticas
ms avanzadas en los grandes computadores:
Con la incorporacin de estos recursos los PIC son capaces de ejecutar en un ciclo de ins-
truccin todas las instrucciones, excepto las de salto, que tardan el doble. Una condicin im-
prescindible es la simetra y ortogonalidad en el formato de las instrucciones, que en el caso de
los PIC de la gama media tienen una longitud de 14 bits. De esta forma se consigue una com-
pactacin en el cdigo del programa para un PIC16F84 2,24 veces superior al de un 68HC05,
funcionando a la misma frecuencia.
El juego de instrucciones se reduce a 35 y sus modos de direccionado se han simplificado
al mximo.
Con la estructura segmentada se pueden realizar simultneamente las dos fases en que se
descompone cada instruccin. Al mismo tiempo que se est desarrollando la fase de ejecu-
cin de una instruccin se realiza la fase de bsqueda de la siguiente.
81
http://librosysolucionarios.net
82 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
Otra caracterstica relevante de los PIC es el manejo intensivo del Banco de Registros, los
cuales participan de una manera muy activa en la ejecucin de las instrucciones. Como se
muestra en la Figura 6.2, la ALU efecta sus operaciones lgico-aritmticas con dos operan-
dos, uno que recibe desde el registro W (Work), que hace las veces de Acumulador en los
microprocesadores convencionales, y otro que puede provenir de cualquier registro o del pro-
pio cdigo de instruccin. El resultado de la operacin puede almacenarse en cualquier regis-
tro o en W. Esta funcionalidad da un carcter completamente ortogonal a las instrucciones
que pueden utilizar cualquier registro como operando fuente y destino. La memoria de datos
RAM implementa en sus posiciones los registros especficos y los de propsito general.
La arquitectura interna del PIC 16C84 se presenta en la Figura 6.3 y consta de siete blo-
ques fundamentales.
http://librosysolucionarios.net
EN EL INTERIOR DEL PROCESADOR 83
Para analizar de forma global el funcionamiento del procesador nos vamos a centrar en la
ejecucin de una instruccin. Todo comienza con la fase de bsqueda, que la inicia el Conta-
dor de Programa facilitando la direccin de la memoria de instrucciones donde se ubica. Su c-
http://librosysolucionarios.net
84 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
digo binario de 14 bits se lee y se carga en el Registro de Instrucciones, desde donde se trans-
fiere al Decodificador y a la Unidad de Control. A veces, dentro del cdigo de la instruccin,
existe el valor de un operando (literal) que se introduce como operando a la ALU, o bien una
direccin de la memoria de datos donde reside otro operando.
La ALU es la encargada de realizar la operacin lgico-aritmtica que implica la instruc-
cin decodificada. Uno de los operandos lo recibe desde el registro W y el otro desde un re-
gistro o de la propia instruccin.
Tanto el banco de registros especficos, en el que cada uno tiene una misin concreta, como
el de registros de propsito general residen en la RAM. La EEPROM de datos puede contener
datos que no se desee perder al desconectar la alimentacin, pero su acceso est controlado con
unos registros especiales.
Las operaciones de E/S con los perifricos las soportan las Puertas A y B. Existe un Tem-
porizador, TMRO, para encargarse de las funciones de control de tiempos. Finalmente, hay
unos circuitos auxiliares que dotan al procesador de unas interesantes posibilidades de seguri-
dad, reduccin del consumo y reinicializacin.
La arquitectura del PIC16C84 se mantiene para todos los modelos que se derivan de ella, con
las siguientes diferencias:
PIC16F84: La memoria de programa es de 1K x 14 bits, pero de tipo FLASH. La memoria
de datos RAM tiene 68 registros de tamao byte de propsito general, en lugar de 36.
PIC16CR84: La memoria de programa es de 1K x 14 bits tipo ROM y la de datos tiene igua-
les caractersticas que el PIC16F84.
PIC16F83: La memoria de programa es de 512 palabras de 14 bits y la RAM de datos tiene 36
bytes de registros de propsito general.
PIC16CR83: Igual que el PIC16F83, pero la memoria de instrucciones es de tipo ROM, o sea,
slo grabable en fbrica y utilizada en grandes series.
http://librosysolucionarios.net
EN EL INTERIOR DEL PROCESADOR 85
http://librosysolucionarios.net
86 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
Al igual que todos los registros especficos que controlan la actividad del procesador, el
Contador de Programa est implementado sobre un par de posiciones de la memoria RAM.
Cuando se escribe el Contador de Programa como resultado de una operacin de la ALU, los
8 bits de menos peso del PC residen en el registro PCL, que ocupa, repetido, la posicin 2 de
los dos bancos de la memoria de datos. Los bits de ms peso, PC< 12 :8>, residen en los 5 bits
de menos peso del registro PCLATH, que ocupa la posicin OA H de los dos bancos de la me-
moria RAM.
En las instrucciones GOTO y CALL de la gama media los 11 bits de menos peso del PC
provienen del cdigo de la instruccin y los otros dos de los bits PCLATH <4 :3> (vase Fi-
gura 6.5).
Con los 11 bits que se cargan en el PC desde el cdigo de las instrucciones GOTO y CALL,
se puede direccionar una pgina de 2 K de la memoria. Los bits restantes PC< 12 :11> tienen la
misin de apuntar una de las cuatro pginas del mapa de memoria y, en los modelos de PIC
que alcanzan ese tamao, dichos bits proceden de PCLATH<4 :3>.
La Pila es una zona aislada de las memorias de instrucciones y datos. Tiene una estructura
LIFO, en la que el ltimo valor guardado es el primero que sale. Tiene 8 niveles de profundi-
dad, cada uno con 13 bits. Funciona como un buffer circular, de manera que el valor que se
obtiene al realizar el noveno desempilado (pop) es igual al que se obtuvo en el primero.
La instruccin CALL y las interrupciones originan la carga del contenido del PC en el ni-
vel superior o cima de la Pila. El contenido del nivel superior se saca de la Pila al ejecutar
las instrucciones RETURN, RETLW y RETFIE. El contenido del registro PCLATH no es
afectado por la entrada o salida de informacin de la Pila.
http://librosysolucionarios.net
EN EL INTERIOR DEL PROCESADOR 87
ciones de cada banco, de las cuales las 12 primeras estn reservadas a los Registros de Prop-
sito Especfico (SFR), que son los encargados del control del procesador y sus recursos. Al-
gunos de dichos registros se hallan repetidos en la misma direccin de los dos bancos, para
simplificar su acceso (INDF, ESTADO, FSR, PCLATH e INTCON). La posicin apuntada por
la direccin 7 H y la apuntada por la 87 H no son operativas. Los 36 registros restantes de cada
banco se destinan a Registros de Propsito General y, en realidad, slo son operativos los 36
del banco 0 porque los del banco 1 se mapean sobre el banco 0, es decir, cuando se apunta a un
registro general del banco 1, se accede al mismo del banco 0 (vase Figura 6.6).
Para seleccionar el banco a acceder hay que manipular el bit 5 (RPO) del registro ESTADO.
Si RPO = 1 se accede al banco 1 y si RPO = 0 se accede al banco 0. Tras un Reset se accede
http://librosysolucionarios.net
88 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
http://librosysolucionarios.net
EN EL INTERIOR DEL PROCESADOR 89
automticamente al banco 0. Para seleccionar un registro de propsito general no hay que te-
ner en cuenta el estado del bit RPO, porque al estar mapeado el banco 1 sobre el banco 0,
cualquier direccionamiento de un registro del banco 1 corresponde al homlogo del banco 0. En
el direccionamiento directo a los registros GPR se ignora el bit de ms peso, que identifica el
banco, y sus direcciones estn comprendidas entre el valor OxOc y Ox2f en hexadecimal.
Los registros SFR se clasifican en dos grupos. En uno se incluyen aquellos que controlan el
ncleo del microcontrolador (ESTADO, OPTION, INTCON, etc.) y en el otro los que deter-
minan la operatividad de los recursos auxiliares y perifricos. La Figura 6.7 presenta la es-
tructura de estos registros y los valores que toman despus de un Reset. El PIC16F83 y el
PIC16CR83 tienen una memoria RAM con la misma organizacin que el PIC16C84.
http://librosysolucionarios.net
90 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
http://librosysolucionarios.net
EN EL INTERIOR DEL PROCESADOR 91
Direccionamiento Directo
El operando que utiliza la instruccin en curso se referencia mediante su direccin, que viene
i ncluida en el cdigo OP de la misma, concretamente en los 7 bits de menos peso. El banco a
acceder lo determinan los bits RPO y RP1 del registro ESTADO. En el caso del PIC16C(F)84
slo se usa el bit RPO al tener implementados nicamente dos bancos (vase Figura 6.10).
Direccionamiento Indirecto
Este modo de direccionado se usa cuando en una instruccin se utiliza como operando el re-
gistro INDF, que ocupa la direccin 0 de ambos bancos. En realidad el registro INDF no est
implementado fsicamente y cuando se le hace referencia, se accede a la direccin de un ban-
co especificada con los 7 bits de menos peso del registro FSR. El bit de ms peso de FSR jun-
to al bit IRP del registro ESTADO se encargan de seleccionar el banco a acceder, mientras que
los 7 bits de menos peso del FSR apuntan a la posicin. Como slo hay dos bancos en el
PIC 16C(F)84 en este modo de direccionamiento, el bit IRP = 0 siempre (vase Figura 6.11).
http://librosysolucionarios.net
92 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
http://librosysolucionarios.net
EN EL INTERIOR DEL PROCESADOR 93
En la Figura 6.12 se muestra el diagrama de distribucin de los bits del registro ESTADO.
Los bits TO# y PD# indican el estado del procesador en algunas condiciones y no se pue-
den escribir. Por este motivo la instruccin clrf ESTADO deja el contenido de dicho registro
con el valor 000u ul uu, siendo u el smbolo de no cambia. Slo se ponen a 0 los tres bits
de ms peso, el bit Z (cero) se pone a 1 y los restantes no alteran su valor.
A continuacin se describe la misin de los bits del registro ESTADO.
http://librosysolucionarios.net
94 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
Z: Cero
1: El resultado de una instruccin lgico-aritmtica ha sido 0.
0: El resultado de una instruccin lgico-aritmtica no ha sido 0.
http://librosysolucionarios.net
7.1. EL PAPEL DE LOS TEMPORIZADORES
Los PIC 16X8X contienen pocos recursos en comparacin a otros familiares, pero poseen los
suficientes para resolver gran parte de las aplicaciones tpicas de los microcontroladores. So-
bre todo disponen de una memoria de programa tipo EEPROM (PIC16C84) o FLASH
(PIC16F8X), que les posibilita regrabar el programa las veces necesarias hasta su total puesta a
punto.
En este captulo se describen los recursos ms importantes de los PIC16X8X, que son:
Una de las labores ms habituales en los programas de control de dispositivos suele ser deter-
minar intervalos concretos de tiempo, y recibe el nombre de temporizador (timer) el ele-
95
http://librosysolucionarios.net
96 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
mento encargado de realizar esta funcin. Tambin suele ser frecuente contar los impulsos
que se producen en el exterior del sistema, y el elemento destinado a este fin se denomina
contador.
Si las labores del temporizador o contador las asignamos al programa principal robaran
mucho tiempo al procesador en detrimento de actividades ms importantes. Por este motivo se
disean recursos especficamente orientados a estas misiones.
Los PIC16X8X poseen un temporizador/contador de 8 bits, llamado TMRO, que acta de
dos maneras diferentes:
1.a Como contador de sucesos, que estn representados por los impulsos que se aplican a
la patita RA4/TOCKI. Al llegar al valor FF H se desborda el contador y, con el si-
guiente impulso, pasa a 00 H, advirtiendo esta circunstancia activando un sealizador
y/o provocando una interrupcin.
2.a Como temporizador, cuando se carga en el registro que implementa al recurso un va-
lor inicial se incrementa con cada ciclo de instruccin (Fosc/4) hasta que se desbor-
da, o sea, pasa de FF a 00 H, y avisa poniendo a 1 un bit sealizador y/o provocando
una interrupcin (Figura 7.1).
Para que el TMRO funcione como contador de impulsos aplicados a la patita TOCKI hay
que poner a 1 el bit TOCS, que es el que ocupa la posicin 5 del registro OPTION. En esta si-
tuacin, el registro TMRO, que es el ubicado en la direccin 1 del banco 0 de la memoria de
datos, se incrementa con cada flanco activo aplicado en la patita TOCKI. El tipo de flanco acti-
vo se elige programando el bit TOSE, que es el que ocupa la posicin 4 del registro OPTION.
Si TOSE = 1, el flanco activo es el descendente, y si TOSE = 0, es el ascendente. Cuando se
desea que TMRO funcione como temporizador el bit TOCS = 0.
En realidad, los PIC16X8X y los de la gama baja disponen de dos temporizadores, el
TMRO y el Perro Guardin (Watchdog). El primero acta como principal y sobre l recae
el control de tiempos y el contaje de impulsos. El otro vigila que el programa no se cuelgue,
y para ello cada cierto tiempo comprueba si el programa se est ejecutando normalmente. En
caso contrario, si el control est detenido en un bucle infinito a la espera de algn aconteci-
miento que no se produce, el Perro Guardin ladra, lo que se traduce en un Reset que reini-
cializa todo el sistema.
A menudo el TMRO y el Perro Guardin precisan controlar largos intervalos de tiempo y
necesitan aumentar la duracin de los impulsos de reloj que les incrementa. Para cubrir este re-
http://librosysolucionarios.net
LOS RECURSOS FUNDAMENTALES: TEMPORIZADORES, PUERTAS DE E/S Y EEPROM... 97
http://librosysolucionarios.net
98 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
En cualquier momento se puede leer el valor que contiene TMRO, sin detener su contaje. La
instruccin adecuada al caso es movf tmrO,w.
En la Figura 7.3 se ofrece el esquema de funcionamiento del TMRO. Obsrvese que hay
un bloque que retrasa 2 ciclos el contaje para sincronizar el momento del incremento produci-
do por la seal aplicada en TOCKI con el que producen los impulsos internos de reloj. Cuando
se escribe TMRO se retrasan 2 ciclos su reincremento y se pone a 0 el Divisor de frecuencia.
http://librosysolucionarios.net
LOS RECURSOS FUNDAMENTALES: TEMPORIZADORES, PUERTAS DE E/S Y EEPROM... 99
El bit 7 RBPU# (RB Pull-Up) activa, si vale, 0, o desactiva, cuando vale 1, las resistencias
Pull-Up que pueden conectarse opcionalmente en las lneas de la Puerta B.
Se trata de un contador interno de 8 bits que origina un Reset cuando se desborda. Su control
de tiempos es independiente del TMRO y est basado en una simple red R-C. Su actuacin es
http://librosysolucionarios.net
100 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
opcional y puede bloquearse para que no funcione programando el bit WDTE de la Palabra
de Configuracin.
Para evitar que se desborde el Perro Guardin hay que refrescarle previamente. En reali-
dad este refresco consiste en ponerle a cero mediante las instrucciones clrwdt y sleep. El pro-
gramador debe analizar las instrucciones de la tarea y situar alguna de esas dos en sitios estra-
tgicos por los que pase el flujo de control antes de que transcurra el tiempo asignado al WDT.
De esta manera, si el programa se cuelga no se refresca el Perro Guardin y se produce la
reinicializacin del sistema.
La instruccin clrwdt borra al WDT y reinicia su cuenta. Sin embargo, la instruccin sleep,
adems de borrar WDT, detiene al sistema y lo mete en un estado de reposo o de bajo
consumo. Si no se desactiva el Perro Guardin al entrar en el modo de reposo, al completar su
contaje provocar un Reset y sacar al microcontrolador del modo de bajo consumo. Para
desactivar al Perro Guardin hay que escribir un 0 en el bit 2 (WDTE) de la Palabra de Confi-
guracin.
En el registro ESTADO existe un bit denominado TO# que pasa a valer 0 despus del des-
bordamiento del WDT.
http://librosysolucionarios.net
LOS RECURSOS FUNDAMENTALES: TEMPORIZADORES, PUERTAS DE E/S Y EEPROM... 101
Los PIC 16X8X slo disponen de dos puertas de E/S. La Puerta A posee 5 lneas, RAO - RA4,
y una de ellas soporta dos funciones multiplexadas. Se trata de la RA4/TOCKI, que puede ac-
tuar como lnea de E/S o como patita por la que se reciben los impulsos que debe contar
TMRO. La Puerta B tiene 8 lneas, RBO - RB7, y tambin tiene una con funciones multiplexa-
http://librosysolucionarios.net
102 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
das, la RBO/INT, que, adems de lnea tpica de E/S, tambin sirve como patita por la que se
reciben los impulsos externos que provocan una interrupcin.
Cada lnea de E/S puede configurarse independientemente como entrada o como salida, se-
gn se ponga a 1 o a 0, respectivamente, el bit asociado del registro de configuracin de cada
puerta (TRISA y TRISB). Se llaman PUERTAA y PUERTAB los registros que guardan la in-
formacin que entra o sale por la puerta y ocupan las direcciones 5 y 6 del banco 0 de la me-
moria de datos. Los registros de configuracin TRISA y TRISB ocupan las mismas direcciones,
pero en el banco 1 (Figura 7.7).
7.4.1. La Puerta A
Las lneas RA3 - RAO admiten niveles de entrada TTL y de salida CMOS. La lnea
RA4/TOCKI dispone de un circuito Schmitt Trigger que proporciona una buena inmunidad al
ruido y la salida tiene drenador abierto. RA4 multiplexa su funcin de E/S con la de entrada de
i mpulsos externos para el TMRO.
En el circuito de la Figura 7.8 se muestra la adaptacin de las patitas RA3 - RAO a las se-
ales internas del procesador.
Cuando se lee una lnea de la Puerta A (instruccin movfw puertaa) se recoge el nivel lgico
que tiene en ese momento. Las lneas cuando actan como salidas estn lacheadas, lo que sig-
nifica que sus patitas sacan el nivel lgico que se haya cargado por ltima vez en el registro
PUERTAA. La escritura de una puerta implica la operacin lectura/modificacin/escritura. Pri-
mero se lee la puerta, luego se modifica el valor y finalmente se escribe en el latch de salida.
De la Figura 7.8 se desprende que cuando se saca un nivel lgico por una lnea de la Puer-
ta A, primero se deposita en la lnea correspondiente del bus de datos y se activa la seal WRI-
TE, lo que origina el almacenamiento de dicho nivel en la bscula de datos. En esta situacin,
la bscula de configuracin debera contener un 0 para que actuase como salida. Con estos
http://librosysolucionarios.net
LOS RECURSOS FUNDAMENTALES: TEMPORIZADORES, PUERTAS DE E/S Y EEPROM... 103
http://librosysolucionarios.net
104 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
Al reinicializarse el PIC todos los bits de los registros TRIS quedan a 1, con lo que las l-
neas de las puertas quedan configuradas como entradas.
Cada lnea de salida puede suministrar una corriente mxima de 20 mA y si es entrada pue-
de absorber hasta 25 mA. Al existir una limitacin en la disipacin mxima de la potencia del
chip, se restringe la corriente mxima de absorcin de la Puerta A a 80 mA y la de suministro
a 50 mA. La Puerta B puede absorber un mximo de 150 mA y suministrar un total de 100 mA.
Con movf puerta,w se lee una puerta y con la instruccin movwf puerta se escribe. Tambin
existen instrucciones para modificar el valor de un bit particular correspondiente a una lnea de
una puerta con las instrucciones bsf puerta,bit (pone a 1 el bit indicado de la puerta) y bcf puer-
ta,bit. Existen instrucciones de salto condicionales que chequean el valor de un bit de una
puerta y brincan si vale 1 (btfss) o si vale 0 (btfsc).
7.4.2. La Puerta B
Consta de 8 lneas bidireccionales de E/S, RB7 - RBO, cuya informacin se almacena en el
registro PUERTAB, que ocupa la direccin 6 del banco 0. El registro de configuracin
TRISB ocupa la misma direccin en el banco 1.
La lnea RBO/INT tiene dos funciones multiplexadas. Adems de patita de E/S, acta como
patita para la peticin de una interrupcin externa, cuando se autoriza esta funcin mediante la
adecuada programacin del registro INTCON, del que se hablar ms adelante.
A todas las lneas de esta puerta se las permite conectar una resistencia pull-up, de eleva-
do valor, con el positivo de la alimentacin. Para este fin hay que programar en el registro
OPTION el bit RBPU# = O, lo que provoca la conexin de una resistencia a todas las lneas.
Con el Reset todas las lneas quedan configuradas como entradas y se desactivan las resisten-
cias pull-up.
Las 4 lneas de ms peso, RB7 - RB4, pueden programarse para soportar una misin espe-
cial. Cuando las 4 lneas actan como entradas se las puede programar para generar una inte-
rrupcin si alguna de ellas cambia su estado lgico. Esta posibilidad es muy prctica en el
control de teclados. En la Figura 7.9 se muestra el esquema de conexionado entre las patitas
RB7 - RB4 y las lneas correspondientes del bus de datos interno.
El estado de las patitas RB7 - RB4 en modo entrada se compara con el valor antiguo
que tenan y que se haba lacheado durante la ltima lectura de la Puerta B. El cambio de
estado en algunas de esas lneas origina una interrupcin y la activacin del sealiza-
dor RBIF.
La lnea RB6 tambin se utiliza para la grabacin serie de la memoria de programa
y sirve para soportar la seal de reloj. La lnea RB7 constituye la entrada de los datos en
serie, cuando se graba un programa en la memoria de cdigo.
http://librosysolucionarios.net
LOS RECURSOS FUNDAMENTALES: TEMPORIZADORES, PUERTAS DE E/S Y EEPROM... 105
http://librosysolucionarios.net
106 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
http://librosysolucionarios.net
LOS RECURSOS FUNDAMENTALES: TEMPORIZADORES, PUERTAS DE E/S Y EEPROM... 107
http://librosysolucionarios.net
108 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
El registro EECON2 en realidad no est implementado fsicamente. Al leerlo todos sus bits
son 0. Slo se emplea como un dispositivo de seguridad durante el proceso de escritura de la
EEPROM, para evitar las interferencias en el largo intervalo de tiempo que precisa su desa-
rrollo.
Para escribir una posicin de la EEPROM de datos el usuario debe seguir una determinada
secuencia de instrucciones en las que participa el registro EECON2. Este registro, que en rea-
lidad no se halla implementado fsicamente, slo asume funciones de seguridad en el proce-
so, cargndose en l dos valores concretos: 55 H y aa H. La duracin tpica de un ciclo de es-
critura es de 10 ms, que es notablemente larga en comparacin con la velocidad del PIC.
El ciclo de escritura comienza cargando en EEADR la direccin de la posicin a escribir y
en el registro EEDATA el valor a grabar.
http://librosysolucionarios.net
LOS RECURSOS FUNDAMENTALES: TEMPORIZADORES, PUERTAS DE E/S Y EEPROM... 109
http://librosysolucionarios.net
8.1. IMPORTANCIA DE LAS INTERRUPCIONES
Las llamadas a subrutinas mediante la instruccin CALL son desviaciones del flujo de con-
trol del programa originadas por instrucciones, por lo que se consideran sncronas. Se produ-
cen cada vez que se ejecuta dicha instruccin.
Las interrupciones son desviaciones del flujo de control del programa originadas asncro-
namente por diversos sucesos que no se hallan bajo la supervisin de las instrucciones. Di-
chos sucesos pueden ser externos al sistema, como la generacin de un flanco o nivel activo
en una patita del microcontrolador, o bien internos, como el desbordamiento de un con-
tador.
El comportamiento del microcontrolador ante la interrupcin es similar al de la instruc-
cin CALL de llamada a subrutina. En ambos casos se detiene la ejecucin del programa en
curso, se salva la direccin actual del PC en la Pila y se carga el PC con una direccin, que en
el caso de CALL viene acompaando a la propia instruccin, y en el caso de una interrupcin
es una direccin reservada de la memoria de cdigo, llamada Vector de Interrupcin.
La RSI suele comenzar guardando en la memoria de datos algunos registros especficos del
procesador. Concretamente aquellos que la RSI va a emplear y va a alterar su contenido. An-
tes del retorno al programa principal se recuperan los valores guardados y se restaura comple-
tamente el estado del procesador. Algunos procesadores salvan estos registros en la Pila, pero
los PIC no disponen de instrucciones para meter (push) y sacar (pop) informacin de la Pila,
utilizando para este fin registros de propsito general de la memoria de datos.
Los PIC16XSX pueden ser interrumpidos por cuatro causas diferentes, pero todas desvan
el flujo de control a la direccin 0004 H, por lo que otra de las operaciones iniciales de la RSI
111
http://librosysolucionarios.net
112 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
Cuando ocurre cualquiera de los 4 sucesos indicados se origina una peticin de interrup-
cin, que si se acepta y se atiende comienza depositando el valor del PC actual en la Pila, po-
niendo el bit GIE = 0 y cargando en el PC el valor 0004 H, que es el Vector de Interrupcin
donde se desva el flujo de control.
Cada fuente de interrupcin dispone de un sealizador o flag, que es un bit que se pone
automticamente a 1 cuando se produce. Adems, cada fuente de interrupcin tiene otro bit
de permiso, que segn su valor permite o prohbe la realizacin de una interrupcin.
La mayor parte de los sealizadores y bits de permiso de las fuentes de interrupcin en los
PIC16X8X estn implementados sobre los bits del registro INTCON, que ocupa la direccin
OB H del banco 0, hallndose duplicado en el banco 1 (vase Figura 8.2).
1: Permite la ejecucin de todas las interrupciones, cuyos bits de permiso individuales tam-
bin las permitan.
0: Prohbe todas las interrupciones.
http://librosysolucionarios.net
INTERRUPCIONES, RESET Y RECURSOS AUXILIARES 113
http://librosysolucionarios.net
114 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
Siempre que se produzca una interrupcin por cualquier causa, GIE = 0 y el PC se car-
ga con el valor 0004 H, que es el Vector de Interrupcin. Para conocer qu causa ha provo-
cado la interrupcin se exploran los sealizadores, tres de los cuales se ubican en el regis-
http://librosysolucionarios.net
INTERRUPCIONES, RESET Y RECURSOS AUXILIARES 115
tro INTCON y el cuarto, EEIF, que se pone a 1 cuando finaliza la escritura de la EEPROM,
se halla en el bit 4 del registro EECONl.
Los sealizadores deben ponerse a 0 por programa antes del retorno de la interrupcin
y son operativos aunque la interrupcin est prohibida por su bit de permiso correspondiente.
En la Figura 8.3 se ofrece el esquema de la lgica de control que origina la interrupcin.
http://librosysolucionarios.net
116 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
http://librosysolucionarios.net
I NTERRUPCIONES, RESET Y RECURSOS AUXILIARES 11 7
Cuando TMRO se desborda y pasa del valor FF H al 00 H, el sealizador TOIF se pone auto-
mticamente a 1. Si, adems, el bit de permiso de la interrupcin del TMRO, TOIE = 1 y el bit
de Permiso Global de Interrupciones GIE = 1, se produce una interrupcin.
Si no se recarga el TMRO cuando se desborda, sigue contando desde 00 H a FF H. En
cualquier momento se puede leer y escribir este registro, pero cada vez que se escribe se pier-
den dos ciclos de reloj para la sincronizacin.
Cuando se carga inicialmente TMRO con el valor N, o, cuenta 256 -N impulsos, siendo el
tiempo que tarda en hacerlo el que expresa la siguiente frmula:
http://librosysolucionarios.net
11 8 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
http://librosysolucionarios.net
INTERRUPCIONES, RESET Y RECURSOS AUXILIARES 119
En los PIC 16C84 y el PIC 16F8X se puede leer y escribir la EEPROM de datos aunque se
haya protegido el cdigo. En los PIC16CR8X, que disponen de memoria ROM para el cdigo,
existen dos bits para el cdigo de proteccin: uno dedicado a la ROM de cdigo y el otro a la
EEPROM de datos.
En la Tabla 8.1 se presenta el estado lgico que adquieren los bits de los registros SFR de
la memoria de datos cuando se provoca un Reset por una de las cinco causas posibles.
En la Figura 8.5 se muestra el esquema electrnico de los PIC 16X8X para la generacin del
Reset. La patita MCLR# dispone de un filtro interno para eliminar los ruidos y los impulsos
muy pequeos.
El temporizador PWRT (Power-up Timer) activa una salida al cabo de un cierto tiempo
tras la conexin de la alimentacin, que se aplica a una entrada de la AND4, encargada de con-
trolar el Reset del Flip-flop que gobierna la generacin interna del Reset del sistema. Slo es
http://librosysolucionarios.net
120 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
vlida la salida de PWRT si el bit de permiso del PWRT est activo a nivel bajo (PWRT# = 0),
dado que tambin se aplica a la OR7 de la Figura 8.5. El bit PWRT reside en la Palabra de
Configuracin y una de las pocas diferencias que tena el PIC16C84 con el PIC16F84 era que
aqul tena como nivel activo del bit PWRT el alto, mientras que este ltimo tiene el bajo.
El Reset del Flip-flop final se produce cuando la AND4 saca nivel alto, lo que requiere
que sus tres entradas tengan dicho nivel, y eso supone:
a) Que no haya peticiones de Reset y la puerta OR2 tenga su salida a nivel bajo.
b) Que si est activo PWRT finalice su retardo de 72 ms.
c) Que tambin finalice la temporizacin del oscilador OST, que retarda 1.024 - Tosc, tras
completarse el retardo de PWRT.
http://librosysolucionarios.net
INTERRUPCIONES, RESET Y RECURSOS AUXILIARES 121
En el registro ESTADO hay dos bits que indican las condiciones en las que se ha origina-
do el Reset. Se trata de TO# (Timer Out) y PD# (Power Down) (Figura 8.7).
http://librosysolucionarios.net
122 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
La patita MCLR# puede conectarse directamente con VDD, pero debe colocarse una resis-
tencia de valor superior a 100 S2 cuando se conecta con tierra, para evitar los problemas que
puede originar la corriente que circula.
http://librosysolucionarios.net
INTERRUPCIONES, RESET Y RECURSOS AUXILIARES 123
Para entrar en el modo de Reposo hay que ejecutar la instruccin SLEEP y se produce una
situacin muy especial de funcionamiento que parece como si el sistema se ha congelado,
requiriendo el mnimo suministro de energa para mantener el estado del procesador sin nin-
guna actividad.
En Reposo la patita TOCKI se conecta a VDD o a tierra para eliminar la entrada de impul-
sos externos al TMRO. Por otra parte, como se detiene el oscilador principal que genera los im-
pulsos Tosc, tambin se para TMRO. Las patitas de E/S mantienen el estado anterior al modo
de Reposo y las que no se hallan conectadas a perifricos y actan como entradas de alta im-
pedancia se aconseja conectarlas a VDD o a tierra para evitar posibles fugas de corriente. La pa-
tita MCLR# debe conectarse a nivel alto. Sin impulsos de reloj, el procesador se congela y
deja de ejecutar instrucciones hasta que despierte y salga de ese estado.
Si el Perro Guardin contina activo en el modo de Reposo, al entrar en l se borra, pero si-
gue funcionando. Los bits del registro de ESTADO PD# y TO# toman los valores 0 y 1, res-
pectivamente.
Para salir del estado de Reposo (despertar) existen tres alternativas:
I .a Activacin externa de MCLR# para provocar un Reset.
2.a Desbordamiento del Perro Guardin si qued operativo en el modo de Reposo.
3. Generacin de una interrupcin. En este caso, como TMRO est parado slo pueden
producirse los otros tres tipos de interrupcin.
Los bits TO# y PD# se emplean para conocer la causa del Reset que despierta al sistema.
PD# = 0 cuando se ejecuta la instruccin SLEEP TO# = 0 cuando se desborda el Peno Guardin.
http://librosysolucionarios.net
124 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
La programacin en serie de los PIC 16X8X requiere 5 lneas, dos de las cuales se destinan
a soportar los impulsos de reloj de la transmisin (RB6) y los bits de informacin (RB7),
mientras que las otras tres soportan VDD, tierra y la tensin especial de programacin Vpp, que
oscila entre 12 y 14 V (Figura 8.10).
El microcontrolador pasa al modo de programacin/verificacin colocando a nivel bajo
las lneas RB6 y RB7 y aplicando la tensin de programacin V pp a la patita MCLR#/ Y pp. A
partir de ese momento por RB6 se transmiten los impulsos de reloj y por RB7 se transfieren los
bits de datos en serie.
http://librosysolucionarios.net
9.1. REPERTORIO RISC
Todos los modelos de microcontroladores PIC responden a la arquitectura RISC, que signifi-
ca Computador de Juego de Instrucciones Reducido. No slo implica que el nmero de
instrucciones mquina que es capaz de interpretar y ejecutar el procesador es pequeo, como
sucede en los PIC16X8X, que consta de 35, sino tambin que posee las siguientes caracters-
ticas:
Todas las instrucciones tienen la misma longitud, 14 bits en los PIC16X8X, y todos
los datos tambin, un byte. La arquitectura Harvard del procesador asla la memoria de
instrucciones de la de datos, pudiendo tener sus palabras diferente tamao.
125
http://librosysolucionarios.net
126 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
Las instrucciones de los PIC de la gama media, entre los que se encuentran los modelos
PIC 16X8X, tienen 14 bits de longitud. Dicho formato se divide en diferentes campos de bits,
cada uno de los cuales referencia a operandos o elementos que maneja la instruccin en la ope-
racin que realiza en el procesador. Se describen dichos campos:
Los bits de este campo sirven para definir la operacin que realiza la instruccin.
Estos campos de bits definen los registros que actan como operandos en la instruc-
cin. Suelen referenciar la direccin que ocupan en la memoria de datos.
Suele ser un campo de 3 bits que indica la posicin de un bit concreto dentro de un re-
gistro de 8 bits.
En las instrucciones de salto CALL y GOTO hay un campo de bits que contiene la di-
reccin de la siguiente instruccin que hay que ejecutar. Dicho campo de bits se carga
en el PC en las instrucciones de salto incondicional.
Para estudiar los diversos formatos que admiten las instrucciones del repertorio de los
PIC 16X8X se clasifican en cinco grandes grupos, atendiendo al tipo de operacin que desa-
rrollan.
http://librosysolucionarios.net
MANEJANDO EL REPERTORIO DE INSTRUCCIONES 127
Las instrucciones de este grupo tienen como sintaxis: nemnico f d. Cuando d = 1 el regis-
tro destino coincide con el fuente. Por ejemplo, si se desea incrementar el contenido de un re-
gistro, reg1, y guardar el nuevo valor en el mismo, se usa la instruccin inc reg1,1.
http://librosysolucionarios.net
128 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
http://librosysolucionarios.net
MANEJANDO EL REPERTORIO DE INSTRUCCIONES 12 9
http://librosysolucionarios.net
130 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
http://librosysolucionarios.net
MANEJANDO EL REPERTORIO DE INSTRUCCIONES 131
http://librosysolucionarios.net
132 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
Responden a la sintaxis nemnico f d, siendo f y d los dos operandos fuente y destino que se
hallan implementados por registros de 8 bits de la memoria de datos.
El registro f viene referenciado por la direccin de 7 bits que ocupa, mientras que el desti-
no slo por uno, que si vale 0 es el W y si vale 1 es el fuente. En la Tabla 9.1 se muestran las
instrucciones de este grupo con sus caractersticas ms interesantes.
http://librosysolucionarios.net
MANEJANDO EL REPERTORIO DE INSTRUCCIONES 133
Slo hay dos instrucciones en este grupo, pero son muy flexibles. Una de ellas pone a 1 (bsf)
cualquier bit de un registro, mientras que la otra lo pone a 0 (bcf) (vase Tabla 9.2).
http://librosysolucionarios.net
134 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
Slo hay cuatro instrucciones de salto condicional en los PIC de la gama media. Dos de ellas
testan un bit de un registro y segn valga 1 o 0, brincan o no. Recurdese que un brinco es un
saltito pequeo, slo se salta la instruccin siguiente a la condicional. Las otras dos ins-
trucciones incrementan o decrementan un registro y la posibilidad del brinco se efecta si con
esa operacin el valor del registro ha llegado a cero. Cuando estas instrucciones no brincan
porque no se cumple la condicin, tardan 1 ciclo de instruccin en ejecutarse. En caso de que
brinquen, tardan el doble (vase Tabla 9.3).
http://librosysolucionarios.net
MANEJANDO EL REPERTORIO DE INSTRUCCIONES 135
Se trata de media docena de instrucciones que realizan una operacin con un valor inmediato
de 8 bits que se proporciona dentro del formato de la instruccin, el cual slo tiene dos cam-
pos: el del Cdigo OP (6 bits) y el del operando inmediato (8 bits) (Tabla 9.4).
http://librosysolucionarios.net
MANEJANDO EL REPERTORIO DE INSTRUCCIONES 135
Se trata de media docena de instrucciones que realizan una operacin con un valor inmediato
de 8 bits que se proporciona dentro del formato de la instruccin, el cual slo tiene dos cam-
pos: el del Cdigo OP (6 bits) y el del operando inmediato (8 bits) (Tabla 9.4).
http://librosysolucionarios.net
136 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
En este grupo se incluyen las instrucciones que rompen la secuencia normal del programa por-
que alteran el contenido del PC y tambin las instrucciones especiales.
La instruccin de salto incondicional goto carga en el PC la direccin de la nueva instruc-
cin. La instruccin call de Llamada a Subrutina, antes de cargar el PC con la direccin de la
i nstruccin a saltar, salva la direccin de partida guardando en la cima de la Pila el valor actual
del PC. De esta manera, al retornar de la subrutina se saca de la Pila la direccin de regreso
en el programa principal.
Para realizar un retorno de una subrutina se pueden emplear dos instrucciones. La ms ha-
bitual es return, que se limita a extraer de la cima de la Pila el valor que carga en el PC. Otra
ms compleja es retlw k, que, adems de hacer lo mismo que return, carga en W el valor in-
mediato k que contiene. Es decir, devuelve un parmetro desde la subrutina.
Para el final de las interrupciones hay otra instruccin cuyo nemnico es retfie. La opera-
tividad de esta instruccin consiste en cargar en el PC el contenido de la cima de la Pila y po-
ner el bit GIE = 1, pues al comenzar la interrupcin este bit se pone automticamente a 0 para
evitar que cuando se atiende una interrupcin se produzca otra. GIE es el bit de permiso de
todas las interrupciones.
En cuanto a las instrucciones especiales, se han incluido dos en este grupo: clrwdt y sleep. La
primera pone a 0 el contenido del Perro Guardin, es decir, lo refresca o lo reinicializa. El Perro
Guardin si se desborda (pasa de Oxff a 0x00) provoca un Reset. La instruccin clrwdt hay que
colocarla estratgicamente en ciertos puntos del programa para evitar la reinicializacin.
http://librosysolucionarios.net
MANEJANDO EL REPERTORIO DE INSTRUCCIONES 137
http://librosysolucionarios.net
138 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
http://librosysolucionarios.net
10.1. FASES DE DISEO
En el despertar del siglo XXI asistimos a una impresionante carrera mundial por incorporar
microcontroladores a los productos de mayor consumo para mejorar la imagen, las prestacio-
nes, el tamao, el consumo y el precio.
Cada nuevo diseo nace con una idea y termina con el prototipo que la implementa. Du-
rante ese proceso suceden ordenadamente una serie de etapas que hay que cubrir para llegar a
un final feliz. En el desarrollo de cada fase se utilizan un conjunto de herramientas hardware
y software, que segn su potencia reducen ms o menos el tiempo que se consume en com-
pletarla. Pero, aunque sean muy valiosas dichas herramientas, no hay que olvidar que, al
igual que pasa con la mayora de las cosas en nuestro mundo, hay dos pilares fundamentales:
Con este panorama de trabajo se deben manejar excelentes herramientas que sean capaces
de mejorar la idea inicial en el mnimo tiempo. Hasta hace poco, nicamente las grandes em-
presas podan soportar los grandes desembolsos econmicos que exiga la adquisicin de esas
herramientas. Actualmente, los fabricantes de chips se van dando cuenta que para venderlos
por cientos de millones de unidades tienen que facilitar y popularizar su empleo y poner a
disposicin de los usuarios los medios que necesitan.
Microchip se ha esforzado siempre en considerar las posibilidades de los profesionales par-
ticulares, y puede ser que sta haya sido la razn de haber escalado puestos en el ranking mun-
dial de venta de microcontroladores durante la dcada de los noventa y ocupar uno de los pues-
tos de cabeza. La disponibilidad de herramientas eficaces y econmicas justifica la espectacular
139
http://librosysolucionarios.net
14 0 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
aceptacin de los PIC. Cualquier aficionado, estudiante, diseador particular o pequea empre-
sa puede adquirir el instrumental requerido para el desarrollo de proyectos con PIC y cientos de
empresas de todo el mundo compiten por mejorar, ampliar y abaratar todo tipo de herramientas.
Para analizar las prestaciones y funciones que deben soportar las herramientas de desarrollo,
se presentan las fases tpicas de un proyecto basado en un microcontrolador y que se muestran
grficamente en el organigrama de la Figura 10.1. Se ha supuesto que no se dispone de una he-
rramienta muy potente y cara llamada emulador en circuito y que se comenta ms adelante.
Fi
http://librosysolucionarios.net
HERRAMIENTAS Y DISEO DE PROYECTOS 141
Tanto el organigrama de la Figura 10.1 como la tabla de la Figura 10.2 se han hecho pen-
sando en personas particulares que no dispongan de la herramienta de trabajo por excelencia,
el emulador en circuito, cuyo coste suele ser superior a los 1.000 dlares. No obstante, con
las herramientas que se proponen se pueden alcanzar las mismas metas, de manera ms arte-
sanal y con igual precisin y eficacia.
La Figura 10.2 contiene una tabla que describe las caractersticas fundamentales de cada
fase de un diseo con microcontrolador, cuando no se dispone de un emulador en circuito.
http://librosysolucionarios.net
142 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
10.2.1. La cabeza
Es una herramienta que tenemos todos, pero es la ms importante. Con ella se puede obtener la
clave del xito, que es la idea, y tambin puede suplir carencias y dificultades que se presentan
en todos los diseos. Se usa en todas las fases y de su rendimiento depende todo el trabajo.
Cuide bien su cabeza, porque con slo una buena idea que le proporcione puede ser sufi-
ciente.
Tambin para los PIC la empresa Microchip dispone del programa Ensamblador MPASM,
cuyos nemnicos son similares a los utilizados por Intel.
Si trabaja con un lenguaje de alto nivel, como el C, tiene varias opciones de adquirir un
compilador que lo traduzca a cdigo mquina. Destaca el compilador de C creado por Byte
Craft, cuyo coste ronda los 1.000 dlares. Otro ms barato y muy eficaz es el de la empresa
CCS, que distribuye en Espaa Ingeniera de Microsistemas Programados, S. L.
En Estados Unidos hay bastantes empresas que ofrecen compiladores e intrpretes del len-
guaje BASIC, entre las que se distinguen Parallax, microEngineering Labs y Versa Tech.
En Europa este lenguaje no tiene tanta aceptacin.
http://librosysolucionarios.net
HERRAMIENTAS Y DISEO DE PROYECTOS 143
10.2.5. El grabador
El programa objeto, o sea, en cdigo mquina ejecutable, hay que escribirlo en la memoria de
i nstrucciones del microcontrolador. Para realizar esta operacin se necesita un grabador .
Un grabador consiste en una tarjeta electrnica que soporta varios zcalos con diferente n-
mero de patitas, en los que se introducen diversos tipos de microcontroladores. Dispone de cir-
cuitos auxiliares y de estabilizacin de la alimentacin. La grabacin se controla mediante un
programa de comunicacin desde un PC que se adapta al grabador por el puerto paralelo.
http://librosysolucionarios.net
144 MICROCONTROLADORES PIC . DISEO PRCTICO DE APLICACIONES
http://librosysolucionarios.net
HERRAMIENTAS Y DISEO DE PROYECTOS 145
Consiste en una placa de circuito impreso donde viene montado el zcalo del microcontrolador,
l a circuilera auxiliar y la estabilizacin de la alimentacin. Adems, dispone de una zona agu-
jereada para soportar y conectar los perifricos especficos de la aplicacin. Insertando el mi-
crocontrolador con el programa grabado en su zcalo queda completado el prototipo definitivo.
Confeccionado y depurado el programa, grabado el microcontrolador y comprobado el
comportamiento real de gran parte del software mediante los perifricos del sistema de desa-
rrollo, se pasa al montaje del prototipo. Una parte de la circuilera del prototipo siempre es
i gual, porque es la que corresponde a la alimentacin y la auxiliar que acompaa al micro-
controlador (cristal y Reset). Lo que cambian son los perifricos a controlar y que se conec-
tan con las patitas de E/S. Para ellos se destina el rea agujereada.
En la Figura 10.6 se muestra una fotografa de la tarjeta de prototipos PIC18-ME de Inge-
niera de Microsistemas Programados, S. L., que es la que hemos usado en la implementacin
de los ejercicios presentados en este libro. Est montada sobre un pupitre de metacrilato que
tambin contiene el MicroTIC Trainer y un transformador de alimentacin, configurando
una utilsima herramienta de laboratorio.
Es una herramienta cara pero muy potente, que permite realizar un seguimiento completo y r-
pido de todas las fases de un proyecto. Con ella se reproduce el comportamiento del micro-
controlador, pero ahora al emplearse hardware y software se consigue una similitud total de las
http://librosysolucionarios.net
146 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
funciones. Se trabaja en tiempo real y se pueden conectar los perifricos externos a controlar
para analizar los resultados de forma idntica a la que se producira si fuese el microcontrola-
dor emulado el que estuviese ejecutando el programa de la aplicacin.
Presentamos algunos proyectos que hemos considerado suficientes para abrir la mente y esti-
mular la voluntad para que cualquier persona se decida a construir el primero.
http://librosysolucionarios.net
HERRAMIENTAS Y DISEO DE PROYECTOS 147
http://librosysolucionarios.net
148 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
http://librosysolucionarios.net
HERRAMIENTAS Y DISEO DE PROYECTOS 149
segmentos. Las lneas RBO, RB I y RB2 se hallan conectadas a tres pulsadores para el ajuste de
horas, minutos y segundos. Tambin RB 1 y RB2, junto con las 5 lneas de ms peso de la Puer-
ta B, excitan a los segmentos de los displays.
Para que aprecie las ventajas de usar una tarjeta de prototipos hemos montado el reloj di-
gital sobre una placa de propsito general, que se muestra en la Figura 10.1 I . El enorme
http://librosysolucionarios.net
150 MTCROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
tiempo que se malgasta en situar y conectar los componentes, los posibles exores de montaje,
el coste similar de ambas tarjetas y la mediocre presentacin del prototipo no hacen recomen-dable utilizar este procedimiento.
Usando la tarjeta de prototipos PIC18-ME se reducen al mnimo el tiempo y los fallos del
montaje. Las patitas de E/S del PIC estn perfectamente sealizadas y accesibles, haciendo in-
mediata la conexin de los perifricos. El coste de la tarjeta PICIS-ME es similar a la de una
de propsito general del mismo acabado. Finalmente, la presentacin tiene una imagen ms
profesional y el riesgo de averas es nulo (Figura 10.12).
Otra ventaja de las tarjetas de prototipo es que pueden usarse para muchos diseos, ya que
finalizado uno de ellos pueden desoldarse los componentes. Con este fin es recomendable
montar los perifricos con rapinado.
En este proyecto el mdulo principal consiste en conseguir un tiempo patrn de 1 segundo
que vaya incrementando el contador de segundos. Al alcanzar el valor de 60 se pondr a cero
cl contador de segundos y se incrementar el de minutos. El de minutos pasar a cero al llegar
a 60 e incrementar las horas, y stas pasarn a cero al llegar a 24. No hemos juzgado intere-
sante incluir el programa, pero si le interesa puede solicitarlo a Ingeniera de Microsistemas
Programados, S. L., que tambin comercializa el kit y el PIC16C54 grabado.
http://librosysolucionarios.net
HERRAMIENTAS Y DISEO DE PROYECTOS 15 1
Se describe la construccin de un dado electrnico que simula las seis caras de los reales y que
tambin puede tirarse para sacar un nmero aleatorio del 0 al 6. Para la interpretacin elec-
trnica usaremos un display de 7 segmentos sobre el que se visualizar el nmero de cada ti-
rada y, tambin, un pulsador que indique el momento de la tirada. En la Figura 10.13 se
muestra la fotografa de un kit comercial basado en el PIC16C54, que implementa esta apli-
cacin sobre una cajita de baquelita que contiene la pila de 9 V que precisa su alimentacin.
http://librosysolucionarios.net
152 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
http://librosysolucionarios.net
HERRAMIENTAS Y DISEO DE PROYECTOS 153
Hay infinidad de juegos que estn esperando su aportacin para que se jueguen ms, sean
ms atractivos y hagan disfrutar ms a la gente. Las quinielas, la lotera primitiva, la bonolo-
to, las damas, la oca, el mus y el ajedrez le necesitan. Aydelos; adems de entretenerse pue-
de entretener a los dems y, de paso, ganar algn premio por su trabajo.
Este sencillo proyecto va a permitir manejar tiempo y usar la memoria de datos EEPROM. Se
trata de un semforo corriente con tres luces (roja, verde y mbar), que estn simuladas por tres
diodos led de dichos colores. La luz mbar se enciende durante un segundo en la transicin
de las otras dos (vase Figura 10.17).
Mediante tres pulsadores, conectados a las tres lneas de menos peso de la Puerta A, se re-
gula el tiempo que estarn encendidas las luces roja y verde.
Interruptor RAO: Cuando introduce un nivel lgico alto el sistema funciona en modo AJUSTE
y se pueden modificar los tiempos de las luces. Si introduce un nivel bajo, funciona en modo
NORMAL.
Interruptor RAI: Con nivel alto regula el tiempo de la luz roja y con nivel bajo el de la verde.
Interruptor RA2: Con nivel alto incrementa el tiempo de la luz seleccionada y con nivel bajo
se decrementa.
http://librosysolucionarios.net
15 4 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
Las 8 lneas de la Puerta B se conectan a 8 diodos led integrados en una barra que tienen
l a misin de visualizar el nmero de segundos, de 1 a 8, que est encendida la luz. bajo prueba
(Figura 10.18).
http://librosysolucionarios.net
La duracin establecida para el encendido de las luces roja y verde se registra en posiciones
de la memoria de datos EEPROM para no realizar una nueva reprogramacin cuando se des-
conecta la alimentacin.
Es un buen ejercicio para experimentar el manejo de pantallas LCD, que en este proyecto se
usan para visualizar diversos mensajes previamente grabados. Concretamente, se pueden vi-
sualizar hasta 8 mensajes diferentes de acuerdo con el cdigo binario que introduzcan tres in-
terruptores, conectados a las tres lneas de menos peso de la Puerta A. La Figura 10.19 mues-
tra el aspecto de esta aplicacin montada sobre una tarjeta de prototipos PIC 18-ME y la Figu-
ra 10.20 el esquema de conexionado.
El programa de esta aplicacin, debidamente comentado, se halla en el CD, donde tam-
bin podr encontrar el programa HOLA, que contiene las principales rutinas hsicas que se
necesitan para manejar la pantalla LCD.
Como ltimo proyecto se describe una aplicacin que emplea a los dos perifricos ms clsi-
cos en el control de los microcontroladores: teclado y pantalla LCD.
http://librosysolucionarios.net
156 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
http://librosysolucionarios.net
HERRAMIENTAS Y DISEO DE PROYECTOS 157
Para controlar el acceso a un recinto se debe pulsar sobre el teclado la tecla A seguida de
otras cuatro con diferentes dgitos, que constituyen la clave. Si la clave es correcta se activa du-
rante un segundo un rel, conectado a la lnea RAd, que abre la puerta.
Se dan tres oportunidades para introducir la clave correcta. Adems, se utiliza un zumbador
piezoelctrico que genera un sonido beep tras la pulsacin de cada tecla.
Con la tecla C se puede cambiar la clave y la pantalla LCD genera una serie de mensjes
durante la operacin. La clave queda registrada en la memoria EEPROM de datos de forma
permanente.
La Figura 1021 muestra la disposicin de los perifricos sobre la tarjeta PIC I S-ME y la Fi-
gura 10.22 ofrece el esquema de conexionado de los mismos con el PIC.
El programa de la clave se ha incluido en el CD.
http://librosysolucionarios.net
158 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
http://librosysolucionarios.net
11.1. INTRODUCCIN
Se ha reunido en este captulo una coleccin de ejercicios de programacin del PIC 16F84 en
lenguaje Ensamblador. Tiene una finalidad exclusivamente didctica y va introduciendo pro-
gresivamente conceptos sobre la arquitectura del microcontrolador y nuevas instrucciones.
En el desarrollo de programas se van describiendo caractersticas del entorno de programa-
cin MPLAB de Microchip que incluye el programa Ensamblador MPASM y el simulador
MPSIM, los cuales se pueden bajar de las pginas de Internet www.microchip.co m . En el CD
que acompaa a este libro se incluye una versin del simulador SIM2000 cedida por sus au-
tores, Pablo Martnez Garca y Francisco Jos Hernndez Villaln. Se trata de una extraordi-
naria herramienta de aprendizaje que permite comprender en profundidad la actuacin de las
instrucciones a nivel de registros y de lneas de entrada y salida y perifricos. Adems tiene
la opcin de poder simular los programas sobre el sistema de desarrollo Micro'PIC Trainer. La
versin ms actualizada y un soporte tcnico acompaado por mltiples ayudas se pueden
encontrar en la direccin www.simupic.com.
159
http://librosysolucionarios.net
160 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
http://librosysolucionarios.net
EJERCICIOS DE PROGRAMACIN EN ENSAMBLADOR 161
http://librosysolucionarios.net
162 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
Para editar el programa se puede usar cualquier editor que use caracteres ASCII. El ms
a mano es el propio del sistema operativo MS-DOS. En tal caso y si le damos como nombre a
este programa PRIMERO, estando situados con el prompt del DOS se teclea: EDIT PRIME-
RO.ASM. El texto que existe detrs de las directivas, comandos e instrucciones precedido de
; slo tiene la misin de aclarar su contenido, pero es ignorado por el Ensamblador cuando
traduce el programa en cdigo mquina. Son los comentarios.
http://librosysolucionarios.net
EJERCICIOS DE PROGRAMACIN EN ENSAMBLADOR 16 3
El uso de maysculas y minsculas en este fragmento de cdigo obedece a una serie de reglas
o normas de estilo, comunes entre los programadores en ensamblador, que aunque no son obliga-
torias, facilitan la lectura del cdigo fuente. Un resumen de las reglas empleadas es el siguiente:
Una vez editado el programa hay que ensamblarlo. Para ello nos situamos en el directorio
del Ensamblador MPASM y se teclea MPASM. Se rellenan los datos que pide el programa y
pulsando la tecla F10 se realiza el ensamblado. Obtenido el programa en cdigo binario eje-
cutable se puede simular el funcionamiento del mismo utilizando un simulador software. Re-
comendamos el MPASM de Microchip y el SIM2000, que presentamos a continuacin para
que pueda editar y ejecutar programas desde el principio.
Si usted ha sido capaz de entender el programa y la misin de las instrucciones, de mo-
mento ya basta, pero si tiene ganas de comprobar si sus pensamientos son acertados, le propo-
nemos una cuestin.
http://librosysolucionarios.net
164 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
El simulador SIM2000 es una herramienta que trata de facilitar la labor del programador de
PIC. Acaba de comprobar que para realizar un programa, por muy sencillo que sea, deben
utilizarse varios programas: un editor, un ensamblador y un simulador. El SIM2000 trata de in-
tegrar todas esas herramientas en un nico entorno. Como habr comprobado, este libro viene
acompaado por un CD en el que se incluye una copia del programa. Pues manos a la obra,
vamos a probarlo!
Lo primero que se debe hacer es instalar el programa; bsicamente eso se realiza siguien-
do las instrucciones que sobre este apartado encontrar en el Apndice E, tambin se describe
en el contenido del CD.
REPETIMOS LA SUMA?
Vamos a volver a realizar el programa anterior, pero esta vez con el SIM2000. Para eso ejecu-
tamos el programa del simulador pinchando en el icono SIM2000.
Una vez instalado, al iniciar el programa aparece la siguiente pantalla que da la posibili-
dad de acceder a los proyectos existentes, de consulta (ambos de extensin .asm) y de errores
(*.err) simplemente siguiendo la ruta que lleva a donde estn guardados (Figura 11.3).
Como deseamos crear un programa nuevo, no haremos caso de momento a esta posibilidad de
la pantalla inicial, pero la tendremos muy en cuenta porque ser de gran ayuda, ya que entre otras
utilidades dispone la de consultar otros programas sin necesidad de salir del que estamos creando.
http://librosysolucionarios.net
EJERCICIOS DE PROGRAMACIN EN ENSAMBLADOR 165
http://librosysolucionarios.net
166 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
Una vez compilado podremos ver detalladamente los errores (y corregirlos posteriormente)
y la ejecucin del programa con o sin placa Micro'PIC Trainer.
Se puede comprobar que efectivamente el programa suma los contenidos de las posiciones
OxOc y OxOd y deposita el resultado en la 0x0e. Para ello se utiliza el botn Aade o elimina
registros de la lista visual... que se encuentra en la consola de control que aparece al compi-
lar el programa. Tiene el aspecto mostrado en la Figura 11.6.
http://librosysolucionarios.net
EJERCICIOS DE PROGRAMACIN EN ENSAMBLADOR 167
El programa ha sido compilado con el PCM de la casa Custoun Computer Services que co-
mercializa Ingeniera de Microsistemas Programados, S. L., y se ha empleado el SIMUPIC'84
para desensamblar su cdigo y traducirlo al ensamblador. El resultado ha sido el siguiente:
http://librosysolucionarios.net
168 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
El programa resultante est compuesto por 37 instrucciones! Ms de cinco veces las em-
pleadas para realizar el mismo trabajo en ensamblador (no se preocupe si no entiende algunos
de los nemnicos, ya ir comprendiendo su significado segn avance en la lectura). La flexi-
bilidad del C tiene su precio en cuanto a tamao del cdigo y tiempo de ejecucin.
http://librosysolucionarios.net
EJERCICIOS DE PROGRAMACIN EN ENSAMBLADOR 169
La memoria de datos del PIC 16X84 est dividida en dos banco banco 0 y banco l y la
anchura de cada posicin es de 8 bits. En las posiciones 5 y 6 del banco 0 se ubican los regis-
tros PUERTAA y PUERTAB, que contienen el byte de informacin que ha entrado o va a sa-
lir por las lneas de dichas puertas. Con igual situacin, pero en el banco 1, se hallan situados
l os registros TRISA y TRISB que configuran la direccin de cada lnea (vase Figura 11.7).
Cuando se conecta la alimentacin al PIC o se reinicializa su funcionamiento mediante un
Reset, se activa automticamente el acceso al banco 0. Si se desea acceder a posiciones del
banco 1 hay que poner a 1 el bit 5 de un registro llamado ESTADO y que ocupa, duplicado,
dos posiciones que tienen la direccin 3 del banco 0 y del banco 1.
Si, por ejemplo, se quisiese configurar como entradas a todas las lneas de la PUERTAA y
como salidas a las de la PUERTAB, habra que cargar con un 1 a todos los bits de TRISA y con
un 0 a todos los bits de TRISB. Suponiendo que el bit 5 del registro ESTADO valiese 1 y se
pudiese acceder al banco 1, las instrucciones necesarias para realizar la configuracin de las
dos puertas seran:
Cuando se comienza a trabajar por primera vez con el PIC16X84, el bit 5 del registro ES-
TADO se carga automticamente con un 0, con lo que se permite el acceso a las posiciones del
http://librosysolucionarios.net
17 0 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
banco 0 de la memoria de datos. Para configurar las lneas de las puertas hay que acceder a
l os registros TRISA y TRISB que se hallan en el banco 1, por lo que, previamente a cargar en
ellos los valores adecuados, hay que poner a 1 el bit 5 de ESTADO. Una vez configuradas las
puertas, habr que volver a poner a 0 el bit 5 del registro ESTADO para poder leer la informa-
cin introducida por las lneas que funcionan como entradas o para poder enviar al exterior
l os bits colocados sobre las lneas de salida, cuyos valores se hallan en las posiciones 5 y 6
del banco 0.
Para resolver el nuevo ejercicio se comentan tres nuevas instrucciones:
http://librosysolucionarios.net
EJERCICIOS DE PROGRAMACIN EN ENSAMBLADOR 171
http://librosysolucionarios.net
172 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
Con estos ejercicios slo nos proponemos introducir al lector a la programacin del PIC. Si
ha seguido nuestro paso hasta ahora, es una persona inteligente. Si lo ve oscuro es un to listo,
porque con lo poco que hemos dicho es lgico que tenga sombras en el horizonte, pero lo
peor ya ha pasado.
http://librosysolucionarios.net
EJERCICIOS DE PROGRAMACIN EN ENSAMBLADOR 173
i Todava no sabe nada del PIC 16X84 y queremos que encienda varias luces!! Este mtodo
es el que usamos con nuestros alumnos en clase y nos va muy bien, aunque, en confianza, el
xito no se debe al mtodo sino a los alumnos.
PROGRAMANDO EN C
Se propone un ejercicio con el que podr comprobar los conocimientos adquiridos hasta el mo-
mento. Se trata de sumar el valor introducido mediante cuatro interruptores conectados a las l-
neas RAO a RA3 de PA con el valor introducido por otros cuatro interruptores conectados a las
lneas RBO a RB3 de PB. El resultado de esta suma deber situarse en la posicin de la me-
moria de datos OxOc.
Al tratarse de la suma binaria de 2 operandos de 4 bits slo se debern tener en cuenta los
4 bits de menos peso del registro OxOc, aunque puede haber acarreo.
Para comprobar su programa lo mejor es que lo simule con el SIM2000, pero si tiene al-
gn problema o est algo perdido, en el CD que acompaa al libro se encuentra una solucin
bajo el nombre SEGUNDO2.ASM. Su versin puede no coincidir con la propuesta aqu y, sin
embargo, ser correcta. Para ir a un sitio hay muchos caminos.
http://librosysolucionarios.net
174 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
http://librosysolucionarios.net
EJERCICIOS DE PROGRAMACIN EN ENSAMBLADOR 175
Con objeto de no emplear en el programa las direcciones numricas de los registros que se
usan, se asigna a cada uno de ellos una etiqueta identificativa que facilita la comprensin del
programa. Hay registros que se hallan en los dos bancos de la memoria de datos, pero otros
slo en uno. Hay que tener en cuenta que cuando se inicializa el programa tras un Reset, el
procesador apunta automticamente al banco 0 y si se desea acceder al banco 1 es preciso poner
a 1 el bit del registro ESTADO, que se halla en la direccin 3 de ambos bancos. La informa-
cin que entra o sale por la Puerta A se implementa en la direccin 5 del banco 0, mientras que
en esa direccin, pero del banco 1, se halla el registro de configuracin de las lneas de E/S de
la Puerta A. Usaremos la etiqueta PUERTAA para ambos registros, pero accederemos a ca-
da uno segn el banco que est activado en ese momento. Lo mismo haremos para los dos re-
gistros de la Puerta B, a los que denominaremos PUERTAB y se ubican en la direccin 6.
Una vez asignadas las etiquetas a los registros y elementos que maneja el programa, se pasa
a delimitar el mapa de la memoria del programa.
Como tras realizarse un Reset el PC apunta la direccin 0 de la memoria de programa, en
dicha posicin habr que situar la primera instruccin. Al conectarse por primera vez el mi-
crocontrolador a la alimentacin se produce un Reset. La direccin 0 se destina al Vector de
Reset y en ella se sita la primera instruccin del programa.
El PIC 16X84 admite interrupciones, una de ellas al activarse la patita RBO/INT. Cuando
se produce una interrupcin se guarda en la Pila el contenido actual del PC (direccin de re-
s torno) y el PC se carga con la direccin 4, que es la destinada al Vector de Interrupcin. En
este programa no se usan interrupciones y por tanto la direccin 4 de la memoria de programa
http://librosysolucionarios.net
176 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
se podra utilizar libremente, pero teniendo en cuenta que es muy frecuente el uso de inte-
rrupciones, conviene que el programa de aplicacin no invada dicha direccin y en conse-
cuencia comience en la direccin 5. Para iniciar el programa en la direccin del Reset 0 y al
mismo tiempo situar la primera instruccin en la direccin 5, se coloca en la direccin 0 una
instruccin de salto a la 5 de la siguiente forma:
http://librosysolucionarios.net
EJERCICIOS DE PROGRAMACIN EN ENSAMBLADOR 177
Si usted es capaz de simular este programa con el simulador SIM2000 que se incluye con
este libro y cuyo manejo se ofrece en un apndice; si, adems, dispone de un sistema de desa-
rrollo como el Micro'PIC Trainer o de un grabador de PIC para escribir este programa en uno
de ellos y, finalmente, monta en una tarjeta de prototipos el esquema de la Figura 11.9 y al
conectar el PIC grabado le-funciona el ejercicio correctamente, ES UN MONSTRUO!!
De todas formas, si usted no hace nada de lo que le hemos comentado en el prrafo anterior,
pero va entendiendo todo lo que le contamos, YA SABE CMO FUNCIONAN LOS MI~
CRO0ONTROLADORES. Pero tenga en cuenta que hasta que no haga con sus propias manos
una aplicacin y disee un programa y ponga todo ello en marcha, USTED NO SE APRO-
VECHAR DE TODO LO QUE LE PUEDEN DAR LOS PIC.
PROGRAMANDO EN C
El listado que se presenta a continuacin es una de las posibles soluciones, realizadas para el
compilador PCM de la casa Custom Computer Services:
http://librosysolucionarios.net
178 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
http://librosysolucionarios.net
EJERCICIOS DE PROGRAMACIN EN ENSAMBLADOR 179
el dinero que se gastara en ella. Usted elige, pero no se pierda un buen plan por ver cmo se
encienden y apagan unos leds cuando acciona unos interruptores.
La actuacin del Micro'PIC Trainer la puede simular con el SIM2000.
Antes de ejecutar el programa se visualizarn los recursos relevantes (Figura 11.1 l).
http://librosysolucionarios.net
180 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
En este caso conviene ejecutar el programa todo seguido y observamos que las entradas
RAO a RA4 continan tales mientras que RBO a RB7 son salidas y han cambiado la direccin
de las flechas.
Este mismo ejercicio lo puedes ejecutar con placa Micro'PIC Trainer y pulsando en el
i cono del PIC puedes observar tambin cmo quedan las entradas y salidas del PIC (Figu-
ra 11.13).
http://librosysolucionarios.net
EJERCICIOS DE PROGRAMACIN EN ENSAMBLADOR 181
http://librosysolucionarios.net
182 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
http://librosysolucionarios.net
EJERCICIOS DE PROGRAMACIN EN ENSAMBLADOR 18 3
LO MONTAMOS Y NO FUNCIONA
Si el lector, tal y como le aconsejamos, se ha atrevido a montar el diseo propuesto en este ca-
ptulo, es probable que se haya llevado una decepcin al observar que en su montaje el valor in-
dicado por los leds no se incrementa de uno, sino que llega a su valor mximo (0x5F) al instan-
te. Esto es debido a que el tiempo en que se produce el incremento del contador y la
visualizacin del nuevo valor es tan pequeo que no se puede distinguir a simple vista. En par-
ticular, el bucle] consta de 7 instrucciones, con una de salto, con lo que tardar en ejecutarse 8
ciclos de instruccin que suponen 8 ps, ya que a 4 MHz el ciclo de instruccin es de 1 ps.
http://librosysolucionarios.net
184 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
PROGRAMAMOS EN C
ste es otro claro ejemplo de cmo simplifica la programacin el uso de un lenguaje de al-
to nivel. Aunque la eficiencia del cdigo obtenido es mucho mayor programando directamen-
te en ensamblador.
Tal y como se ha hecho en los ejercicios anteriores, editamos y pulsamos el botn de compi-
lar y aparece en pantalla el informe sobre los Errores y Warnings. Finalmente, pulsamos la op-
cin de Ejecucin Sin placa.
Si nos fijamos en el enunciado del ejercicio, nos damos cuenta de que en l se especifica la
frecuencia del reloj a la que debe funcionar el PIC, en este caso a 4 Mhz. Para cambiar la fre-
cuencia de reloj de la simulacin con el SIM2000 se acude a la opcin Proyecto De-
fine Frecuencia, mediante la forma abreviada ALT + F o simplemente pulsando el botn CJ ,
y una vez all se introduce la frecuencia deseada en Hz. Por tanto, si se desea una frecuencia de
4 Mhz, indicaremos 4.000.000 Hz.
Una vez configurada la velocidad de reloj, se ejecuta el programa mediante la opcin
DepuracinEjecutar, pulsando directamente F6 o pulsando el botn 1'. Se aprecia
cmo efectivamente los valores de PB representados en la ventana de visin externa se incre-
mentan de uno en uno hasta alcanzar 0x05f. Para visualizar la ventana de visin externa
ProyectoAgregar Registros, ALT +A o pulsando el botn a, tras lo cual slo te-
nemos que elegir el registro que deseamos visualizar, en este caso el CONTA.
http://librosysolucionarios.net
EJERCICIOS DE PROGRAMACIN EN ENSAMBLADOR 185
El programa de este captulo termina en un bucle infinito, pero el lector se dar cuenta
de que si deja el programa en ejecucin durante el tiempo suficiente, ste volver a su co-
mienzo. Esto se debe al Watchdog o Perro Guardin, que es un temporizador incor-
porado en el PIC que se encarga de provocar un Reset cada cierto tiempo. Este temporiza-
dor es configurable desde un mnimo de 1,8 ms a un mximo de 2,3 segundos. Para evitar
problemas volveremos a la ventana de Consola de Control y confirmamos que el WDT es-
t desactivado (off).
En este ejercicio en vez de esperar a que se desborde el TMRO, se detecta cuando se han
contado 16 impulsos y el bit 4 de TMRO vale 1.
El nico hardware que hay que aadir al circuito bsico de funcionamiento del PIC es el
que corresponde al perifrico a gobernar, tal como se muestra en la Figura 11.16.
http://librosysolucionarios.net
186 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
En la Figura 11.17 se muestra el organigrama que refleja las fases operativas del programa
y subrutina RETARDO, que es la que determina el tiempo de 8,2 ms.
http://librosysolucionarios.net
EJERCICIOS DE PROGRAMACIN EN ENSAMBLADOR 187
Para comprobar que el TMRO ha llegado a 16, 0 = 0001 00002, se explora el momento que
su bit 4 pasa a valer 1. Observe que en este caso no se desborda el TMRO.
Para asignar el Divisor de frecuencia al TMRO con el rango de 1:128 hay que cargar al re-
gistro OPTION con el valor indicado en la Figura 11.18.
http://librosysolucionarios.net
188 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
ERROR DE ENSAMBLADO!
Este programa da un error al ser ensamblado... Por qu? Para hallar una respuesta a esta pre-
gunta debemos recordar una de las caractersticas ms conflictivas de los PIC: el empleo de va-
rios bancos de memoria. A la hora de etiquetar direcciones de memoria hemos asignado a una
direccin de memoria dos etiquetas. En realidad son dos direcciones diferentes, porque estn
en bancos distintos que nada tienen que ver la una con la otra, pero eso es algo que el ensam-
blador no sabe.
Cmo podramos solucionar esto? En principio podramos etiquetar OPTION como 0x81
ya que est en el banco 1 y sta es la direccin que le correspondera si los bancos siguieran un
orden de numeracin absoluto. El caso es que esto tampoco funciona.
Se suelen utilizar dos trucos para evitar este inconveniente. El primero es etiquetar
OPTION como 0x81, pero cada vez que hagamos referencia a esta direccin usamos la eti-
queta OPTION^81 H. Esto evita que el ensamblador d error y hace que el programa se en-
samble correctamente.
La otra solucin, menos engorrosa, es la de utilizar etiquetas compartidas, esto es, una
nica etiqueta que se refiera a varias direcciones. Existen varias formas de hacer esto; nosotros
empleamos:
De esta manera sabremos que la parte de la etiqueta a la izquierda del subrayado se refiere
a la posicin de memoria 001 del banco 0, mientras que la parte derecha se refiere a la misma
direccin, pero del banco siguiente.
El programa, utilizando etiquetas compartidas, quedara del siguiente modo:
http://librosysolucionarios.net
EJERCICIOS DE PROGRAMACIN EN ENSAMBLADOR 189
PROGRAMANDO EN C
http://librosysolucionarios.net
190 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
Existe un problema a la hora de probar este programa con el Micro'PIC Traine, y es que
nuestro programa est preparado para funcionar a 1 MHz, mientras que el cristal de cuarzo del
que dispone la placa es de 4 MHz. La solucin es fcil: hay que modificar nuestro programa.
Como la frecuencia de la placa es cuatro veces mayor habr que multiplicar por cuatro el
valor del contador, y esto en binario significa rotar 16 dos veces a la izquierda.
Hay que comprobar el bit 6 en lugar del bit 4, con lo que el nuevo programa queda as:
http://librosysolucionarios.net
EJERCICIOS DE PROGRAMACIN EN ENSAMBLADOR 191
CORRECCIONES AL PROGRAMA
Ya no sirve controlar el cuarto ni el sexto bit de TimerO, porque los necesitamos todos.
Aunque vigilsemos el sptimo bit, ste se pondra a 1 al llegar a 128 y no a 255. Qu bit
debemos vigilar si queremos saber cundo desborda el Timer0? Usamos el sealizador
que nos indica cundo se produce el desbordamiento del temporizador. Est en el registro
INTCON, direccin Ox0b y Ox8b (se encuentra en los dos bancos). En concreto es el bit
TOIF, que es el bit 2.
http://librosysolucionarios.net
192 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
El sealizador TOIF debe ser borrado por software; de ah la instruccin bcf INTCON,2 an-
tes de retornar a la subrutina de espera.
Supongamos que se desea una temporizacin de un segundo. Ya hemos visto que a 4 MHz,
utilizando el mayor valor para el Divisor de frecuencia y para el temporizador, lo mxi-
mo que hemos conseguido ha sido una temporizacin de 65 ms; valor muy lejano al de-
seado.
Una posibilidad estara en reducir la frecuancia de funcionamiento del PIC, pero vamos
a fijarla en 4 MHz, que es la del cristal que lleva el Micro'PIC Trainer. Le proponemos una
solucin en el CD bajo el nombre QUINT05.ASM. Una pista: si consigue temporizar 8,192
ms (cosa que ya hemos hecho) 122 veces, tendr 999,424 ms, prcticamente un segundo.
http://librosysolucionarios.net
EJERCICIOS DE PROGRAMACIN EN ENSAMBLADOR 193
En la Figura 11.19 se ofrece el esquema general de conexionado del PIC16X84 que corres-
ponde a las especificaciones del ejercicio.
Para controlar el retardo de 1 segundo para el parpadeo del led conectado en la lnea RB7,
se generar una interrupcin cada dicho tiempo por desbordamiento del TMRO.
http://librosysolucionarios.net
194 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
http://librosysolucionarios.net
EJERCICIOS DE PROGRAMACIN EN ENSAMBLADOR 195
http://librosysolucionarios.net
196 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
PROGRAMANDO EN C
La principal novedad de este programa con respecto a los anteriores, programados tambin en
lenguaje C, es la incorporacin de la rutina que maneja la interrupcin por desbordamiento del
Timer 0 y las directivas del compilador para la gestin de las interrupciones. El programa en
cuestin es el siguiente:
http://librosysolucionarios.net
EJERCICIOS DE PROGRAMACIN EN ENSAMBLADOR 197
El siguiente programa controla una alarma conectada a las cuatro puertas de un coche. Se uti-
liza la interrupcin por cambio de estado en una de las patitas RB7 : RB4 y la interrupcin
por flanco activo sobre la patita RBO/INT.
El diseo prctico de esta aplicacin sera algo complicado, por lo que nuestro objetivo ser
nicamente mostrar al lector el programa en ensamblador para que se familiarice con el uso de
interrupciones. El programa se llama ALARMA.ASM.
Para animarle a trabajar con este programa le advertimos que una de las actividades que
ms usan los controladores es la que se dedica a las alarmas.
http://librosysolucionarios.net
198 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
http://librosysolucionarios.net
EJERCICIOS DE PROGRAMACIN EN ENSAMBLADOR 199
Siendo W el registro de trabajo por excelencia y el ms usado en todos los programas, resulta
curioso que no disponga de algunas instrucciones que existen para realizar algunas operacio-
nes con los otros registros. Se presentan algunas soluciones a estas carencias.
http://librosysolucionarios.net
200 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
Para llamar a la subrutina IGUAL en un programa cuando se cumple que el contenido del
REG 1 es igual al del REG2 se puede usar las siguientes instrucciones:
http://librosysolucionarios.net
EJERCICIOS DE PROGRAMACIN EN ENSAMBLADOR 201
Los PIC16X8X disponen de 4 fuentes o causas que provocan una interrupcin. Las cuatro
mandan a la direccin 0004 H de la memoria de cdigo el flujo de control (Vector de Inte-
rrupcin), por eso hay que comenzar averiguando cul de las cuatro ha sido la causante de la
interrupcin para atenderla con su correspondiente rutina. Las mencionadas causas son:
1.a Interrupcin Externa por activacin de la patita RBO/INT (Sealizador INTF).
2.a Desbordamiento del TMRO (Sealizador T0IF).
3.a Cambio de estado en RB 7:4 (Sealizador RBIF).
4.a Fin de escritura en EEPROM (Sealizador EEIF).
Los sealizadores son bits que se ponen a 1 automticamente en cuanto se produce alguna
de las causas de interrupcin. Como se aprecia en la Figura 11.20, tres de estos sealizadores
se ubican en el registro INTCON y el cuarto en el EECONl.
Al iniciarse en el Vector de Interrupcin la Rutina de Servicio de la Interrupcin hay que
averiguar la causa explorando los cuatro sealizadores, para saltar a la rutina especfica, que
llamaremos EXTERNA, TIMER, PUERTAB y EEPROM, segn que se hallen a 1 los seali-
zadores INTF, TOIF, RBIF y EEIF, respectivamente. Se ofrece un programa que explora a los
sealizadores en el orden comentado y al encontrar al primero que valga 1 enva el flujo de
control a su rutina de tratamiento.
Con este ejercicio se pretende manejar todo el conjunto de instrucciones del repertorio, dise-
ar el hardware y confeccionar el software para controlar un visualizador de 7 segmentos
desde varios interruptores.
A las 3 lneas de menos peso de la Puerta A de un PIC16X84 se conectan 3 interruptores
por los que se introduce un nmero binario comprendido del 000 al 111.
A las lneas de la Puerta B se conectan los segmentos de un display, que como se aprecia en
el esquema de la Figura 11.21, son 7 ms el del punto decimal, dp.
http://librosysolucionarios.net
202 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
http://librosysolucionarios.net
EJERCICIOS DE PROGRAMACIN EN ENSAMBLADOR 203
http://librosysolucionarios.net
204 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
El mdulo anterior realizaba el tratamiento del display; falta explorar los 3 interruptores
para averiguar el valor a representar. Se supone que un interruptor cerrado equivale a 1 y abierto
a 0. Por esta razn habr que invertir los niveles introducidos por RA2:0 y despus conver-
tir a decimal el cdigo binario. Para efectuar esta conversin se supone que el bit de menos
peso corresponde con el valor invertido que se introduce por RAO. Si dicho valor vale 1
el peso de este dgito es 1. Si RA1 = 1, el peso de este dgito corresponde a 2, 0, y si RA2 = 1, el
peso de este bit corresponde a 4, 0.
Se propone a continuacin la cabecera del programa del proyecto y la parte correspon-
diente a la exploracin de los interruptores y el clculo del nmero decimal correspondiente
que se carga en W, desde donde ya puede enlazarse con el mdulo del DISPLAY expuesto
anteriormente.
http://librosysolucionarios.net
EJERCICIOS DE PROGRAMACIN EN ENSAMBLADOR 205
Al ejecutarse este mdulo se consigue que el registro de trabajo W quede cargado con el va-
lor que debe visualizar el display de 7 segmentos, por cuyo motivo la ltima instruccin lla-
ma a la subrutina display. En realidad, como el PIC opera en binario, el valor que contiene W
es el mismo que el que se obtendra explorando los 3 interruptores e invirtiendo su valor. Sin
embargo se ha realizado este intil proceso (convertir el valor binario en el mismo valor bina-
rio) para manejar instrucciones muy usuales.
Lo que perseguimos es que intente probar el programa, y de lo que nos alegraramos es que
no le funcionase, porque trampas, si no las hay, aparecen solas. As que a trabajar, porque si lo-
gra implementar el hardware y el software de este ejercicio y le funcionan correctamente, ES
UN ARTISTA!
PROGRAMANDO EN C
Hemos utilizado un array tradicional en lugar de una tabla que haya que recorrer mediante
saltos, mtodo que resulta bastante ms sencillo pero que consume memoria RAM. Por otra
parte, el clculo del valor decimal introducido por la puerta A se sigue haciendo mediante
una serie de condiciones y sumas similar a la programada anteriormente en ensamblador.
http://librosysolucionarios.net
206 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
Para probar nuestro programa con el Micro'PIC Trainer se procede de forma parecida al
SIM2000, pero usando el display de la propia placa. Cargar el programa en el PIC de la placa
y conectar el display de siete segmentos mediante el jumper correspondiente. El display de-
ber visualizar el nmero que se est introduciendo por los interruptores RAO, RA1 y RA2.
Ahora que sabemos manejar un display de siete segmentos, sabemos hacer temporizaciones y
no tenemos ningn problema a la hora de leer interruptores, le proponemos un ejercicio que
combina todo.
Se trata de confeccionar un programa que lea tres interruptores en la Puerta A, situados en
RAO, RA 1 y RA2, y que introducen un 0 al estar cerrados y un 1 al estar abiertos. Contar en un
display conectado a la puerta B (tal y como se muestra en la Figura 11.21) los valores desde
el 0 al introducido por los interruptores de la Puerta A a intervalos de 500 ms. Ejemplo: si se
i ntroduce el valor 011, en el display deber aparecer 0-1-2-3-0-1-2-3 ..., con una pausa
de 500 ms entre nmeros. Suponer que el PIC va a funcionar a una frecuencia de 4 MHz y
realizar la temporizacin mediante interrupciones. Tampoco estara de ms que utilizarse el
Perro Guardin. Existe una solucin a este ejercicio en el CD bajo el nombre SPTI-
M02.ASM.
http://librosysolucionarios.net
12.1. PRESENTACIN
Nuestra experiencia profesional nos ha impulsado a seleccionar una herramienta que nos ha
proporcionado excelentes resultados didcticos y tcnicos en el desarrollo de proyectos reales
basados en microcontrolador. Se trata del laboratorio Universal Trainer, de Ingeniera de
Microsistemas Programados, S. L., que dispone de la instrumentacin bsica para la imple-
mentacin de diseos electrnicos (fuentes de alimentacin, generadores de funciones, etc.) as
como todo tipo de perifricos habituales en las aplicaciones industriales (interruptores, leds,
displays de 7 segmentos, zumbadores, potencimetros, etc.) y una amplia placa protoboard para
conexionar todos los elementos sin necesidad de soldadura.
Junto a dicho laboratorio el fabricante ha desarrollado 7 mdulos de aplicacin desde la
Electrnica Digital y los Semiconductores hasta los microcontroladores, pasando por la Electr-
nica Analgica y los dispositivos lgicos programables PLD. Para el trabajo con microcontrola-
dores existen tres mdulos, uno de los cuales est destinado a trabajar con los PIC desde los dis-
positivos de Parallax y el lenguaje PBASIC, mientras que los otros dos se orientan a trabajar con
el lenguaje Ensamblador sobre el PIC 16F84 o sobre los PIC ms avanzados. Hemos escogido
algunas de las aplicaciones contenidas en el mdulo PIC1 destinadas a trabajar en Ensamblador
con el PIC 16F84 para iniciar en la implementacin real de aplicaciones a nuestros lectores. Dicho
mdulo consta de una coleccin de experiencias, una tarjeta para la grabacin desde el PC del
PIC16F84 y un conjunto de componentes auxiliares que conjuntamente con los existentes en el
Universal Trainer permiten llevar a cabo todas las prcticas. En el volumen 2 de la obra a todo co-
l or titulada Laboratorio de Prcticas de Microelectrnica, editada por McGraw-Hill, se recogen
todas las caractersticas y proyectos destinados a los mdulos con microcontroladores y con PLD.
En el CD que acompaa a este libro se incluyen los programas fuente en Ensamblador de
los ejercicios que se comentan a continuacin.
Describir las herramientas necesarias para desarrollar las prcticas propuestas en el presente
mdulo de Microcontroladores 1, dedicadas al dispositivo PIC 16F84.
207
http://librosysolucionarios.net
208 MICROCONTROLADORES PIC>. DISEO PRCTICO DE APLICACIONES
Se han diseado dos tarjetas de prototipos llamadas PROTO'PIC y PROTO'PIC 2, a elegir por
el usuario, y que se entregan totalmente montadas y comprobadas. Ambas incluyen el dispo-
sitivo PIC16F84 y son capaces de soportar los dispositivos PIC16F873 y 161`876 de mayores
prestaciones. Mediante un sencillo sistema de conexin a base de una regleta de pinos, la tar-
jeta se inserta en el mdulo board del entrenador Universal Trainer. Sobre este entrenador, se
realizan las conexiones elctricas necesarias entre los distintos perifricos y las seales de
E/S del PIC en funcin de la aplicacin a realizar. La tarjeta PROTO'PIC o la PROTO'PIC2 se
usan tambin en el Mdulo PIC2.
La tarjeta PROTO'PIC
Es la ms pequea, sencilla y econmica. Est pensada para aquellos usuarios que dispongan
de algn tipo de circuito grabador como puede ser el Micro'PIC Trainer o el Micro'PIC Pro-
grammer (vase Figura 12.1).
El PIC 161`84 viene montado de serie, junto con el circuito oscilador a 4 MHz. Se ha pre-
visto un zcalo de 28 patillas para insertar y experimentar con los dispositivos PIC de 28 pati-
llas 16F873 y 161`876. De la misma forma, se incluye un cable ICSP (In Circuit Serial Pro
que que se conecta en el zcalo apropiado de cualquier grabador de los anteriormente
citados.
Mediante una hilera de 26 pinos quedan a disposicin del usuario todas las lneas de E/S
del PIC, incluidas las de alimentacin. De esta forma, la tarjeta se inserta sobre el mdulo
board del entrenador Universal Trainer y de forma rpida y fcil se conectan los perifricos
deseados.
El PIC puede grabarse sin necesidad de retirar la tarjeta del circuito en el que se est expe-
rimentando. Cuando se acciona el conmutador S W l la tarjeta queda en el modo de PRO-
GRAMACIN. El PIC recibe informacin desde el PIC a travs del grabador (Micro'PIC
http://librosysolucionarios.net
LOS PRIMEROS DISEOS PRCTICOS 209
Trainer, Micro'PIC Programmer, etc.). Cuando SW1 est sin accionar, el PIC queda en el
modo EJECUCIN. Todas las lneas de E/S del mismo estn disponibles en la hilera de pines.
La Figura 12.2 muestra la serigrafa con la disposicin de componentes de la tarjeta de
prototipos PROTO'PIC. Se puede apreciar claramente la distribucin de las seales presentes
en la hilera de pines de conexin.
La tarjeta PROTO'PIC 2
La finalidad y manejo de esta tarjeta es similar a la anterior. Est diseada para aquellos usua-
rios que no dispongan de ningn tipo de circuito para la grabacin de dispositivos PIC. Dicho
circuito de grabacin est incluido en la propia tarjeta lo que la hace totalmente autnoma y
funcional (vase Figura 12.3).
Se incluye el cable para la conexin con el canal paralelo de un PC a travs del cual y, me-
diante el software de grabacin adecuado, se proceder a la grabacin del dispositivo PIC que
se vaya a emplear. La tarjeta incluye tambin los circuitos de alimentacin y estabilizacin ne-
cesarios para obtener las tensiones de trabajo y grabacin. Es necesario alimentarla desde un
transformador que suministre 12 VAC. Dicho transformador no est incluido en el kit.
http://librosysolucionarios.net
210 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
Con objeto de proporcionar a los usuarios un kit de prcticas totalmente funcional, se inclu-
ye, adems de una de las dos tarjetas anteriormente explicadas, los componentes adicionales
necesarios as como el CD que contiene lo siguiente:
Son ficheros de tipo texto editados con cualquier procesador de textos. El EDIT es el procesa-
dor de textos integrado en el MS-DOS ms extendido y fcil de emplear, cuya pantalla de tra-
bajo se muestra en la Figura 12.5. No obstante, cualquier otro procesador del entorno Windows
puede ser utilizado. La nica condicin es que los ficheros se guarden en formato ASCII. Se
recomienda usar los programas ms actuales recogindolos de la pgina web de Microchip.
Los programas fuente se guardan en ficheros con extensin ASM y contienen las instruccio-
nes, directivas, etiquetas, mensajes, etc., con las cuales el PIC desarrollar una determinada
aplicacin. Un programa fuente en s mismo no puede ser grabado directamente sobre la me-
http://librosysolucionarios.net
LOS PRIMEROS DISEOS PRCTICOS 21 1
moria de programa del PIC. Es necesaria una traduccin previa de dicho programa fuente a c-
digo mquina o hexadecimal. Dicha traduccin recibe el nombre de ensamblado.
En el CD de prcticas se proporcionan todos los programas fuente de los ejercicios pro-
puestos. De esta manera, el usuario evita la tediosa tarea de tener que teclearlos. A pesar de
todo, pueden ser editados para su modificacin, impresin, etc.
El Ensamblador MPASM
Es el encargado de traducir las instrucciones del programa fuente en sus equivalentes en cdigo
mquina para su posterior grabacin sobre la memoria intena del PIC. En el CD de prcticas se
suministra el Ensamblador MPASM de Microchip en su versin MS-DOS. Este fabricante
ofrece, en su pgina web, constantes actualizaciones y mejoras. Tambin contiene ensambla-
dores y entornos de trabajo para Windows, as como los respectivos manuales. Todo ello se
puede recoger desde la pgina http://www.microchip.com. L e recomendamos utilizar la ltima
versin disponible.
El MPASM se ejecuta desde MS-DOS tecleando MPASM desde la lnea de comandos en el
directorio actual o indicando la ruta donde se encuentre. Aparece una pantalla de trabajo como
la mostrada en la Figura 12.6.
En el campo superior Source File se indica ruta y/o el nombre del fichero fuente
(*.ASM) a ensamblar. El resto de campos se completa con una serie de valores por defecto,
como se ve en la figura anterior. El proceso de ensamblado se inicia al pulsar la tecla F10. Tras
ensamblar un fichero fuente se obtienen otros tres ficheros de idntico nombre pero con ex-
tensiones diferentes:
http://librosysolucionarios.net
21.2 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
El software de grabacin
Mediante este software es posible proceder a la grabacin del PIC con el fichero de cdigo
mquina obtenido tras el ensamblado. Los usuarios que adquieran la tarjeta de prototipos
PROTO'PIC se les supone en disposicin de los grabadores Micro'PIC Trainer y/o Micro'PIC
Progranuner (entre otros), y deben estar familiarizados con el correspondiente software de gra-
bacin.
Por su parte, aquellos usuarios que hayan adquirido la tarjeta de prototipos PROTO'PIC 2
pueden utilizar el software PROTOPIC que se incluye en el CD de prcticas y que se explica
a continuacin. La pantalla de trabajo se muestra en la Figura 12.7 y es muy similar al soft-
ware de grabacin de Micro'PIC Trainer y Micro'PIC Programmer.
En la ventana SELECCIN DE MODELO se selecciona el tipo de PIC que se va a
emplear. Las caractersticas ms relevantes del mismo se resumen en la ventana inferior
MODELO ELEGIDO.
Mediante COMPROBACIN DE BORRADO se activa o no la posibilidad de compro-
bar si un PIC est borrado antes de proceder a su grabacin.
Con la ventana PALABRA DE CONFIGURACIN se seleccionan las distintas modali-
dades posibles para configurar el PIC: proteger o no el cdigo interno, activar o no el tempo-
rizador Watchdog (WDT), activar o no el temporizador de arranque (Power Timer), as como
seleccionar el tipo de oscilador.
La ventana superior representa el BUFFER DE MEMORIA DE PROGRAMA donde se
visualiza los cdigos hex. que sern transferidos hacia o desde el PIC.
Los ocho botones de la parte inferior permiten realizar una serie de tareas tpicas. Abrir
Fichero permite seleccionar de entre los ficheros ejecutables *.HEX, el que se desea grabar,
http://librosysolucionarios.net
LOS PRIMEROS DISEOS PRCTICOS 213
transfirindose al buffer de memoria. Programar Todo graba sobre el PIC tanto el conte-
nido del buffer como la palabra de configuracin actual. Por su parte, el botn Programar
Palabra slo graba la palabra de configuracin y no el buffer de memoria. El botn de Ve-
rificar comprueba si el contenido de la memoria de programa del PIC coincide con el del
buffer de memoria.
El botn Leer Pic lee el contenido de la memoria de programa de ste y lo visualiza en
el buffer. El botn Borrar borra completamente el contenido actual del PIC. La comproba-
cin de borrado se realiza mediante el botn Comprobar Borrado. Finalmente, el botn
Salir termina la ejecucin del software de grabacin devolviendo el control al sistema ope-
rativo.
12.2.4. Tutorial
Mediante este sencillo tutorial se pretende resumir de forma clara y concisa todos los pasos
que se deben llevar a cabo para realizar las prcticas propuestas.
12.3.1. Objetivos
El microcontrolador PIC 16F84 dispone de un total de 13 patillas o lneas de E/S a travs de las
cuales se conectan los distintos perifricos que se desean gobernar.
Esas 13 lneas se agrupan en dos puertas. La puerta A est representada en la posicin 0x05
del rea de datos. Cualquier instruccin de un programa que implique leer o escribir sobre esta
posicin, conlleva obtener o sacar informacin binaria por las cinco lneas que componen
dicha puerta y que se denominan RA0-RA4. Los tres bits de ms peso de la posicin 0x05 no
estn reflejados en ninguna lnea, por lo que no tienen ningn valor.
http://librosysolucionarios.net
LOS PRIMEROS DISEOS PRCTICOS 215
Por su parte, la puerta B est representada en la posicin 0x06 del rea de datos. Al igual
que en el caso de la puerta A, cualquier operacin de lectura o escritura sobre esta posicin
permite obtener o sacar informacin binaria por las ocho lneas de que consta esta puerta y que
se denominan 11130-11137.
Paralelamente, asociados a estas puertas existen dos registros llamados TRISA y TRISB.
Se localizan en las posiciones 0x05 y 0x06 del banco 1 del rea de datos, respectivamente.
Segn el valor binario que se almacene en ellos se determinan si las lneas de las puertas A y
B actuarn como entradas o salidas. Un bit 0 en cualquier posicin de cualquiera de estos
registros, configura la lnea de la puerta correspondiente como salida, un bit 1 la configura
como entrada. Cualquiera de las lneas de ambas puertas pueden configurarse, por tanto, como
entrada o como salida de forma independiente.
La Figura 12.8 muestra el esquema de las conexiones a realizar entre el entrenador Universal
Trainer y la tarjeta PROTO'PIC o PROTO'PIC2.
http://librosysolucionarios.net
21 6 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
Consiste en conectar cinco interruptores de entrada EO-E4 a las lneas RAO-RA4 y cinco Ieds
de salida SO-S4 a las lneas RBO-RB4 de la tarjeta PROTO'PIC. La alimentacin de esta tarje-
ta se realiza por los pines I y 3 (GND) y por el pin 2 (+5 Vcc). La fotografa de la Figura 12.9
muestra el montaje del circuito.
El programa que se presenta en el fichero PRACTI.ASM realiza la lectura de los cinco inte-
rruptores de entrada conectados a RAO-RA4. El estado lgico de los mismos se representa en
l os cinco leds de salida conectados a RBO-RB4. La Figura 12.10 presenta el organigrama de
trabajo correspondiente.
En esta primera prctica, el trabajo personal consistir en realizar los pasos necesarios para la
comprobacin del funcionamiento del programa propuesto.
1. Una vez editado el programa fuente (est editado en el fichero EJER1.ASM i ncluido
en el CD de prcticas) se proceder a ensamblarlo. Para ello se utilizar el ensambla-
dor MPASM incluido tambin en dicho disco. Se obtiene as el programa ejecutable
EJERl .HEX.
2. Mediante el software de grabacin PROTOPIC, tambin incluido, se proceder a grabar
el PIC con el fichero ejecutable obtenido en el paso anterior. La palabra de configura-
cin debe establecer al WDT en OFF, el oscilador del tipo XT y la proteccin de cdigo
en OFF. http://librosysolucionarios.net
LOS PRIMEROS DISEOS PRCTICOS 217
3. Suponiendo que el montaje del esquema de la Figura 12.8 ya est realizado sobre el
Universal Trainer, se procede a verificar el correcto funcionamiento del programa.
Basta cambiar de estado los interruptores EO-E4 del entrenador para apreciar el mismo
cambio de estado en los leds SO-S4.
12.4.1. Objetivos
Realizar un programa que controle la salida en funcin de dos seales de entrada distintas.
Es muy frecuente tener que controlar una carga (motor, lmpara, etc.) desde dos puntos situa-
dos a cierta distancia entre ellos. Es el clsico caso de una habitacin con una instalacin
conmutada en la que una lmpara se gobierna desde dos interruptores colocados en posicio-
nes distantes entre s. Desde cualquiera de ellos, se puede gobernar el encendido o apagado
de la lmpara.
http://librosysolucionarios.net
218 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
Se muestra en la Figura 12.11. Se aprecia cmo dos interruptores de entrada se conectan con
l as lneas RAO y RA1. La salida a la lmpara se simula mediante un diodo del conectado en S0.
http://librosysolucionarios.net
LOS PRIMEROS DISEOS PRCTICOS 219
Como novedad, en esta prctica se propone el empleo del WDT. Se trata de un tempori-
zador que est incluido en todos los modelos de dispositivos PIC. Su misin consiste en pro-
vocar un reinicio del sistema cada vez que se sobrepase un intervalo de tiempo determinado.
Dicho intervalo es de 18,2 ms multiplicado por el valor del preescaler interno.
http://librosysolucionarios.net
LOS PRIMEROS DISEOS PRCTICOS 221
http://librosysolucionarios.net
222 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
http://librosysolucionarios.net
LOS PRIMEROS DISEOS PRCTICOS 22 3
12.6.1. Objetivos
Se pretende resolver un automatismo de tipo secuencial en el que la salida no depende del es-
tado actual de las entradas, sino tambin del estado anterior de stas.
Efectivamente, en ocasiones el control de una o varias salidas no depende del estado lgico
actual de las entradas, tambin depende de la secuencia de estados lgicos que se produjeron
sobre esas entradas. El ejemplo propuesto trata de gobernar un zumbador de alarma mediante
dos pulsadores: ON y OFF. Cuando se activa durante un breve espacio de tiempo el pulsador
ON, la alanna se activa y permanece activada aunque dicho pulsador se desactive.
Si se activa el pulsador OFF, la alarma se desconecta y se mantiene en este estado aunque
el pulsador OFF vuelva a la posicin de reposo y se desactive. Si ambos pulsadores permane-
cen activados simultneamente, la alarma permanecer desactivada.
Realmente el ejemplo propuesto responde al funcionamiento de un flip-flop tipo R-S asn-
crono cuya tabla de la verdad se muestra:
RAO y RA 1. La seal de salida RBO se conecta con el zumbador del entrenador a modo de
alarma sonora.
http://librosysolucionarios.net
LOS PRIMEROS DISEOS PRCTICOS 225
http://librosysolucionarios.net
226 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
Explicar el funcionamiento y el manejo del TMR0. Para ello se propone un sencillo ejemplo
consistente en un juego de luces en el que cada lmpara permanece iluminada un determina-
do tiempo controlado por dicho TMR0.
El TMR0 consiste en un temporizador de 8 bits que est presente en todos los miembros de la
familia PIC. Puede trabajar en modo temporizador o en modo controlador. En el primero de los
casos, el TMR0 evoluciona a la cuarta parte de la frecuencia de trabajo del sistema (Fosc/4 =
4Tosc), es decir, cada cuatro pulsos del oscilador principal. Suponiendo un PIC trabajando a
una frecuencia de 4 MHz, la evolucin del TMR0 se produce cada 1 ps.
El TMR0 puede trabajar asociado a un divisor o preescaler que divide los pulsos a contar
por un valor seleccionable comprendido entre 2 y 256. De esta forma se puede aumentar el
tiempo mximo de temporizacin. En general, dicho tiempo se calcula segn la siguiente fr-
mula:
http://librosysolucionarios.net
LOS PRIMEROS DISEOS PRCTICOS 227
Se muestra en la Figura 12.20. Es un circuito muy sencillo en el que basta conectar los led
SO-S7 del entrenador Universal Trainer con las seales RB0-RB7 de la tarjeta de prototipos
PROTO' PIC.
http://librosysolucionarios.net
22 8 MICROCONTROLADORES PI( -. DISEO PRCTICO DE APLICACIONES
l uces en el que las salidas se van activando secuencialmente una tras otra durante un intervalo
de tiempo de 0,1" controlado por el TMRO, dando una sensacin de movimiento. El timer evo-luciona cada 1 microseg. dado que la frecuencia de trabajo es de 4 MHz. Se ha seleccionado un pre-
escaler de 256 y el valor que se carga el TMRO es de 195. La temporizacin as obtenida es
de 49,9 ms. Como esto no es suficiente, dicha temporizacin se manda repetir dos veces, con
l o que el tiempo final transcurrido es de 99,9 ms (0,1 ").
La activacin secuencia) de las salidas se realiza mediante la instruccin de rotacin de
derecha a izquierda del valor binario inicial 00000001.
http://librosysolucionarios.net
LOS PRIMEROS DISEOS PRCTICOS 229
Se propone modificar el programa desde dos puntos de vista diferentes. Por un lado, variar la
temporizacin que mantiene activada cada salida, haciendo que el efecto de movimiento sea
ms o menos rpido. Por otra parte, el programa se puede mejorar haciendo que el sentido de
l a rotacin se pueda seleccionar mediante un interruptor de entrada conectado, por ejemplo, a
l a lnea RA4.
12.8.1. Objetivos
Estudiar el funcionamiento y el manejo del preescaler mediante un ejemplo que permite mo-
dificar el valor del mismo con objeto de realizar temporizaciones variables.
http://librosysolucionarios.net
230 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
http://librosysolucionarios.net
LOS PRIMEROS DISEOS PRCTICOS 2.31
Es muy similar al ejemplo de la prctica anterior. En esta ocasin el valor del preescaler
no es fijo, viene determinado por el estado lgico de los i nterruptores EO-E2 de entrada. Segn
dicho estado, se selecciona uno de los ocho posibles factores de divisin. Cuando estn a 000,
se selecciona el factor 1:2, que corresponder con la temporizacin ms corta. Cuando estn a
111, se selecciona el factor 1:256, que se corresponder con la temporizacin ms larga.
http://librosysolucionarios.net
232 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
EL TMR0, se carga para contar 50 eventos de 1microseg.. Esta cuenta se repite 200 veces, lo que
da un lapsus de 10 ms. Si el preescaler elegido es de 1:2, la temporizacin mnima ser de 20 ms.
Con un preescaler de 1:256, dicha temporizacin aumenta hasta 2,56"".
El efecto que estas variaciones producirn sobre las salidas estar relacionado con la velo-
cidad a la que se van encendiendo secuencialmente cada una de las luces.
Al igual que en la prctica anterior, se sugiere hacer las modificaciones de programa ne-
cesarias para variar los tiempos as como las secuencias de encendido de las lmparas de
salida.
Explicar el funcionamiento y manejo del temporizador WDT as como sus posibles aplicacio-
nes. Igualmente se emplea la instruccin SLEEP como mtodo para colocar el PIC en el modo
standby de bajo consumo.
http://librosysolucionarios.net
LOS PRIMEROS DISEOS PRCTICOS 233
http://librosysolucionarios.net
23 4 MICROCONTROLADORES <PIC>. DISEO PRACTICO DE APLICACIONES
Analizar el funcionamiento del circuito comprobando que, segn el estado de EO-E2, la cuenta
avanza ms o menos rpido. Si los tres interruptores estn a 0, el preescaler seleccionado para
el WDT es de un factor de 1:1. La cuenta se incrementa cada 18,2 ms. Si por el contrario esos
i nterruptores estn a 1 , el factor es de 128 y la cuenta evoluciona cada 2,3 (0,018 x 128).
12.10.1. Objetivos
Analizar otro modo de funcionamiento del TMR0, que consiste en la posibilidad de contar
eventos o pulsos externos.
El TMR0, tiene dos modos de trabajo: modo temporizador y modo contador. Ambos modos
son bsicamente iguales. Se dice que el TMR0, trabaja en el modo temporizador, tal y como se
ha venido utilizando hasta ahora, cuando la base de tiempos es la propia frecuencia del siste-
ma (Fosc/4 = 4Tosc). Dado que la frecuencia es conocida, resulta fcil controlar con exacti-
tud el valor de una determinada temporizacin. Basta multiplicar 4 veces el perodo de dicha
frecuencia de trabajo (4Tosc) por el valor cargado con el propio TMR0, y por el preescaler
seleccionado (si ste est asignado al TMR0,
Sin embargo, el TMR0, tambin puede temporizar en base a una frecuencia o pulsos exter-
nos que se introducen por la patilla RA4/TOCKI. Como esa frecuencia puede ser desconoci-
da o los pulsos no tienen por qu ser peridicos, en lugar de temporizar se habla de contar.
El bit TOCS del registro OPTION permite seleccionar entre estos dos modos de trabajo. Por
otra parte, el bit TOSE del mismo registro permite establecer si los pulsos externos sern con-
tados en cada flanco ascendente o descendente. El empleo del TMR0, en el modo contador es
similar al ya conocido. Se selecciona el preescaler (si procede), se carga el TMR0, con el n-
mero de pulsos a contar (su complemento a 2, dado que es un contador ascendente) y se de-
tecta el final de la cuenta cuando el bit TOIF del registro INTCON pasa a nivel 1.
http://librosysolucionarios.net
236 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
http://librosysolucionarios.net
LOS PRIMEROS DISEOS PRCTICOS 237
Ensamblar el programa fuente y grabarlo sobre el dispositivo PIC. Se recuerda que el WDT
debe quedar activado, de lo contrario el led SO quedar activado permanentemente al no fina-
lizar nunca la situacin de standby producida por la instruccin SLEER
Comprobar igualmente que, variando el valor binario de los interruptores EO-E3 de entrada,
se vara el nmero de pulsos a contar.
12.11.1. Objetivos
Una interrupcin provoca que el procesador cancele temporalmente el trabajo en curso, tam-
bin llamado programa principal, y pase a ejecutar otra tarea o programa, llamado progra-
ma de tratamiento de la interrupcin. Cuando se produce una interrupcin, el sistema guarda,
de forma automtica, la direccin actual del PC sobre un rea de registros especiales llamada
pila. Dicha pila consta de 8 niveles o registros que se gestionan automticamente y no son
accesibles por los programas del usuario.
Seguidamente, el PC se carga con una direccin fija llamada vector de interrupcin, que
en el caso de los PIC es la 0x004. A partir de esta direccin comienza el programa de trata-
miento oportuno. Al final de ste se coloca la instruccin RETFIE, que recupera desde la pila
y devuelve al PC la direccin de donde parti. Se contina as con la ejecucin del programa
principal.
El TMRO es uno de los perifricos que pueden provocar, si se desea, interrupcin cada vez
que finalice la temporizacin. Para ello basta activar el bit GIE del registro INTCON, que otor-
ga un permiso general de interrupciones, y el bit TOIE que habilita la interrupcin del TMRO
en particular.
Cuando se provoca y acepta una interrupcin, el bit GIE se pone a 0 automticamente,
volviendo a 1 cuando se ejecuta la instruccin RETFIE al final del tratamiento. De esta
forma se garantiza que durante un tratamiento de interrupcin no pueda provocarse ningu-
na otra.
Para hacer una demostracin del funcionamiento de la interrupcin del TMRO, se propone
montar el circuito representado en la Figura 12.32.
http://librosysolucionarios.net
LOS PRIMEROS DISEOS PRCTICOS 239
http://librosysolucionarios.net
240 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
Ensamblar el programa fuente, grabarlo sobre el PIC y montar el circuito propuesto para
comprobar el funcionamiento.
Se puede observar que la reaccin de las salidas RBO y RB 1 en respuesta a las entradas
RAO y RA l es prcticamente instantnea, pero no por ello la intermitencia de la salida RB7
deja de producirse.
Se sugiere aumentar el tiempo de esa intermitencia, hacindola ms lenta. Se observar que
l a reaccin de las salidas a l as entradas sigue siendo instantnea.
http://librosysolucionarios.net
LOS PRIMEROS DISEOS PRCTICOS 241
http://librosysolucionarios.net
242 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
Los led S0 y S7 se conectan a las salidas RAO y RA1 respectivamente. Se activarn duran-
te un cierto tiempo cada vez que se provoque la interrupcin correspondiente.
El fichero PRACT l O.ASM del CD de prcticas contiene el programa fuente al que responde el
organigrama de trabajo en la Figura 12.37.
Se trata de demostrar el funcionamiento y manejo de la interrupcin externa INTF y la de
por cambio de estado en RB4-RB7. Cuando se produce una de las dos, se activa RAO (el led
S0) y RAl (led S7) respectivamente.
http://librosysolucionarios.net
LOS PRIMEROS DISEOS PRCTICOS 243
El programa principal, una vez inicializados los registros, pone al PIC en el modo standby
de forma indefinida. Dicho modo queda cancelado cuando se produce una interrupcin. El pro-
grama de tratamiento analiza la fuente de interrupcin y realiza los tratamientos oportunos. En
caso de producirse la interrupcin externa por RBO/INT se activa el led conectado a RAO. Si
se produce la interrupcin por el cambio de estado de cualquiera de las lneas RB4-RB7 conec-
tadas a sendos interruptores, se procede a activar el led conectado a RA1.
Ambos led se desactivan tras una temporizacin de 1 segundo controlada por el TMRO.
ste, con un preescaler de 256 y con un valor de 195, genera una temporizacin de 50 ms que
se repite tantas veces como indique la variable Temp (20).
Finalizada la temporizacin, ambas salidas se desconectan. Se reponen los correspondien-
tes flags de interrupcin y se retorna al programa principal que coloca nuevamente al PIC en el
modo standby.
Merece la pena comentar que la reposicin de las interrupciones se realiza tras la tempori-
zacin. De esta forma se evitan posibles falsas interrupciones provocadas por los rebotes tpi-
cos de los interruptores del entrenador.
http://librosysolucionarios.net
INTRODUCCIN
Todos los programas, ejercicios y proyectos de este libro pueden ser implementados con un
PIC16X84, bien sea la versin EEPROM con el PIC16C84, o la versin FLASH con el
PIC 16F84. La razn de esta eleccin es que sobre su memoria de instrucciones se pueden
grabar y borrar los programas. Ambos modelos de microcontroladores son idnticos, excepto
en los siguientes detalles:
CARACTERSTICAS GENERALES
245
http://librosysolucionarios.net
246 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
DIAGRAMA DE CONEXIONES
La distribucin y denominacin de las patitas del PIC16X84 se presenta en la Figura A.1
MEMORIA DE PROGRAMA
Tiene implementadas 1 K palabras de 14 bits cada una, ocupando las direcciones comprendi-
das entre la 0x0000 y la 0x03FF. Los modelos de la gama media alcanzan 8 K de capacidad
mxima (vase Figura A.2).
http://librosysolucionarios.net
APNDICE A - GULA RPIDA DEL PIC16X84 247
Las posiciones ID de Identificacin sirven para que el usuario grabe en sus cuatro bits de
menos peso los cdigos que desee.
La Palabra de Configuracin slo tiene 5 bits vlidos y sus smbolos y misiones se mues-
tran en la Figura A.3.
Consta de dos bancos de 128 bytes cada uno. En el PIC 16C84 slo estn implementadas las 48
primeras direcciones de cada banco. En las 12 primeras se ubican los registros de propsito es-
pecfico (SFR) y en las 36 siguientes los registros de propsito general (GPR). Sin embargo,
l os 36 registros de propsito general del Banco 1 se mapean sobre el Banco 0, dejando redu-
cidos a 36 los registros operativos de este tipo. En el PIC16F84 la organizacin de la RAM es
http://librosysolucionarios.net
248 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
similar, pero los registros de propsito general son 68 en cada banco, siendo efectivos slo
68, puesto que los del Banco 1 se mapean sobre el Banco 0 (vase Figura A.4).
PUERTAS DE E/S
Hay dos puertas de E/S: Puerta A y Puerta B.
Puerta A
Puerta B
http://librosysolucionarios.net
APNDICE A - GUA RPIDA DEL PIC16X84 249
http://librosysolucionarios.net
250 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
REGISTROS DE CONTROL
En las Figuras A.5 a la A.9 se expone grficamente la distribucin y la misin de los bits de los
registros de control (SFR) ms importantes, que son:
http://librosysolucionarios.net
APNDICE A - GUA RPIDA DEL PIC 16X84 251
http://librosysolucionarios.net
252 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
http://librosysolucionarios.net
APNDICE A - GUA RPIDA DEL PIC 16X84 253
JUEGO DE INSTRUCCIONES
En la Figura A.10 se ofrece el conjunto de las 35 instrucciones que componen el repertorio del
PIC 16X84.
http://librosysolucionarios.net
254 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
http://librosysolucionarios.net
PRESENTACIN
El SIM2000 es un programa de simulacin del PIC16F84 y del sistema de desarrollo Mi-
cro'PIC Trainer, desarrollado por Pablo Martnez Garca y Francisco Jos Hernndez Villa-
ln, dirigidos por el profesor Manuel Snchez Alonso en la Escuela de Ingeniera Industrial
de Cartagena. Est dirigido a quienes se inician en el diseo y programacin de aplicaciones
con los microcontroladores PIC y en especial con el PIC16F84. Posee excelentes herramien-
tas para la depuracin y seguimiento de los programas lo que le confiere un valor didctico
excepcional.
En el CD que acompaa a este libro se incluye una versin del mismo, pero los autores
continuamente la actualizan y la potencian, por lo que es recomendable recogerla libremente
de Internet en la direccin www.simupic.co m. All tambin se pueden encontrar numerosas
ayudas y atencin tcnica.
El entorno de programacin del SIM2000 es propio y desde l se puede invocar directa-
mente al compilador MPSAM y se pueden corregir errores sobre el mismo cdigo que se uti-
liz inicialmente.
Dispone de un Editor que mantiene la estructura general de las aplicaciones desarrolladas
en el entorno Windows. Al cargar la aplicacin el editor posee un Explorador de Proyectos
que muestra todas las unidades del PC en el que se ejecuta el programa. Adems el editor dis-
tingue claramente entre las instrucciones y los operandos con distintos colores.
Un factor atrayente de este software es el Sistema de Ayuda en Lnea, que proporciona
una extraordinaria informacin al usuario cuando se halla en la fase de desarrollo del pro-
grama.
Tambin es novedosa la forma de gestionar los errores por la comodidad que supone al
usuario no tener que consultar el archivo "<Nombre de_programa>.ERR, pues el editor saca
una ventana con el listado de todas las incidencias generadas en el ensamblado.
El entorno de simulacin del SIM2000 es uno de los ms completos y atractivos de los
existentes en el mercado, pues muestra la mayor cantidad de informacin posible durante el
tiempo de simulacin. De forma permanente se visualizan registros muy concretos: Banco ac-
tual de memoria en donde se encuentra el programa, Asignacin del Divisor de Frecuencia y
Valores de la Palabra de Configuracin.
255
http://librosysolucionarios.net
256 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
http://librosysolucionarios.net
INTRODUCCIN
La prctica totalidad de los ejercicios propuestos en este libro se pueden realizar con el
Micro'PIC Trainer (microPIC Trainer) de Ingeniera de Microsistemas Programados, S. L.,
que nos ha permitido incluir un breve resumen de uno de los captulos del Manual del Usua-
rio que acompaa a dicho sistema de desarrollo. Slo se describe el esquema electrnico y el
funcionamiento del sistema, que creemos puede ser de inters para los lectores como ejercicio
de aplicacin.
El sistema microPIC Trainer consiste en un equipo completo para la evaluacin de aplicaciones
basadas en los microcontroladores PIC de gama media de Microchip. Dispone de una serie de
perifricos bsicos de E/S con los que se puede verificar el funcionamiento de una aplicacin,
as como la circuitera necesaria para la grabacin de todos los modelos de microcontroladores
PIC de gama media de 18 y 28 patitas. Un tutorial multimedia de montaje y manejo est con-
tenido en el CD que acompaa al libro.
Se denomina sistema de desarrollo el equipo fsico y el conjunto de programas que con-
forman una herramienta capaz de desarrollar todas las operaciones necesarias para disear un
proyecto basado, en este caso, en un microcomputador programable, que al estar incorporado
en un circuito integrado recibe el nombre de microcontrolador.
Las caractersticas del sistema son las siguientes:
257
http://librosysolucionarios.net
258 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
LA FUENTE DE ALIMENTACIN
EL MICROCONTROLADOR
El sistema microPIC Trainer est diseado para trabajar con cualquier modelo de microcontrolador
PIC de la gama media encapsulado con 18 o 28 patitas. sta es la razn de la existencia de dos
zcalos para soportar ambos tipos.
Segn el esquema de la Figura C. l , las diferencias bsicas entre los modelos de 18 y 28 pa-
titas consiste en que los primeros disponen de una puerta A de 5 lneas (RA0-RA4) y una
http://librosysolucionarios.net
http://librosysolucionarios.net
260 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
puerta B de 8 (RB0-RB7), mientras que los segundos disponen de una puerta A de 6 lneas
(RAO-RB5), una puerta B de 8 (RBO-RB7) y una puerta C de 8 lneas (RCO-RC7).
En pPIC Uainer se emplean las 5 lneas de la puerta A y las 8 de la puerta B, que son co-
munes a los dos modelos de PIC. En cualquier caso, las lneas de estas puertas, junto con las
de la puerta C, estn disponibles para el usuario a travs del conector PIC-BUS de expansin.
La frecuencia de trabajo para cualquiera de los dos tipos de PIC queda establecida median-
te el cristal de cuarzo X1 y los condensadores C6 y C7. Esta es, por defecto, de 4 MHz, aunque
el usuario puede modificarla cambiando los valores del cristal y los condensadores segn las
caractersticas tcnicas del modelo de PIC elegido.
ENTRADAS DIGITALES
Estn formadas por 5 interruptores (SW2-SW6) conectados a las lneas RAO-RA4 de la puer-
ta A, capaces de introducir niveles lgicos 1 y 0 por las mismas. Dichas lneas pueden
programarse para actuar de diferentes formas. As, RAO-RA3 puede actuar, adems, como en-
tradas analgicas y RA4 como entrada exterior de pulsos de reloj para el TMRO (TOCKI).
Estas lneas tienen asociados unos jumpers con los que se selecciona el tipo de entrada que
se les va a aplicar. Los jumpers J8(0)-J8(3) seleccionan individualmente si por RAO-RA3 se
van a introducir entradas digitales con los interruptores SW2-SW5, entradas analgicas con
los potencimetros P2-P5 o, simplemente, si estas lneas van a quedar desconectadas tanto de
los interruptores como de los potencimetros y poder as usarse con otros perifricos distintos.
Con el jumper J9 se selecciona si RA4 acta como entrada digital procedente del interrup-
tor SW6, entrada de seal de reloj para el TMRO (TOCKI), que se aplica desde el exterior me-
diante el conector J2(1), o simplemente, si esta lnea va a quedar desconectada y libre, poder
usarla con otro perifrico distinto.
ENTRADAS ANALGICAS
Estn formadas por 4 resistencias variables o potencimetros (P2-P5), que se alimentan con
l a tensin general de +5 V. Segn se mueva el eje de cualquiera de estos potencimetros, se ob-
tiene una tensin variable entre 0 y 5 V por los terminales centrales (cursores) de los mismos.
La tensin variable presente en cualquiera de los 4 cursores de los potencimetros P2-P5
va a parar a los jumpers J8(0)-J8(3), respectivamente. Si cualquiera de ellos est en la posicin
analgico, la lnea correspondiente (RAO-RA3) recibir dicha tensin para su posterior pro-
cesamiento.
Conviene recordar que aunque a nivel de hardware una o ms lneas se configuren como
entradas analgicas o digitales mediante los jumpers J8(0)-J8(3), el sofware de control del PIC
debe ir acorde con las mismas, programando adecuadamente las caractersticas de dichas l-
neas de entrada.
SALIDAS DIGITALES
Estn conectadas a la puerta B y consisten, por una parte, en una barra de diodos leds lumino-
sos (D8) que representan el estado lgico de las seales RBO-RB7, y por otra, un display alfa-
numrico de 7 segmentos.
http://librosysolucionarios.net
APNDICE C - BREVE DESCRIPCIN DEL MICRO'PIC TRAINER 261
EL MDULO LCD
Se trata de un mdulo de visualizacin alfanumrico de cristal lquido, capaz de presentar 21-
neas con 16 caracteres cada una.
Aplicndole los cdigos necesarios se puede provocar diferentes efectos de visualizacin
como parpadeo, scroll, activacin de un cursor, etc. Incluso es posible la generacin de nuevos
caracteres definidos por el usuario.
Las 8 lneas de datos DO-D7 estn conectadas con las 8 lneas de la puerta B (RBO-RB7).
Esta puerta, a veces, acta como salida del PIC y entrada hacia el mdulo. Por ella se le apli-
can los diferentes cdigos de control para realizar diferentes efectos de visualizacin, as
como los cdigos ASCII de los caracteres a visualizar. En otras ocasiones la Puerta B debe
actuar como entrada hacia el PIC, ya que a su travs el mdulo LCD devuelve cdigos indi-
cando su estado interno, el contenido del buffer de memoria interna, etc.
El mdulo est conectado a las lneas RAO, RA1 y RA2 de la puerta A del PIC. Estas lneas
actan como salida y se emplean para enviar las siguientes seales de control al mdulo:
http://librosysolucionarios.net
262 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
EL CIRCUITO GRABADOR
http://librosysolucionarios.net
APNDICE C - BREVE DESCRIPCIN DEL MICRO'PIC TRAINER 263
EL CONECTOR DE EXPANSIN
http://librosysolucionarios.net
265
http://librosysolucionarios.net
http://librosysolucionarios.net
http://librosysolucionarios.net
http://librosysolucionarios.net
http://librosysolucionarios.net
http://librosysolucionarios.net
http://librosysolucionarios.net
A continuacin se describe el contenido del CD que acompaa a este libro y que se divide en
dos secciones: Ejercicios y Software.
273
http://librosysolucionarios.net
274 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
Prctica 3
Segn el estado de los interruptores RAO y RA l, activar los leds RBO-RB7 co-
nectados a la puerta B, conforme a la siguiente tabla de la verdad:
http://librosysolucionarios.net
CONTENIDO DEL CD 275
Prctica 4
Prctica 5
Prctica 6
Prctica 7
Prctica 8
http://librosysolucionarios.net
276 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
SOFTWARE
MPLAB
El MPLAB es un entorno de desarrollo integrado que le permite escribir y codificar los mi-
crocontroladores PIC de Microchip para ejecutarlos. El MPLAB incluye un editor de texto,
funciones para el manejo de proyectos, un simulador interno y una variedad de herramientas
http://librosysolucionarios.net
CONTENIDO DEL CD 277
que lo ayudarn a mantener y ejecutar su aplicacin. Tambin provee una interfase de usuario
para todos los productos de Microchip, programadores de dispositivos, sistemas emuladores y
herramientas de tercer orden. Es un software gratuito y puede descargarse libremente la ltima
versin desde la pgina oficial de Microchip http://www.microchip.com.
SIM2000
SIM2000 es un proyecto desarrollado por Pablo Martnez Garca y Jos Hernndez Villaln,
alumnos de la UPCT, y dirigido por Manuel Snchez Alonso. Se desarroll como alternativa
a los entornos de programacin y simulacin existentes en la actualidad para microcontrola-
dores PIC161784. Incorpora una opcin de simulacin con la placa Micro'PIC Trainer que
permite simular los programas en dicha placa a travs del entorno del programa, como si tu-
viramos la placa delante nuestro.
MPASM
Es el ensamblador oficial de Microchip, soporta todos los modelos de PIC existentes en el
mercado y existe en versin MS-DOS (MPASM.EXE) o en versin Windows (MPASM-
WIN.EXE). Es un software gratuito y puede descargarse libremente la ltima versin desde
la pgina oficial de Microchip http://www.microchip.com. E l MPASM no necesita instala-
cin, es suficiente con copiar todos los archivos contenidos en su carpeta al disco duro o eje-
cutarlo directamente desde el CD.
PICME-TR
Software de conexin al PC para el sistema de desarrollo Micro'PIC Trainer, de Ingeniera de
Microsistemas Programados, S. L. Soporta gran variedad de microcontroladores PIC. No ne-
cesita instalacin, funciona bajo sistema operativo MS-DOS. Es un software libre que puede
ser descargado desde la pgina oficial de Ingeniera de Microsistemas Programados, S. L.
http://www.microcontroladores.com.
WINPICME-TR
Software de conexin al PC para el sistema de desarrollo Micro'PIC Trainer. Actualmente
slo soporta el microcontrolador PIC16F84, pero peridicamente se le irn aadiendo nuevos
modelos. No necesita instalacin, funciona bajo los sistemas operativos Windows 95, 98,
Me, NT, 2000 y XP. Es un software libre que puede ser descargado desde la pgina http://
www.microcontroladores.com.
http://librosysolucionarios.net
278 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
STAMP EDITOR
El PBASIC Stamp EDITOR permite comunicar el PC con un mdulo BASIC STAMP2 y gra-
bar su memoria miles de veces. Adems contiene un cmodo editor para introducir el progra-
ma que posteriormente ser ejecutado por el BASIC STAMP2 y un sencillo depurador. Exis-
ten versiones Windows y MS-DOS, esta ltima no necesita ser instalada aunque cuenta con
menos opciones que la anterior. ltimamente Parallax ha desarrollado una nueva versin del
STAMP EDITOR, que puede recogerse libremente en el sitio de Internet www.parallaxinc.co m
www.parallax.com.
http://librosysolucionarios.net
INTRODUCCIN
Ante las numerosas peticiones, consultas y recomendaciones que nos han enviado muchos
lectores particulares, profesores y profesionales durante las primeras ediciones de esta obra,
los autores nos hemos visto obligados a aadir este apndice, el cual describe, de la manera
ms sencilla que hemos sido capaces, una coleccin de proyectos que pueden realizarse con un
material fcil de encontrar, sencillo de manejar y muy econmico. Pretendemos que esta apor-
tacin anime a todos los indecisos y les permita coger el vuelo. Una vez estn en el aire, ya
se arreglarn ellos solos, por la cuenta que les tiene.
Para desarrollar las implementaciones fsicas de los proyectos hemos usado como soporte
principal el PIC16F84 y la placa de prototipos PIC18-ME de la empresa Ingeniera de Mi-
crosistemas Programados, S. L., a la que agradecemos su inestimable colaboracin. Dicha
empresa comercializa un kit de Proyectos Bsicos y otro de Proyectos Tpicos que contienen
todos los elementos empleados en los diseos, lo que permitir su fcil disponibilidad a los
lectores que residan en zonas que carezcan de establecimientos electrnicos especializados o
no estn muy versados en el tema. Con la finalidad de conseguir que los materiales de estos
kits puedan utilizarse en todas las aplicaciones propuestas, y en otras que acometa el usuario,
se recomienda una placa Protoboard para el montaje sin soldadura. Se recomienda adems el
uso del sistema de desarrollo MicroPic'Tralner, ya descrito en un apndice anterior, para la
puesta a punto del software.
La primera parte de este apndice est destinada a describir, con todo lujo de detalles, cin-
co proyectos sencillos que emplean los componentes del Kit de Proyectos Bsicos, resueltos
ntegramente y acompaado cada uno de ellos de una pequea variacin sin resolver. En la
segunda parte se exponen otros tres proyectos, tambin resueltos y con una variacin, que uti-
lizan unos perifricos ms verstiles y tpicos en aplicaciones con microcontroladores, como
son el teclado y la pantalla LCD, y que forman parte del Kit de Proyectos Tpicos. Ya en la ter-
cera parte, se propone una coleccin de proyectos para que los resuelva el lector empleando los
mismos materiales y con distintos grados de complejidad. A continuacin se expone el ndice
de este anexo:
279
http://librosysolucionarios.net
280 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
http://librosysolucionarios.net
APNDICE F - PROYECTOS CON EL PIC 161`84 281
Enunciado y objetivos
Es muy usual tener que gobernar una carga (motor, lmpara, etc.) desde dos puntos situados a
cierta distancia entre ellos. Por todos es conocido el control de una lmpara (L) en una sala,
que al disponer de dos puertas muy distantes, se desea encenderla o apagarla desde dos inte-
rruptores (11 e 12) situados al lado de las puertas.
Inicialmente, cuando 11 e 12 estn abiertos (0) la lmpara L est apagada (0). A partir de es-
ta situacin, cada vez que cambia de estado uno de los interruptores, la lmpara cambia tambin
su estado. Se muestra la tabla de verdad y la ecuacin lgica de la salida en la Figura F.2.
http://librosysolucionarios.net
282 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
Esquema elctrico
http://librosysolucionarios.net
APNDICE F - PROYECTOS CON EL PIC 16F84 283
Organigrama
http://librosysolucionarios.net
284 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
El programa comentado
http://librosysolucionarios.net
APNDICE F - PROYECTOS CON EL PIC 16F84 285
Para comenzar a disear con microcontroladores, y una vez que ha sido capaz de poner en
marcha el proyecto que hemos descrito, le proponemos un ejercicio para que lo implemente
usted.
Se dispone de tres interruptores, 11, 12 e 13, con los que se desea controlar un diodo LED
L, de tal forma que debe encenderse cuando dos, y slo dos, de los interruptores estn ce-
rrados. En todas las dems situaciones el diodo LED debe estar apagado.
Enunciado y objetivos
Se trata de simular el funcionamiento de las tres luces de un semforo (verde, mbar y roja)
mediante tres diodos LED (L1, L2 y L3) de entre los diez de que dispone una barra DIL. El
control del encendido y apagado de los LED se realiza mediante los microrruptores 11 e 12 de
http://librosysolucionarios.net
286 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
Esquema elctrico
http://librosysolucionarios.net
APNDICE F - PROYECTOS CON EL PIC 16F84 287
Como se puede apreciar en la Figura E7, los microrruptores 11 e 12 se conectan a las lneas de
entrada RAO y RA 1 de la PUERTAA a travs de sendas resistencias de lOKOhms. En este caso
son activos por nivel bajo. Los diodos LED L1, L2 y L3 se conectan a las lneas de salida
RB 1, RB3 y RB5 de la PUERTAB a travs de resistencias de 330 Ohm. Los dems elementos del
esquema estn presolados en la tarjeta de prototipos PIC18-ME.
Organigrama
http://librosysolucionarios.net
288 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
El programa comentado
http://librosysolucionarios.net
APNDICE F - PROYECTOS CON EL PIC 16F84 289
http://librosysolucionarios.net
290 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
http://librosysolucionarios.net
APNDICE F - PROYECTOS CON EL PIC 161`84 291
http://librosysolucionarios.net
292 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
Para continuar con el manejo del TMR0 y el control de tiempos se propone un programa que
maneje ocho diodos LED de la barra DIL usada en el Proyecto Bsico 2.
Los ocho diodos LED (LO-L7) de menos peso de la barra DIL se conectan a las ocho lneas
(RB0-RB7) de la PUERTAB. Los LED se irn encendiendo secuencialmente durante un
tiempo de 0,1 segundos de izquierda a derecha, o viceversa, segn que el estado lgico que
introduzca el microrruptor 10 conectado a la lnea RAO de la PUERTAA sea un 0 o un 1
http://librosysolucionarios.net
APNDICE F - PROYECTOS CON EL PIC 16F84 293
respectivamente. Para realizar este experimento se precisan los mismos componentes que en el
Proyecto Bsico 2.
Enunciado y objetivos
Este proyecto, ya descrito de forma general anteriormente, trata de simular un juego de azar.
Un dado tpico tiene seis caras, en cada una de las cuales viene marcado un nmero de puntos
de 1 a 6.
El dado es sustituido por un display de siete segmentos, que ser el encargado de visuali-
zar un nmero aleatorio comprendido entre el 0 y el 6 cada vez que se presione un pulsador.
http://librosysolucionarios.net
294 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
En la Figura F.10 se muestra una foto del montaje de los perifricos del dado sobre una Proto-
board y su conexionado con las lneas de E/S del PIC instalado en la tarjeta de prototipos
PIC 18-ME.
Esquema elctrico
En el esquema de la Figura F.11 se muestra la conexin de las siete lneas de menos peso de
l a PUERTAB (RB0-RB6) a los segmentos del display a travs de siete de las ocho resisten-
cias de 330 Ohm contenidas en el pack. La lnea de entrada RAO soporta el nivel lgico que in-
troduce el pulsador. Los dems componentes del circuito se hallan premontados en la tarjeta de
prototipos. El pulsador introducir un 1 lgico al activarse, aunque podra conectarse para in-
troducir un 0 al ser pulsado. Por su parte, el display de siete segmentos tambin se activa por
nivel alto, ya que es de ctodo comn. Para que se activara por ceros tendramos que cambiar
el display por uno de nodo comn.
http://librosysolucionarios.net
APNDICE F - PROYECTOS CON EL PIC16F84 295
Organigrama
El programa comentado
http://librosysolucionarios.net
296 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
http://librosysolucionarios.net
APNDICE F - PROYECTOS CON EL PIC 16F84 297
http://librosysolucionarios.net
298 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
Enunciado y objetivos
Esquema elctrico
http://librosysolucionarios.net
APNDICE F - PROYECTOS CON EL PIC 16F84 299
http://librosysolucionarios.net
300 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
Organigrama
http://librosysolucionarios.net
APNDICE F - PROYECTOS CON EL PIC 16F84 301
El programa comentado
http://librosysolucionarios.net
302 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
http://librosysolucionarios.net
APNDICE F - PROYECTOS CON EL PIC16F84 303
http://librosysolucionarios.net
304 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
Enunciado y objetivos
Se trata de simular una alarma domstica, para lo cual se colocan tres detectores en posibles
puntos de entrada a una vivienda y avisadores acsticos y visuales. Cada sensor provoca el
encendido de un diodo LED diferente cuando se activa y un pitido por un zumbador, signifi-
cando que la alarma ha saltado.
Los detectores estn implementados por dos microrruptores y un optoacoplador. Un opto-
acoplador es un sensor que manda una determinada seal (0 o 1 lgico) cuando existe haz lu-
minoso entre el emisor y el detector, y la seal contraria cuando dicho haz se corta. Los tres
diodos LED se encontrarn en la barra de LED usada en experiencias anteriores. Un tercer mi-
crorruptor servir para conectar y desconectar la alarma.
Esquema elctrico
http://librosysolucionarios.net
APNDICE F - PROYECTOS CON EL PIC 161`84 305
Foto de montaje
http://librosysolucionarios.net
306 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
En las lneas RB1, RB3 y RB5 de la PUERTAB, configurada como salida, estn colocados
l os LED y en RBO el zumbador. Hay dos microrruptores 12 e 13 conectados a las lneas RA1
y RA2 que simulan dos detectores digitales. El tercer detector, que es el optoacoplador, est
conectado a RA3. Por ltimo, el microrruptor 11, conectado en RAO, es el que conecta y des-
conecta la alarma.
Organigrama
El programa comentado
http://librosysolucionarios.net
APNDICE F - PROYECTOS CON EL PIC 16F84 307
http://librosysolucionarios.net
308 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
http://librosysolucionarios.net
APNDICE F - PROYECTOS CON EL PIC 16F84 309
Sin modificar el hardware de la alarma, confeccionar un nuevo programa que opere de forma
similar, pero con los siguientes cambios:
http://librosysolucionarios.net
310 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
Un perifrico muy habitual para introducir informacin al sistema por parte del usuario es el
teclado. Nos referimos al teclado matricial de 16 teclas que se incluye en el kit y que estn
distribuidas en cuatro filas y cuatro columnas (Figura E21). Los ocho terminales del teclado,
cuatro para las filas y cuatro para las columnas, se conectarn a las ocho lneas de E/S de la
PuertaB del PIC. Cuando se pulsa una tecla, queda en contacto una fila con una columna. Si
ninguna tecla est presionada, las filas estn desconectadas de las columnas.
http://librosysolucionarios.net
APNDICE F - PROYECTOS CON EL PIC 161`84 311
Para explorar el teclado y averiguar en cada momento cul es la tecla que se halla pulsada,
se sigue el siguiente mtodo. Se va a trabajar con el nivel lgico alto actuando como nivel
desactivo, siendo el nivel bajo al que consideraremos activo. Por los terminales de las filas del
teclado se introducen cuatro niveles lgicos, uno activo (bajo) y los otros tres desactivos (altos).
Si existe alguna tecla pulsada en la fila por la que se ha introducido el nivel bajo, dicho nivel
saldr por la columna correspondiente con la que haga contacto. En consecuencia, leyendo
los estados lgicos de los terminales de las columnas (RB0-RB3) averiguaremos si hay alguna
tecla pulsada en la fila por la que se ha introducido el nivel bajo, puesto que si no hay ninguna
en todas las columnas se leer nivel alto inactivo. Procediendo secuencialmente a introducir
el nivel bajo por cada una de las cuatro filas y a leer los niveles de salida en las columnas, se
podr determinar la tecla pulsada en cada momento.
http://librosysolucionarios.net
312 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
Por ejemplo, si por las lineas RB7-RB4 se aplica a las filas los niveles lgicos 1110, el nivel
bajo quedar soportado por la primera fila, la unida a la lnea RB4. Si en esta situacin se
halla pulsada la tecla F, al leer los estados de las columnas presentes sobre las lneas RB3-
RBO, por la lnea RB3 saldr el nivel bajo, mientras que por las restantes habr nivel alto. Se
habr obtenido en las columnas el cdigo 0111 (RB3-RB0). En resumen, se ha introducido el
cdigo 1110 a las filas por las lneas RB7-RB4 y en las lneas (RB3-RB0). se lee el cdigo 0111
que se corresponde con la tecla F.
El programa de exploracin del teclado ir introduciendo por las cuatro lneas de ms peso
de PB los cuatro cdigos correspondientes a la introduccin del nivel bajo en cada caso por
una de ellas, o sea, los cdigos 0111, 1011, 1101 y 1110. Al introducir cada uno de estos c-
digos se explora el nivel en las columnas conectadas a las lneas de menos peso de PB. Cuan-
do sale un nivel bajo por una columna, conociendo en ese momento por qu fila se ha intro-
ducido el nivel bajo, se averigua la tecla presionada por la interseccin de dicha fila con dicha
columna. Cuando en la exploracin no hay ninguna tecla pulsada se suele generar un cdigo
concreto que representa esa posibilidad.
En la Figura F.23 se muestra la tabla correspondiente a la pulsacin de cada una de las 16
teclas y el cdigo hexadecimal que existe con los niveles lgicos que se introducen por las fi-
las y los que se obtienen en las columnas.
Cuando no hay ninguna tecla pulsada en una fila aparecen cuatro niveles altos en las cuatro
columnas, por estar desconectadas al aire y corresponderlas estado de alta impedancia, que en
lgica TTL es equivalente al nivel alto. Para asegurar dicho nivel alto, las lneas de la
PUERTAB pueden conectarse al positivo de la alimentacin mediante unas resistencias de
pull-up internas.
http://librosysolucionarios.net
APNDICE F - PROYECTOS CON EL PIC 16F84 313
Esta conexin puede realizarse por software, poniendo a 0 el bit 7 (RBPU#) del registro
OPTION del PIC 16F84 (en el PIC 16C84 este bit tiene programacin inversa). Se recomienda
colocar cuatro resistencias de 2K2, como se muestra en la Figura F.24.
http://librosysolucionarios.net
314 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
Para el manejo del teclado se utilizan las libreras P16CXX.INC y TECLADO.ASM. Se re-
comienda usar la primera en la cabecera de cualquier programa con un PIC de la gama media.
En ella se definen todos los registros internos fundamentales que se manejan en el cdigo que
resuelve las aplicaciones. En el CD que acompaa al libro se incluye dicha rutina. TECLA-
DO.ASM recoge rutinas para la gestin especfica del teclado.
http://librosysolucionarios.net
APNDICE F - PROYECTOS CON EL PIC 16F84 315
http://librosysolucionarios.net
316 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
http://librosysolucionarios.net
APNDICE F - PROYECTOS CON EL PIC 16F84 317
Una vez vistas las rutinas que se usan con el teclado y su funcionamiento bsico se pasa a
realizar el primero de los proyectos con teclado.
Enunciado y objetivos
http://librosysolucionarios.net
318 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
Esquema elctrico
http://librosysolucionarios.net
APNDICE F - PROYECTOS CON EL PIC 16F84 319
Organigrama
http://librosysolucionarios.net
320 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
El programa comentado
http://librosysolucionarios.net
APNDICE F - PROYECTOS CON EL PIC 161`84 321
http://librosysolucionarios.net
322 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
Se propone una modificacin sobre el programa anterior. Esta vez, la pulsacin de la tecla
0 debe generar el pitido ms largo y la de la tecla F el ms corto.
Se recomienda introducir una rutina de conversin y su llamada correspondiente como nico
cambio en el programa.
La pantalla de cristal lquido, LCD, es un perifrico de salida visualizador muy potente, flexi-
ble, eficaz y econmico, siendo los microcontroladores los dispositivos ms adecuados para
optimizar sus prestaciones y control. En realidad, el mdulo LCD tiene incrustado un micro-
controlador especfico para regular su funcionamiento.
Las pantallas LCD ms comunes presentan un nmero variable de caracteres formados
por una matriz de 5 x 7 pixels en una o varias lneas. Nos referiremos al mdulo LCD con
microcontrolador incrustado, modelo 44780 de Hitachi, que tiene la posibilidad de visualizar
dos lneas de 16 caracteres cada una. Dispone de 14 terminales de conexionado, cuya misin
es la siguiente:
Para controlar un mdulo LCD con un PIC16F84 se recomienda conectar las lneas de la
PUERTAB (RB7-RB0) a las lneas D7-D0. Las lneas de la PUERTAB deben ser bidireccio-
nales y debern configurarse como Entrada o Salida segn el sentido de la informacin. Las
tres lneas de menos peso de la PUERTAA (RAO, RAl y RA2) se configuran como salidas y
se conectan a las lneas RS, R/W# y E, respectivamente (Figura F.30).
El mdulo LCD responde a una serie de comandos con los que se pueden gobernar sus
distintas opciones de trabajo y que puede enviarle el PIC por las lneas D7-DO cuando RS = 0
y R/W# = 0, para trabajar en modo escritura. En la Figura F.31 se muestra una tabla con los
comandos y los cdigos correspondientes.
http://librosysolucionarios.net
APNDICE F - PROYECTOS CON EL PIC 161`84 323
En la tabla de la Figura 1`.31 existen diversos bits representados por una abreviatura que, se-
gn su valor, seleccionan una opcin de trabajo:
http://librosysolucionarios.net
324 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
http://librosysolucionarios.net
APNDICE F - PROYECTOS CON EL PIC 16F84 325
En la Figura F.32 se ofrece el juego de caracteres que admite el mdulo LCD. Las posicio-
nes marcadas con CGRAM(n) estn destinadas a contener los nuevos caracteres grficos de-
finibles por el usuario.
http://librosysolucionarios.net
326 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
Si la conexin de la alimentacin no rene todas las condiciones que exige el mdulo LCD,
habra que realizar la secuencia de inicializacin por software. En cualquier caso, es impor-
tante enviar al LCD la primera instruccin de trabajo despus de que hayan transcurrido 15 ms,
para completar dicha secuencia de inicializacin.
http://librosysolucionarios.net
APNDICE F - PROYECTOS CON EL PIC 16F84 327
http://librosysolucionarios.net
328 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
http://librosysolucionarios.net
APNDICE F - PROYECTOS CON EL PIC 161`84 329
Enunciado y objetivos
Organigrama
http://librosysolucionarios.net
330 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
Esquema elctrico
http://librosysolucionarios.net
APNDICE F - PROYECTOS CON EL PIC 16F84 331
El programa comentado
http://librosysolucionarios.net
332 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
En el programa anterior se ha probado una forma tpica de sacar mensajes, pero esto depende
del cdigo que se enve a LCD REG, segn las variantes de la tabla de la Figura E31. Ahora
se trata de probar otras combinaciones y meterlas como rutinas independientes (MENSA-
JE_PARPADEO, MENSAJE_PRIMERA_FILA,...) en el fichero LCD CXX.ASM.
http://librosysolucionarios.net
APNDICE F - PROYECTOS CON EL PIC 16F84 333
Enunciado y objetivos
http://librosysolucionarios.net
334 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
Esquema elctrico
http://librosysolucionarios.net
APNDICE F - PROYECTOS CON EL PIC 16F84 335
Organigrama
http://librosysolucionarios.net
336 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
El programa comentado
http://librosysolucionarios.net
APNDICE F - PROYECTOS CON EL PIC 16F84 337
http://librosysolucionarios.net
338 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
http://librosysolucionarios.net
APNDICE F - PROYECTOS CON EL PIC 16F84 339
En el programa anterior, cuando se mostraba una tecla en el LCD, se haca siempre en la mis-
ma posicin, esto es, una tecla se sobrescriba encima de otra. Se trata de modificar ahora
el programa para que las teclas vayan saliendo seguidas (como en una calculadora). Cuidado,
porque la lnea no es infinita, y llegar un momento en que habr que borrarla o pasar a la de
abajo.
Se presenta en este tema una coleccin de proyectos que se pueden programar en el PIC16F84
y comprobar con el sistema de desarrollo Micro'PIC Trainer. Una vez que se asegure su buen
funcionamiento se recomienda montarlos en la Tarjeta de Prototipos con la ayuda de la proto-
board y de los materiales ya usados en los Proyectos Bsicos y Tpicos anteriores.
Estos proyectos son de diferente estilo y complejidad, y su finalidad es la de conseguir que
se alcance una experiencia profesional en el diseo de proyectos basados en microcontrolado-
res. El lector puede a su vez plantearse sus propios proyectos y, por qu no, llevarlos a la prc-
tica en un entorno real.
http://librosysolucionarios.net
340 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
Mediante dos interruptores, 10 e 11, controlar el estado de ocho diodos LED, de los que dis-
pone una barra DIL, segn la siguiente tabla de verdad y esquema de conexionado.
http://librosysolucionarios.net
APNDICE F - PROYECTOS CON EL PIC 16F84 34 1
La secuencia de funcionamiento del torno se inicia cuando se pulsa I, que activa el cilindro
V, el cual, en su avance, empuja la pieza a tornear hasta que acciona el sensor b, que po-
ne en funcionamiento el motor M (Figura F.42).
http://librosysolucionarios.net
342 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
http://librosysolucionarios.net
APNDICE F - PROYECTOS CON EL PIC 16F84 343
http://librosysolucionarios.net
344 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
CONTADOR ASCENDENTE/DESCENDENTE
http://librosysolucionarios.net
APNDICE F - PROYECTOS CON EL PIC16F84 345
http://librosysolucionarios.net
346 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
http://librosysolucionarios.net
APNDICE F - PROYECTOS CON EL PIC 16F84 347
En este ejercicio se propone generar un nmero binario de 8 bits de forma aleatoria (00-FF). El
nmero debe generarse al aplicar un impulso (cierre/apertura) con el interruptor 10, y quedar
visualizado en los ocho diodos LED conectados en la PUERTAB. La visualizacin se mantiene
durante tres segundos y luego los LED se apagan.
http://librosysolucionarios.net
348 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
Se desea controlar la capacidad mxima de un local, que no debe superar las 12 personas. Para
conocer la entrada y salida de las personas existen dos sensores, 10 e 11, colocados estratgica-
mente.
Cuando hay personas en el local, la lmpara L est encendida, y se apaga automticamen-
te cuando no hay nadie.
http://librosysolucionarios.net
APNDICE F - PROYECTOS CON EL PIC 16F84 349
Si dentro del local hay menos de 12 personas, se ilumina en el exterior un cartel PL que
indica PLAZAS LIBRES. Si hay 12 personas, se enciende el cartel C de COMPLETO.
Si estando COMPLETO el local alguien intenta entrar, se activa una alarma acstica A.
Se dispone de un optoacoplador destinado a generar un impulso cada vez que pasa entre su de-
tector y emisor una pieza. Las piezas o impulsos del optoacoplador los cuenta el TMRO, pero
dividiendo dicho contaje entre un valor del divisor de frecuencia o preescaler interno. El valor
entre el que divide el preescaler el nmero de impulsos depende del estado lgico que intro-
duzcan los interruptores 10,11 e 12, segn la siguiente tabla.
http://librosysolucionarios.net
350 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
Se pretende realizar el control de acceso a un local mediante la validacin de una clave alma-
cenada en la EEPROM de datos. Se utiliza un teclado para la introduccin de la clave y el LCD
para visualizar los mensajes de Introducir clave, acceso denegado o acceso permitido.
Cuando el acceso sea denegado por no coincidir la clave introducida con la almacenada, se ac-
tivar un zumbador durante 2 segundos. Por el contrario, cuando el acceso sea permitido, se
activar un rel que se supone conectado a la puerta de entrada.
http://librosysolucionarios.net
http://librosysolucionarios.net
LIBROS
REVISTAS
EMPRESAS
353
http://librosysolucionarios.net
354 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES
I NTERNET
http://librosysolucionarios.net
NDICE 355
http://librosysolucionarios.net
356 MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES...
http://librosysolucionarios.net
NDICE 357
RAM, 8
RBPU#, 251 TOCS, 98
Reinicializacin, 75 TOCKI, 98
Registro TOSE, 98
ESTADO, 93 Teclado, 157
FSR, 91 Temporizador, 95
INTCON, 112
Time Out, 93
OPTION, 98
TMRO, 95
PCH, 85
PCL, 85
W, 82 Ultravioleta (rayos), 7
Repertorio de instrucciones, 125 Universal Trainer, 52
Reposo, 123
RISC, 125
R. F. SOLUTIONS, 11, 147 Vector
ROM, 6 de Reinicializacin, 119
SAGITRON, 353 de Interrupcin, 111
Segmentacin, 72 Ventanas, 159, 164
Semforo, 153
Sealizador, 93
de acarreo, 93 Zumbador, 56
http://librosysolucionarios.net
http://librosysolucionarios.net