Está en la página 1de 329

Curso prctico sobre

( Teora, Programacin, Diseo, Prcticas y Proyectos completos )

El C u rs o p r c t ic o s o b r e M ICROCONTROLADORES d e CEKIT S. A . s e p u b lic a


e n fo rm a d e 4 0 fa s c c u lo s d e a p a r ic i n s e m a n a l, e n c u a d e m a b le s e n 3 v o l m e n e s. C a p a c it iim tt s p a r a v i v i r i t t f j o r

C a d a fa s c c u lo c o n sta d e 4 p g in a s d e c u b ie rta s y 2 0 p g in a s d e c o n te n id o a to d o
c o lo r . D e e s t a s lt im a s , 8 e s t n d e d ic a d a s a la s e c c i n d e ,4 a C alle 22 N 8 - 22, Piso 2,
PROGRAM ACIN y 8 a la s e c c i n d e PRO YEC TO S. Telfonos
(6)3348179-3348187-
1-as p g in a s d e c a d a s e c c i n s o n e n c u a d e m a b le s p o r s e p a ra d o . P or e s ta r a z n , a l 3348189 - 3348193
fo rm a r lo s v o l m e n e s , d e b e c u id a r s e d e d e s p r e n d e r p r e v ia m e n te , d e to d o s lo s Fax: (6 ) 3348020
PereiraTjotembia
f a s c c u lo s , la s 8 p g in a s c e n t r a le s d e PRO YECTO S, la s 4 d e PROGRAM ACIN
C arrera 13 N 38 - 43, Piso 1.
y p o r ltim o la s 8 p g in a s d e . D u ran te la p u b lic a c i n d e lo s fa s c c u lo s s e Telfonos: 2873086-
p o n d r n a la v en ta las ta p a s d e lo s 3 v o l m en e s d e la o b ra p a r a s u e n c u a d e m a c i n . 2873420 - 2877318
Bogot - C o lo m b ia
CEKIT S .A . g a r a n tiz a la p u b lic a c i n d e la to ta lid a d d e la o b r a , e l s u m in is tro d e la
ta p a s n e c e s a ria s p a ra su e n c u a d e m a c i n y e l se rv ic io d e n m e ro s a tra sa d o s h asta un e-mail: ecekit@col2.telecom.cxMn.co
a o d e s p u s d e te rm in a d a la c irc u la c i n d e l ltim o fa sc cu lo . T a m b i n g a r a n tiz a la http://www.cekit.com.co
fid elid ad d e la in fo n n aci n te rico-p rctica su m in istrad a y e l co rrecto fu n cio n am ien to
GerenseGeneral:
d e lo s p ro g ram as in clu id o s c o m o e je m p lo s d e la o bra.
Jorge Hernn Alvarez
GercmeComcrcial:
M otorola, M icrochip, PIC, Intel, Atm el, P arallax. Zilog, Phillips, so n mancas registradas d e MrceteAlvarez H.
las diferentes em presas e n los Estados Unidos y en otras pases. O tras productos y ncm in e s d e DirectorEditorial:
com paas m encionadas e n esta obra p u ed en ser mancas registradas d e a i s propietarios. Manuel Felipe Gonzlez G.
Circulacin Internacional:
Humberto Real Blanco.
Este curso lia sido elaborado segn el plan del editor y de sus autores, y
Ixijo su responsabilidad, por los siguientes integrantes del Autores
departamento tcnico d e CEKIT S.A,
JUAN ANDRS CASTAO W.
Distribucin Internacional MANUEL FELIPE GONZLEZ G.
GILBERTO VARGAS C.
A rg e n tin a : Importador: Editorial ConosurS.A. Av. Belgrano 355 10. Tel: 4342-9029 Fax: 4342-9025 JUAN DIEGO HERNANDEZ F.
e-mail: gconosur@speedy.com.ar Dist. Capital: VACCARO SANCHES Y CLA. - Moreno 794.
9O092) B u e n a s A ir e s . Disi I n t e r io r : DISTRIBUIDORA BERTRAN S.A.C. - Av. Vlez Sarsfield Proyectos
1950(1285) Buenos Aires. - B o liv ia : AGENCIA MODERNA LTDA. - C h ile : DISTRIBUIDORA
a l f a s .a . - C o lo m b ia: d i s t r i b i i d o r a s u n id a s . - V e n e z u e la : DISTRIBUIDORA CONTI JOHN JAIM E ROBBY G.
NENTAL- M x ic o : c o n s o r c io s a y r o l s - E cuador: d i s t r i b i i d o r a a n d e s . - P a n a m : Diseo cartula: Luz Angela Plata B.
PANAMEX S A . - P er: DISTRIBUIDORA BOLTVAR1ANA S.A. - P a r a g u a y : SELECCIONES S.A.C. Diseo: Gloria Marcela Gmez G.
- UruguaycDISTRIBLlDORA CARF.AGA Diagramacin: Hctor HugoJim nez

CEKIT S.A. 2001


Su scrip cion es (n o v lid as e n A rg e n tin a ), n m eros atrasados Pereira-Colombia
y consu ltas tcn icas en C olom bia
Todos los derechos reservados. Prohibida su
CEKIT S.A. reproduccin parcial o toral po r cu alq u ier m ed io sin
perm iso escrito d el ediror.
C alle 22 N 8 - 2 2 , P iso 2, A.A. 1 9 4 P e re ira (C o lo m b ia )
o a n u e s tro c o r r e o e le c tr n ic o : EDICIN CONO SUR
e c e k it@ c o l2 .te le c o m .c o m .c o Internacional Graphics & PrintingCo.
2600 Douglas Road, Suite 4CK)
Coral C ab les. Florida 33134. U.S.A.
ISBN (F asccu lo 8 ):958-657-510-l Im p reso y en cu ad ern ad o p or:
ISBN (V olum en l):958-657-498-9 RR D on n elley
ISBN (O bra co m p leta): 958-657-497-0 A m rica Latina
Ruta P an am erican a Km. 38.700
B uen o s A ires A rgentina
Im p reso en A rgentina
J u n io 2 002
Curso prctico sobre

MICROCONTROLADORES
Teora. P ro g r a m a c i n . Diseo. P rc tic as y P ro y e c to s c o m p le to s

Estudie f co n el m to d o de
CEKIT de Aprender haciendo , la tecnolo
ga de los M icrocontroladores, una de las que
ms han cam biado el mundo en los ltimos aos
y gane mucho dinero. Estos pequeos cerebros
electrnicos se encuentran en todas partes: au
tom viles, com putadoras, electrodom sticos,
alarm as, juegos de luces, instrum entos, equipos
de com unicaciones, etc. m itir la comunicacin de hechos y datos entre
personas y objetos formando la red del conoci
n este curso incluimos los principios teri miento, base de la economa del nuevo milenio

E eos, los fundamentos de su programacin,


una gran cantidad de actividades prcticas y
proyectos completos para ensamblar.
t vk' 1
Capactese y form e parte activa de la nue
va economa.

Las personas con buenos conocim ientos de


Los m icrocontroladores son los elem entos b esta tecnologa, tendrn muchas oportunida
sicos y fundam entales de una nueva revolucin, des laborales o podrn fabricar sus propios
la interconexin de todo con todo en una red aparatos en forma industrial, lo que puede
m u n d ial de inform acin y control. Esto per ser la base para una em presa m uy rentable.

Como est estructurado el curso

El C u rs o p r c tic o so b re M ic ro c o n to la d o re s d e
C E K IT S.A . se p u b lic a r en 4 0 fasccu lo s con tres
seccio n es c ad a u n o , y al fin a l, se a g ru p a r en tres to
m os d e p asta d u ra c o n c ad a u n o d e los tem as p rin c i
p ales. P ara su fcil id e n tific a c i n , c ad a u n a d e las sec
cio n es tie n e u n c o lo r d ife ren te. L a d istrib u c i n de
los to m o s es la sig u ie n te :

Torno 1: Teora Tomo 2: Programacin Tomo 3: Proyectos


3 2 0 p g in a s ( l a 3 2 0 ) 1 6 0 p g in a s (1 a 1 6 0 ) 3 2 0 p g in a s ( l a 3 2 0 )
Leccin de la
seccin _

Fotografas

Nmero de
pgina

Los siguientes son los principales temas
tratados en esta seccin:
Introduccin a los microprocesadores
Introduccin a los microcontroladores
Diferencias entre un microprocesador
y un m icrocontrolador
Principales fam ilias de microcontroladores
E n la secci n d e te o ra, se e stu d ia n los Estuctura bsica de los sistemas con
microcontrolador
fu n d a m e n to s te rico s y fu n c io n a les de
(M otorola y PIC de M icrochip)
los m icro c o n tro lad o res. Esto se refiere Arquitecturas de microcontroladores
a la e stru c tu ra o a rq u ite c tu ra in te rn a La C PU y la ALU
de los m ism o s, as co m o a la fu n ci n Los registros
d e c ad a u n o d e los te rm in a le s o p in es O rganizacin de la m em oria
La EPROM de datos
d e los d ife re n tes d isp o sitiv o s tratad o s Las interrupciones
en el c u rso cu yo c o n o c im ie n to es n e Los puertos de entrada/salida (I/O)
cesario p ara d ise a r circ u ito s con estos Los temporizadores ( Timers)
co m p o n en te s. Las opciones Comparacin/Captura/PW M
El puerto serial sncrono SSP, bssp
La USART
Se e m p ie z a con u n repaso sobre el tem a Las referencias de voltaje
d e los m ic ro p ro c e sad o re s, los c u ales Los comparadores
d iero n o rig en a los m icrocontroladores, Los converso res A/D
Modos de bajo consumo {sleep y w a tch d og)
y se d e sarro lla n d u ra n te las leccio n es,
Bits de configuracin
los d iferen tes asp ecto s tcn ico s d e esta Programacin en el circuito (in circuit)
te cn o lo g a. El conjunto (set) de instrucciones
Las com unicaciones seriales
Otros microcontroladores
Parallax (Basic Stamp)
g M / r s z ; Intel
l ' a p n d l u n i i m ; i u r a v i v i r m t 'J t t r Atmel
& K 'K K T
e ion de Programacin
T o do ap arato o p ro yecto con m ic ro co n tro lad o res incluye, adems de los diferentes cir
c u ito s, u n o o v ario s p ro gram as q u e se d eb en e n c rib ir en el lenguaje apropiado segn el
tip o d e m ic ro c o n tro la d o r u tiliz a d o . Este curso le proporcionar los conocim ientos nece
sario s p ara q u e a d q u ie ra la h a b ilid a d d e p ro gram arlo s.
Los p rin c ip a le s tem as tratad o s son:
Programacin de un microcontrolador
Diagramas de (lujo El ciclo de desarrollo de un programa
Herram ientas de softw are
Programas
Programacin en modo inmediato
ip - Programacin orientada a registros
_______
Control de flujo de un programa
11 ^ Puertos de entrada/salida
Explicacin de
los programas ssgnrar Subrutinas
raitiaa Interrupciones
* BW --------- Programacin en lenguaje estructurado
Temporizadores
Programacin serial
Programando los conversores A/D y D/A
Programacin en lenguaje C

S 3E n de proyectos Tpicos avanzados de programacin

En esta im portante seccin del curso, se entrega


Indicador binario de 4 bits una am plia inform acin con la cual el alum no
Alarm a para el hogar y el automvil podr ensam blar una buena cantidad de proyec
Reloj digital y calendario tos. Para cada uno de ellos se incluye la teora de
Secuenciador de luces programable funcionam iento, el diagram a esquem tico, la lis
C erradura codificada ta de m ateriales, las instrucciones para el ensam
Activacin de aparatos va telefnica blaje y el listado del program a.
Temporizador universal
Aviso luminoso con diodos LED
Luces rtmicas
C onvertidor paralelo-serial
Punta lgica
Temporizador m iniatura
Frecuencmetro
Generador de seales
Programador de memorias
Adquisicin de datos en 16 bits
M inirobot con microcontrolador
Adquisicin de datos por el puerto
serial
Tarjeta I/O para el puerto serial
y muchos otros... Diagrama de bloques Diagrama esquemtico
A quienes va dirigido el curso
El tem a d e los m icrocontroladores es d e gran u tilid ad para un grup o m u y am p lio d e perso
nas q u e requieran conocer esta tecnologa por su gran can tid ad d e aplicaciones.

Los p rin c ip a le s g ru p o s d e u su ario s son:

E studiantes y profesionales de
Ingeniera y Tecnologas:
E lectr n ica
E lctrica
M e c n ic a
S iste m as
B io in g e n ie ra
M e c a tr n ic a
A u to m a tiz ac i n
E stu d ian te s de con n fasis en e le c tr n ic a

Tcnicos en:
E lec tr n ic a in d u stria l
A u to m a tiz a c i n
E lectr n ico s en g en eral
A lu m n o s d e los cursos
d e C E K IT S .A .
E stu d ia n te s y p ro fesio n ales en F IS IC A ,
p ara sus n ecesid ad es d e in stru m e n tac i n

A utodidactas o aficionados con conocim ientos en:


E lec tr n ic a D ig ita l
M ic ro p ro c e s a d o re s
e r ii

gatuno
Certificado
U n a vez te rm in a d o el curso y a p ro b a d a la e v alu a c i n q u e se p u b li
car a l fin a liz a r la o b ra, el a lu m n o re c ib ir u n C e rtific a d o d e A p ti
tu d O c u p a c io n a l o to rg ad o p o r C E K IT S .A . y ap ro b ad o p o r las
resp ectiv as a u to rid a d e s e d u c a tiv a s. E ste c ertificad o 1er p e rm itir
ac c e d e r a p u esto s c alific a d o s d e trab ajo .

Otra obra con la calidad editorial y didctica de m M ##


/n us a .
c ita n ttm p a r a v i v i r m e ja r
Es m uy placentero y satisfactorio para CEKIT S.A. presentar a todos nuestros
lectores y amigos, estudiantes, profesores, aficionados, tcnicos, profesionales y en general
a la comunidad tcnica internacional, una nueva obra didctica en el campo de la electr
nica con el estilo propio y la metodologa de Aprender haciendo que nos ha caracteriza
do por tantos aos. Se trata del C urso p r ctico so b re MICROCONTROLADORES, el
cual tiene como objetivo principal dar a conocer y ensear, de una manera fcil y
agradable, esta maravillosa tecnologa.

Los microcontroladores, que pueden considerarse como una microcomputadora


en un slo empaque, han perm itido un avance sin par en los ltim os aos en el diseo
y la fabricacin de todo tipo de aparatos y aplicaciones electrnicas. Haciendo un smil
con el ser humano, podemos decir que un microcontrolador es un pequeo cerebro
electrnico formado por muchos transistores interconectados entre s tal como las neu
ronas y que tiene varias zonas con funciones especializadas como la m emoria, uno o
varios circuitos para recibir informacin de teclados, interruptores y sensores, entre
otros, y secciones para activar elementos externos como motores, rels, indicadores
sonoros, pantallas, etc.; todo esto coordinado por medio de un programa o conjunto
de instrucciones.

N unca antes, en la historia de la electrnica, un componente haba permitido


tanta creatividad y desarrollo de productos de una forma tan fcil, en tan corto tiempo
y a costos tan reducidos. Con los microcontroladores es posible disear y fabricar casi
cualquier aparato que se nos ocurra; el lm ite est dado slo por la im aginacin y
nuestra capacidad de hacerlo.

Aunque el tema parece difcil y complejo, realmente no lo es y para demostrar lo


contrario, lo iremos explicando paso a paso en un lenguaje simple acompaado de
muchas figuras, diagram as e ilustraciones de tal forma que los lectores lo puedan ir
asim ilando a su propio ritmo de aprendizaje sin mayores dificultades. Para entender y
aplicar esta tecnologa, se requieren conocimientos de Electrnica D igital, de los siste
mas de num eracin, especialmente del sistema binario y hexadecimal, y nociones bsi
cas sobre los microprocesadores. Sin embargo, durante el curso repasaremos algunos de
los conceptos fundamentales de estos temas con el fin de que los lectores que no los
conozcan, puedan comprender m ejor cada una de las lecciones.

La mayora de los aparatos electrnicos modernos incluyen uno o varios micro


controladores y de ah la im portancia y necesidad de este curso en este m undo tecnol
gico en el cual nos encontramos. Un reloj digital de pulsera lo utiliza para contabilizar
el tiem po, mostrarlo en una pequea pantalla y recibir las rdenes en los botones para
ejecutar diferentes funciones. Una videograbadora lo utiliza para coordinar sus princi
pales funciones como el encendido y el apagado, el cambio de los canales, el avance y
retroceso de la cinta, las funciones del control remoto, etc. En un horno microondas el
microcontrolador se encarga de recibir las rdenes que le damos en el teclado, mostrarlas
en la pantalla y accionar el elemento que produce el calor en los alimentos.

Curso prctico sobre Microcontroladores < B IIK IIT il


Pero sin restarle im portancia a este tipo de aplicaciones, es en otro campo a donde
queremos orientar este curso. Se trata de la utilizacin de los microcontroladores en siste
mas de control y en el diseo de aparatos aparentemente sencillos pero con una gran
cantidad de usos en la vida diaria ya sea en el hogar, en la industria, en la oficina, en el
campo o a nivel experim ental y sobre todo para ensearles a nuestros lectores cmo desa
rrollar su propia aplicacin partiendo de sus necesidades particulares.

Para ensear y explicar mejor esta tecnologa, hemos dividido este curso en varias secciones as:

Una seccin de Teora en donde se presentan los conceptos bsicos de los microcon
troladores iniciando con su origen basado en los microprocesadores, su estructura o
arquitectura interna, su funcionamiento elctrico y lgico, la operacin de sus blo
ques internos, etc. En fin, toda la informacin necesaria para poder configurar un
circuito con un microcontrolador y entender su funcionamiento.

Una seccin de Program acin en donde se explicar qu es un programa de micro


controlador, los diferentes lenguajes que se utilizan, las tcnicas adecuadas para ela
borar programas eficientes, cmo se lleva al interior del microcontrolador y las prin
cipales herramientas de software y hardware para elaborarlos. Esta es una seccin de
mucha im portancia dentro del curso ya que la programacin es donde radica la
m ayor dificultad de muchas personas para acceder a esta tecnologa y por ello, dedi
caremos un gran esfuerzo didctico para que todos nuestros alumnos puedan escribir
sus propios programas de una forma correcta.

Y para completar la estructura del curso, de acuerdo a la metodologa de CEKIT


S.A., hay una secccin de Proyectos y actividades prcticas en donde se presentan
ejemplos completos con aplicaciones de diferentes tipos de microcontroladores. En
esta seccin tam bin se incluirn los diagram as de pines y las caractersticas de los
microcontroladores ms representativos de las principales marcas o fabricantes y una
explicacin de los componentes y circuitos que los acompaan, desde un simple
LED, hasta pantallas de cristal lquido (LCD ), sensores, conversores A/D, acondi
cionadores de seal, etc.

A u n q u e existen en el m ercad o u n a b u en a c an tid ad d e fab rican tes de m icro


co n tro lad o res, cad a u n o con u n a gran v a rie d ad de m o d elo s, hem os seleccio n ad o
com o ejem p lo s p ara este curso p rin c ip alm e n te los de M o to ro la y M icro c h ip (P IC )
po r ser los de m ayo r d ifu si n y a p lic a c i n a c tu a lm e n te ; con u n m en o r c u b ri
m ien to , los de IN T E L , A T M E L , P A R A LLA X y otros, los cuales esperam o s tra
tar en u n p r xim o curso.

Felipe G onz lez G.


Editor General

Curso prctico sobre Microcontroladores


INTRODUCCION A LOS
MICROCONTROLADORES
Un m icrocontrolador ( m icrocon troller ,
en ingls) es un circuito integrado que
contiene toda la estructura de una m i-
crocom putadora, o sea, C P U (U nidad
C en tral de Proceso), m em oria RA M ,
m em oria R O M , circuitos de entrada-
salida (I/O) y otros m dulos con ap li
caciones especiales. Su nom bre nos in
dica sus principales caractersticas: m i
cro por lo pequeo y controlador por
que se utiliza principalm ente para con
trolar otros circuitos o dispositivos elc
tricos, m ecnicos, etc.

M *
Curso prctico sobre Microcontroladores
LLliludliCCLilll i los m icro con troladores'

Este maravilloso componente resume, en un solo nexiones, el nmero y la cantidad de los diferen
circuito integrado, ms de cuarenta aos de tecnolo tes elementos que los formaban a lo cual se le
ga electrnica. Es difcil encontrar en la actualidad llam la l gica ca b lea d a , figura 1.1.
un aparato o una aplicacin que no lo utilice o no
pueda utilizarlo para optimizar su operacin. Con los microprocesadores y ahora con los
circuitos lgicos programables (FPGA), los m i
Se ha m encionado y confirm ado muchas crocontroladores y los circuitos de DSP (Proce
veces que la electrnica es la tecnologa de los samiento D igital de seales), entre otros, es posi
componentes. El desarrollo de cada nuevo dis ble m odificar cuantas veces se requiera el progra
positivo de estado slido trae consigo tcnicas de ma, an en forma remota por la internet, y el
diseo diferentes, por lo general, ms simples. circuito o aparato en el cual estn instalados, tra
En los aos sesenta, para construir un reloj digi bajar de una forma completamente diferente sin
tal, era necesario acoplar un buen nmero de cir modificar fsicamente una sola conexin. De esta
cuitos integrados lgicos. Al mismo tiempo, el forma, el lm ite de los diseos solo lo establece la
diseador deba poseer conocimientos m uy cla im aginacin de los programadores y la capaci
ros sobre cada uno de los elementos, para reali dad de los dispositivos que lancen al mercado los
zar, con xito, la integracin. fabricantes especializados en estas tecnologas.

A partir de 1970, el panoram a de la electr C onsolidadas las tcnicas digitales de los


nica y especialmente el de la electrnica digital, aos sesenta, se cre entonces la necesidad de
cambi radicalmente cuando apareci en el m er profundizar en el estudio y desarrollo de las
cado un nuevo supercomponente: el micropro aplicaciones para los m icroprocesadores y la
cesador. Esto introdujo un concepto novedoso programacin en lenguaje de mquina o assembler.
que en la actualidad se conserva y refuerza cada Fu la poca de oro del 8080, el 8086, el Z-80,
vez ms, el de la l g ica p ro g ra m a d a . Antes de los el 6 8 0 9 , el 6 5 0 2 , el 6 800 0 y otros m icropro
microprocesadores, los circuiros electrnicos se cesadores, utilizados como circuitos centrales
diseaban para una funcin espe en las aplicaciones de control.
cfica la cual no poda modificarse
sin cam biar fsicam ente las co- En 1980, aproximadamente, los fabri
cantes de circuitos integrados iniciaron la
difusin de un nuevo circuito con aplica
ciones para control, medicin e instrumen
/a \a< tacin, al que llamaron microcomputa-
,r - i 1' dor en un slo chip o, de manera ms
illM I! > n - exacta y concisa: m icrocon trolador. Para
o~ W
' o ' O ' o ' entender mejor la estructura interna, el fu-
o o o
r 4! e !L . * o' V
* V V
o' cionamiento y los orgenes de los micro
* I y v v o o! controladores, repasaremos primero el
v o<>' y o' ; -v tema de los microprocesadores.
k v o y o' o o'o <,*
* r i l _ V. o ' o o ; <* o1
o* o
o" o' o'o O
o O o o
0oo 0
i S ' I
^ . 'Y*- ' i I i! M I Desde el punto de vista funcional, un m i
, ! : i croprocesador es un circuito integrado, fi
gura 1.2, que incorpora en su interior una
unidad central de proceso (CPU) y todo
un conjunto de elementos lgicos que per-
Figura 1.1. Ejemplo de un circuito con lgica cableada

7 1 Curso prctico sobre Microcontroladores


Un solo microprocesador, utilizado en el d i
seo de un sistema digital, puede reemplazar una
gran cantidad de circuitos integrados de peque
a y m ediana escala como compuertas, flip -flop s,
registros, contadores, decodificadores, memorias,
sumadores, comparadores, etc, figura 1.3. Esto
es ventajoso desde varios puntos de vista: facili
dad de diseo, m odularidad, versatilidad, flexi
bilidad, m antenim iento, bajo costo, confiabili-
dad, poco consumo de energa, etc.
X1

RESET OUT HLDA

S 00
D entro de los anales de la electrnica est el
SID
ao de 1970 com o la fecha de invencin del
TRAP
m icroprocesador. D esde entonces, este d im i
RST 7.5

R S T 6 .5
nuto dispo sitivo , uno de los adelantos tecn o
lgicos ms im portantes de nuestro siglo, ha
revolucionado todos los cam pos de la vid a
hu m an a. C on el m icroprocesador se in ici
una nueva era de desarrollo de la in d u stria de
las com putadoras y de la electr n ica, la cual
hasta el presente ha ido evolucionando con
una velocidad que an sorprende incluso a
los vision arios m s futuristas. N adie en esa
poca se im agin aba el im pacto tan grande que
causara este desarrollo en la vid a del hom bre
m oderno.

Los aparatos electrnicos que utilizan m i


Figura 1.2. Microprocesdor 8085
croprocesadores, entre ellos las com putadoras
miten enlazar otros dispositivos como memorias personales y de escritorio, fig u ra 1.4, han cam
y puertos de entrada o de salida (I/O), formando biado totalm ente la forma de trabajar e inves-
un sistema completo para cum plir con
una aplicacin especfica dentro del
m undo real. Para que el sistema pueda
realizar su labor debe ejecutar paso a
paso un programa que consiste en una
secuencia de nmeros binarios o ins
trucciones, almacenadas en uno o ms
elementos de memoria, generalmente
externos al mismo. La aplicacin ms
im portante de los microprocesadores y
que cambi totalmente la forma de tra
bajar, ha sido la computadora personal pgura 7.3. Tarjeta con circuitos integrados individuales vs un Microprocesador
o microcomputadora.
* /W"
Curso prctico sobre Microcontroladores d & C U T ,. 5
LLlU'CCLLLCtLdLl i los m icrocontroladores

presa, Shockley Sem iconductor L abora


tories, dando nacim iento a una nueva era
en la in d u stria electr n ica y a la u b ica
cin de esta tecnologa en un sitio de C a
lifo rn ia cercano a San Francisco que ms
tarde se llam S ilico n V alley o Valle del
S ilicio . En esta com paa se in iciaron los
princip ales cientfico s e ingenieros que
ms tarde form aran sus propias em pre
sas y d esarrollaran los circu ito s in teg ra
dos y los m icroprocesadores.

El m icroprocesador es el m xim o ex
ponente de la etapa siguiente al transis
Figura 1.4. Computadora personal y su tarjeta principal tor: la tecnologa de los circuitos in tegra
dos. El concepto de circu ito integrado,
tig ar de los seres hum anos. N inguna herra figu ra 1.6, empez a rondar por los cerebros y
m ienta an terior desarrollada por el hom bre le m entes prodigiosas de quienes trabajaban en
haba dado tanto poder para crear otras y ace el diseo y fabricacin de transistores. El plan
lerar su evolucin en todos los cam pos. Para team iento fue ms o m enos el siguiente: si se
asim ilar m ejor el desarrollo de esta tecnolo fabricaban transistores en form a in dividual y
g a, retrocedam os un poco en la historia de la luego se tenan que unir siem pre de la m ism a
electrnica, sus com ponentes y aplicaciones. form a entre s con alam bres y con otros com
ponentes por qu no fabricar de una vez todo
Sin lugar a dudas, la senda la abri el in el conjunto de m aterial sem iconductor y ais
vento del tubo de vaco por Lee De Forest a lante, interconectado internam ente para que
com ienzos del siglo, basado en el descubri cum pliera la m ism a funcin del sistem a total?
m iento de un fenm eno llam ado Efecto Edi
son. Este dispositivo hizo posible la radio, la Este p lan team ien to fue d esarro llad o en
telefona, la telegrafa inalm brica, etc., e im la p rc tic a sim u ltn e am en te, pero en form a
puls el desarrollo com ercial e in dustrial de la in d ep en d ien te, por dos em presas m uy im -
electrnica. Inclusive las prim eras com puta
doras eran fabricadas con tubos de vaco. Lue
go vino la revolucin del transistor, desarro
llado en los laboratorios de Bell T elephone en
1948 y utilizado a partir de 1950 a escala in
d ustrial, con su inclusin en la fabricacin de
todo tipo de aparatos de radio, televisin, so
nido, com putadoras y en la industria m ilitar y
espacial, entre otras aplicaciones.

De los tres inventores del tran sisto r (W.


B rattain , W. Sh o ckley y J. Bardeen), fig u ra
1 .5 , Shockley fue el nico que se dedic a
desarrollar m todos de fabricacin en serie
Figura 1.5. El transistor y sus inventores
de este revolucionario dispositivo en su em

6 Curso prctico sobre Microcontroladores


p o rtan tes en la h isto ria de la e le c tr n ic a : Despus de un largo trabajo, se lleg hasta
F a irc h ild S e m ic o n d u c to r y Texas I n s tru lograr que todo el circuito fuera reemplazado
m en ts. En F airch ild d irig a el equipo de tra por tres chips, pero estos resultaron ser de un
bajo R obert N oyce, y en Texas Jack Kilby. tam ao mayor de acuerdo a los requerim ien
C om o an cdota, podem os m en cionar que los tos. A Floff se le ocurri que deba agrupar toda
p rim ero s c irc u ito s in te g ra d o s sa lie ro n al la parte de proceso aritm tico y lgico en un
m ercado en el ao de 1959 a un p recio de solo circuito y el resto de la calculadora en los
4 5 0 dlares y solam ente in cluan cuatro tra n otros dos circuitos. Con la intervencin de otro
sistores y varias resistencias. A ctu alm ente, un diseador, Federico Faggin, el proyecto se llev
c irc u ito in teg rad o cuesta en tre 1 0 y 20 cen acabo con todo xito. A este circuito, de 22 50 *
tavos de d lar y un m icro co n tro lad o r se n c i elementos integrados en un rea de 3 x 4 m il
llo , con m uchas ms p restacio n es, puede metros, se le llam m icro p ro cesa d o r. Tambin
co star hasta un d lar o m enos en escalas in se le dio el nombre de CPU ( C entral P rocessing
d u striales. La explosin de los circu ito s in Unit) o M PU (M icro P rocessin g Unit).
tegrados desde el ao 1960 hasta la fecha,
ha p erm itid o el desarrollo de la electr n ica A unque este circuito tena ya muchas de las
en una form a so rp ren d en te. caractersticas de una unidad central de proce
so integrada, el prim er microprocesador en un
Noyce renunci a la F airchild en 1968 y slo chip, fabricado como tal, fue el 4004 de
fund, en com paa de G ordon M oore y A n- Intel, diseado para reemplazar grandes canti
drew Grove y con el respaldo econm ico de dades de circuitos integrados T T L . El 4004 era
A rth u r Rock, la em presa Intel en donde se un chip m uy sencillo que m anipulaba datos de
dieron los prim eros pasos para el desarrollo cuatro bits. Intel desarroll m uy pronto, en
del m icroprocesador. Esta com paa empez 1972, el 8008 , el cual poda procesar datos de
a vislu m b rar un gran m ercado en el rea de ocho bits, pero era m uy lento.
las com putadoras y su investigacin se o rie n
t h acia el reem plazo de los circuitos de m e Para rem ediar esto, Intel desarroll un sus
m oria m agnticos con ncleo de ferrita, por tituto, el 8080, y posteriorm ente el 8085, com-
circuitos de m em oria basados en sem iconduc
tores. La base tcnica consisti en el uso de
un sim ple flip - flo p como elem ento de m em o
ria. A s se cre el prim er circu ito de m em oria
tipo RAM llam ado el 1103, con una cap aci
dad de 1024 bits.

El diseo del m icroprocesador se inici


en un grupo de trabajo de Intel dirigid o por
Ted Hoff, un b rillan te in geniero egresado de
la U n iv ersid ad de S tan fo rd . Todo em pez
cuando Intel se decidi a firm ar un contrato
con una com paa japonesa fabricante de c al
culadoras (la desaparecida Busicom C o rp o ra
tio n ). sta quera-que se les fabricara un con
ju n to de circu ito s in tegrados que reem plaza
ran la gran can tid ad de com ponentes que te Figura 1.6. Estructura interna bsica de u n c irc u ito integrado
nan las calculadoras de ese entonces.

Curso prctico sobre Microcontroladores


patible con el prim ero, con funciones ad icio m ila de m icroprocesadores: los Power PC los
nales y menos circuitos de soporte. Un equipo cuales se utilizan en las com putadoras A pple
de diseadores que antes haba trabajado para e IBM actuales.
Intel en el 8 0 8 0 form la Z ilog Inc. y constru
y el m icroprocesador Z -80, el cual incorpo Por los lados de Intel se desarrollaron el 8088
raba un conjunto de instrucciones ms exten utilizado en el IBM XT, el 80186, el 80286 utiliza
so que el 8080, aunque era com patible con este do para la IBM AT, el 80386, el 80486 y los Pen
ltim o . Este m icroprocesador ha sido uno de tium . Todos estos microprocesadores de Intel han
los ms utilizados en el cam po de control. sido utilizados para la fabricacin de microcompu
tadoras de bajo costo llamadas clones, lo que ha
Por la m ism a poca en que se presentaba hecho que esta empresa siga siendo el mayor fabri
al m ercado el 80 8 0 , otra em presa de sem icon cante de microprocesadores en el mundo.
ductores, M otorola, desarroll el 6 8 0 0 , un m i
croprocesador de 8 bits con un diseo com La sigu ien te generacin fueron los Pen
pletam ente distinto pero con iguales caracte tiu m II, Pentium III y actu alm ente los Pen
rsticas. M otorola perfeccion el 6800 hacia el tiu m IV con los cuales se han logrado v elo ci
6 8 0 9 , considerado como uno de los mejores dades de procesam iento im presionantes y una
procesadores de 8 bits de todas las pocas. enorm e capacidad de m em oria, lo que los hace
apropiados para moverse sin problem as en en
A pesar de sus excelentes caractersticas, tornos com o la in tern et, el video, la m u lti
el 6 8 0 9 no tuvo el xito com ercial que se es m ed ia, el procesam iento de datos y el trabajo
peraba. D icho xito lo obtuvo otro derivado en tiem po real.
del 68 0 0 : el 6 5 0 2 , producido por M O S Te
chnology. C on este m icroprocesador se fa Los microprocesadores actuales
bricaron las prim eras com putadoras persona D entro de los microprocesadores de la p la
les com o la PET de C om m odore y la A pple taform a PC , actualm ente podemos m encionar
II de Apple C o m p u ter Inc. los productos de las firmas Intel, A M D , Cyrix
y D ig ital. Las referencias m s novedosas son
A p artir de ese m om ento, se estableci el P entium IV, el A lthon, el 6 8 6 M M X y el
una guerra tcn ica y co m ercial, que an su b A lp ha, respectivamente, figu ra 1.7.
siste, entre Intel y M o to ro la, la cual los ha
llevado a ser los dos grandes lderes in d iscu
tibles del m ercado de los m icroprocesadores.
Pero el desarrollo del m icroprocesador no se
qued ah. A p rin cip io s de la dcada de los
8 0 , em pezaron a aparecer los m icroprocesa
dores de d ieciseis bits, m ucho ms potentes.
El prim ero en sa lir al m ercado fue el 8 0 8 6 de
Intel en 1978, el cual fue adoptado por la IBM
para la fabricacin de su fam osa IBM P C . Lo
sig u ie ro n de cerca el 6 8 0 0 0 , el 6 8 0 2 0 , el
6 8 0 3 0 y el 6 8 0 4 0 de M otorola. C on estos m i
croprocesadores se in ici en A pple una nueva
fam ilia de m icro co m p u tad o ras: las M a c in
tosh. Luego, en un consorcio entre A pple,
IB M y M o toro la se desarroll una nueva fa- Figura 1.7. Microprocesadores modernos

' \\ ^ *
8 < S !E K U W s . Curso prctico sobre Microcontroladores
LECCION 2

LOS MICROPROCESADORES

Son los circuitos integrados que


revolucionaron la electr n ica al
p erm itir el diseo de todo tipo de
aparatos programables. A unque su
principal aplicacin son las com
putadoras personales, tam bin se
encuentran en la m ayora de los
circuitos de control.
Les Luicroprocesadores

El microprocesador, corazn de las Unidad de Microprocesador Unidad de


computadoras Entrada/Salida o CPU Memoria

U na computadora digital es un equipo especiali


zado en el procesamiento de informacin, cuyo
principio de funcionam iento es relativamente
sencillo, si lo vemos desde el punto de vista de
los bloques que lo conforman. Cada uno de esos
bloques est formado por varios circuitos inte
grados fciles de entender, la parte com pleja la
encontramos cuando estudiamos el interior de
dichos circuitos, pero esto en realidad no es de
m ucho inters para el usuario comn.

Una computadora digital se compone de tres


bloques fundamentales, figura 2.1: una unidad
de entradas y salidas, una C P U y una memoria. Figura 2 .2 Estructura general de una computadora digital
A su vez, la unidad de entradas y salidas se divide
en un bloque de entrada y otro de salida. Del rior. Esta informacin se lleva desde la unidad
m ism o modo, la C PU se divide en una unidad central de proceso o CPU , hacia circuitos o apa
aritm tico-lgica (ALU), y una unidad de con ratos externos llamados perifricos que se encuen
trol y el bloque de memoria en memoria RAM y tran fuera de la computadora, por ejemplo m o
m emoria ROM , obtenindose seis bloques o uni nitores, impresoras o parlantes.
dades con funciones m uy especficas, figura 2.2,
cuyas funciones describiremos a continuacin. La unidad de memoria se encarga de alm a
cenar los datos y los programas que operan sobre
La unidad de entrada es quien recibe infor esos datos y es una de las ms importantes de
macin del m undo exterior, ya sea de un opera una com putadora. Se distinguen dos sistemas
dor humano o un fenmeno fsico; esta unidad diferentes de m emoria: la de alm acenam iento
perm ite llevar esa informacin hacia la unidad prim ario y la de alm acenam iento secundario. La
de memoria para poder procesarla posteriormen memoria de almacenamiento prim ario se refiere
te; dispositivos de entrada son, por ejemplo, los a los circuitos que guardan los programas que se
teclados y el ratn. La unidad de salida entrega van a ejecutar y los datos que se necesitan duran
los resultados del procesamiento al mundo exte- te la ejecucin de estos programas, y la memoria
de alm acenam iento secundario, se utiliza para
almacenar grandes cantidades de datos que no se
requieran con frecuencia para la operacin de la
computadora. Sistemas de este tipo son los dis
cos duros y los discos de 3 .5 .
Unidad
central de
proceso Dentro de la memoria de almacenamiento
secundario se distinguen tres categoras: la ROM
(R ead O nly M em ory) o m em oria de solo lectura,
donde se alm acenan cierto tipo de programas

T como el del sistema de arranque de una com pu


tadora (BIOS); la RAM (R andom Access M em ory)
Figura 2 . 1 B loques p rin cip a le s d e un a com putadora d ig ita l o m em oria de lectura y escritura, donde se alma-

M T \ . Curso prctico sobre Microcontroladores


cenan los datos que los programas van generan de lneas de entrada (N); los procesa de acuerdo
do y la cache que es una memoria RAM con tiem a las instrucciones secuenciales de un programa
po de acceso m uy rpido donde se mantienen almacenado en su memoria, y sum inistra o escri
los datos ms utilizados durante la ejecucin de be los resultados del proceso en un cierto nm e
un programa. ro de lneas de salida (M ), figura 2.3

La unidad central de proceso (CPU: C entral Los datos de entrada pueden provenir de inte
P rocessing Unit) rene la unidad de control y la rruptores, sensores, convertidores A/D, teclados, etc.
unidad aritm tico-lgica en un solo bloque. Esta Los datos de salida pueden estar dirigidos a actua-
ltim a tambin se conoce como ALU ( A rithm e - dores, indicadores o displays, pantallas, convertido
t ic L ogic Unit). En la prctica, la unidad central res D/A, alarmas, impresoras, etc. El programa al
o C PU se encuentra en forma de un circuito in macenado determina como deben ser procesados
tegrado llam ado m icro p rocesa d o r. los datos de entrada y, en consecuencia, que infor
macin debe enviarse a las lneas de salida.
Dentro de esta CPU , la unidad de control se
encarga de la interpretacin y ejecucin de las El soporte fsico de las instrucciones del pro
instrucciones del programa. Tambin controla gram a es la memoria, la cual almacena los datos
todos los componentes de una computadora por para que sean procesados. En un momento dado,
m edio de lneas de conexin llamadas buses. La los niveles lgicos (unos y ceros) de las lneas de
ALU se encarga de realizar las operaciones lgi salida de un microprocesador, dependen no sola
cas y aritm ticas. Las principales funciones arit mente del programa en s sino tambin de la his
mticas realizadas en la ALU incluyen la AND, toria de las seales de entrada hasta ese momento.
la O R, la EXOR y la comparacin. Como he Mientras que en un microprocesador ideal no exis
mos visto, el microprocesador es quien lleva a ten restricciones respecto al nmero de entradas y
cabo las principales funciones de un sistema de salidas, los microprocesadores reales slo pueden
cmputo, y quien integra a los dems compo acomodar un nmero limitado de terminales o
nentes y ejecuta las instrucciones. Es por eso el pines para estas funciones. Como veremos ms
principal componente de una computadora. adelante, para simplificar el nmero de pines, la
mayora de microprocesadores utilizan las mismas
Funcionamiento del microprocesador lneas para la entrada y salida de datos.
Desde un punto de vista conceptual, un micro-
procesador ideal es un dispositivo digital que De otro lado, mientras que un microprocesa
acepta o lee datos aplicados a un cierto nmero dor ideal tiene, tericamente, una memoria inter
na ilim itada, los microprocesadores reales solo dis
ponen de una cantidad lim itada para almacenar

Registro de
10 1 1 1 0 0 1 8 bits

El microprocesador (ideal) es un 0 1 0 0 1 1 0 0 1 1 0 0 0
dispositivo con N lineas de entrada, M
lneas de salida y un programa
almacenado Registro de 16 bits

Figura 2 .3 E l microprocesador ideal Figura 2.4 Registros de un microprocesador

Curso prctico sobre Microcontroladores g M C IT ,


datos e instrucciones. Por esta razn, un micro- requiere de un bus de datos, un bus de direccio
procesador debe tener la posibilidad de com uni nes y un bus de control para comunicarse con
carse con una memoria externa. Para lograrlo, ne los dems componentes.
cesita disponer tambin de un conjunto de lneas
de seleccin o direccionamiento adicionales. N atu ralm en te, el m icroprocesador ideal
(un dispositivo con slo entradas y salidas y
Finalmente, para sincronizar su operacin un program a alm acenado en l) no existe. Sin
con la de los componentes externos conectados em bargo, la tendencia de los nuevos diseos
al mismo y tener un control global de los buses es in clu ir cada vez ms funciones en una m is
de datos y direcciones, un microprocesador ne ma pastilla, incluyendo unidades de m em oria
cesita disponer tambin de un conjunto de l e interfaces entrada/salida como en el caso de
neas de control. Por tanto, un microprocesador los m icrocontroladores.
INTA R ST6.5 TRAP
SID SOD
INTR R ST5.5 RST 7.5

i P i i 1
CONTROL DE INTERRUPCIONES CONTROL SERIE 1/0

Bus interno de datos de 8 Bits

X1- Bloque de control y tiempos

X2- A 1 5 -A 8
Bus de direcciones

J
CLK OUT t 1i
REAOY RD WR
1 111
ALE SO S1 I0/M
l
HLDA
P RESET

HOLD RESET IN

Figura 2 .5 Arquitectura interna de un microprocesador 8085 de Intel

' Curso prctico sobre Microcontroladores


Teora

Organizacin interna de un pretar y ejecutar las instrucciones del progra


microprocesador ma alm acenado en la m em oria.
La organizacin interna de un microprocesador, es
decir, su arquitectura, vara notablemente de un Desde un punto de vista conceptual, la ac
dispositivo a otro. Por esta razn, es difcil definir cin de leer e interpretar las instrucciones la rea
un modelo de microprocesador que represente to liza una parte del microprocesador denominada
das las alternativas posibles puesto que cada uno unidad de instruccin y su ejecucin corre a car
tiene una lgica de funcionamiento propia. La ar go de otro circuito especializado dentro del m is
quitectura, y especialmente el tipo, nmero y orga mo denom inado unidad de ejecucin, figura 2.6
nizacin de los registros internos, es una considera
Unidad central de procesamiento (CPU) o
cin importante a la hora de elegir un microproce microprocesador
sador para una aplicacin determinada.

Un registro es una posicin de memoria co


nectada a la C PU donde se pueden retener cifras
binarias. Est formado por elementos lgicos Memoria
(compuertas, flip-flops, etc.) que, al ser tomados principal

en conjunto, pueden almacenar nmeros binarios


de 4 , 8, 16 ms bits, figura 2 .4 . Se utilizan esen
cialmente para almacenamiento temporal, en el
que el contenido cambia continuamente.

Esto no im plica que se deba conocer con de


masiado detalle, cmo funciona internamente un
microprocesador para poder utilizarlo. Existen
partes y funciones que norm alm ente deben estar
presentes: un reloj, una ALU, varios registros, un
contador de programa, etc. En la figura 2 .5 se ;uito de
terfaz
muestra un ejemplo de la arquitectura interna e E/S
de un microprocesador simple, el 8085 de Intel. wm

Por ejemplo, el reloj o circuito de oscilacin


puede estar o no incorporado en el microproce
sador, pero es absolutamente necesario puesto que
tiene la misin de sincronizar todas las operacio
nes de debe realizar el dispositivo. Del mismo
modo, para ejecutar un programa, un micropro Figura 2 .6 Unidades de instruccin y ejecucin
cesador debe tener en su interior registros que le
permitan almacenar informacin, realizar lectu La unidad de ejecucin, a su vez, contiene una
ras, modificaciones a los datos, etc. unidad aritmtico-lgica o ALU y un conjunto de
registros auxiliares. La ALU se encarga de realizar
Operacin bsica de un una gran variedad de operaciones aritmticas y l
microprocesador gicas, y los registros de almacenar temporalmente
A nalizando un sistem a de cm puto, nos da informacin. Las distintas funciones realizadas por
mos cuenta que el m icroprocesador o C P U es el microprocesador quedan especificadas por su
la parte del sistem a encargada de leer, in ter conjunto de instrucciones.

Curso prctico sobre Microcontroladores


microprocesadores

La unidad de instruccin lleva la


cuenta de las posiciones o direcciones
de memoria donde se encuentran las
instrucciones que el microprocesador
necesita en cada instante. Normalmen
te, las instrucciones se leen y ejecutan
en el mismo orden en que fueron alma
cenadas en la memoria. Sin embargo,
la presencia de instrucciones de control
de programa puede alterar la secuencia
de ejecucin de estas instrucciones.

Para llevar la cuenta de las d i


recciones de las in stru ccio n es, la
u nidad de instruccin incorpora un
registro especial llam ado contador
de program a o PC (P rogram C oun-
ter). C ada vez que se lee una ins
truccin, el contador de program a
se in c re m e n ta a u to m tic a m e n te
para su m in istrar la direccin de la
posicin de m em oria donde se en Bus del sistema hacia la memoria principal
y dispositivos de E/S
cuen tra la sigu ien te instruccin o
dato del program a. Figura 2 .7 Arquitectura de un microprocesador genrico

C ada vez que un m icroprocesador recibe La m ayora de los microprocesadores, por


u n a in stru cci n , la alm acen a en un registro ejem plo, incluyen un registro especial llam ado
in terno del m ism o llam ado registro de ins acum ulador (Registro A) que es utilizado por
trucciones con el fin de proceder a su deco m uchas instrucciones como fuente o destino de
d ificaci n o in te rp re ta c i n y bu scar en la datos. Tambin es m uy com n la presencia de
m em oria R O M el conjun to de m icroinstruc- un registro de estado que sum inistra inform a
ciones necesarios para su ejecucin. Esta fun cin relativa a la ejecucin de ciertas instruc
ci n la realiza un circuito denom inado de- ciones como sobreflujo, paridad, generacin de
codificador de instrucciones. acarreo, resultado negativo o cero, etc.

Adem s d el contador de p rogram a y el Muchos microprocesadores poseen tambin


registro de in stru ccio n es, un m icrop rocesa un conjunto de registros de propsito general que
dor contien e u su alm en te otros registros para pueden ser utilizados para almacenar direccio
fa c ilita r el acceso a las in stru ccio n es y a los nes de memoria, datos, resultados intermedios y
datos. A lgunos de estos registros son p ro gra otros propsitos. El nmero y tipos de registros
m a b a s en el sen tid o de q u e su co n ten id o que posee un microprocesador, es una parte m uy
puede ser alterad o por so ftw a r e (in stru c c io im portante de su arquitectura y programacin.
nes) m ientras que otros son in accesib les des
de el p unto de v ista de pro gram aci n y su En la figura 2 .7 se muestra un modelo ge
co n ten id o slo lo puede d e term in ar y con nrico de microprocesador que ilustra los con
su ltar el m icroprocesador. ceptos anteriores.

M T .1 Curso prctico sobre Microcontroladores


Teora

Estructura de buses de un ceden siempre de la memoria mientras que los


microprocesador datos que procesa u obtiene el programa de ins
En la figura 2.8 se muestra la estructura de buses trucciones, puede provenir de o ir hacia la memo
generalizada de un microprocesador. Externamente, ria o los mdulos de entrada/salida.
el dispositivo cuenta con un bus de datos, un bus de
direcciones y un bus de control. En las siguientes G eneralm ente, el nmero de lneas de en
secciones decribiremos la funcin y las caractersticas trada es igual al nm ero de lneas de salida. Este
de cada uno. Adems de estos tres buses principales, nm ero define la longitud de la palabra de d a
un microprocesador debe disponer tambin de un tos del microprocesador. Son comunes lo ngitu
bus de alimentacin, el cual hace llegar la corriente des de palabra de 4, 8, 16, 32 y 64 bits. En la
de la fuente a sus distintos componentes internos. figu ra 2.4, por ejem plo, se m uestra un micro-
procesador de 8 bits. En este caso, tanto el bus
de datos de entrada como el bus de datos de
Entradas de salida con de un byte, es decir de ocho (8) bits.
control
Bus de
control
El nmero total de pines asignado en el circuito
Salidas de
control integrado del bus de datos puede reducirse prctica
mente en un 30% si se utilizan los mismos puntos
de conexin tanto para los datos de entrada como
Fuente de
alimentacin para los datos de salida, pero no para ambos simult
neamente. El bus de datos as constituido es bidirec-
cional en el sentido de que la informacin puede circu
Figura 2 .8 Estructura de buses generalizada lar entrando o saliendo del microprocesador. La for
ma de representar un bus de datos bdireccional para un
Las lneas de los buses de un microprocesador microprocesador de N bits se ilustra en la figura 2.9
transportan voltajes que representan nmeros bina
rios (1s y Os). El microprocesador, los puertos de Un bus bdireccional puede construirse con com
entrada/salia y la memoria, responden nicamente a puertas tri-state para controlar la direccin del flujo de
esos nmeros binarios codificados electrnicamente. informacin. La figura 2.9 (a) representa un micro-
procesador de cuatro bits con un bus de datos bidirec-
El bus de datos. Lneas bidireccionales cional. En la figura 2.9 (b) se muestra la configura
El bus de datos lleva datos e instrucciones hacia y cin de una lnea de bus bdireccional. Las lneas de
desde el microprocesador. Las instrucciones pro seleccin SI y SO proceden del bus de control.

DBOUT

Data OUT
-
> - BDB
Data IN

DBIN BDB: Lnea de bus direccional de datos


DBOUT: C ontrol de salid a de datos
DBIN: C ontrol de entrada de datos
_o| vHOLDA S1, SO: Control de bus
S1 HOLDA: Control de garanta de bus (alta
SO- impedancia)

(b) Figura 2 .9 (a) Microprocesador de 4 bits con bus de datos bidireccional.


(b) Lnea de bus bidireccional.

Curso prctico sobre Microcontroladores (c /e k b t :


La transferencia de datos de entrada o salida El bus de direcciones. Espacio de
desde o hacia el bus de datos se realiza, respecti memoria
vamente, con S1S0= lO y S l S0= 01. La lnea de El bus de direcciones contiene la inform acin
bus puede inhabilitarse con SISO = 00 para im d igital que enva el m icroprocesador a la m e
pedir cualquier transferencia de informacin en m oria y dems elementos direccionables del sis
tre el bus de datos y el microprocesador. tem a para seleccionar una posicin de m em o
ria, una unidad de entrada/salida o un registro
Las lneas de seleccin pueden utilizarse para particular de la m ism a. El nm ero de lneas d is
inform ar a los mdulos externos que comparten ponible en el bus de direcciones (n) determ ina
el bus de datos el estado del bus bidireccional en el tam ao m xim o de m em oria que puede ser
un momento dado. Este es el propsito de las acom odado en el sistema (2n).
lneas marcadas como D BO U T (bus de datos en
el modo de salida), DBIN (bus de datos en el A s, por ejem plo, un microprocesador con
modo de entrada) y HOLDA (bus de datos en un bus de datos de 8 bits y un bus de direccio
estado de alta im pedancia) en la figura 2.9 (b). nes de 16 bits (tpico) tal como el Z-80 puede
m anejar directam ente una m em oria de 2 16 =
La informacin contenida en el bus de datos 6 533 6 (64K) posiciones, cada una contenien
puede representarse numricamente de varias for do un byte (palabra de 8 bits).
mas: binaria, octal y hexadecimal, principalmente.
Considrese, por ejemplo, un microprocesador de N aturalm ente, una vez seleccionada una
8 bits con el byte 10111011 en las lneas D7 a DO posicin de m em oria, el microprocesador debe
del bus de datos, siendo D7 el bit ms significativo estar en capacidad tanto de alm acenar inform a
o LSB y DO el bit menos significativo o LSB. cin en esa localizacin (operacin de escritu
ra) como de extraerla (operacin de lectura).
Esta palabra de datos representada como un
nmero binario es simplemente 10111011 (B) La can tid ad de m em oria u tilizad a en un
10111011(2), representada como nmero octal sistem a con m icroprocesador depende de la
es 273Q 2738 y como nmero hexadecimal (la ap licaci n especfica y es a m enudo in ferior a
ms usada) es BBH BB16. La forma de conver la m xim a que puede m an ejar el bus de d i
tir nmeros binarios en octales o hexadecimales y recciones. El conjun to com pleto de lo caliza
viceveresa se explicar en detalle en la seccin de ciones de m em oria a las que puede tener ac
programacin. Los sufijos B ,Q y H, y los subndi ceso un m icroprocesador, se d en o m in a espa
ces 2, 8 y 16 enfatizan el sistema numrico (bina cio de m em oria.
rio, octal y hexadecimal) de cada presentacin.
A s, por ejem plo, el espacio de m em oria
A pesar de que el sistem a hexadecim al pro de un m icroprocesador de 8 bits con un bus
porciona una forma m uy com pacta y concisa de direcciones de 16 bits (por ejem plo el 8080)
de expresar el contenido de un bus de datos, no es sim plem ente 2 16 = 64K.
podemos olvidarnos com pletam ente de la re
presentacin binaria. En una aplicacin real, esta En el caso de un m icroprocesador de 8
ltim a nos perm ite identificar fcilm ente, por bits con un bus de d ireccion es de 16 bits, el
ejem plo, cual interruptor ha de ser abierto o espacio de m em oria puede ser visualizado gr
cerrado en un m om ento dado para obtener una ficam ente com o un m apa de 6 5 5 3 6 d ireccio
condicin de entrada especfica o cual lm para nes de m em oria, cada una conteniendo un
ha de ser energizada para obtener un efecto de byte, la ms baja de las cuales es 0 0 0 0 H y la
salida determ inado. ms alta FFFFH , fig u ra 2 .1 0

Curso prctico sobre Microcontroladores


Teora

FFFF
1000 tema tpico basado en mi
FFFF F000
E000
croprocesador. Note que
FFFE
D000 consta de cuatro elementos
cooo principales: una memoria,
ocoo un microprocesador, un
B000
A000 puerto de entrada y un
9000 puerto de salida.
8000
R4 K 0800
- ' ;. 7000 El m icroprocesador
6000 est conectado a todos los
5000 otros componentes a tra
4000 0400 vs del B us d e datos. Las
3000
seales del B us d e co n tro l ,
0002 2000
conjuntamente con las del
0001 1000 01 00 Bus d e d ireccio n es , deter
0000 0000 0000 minan que elementos se
comunican con el micro-
Figura 2.10 Espacio de memoria
procesador en un momen-
Note que la direccin de memoria se incremen- to dado. Estos tres buses configuran el bus del sis-
ta en 1000H cada 4K (=4096) direcciones de espa- tema y el gobierno del mismo es responsabilidad
ci de memoria. Observe tambin que cada 1K del microprocesador.
(=1024) posiciones de memoria, la direccin de me
moria se incrementa en 400H. La memoria puede La secuencia de in strucciones que cons
dividirse tambin en pginas de memoria, cada una titu yen el program a que debe ejecutar el m i
contiene 256 palabras y cubre 100H direcciones de croprocesador estn alm acenadas en un rea
memoria. Hay, por tanto, 4 pginas en 1K de me- de la m em oria. En el m om ento de iniciar el
moria. Las direcciones en la pgina de ms bajo or- sistem a, el m icroprocesador sit a en el bus
den van desde 0000H hasta OOFFH, en la siguiente de d irecciones la direccin de la posicin de
desde 0100H hasta 01FFH, y as sucesivamente. m em oria donde se en cuen tra la prim era in s
trucci n . Com o resultado, la memoria entrega
El bus de control Bus de control y de sincronizacin del sistema
El bus de control contiene la in
formacin que enva el micropro
cesador a los elementos del siste
ma o bien la recibe de estos con el
propsito de sincronizar la opera
cin de los circuitos externos. El
nmero de lneas del bus de con
trol es variable y depende del mi
croprocesador particular utilizado.

Organizacin de un
sistema basado en
microprocesador
r t i Desde dispositivos Hacia dispositivos
En la hgura 2.11 se muestra la de entrada de sa|ida
estructura organ izativa de un sis- Figura 2.11 Diagrama de bloques de un sistema basado en un microprocesador

Curso prctico sobre Microcontroladores


L e s ; m icroprocesadores

esta inform acin en el bus de datos. Despus Las instrucciones que constituyen un pro
de in terpretar y ejecu tar la prim era in stru c gram a se alm acenan en la m em oria del siste
ci n , el m icroprocesador busca la sigu ien te ma como patrones de unos y ceros, organiza
in struccin, la ejecuta y as sucesivam ente. La dos en grupos de 8, 16, 32 y ms bits, depen
generacin de la serie de in strucciones nece diendo de la longitud de la palabra de datos
sarias para que el m icroprocesador realice una del microprocesador.
tarea d eterm in ad a, es lo que se denom ina su
program acin.
PALABRA: Es un grupo de bits que se tratan
Secuencia de operacin de un sistema como una sola unidad. El ms comn es el
basado en un microprocesador byte, el cual est formado por ocho (8) bits.
H asta aqu hemos visto la arquitectura genri
ca de un m icroprocesador y de un sistem a ba
sado en uno de estos dispositivos; ahora an a li Cuando se trabaja con un microprocesador,
zarem os con ms detalle los pasos que sigue es im portante comprender su conjunto de ins
un sistem a de esta naturaleza para ejecutar las trucciones y ser capaz de utilizarlas en la elabo
in strucciones contenidas en un program a y racin de programas; se debe entender la forma
aprenderemos como trabajan en conjunto cada como el microprocesador las ejecuta y adquirir
uno de los bloques del sistem a para desarrollar la habilidad para emplearlas eficientemente en
estas tareas. la m anipulacin de datos.

Un m icroprocesador es un dim inuto con Para ejecu tar las operaciones indicadas
ju n to de m iles o millones de elem entos l gi por una in struccin, el m icroprocesador debe
cos e interconexiones diseado para respon em pezar por d ireccio n ar o encontrar la posi
der a las instrucciones de un p r o g ra m a , el cual cin de m em oria donde se en cuen tra la in s
le in d ica lo que debe hacer en cada instante. tru cci n , leerla y d eco d ificarla o in terp retar
S in un program a que le de vida, un m icro- la por m edio de sus circu ito s internos. Los
procesador y todo el h a r d w a re conectado a su pasos anteriores constituyen lo que se deno
alrededor, sera una m asa in erte de com po m in a c i c l o d e in s tr u c c i n . D urante su opera
nentes electrnicos sin un objetivo especfi cin n o rm al, un m icroprocesador no hace
co. De hecho, la funcin p rim aria de un m i otra cosa que ejecu tar repetidam ente ciclos
croprocesador es ejecu tar program as. de in struccin.

Direcciones Direcciones Instrucciones, datos


Instrucciones, dato
(En hexadecimal) (En binario) 0000 0000 0000 0000
0 0 0 0 H 1 0 1 1 1 1 0 1 0000 0000 0000 0001
0 0 0 1 H 0 00 0 o o o 0000 0000 0000 0010

0 0 0 2 H 1110 0 110 0000 0000 0000 0011


0 0 0 3 H 0 00 0 1 1 1
0000 0000 0000 0100
0 0 0 4 H 0 0 1 1 0 0 1 0
0000 0000 0000 0101
0 0 0 5 H 0 1 0 0 0 0 0 0
0000 0000 0000 0110
0 0 0 6 H 0 0 1 0 0 0 0 0
0 111 0000 0000 0000 0011
0 0 0 7 H 0 110
NOTA: 0010 0000 0100 0000 0 l 0 l 0 I 0 ICTc I BJ a>
Este programa calcula un nmero y almacena el resultado
(OCBA) en la posicin de memoria 2040H. 1111 111 1 1111 1111 X | X | X | X | X | X | X | X

Figura 2.1 2 Ejemplo de un program a en lenguaje de mquina

( S s K M T l . * . Curso prctico sobre Microcontroladores


Teora

Direcciones
Contenido dor ( op codes ) y datos sobre los cuales ha de ope
Instruccin,
(En hexadecimal) dato (Hex) rar el mismo. C ad a cdigo de operacin le in
0 0 0 0 BD dica, directa o indirectam ente al m icroproce
0 0 0 1 01
sador, la direccin de m em oria donde se en
0 0 0 2 E6
0 0 0 3 OF cuen tra alm acenada la sigu iente instruccin
0 0 0 4 32 ejecutable. Al recibir un cdigo de operacin,
0 0 0 5 40
0 0 0 6 20
los circuitos internos del m icroprocesador lo
0 0 0 7 76 descifran. La inform acin obtenida perm ite al
Figura 2.13 Ejemplo de un programa objeto
dispositivo identificar la naturaleza de los bytes
que siguen al op cod e.
Para ejecutar un program a, un m icropro
cesador debe tenerlo alm acenado en forma bi El conjunto de cdigos de operacin ( op co
n aria (patrones de 1 y 0) en posiciones ad ya des ) a los cuales puede responder un microproce
centes de la m em oria de programa del sistem a. sador, constituye su conjunto de instrucciones
Esta forma b in aria del program a se denom ina (Instruction Set) . C ada microprocesador tiene su
len g u a je d e m q u in a y es el nico lenguaje que propio conjunto de instrucciones, cada una re
entiende el m icroprocesador. En la figu ra 2 .12 presentada por un op code diferente. El nmero
se m uestra un ejem plo de un program a en len mximo de cdigos de operacin que puede des
g u aje de m quina para un m icroprocesador cifrar un microprocesador es igual a 2N, siendo
80 8 5 . Para evitar la confusin que, desde el N el tamao de la palabra de datos del mismo.
punto de vista del program ador, puede gene
rar una larga lista de unos y ceros, estos cdi Las instrucciones de un m icroprocesador
gos se pueden representar en forma hexadeci- pueden agruparse en tres grandes categoras se
m al, constituyendo lo que se denom ina un p r o gn su funcin: la prim era son las instruccio
gra m a o c d ig o ob jeto. En otras palabras, un c nes de transferencia de datos, las cuales m ue
digo objeto es, sim plem ente, una representa ven informacin sin alterar su contenido de una
cin abreviada de un program a en lenguaje de parte a otra del sistem a; la segunda categora es
m quina, fig u ra 2.13. Por ejem plo, 101111 01 la de procesamiento de datos; estas instruccio
se representa como BD, 0000 0001 com o 01, nes transforman la inform acin desde el punto
1110 0110 com o E6, 0000 111 lco m o 0F, etc. de vista lgico o aritm tico; y la tercer catego
ra, son las instrucciones de control de progra
No todos los cdigos de un program a ob ma, ellas determ inan la secuencia de ejecucin
jeto o en lenguaje de m quina, corresponden de las instrucciones.
a instrucciones ejecutables. M uchos de ellos co
rresponden a datos y direcciones que son u ti En la figu ra 2 .1 4 , observam os un d iagra
lizados por el program a para propsitos p arti ma sim plificado de la arquitectura de un siste
culares. Los cdigos correspondientes a instruc ma basado en un m icroprocesador, en el cual
ciones ejecutables se denom inan com nm en basaremos nuestro an lisis de la interaccin en
te cdigos operacionales ( op co d es ). Por tanto, tre cada una de las partes del sistem a y la se
en un sistem a de 8 bits, los program as en len cuencia que presenta.
guaje de m quina se reducen a unas cuantas
secuencias de grupos de 8 b its (1 byte) situados En este diagram a se pueden notar cuatro
en algn lugar de la m em oria. bloques fundam entales: la m em oria, la unidad
de control, la unidad operativa y el m dulo de
Estas secuencias representan a su vez una entradas y salidas. Todos ellos conectados a tra
m ezcla de instrucciones para el m icroprocesa vs de los buses de direcciones, datos y control.

Curso prctico sobre Microcontroladores C 19


icroprocesadores
Unidad de control
Bus de datos
e Memoria de
Decodificador microinstrucciones Secuenciador Bus de
instrucciones Registro de generador de direcciones
instrucciones de (MI)
instrucciones impulsos de
Cdigos de control
instruccin (S)

Memoria RAM de lectura y escritura, con 256 posiciones de 8 bits cada una

Instrucciones
Direccin Contenido
Bus de Bus de
direcciones Decodificador 00 1111 0000 datos
de 01 0101 0110
instrucciones
/ 02 00111100
(DI) 256

ff 0100 0000 Lectura/escritura

k
Bus de direcciones

Memoria Unidad de control

RDI DI RD
Be 3

T
Registro
auxiliar
1
Acumulador ALU

Registro de

estado
a
Perifricos del Unidad operativa
mundo exterior

Unidad operativa

Acumulador
Bus de datos

Seleccin
de operacin

Figura 2.14 Diagrama de bloques simplificado de un sistema basado en un microprocesador

W l . Curso prctico sobre Microcontroladores


Teora

El bloque 1 es la m e m o r ia ; en ella se al
m acenan una serie de cantidades codificadas RECUERDE QUE
en ocho 8 bits. Para entender la operacin de La memoria principal de un sistema basado en un
una m em oria, puede hacerse una an alo ga con microprocesador se construye con memorias de tipo
un casillero de correos, donde existen m uchas electrnico, que se clasifican en dos grandes grupos:
casillas para diferentes usuarios, cada una con
un nm ero o direccin que la identifica y con M em orias ROM (R ead O nly M em ory). Son me
la propiedad de alm acenar cu alq u ier clase de morias que una vez grabadas, permanecen con di
inform acin. cha informacin permanentemente y slo pueden
ser ledas. Son memorias de slo lectura y se uti
Pues bien, una m em oria posee un co n ju n lizan para guardar los programas o datos fijos.
to de posiciones cada una con su propia direc
cin, y en cada una de dichas posiciones puede M em orias RAM (R andom A ccess M em ory). El
existir cualquier dato de ocho bits. contenido de sus posiciones puede ser ledo y es
crito. Al igual que las memorias RO M , son de ac
La po sicin que se va a acceder es in d i ceso aleatorio, es decir, que para acceder a una po
cad a por el b u s de d ireccio n es al D e c o d ific a - sicin determinada no hay que pasar por las ante
d o r d e D ir e c c io n e s (DI) , el cual es un d isp o riores, como sucede en las cintas y discos magn
sitiv o de n en trad as y 2" salid as. D ep en d ien ticos. Son las ms rpidas y su tiempo de acceso se
do de la en trad a b in aria que lea, h a b ilita la mide en nanosegundos.
le c tu ra de u n a direcci n d e term in ad a por
m edio de la activaci n de la ln ea correspo n El principal inconveniente de las memorias
d ie n te , fig u ra 2 .1 5 . Los 8 b its de la po sicin tipo RAM es que son voltiles, o sea, al cortarse
acced id a salen por el bus de datos h asta el el sum inistro de energa elctrica, cuando se des
R egistro d e D a tos (RD), si se efecta un a ope conecta el sistema, pierden la informacin que
raci n de lectu ra. contenan. En un sistema con microprocesador,
se utilizan este tipo de memorias para almacenar
Cuando se trata de una operacn de escritu el resultado de las operaciones y los datos de las
ra, el contenido digital de las 8 lneas del bus de variables que se van creando en el programa.
datos se carga en el Registro de Datos y, desde l,
en las 8 celdas de la posicin direccionada. El pro El b loque 2 es la u n id a d d e c o n t r o l cuya
ceso de direccionar una posicin y leer o grabar funcin prim ordial es la de interpretar y eje
un dato se denomina ciclo d e m em oria. cutar las instrucciones. El cdigo binario de la
operacin que se va a ejecutar, se deposita in i
.Salidas
cialm ente en el R egistro d e I n s tr u ccio n e s (Rf)
y luego se traslada al D e co d ifica d o r d e I n s tr u c
c io n e s (DI), cuya m isin es seleccionar en una
16 posiciones m em oria RO M un conjunto de posiciones que
e n la
m em oria corresponden al cdigo recibido y en las que
se encuentran los cdigos de las operaciones
elem entales (o m icro in stru ccio n es) que com po
nen las diferentes etapas en las que se divide la
ejecucin de la instruccin decodificada.

Figura 2.1 5 Segn e l dato introducido p o r e l bus de direcciones, Las m icroinstrucciones van pasando al Se-
se habilita la com unicacin con una determ inada posicin de c u e n c ia d o r (5), que es el circuito lgico de con
memoria

curso prctico sobre Microcontroladores m n B T s


microprocesadores

Unidad de control Memoria principal Unidad de control

Direccin Contenido
Reqistro Decodificador Registro Registro
de de de datos de
direcciones direcciones 10 1100 0011 instrucciones

Figura 2.16 Movimientos de informacin de los contenidos de las unidades que participan en la fase de bsqueda de una instruccin

trol y tiem pos el cual gobierna a todos los ele ga o alm acena en un registro auxiliar. Un re
m entos del sistem a y lleva a cabo la ejecucin gistro especial, denom inado R egistro d e E sta
secuencial de las m icroinstrucciones. La fun d o , contiene una serie de bits que actan como
cin del C o n ta d o r d e P r o g r a m a ( PC) es en sealizadores de alguna caracterstica especial
viar por el bus de direcciones la posicin de la que se haya producido en la ltim a operacin
m em oria donde se encuentra la siguiente ins efectuada por la ALU. Por ejem plo, un se ali
truccin que se va a ejecutar. N orm alm ente, zador denom inado Z (cero), pasa a valer uno
este contador se increm enta en una unidad en (1) si el resultado de la operacin que ha he
cuanto la m em oria acepta la direccin de la cho la ALU ha sido cero (0).
instruccin anterior.
El bloque 4 es el de en tr a d a s y sa lid a s y se
El bloque 3 es la u n id a d o p e r a tiv a ; a ll se encarga de sum inistrar al sistem a los datos pro
ejecutan las operaciones aritm ticas, lgicas, de cedentes del exterior, as como de llevar los re
desplazam iento, de rotacin, de increm ento, sultados a los perifricos del m undo real.
etc. Uno de los operandos que interviene en la
operacin que va a efectuar la ALU (U nidad Secuencia de operacin de una
l gico-aritm tica), procede de un registro de instruccin
8 b its llam ado A cu m u la d or. El otro operando En un m icroprocesador, el p rin cip io de eje
llega desde cualquier parte del sistem a y se car cucin de cu alq u ier in struccin tiene carac-

Bus de direcciones

Memoria Unidad de control

Bus de control

Registro
auxiliar

Acumulador ALU

Perifricos del
mundo exterior

Figura 2 .1 7 El contenido del Contador de Programa (PC) pasa al Registro de Direcciones (RDI)

22 ^ Curso prctico sobre Microcontroladores


Teora

Bus de direcciones

Figura 2.18 El contenido de la posicin de la memoria se deposita en el Registro de Instruccin

tersticas sim ilares. En todas ellas h ay dos sigue con la parte de la ejecucin propiamente
tiem pos fu n d am en tales llam ad o s b sq u ed a dicha que puede tener varios subtiempos, depen
(fe t c h ) y e je c u c i n ( ex ecu te). El diagram a de diendo del tipo de instruccin.
bloques de un sistem a con m icroprocesador
perm ite un an lisis rpido de la form a en que Fase de bsqueda
se ejecu ta una in stru cci n c u a lq u ie ra ; por Es el comienzo de una nueva instruccin, el Contador
ejem p lo, la correspondiente a la sum a de dos d e Program a (PC) deposita en el bus de direcciones la
operandos. direccin de la posicin de la memoria principal don
de se encuentra el cdigo de la instruccin que se va a
El contador de program a empieza conte ejecutar. Dicho cdigo sale de la memoria principal
niendo la direccin de la m em oria principal por el bus de datos hasta la Unidad d e C ontrol donde
donde est alm acenado el cdigo binario de la se graba en el Registro d e Instrucciones , figura 2.16.
instruccin de sum a. Luego ese contenido pasa
a travs del bus de direcciones hasta la m em oria C om o la C P U no sabe que tipo de in s
principal, donde se decodifica y selecciona la truccin va a ejecutar, los tiem pos de bsque
posicin que contiene el cdigo binario de la da son exactam ente iguales. El desarrollo de
operacin. Dicho cdigo de m quina sale de esta fase es la siguiente:
la m emoria por el bus de datos hasta el registro
de instrucciones de la U n id a d d e C on tro l , don 1. El contenido del Contador de Programa (PC),
de se deposita. Toda esa fase de localizacin del a travs del bus interno de la unidad de con
cdigo de la instruccin m encionada, recibe el trol, aparece en el registro de direcciones de me
nombre de f a s e d e b sq u ed a y es la m ism a para moria, figura 2.17.
cualquier instruccin.
2. El contenido de la posicin de memoria aparece
El tiempo de ejecucin empieza por un sub- en el bus de datos. Esta informacin se deposita
tiempo de decodificacin de la instruccin y pro- en un registro de instruccin (RI), figura 2.18.
*
Curso prctico sobre Microcontroladores v 23
L a s Li procesadores

Seales de control a los


elementos del sistema

Figura 2.19 Comportamiento de la unidad de control durante la fase de ejecucin

Al mismo tiempo, el Contador de Programa (PC) bits sealizadores del Registro de Estado, tomarn el
se incrementa, puesto que l debe siempre sea valor correspondiente en funcin del resultado.
lar la direccin de la siguiente instruccin que se
va a ejecutar, para cuando se necesite. De esta Ejecucin de una instruccin
forma se ha completado la operacin de bsque En resumen: completada la fase de bsqueda, el
da de una nueva instruccin. cdigo de m quina del R egistro d e In stru ccio n es
llega al D eco d ifica d o r d e In stru ccio n es , que se
Decodificacin de una instruccin encarga de localizar las posiciones de la memoria
Es la prim era parte del tiem po de ejecucin y de microinstrucciones que correspondan. Dichas
es tam bin exactam ente igu al para todas las microinstrucciones van introducindose al se
in strucciones, puesto que an no se sabe que ntenciador a m edida que se realiza el proceso. El
operacin hay que efectuar. secuenciador, con cada m icroinstruccin, enva
una serie de seales de control a los elementos
De m om ento, la parte de la instruccin llam a del sistema que deben actuar en cada momento.
da c d ig o d e o p e r a ci n ( o p co d e ), se transfiere Ejecutadas todas las microinstrucciones que com
al D ecodificador de Instrucciones (D I) y aqu ponen la instruccin, el Contador de Programa
em pieza la parte diferente de la instruccin. se incrementa en una unidad y el sistema pasa a
la ejecucin de la siguiente instruccin del pro
Al recibir el Decodificador de Instrucciones grama, figura 2.19.
el cdigo de la instruccin en curso, se encarga
de seleccionar en la memoria de microinstruc- H ay varios tipos de instrucciones bsicas
ciones aquellas que corresponden a dicho cdi que pueden agruparse de acuerdo con diferen
go. La llegada de las microinstrucciones al Se- tes criterios, tales como funcionalidad, nm e
cuenciador, origina una serie de seales de con ro de ciclos de m em oria utilizados, nm ero de
trol que regulan la ejecucin de las diferentes eta palabras que utiliza, etc. D ependiendo de las
pas en las que se descompone la instruccin. caractersticas de la com putadora y de su m i
croprocesador, los diferentes tipos de in struc
En el caso de una suma, uno de los sumandos ciones sern de una, dos o ms palabras y ne
ha de estar contenido previamente en el A cum u cesitarn uno o ms ciclos de m em oria para
lador, mientras que el otro llegar del registro auxi llegar a obtenerse enteram ente en la unidad de
liar, generalmente, desde la memoria de datos, cuya control. En funcin del nm ero de palabras y
direccin correspondiente vendr acompaando del tipo de instruccin, la ejecucin tiene ca
al cdigo de la operacin en la instruccin. ractersticas diferentes. Estos parm etros de
term inan, por ejem plo, el nm ero de veces que
La ALU efectuar la suma y el resultado se de- el sistem a debe acceder a la m em oria para leer
sitar en el Acumulador, al mismo tiempo que los toda la instruccin.

Curso prctico sobre Microcontroladores


Teora

Puertos de entrada y de salida Un puerto o interfaz de entrada/salida puede


El concepto de entrada/salida abarca toda trans construirse utilizando componentes normales de
ferencia o intercam bio de inform acin {datos) pequea y mediana escala como compuertas, flip -
entre un m icroprocesador (C PU ) y un disposi flops, registros, codificadores, decodificadores, etc;
tivo externo o perifrico especfico. C uando los o circuitos integrados de gran escala LSI (Large
datos fluyen hacia el microprocesador, se tiene Scale Integration) especializados como la interfaz
el caso de una operacin de en tra d a y cuando perifrica programable (PPI) 8255 o el controla
lo hacen en direccin al m undo externo, se tie dor programable de interrupciones (CPI) 8259.
ne el caso de una operacin de salida.
En la figura 2.2 0 se m uestra un ejemplo
Un paso im portante en el diseo de cual sencillo de un puerto de salida con un flip -flo p
q uier sistema basado en microprocesadores es tipo D cuya funcin es transferir el estado del
seleccionar los puertos de entrada/salida o cir b it de datos DO a un diodo LED que acta como
cuitos de interfaz cuyo costo y rendimiento sean dispositivo perifrico. Esto sucede cuando en la
los ms adecuados para una aplicacin dada. La lnea de direccionam iento A l 5 hay un nivel alto
com plejidad de un puerto I/O puede variar des y la seal de escritura (W R ) es baja. Despus de
de un sencillo flip -flo p hasta un circuito inte deshabilitado, el flip -flo p retiene la informacin
grado altam ente especializado; por ejem plo, un previam ente alm acenada m ientras el m icropro
controlador para un tubo de rayos catdicos o cesador se dedica a otras tareas.
un display grfico tipo LCD.
En la figura 2.21 se muestra un ejemplo senci
En general, las funciones que debe realizar un llo de puerto de entrada con un flip-Jhp. En este
puerto o dispositivo de interfaz de entrada/salida caso, el dispositivo perifrico es un interruptor y su
se pueden resumir en los siguientes trminos: estado (alto o bajo), se transfiere a la lnea de datos
DO cuando en la lnea de direccionamiento A l 5
Id e n tificar d ireccio n es con el fin de esta hay un nivel alto y la lnea de control de escritura
b lecer la conexin con los buses de datos y (RD) es baja. Una vez que el microprocesador acepta
de control d el sistem a cu an d o se seleccio el bit DO presente en el bus de datos, lo transfiere al
na un d isp o sitivo p erifrico de entrada/sa acumulador y sita la salida del puerto de entrada
lid a especfico. en estado de alta impedancia con el fin de que no
Interpretar rdenes. Generalmente, las rdenes interfiera con otras transferencias de datos.
enviadas por el microprocesador al puerto I/O
se reducen a seales de lectura y escritura. Es Una manera ms ele
tas seales pueden venir ya decodificadas o ne gante y eficiente de controlar el trnsito de informa-
cesitar una decodificacin previa. Dispositivo
Adaptar fsicamente el sistema a los re Microprocesador Puerto de salida perifrico de

quisitos del perifrico. Esto incluye la A 15 D f D 0 i


utilizacin de manejadores {drivers) de
J A I 4-A01 CK LED
lneas de transmisin, eliminadores de S il
a.
ruido, optoacopladores, etc. a.
a
Controlar los tiempos para la transferen T <
WR
cia de informacin con el fin de garanti LL.
1 1Lnea de escritura _
zar que el flujo de datos entre el micro- m
procesador y el perifrico se haga de una Lnea de seleccin
manera ordenada y eficiente.
Figura 2.20 Puerto de salida con flip-flop

Curso prctico sobre Microcontroladores <m /K <B Ts


microprocesadores

Dispositivo perifrico
de entrada cuito y el programa y hace posible funciones que
no seran ejecutables si el microprocesador tu
Puerto de entrada viera que hacerse cargo de todo el proceso de en
trada/salida. Por la funcin que hacen, los puer
tos de interfaz programables se pueden dividir
en dos categoras: interfaces dedicadas e interfa
ces de propsito general o interfaces universales.

Las in terfa ces d ed ica d a s se especializan en


una funcin especfica, por ejemplo, controlar
perifricos, temporizar eventos, etc. En esta ca
101-071^ . - tegora se encuentran entre otros: el temporiza-
A15-AO: Bus de direcciones dor programable 8253, el controlador de disco
Microprocesador
D0-D7: Bus de datos flexible 8271, la interfaz programable de teclado
Figura 2.21 Puerto de entrada con interruptor y display 8279 y el controlador de tubos de rayos
catdicos (TRC) 8275.
cin entre el mundo externo y el microprocesador,
es utilizando circuitos integrados de gran escala (LSI) Las interfa ces d e p rop sito gen era l , como su
diseados especialmente para el manejo de entradas nombre lo indica, son ms universales y pueden
y salidas. Entre las principales caractersticas de estos adaptarse a una gran variedad de aplicaciones. Exis
circuitos especializados podemos mencionar: ten interfaces para transmitir datos en paralelo como
la interfaz perifrica programable (PPI) 8255 y para
Son fciles de conectar con los buses del siste la transmisin de datos en serie como el 8251.
m a puesto que disponen de lneas de adapta
cin directa con las salidas del respectivo m i El circuito de soporte 8155 (l/O-RAM)
croprocesador. Por lo general, slo se requiere Si analizamos un microprocesador tpico como el
un sistema decodificador de direcciones. 8085, observaremos que contiene todas las partes
Son circuitos de entradas y salidas programa- de una CPU funcional as como un puerto serie;
bles. Esta caracterstica perm ite adaptarlos f todo lo que necesita para completar un sistema
cilm ente a las condiciones de los circuitos ex bsico es una memoria RAM, una memoria ROM
ternos utilizando nicam ente comandos de y puertos paralelos de entrada/salida.
program acin. G eneralm ente, la program a
cin consiste en cargar, de una forma prede Con el fin de m inim izar el nmero de cir
term inada, un registro interno que define el cuitos integrados necesarios para configurar un
modo de operacin. Este ltim o se puede al sistema sencillo, Intel, creador del 8085, ha de
terar en cualquier momento por programa. sarrollado una serie de componentes que inte
Algunos m dulos de entrada/salida poseen gran m em oria RAM y puertos I/O memoria
cierta capacidad de proceso propia, indepen ROM y puertos I/O en un mismo circuito inte
diente del microprocesador. Esta circunstan grado. Los dispositivos ms representativos son
c ia es favorable ya que lib era al m icroproce el 8155 , el 8355 y el 8755. El 8155 contiene256
sador de la ejecucin de ciertas tareas ru ti bytes de RAM, dos puertos I/O paralelos de 8 bits,
narias y de control, las cuales delega en el un puerto I/O paralelo de 6 bits y un temporizador
dispositivo de interfaz. de 14 bits. El 8355 contiene 2048 bytes- de ROM y
dos puertos I/O paralelos de 8 bits. El 8755 tiene dos
La caracterstica anterior, denom inada algu puertos I/O y 2048 bytes de EPROM. En esta sec
nas veces in teligen cia d itrib u id a , simplifica el cir- cin estudiaremos un sistema basado en micropro-

cm f tr ,: Curso prctico sobre Microcontroladores


cesador, utilizando el circuito integrado 8155. En la
figura 2.22 se muestra la configuracin de pines, el
diagrama interno de bloques y la estructura de re
gistros de este circuito.

El 8155 puede dem ultiplexar internamen


te el bus de datos y direcciones del 8085. Por
esta razn, slo se necesitan ocho lneas, desde
ADO hasta AD7, para transm itir datos y direc
ciones. Las lneas lO/M D, RD y W R se utilizan
para el control de la memoria y las lneas ALE y
RESET para el control interno.

Para efectos de la interfaz se utilizan 22 lneas


programables como entradas o salidas y organiza
das en tres grupos as: desde PAO hasta PA7 para el
puerto A, desde PBO hasta PB7 para el puerto B y
desde PCO hasta PC5 para el puerto C. Las lneas
TI (pin 3) y TO(pin 6) son, respectivamente, la
entrada y la salida del temporizador.

La memoria RAM del 8155 tiene asignadas


las direcciones OOOOH hasta 00FLH y es accesi
ble externamente mediante los ocho bits de di-
reccionamiento de ms bajo orden cuando las
lneas CE e IO/M son bajas y cualquiera de las
lneas RD W R es baja. Los ocho bits de direc-
cionam iento de ms bajo orden se almacenan
en un registro interno durante los flancos de
bajada de la seal ALE.

La capacidad de memoria RAM del 8155


(256 bytes) es, generalmente, ms que suficiente
para sistemas pequeos. En la mayora de los
casos esta memoria se utiliza para almacenamien
to temporal de datos y resultados, as como de
informacin de registros y direcciones.
f
Acceso a los puertos
Comando Los puertos A, B y C se pueden utilizar como
Estado tres puertos de entrada/salida independientes;
estos puertos son accesibles externam ente a tra
P y MODO TIMER ,
46~-4 8- 4^ _______ I vs d e las 8 lneas de ms bajo orden del bus de
direcciones cuando CE es baja, RD o W R es
(c) /
baja e IO/M es alta. La figura 2 .2 3 muestra las
Figura 2.22 Circuito de soporte 8155

Curso prctico sobre Microcontroiadores


icroprocesadores

direcciones internas de cada registro y de cada segn los objetivos de este curso. De l se origin
puerto en el 81 5 5 . Por ejem plo, para seleccio el 8086 el cual es la base de toda la familia Intel la
nar el puerto B, A l debe ser alta (1) y A2 y AO que sigui con el 80186, el 80286, el 80386, el
deben ser bajas (0). 80486 y el Pentium. Si usted est interesado en
profundizar en este tema, le recomendamos nues
Diseo de un sistema mnimo con tro Curso Bsico de Microprocesadores.
8085 y 8155
Podemos decir que un sistem a m n im o con m i El sistema se ha dividido en dos tarjetas: una
croprocesador es un dispositivo constituido por tarjeta procesadora y una tarjeta programadora, fi
una serie m nim a de elementos que perm iten el gura 2.23. La primera contiene, esencialmente, la
desarrollo de algn tipo de tarea o aplicacin CPU, la memoria RAM, el temporizador progra-
en el m undo real de manera autnom a, in teli mable, los puertos de entrada/salida y el registro de
gente y siguiendo las pautas dadas por un pro comandos. En la memoria RAM reside el progra
gram a. En el estudio de los m icrocontrolado ma de instrucciones que ejecuta el microprocesa
res, es m uy im portante entender qu es un sis dor. La tarjeta programadora consta de una serie de
tem a m nim o con microprocesadores, ya que es funciones de pequea y mediana escala tales como
precisam ente esta configuracin bsica la que compuertas, drivers, decodificadores y registros. Su
se ha reemplazado con esta nueva tecnologa. funcin es permitir que el usuario tenga acceso a la
memoria del sistema y pueda cargar en la misma
Como ejemplo mostraremos el diseo de un datos e instrucciones, as como visualizar resulta
sistema microcomputador mnimo desarrollado dos. La informacin se recibe desde un teclado hexa
por CEKIT alrededor de una CPU 8085 y un decimal y se visualiza en diodos LED y displays.
circuito de soporte 8 15 5 . Aunque el 8085 es un
microprocesador de ocho bits de las primeras ge Diseo de la tarjeta procesadora
neraciones, lo hemos utilizado en este ejemplo por La tarjeta procesadora de nuestro microcomputa
la facilidad para entenderlo con fines didcticos dor consta, bsicamente, de una CPU 8085 y un

Visualizador Visualizador
binario hexadecimal

Temporizador

Entrada Yn t Salida

0 1 2 3
4 5 6 7
8 9 A B
C D E F
Teclado hexadecimal
WR
RD
ALE *
Tarjeta program adora 8085 8155
Salida de reloj
auxiliar Tarjeta procesadora
WR: Orden de escritura (ESC)
RD: Orden de lectura (LEE)
ALE: Orden de dlreccionamiento

Figura 2 .2 3 Sistema mnimo

Curso prctico sobre Microcontroladores


T1 T O
Temponzador

Figura 2.24 (a) Diagrama de bloques (b) Diagrama esquemtico

circuito de soporte 8155. En las figuras 2.24(a) y control, como su nombre lo indica, transporta las
2.24(b) se muestran, en su orden, los diagramas de seales de control (ALE,WR, RD, lO/M, etc) que
bloques y esquemtico de esta parte del sistema. necesita la CPU para comunicarse o dialogar co n
la memoria y los puertos I/O.
La CPU 8085, cuya configuracin interna
se ilustr en la figura 2.5, proporciona, entre otros A travs del bus de direcciones, el 8085 se
bloques funcionales, una unidad aritm tico-l lecciona de m anera inequvoca la posicin de
gica (ALU) de ocho bits , una unidad de control memoria o el puerto I/O desde el cual trae o ha
y varios registros accesibles al usuario. cia el cual dirige la informacin del bus de datos.
Puesto que el sistema tiene solamente 256 bytes
Aunque el 80 85 , por disponer de un bus de de memoria, slo se requieren ocho lneas de di-
direcciones de 16 bits, puede direccionar un espa reccionam iento (las menos significativas); las
cio de memoria de 64K (65536 bytes), los 256 ocho restantes (las ms significativas), no se u ti
bytes de RAM disponibles en nuestro sistema son lizan. En el 8085 las ocho lneas de direcciona-
suficientes para soportar la mayora de programas miento de ms bajo orden (A0 hasta A7), se m ul-
sencillos de aplicacin. Todos los bloques funcio tiplexan internam ente con las ocho lneas del
nales que constituyen la tarjeta procesadora se co bus de datos (DO hasta D7) formando un bus
munican entre s a travs de los buses de control, nico de datos y direcciones. El 8155 decodifi-
de datos y de direcciones del sistema. El bus de ca o dem ultiplexa la inform acin transportada

Curso prctico sobre Microcontroladores


sobre estas lneas para saber cundo se trata de da RESET IN del 8085 cuando el interruptor
una direccin y cundo de un dato. S i est en posicin RESET y un nivel alto
cuando SI est en la posicin R U N .
El circuito de reloj
Todo microprocesador necesita un generador de Los buses de datos y direcciones
pulsos de reloj para controlar el contador de pro El 8 0 8 5 , por poseer un bus de direcciones de
gram a y sincronizar sus funciones internas. En 16 lneas, puede direccionar hasta 6 5 53 6 bytes
nuestro caso, este circuito de reloj viene incor (64K ) de m em oria. Sin em bargo, para acceder
porado en la C PU 8085 y su frecuencia puede a las 2 5 6 posiciones de RAM disponibles en el
controlarse externamente m ediante un cristal o circuito de soporte 8155 slo se requieren las
una red RC externa conectada entre las lneas XI ocho lneas de ms bajo orden. En la figura
(pin 1) y X2 (pin 2). 2.25 se m uestra la forma de interconectar los
buses de datos y direcciones de los circuitos
El circuito de reset 8085 y 8155. Recuerde que en el 8085 las ocho
El 8085 puede ser fcilmente conectado o desco lneas de direccionam iento de ms bajo orden
nectado por hardw are manejando adecuadamen estn m ultiplexadas con las ocho lneas de d a
te su entrada de reset (RESET IN), pin 36. Cuan tos, form ando un bus nico de datos y direc
do esta lnea recibe un nivel bajo, el microproce ciones. En otras palabras, en nuestro sistem a,
sador ingresa al estado de reset. Bajo esta condi los datos y direcciones viajan sobre las m ism as
cin, el contador de programa se carga con ceros y lneas (AD0 hasta A D 7).
los buses de datos y direcciones se sitan en el es
tado de alta impedancia. Debido a su naturaleza El 8155 distingue internamente entre direc
asincrnica, la seal de reset puede afectar el con ciones y datos interpretando el estado de la lnea de
tenido de los registros internos de la CPU , in- control ALE. Cuando esta ltima es de nivel bajo,
cluido el de estados o banderas. Cuando la lnea entiende que la informacin presente en el bus es
RESET 1N se hace alta, el 8085 procede a ejecu un dato y cuando es de nivel alto es una direccin.
tar el programa almacenado en la memoria.
C uando el bus AD acta como bus de da
En el m om ento de ap licar energa al siste tos, las lneas AD0 a AD7 son bidireccionales, es
ma, el condensador C1 est descargado e inyec decir, pueden transportar informacin desde o
ta, a travs de R4, un nivel bajo a la entrada hacia el microprocesador. C uando este bus se
RESET IN del 80 8 5 . Com o resultado, este l convierte en bus de direcciones, las lneas AD0
tim o pasa al estado de reset descrito anterior hasta AD 7 son unidireccionales y llevan infor
m ente. El condensador com ienza entonces a macin de la CPU hacia la m emoria o hacia los
cargarse a travs de R3. Cuando el voltaje entre puertos de entrada/salida.
los term inales de C1 alcanza un valor cercano a
+5V, la entrada RESET IN recibe un nivel alto AD0 ADO

y el 8085 sale del estado de reset, comenzando .ADJ AD1

la ejecucin de las instrucciones a partir de la AD2 AD2

posicin 0000H . El diodo DI descarga rpida .A D J AD3

m ente el condensador cuando se desconecta m o AD4

AD5 AD5
m entneam ente la fuente de alim entacin, in
.ADJ AD6_
cluso como resultado de una falla en la alim en
_AD7 AD7_
tacin. El circuito constituido por S i , R l, R2, I - * ----------
IC 1A e IC1B forma un elim inador de rebote
cuyo objetivo es aplicar un nivel bajo a la entra Figura 2 .2 5 Conexin multiplexada del bus de datos y direcciones

Curso prctico sobre Microcontroladores


Teora

El bus de control La lnea W R (w rite: escritura) del 8085 (pin


Com o se m uestra en la figura 2 .2 6 , la CPU 31) est conectada a la lnea W R (pin 10) del
80 8 5 se com unica con el circuito de soporte 8155 . Cuando esta lnea se hace baja, la C PU le
8155 a travs de cinco lneas de control: RE indica a la m emoria que el dato o la instruccin
SET, ALE, W R , RD e IO/M. Otras lneas de presente en el bus AD va a ser escrita en la posi
control como H O LD , HLDA, READY, etc., cin de m emoria previamente seleccionada. La
no son necesarias para la operacin de nuestro lnea RD ( read: lectura) del 8085 (pin 32) est
sistem a m nim o pero s se requieren en siste conectada a la lnea RD (pin 9) del 8155. C uan
mas ms grandes para ejecutar otras funciones. do esta lnea se hace baja, la C PU le indica a la
m emoria que va a proceder a leer el contenido
La salida de reset del 8085 (RESET OUT, de la direccin previamente seleccionada y a si
pin 3), activa en alto, le com unica a la entrada tuar la informacin en el bus AD.
de reset del 8155 (RESET IN, pin 4) que el m i
croprocesador est en condicin de reset , es decir Finalm ente, la lnea IO/M ( Input/output -
que no est ejecutando el programa de aplica m em ory: entrada/salida-memoria) del 8085 (pin
cin. Cuando esto sucede, el 8155 entra tam 34) est conectada a la lnea IO/M (pin 7) del
bin en estado de reset y define todas las lneas de 8 1 5 5 . Cuando esta lnea se hace alta, el 8155
sus puertos como entradas. reconoce que la palabra de direccin presente
en el bus de datos corresponde a un registro in
La lnea ALE (A ddress L atch E nable : habi- terno o a un puerto I/O. Cuando la lnea 10/
litado r del seguro de direcciones) del 8085 (pin M se hace baja, la CPU 8085 le inform a al c ir
10) est conectada a la lnea ALE del 8155 (pin cuito de soporte 815 5 que la direccin presente
11). C uando esta seal es alta, la C PU le in en el bus AD corresponde a una de las 256 po
form a a la m em oria interna del 8155 que la siciones de m em oria a las que es posible tener
inform acin bin aria disponible en el bus AD acceso. Estas localizaciones tienen asignadas d i
es una direccin. recciones entre 0 0 H y FFH.

Como resultado de la seal ALE, el 8155 al Diseo de la tarjeta programadora


macena en un registro interno, durante el flanco Desde un punto de vista conceptual, el circuito
de bajada, la palabra de direccin. En el siguiente de la figura 2.24 es una microcomputadora com
ciclo de mquina, el microprocesador puede pro pleta porque posee una unidad central de pro
ceder entonces, a leer o a escribir en la posicin de ceso, una unidad de m em oria y puertos de en
memoria direccionada. En este caso, la informa trada/salida. Sin embargo, le falta lo ms im
cin se transmite sobre el bus AD, convertido aho portante: un program a. Sin un program a que le
ra en el bus de datos del sistema. indique lo que debe hacer, un m icrocom puta-
dor es slo una masa inanim ada de com ponen
Resel out _ Resel in tes electrnicos.
4

ALE ALE
______ __ Para almacenar en la memoria los datos e
11
instrucciones que constituyen el programa de
W
WR >_______ 10 in nuestra microcomputadora, necesitamos asum ir
co
temporalmente el control del circuito de soporte
R
55 9 8155 y aislar el microprocesador 8085 del resto
10/M _ IO/M 7 del sistema. De este modo, podemos introducir
J I
informacin en la memoria sin intervencin de
Figura 2.26 Conexin del bus de control la CPU . Esta es, precisamente la funcin de la

Curso prctico sobre Microcontroiadores


--------------
ADO ADO
: - y '- - - P H cesadores. Hemos analizado su arquitectura in
AD1 AD1

AD2 AD2
terna, su funcionamiento y la forma de interco-
AD3
1 B AD3
nectarlos dentro de un sistema para que puedan
;*"_ :B ejecutar tareas que involucren el manejo de va
AD4 AD4
AD5 AD5 riables reales y cierto grado de inteligencia. H e
ID
AUb AD6 !D mos visto que estos dispositivos requieren de
AD7 n7
AD7 componentes adicionales para ejecutar una tarea
Resel n 1 especfica y que poseen las facilidades para direc-
Resel oul Resetn
h cionar o manejar gran cantidad de perifricos
ALE 1 Al F
HLC
como memorias, puertos y muchos otros dispo-
WR WR
R nR
u
sitvos. Debido a esta capacidad, los microproce
lU/M 11 IU/M sadores son el elemento fundam ental dentro de
los equipos de computacin modernos, donde
1 M H se manejan enormes cantidades de memoria y
T a rje ta p ro g ra m a d o ra gran variedad de perifricos.

Figura 2.2 7 Conexin de la tarjeta programadora


Los microcontroladores son dispositivos elec
tarjeta programadora. En la figura 2 .27 se ilustra trnicos que agrupan en un solo circuito integra
la forma de conectar esta tarjeta a la tarjeta pro- do todas estas caractersticas, aunque con cierta
cesadora. Cuando el interruptor S i de esta lti limitaciones de memoria y perifricos. Sin embar
ma se sita en posicin RESET, las lneas de go, su funcionamiento interno sigue siendo bsi
datos y direcciones ADO hasta AD7 del 8 0 8 5 camente el mismo. Por esta razn hemos querido
adoptan el estado de alta im pedancia y quedan entregar esta corta introduccin a los micropro
flotantes. Lo mismo sucede con las lneas de con cesadores, para dar una idea de todo el desarrollo
trol ALE, W R , RD e IO/M. La lnea RESET IN tecnolgico que involucra esta tecnologa y sentar
del 80 8 5 es de nivel bajo. las bases para el estudio de estos elementos.

Bajo estas condiciones, desde la tar V isualizacin de los datos Tarjeta procesadora
jeta program adora podemos acceder libre
m ente a la R A M del 8 1 5 5 y escribir en la
m ism a el program a que debe ejecutar el
m icroprocesador. A s m ism o, podem os
d ireccion ar cu alq u ier posicin de m em o
ria y leer su contenido. U na vez cargado
el program a, el control del 8 1 5 5 debe
8155
retornar al 8 0 8 5 para que este ltim o
lo ejecute (SI = R U N ). En la fig u ra
2 .2 8 observam os el aspecto fsico del
sistem a m nim o desarrollado alrede
dor del m icroprocesador 8 0 8 5 y del
circu ito in tegrado 8 1 5 5 .

Notas finales
En esta leccin se ha hecho un repaso
Tarjeta program adora Tarjetas de 1/0
general de los aspectos ms im portan
tes relativos al m undo de los micropro- Figura 2 .2 8 Sistema microcomputador mnimo con el 8085

S.i. Curso prctico sobre Microcontroladores


LOS MICROCONTROLADORES
En los ltim os aos, un com ponente elec
trnico ha revolucionado las tcnicas de
diseo; se trata del m icrocontrolador. Es
un circuito integrado program able que
contiene todos los elem entos necesarios
para controlar un sistem a.

A partir de esta leccin, iniciamos un estu


dio detallado de cada una de las partes y
mdulos internos que componen un micro
controlador, desde los ms bsicos hasta los
ms especializados, al igual que algunas tc
nicas y algoritmos que perm iten su manejo
e inclusin dentro de un proyecto.

Curso prctico sobre Microcontroladores m m iK < u m


Al analizar los sistemas basados en micro- + 5 V (Fuente de alimentacin)
procesadores mostrados en las lecciones anterio
res, se puede deducir que la estructura de un sis O
Q
*->*"O
C*
O
tem a de microcomputadora para aplicaciones de T03
D03
m edicin o control, tiene un carcter constante, 0O ROM
1 o CPU
es decir, siempre existir esa misma estructura
(C P U , memorias, puertos, buses, etc.). No es 11 RAM
difcil comprender, entonces, porqu los fabri
cantes de circuitos integrados decidieron produ
cir un supercomponente que contenga todos los l/O l/O
elementos de una computadora en un solo cir GND
cuito integrado.
T
A mediados de los aos 70, los fabricantes de
circuitos integrados dieron a conocer un nuevo dis
positivo denominado microcontrolador el cual con Entradas Salidas
tena toda la estructura de una microcomputadora,
Figura 3.1 Idea general de un microcontrolador
es decir, unidad de proceso (CPU), memoria RAM,
memoria ROM y circuitos de entrada/salida. El pri c u ta r un sin n m ero de tareas y procesos.
mer dispositivo de esta naturaleza fue lanzado por D esde ese m o m ento, el dise o de productos
Texas Instruments y se denomin TM S 1000, el cual electr n ico s cam bi rad icalm en te. C ircu ito s
fue el primer microprocesador que incluy suficien l gico s, m anejo de perifricos, tem p orizado-
te RAM y ROM para el desarrollo de aplicaciones. res y e stru ctu ra de com p u tad o ras, todo pro
g ram ab le y alo jad o en un solo circuito in te
El m icro co n tro lad o r se concibi com o g rad o ; es decir, una p eq ue a com putad ora
un dispositivo p ro gram ab le que puede eje- para todas las ap licacio n es.

Microcontrolador
Dispositivos
de entrada

Programa

Interruptores - Microcontrolador Diodos LED

Teclados
Programa
Sensores Rels

Transductores Parlantes

Dispositivos de entrada] Dispositivos de salida

Figura 3 .2 Diagrama general de un sistema basado en un microcontrolador

# V i l . Curso prctico sobre Microcontroladores


Ahora, para un diseador, la idea de una conectarse al mundo exterior. Un microcontrola
microcomputadora, en aplicaciones de control o dor puede definirse entonces como un sistema
en la fabricacin masiva de aparatos modernos, completo de cmputo, que incluye una CPU ,
se asim ila al esquema mostrado en la figura 3.1, memoria RAM y ROM, un oscilador y puertos
donde tenemos una fuente de alim entacin, un I/O, todo dentro de un mismo circuito integrado.
circuito de reloj y un microcontrolador. U na vez
configurado el sistema en cuanto al hardw are, so Sistemas microcontrolados
lamente se requiere grabar el program a en la me Aunque un usuario comn no lo perciba, hoy en
m oria RO M ; los puertos y a estn listos para da es m uy comn encontrar uno o varios mi-

In te rru p to r

P a rla n te

I I M o to r

S a lid a s d ig ita le s

Cristal

Figura 3.3 Estructura bsica de un microcontrolador y de los dispositivos que pueden hacer parte de un sistema

Curso prctico sobre Microcontroladores


crocontroladores en rodo tipo de aplicaciones des Los indicadores visuales ms comunes son las
de los electrodomsticos y aparatos caseros como pantallas de cristal lquido, los diodos LED, las
las cafeteras, los hornos microondas, las video lmparas incandescentes, etc. Los indicadores au
grabadoras y las alarmas, hasta los circuitos de dibles pueden ser parlantes, zumbadores, etc.
control sofisticados de los automviles, los avio
nes, las naves espaciales, los barcos, los sistemas Los actuadores son m uy im po rtan tes ya
de automatizacin industrial, etc. Las aplicacio que se utilizan para m anejar las cargas como
nes para los microcontroladores son infinitas; el los rels, las electrovlvulas, los m otores, etc.,
nico lm ite es la imaginacin. fig u ra 3.3 .

La posibilidad de m anejar seales de entra Un ejemplo prctico puede ilustrar mejor


da y de salida, as como su capacidad para pro todas las posibilidades. Veamos el caso de un
cesar datos y tom ar decisiones, lo convierte en horno microondas, figura 3.4.
uno de los elementos electrnicos ms versti
les que existen. El diagram a general de un siste En este ejem plo tenemos tres clases de dis
m a m icrocontrolado sera el que se m uestra en positivos de entrad a: el teclado, por m edio
la figu ra 3.2. del cual se program a la funcin que se desea,
los sensores internos para controlar variables
Cuando se habla de dispositivos de entrada, com o la tem p eratura y, si el horno tiene esa
se hace referencia a todos los elementos que pue funcin, un receptor de control rem oto para
den cambiar su estado ante una determinada con cap tar las rdenes dadas por el usuario sin ac
dicin y generar una seal que pueda ser utilizada cio n ar el teclado.
por el microcontrolador para tomar alguna deci
sin; por ejemplo, un teclado, un interruptor, un C om o dispositivos de salid a estn: el d is-
sensor, un transductor, etc. Los dispositivos de sa p la y , que puede ser de diodos LED o de cris
lida pueden ser indicadores visuales, audibles o ac- tal lq u id o , el m otor que hace g irar los a li
tuadores, entre otros. m entos y algunos rels que se encargan de
co ntrolar o desactivar los circu ito s del h o r
Displays no, lo cual perm ite, por ejem plo, cam biar la
po ten cia y el tiem po de coccin, entre otros.
Teclados
t _r
Circuitos I

~U En este caso tenemos un m icrocontrola


Microcontrolador dor program ado especficam ente para esta fun
--------- Motores !
cin acom paado de un a serie de circuitos
i Sensores * Relevos com plem entarios de entrada y salida y sus res
internos pectivas interfaces.

H ay innum erables ejem plos de aplicacin


de esta tecnologa, desde algunos m uy sim ples
como un tem porizador, hasta sofisticados ro
bots con cierto grado de in teligen cia artificial.
En la seccin de proyectos de este curso, pre
sentam os una serie de aplicaciones reales que
el alum no podr construir, y as aprender y ve
Figura 3 .4 Ejem plo del uso de un m icrocontrolador rificar el poder y la versatilidad que ofrecen
en un horno m icroondas estos dispositivos.

'M T .1 Curso prctico sobre Microcontroladores


Diferencias entre sistemas basados en
microprocesador y en microcontrolador
Existen varias diferencias importantes entre estas
dos tecnologas, cada una tiene ventajas y desven
tajas, y su uso depende de las necesidades de cada
aplicacin. Para aclarar las ideas sobre este tema,
veamos cuales son estas diferencias:

1. La CPU del microcontrolador es ms simple


y sus instrucciones estn orientadas, princi
palmente, a la operacin de cada una de las
lneas de entrada y salida.

2. La memoria RAM (de datos), que ofrecen los


microcontroladores, es de baja capacidad. La
Figura 3 .6 Dispositivo de luz ultravioleta para e l borrado
razn es simple: las aplicaciones de control e
de microcontroladores con memoria EPROM
instrumentacin comunes no necesitan alm a
cenar grandes cantidades de informacin tem el desarrollo de prototipos; con este tipo de
poral. En cambio, los microprocesadores pue m em oria, es posible program ar y reutilizar
den acceder, a travs de los buses, a grandes el m icrocontrolador a la m anera de las m e
bancos de memoria RAM externa de acuerdo morias 2716, 2732, etc., esto es, borrando
a las necesidades del sistema. el program a m ediante un haz de luz ultra
violeta aplicado sobre una ventanita. En cam
3. En los microcontroladores, la memoria ROM bio, los circuitos integrados OTP (O ne T im e
(de program a) es lim itada. Por lo general, P rogram a ble ) o programables una sola vez,
no mayor a 4 Kilobytes. De esta memoria no perm iten que se altere o borre la infor
hay tres tipos: EPROM, O TP y EEPROM, macin escrita. Este tipo de dispositivos es
figura 3 .5 . Los microcontroladores con me ms econmico, por lo tanto es el ms u tili
m oria EPROM se utilizan bsicamente para zado para la produccin en serie de aparatos
electrnicos, cuando el prototipo ya ha sido
com pletam ente probado.

Los dispositivos EEPROM, que han hecho


su aparicin en los ltimos aos, se caracteri
zan por permitir el almacenamiento de un pro
gram a y su borrado por medios elctricos. Este
mtodo es mucho ms rpido que el borrado
con luz ultravioleta de las memorias EPROM,
adems de no necesitar dispositivos adiciona
les como el que se muestra en la figura 3.6.
U na variedad de la memoria EEPROM es la
memoria FLASH; los microcontroladores con
EEPROM EPROM este tipo de m emoria, tambin son borrables
y reprogramables elctricamente, pero pueden
soportar un nmero mucho mayor de estos
Figura 3 .5 Tipos de memoria en los microcontroladores procedimientos. En un sistema con micropro-

Curso prctico sobre Microcontroladores < M iK < iim


I - I
Las L iiL C L -acaiu ralau aiA rS

cesador, se pueden tener memorias RO M ex En resumen, algunas de las principales ven


ternas de diferentes tecnologas y capacidades, tajas cuando hacemos el diseo de un circuito
de la misma forma que las memorias RAM . utilizando un microcontrolador son:

4. C on los m icrocontroladores no es necesa El circuito impreso es ms pequeo ya que m u


rio disear com plejos circu ito s decodifica- chos de los componentes se encuentran dentro
dores porque el m apa de m em oria y de del circuito integrado.
puertos I/O estn in cluid o s in tern am en
te. Por la razn anterior, e l circu ito im p re El costo del sistema es mucho menor, al redu
so de las aplicacio nes es m uy sim p le y, en cir el nmero de componentes.
algunas ocasiones, puede ser de una sola
capa lo cual es una ven taja sobre los m i Los problemas de ruido que pueden afectar los
croprocesadores. sistemas con microprocesador se elim inan, de
bido a que todo el sistema principal se encuen
5. La m ayora de los m icrocontroladores no tra en un solo encapsulado.
tienen accesible al usuario los buses de d i
recciones, de datos y de control de la C P U . El tiempo de desarrollo de un sistema se redu
A lgunos m odelos lo hacen a travs de los ce notablemente.
puertos de entrada/salida (I/O), u tiliz a n
do seales esp eciales de sin cro n izaci n . Cuando una aplicacin o problema que se
Estos buses y seales se pueden em plear va solucionar, sobrepase las caractersticas de un
para c o n stru ir expansion es de m em oria microcontrolador como capacidad de memoria,
RAM y R O M por fuera del m icrocontro velocidad de proceso, nmero de pines o lneas
lador. C o m o ya vim o s, esta fu n c i n es de entrada y salida, etc., se debe recurrir a un
m ucho ms fcil de u tiliz ar en los m icro- sistema con microprocesador o a una microcom-
procesadores. putadora completa.

+5V
6. La velocidad de operacin de los m icrocon
troladores es ms lenta que la que se puede
lograr con los sistemas de m icroprocesado
EPROM
res. Sin embargo, actualm ente existen micro 1
C ris ta l
controladores que funcionan por encim a de CPU RAM
~ r

r
los 50 M H z lo que es suficiente para m u
chas aplicaciones. EEPROM

GND
7. De m anera sim ilar a los sistem as u tiliz a A /0

dos con los m icroprocesadores para escri 1/0

bir, ensam blar y depurar program as en len


TIM ER 1
guaje de m q u in a, se requiere un sistem a
de desarrollo para cada fam ilia de m icro
controladores. Est com puesto por un pa ^ 1/0 TIMER 2
quete de so ftw a re con editor, ensam blador
y sim u la d o r de p ro gram as y, al m ism o Tx
SERIAL >
PW M
tiem po, se necesita un h a rd w a re para que Rx
m ar o alm acenar el program a en la me
m oria del m icrocontrolador. Figura 3 .7 Mdulos especializados en los microcontroladores

Curso prctico sobre Microcontroladores


Un microcontrolador para cada gusto Para quienes requieren salidas PW M (m odula
Muchas aplicaciones requieren algo ms que las cin por ancho de pulso) para el control de m o
simples entradas y salidas de tipo digital. Pen tores C C o cargas resistivas, existen microcon
sando en ello, los fabricantes de microcontrola troladores que pueden ofrecer varias de ellas.
dores han adicionado internamente algunos cir
cuitos especiales en algunos de sus modelos. Las Cuando se requiere atender eventos en tiempo
posibilidades son amplsimas y el usuario puede real o existen procesos que no dan espera, se
escoger a la carta. A continuacin, enunciaremos debe utilizar la tcnica llam ada de interrup
algunas de las posibilidades, las cuales iremos es ciones. Cuando una seal externa activa una
tudiando progresivamente en este curso. lnea de interrupcin, el microcontrolador deja
de lado la tarea que se encuentra ejecutando
Si los fenmenos que se necesitan medir o con para atender una situacin especial y luego pue
trolar son de naturaleza anloga como tempera de regresar a continuar con la labor que estaba
tura, voltaje, etc., se debe disponer de un conver desempeando.
tidor anlogo-digital (A/D) de varios canales.
Referencia
8051 4K 128 2
Si hay que m edir perodos de tiempo o gene
8052 8K 256 3
rar, en las salidas del circuito, tiempos, tonos o
8031 Externa 128 2
frecuencias, hay que tener uno o ms contado
8032 Externa 256 3
res programables ( tim ers ).
8751 4 K (Eprom ) 128 2

Si la informacin obtenida en un proceso de Tabla 3.1 Microcontroladores de la fam ilia INTEL 8051
m edida o control, o el resultado de los clculos
del programa, se deben enviar a otro m icro En la figura 3.7 se presenta el diagrama de un
controlador, a una computadora o a una red, posible circuito con microcontrolador que incluye
es m uy til tener un circuito RS-232 para co la mayora de los elementos que se utilizan en apli
municaciones seriales. caciones de medicin, instrumentacin y control.

Interrupciones
externas

TXD RXD

Direcciones/Datos
Figura 3 .8 Ncleo del 8051

Curso prctico sobre Microcontroladores


Principales fam ilias de Los com ponentes de esta
microcontroladores fam ilia de m icrocontroladores tienen una ca
Actualm ente existen en el mercado varias mar racterstica en com n que los hace diferentes
cas reconocidas como las ms importantes dadas al com portam iento convencional de un m i
sus caractersticas, comercializacin, soporte tc croprocesador: tien en un espacio para las d i
nico, difusin, usos en la industria y en la fabri recciones de datos (lectura/escritura) y otro
cacin de productos de consumo masivo, etc. En para las direcciones de program a o de lectu ra
tre ellas estn M otorola, M icrochip, Intel, Phi solam ente.
lips, National y ATMEL.
La m emoria de programa puede ser hasta de 64
La familia Intel 8051 K bytes. En las versiones que tienen ROM y
El prim er microcontrolador de Intel fue el 8048, EPROM, los 4K, 8K o 16K inferiores de pro
en el cual la m em oria RAM estaba dentro del gram a, estn alojados en el microcontrolador.
circuito integrado, pero el programa deba alm a
cenarse externamente; posterior a l, en los aos Todos los m iem
80, naci el 8051. Esta fam ilia de microcontro bros de la fam ilia ejecutan las m ism as in stru c
ladores ha sido una de las ms difundidas en el ciones. Este conjunto de instrucciones ha sido
mundo e incluye varios miembros, cada uno de diseado pensando en op tim izar aplicaciones
ellos acondicionado para aplicaciones especficas. de control de 8 b its. O frece una variedad de
Todas las versiones existentes estn conformadas m odos de direcionam iento para accesar la m e
segn un ncleo bsico (8051 Core) cuyo diagra m oria RAM in tern a con el fin de facilitar las
ma de bloques se muestra en a figura 3.8. operaciones de 8 bits en una estructura de d a
tos pequea.
Tienen la misma CPU , memoria RAM, tem
porizado res, puertos paralelos y entradas/salidas El conjunto de instrucciones proporciona un
de tipo serial, segn la distribucin que se mues soporte m uy amplio para variables de un bit. De
tra en la tabla 3.1. esta manera, se puede lograr la m anipulacin en
los sistemas lgicos y de control, que necesitan
El 8051 tiene 4 kilobytes de memoria ROM operaciones de lgebra de Boole.
que se deben program ar durante el proceso de
fabricacin del circuito integrado. En el 8751, La inform acin sobre el ncleo del 8051
la m em oria RO M se ha reemplazado por una se hizo p b lica y en ella se han basado otros
m em oria EPRO M que el usuario puede pro fabricantes para llevar al m ercado versiones ac
gram ar con un aparato especial y borrar con luz tualizadas con mejores caractersticas en cuan
ultravioleta. to a velo cidad, consum o de corriente, fu n
ciones ad icionales, etc., com o el caso de P h i
El 8031 es un caso especial; no tiene capaci llips y ATMEL.
dad para m emoria ROM interna y, por lo tanto,
la m emoria de programa se debe colocar exter
namente. Para realizar la comunicacin con la Los m icrocontroladores M otorola se derivaron
m emoria externa, se deben emplear tres de los del m icroprocesador 6800 y han sido o p tim i
cuatro puertos paralelos de entrada/salida que tie zados para aplicaciones de control especializa
ne. Esta posibilidad de expansin de la memoria do, form ando parte de aparatos de produccin
RAM y ROM con circuitos externos, es una ca m asiva como juguetes, equipos de video, im
racterstica propia de los microcontroladores de presoras, electrodom sticos y son de am plio
esta familia. uso en la in d ustria autom otriz.

i. Curso prctico sobre Microcontroladores


MC68HC05B6 8 6K 76 - 2 (16 Bits) 32 SCI 8 canales/8 Bits 3,3 - 5,5 4.0 56 SDIP
MC68HC05B32 8 32K 528 2 (16 DltS) 32 nPI 8 canales 0,0 - 0,0 .1 56 SDIP

MC68HC705SR3 8 192 3.75K 1 (8 Bits) 32 4 canales 3,3 - 5,0 2.1 40 DIP


MC68HC705L16 8 - 512 16K 2 f i f i Bitsi i ISBtsi 19 sio p - 3,3 - 5,0 2.1 80QFP

XC68HC908GP20 8 512 20K FLASH 2 (16 Bits) 33 SCI/SPI 8 canales 3.0 - 5,0 8.0 40 DIP
MC68HC908GP32 3 512 32K FLASH (ib b its ) TI c r i/ s p i o.U - 0,U o.U 40 DIP

MC68HC908JK1 8 - 128 1.5K FLASH 2 (16 Bits) 15 10 canales 3,0 - 5,0 8.0 20 DIP
MC68HC908JK3 8 128 4K FLASH ( i b bits) 15 10 canales o,U - 0,U o.U 20DIP
MC68HC12D0 8 - 192 1 (16 Bits) 16 Exp. SCI/SPI 3,0 - 5,0 3 40 PDIP
MUDorlUol 1 8 256 2048 EEPROM 1 (16 Bits) i- i 22 cn / cp i 8 canales 5 ? 48 DIP
XC68HC812A4 16 - 1K 4K EEPROM 8 (16 Bits) + de 91 SCI/SPI 8 canales 3 ,3 -5 8/0 112LQFP

XC68HC912B32 16 1K 768 EEPROM 8 (16 Bits) + de 63 SCI/SPI 8 canales . 5 8 80QFP


32K FLASH

Tabla 3.2 Microcontroiadores Motorola

E xisten cin co fa m ilia s p rin c ip a le s: la vard. Este tipo de arquitectura fue tomada por
68H C 05, la 68H C 08 y la 6 8 H C 1 1 de 8 bits, y General Instruments para su C PU CP 1600, y
la 68H C 12 y la 68H C 16 de 16 bits-, cada una de de esta empresa surgi, alrededor de 1985, una
ellas con una C PU diferente. divisin que se ubic en Arizona y que tom el
nombre de M icrochip Technology, con el micro
Dentro de la fam ilia 68H C 05 existen ms controlador PIC como su producto principal.
de 30 microcontroiadores distintos, todos cons
truidos a partir de la misma CPU de 8 bits e Los microcontroiadores PIC se clasifican en
incluyen RAM , ROM , puertos I/O y tempori- tres grupos dependiendo de la longitud de la pa
zadores; algunos tienen adems, puertos seriales, labra de instruccin que pueden manejar (12, 14
convertidores anlogo-digitales y memorias EE- 16 bits), tom ando las referencias 12CXXX,
PRO M o EPROM como lo describe la tabla 3.2. 16XXXX, 17XXX y 18XXX.

Los microcontroiadores de la fam ilia H C08 N ota: Las X en estos nombres quieren decir que
poseen puertos seriales, conversin A/D, inter en esos espacios se ubican diversos nmeros y
faces para redes CAN, PLL, P W M , etc., depen letras, segn el tipo de integrado.
diendo de la referencia.
Sus fabricantes definen a los PIC como micro-
Microchip controladores de 8 bits tipo RISC (R educed Ins-
Las races de los microcontroiadores de esta em truction Set C om puter Computadora con un con
presa, se hallan en la Universidad de Harvard junto reducido de instrucciones) de bajo costo, bajo
cuando se desarrollaba un proyecto para el De consumo de potencia y alta velocidad de operacin.
partamento de Defensa de E.E.U.U. en el cual
se utilizaba un nuevo diseo en cuanto a la dis No estn m uy alejados de la realidad: ya es
posicin e interaccin de la C PU con la memo tn en desarrollo microcontroiadores PIC de has
ria, el cual tom el nombre de arquitectura Har- ta 40 M H z y el consumo de potencia es de 50

Curso prctico sobre Microcontroiadores m tZ B T s .


TIEMPO MEMORIA PE R IF E R IC O S FUENTES

PIC16C54 25 TMRO 2 .5-6.25 18-pin DIP, 18-pin SOIC, 20 pin SSOP

PIC16C56 25 TMRO 18-pin DIP, 18-pin SOIC, 20 pin SSOP

PIC16C61 36 TMRO 3.0-6.0 18-pin DIP, 18-pin SOIC

PIC16C71 36 TMRO 4ch 3.0-6.0 18-pin DIP, 18-pin SOIC

PIC16C74 192 TMR0.TMR1.TMR2 SPI/I2C/SCI 8 ch 3.0-6.0 40-pin DIP, 44 -pin PLCC. 44 pin OFP

PIC16C84 1K 36 64 TMRO 2 . 0 - 6.0 18-pin DIP, 18-pin SOIC

PIC17C42 232 TMRO, TMR1, TMR2, TMR3 Si 4.5-S.5 40 -pin DIP, 44 -pin PLCC, 44 pin QFP

PIC17C44 454 TMRO, TMR1, TMR2, TMR3 Si 2.5-6.0 40 -pin DIP, 44 -pin PLCC, 44 pin QFP

PIC16F873 192 TMRO, TM R1, TMR2 MSSP Usart 5 cti 28-pin DtP SOIC

369 TMRO.TMR1.TMR2 MSSP Usart 8ch 40-pin DIP SOIC

Tabla 3 .3 Algunos modelos de microcontroladores PIC

m icrowatios a 32 Khz de operacin y 6 mi- ATMEL


crowatios en modo de reposo o standby. Esta empresa m aneja tres grandes grupos de m i
crocontroladores R ISC cuyas C P U llegan has
La arquicectura de los PIC se basa en regis ta los 32 bits. El prim er grupo tiene una arqui
tros con memorias y buses separados para las ins tectura basada en el 8051 de Intel con m em o
trucciones y los datos, llam ada arquitectura Har ria de program a tipo Flash. El segundo grupo
vard. La m emoria y el bus de datos (RAM ) son son los microcontroladores A T 91, los cuales so
de 8 bits de ancho, m ientras que la memoria portan com pilador en C , em ulador, etc. El l
(EPROM) y su bus tienen 12 bits. tim o grupo lo conforman los m icrocontrola
dores AVR, de arquitectura R ISC y CPU de 8
La tecn o lo ga de los m icrocontroladores bits, y mdulos USART, SPI, A D C, etc. En la
ha perm anecido en co n stan te evolu cin en tab la 3 .4 se m uestran las caractersticas princi
cuanto a tecn olo ga de fab ricaci n y c u a lid a pales de algunos modelos de esta marca.
des ofrecidas. Los m icrocontroladores PIC de
ltim a generacin son m q uin as asom brosas;
por ejem plo se tienen proyectados PIC de tan
solo 8 pines con conversor A/D y m em oria
Flash. A lgunos llegan a poseer hasta 100 pi AT91M40800 - 8K 3 2 81 1.8-3.6 40
nes, y segn la referencia, incluyen una buena AT91F40816 - 8K 3 2 85 2 .7 -3 6 40
variedad de m dulos in ternos que cum plen AT91M40400 - 4K 3 2 32 2 1 -3 .6 33
con una gran can tid ad de funciones com o AT89C51 4K 128 22 1 32 4.0-6.0 24
puertos seriales, P W M , com paradores, etc. En AT89C1051 1K 64 1 - 15 2.7-6.0 24
la tabla 3 .3 tenemos u na lista de alguno s m o AT89C2051 2K 128 2 1 15 2.7-6.0 24
delos de estos m icrocontroladores con a lg u
nas de sus prin cip ales caractersticas. T a b l a 3 . 4 M icroco n trolad o re s ATMEL

ir ; Curso prctico sobre Microcontroladores


LOS MICROCONTROLADORES PIC
La fam ilia de m icrocontroladores PIC ha
conquistado, en los ltim os aos, un espa
cio im portante entre los diseadores de toda
clase de circuitos de instrum entacin, m e
dicin y control, as com o entre los experi
m entadores y estudiantes de esta tecnolo
ga, por lo tanto, vamos a dedicar parte de
este curso a explicarlos.

*
Curso prctico sobre Microcontroladores
Ue vufc^SSSBS^h?
El crecimiento de la participacin de estos mi 1. Generacin de cdigo
crocontroladores en el mercado mundial ha sido po 2. Depuracin de los programas
sible debido a la capacidad de estos dispositivos de 3. Dispositivos programadores
satisfacer las necesidades, cada vez ms exigentes, de 4. Tarjetas de evaluacin de los productos
los ingenieros y tcnicos de todo el mundo. Este cre
cimiento tambin se aliment por la variedad ofreci Todas las herramientas de desarrollo de M i
da en sus presentaciones y tipos de memoria. Algu crochip operan bajo el entorno del program a
nas de las razones que justificaron esta acogida son: MPLAB. Las herramientas de generacin de cdi
Sencillez de manejo por su juego reducido de go son MPASM, MPLAB-C y MP-DriveWay .
instrucciones Las herramientas para depuracin del cdigo son:
Buena informacin: notas tcnicas, proyectos PICMASTER em ulador In-Circuit, ICEPICt
en internet, etc. Emulador In-Circuit y el MPLAB-SIM o simula
Precio y disponibilidad en el mercado dor de programas. Despus de generado el cdigo
Herramientas de desarrollo fciles y baratas de la aplicacin, el dispositivo debe ser programa
do. Microchip ofrece dos niveles de programado-
La empresa Microchip fabrica, entre otros mu res: el PICSTART Plus y el PROMATE II.
chos productos, microcontroladores de 8 bits de pro
psito general de arquitectura RISC (conjunto re Las tarjetas de demostracin perm iten al
ducido de instrucciones), bajo consumo de potencia usuario evaluar la capacidad y disponibilidad del
y una distribucin interna en donde la memoria de dispositivo para una aplicacin determinada. Ellas
programa (ROM) y la memoria de datos (RAM) se son: PICD EM -1, PICD E M -2, PICD EM -3 y
encuentran en bloques separados, cada una con su PICDEM -14A.
propio bus de acceso (estructura Harvard).
Arquitectura de los PIC
Ellos se clasifican dependiendo de la longitud Podemos estudiar cada m icrocontrolador PIC
de la palabra de sus instrucciones. Actualmente teniendo en cuenta tres aspectos fundamentales:
las tres familias de microcontroladores P1C son: 1. El ncleo
1. Lnea Base o bsica: palabras de 12 bits de longitud 2. Los perifricos
2. Rango Medio: palabras de 14 bits de longitud 3. Las caractersticas especiales
3. Rango Alto: palabras de 16 bits de longitud
El ncleo
Los dispositivos de la lnea bsica tienen las refe Se refiere a las caractersticas fundamentales que
rencias 12CXXX, los de rango medio 16CXXX y se requieren para realizar su operacin bsica. En
los ms avanzados se nombran como 17CXXX y tre ellas estn:
18CXXX; figura4 .1. Cuando desarrollamos un pro
yecto con microcontroladores PIC, debemos elegir Es un circuito que se u tili
el microcontrolador ms adecuado dependiendo de za para generar la seal de reloj del dispositivo.
sus caractersticas. Estas se relacionan directamente Esta seal es necesaria para que el microcontro
con las funciones que se puedan ejecutar con cada lador ejecute las instrucciones y para que funcio
microcontrolador y su tecnologa de fabricacin. nen los perifricos. Entre los circuitos de oscila
cin ms comunes estn los basados en cristal,
Herramientas de desarrollo en red RC y los de resonador.
Microchip y otras empresas, ofrecen un amplio
rango de herramientas de desarrollo que permiten Se usa para lle
agilizar la elaboracin y depuracin de los progra var al microcontrolador a un estado conocido. En
mas. Estas pueden dividirse en cuatro categoras: este estado se establecen por lo general las condi

MT,1 Curso prctico sobre Microcontroladores


ciones de inicio con que siempre empieza el siste Los perifricos
ma y con las que un producto electrnico garanti Los perifricos son los elementos que en realidad
za un buen funcionamiento de todas sus tareas. diferencian a los microcontroladores PIC de un
microprocesador. Ellos hacen posible la com u
Es la res nicacin con el mundo exterior (puertos I/O, ma-
ponsable de tomar la informacin de la memoria nejadores LCD, entradas A/D, P W M , etc.) y la
de programa (instrucciones) para controlar la ope realizacin de diversas tareas tales como tener d i
racin de todo el sistema. ferentes bases de tiempo. Los principales perif
ricos de un microcontrolador PIC son:
En un siste
m a con microcontrolador muchas de las instruc
ciones operan sobre la m em oria de datos. Para Permiten que el PIC reciba y en
operar en esta m emoria, se requiere de la ALU, ve seales desde y hacia el mundo exterior. Ade
la cual permite el desarrollo de las operaciones ms, se utilizan para vigilar y controlar otros dis
artim ticas y lgicas sobre ella. positivos. Para darle ms flexibilidad al dispositi
vo, algunos pines se multiplexan con funciones
Organizacin del mapa de memoria del dis- alternas. Esto quiere decir que en unos casos las
Existen dos bloques de memoria que se mismas lneas pueden ser pines de entrada/salida
tratan en este punto: la memoria de programa, la o en otros casos, realizar otra funcin.
cual se divide en bancos seleccionables por pro
grama, y la memoria de datos; cada bloque cuenta Se utilizan para establecer
con su propio bus. La secuencia de las instruccio bases de tiempo confiables, m edir el tiempo en
nes est controlada por el contador de programa tre eventos, contar eventos externos, etc. En los
(PC ), el cual se incrementa en cada paso, para eje microcontroladores PIC pueden existir diferen
cutar las instrucciones grabadas en la ROM. tes tipos de temporizadores como:
TimerO. Temporizador de 8 bits.
Operacin de las interrupciones. Los m icro T im erl. Temporizador de 16 bits.
controladores PIC tienen varias fuentes de in Tim er2. Temporizador de 8 bits.
terrupcin. Estas fuentes incluyen a los m du
los perifricos. Los mdulos de captura, comparacin y PW M
Cada m dulo C C P contiene un registro
C ada instruccin de 16 bits que opera como registro de captura,
se divide en un cdigo de operacin (O PC O - como un registro de comparacin o como un re
D E), que especifica el tipo de in struccin, y gistro de PW M de 10 bits. Estos mdulos son
uno o ms operandos que especifican la ope m uy tiles en distintas aplicaciones tales como el
racin de la instruccin. En el siguiente ejem control de motores o cargas resistivas, compara
plo observamos el cdigo de operacin de la cin de seales y otras.
instruccin M O V LW 06H :
Este mdulo es una
interfaz serial para la com unicacin con otros
13 ... 8 7 ... 0 {b its ) microcontroladores u otros perifricos tales como
memorias seriales, registros de desplazamiento,
OPCODE k (literal) conversores A/D, etc.

M O VLW 06H instruccin rial sncrono bsio Es unain-


30 06 cdigo operativo

Curso prctico sobre Microcontroladores


La2 Lll rocontroladores PIC

tivos. Puede operar en dos modos distintos: cacin. Cuando el circuito se alim enta, el estado
SPI I 2 C . de estos bits determinan su modo de trabajo.

Puerto serial sncrono maestro (M SSP). Este es Cuando se alim enta el


otro mdulo para comunicacin serial tipo SSP. sistema, se puede generar un estado de reset que
lo obliga a llevar el contador de programa a la
USAR! SC Se denomina mdulo universal re posicin inicial.
ceptor transmisor asincrono. Es uno de los dos tipos
de puertos seriales (el otro es el SSP). Puede configu O rigina un estado de
rarse en modo f u l l dplex o como h a lf dplex. reset en el momento en que se detecta una falla
en el voltaje de alimentacin.
Este mdulo se usa nor
m alm ente en conjunto con el mdulo compara Tempo rizado r Watt h d og. Es un oscilador tipo
dor. Se puede entender como una red de resis RC ubicado en el interior del circuito in tegra
tencias que proporciona un voltaje de referencia do que no requiere com ponentes externos. Se
seleccionable. u tiliza para prevenir fallas catastrficas en la
operacin de un sistem a, cuando el PIC se blo
Algunos PIC contienen dos com quea por alguna razn. T am bin se puede u ti
paradores anlogos de seales. Las entradas a los lizar para tem porizar o como detector de p u l
comparadores se multiplexan con pines I/O. sos perdidos.

Con A JD de 8 bits. Convierten una se M odo de bajo consum o de potencia {Sleep).


al anloga en un dato digital de 8 bits. En este modo de trabajo el oscilador del PIC
es desactivado y se presenta un consum o m
Conversores A/D de 1 0 bits. Convierten una se nim o de potencia. Cuando el sistem a lo requie
al anloga a un dato digital de 10 bits. re, el m icrocontrolador vuelve a su estado de
consum o norm al.
Manejadores de disp/ays o pantallas de cristal
Este m dulo genera el control iiador interno R< Cuando no se tienen re
de tiempos para manejar un panel LCD. Tam querimientos exigentes de manejo en la preci
bin proporciona el control para los pixeles de sin del tiempo, se puede utilizar una red RC
datos del LCD. como oscilador externo lo que perm ite un dise
o m uy econmico.
Puerto paralelo esclavo IPSP). Algunos PIC po
seen un puerto paralelo de 8 bits. Program acin serial dentro del circuito ( ! n -
Es la p o sib ilid ad de program ar los
Caractersticas especiales m icrocontroladores dentro de la ap licaci n o
Las caractersticas especiales ayudan a dism inuir c ircu ito final. Esto se hace m ed iante cinco l
el costo del sistema y a increm entar su funciona neas: una para el relo j, otra para los datos y
lidad y su flexibilidad. Los microcontroladores otras tres lneas para la alim en taci n y el vol
PIC de rango medio ofrecen algunas caracters taje de program acin.
ticas que cum plen con esos objetivos:
C on todos estos factores, podemos estable
B its de configuracin del dispositivo. Permiten cer un diagram a de bloques genrico de un m i
que cada usuario personalice ciertos aspectos del crocontrolador PIC, como el que se muestra
microcontrolador que va a utilizar para su apli en la figu ra 4.1.

Curso prctico sobre Microcontroladores


Teora

B us de d a tos 8

PUERTO A

PUERTO n

Power on RnO
reset R nl
Temporizador Rn2
Watchdog Rn3
Brown out Rn4
reset Rn5
Rn6
0SC1/CLKIN
Rn7
0SC2/CLK0UT

MCLR Vd d .V ss

Figura 4.1 Diagrama de bloques general


Mdulos perifricos
de un microcontrolador PIC de rango medio

Variedad de ios dispositivos posee una buena cantidad de opciones entre las
Una vez se han analizado los requerimientos fun- cuales podemos escoger la ms indicada,
dnales del dispositivo, se deben estudiar otros
aspectos como: tecnologa de la memoria, voltaje
de operacin, rango de temperatura de operacin, Dependiendo de la aplicacin y el modo de pro
frecuencia de operacin y encapsulado. Microchip gram acin, hay varias tecnologas para la memo-

Curso p r c tic o sobre M ic ro co n trola do re s . < 47


ria en los microcontroladores PIC. Esta tecnolo R ango de voltaje FLASH [
EPROM ROM
ga de la memoria no afecta la operacin lgica Estndar
del dispositivo. Debido a los diferentes procesos

O
Extendido 2.5 - 6.0
de fabricacin y las distintas tecnologas, algunas
caractersticas elctricas pueden variar entre dis Tabla 4 .2 Rangos de voltaje tpicos para cada tipo de dispositivo
positivos, a pesar de que tengan las mismas fun
ciones y pines. Mem oria Flash
Estos dispositivos son borrables elctricam ente y
Cada uno de los tipos de memoria que estn se ofrecen en un encapsulado plstico de bajo
en los dispositivos, hace que cada uno de ellos costo; pueden borrarse y reprogramarse.
presente una variedad en la respuesta de frecuen
cia y en las opciones de encapsulado. Dependien Opciones de rango de voltaje de
do de los requerimientos de la aplicacin y de la operacin
produccin, las opciones propias del dispositivo Todos los microcontroladores PIC de rango m e
pueden identificarse usando las hojas de datos dio operan sobre un rango estndar de voltaje.
sum inistradas por los fabricantes. A lgunos modelos pueden trabajar sobre unos
rangos extendidos de voltaje (y rango reducido
El tipo de memoria utilizado en cada dispo de frecuencia).
sitivo se puede identificar en su nmero de parte
por la primera(s) letra(s) as: La tabla 4 .1 muestra la designacin para los ti
pos de m emoria y rangos de voltaje en los micro
1. C , como en PIC 16C X X X . Estos dispositivos controladores PIC 16CXXX. Los designadores
tienen memoria EPROM estn en negrilla.
2. CR, como en PIC 16C R X X X . Dispositivos
con memoria ROM En la tabla 4 .2 podemos apreciar las especi
3. F, como en PIC16FXXX. Dispositivos con me ficaciones dadas por M icrochip para los voltajes
m oria Flash de los distintos microcontroladores. Estos valo
res estn comprobados.
EPROM
Es la m emoria borrable (EPROM: Erasable Pro- Variedades de encapsulado
gra m m a b le R ead O nly M em ory) para que los d i D ependiendo de la fase de desarrollo de un
seadores tengan flexibilidad en el desarrollo de proyecto, se debe usar uno de los tres tipos
los prototipos. de encapsulado. El prim ero es un dispositivo
con una ventana de borrado. N orm alm ente
ROM poseen un encapsulado cerm ico y se usan en
M icrochip ofrece dispositivos en versin ROM la fase de d esarrollo, debido a que perm iten
(R ead O nly M em ory) la cual es la apropiada para b o rrar y reprogram ar la m em oria de progra
utilizarse en casos de produccin en serie, ya que m a m uchas veces.
es la ms econmica del mercado.
El segundo tipo de encapsulado es el plstico
R ango dle vo lta je de bajo costo. Por ltim o estn los dispositi
Tipo de m em oria
Estndar Extendido
vos DIE (dado) los cuales se caracterizan por
EPROM PIC16CXXX PIC16LCXXX
no tener encapsulado. Se utilizan en ap licacio
ROM PIC16CRXXX PIC16LCRXXX
nes de m uy bajo costo donde el espacio de las
FLASH PIC16FXXX PIC16LFXXX
tarjetas deba ser m nim o. En la figura 4 .2 se
Tabla 4.1 Tipos de memorias y rangos de voltaje m uestran los tres tipos de encapsulados.

IT 1 Curso prctico sobre Microcontroladores


Teora

vez. Si el program a se daa o se tiene que cam


biar, hay que programar e instalar en el circuito
un nuevo dispositivo.

Dispositivos FLASH
Un microcontrolador tipo FLASH permite m o
dificar el contenido de su m emoria mediante una
carga elctrica. Esto significa que el sistema pue
de ser diseado para programacin dentro del
circuito. Como no requieren de una ventana de
borrado, estos dispositivos tienen encapsulado
plstico, lo que los hace m uy econmicos.

Dispositivos EEPROM
Figura 4.3 Principales encapsulados de los microcontroladores PIC Un dispositivo EEPROM permite que su m e
moria sea borrada m ediante una carga elctrica.
Dispositivos borrabies con luz Esto significa que el sistema puede disearse para
ultravioleta que el borrado y el reprogramado puedan hacer
La versin borrable UV de dispositivos de me se dentro del circuito. Tampoco requieren venta
m oria de programa EPROM es ptim a para el na de borrado y se encapsulan en plstico.
desarrollo de prototipos y programas piloto. Es
tos dispositivos pueden programarse una y otra Dispositivos ROM
vez. La cantidad de tiempo requerida para bo Los dispositivos ROM tienen su memoria de
rrar completamente un dispositivo UV depende programa establecida desde el momento de su
de la longitud de onda del haz, su intensidad, fabricacin. Com o ella no puede cambiarse, es
distancia entre la fuente y el microcontrolador, y tos dispositivos tienen la presentacin en plsti
de la tecnologa del dispositivo (qu tan peque co ms econmica del mercado.
as son las celdas de memoria).
DIE
N ota: las bombillas fluorescentes y la luz del Esta opcin perm ite el desarrollo de tarjetas m uy
sol, emiten luz ultravioleta con una longitud pequeas. La fabricacin con DIE requiere equi
de onda que perm ite el borrado. Si en un dis pos y conocimientos especiales, lo que im plica
positivo de este tipo no se protege la ventana, que el nmero de casas fabricantes que soportan
puede ocurrir, con el tiempo, que las celdas de esta tecnologa sea limitado.
la memoria se borren. El tiempo de borrado
con una luz fluorescente es aproximadamente Servicios especiales
de tres aos, m ientras que con la luz del sol se Para algunos usuarios que incorporen la tecnolo
requiere de aproxim adam ente una semana. ga OTP, debido a un cdigo fijo para sus produc
Para prevenir la prdida de los datos, se debe tos, Microchip ofrece dos encapsulados especia
colocar una superficie opaca (p. ej. cinta ais les: la programacin rpida para produccin y la
lante) sobre la ventana de borrado. programacin serial rpida para produccin. Ellas
les permiten a estos usuarios ahorrar mucho tiem
Dispositivos program abtes una vez po en el proceso de fabricacin de sus productos.
(One-Tim e-Program mable: OTP)
Los dispositivos OTP, se encapsulan en plstico a. Programacin rpida para produccin (QTP:
y permiten que el usuario los programe una sola Q uick Turn P ro d u ctio n )

Curso prctico sobre Microcontroladores ( m k t :


M icrochip ofrece este servicio de programa
cin para ordenes grandes de produccin de
empresas o usuarios, que no posean un me
dio masivo de programacin de M C U . Estos
dispositivos son idnticos a los OTP pero con
todas las posiciones de la EPROM, y las op
ciones de configuracin ya programadas.

b. Programacin serial rpida para produccin


(SQTP: S erialized Quick Turn P roduction )
Microchip ofrece este servicio de programa
cin en el cual a cada dispositivo se le progra
ma un nmero serial nico. Estos nmeros se
riales pueden ser aleatorios, pseudoaleatorios o
secuenciales. Este tipo de programacin se hace
para que cada dispositivo tenga un nmero
nico que pueda utilizarse como cdigo de
entrada, p a ssw o rd o nmero de identificacin.

PROGRAMADORES Y ENTRENADORES
( Trainers)
Los programadores son dispositivos que permiten
grabar en la memoria del microcontrolador el pro
gram a escrito y ensamblado en la computadora.
Algunos programadores trabajan conectndose al Figura 4.5 Programadores p o r el puerto serial
puerto paralelo como el K-220 de CEKIT, figura a) Programador K-224 de CEKIT
4.4 ; y otros, conectndose al puerto serial como b) PICSTART Plus de Microchip
los que se muestran en la figura 4.5. c) Programador Clear View Mathias

Un entrenador es un dispositivo que permite comunes y fundamentales que se deben asimilar


realizar una serie de prcticas con microcontrolado en esta tecnologa. El K-148 de CEKIT, figura
res. Se compone de una serie de mdulos indepen 4.7 , es un entrenador que tiene mdulos como el
dientes que se pueden interconectar entre s y con los de manejo de displays de siete segmentos, la ad
cuales se facilita el aprendizaje de las prcticas ms quisicin de variables anlogas y comunicaciones
seriales, entre otros.

Figura 4.6 Entrenador para microcontroladores PIC, referencia


Figura 4.4 Programador p o r puerto paralelo, K-220 de CEKIT 14g ^ q e k u

50 ff TP. Curso prctico sobre Microcontroladores


0 El 0

00 0 0
q
0
B
0
B g
B a |
a
LOS MICROCONTROLADORES
________ MOTOROLA ______
Esta fam ilia de m icrocontroiadores es una
de las ms difundidas y utilizadas en todo el
m undo. Sus aplicaciones incluyen las com u
nicaciones, el control, la electrnica autom o
triz, etc. En esta leccin harem os un a intro
d u cci n a sus aspectos m s im p o rtan tes
como las fam ilias en que estn divididos, sus
caractersticas, sus ventajas y en general, da
remos un rpido vistazo a esta tecnologa.
Les iiu c t a i ntroiadores M otorola

Los microcontroladores Motorola tienen la an as corresponder a un dispositivo 100%


reputacin de ser m uy confiables, fciles de pro com patible. Por ejem plo, hay un m icrocontro
gram ar y, ante todo, ser unos de los ms utiliza lador 68H C 705K J1, otro 68H C 805K J1 y otro
dos en todo el mundo. Y no es de extraar ya 68H C 905K J1. La diferencia radica en que el
que esta firma es lder en la fabricacin de semi prim ero (705) tiene m em oria de program a tipo
conductores, especialmente microprocesadores, EPRO M , el segundo (805) m em oria de progra
microcontroladores y productos de alta tecnolo ma tipo EEPROM y el tercero (905) memoria
ga. La cantidad de fam ilias y referencias que FLASH. Lo que s queda claro es que existe una
poseen estos dispositivos permiten que los dise gran variedad de referencias para escoger: esto
adores puedan escoger el ms apropiado para im plica que el diseador debe estudiar a fondo
cada tarea especfica que se deba realizar. Como para decidirse por la ms adecuada. En la figu
dato curioso, pero que a la vez confirma la cali ra 5.1 se m uestra el diagram a de pines de uno
dad y versatilidad de estos microcontroladores, de estos microcontroladores.
es que en un automvil moderno se encuentran
hasta 50 de ellos, realizando diferentes funciones
como el control de frenos (ABS), en el sistema
de seguridad, en las computadoras de viaje (GPS),
en el control del aire acondicionado, etc.

Las familias de microcontroladores Motorola


ms conocidas son: 6 8 H C 0 5 ,6 8 H C 0 8 ,6 8 H C 1 1,
68H C 12, 68H C 16, 683XX, MPC5XX y la fa
m ilia de ncleo M (Core M ). Cada una de ellas
Figura 5.1 Diagrama de pines del 68HC705KJ1
tiene muchas referencias distintas, las cuales pue
den variar por el tamao de la memoria que po Los aparatos en que se pueden encontrar
seen, el nmero de pines, caractersticas especiales estos microcontroladores son m uy variados y en
como convertidores A/D, temporizadores, inte ramas bien diferentes. Estas categoras incluyen
rrupciones, etc. Como un ejemplo de esta gran dispositivos para aplicaciones automotrices, pro
v aried ad , la fa m ilia de m icro co n tro lad o res ductos de consum o, com unicaciones, com pu
68H C 05 posee ms de 100 miembros. Como el tadoras y aplicaciones industriales, entre otras.
tem a es tan amplio, en lecciones posteriores trata A continuacin haremos una breve descripcin
remos principalmente la familia 68H C 08, que es de algunas subfam ilias o divisiones que tiene la
la ms indicada para iniciarnos en esta tecnologa fam ilia H C 05.
y haremos una breve descripcin de las familias
68H C11 y 68H C 12. Es un dispositivo de propsito
general cuyas principales ventajas son un po
La familia HC05 deroso tem porizador y una m em oria para d a
Esta es una de las familias de m icrocontrolado tos tipo EEPROM de 256 posiciones. Otras
res ms populares en el m undo, con ms de 2 caractersticas incluyen m em oria de programa
billones de unidades vendidas. Posee una ven desde 4K hasta 32K, m em oria RAM desde 176
taja adicional y es la com patibilidad de sus pro hasta 528 bytes, 8 canales A/D, com unicacin
gram as con la fam ilia H C 08, lo que perm ite serial no sincrnica, etc.
hacer m igracin de diseos hacia dispositivos Son elementos de
de ms alto rendim iento de una manera fcil y propsito general cuya principal ventaja es su
rpida. C uando se especifica una referencia en temporizador de 16 bits , el cual est acom paa
particular, sta puede sufrir algunas variantes y do por un m dulo de captura y un mdulo de

s .a . Curso prctico sobre Microcontroladores


Teora

comparacin. Adems, ofrece tamaos de me


m oria de programa desde 4K hasta 16K, que lo
capacitan para realizar tareas bastante complejas.
Posee interfaz de comunicacin no sincrnica SCI
(S erial C om m unications In ter fa ce ), con velocidad
ajustable por programa desde 75 Hz hasta 131
KHz; tambin incluye una interfaz SPI (S erial
P eriferica l Interface) de 4 hilos y alta velocidad.
El w a tch d og tim er o circuito de vigilancia tam
bin es una de sus caractersticas importantes.
Estas son las fam i Figura 5 .2 Diagrama de pines del 68HC908JK3
lias de ms bajo costo y vienen en encapsula-
dos de 20 y 16 pines. El tam ao de su m em o Las principales subfamilias de la H C08 son:
ria de program a va desde 0,5K hasta 2K, con
m em oria RAM de 32 hasta 128 bytes. El m i La principal caracterstica de esta
crocontrolador 68H C 705K J1 es el ms eco subfamilia es que incorpora un controlador de bus
nm ico de todos. multiplexado que permite una avanzada com uni
Es una fam ilia de microcontrolado cacin serial. Una aplicacin tpica de este siste
res de propsito general de 28 pines, poseen me ma est en los automviles, donde muchos m i
moria de programa desde 2K hasta 8K con me crocontroladores se pueden comunicar sobre un
moria RAM desde 96 hasta 192 bytes. Tienen co bus de uno o dos hilos para el diagnstico de cada
municacin serial no sincrnica, temporizador una de las operaciones del vehculo con un riesgo
de 16 bits con mdulo de captura y de compara m nim o de interferencia o ruido en los datos.
cin, convertidor A/D de 8 bits con 4 canales de Esta subfam ilia contiene una in
entrada y capacidad de m anejar alta corriente en terfaz CA N . Esta es un protocolo m uy popu
algunos pines. lar en redes de autom atizacin in dustrial y re
Su principal caracterstica es que des autom otrices.
posee un controlador para m anejar una pantalla Esta fam ilia es m uy recomendada
de cristal lquido o LCD, con un tamao que va para aplicaciones de propsito general, cuenta
desde 8 caracteres por 4 filas hasta 16 caracteres con memoria FLASH, convertidores A/D, puer
por 60 filas. La memoria de programa va desde tos seriales sincrnicos y no sincrnicos, PLL,
0,6K hasta 24K con memoria RAM de 32 hasta temporizadores y PW M .
768 bytes. Incluye temporizador de 16 bits con Esta subfamilia brinda unas poderosas
mdulos de captura y comparacin, com unica caractersticas y es especial para aplicaciones de pro
cin serial sincrnica y no sincrnica. psito general donde se requieran diseos de bajo
costo. Se encuentran disponibles en encapsulados de
La familia HC08 20 y 28 pines, memoria FLASH o ROM, conver-
Estos microcontroladores permiten una fcil mi sores A/D, entre otros. Las versiones JK, por ejem
gracin del cdigo desde el H C 05, poseen una plo el 68HC908JK3, son parte de ella
velocidad interna hasta de 8 M H z, una pila de Estas subfamilias incorporan
16 bits , instrucciones de m ultiplicacin y una un sistema avanzado de PW M de 6 canales y 12
memoria de 64K para programa y datos; su dise bits, convertidores A/D y puertos seriales, que las
o m inim iza el consumo de potencia. H ay ver hace ideales para el control de motores trifsicos.
siones con memoria FLASH y EPROM. En la Esta subfamilia posee integra
figura 5.2 se muestra el diagram a de pines de dos con memoria FLASH de 2 hasta 8Kbytes, 196
uno de estos microcontroladores. bytes de memoria RAM, un temporizador de 2

Curso prctico sobre Microcontroladores


Les LiucLuca ntrolado res M otorola A

canales y 16 bits, cuatro canales de conversin VDD


A/D, interfaz de comunicacin serial no sincr P05/SS

nica y ms de 13 pines I/O. PD4/SCK


PD3/M0SI
Esta subfamilia cuenta con 2K de
PD2IMIS0
memoria FLASH programable dentro del sistema, 128 PDI/TxD
byrtes de memoria RAM, un temporizador de dos ca POO/RxD
nales y 16 bits, y un voltaje de operacin de 1.8 V. IRQ
XIRQ

La familia HC11 RESET


PC7/A7/D7
Esta es una familia de microcontroladores de 8 bits PC6/A6/D6
de muy alto rendimiento, su arquitectura es compa PCS/A5/D5

tible con la HC05 y su programacin es compatible PC4/A4/D4


PC3/A3/D3
con la familia de microcontroladores de 16 bits
PC2/A2/D2
68H C12; esto hace que la migracin de diseos de
PC1/A1/D1
una familia a otra sea bastante rpida. Dentro de sus PC0/A0/D0
caractersticas ms sobresalientes se encuentran: XTAL
EXTAL
STRB/RW
H a sido optim izada para un bajo consumo de
E
potencia STRA/AS
Posee un sistema de interrupciones muy avanzado mooba/stby MODA/UR
M uchos de sus m iem bros poseen m em oria
Figura 5.3 Diagrama de pines del 68HC11
EEPROM
Los ltimos miembros de esta familia incluyen un Fue la primera en combinar EEPROM
coprocesador matemtico con Unidad Aritmtica y EPROM en un solo circuito integrado.
Lgica (ALU) de 16 bits para rpidas operacio Tienen buena capacidad de pines 1/
nes de m ultiplicacin y divisin O, m emoria RAM de 1K y un bus de 5MHz.
Un registro acumulador de 16 bits, o dos de 8 bits |'SU< : K Son dispositivos m uy pode
Seis modos de direccionamiento rosos; el 68H C 11K 4 y el 68H C11K W 1 ofre
cen alta velocidad, M M U (unidad para el m a
La familia 6 8 H C 1 1 posee un miembro llama nejo de m emoria) y PW M .
do 68HC11E9, el cual fue el primer microcontro Esta serie ofrece PLL, buena me
lador en incorporar memorias EPROM y EE moria y tres puertos seriales. En la figura 5.3 se
PROM en el mismo circuito integrado; adems, muestra el diagram a de pines de el microcontro
incluye otras caractersticas como son 12K de me lador M C 68H C 11A 8.
moria EPROM, 512 bytes e EEPROM, 512 bytes
de RAM, interfaz SCI, convertidor A/D de 8 cana- La fam ilia HC12
les/8 bits y 38 pines de entrada/salida. Este micro Este es un poderoso m icrocontrolador de 16
controlador es m uy utilizado por los experimenta b its y segn M o to ro la re n e lo m ejor del
dores en robtica. Dentro de los 68HC11 se tie 68H C .11 y mucho ms. Entre sus principales
nen seis principales series de microcontroladores; caractersticas se encuentran:
todas cuentan con puertos seriales SCI y SPI, me
moria EEPROM y ADC; ellas son: Bajo consumo de potencia y operacin a bajo
voltaje
Esta serie ofrece una alternativa econ M em orias Flash y EEPROM en un solo cir
mica para aplicaciones donde no se requieran fun cuito integrado
ciones avanzadas, ni mucha cantidad de memoria. Instrucciones de lgica difusa (Fuzzy Logic)

Curso prctico sobre Microcontroladores


Teora

Bus de datos de 8 16 bits 128K de flash EEPRO M , 2K de EEPROM,


64 nuevas instrucciones adicionales a las ya 8K de RAM , dos conversores A/D, dos tem -
conocidas del 6 8 H C 1 1 porizadores de 8 canales y 10 bits de resolu
U nidad A ritm tica Lgica (ALU) de 20 bits cin, filtro pasabajo, mdulos C A N , cuatro ca
Convertidor A/D de 8 canales/8 bits nales P W M , m dulo contador de 16 bits, in
PW M terfaces seriales S C I, SPI, I2C , etc.

Dos de los principales miembros de la fami La fam ilia HC16


lia 6 8 H C 1 2 son el 6 8 H C 8 1 2 A 4 (A4) y el Tambin se basa en una CPU de 16 bits. Su con
68H C 912B 32 (B32). Ambos se basan en una junto de instrucciones soporta lenguajes de alto
CPU 12, ms una serie de mdulos perifricos adi nivel. La CPU de 16 bits es compatible con los
cionales. El B32 fue el primer microcontrolador de microcontroladores H C l 1, algunas de sus prin
16 bits con memoria FLASH EEPROM en su in cipales caractersticas son:
terior. En la figura 5.4 se muestra el diagrama de
pines de uno de estos microcontroladores. Funciones de procesam iento d igital de
seales (DSP)
Sus principales caractersticas son 1 Mbyte de espacio para memoria de programa
una CPU de 16 bits, 1 K de RAM , 4 K de EE 1 M byte de espacio para memoria de datos
PRO M , dos interfaces seriales (SCI) y una inter 2 acumuladores de propsito general de 16 bits
faz serial perifrica (SPI), un temporizador y con- 3 registros ndice de 16 bits
versores A/D. Rpida respuesta ante interrupciones
Hi U :. Tambin posee una CPU d e l6 M dulo CAN
bits , 32 K de flash EEPROM, 1K de RAM , 768 Versiones de 16, 20 y 25 M H z
bytes de EEPROM, interfaces SCI y SPI, un tem Convertidor A/D
porizador de 8 canales, conversores A/D, y PW M
de cuatro canales.
Las principales variaciones de la familia H C l6 son:
C PU de 16 bits, altam ente
co m p atib le con el H C l l , ALU de 20 bits,
Es la ms adecuada para aplica
ciones con m ucha memoria y que utilicen co
municaciones seriales y funciones anlogas.
Esta fam ilia integra en los circui
tos memoria FLASH o RO M , unidad de pro
cesamiento de tiempo, tres interfaces seriales
g (dos SCI y un SPI) y convertidores A/D.
Son de bajo costo, memoria
FLASH, mdulos seriales y funciones anlogas.

La familia NCLEO M (M CORE)


Estos poseen una arquitectura RISC de 32 bits,
instrucciones de 16 bits, permiten la em ula
cin gracias a su arquitectura interna y poseen
un diseo para bajo consumo de potencia.

La fam ilia MPC5XX


Figura 5.4 Diagrama de pines del 68HC912B32 Tienen arquitectura de 32 bits, reloj a 40 MHz,

Curso prctico sobre Microcontroladores


Les LULdLTCd ntrolado res M otorola

unidad para el trabajo de operaciones de punto bladores y depuradores. Todos estos elementos
flotante, interfaz para la em ulacin, etc. permiten desarrollar, monitorear, probar y depu
rar su cdigo, para que las aplicaciones funcio
La familia 683XX nen bien y rpido. Existe una gran cantidad de
Estos microcontroiadores estn diseados para modelos, los cuales se ajustan a las necesidades y
soportar lenguajes de alto nivel, cuentan con 16 presupuestos disponibles, figura 5.5.
M bytes de m emoria de programa, poseen un bus
dinm ico de 8 16 bits, y vienen en versiones de Algunos de estos dispositivos son de bajo
16M H z, 20M H Z 25 M H z. Las principales costo, pero a pesar de ello ofrecen muchas ven
subfamilias de esta categora son: tajas, como por ejem plo, capacidad de em ula
cin en el circuito de la aplicacin y, aunque
Son subfamilias especiales para apli esta tarea no se ejecute en tiem po real, es de
caciones donde se requiere m ucha m em oria, gran ayuda para agilizar el trabajo y dism inuir
cuentan con puertos seriales y mdulos avanza el tiempo de desarrollo de los programas. Otras
dos de temporizacin; la 68C K 338 cuenta ade caractersticas son:
ms con un reloj en tiempo real y un mdulo
temporizador de 20 canales. Las Ambiente de desarrollo totalmente integrado
se componen de dispositivos d i bajo Windows
seados para trabajar bajo condiciones atmosf Se puede examinar y m odificar la memoria, los
ricas complicadas, al igual que donde se requie registros y los pines de entrada/salida
ran altas velocidades, comunicaciones seriales, Acepta hasta 64 breakpoints (puntos de parada)
redes CAN y sistemas sofisticados de adquisicin Diferentes modos de ejecucin en pasos o de corrido
desde m ltiples fuentes. Programa microcontroiadores OTP y EPROM
Conexin serial a la computadora
Sistemas de desarrollo
M otorola y muchas empresas independientes de CEKIT S.A., como empresa lder en el dise
desarrollo electrnico, tienen disponible una gran o y fabricacin de m aterial didctico, tiene dis
variedad de herramientas para trabajar con estos ponible un sistema de desarrollo m uy econmi
dispositivos. Entre ellas se cuentan, emuladores, co y fcil de utilizar para la fam ilia 68H C908JK 3,
analizadores lgicos, programadores, tarjetas de figura 5.6, cuya construccin, ensamblaje y u ti
evaluacin, simuladores, compiladores en lengua lizacin sern explicados en detalle en uno de los
je C , sistemas operativos en tiempo real, ensam proyectos que forman parte de este curso.

M 6 8 H C 7 0 5 J IC S

, Figura 5.6 Sistema de desarrollo CEKIT para e l microcontrolador


Figura 5 .5 Sistema de desarrollo de Motorola para e l 68HC05 68HC908JK3

*
1 Curso prctico sobre Microcontroiadores
LOS MICROCONTROLADORES
INTEL, ATMEL y BASIC Stamp
Daremos un vistazo rpido a estas tres marcas
que tam bin son am pliam ente utilizadas, algu
nas por su potencia, otras por su facilidad de
manejo. De cualquier m anera, se constituyen en
excelentes opciones para el desarrollo de pro
ductos electrnicos. El m icrocontrolador 8051
de IN TEL y las versiones que de l se derivan,
han obtenido en el medio industrial un xito
indiscutible, los A TM E L son m uy utilizados en
aplicaciones mdicas y en redes de autom atiza
cin, y los BA SIC Stam p son m uy apetecidos
por la facilidad en su programacin.

Curso prctico sobre Microcontroladores


Las nuaL'acaLnraLc.idores INTEL, ATMEL y BASIC Stamp

Microcontroladores INTEL
A com ienzos de los aos 80 Intel propuso el
m odelo de m ic ro c o n tro lad o r d en o m in ad o
80 5 1 . Esta p rim era versin ten a tres v arian
tes: el 8051 propiam ente dicho , dotado de
u n a m em oria R O M in tern a program ada en
fb rica; el 8 7 5 1 , equipado con una E PRO M ; Os
c?
y el 80 3 1 , desprovisto de c u alq u ie r tipo de
m em oria perm anente (R O M ). Esta prim era
serie se com plet rpidam ente con la versin
8 0 5 2 . A este ltim o m icrocontrolador, m uy Figura 6.1 Microcontroladores PHILIPS. Su ncleo es el 8051
parecido al 8 0 5 1 , se le a adi un perifrico
(u n tercer tem porizador) y 128 bytes de RAM bricar microcontroladores basados en la misma
in terna. Tam bin existe una versin del 8052 arquitectura 8051 o a producir nuevas versiones
que contiene un intrprete de lenguaje BA mejoradas del mismo circuito integrado, incor
S IC en su m em oria RO M . porndoles nuevos perifricos, figura 6.1.

As naci la famosa familia 51, la cual se com Ncleo 8051


plet con otros miembros. Todos estos m icro En la fig u ra 6 .2 se aprecia el d iagram a de blo
controladores se han concebido bajo un mismo ques y el d iagram a de pines del 80 5 1 . En l
ncleo. Esta caracterstica motiv a varios fabri se puede ap reciar la C P U y una RAM in terna
cantes (SIEMENS, M H S, OKI, PHILIPS, etc.) de 28 bytes; ad icio n alm en te h ay que d is tin
a firm ar acuerdos gracias a los cuales pueden fa- g u ir aq u la p o sib ilid ad de direccion am iento

G am a d e m ic ro c o n tro la d o re s M C S -51 d e INTEL (1991)

VERSIN

8031 8051 4K 128 2 3.5 a 12 Versin NM0S

8032A H 8052AH 8752B H 8K 256 3 3.5 a 12 I


83C51FA 80C51FA 87C51FA 8K 256 3+PCA Posibilidad de salidas PWM. entradas con captura y WDT

83C451 80C451 4K 2 7 pue rto s

G a m a d e m ic r o c o n tro la d o re s SIEM EN S (19 9 1 )

80535 80515 256 3+WDT 1 .2 a 12 8 entradas analgicas de 8 bits; 4 salidas PWM


4 entradas con captura; 4 niveles de prioridad de
interrupciones
8 0C 5 3 7 8 0C 517 3+W D T 12 e ntrad a s analgicas; 8 p un tero s d e 16 bits,
unid a d a ritm tic a l gica d e 1 6 b its , 21 salidas PWM;
5 e ntradas co n captura; 2 pue rto s serie; 4 tem porizadores
de 16 b its , WDT p rogram able

80C17A 83C517A5 32 K 2.25K 4+2WDT 7 14/4 RAM interna de 2.25 Kb convertidor A/D de 10 b its
G a m a d e m ic r o c o n tro la d o re s P HILIPS (1992)

80C451 83C451 87C451 4K 128 7 UART 12 y 16 2


80C592 83C592 R7PRQ? 1fi K 6 UART+ CAN IR 3+W D T C A /0 8 E /1 0 bits, 2 sa lid a s P W M e in te rta z d e b us CAN

80C528 83C528 87C528 32 K 512 4 UART + PC 1 6 ,2 0 y 24 3+WDT

Tabla 6.1 Gama de microcontroladores 8051 y algunos derivados

a. Curso prctico sobre Microcontroladores


Interrupcin externa Todos los fabricantes
tienen disponibles los micro
controladores 8051,8052 y
sus versiones CM OS en en-
capsulado DIP de 40 pi
nes o patillas. Algunos los
ofrecen en otros encapsu
lados. D entro de sus pi
nes podemos destacar el
pin EA el cual es una en
trada que perm ite confi
gurar el microcontrolador
para sistem as con buses
externos. Posee tres puer
tos: el puerto 0 cuyas l
neas son de colector abier
to, el puerto 1 quien po
Direcciones/Datos see resistencias internas de
p u ll-u p , el puerto 2 tam
bin con p u ll-u p y el cual es utilizado durante el
acceso a la m em oria externa. Por ltim o est el
puerto 3 que posee funciones adicionales as:

P3.0 RXD entrada de interfaz serie


P 3 .1 TXD salida de interfaz serie
P3-2 INTO entrada para interrupcin externa
P3-3 IN T l entrada para interrupcin externa
P3.4 T0 entrada de contador para el tempori
zador 0
P3.5 T i entrada de contador para el temporiza
dor 1
P 3.6 W R salida de escritura de la m em oria
externa
RD salida de lectura de la memoria externa

En una leccin posterior explicaremos en de


talle este microcontrolador.
Figura 6 .2 Diagrama de bloques y de pines del 80 5 1
Microcontroladores ATMEL
de m em orias externas, en esos casos uno de Los m icrocontroladores A TM EL, fig u ra 6 .3 ,
sus puertos debe u tilizarse en esa fu n ci n , han ten id o una gran acogida en el m ercado;
cam biando su caracterstica com o puerto a bus de ello s se pueden d estacar tres fam ilias, la
externo. El 8051 co n tien e, entre otros, un p rim era est basada en el 8 0 5 1 , la segunda
puerto serial y dos tem porizadores de 16 bits. es la AT91 A R M T h um b y por ltim o , los
En la tab la 1.1 se encuentran algunos de los A V R. Veamos ahora un poco de cada uno de
modelos ms representativos de esta fam ilia. estos grupos.

Curso prctico sobre Microcontroladores


Las iC a u c c L iiiu l^ E i ATMEL y BASIC Stamp

tan con osciladores internos, temporizadores, UART,


SPI, resistencias de pull-up , PW M , ADC, compara
dores anlogos, etc. Dentro de los ms representati
vos estn los A T tiny 10, 11 y 12, microcontrolado
res FLASH de 1K de memoria de programa, 64 bytes
de RAM y programables dentro del circuito.

Microcontroladores BASIC Stamp


La empresa Parallax Inc. produce estos m icro
pbs v
controladores que son m uy potentes y poseen
pb3 pbz unas herram ientas de program acin que los
r : -'ir hacen m uy fciles de manejar. C on ellos el dise
GND PBO (AINO) ador no requiere de conocim ientos avanzados
en electrnica digital, ni en microprocesadores,
Figura 6.3 Microcontroladores ATMEL AVR
ni en el desarrollo de programas en lenguaje en
samblador, entre otros. Por esta razn estn sien
Basados en arquitectura 8051 do am pliam ente utilizados por estudiantes des
ATMEL Ofrece una lnea de microcontrolado de el colegio hasta la universidad, por aficiona
res basados en la arquitectura 8051, con memo dos, tcnicos e ingenieros de diferentes ramas y,
ria de programa FLASH dentro del circuito in adems, se han popularizado mucho en el cam
tegrado, al igual que versiones OTP. po de la robtica experim ental.

AT91 ARM Thumb Los BA SIC Stam p son pequeas com pu


Los microcontroladores AT-91 son microcontro tadoras construid as en una tarjeta de circuito
ladores de 32 bits lo que perm ite el desarrollo de im preso, fig u ra 6 .4 y su p rin cip al caracters
protocolos de comunicacin, compresin de da tica es que ejecutan program as escritos en un
tos y control. Cuando se construye un producto len gu aje m uy sim ilar al trad icio n al lenguaje
electrnico alrededor de un ncleo ARM se ga B A SIC , llam ado PBA SIC . Su form a de tra
rantiza la durabilidad y calidad del mismo. bajo es m uy sim p le: segn el circu ito que se
q u iera controlar, el diseador escribe su pro
Los microcontroladores AT91 son muy apete gram a en la com putadora, lo co m p ila y lo lle
cidos para aplicaciones de bajo consumo de potencia va hacia el m icrocontrolador a travs de un
y otras en tiempo real; se han hecho aplicaciones cable de conexin que se ha preparado pre
m uy exitosas en automatizacin industrial, disposi viam en te. El m icrocontrolador recibe dichas
tivos MP3, productos para la adquisicin de datos, in strucciones y las alm acena en una m em oria
equipos mdicos, GPS y sistemas de redes.

La serie AT91 cuenta con un amplio con


junto de herramientas de programacin de alto
nivel, como compiladores de lenguaje C , em ula
dores y sistemas operativos en tiempo real.

Microcontroladores AVR
Son microcontroladores de 8 bits cuyas instruccio
nes se ejecutan en un solo ciclo de mquina. Cuen- Figura 6.4 Microcontroladores BASIC Stamp

60 ( E IK IIW ^ Curso prctico sobre Microcontroladores


EEPRO M , de donde las lee para ejecutarlas construido con tecn olo ga de m o n taje super
secuencialm ente. ficial, lo que sign ifica un ahorro de espacio
m uy im portante en la ap licaci n final. En la
Los BASIC Stamp I y II incluyen un micro figura 6 .6 se m uestra su aspecto fsico. C om o
controlador de la familia Microchip o Scenix, el se puede apreciar, posee un circu ito in teg ra
cual est grabado previamente con un interpreta do in terp retad o r basado en un P IC 1 6 C 5 6 y
dor de cdigos que le permite tomar los datos que una m em oria serial, un regulad o r de voltaje
se han pasado desde la computadora y ejecutar las q ue p erm ite a lim e n ta r el sistem a con u n a
rdenes correspondientes. Tambin poseen una fuen te de 6 a 15 voltios y un sistem a de reset
memoria EEPROM serial donde se almacena el que rein icializa el funcionam iento del m icro
programa recibido y que se debe ejecutar; un re co ntrolador en caso de que la fuente del sis
gulador de voltaje, su respectivo circuito oscilador tem a caiga por debajo de 4V.
y un sistema de reinicializar (reset) m uy eficiente.

Los BASIC Stamp han evolucionado rpida


* * * * " " M-J = : , .
mente desde su creacin. El primer modelo dis * *.<:U -
ponible, conocido con el nombre de BASIC Stamp c = | BL1
u n V. i i t i f t
simplemente, posee un PIC16C56 como chip in 9 ** m *w$* m si y
Ig*** * *' ' ? S! 3
terpretador y una m em oria EEPROM serial
93LC 56 donde se almacena el programa. Este sis r m T m n m 1
tema, incluye un conector para batera de 9 vol
tios, donde se debe conectar la alimentacin ex
Figura 6.6 BASIC Stamp I
terna; tambin incluye un rea de circuito impre
so, libre para hacer prototipos y, por supuesto, los Com o se puede apreciar en la figura 6 .7 ,
pines donde se conecta el cable que viene desde la este sistem a posee 14 pines organizados en una
computadora y a travs del cual se descarga el pro sola fila; de ellos, ocho se pueden utilizar como
grama que ha escrito el usuario. Este cable se co entradas o salidas individuales, posee un pin
necta al puerto paralelo de la computadora. En la de reset, una entrada para alim en tacin con
figura 6.5 se muestra este modelo de BASIC Stamp fuente regulada de 5V, una entrada para a li
con su respectivo cable de programacin. m entacin con fuente no regulada de 6 a 15
voltios, pin de tierra, y los pines de program a
El BASIC Stamp I cin a travs de los cuales se com unica con la
Este m icro co n tro lad o r present un avance com putadora. En la figura 6 .8 se m uestra la
su stancial respecto a su antecesor ya que est configuracin del cable necesario para la pro
gram acin; ste se debe conectar al puerto pa
ralelo de la com putadora.

Una alternativa m uy prctica para montar


los prototipos o circuitos de prueba con el BA
SIC Stamp I, es utilizar la tarjeta de prototipos
(carrier board) diseada por Parallax, en la cual
se dispone de un conector para la fuente de a li
m entacin, un circuito impreso para m ontar
otros componentes y el conector para la respec
tiva programacin. En la figura 6.9 se muestra el
Figura 6 .5 Modelo original del BASIC Stamp con su cable de
programacin
diseo de dicha tarjeta.

Curso prctico sobre Microcontroladores


L a s LiiLCL-aaaLiii'i ATMEL y BASIC Stamp

Otro aspecto importante de la programacin


es el conocim iento que se debe tener sobre la ca
pacidad de m emoria del microcontrolador. Para
el caso del BASIC Stamp I, se tienen 256 posi
ciones de memoria de programa y 16 bytes de
memoria RAM; dentro de esta ltim a est el con
trol de los pines de entrada/salida y de las varia
VIN Entrada de alimentacin no regulada. bles que se utilicen dentro del programa.
AceDta de 6-15 VCC
GND Tierra
PCO Conectar al pin 11 del puerto paralelo Com o dijim os anteriorm ente, la caracters
para programacin (BUSY) tica ms im portante de los BASIC Stamp es la
PCI Conectar al pin 2 del puerto paralelo
posibilidad de ejecutar programas en un lenguaje
para programacin (DO)
VDD 5 voltios de entrada o de salida. Si se
m uy parecido al tradicional BASIC. Se trata de
aplica una fuente no regulada al pin un lenguaje desarrollado por Parallax y que se
VIN, en este pin se obtienen 5 voltios. denom ina PBASIC. Con base en esto, el dise
Si el pin VIN se deja al aire, se debe ador de aplicaciones puede utilizar muchas he
conectar aqu la fuente de 5V del sistema
rram ientas de program acin que son difciles
RES Reset de entrada/salida. Cae a un nivel
bajo cuando la fuente de +5V est por
de conseguir cuando se trabaja con microcon-
debajo de 4V. troladores corrientes, los cuales son program a
P0-P7 Pines de entrada salida de propsito dos en lenguaje ensamblador.
general. Pueden manejar 25 mA en
modo source.
Dentro del grupo de instrucciones se encuen
Figura 6 .7 Distribucin de pines del BASIC Stamp I
tra la posibilidad de hacer ciclos condicionales,
En lo que respecta a la programacin del m i de generar sonidos, de hacer lecturas de botones
crocontrolador, se deben tener en cuenta varios o pulsadores, de m edir tiempos o de generar p ul
aspectos. El primero, tiene que ver con el progra sos con una sola instruccin, etc. Como se pue
ma (software ) que se ejecuta en la computadora y de apreciar, son instrucciones m uy poderosas y
que permite hacer todo el desarrollo de la aplica que dism inuyen notablemente el tiempo de de
cin. Este es un programa diseado por Parallax y sarrollo de una aplicacin.
es m uy similar a los editores de texto sencillos. En
este sistema, se escriben las instrucciones para la El BASIC Stamp II
aplicacin particular y, mediante unos comandos
ste posee el mayor nmero de caractersticas es
definidos por combinaciones de teclas especiales,
peciales. Su aspecto fsico se puede ver en la figura
se puede compilar el programa, revisar la sintaxis
6.10. El chip interpretador o controlador que po
y descargarlo hacia el microcontrolador.
see es un PIC16C57 y la memoria serial que reci
be el programa que se va a ejecutar es
25 GND 1 VIN una 24L C 16. Este sistema posee adems,
2 vss
3 PCI) un sistema de reset bastante sofisticado y
4 PCI
5 VUU una fuente de alimentacin regulada que
6 H tS
7 P0 garantizan su correcto funcionamiento
8 P1
9 P2 an en difciles condiciones.
10 P3
11 P4
200 12 P5
13 P6 Est diseado de tal forma que pa
14 P7
BSM C
rece un circuito integrado de 28 pines,
de los cuales 16 son programables como
Figura 6.8 Cable de programacin del BASIC Stamp I

.a. Curso prctico sobre Microcontroiadores


1
Teora

W
-1 SOUT vin r 28
-2 sin vss C 27
-3 atn res" 26
-4 vss VDD 25
5 po P15 24
O
6 P1 i P14 [ 23
CN
GO
7 P2 CO P 1 3 E 22
8 P3 P12H 21
9 P4 P 1 1 Q 20
10 P5 P 1 0 C 19
11 P6 P9 C 18
12 P? P8 C 17
Figura 6 .9 Tarjeta para desarrollos con BASIC Stamp I

Figura 6.11 Distribucin de pines y cable de conexin del BASIC


entrada o salida; adems, posee entrada para una
Stamp II
fuente de alimentacin regulada de 5V, una fuen
te de alimentacin no regulada de 6 a 15 voltios, se dispone de conexin para la fuente de a li
pin de reset y pines de comunicacin serial que m entacin y para el cable de program acin.
soportan niveles de voltaje R S-232. A travs de En la figura 6 .1 2 se puede ver la tarjeta de pro
estos ltimos se hace la programacin desde la totipos del BASIC Stam p II.
computadora y se puede establecer comunicacin
con otros dispositivos externos. En lo que respecta a su programacin, este dis
positivo tambin posee su propio programa de de
Como se acaba de m encionar, la progra sarrollo donde el diseador crea sus programas, los
m acin de este dispositivo se hace desde el compila y los descarga hacia el microcontrolador.
puerto serial de la com putadora, figu ra 6 .1 1 , Inclusive, existe un ambiente de desarrollo especial
a diferencia de los dos m odelos anteriores que para trabajar bajo Windows que presenta las facili
lo hacan desde el puerto paralelo. Al igual que dades propias de este tipo de aplicaciones.
el BASIC Stam p I, en este caso tam bin se dis
pone de una tarjeta para el desarrollo de pro
La memoria de este microcontrolador es mu
totipos (ca rrier board), en la cual se pueden
cho ms amplia que la de sus predecesores; en la
desarrollar aplicaciones particulares a la vez que
memoria de programa cuenta con 2048 posiciones
de EEPROM y en la memoria RAM cuenta con
32 bytes. Sus instrucciones, aparte de las mismas
del BASIC Stamp I, incluyen comandos especiales
que le permiten manejar tonos DTMF, comunica
ciones seriales RS-232 y PW M , entre otros.

U n aspecto m uy im portante que se debe te


ner presente a la hora de iniciar un diseo con
los BASIC Stamp es que la frecuencia o reloj efec
tivo de operaciones es relativamente baja com
parada con un microcontrolador normal. Es de
cir, si en un PIC con reloj de 4 M H z se ejecutan
un m illn de instrucciones cada segundo, en
Figura 6.10 BASIC Stamp II un BASIC Stam p, que posee el m ismo cristal

Curso prctico sobre Microcontroladores


Les LiiLeL-eeeutui 1 INTEL, ATMEL y BASIC Stam p

Figura 6.12 Tarjeta para Desarrollos con BASIC Stamp II

de 4 M H z, se ejecutan alrededor de 2000 ins Fig ura 6.13 Microcontroladores BASIC Stamp
BS2p24 y BS2p40.
trucciones. Esto se debe a que cada instruccin
del programa en PBASIC, se debe ejecutar en
Presentacin 2 4 o 4 0 pines
varias instrucciones de ensamblador del ch ip in
terpretador, que hace parte del BASIC Stamp. T em p eratu ra del am b ien te 0 - 70 C

M icro co n tro lad o r SC E N IX SX 48A C


Las versiones ms actualizadas de los BASIC V elocidad del procesador 20 M H z
Stamp son el BS2p24-IC y el BS2p40-IC, que vie
RAM 3 8 bytes
nen en presentaciones de 24 y 40 pines, figura
6.13. Presentan toda una serie de nuevas funcio EEPRO M 8 x 2K bytes
nes y comandos (55 distintos) y es m uy interesan Pines I/O 16/32
te saber que las pistas de su circuito impreso estn
C o n su m o de corriente 4 0 m A en m odo R U N y
hechas en oro para mejorar su conductividad.
4 0 0 uA en m odo SLEEP

Las principales caractersticas las podemos Tabla 6 .2 Caractersticas m s representativas de los nuevos
apreciar en la tab la 6.2. Ahora poseen un m icro BASIC Stamp BS2p y BS2p40.
controlador SCENIX SX48AC a 20 M H z, en
lugar del PIC y manejan fcilmente los protoco CEKIT S.A. tiene disponibles una serie de
los I2C , DALLAS 1-WIRE y mdulos LCD. entrenadores y tarjetas para prcticas con este
tipo de microcontroladores, figura 6.14.
H asta aq u hemos visto los aspectos gene
rales de algunas de las principales fam ilias de
m icrocontroladores. Ahora estam os listos para
in iciar un estudio detallado, siguiendo el or
den de fam ilias que se ha m ostrado en las p ri
m eras lecciones, sobre la estructura bsica, el
funcionam iento y el m anejo de cada una de
las partes y mdulos que hemos enunciado an
teriorm ente y que forman parte de un m icro
controlador. M ucha dedicacin y xitos, son
nuestros deseos para usted, que se in icia ahora
de Heno en este m aravilloso m undo de los m i
crocontroladores!
Tabla 6.14 Entrenador para BASIC Stamp II, modelo K-202

.4. Curso prctico sobre Microcontroladores


EL OSCILADOR Y EL CIRCUITO DE
REINICIALIZACIN (RESET) EN LOS
MICROCONTROLADORES PIC
Con esta leccin iniciam os el estudio detallado
de los principales componentes de cada una de
las familias de los microcontroladores m encio
nados anteriorm ente en cuanto a su estructura
elctrica y funcionamiento. Empezamos con los
circuitos de oscilacin y de reinicializacin {reset)
de los PIC, dos elementos bsicos para su fun
cionamiento cuyo conocimiento es esencial para
el desarrollo de los circuitos de aplicacin. Tam
bin es m uy importante conocer como cambian
los parmetros de un sistema dependiendo de la
configuracin de estos dos circuitos.

Curso prctico sobre Microcontroladores


11 ascLaiQL- v e l cl uito de reinicializacin (Reset) en los Microcontroladores PIC

Todos los microcontroladores requieren de un


sistema que genere una seal de reloj que le per
m ita a la CPU ejecutar secuencialmente las ins
trucciones. Ese sistema se puede conectar exter 0SC 1
namente al microcontrolador a travs de pines es
pecficos destinados para tal fin formando un pe
queo circuito externo cuya configuracin y el Ejecucin de una instruccin

valor de sus componentes determinan la veloci Figura 7.1 Ciclo de instruccin


dad con la que el microcontrolador ejecutar el
programa que tiene almacenado en su memoria. X T (ganancia m edia): Cristal/Resonador.
H S: Cristal/Resonador de alta frecuencia. Es
Cada vez que el microcontrolador se energi- la que permite trabajar ms rpido y por lo tanto
za debe esperar un tiempo para que esa oscila la que ms corriente consume.
cin se estabilice y l pueda empezar a funcionar RC: Red RC externa. Es una solucin m uy
correctamente. Esos dos importantes factores son econmica.
los que estudiaremos en esta leccin: como con IN TRC: Red R C interna. Es la solucin ms
figurar los circuitos de oscilacin y el circuito de econmica en que se puede pensar para el cir
reinicializacin {reset). En trminos generales; esta cuito oscilador. C ada que se vaya a trabajar con
teora es vlida para todos los microcontrolado un m icrocontrolador determ inado, se debe
res de esta marca; en el caso de que algn mode mirar en su hoja de datos si tiene disponible
lo tenga requerimientos especiales al respecto, lo este tipo de oscilador.
estaremos explicando en su debido momento.
En el interior del microcontrolador existe un
El circuito oscilador circuito que, dependiendo de la seleccin hecha
En el interior de los m icrocontroladores PIC entre LP, X T y H S afecta su ganancia interna y
existe un circuito de oscilacin que perm ite ge debido a eso se presentan los distintos rangos de
nerar la seal de reloj necesaria para que todo el frecuencia. Entre ms alta sea la frecuencia de ope
dispositivo trabaje correctam ente. C ada cuatro racin del microcontrolador, ms alto ser su con
perodos de esa seal de reloj se genera un ciclo sumo de potencia. Este es un concepto fundamen
de instruccin, en otras palabras, se ejecuta una tal dentro del desarrollo de proyectos con micro
instruccin, figu ra 7 .1 . En estos m icrocontro controladores, por lo tanto es aconsejable elegir el
ladores existen varios tipos de configuracin para oscilador que proporcione la ms baja frecuencia
el oscilador con el cual va a funcio
nar la aplicacin, algunas ms rpi
das que otras; esa configuracin se
puede establecer dentro del progra
m a o m anualm ente en el momento
de program ar el dispositivo.

Los tipos de oscilador ms utilizados son: -i

LP (baja potencia): cristal a baja


frecuencia. Es la que m enos co
XT1
rriente consum e dentro de las tres Cristal o resonador cermico PIC16XXX

opciones de trabajo con cristal.


Figura 7.2 Conexin del oscilador basado en cristal o resonador cermico

(C m M fT ,: Curso prctico sobre Microcontroladores


factores como la calidad del cristal, la tem pe
ratura del sistem a, los valores de los condensa
dores utilizados, la frecuencia del cristal o re
sonador utilizado, la seleccin del modo de os
cilador, el ruido del sistem a, etc., figu ra 7.5 .

La seleccin de los elementos que compo


nen el circuito de oscilacin no es al azar. Los
valores de cada uno de esos elementos altera la
salida final del circuito; por eso se debe hacer
una cuidadosa seleccin de estos elementos te
Fig ura 7.3 Aspecto fsico de un cristal comn niendo en cuenta la velocidad de ejecucin que
requiera la aplicacin que se est desarrollando.
posible con el que nuestra aplicacin y los disposi
tivos externos, puedan funcionar correctamente.
Seal de reloj desde
Osciladores basados en cristal o en un sistema externo

resonadores cermicos
En este caso, para generar la seal de reloj, se Abrir (1 ) - *
debe conectar un pequeo circuito conforma
do por dos condensadores (C1 y C 2) y un cris NOTA ( l) Una resistencia a tierra puede usarse para dism inuir el ruido
del sistem a. Esto quiz increm ente la corriente del sistema.
tal o un resonador a los pines O S C l y O SC 2
del m icrocontrolador quienes se com unican in
ternam ente con un circuito lgico que genera
Hacia otros
la oscilacin, figura 7.2. dispositivos

Cuando se hace uso de cristales, estos se pueden


conseguir en una gran variedad de encapsulados y
frecuencias que por lo general vienen marcadas en
su cpsula exterior, figura 7.3. Cuando se confi
gura el modo de operacin en XT, LP o H S, el
microcontrolador puede tener una fuente externa
de los pulsos de reloj conectada al pin O S C l. En
la figura 7.4 se aprecian algunas posibles configu
raciones de elementos externos que el lector pue
de ensayar para generar la seal de frecuencia 20 pF - r 20 pF
externa. Estas configuraciones constan princi
palmente de compuertas lgicas, resistencias y
330 KQ 330 K2 Hacia otros
condensadores. dispositivos

74AS04 74AS04 74AS04


C uando el circuito de reloj recibe la a li x
m entacin, el oscilador em pieza a trabajar, CLKIN ><
(O
pero la realidad es que no lo hace de manera
inm ediata; requiere de cierto tiempo de esta XTAL

bilizacin. El tiem po requerido para que el


oscilador opere norm alm ente depende de Figura 7.4 Conexin de diversos osciladores externos

Curso prctico sobre Microcontroladores


13. usdL& dm * v el circuito de reinicializacin (Reset) en los Microcontroladores PIC

Mximo VDD ...


del sistema Alimentacin del

R e x t. 74AS04

0SC1 Fose

R eloj intern o
Cext

vss
0SC2/CLK0UT o
Tiempo para el inicio de
Fosc/4 -4 ------------------------ CL
operacin de l cristal

Figura 7.5 Comportamiento del oscilador al recibir la alimentacin Figura 7.6 Configuracin del oscilador RC externo
e iniciar su operacin

En las tablas 1 y 2 se aprecian los valores tpi En realidad este circuito puede funcionar in
cos para los condensadores C1 y C2 para trabajar clusive sin condensador (Cext = 0) pero se reco
con un circuito basado en resonador y en cristal. m ienda utilizar valores por encima de 20pF por
razones de estabilidad e inmunidad al ruido. Cuan
do el condensador es m uy pequeo o no existe, la
C uando se desarrollen aplicaciones que no
frecuencia de oscilacin puede cambiar brusca
tengan requerim ientos exigentes de tem pori-
mente debido a capacitancias creadas externamente
zacin, se puede u tilizar un oscilador R C ex
como por ejemplo, la creada en el trazado del cir
terno como se m uestra en la figu ra 7.6 . En un
cuito impreso.
oscilador de este tipo, la frecuencia depende
directam ente del valor de la resistencia y el con
La frecuencia del oscilador, dividida por 4 , se
densador (R ext, Cext) y de la tem peratura. Si
encuentra disponible como salida en el pin O SC2
la resistencia Rext es m enor de 2.2K , la oscila
y se puede utilizar para sincronizar otros dispositi
cin puede ser inestable o detenerse com ple
vos que trabajen en paralelo en el mismo circuito.
tam ente; si es dem asiado grande, por ejem plo
1M , la oscilacin se hace m uy susceptible al
Circuito de reinicializacin (reset)
ruido y la hum edad.
En los m icrocontroladores PIC existe un pin de
nom inado M C L R . Cuando este pin se lleva a
Por eso es recomendable que Rext tenga un
un nivel lgico bajo, el PIC entra al estado de
valor comprendido entre 3K y 100K. En la tabla
reinicializacin (reset). En este estado todas las
3 se pueden apreciar las frecuencias generadas por
salidas se apagarn y el reloj se desactivar. To
distintas configuraciones de la red RC.
dos los nuevos m icrocontroladores PIC poseen
un filtro contra el ruido en el pin
M C L R para detectar e ignorar
M odo Frecuencia C1 C2
M odo Frecuencia C1/C2 pulsos pequeos, razn que faci
LP 3 2 KHz 68 - 1 0 0 pF 6 8 -1 0 0 pF
lita la incorporacin de estos dis
XT 455 KHz 22 - 1 0 0 pF 200 KHz 15 - 30 pF 1 5 - 30 pF
2.0 MHz 1 5 - 6 8 pF positivos en am bientes ruidosos o
4.0 MHz 15 - 6 8 pF 100 KHz 68 - 1 5 0 pF 150 - 200 pF
XT 2 MHz 15 - 30 pF 1 5 - 30 pF
contam inados.
HS 8.0 MHz 1 0 - 6 8 pF 4 MHz 15 - 30 pF 1 5 - 3 0 pF
16.0 MHz 10 - 22 pF
HS 8 MHz 15 - 30 pF 1 5 - 3 0 pF
10 MHz 15 - 3 0 pF 1 5 - 3 0 pF
D entro del m apa de m em o
2 0 MHz 15 - 3 0 pF 1 5 - 3 0 pF
Tabla 7.1 Valores tpicos de los ria existe una direccin denom i
condensadores cuando se trabaja Tabla 7.2 Valores tpicos de los condensadores
nada vector de r eset , en esta di-
con resonadores cuando se trabaja con cristales

Curso prctico sobre Microcontroladores


Teora

+5VDC
,+5V

VD0 ig
1N4148
X
0SC1 I(> g MCLR
S 5
, Fosc/4- 0SC2 3 MCLR i3 -
T

Tabla 7.3 Frecuencias de oscilacin para distintos Figura 7.8a Circuito externo de Figura 7.8b Otro circuito para POR
valores de la red RC POR

VDD
controladores PIC, por las ventajas que ofrecen.
Analicemos cada uno de ellos.

o Reinicializacin al encendido (Power


MCLR EL
On Reset: POR)
NOTA: Este estado de reset s,e origina en el momento de
R es opcional
detectarse un estado alto en la alimentacin. Para
Figura 7.7 Configuracin para utilizar el POR
aprovechar esta caracterstica, se puede conectar
reccin es donde el PIC em pieza la ejecucin una resistencia desde el pin M C L R hasta el volta
del program a. Esta direccin es la 0 para los je de alimentacin (VDD), figura 7.7. Esto ase
PIC de medio y alto rango y corresponde a la gura que cada vez que el sistema es alimentado
ltim a direccin para los PIC de rango bajo. adecuadamente, el programa inicia su operacin
Por ejem plo, el vector de reset de un PIC 16C 54 desde el punto exacto desde donde debe iniciar.
tiene la direccin 0 x 0 1FF. Cada
vez que el PIC entra, por alguna
POR
razn, en estado de reset , la CPU
del microcontrolador se dirige a esta
posicin de la m em oria para iniciar
nuevamente la ejecucin de todas
las instrucciones del programa. Operacin normal del
oscilador
*
Existen varias razones que pue
den motivar un estado de reset ade- MCLR

ms del estado lgico bajo en el pin


Oscilador
M C LR , ellas se conocen como ti
Tose 1
pos de reset, y son: la reinicializa
cin al encendido (P ow er On Reset), Tost
y la reinicializacin por cada en la Tiempo Ost
alim entacin (B row n O ut Reset).
Tambin es im portante analizar la Tiempo muerto
secuencia de inicio que presentan Tiempo PWRT
los PIC cada que se da un estado de TPWRT
reset ya que all existen algunos re
tardos que se han incorporado como Reset interno
caractersticas estndar en los micro- Figura 7.9 Diagrama de tiempo del inicio de operacin del oscilador

Curso prctico sobre Microcontroiadores


y el circuito de reinicializacin (Reset) en los Microcontroladores PIC

mentacin de baja rampa de crecimiento.


Un circuito externo para POR slo se re
quiere si el tiempo de VDD es demasiado
lento. El diodo D ayuda a descargar rpida
mente el condensador cuando VDD se des
activa. O tra variacin de este circuito y
POR Interno que evita problemas en el arranque se
muestra en la figura 7.8b.
TPWRT

PWRTTime out
Temporizador al encendido
O St (Power Up Timer: PWRT)
El PWRT es una caracterstica que se puede
Ost Time out
incorporar en el momento de grabar un pro
grama en la memoria del microcontrolador.
Reset interno Esto proporciona un retardo de aproxima
damente 70 ms a la reinicializacin POR o a
Figura 7.10 Secuencia seguida al alim entar el sistem a y el pin MLCR
conectado directamente a ZDD la BOR. El PWRT se basa en un oscilador
RC interno dedicado. El microcontrolador
Cuando el dispositivo sale del estado de reset permanecer en estado de reset mientras el
(comienza su operacin normal), los parmetros PWRT se encuentre activo. El retardo proporciona
de operacin del dispositivo (voltaje, frecuencia, do por el PWRT le permite al voltaje de alimenta
temperatura, etc.) deben encontrarse dentro de sus cin V D D alcanzar un nivel aceptable.
rangos normales de operacin; de otra manera el
microcontrolador no funcionar correctamente. Temporizador de oscilacin al
El retardo originado con el POR permite que se encendido (OST)
establezca un retardo lo suficientemente largo para Este tem porizador proporciona un retardo de
que estos parmetros se normalicen. 1024 ciclos del oscilador (de acuerdo a la en
trada en O SC 1) despus de que el retardo
En la figura 7.8 se aprecia un posible circuito P W R T ha term inado. Esto asegura que el os
PO R basado en una red RC y un diodo; recomen cilador de cristal o resonador se encuentra ope
dable para un sistema que posea una fuente de ali rando en su modo estable.

VDD VDD

Figura 7.11 Circuito 1 externo de Brown out Figura 7 .12 Circuito 2 externo de Brown out

. Curso prctico sobre Microcontroladores


C a d a v ez q u e el
p in M C L R tom e un
nivel alto, el proceso se
repite au to m ticam en
te. Esa caracterstica es
m uy til, por ejem plo,
en ap licacio nes donde
se necesiten sin cro n i
zar vario s m ic ro c o n
troladores que trabajen
en paralelo.

Si el v o ltaje fin al
VDD
del sistem a no cum ple
b v dd con las especificaciones
elctricas del m icrocon
trolad or (las cuales se
Reset interno 72 ms p u ed en h a lla r en las
hojas de datos del fa
Figura 7.13 Comportamiento del BOR
bricante) el pin M C L R
En la fig u ra 7 .9 se observa la operacin del debe m antenerse en bajo h asta que el vo ltaje
circuito O ST en conjunto con el PW RT. A ll sea el adecuado. El uso de un retardo con
podemos apreciar como a m edida que el vol u na red RC ex tern a debe ser su ficien te para
taje VDD crece tam bin lo hace la seal en este propsito.
M C L R ; a partir de cierto nivel el PO R em pie
za su operacin y el P W R T se activa durante Reinicializacin por cada en la
un tiem po; cuando ste term ina, habilita al os alimentacin (Brown-Out Reset: BOR)
cilado r para que empieze su operacin. Para Dentro de los microcontroladores PIC existe es-
cristales de baja frecuencia este tiem po de in i teotro tipo de reset denominado B row n -ou t, el
cio puede ser un poco ms largo. cualpuede ser habilitado o deshabilitado por el
usuario. Este perm ite llevar el PIC a un estado
Esto se debe a que el tiem po que tom a el osci de reset cuando el voltaje de alim entacin cae por
lador de baja frecuencia para empezar a osci
No implantados
la r es m ayor que el retardo del PW RT. A s, el ------------------------- 1--------------1------------ -
tiem po tom ado desde que el P W R T se acaba POR BAR

hasta cuando el oscilador em pieza a oscilar, se B it 7 B it 0


denom ina tiem po m uerto.
bit 6:3 No im plantados
Secuencia seguida al alim entar el bit 1 POR: B it de estado del reset Power-on
sistema 1 = No ha ocurrido reset por Power-on
En el momento de alim entar el microcontrola 0 = Ha ocurrido un reset Power-on
dor, se desarrolla la siguiente secuencia: primero bit 0 BOR: B it de estado del reset B row n-out
se detecta el PO R; si est habilitado, se invoca el 1 = No ha ocurrido un reset B row n-out
PW RT. Despus de que term ina el tiem po del 0 = Ha ocurrido un reset B row n-out
PW RT, se activa el OST, fig u ra 7.10. Figura 7.14 Registro PCON

Curso prctico sobre Microcontroladores


tzl usctlaL- y d d L i de reinicializacin (Reset) en los Microcontroladores PIC

debajo de un voltaje determinado (BVDD). Esto El circuito 2 es ms econmico pero menos pre
asegura que el dispositivo no contine con la eje ciso; el transistor Q l se desactiva cuando VDD
cucin del programa m ientras se encuentre por se encuentra por debajo de cierto nivel, de acuer
fuera del rango de operacin vlido. El reset do a la siguiente frmula:
Brown-out es m uy utilizado en aplicaciones de
lneas CA o en aplicaciones donde se conmuten car
gas y donde el voltaje puede caer temporalmente.
R1
VDD * = 0.7
Algunos microcontroladores no poseen este
R1 + R 2
tipo de reset, para los que lo poseen es necesario
ajustar el voltaje de Brown-out al nivel deseado.
Para este propsito, en las figuras 7.11 y 7 .1 2 se
muestran dos ejemplos de circuitos externos que Registro de control de potencia (P o w e r
se pueden implantar. En la figura 7.13 se muestra CONtrol: PCON)
un diagrama de tiempo donde se ilustran los mo En los nuevos m icrocontroladores PIC es po
mentos en que se origina una reinicializacin sible detectar la fuente de un estado de reset,
BOR. Cada uno de ellos debe ser comprobado en a travs del registro PC O N . Este registro con
la prctica para verificar que cumplan con los re tiene un b it de estado que perm ite d eterm i
querimientos de la aplicacin. nar que est o rigin an d o el estado de reset. Por
ejem p lo, d eterm in a si fue un PO R, un reset
En el caso del circuito 1 activar el reset cuan externo, etc. Este registro lo podem os obser
do VDD se encuentre por debajo de VZ + 0.7. var en la fig u ra 7 .1 4 , junto con los estados
Donde Vz es el voltaje zener. Al utilizar este cir de los b its en el m om ento que se originan los
cuito la configuracin B row n O u t R eset debe d istintos tipos de reset. En la fig u ra 7 .1 5 se
deshabilitarse en el momento de la programa m uestra un d iag ram a de b loq ues genrico
cin. Las resistencias se deben ajustar dependien sobre como in teract an las diversos tipos de
do de las caractersticas del transistor. condiciones que origin an un estado de reset.

S 0

Reset del
R Q
Oscilador
RC PWRT
interno

Figura 7.15 Esquema general de los tipos de RESET en los


microcontroladores PIC

72 d # r # r . i. Curso prctico sobre Microcontroladores


ARQUITECTURA DE LOS
MICROCONTROLADORES PIC
En esta leccin estudiarem os aspectos bsi
cos de la estructura interna o arquitectura
de los m icrocontroladores PIC, tales como
la m anera en que ejecutan las instrucciones
teniendo en cuenta su arquitectura bsica y
el funcionam iento de la C P U y la ALU.

A_ *
Curso p r c tic o sob re M icro co n trola do re s e m ik
Arquitectura de ios microcontroladores PIC

Los microcontroladores PIC poseen carac por un m ism o bus, se o rig in ar dem asiad a
tersticas que los hacen muy competitivos den congestin en ste.
tro del mercado global de la electrnica. Entre
ellas se encuentran su arquitectura Harvard y su Caso contrario ocurre en la arquitectura Har
reducido conjunto de instrucciones (R ISC : Re- vard, en la cual una instruccin puede buscarse
d u ce d Instruction Set C om puter), veamos los pun en un solo ciclo de instruccin, debido a que el
tos ms representativos de esta tecnologa. bus que conecta la memoria de programa es de
14 bits. Al tiempo que la m emoria de programa
Arquitectura Harvard se est accediendo, la m em oria de datos, como
Este tipo de arquitectura se caracteriza por tener cuenta con su propio bus, puede ser leda o escri
la memoria de programa (RO M ) en un bloque ta. Esta configuracin de buses separados perm i
separado de la memoria de datos (RAM). De la te que una instruccin se ejecute al mismo tiem
misma manera, cada una posee su propio bus para po que se busca la siguiente instruccin. En la
comunicarse con los dems elementos del micro figura 8.1 podemos apreciar el diagram a bsico
controlador. Los diseadores han aprovechado esta de ambos tipos de arquitecturas.
caractersticas para implantar un bus de 8 bits para
conectar la memoria de datos y un bus de ms de Instrucciones de palabra sencilla
ocho bits para ser conectado a la memoria ROM {single word)
donde se encuentran las instrucciones. De esta Los m icrocotroladores PIC m anejan in struc
forma se hace un uso ms eficiente de la memoria ciones de palabra sencilla (sin g le w ord). Estas
de programa, porque ella puede estar optimizada instrucciones se codifican y alm acenan dentro
para los requerimientos de la arquitectura. Por esta de la m em oria de program a con un tam ao de
razn, esta arquitectura permite un mejor manejo 14 bits; ese nm ero las hace ideales para ser
de las instrucciones que la tradicional arquitectu transm itidas por el bus conectado a dicha me
ra von Neumann, en la cual el programa y los da m oria, el cual es precisam ente de 14 bits. El
tos se ubican en un mismo bloque, el cual se co hecho de que el bu s y las instrucciones tengan
m unica mediante un solo bus. am bos 14 bits, perm ite que en un solo ciclo se
ejecute una instruccin.
Para ejecutar una in struccin, una m q u i
na de arq u itectu ra von N eum ann debe reali Caso contrario ocurre en la arquitectura von
zar uno o ms (no rm alm ente ms) accesos al Neum ann; en ella las instrucciones por lo gene
bloque de m em oria a travs de un bu s de 8 ral son de m ltiples bytes por lo que no es seguro
b its ; la razn es que existen instrucciones cuya que en cada posicin de memoria exista una ins
dim ensin o lo n gitu d en b its es m ayor de 8 truccin vlida.
bits, superando la lo n gitu d del bus de datos.
A d ic io n a lm e n te , los datos deben buscarse Manejo de las instrucciones (pipeline)
dentro de la RAM y llevar a cabo operaciones Para agilizar el proceso de ejecucin de las ins
de distintos tipos, todo por el m ism o bu s de trucciones en los sistemas digitales, se ha disea
8 b its. As, al trab ajar in strucciones y datos do un sistema en el cual se empieza la bsqueda
de una instruccin a medida que
Harvard Von-Neumann
se va completando la ejecucin de
la instruccin precedente o ante
rior. Este tipo de conexin o se
cuencia se conoce con el nombre
de p ip elin e (entubar, encauzar, d i
rigir o distribuir por tubos).
Teora

En los microcontroiadores PIC se utiliza esta Estructura interna dividida en registros


tcnica y los procesos de bsqueda y ejecucin se La memoria de datos de los microcontroiadores
traslapan. La bsqueda de una instruccin toma un PIC se divide en registros, cada uno con una
ciclo de mquina y la ejecucin se toma otro ciclo. ubicacin determ inada, lo que permite que pue
Pero, en lugar de buscar la instruccin actual y ejecu da accederse a cualquier parte de ella a travs de
tar la instruccin previa, en cada ciclo de mquina se direcciones. Existen algunos registros que cum
busca una instruccin al tiempo que se ejecuta otra. plen funciones especiales los cuales tambin se
encuentran ubicados dentro de ella en posicio
Debido a que el bus de la memoria de pro nes determinadas, como veremos en la siguiente
gram a tiene un tamao de 14 bits, una instruc leccin denom inada La memoria en los micro-
cin se toma en un solo ciclo de m quina, y se controladores PIC.
ejecuta en otro ciclo. Si el resultado de la ins
truccin m odifica el contenido del contador de Instrucciones ortogonales (simtricas)
programa, puede existir un pequeo retardo de Las instrucciones de los microcontroiadores PIC
un ciclo, el cual debe corregirse dentro de la se han sido diseadas para que cum plan con cierta
cuencia, este caso lo estudiaremos ms adelante. ortogonalidad o sim etra; esto quiere decir que
para cada instruccin existe otra instruccin si
Conjunto reducido de instrucciones mtrica que cumple la labor complementaria; esta
Los microcontroiadores PIC se clasifican dentro caracterstica tambin ayuda a facilitar el apren
de la categora RISC (R ed u ced In stru ction Set dizaje de las instrucciones.
Computer)-, esto quiere decir que se requieren
pocas instrucciones para llevar a cabo cualquier Las instrucciones ortogonales hacen posible
tarea. Es de resaltar aqu que un conjunto redu llevar a cabo cualquier operacin sobre cualquier
cido de instrucciones puede ser aprendido ms registro usando algn tipo de direccionamiento.
rpido por el usuario. La naturaleza simtrica y la ausencia de instruc-

TCY1 TCY2 TCY3

Figura 8 .2 Flujo de ejecucin de una instruccin


A r q u ite c tu ra d e lo s m ic ro c o n t ro la d o re s PIC

ciones especiales, (como ocurre en otros micro buscada es almacenada dentro de un registro de
controladores tipo C ISC , quienes cuentan con instruccin (IR) en el ciclo Q l. En ese momento
numerosas instrucciones, donde algunas de ellas ella se decodifica y se ejecuta durante los ciclos Q2,
cumplen con labores m uy puntuales o especiales), Q3 y Q4. La memoria de datos se ha ledo durante
hacen que la programacin sea m uy simple y efi el ciclo Q2 y se ha escrito durante el ciclo Q4.
ciente, a la vez que la curva de aprendizaje se re
duce significativamente. En el ejem plo 1 se muestra la secuencia de
operacin (pipeline) de una instruccin. EnTCYO
El ciclo de instruccin se busca la prim era instruccin en la memoria de
La seal de entrada de reloj (pin OSC1) se divide programa; en TCY1 sta se ejecuta m ientras se
internamente por cuatro, generando cuatro pul busca la segunda. Durante TCY2, la segunda ins
sos peridicos en cuadratura (desfasados) deno truccin se ejecuta mientras se busca la tercera.
minados Q l, Q 2, Q3 y Q4. Internamente el con D urante TCY3 se busca la cuarta instruccin
tador de programa (PC) se incrementa cada vez mientras se ejecuta la tercera (CALL S _ l).
que aparece Q l , la instruccin se busca en la me
moria de programa y se almacena dentro del re Cuando se ha terminado la ejecucin de la ter
gistro de instrucciones en Q4. Luego la instruc cera instruccin, la CPU hace que la direccin de la
cin se decodifica y se ejecuta durante el siguiente cuarta instruccin se lleve a la pila cambiando el
ciclo de Q l a Q 4. En la figura 8.2, se ilustra el contador de programa (PC) a la direccin de S _ l.
flujo de la ejecucin de una instruccin. Esto significa que la instruccin que se busc du
rante TCY3, debe ser nivelada desde el pipeline.
Un ciclo de instruccin est formado por cua
tro ciclos Q ( Q l, Q2, Q3 y Q 4). La operacin de Durante TCY4 se nivela la cuarta instruc
bsqueda requiere de un ciclo de instruccin mien cin (se ejecuta como un N O P: instruccin de
tras hace la decodificacin y la operacin de ejecu no operacin) y se busca la instruccin ubicada
cin toma otro ciclo de instruccin. Debido al en la direccin S _ l. Finalmente, durante TCY5,
manejo que se le hace a las instrucciones {pipeline), se ejecuta la quinta instruccin y se busca la ins
cada instruccin se ejecuta efectivamente en un ci truccin presente en la direccin S_1 + 1.
clo. Si una instruccin hace que el contador de pro
grama se modifique, (por ejemplo un GOTO) en Formato general de una instruccin
tonces se requiere de un ciclo extra para completar Las instrucciones en los microcontroladores PIC de
la instruccin, ver ejemplo 1. rango medio pueden ser clasificadas segn cuatros
formatos generales, como se muestra en la figura 8.3.
La operacin de bsqueda de la instruccin Los cdigos operativos (opcodes) de las instrucciones
empieza en Q l incrementado el contador de pro varan entre 3 y 6 bits. Este tamao variable de los
grama. En el ciclo de instruccin, la instruccin opcodes permite establecer 35 instrucciones.

TCYO TCY1 TCY2 TCY3 TCY4 TCY5


Reloj de las instrucciones
Busca 1 Ejecuta 1
C ad a ciclo de in stru cci n (T C Y )
Busca 2 Ejecuta 2
co m prend e cuatro ciclo s Q ( Q l-
Busca 3 Ejecuta 3
Q 4). El tiem po del ciclo Q es el m is
mo que el ciclo de tiem po del osci
I. MOVLW55h Busca 4 Nivelar
2 MOVWF PORTB lador del dispositivo (T O SC ). Los
3. CALLS 1 Busca S_1 Ejecuta S_1
4. b a r rU n lA , o lla (Forcea NUP) ciclos Q son los que dan la pauta
Busca S _1 +1
5. Instrucciones en la direccin S 1 para la ejecucin de cada uno de los
Ejem plo 1 Secuencia de bsqueda y ejecucin de las instrucciones procesos de decodificacin, lectura,
M: *
< M IK < IIT s . Curso prctico sobre Microcontroladores
Teora

Operaciones de registro orientadas a Byte


13 8 7 6 0

Cdigo operativo n i f (Archivo #) d = 0 para que W sea el destino final del resultado
d = 1 para que f sea el destino del resultado
f = 7-b it registro de la direccin de un archivo
Operaciones de registro orientadas a b it
13 10 9 7 6 0
Cdigo operativo b (BIT #) f (A rchivo #) b = 3-b it posicin de un b it (3 bits}
f = 7-b it registro de la direccin de un archivo
Operaciones de control
13 8 7 0

Cdigo operativo k (literal) K = valor literal (8 bits)

CALL y GOTO nicam ente


13 11 10 0
Cdigo operativo k (literal) K =valor literal (11 bits)

Figura 8.3 Formato general de una instruccin

procesamiento de datos, escritura, etc., de cada cin del dispositivo. Muchas de estas instruccio
ciclo de instruccin, figura 8.4. nes operan sobre la memoria de datos para lo cual
se requiere de la unidad aritmtico lgica (ALU,
Los cuatro ciclos Q que conforman un ciclo A rithm etic L ogical Unit). Para llevar a cabo las ope
de instruccin (TCY) se pueden generalizar as: raciones aritmticas y lgicas, la ALU controla los
bits de estado (los cuales se localizan en un regis
Q l: Ciclo de decodificacin de la instruccin tro especial denominado registro de estado). El re
Q 2: Ciclo de lectura de datos de la instruccin sultado de algunas instrucciones obligan a los bits
Q 3: Procesamiento de datos de estado a cambiar su valor, dependiendo del re
Q 4: Ciclo de escritura de datos de la instruccin sultado de la operacin.

Conjunto (Set) de instrucciones La CPU puede considerarse como el cere


Los cdigos de mquina o conjunto de instruc bro del microcontrolador. Ella es la responsable
ciones que la C PU reconoce, se muestran en la de buscar la instruccin correcta que se va a eje
tabla 1 (al igual que los nemnicos que el progra cutar, decodificarla y ejecutarla. En algunas oca
m a ensamblador usa para generar estos cdigos). siones, la C PU trabaja en conjunto con la ALU
para completar la ejecucin de la instruccin (en
La ALU y ia CPU los casos que se efecten operaciones lgicas o
La unidad central de proceso (CPU) es la respon aritm ticas). La CPU controla el bus de direccio
sable de utilizar la informacin de la memoria de nes de la memoria de programa, el bus de la m e
programa (instrucciones) para controlar la opera m oria de datos y el acceso a la pila.

Q1 1 Q2 i Q3 i 04' Q1 i 02' Q3' 04' Q1 ' 02 ' Q3 ' 04'

T0SC
uiT uiT U T rnT ruljU ^i
TCY1 TCY2 TCY3

Figura 8.4 Ciclos Q

Curso prctico sobre Microcontroladores


Arquitectura de los microcontroladores PIC

Operaciones orientadas a registros

Nemotcnico Operacin Ciclos Cd. de operacinEstados


msb Isb afectados
ADDWF f.d Sumar W y f 1 00 0111 dfff ffff C.DC.Z
ANDWF f,d AND entre W y f 1 00 0101 dfff ffff Z
CLRF f Limpiar f 1 00 0001 1fff ffff z
CLRW Limpiar w 1 00 0001 o xxx x x x x z
COMF f,d Complementar f 1 00 1001 dfff ffff z
DECF f.d Decrementar f 1 00 0011 dfff ffff z
DECFSZ f.d Decrementar f, 1 (2 )
saltar si cero 00 1011 dfff ffff
INCF f.d Incrementar f 1 00 1010 dfff ffff z
INCFSZ f.d Incrementar f, 1 (2 )
saltar si cero 00 1111 dfff ffff
IORWF f.d OR entre W y f 1 00 0100 dfff ffff z
MOVF f.d Mover f 1 00 1000 dfff ffff z
MOVWF f Mover W a f 1 00 0000 1fff ffff
NOP No operacin 1 00 0000 oxxo 0000
RLF f.d Rotar a la izquierda 1
a travs del carry 00 1101 dfff ffff c
RRF f.d Rotar a la derecha 1
a travs del carry 00 1100 dfff ffff c
SUBWF f.d Restar W de f 1 00 0010 dfff ffff C,DC,Z
SWAPF f.d Intercambiar nibbles de f 1 00 1110 dfff ffff
XORWF f.d OR exclusiva entre W y f 1 00 0110 dfff ffff z

Operaciones orientadas a bits

BCF f.b Limpiar bit b de f 1 01 OObb bfff ffff


BSF f.b Activar bit b de f 1 01 01 bb bfff ffff
BTFSC f.b Probar bit b de f, 1 (2)
saltar si es cero 01 10bb bfff ffff
BTFSS f.b Probar bit b de f, 1 (2)
saltar si es uno 01 11 bb bfff ffff

Operaciones literales y de control

ADDLW k Sumar literal k a W 1 11 111X kkkk kkkk C,DC,Z


ANDLW k AND entre k y W 1 11 1001 kkkk kkkk Z
CALL k Llamar subrutina 2 10 Okkk kkkk kkkk
CLRWDT Limpiar WDT 1 00 0000 0110 0100 TO,PD
GOTO k Salta a direccin k 2 10 1 kkk kkkk kkkk
IORLW k OR entre k y W 1 11 1000 kkkk kkkk Z
MOVLW k Cargar a W con literal k 1 11 ooxx kkkk kkkk
RETFIE Retornar de interrupcin 2 00 0000 0000 1001
RETLW k Retornar y cargar a W con k 2 11 01XX kkkk kkkk
RETURN Retornar de subrutina 2 00 0000 0000 1000
SLEEP Ir al modo de bajo consumo 1 00 0000 0110 0011 TO,PD
SUBLW k Restarle k a W 1 11 110X kkkk kkkk C,DC,Z
XORLW k OR exclusiva entre k y W 1 11 1010 kkkk kkkk Z
Tabla 1 Conjunto de instrucciones de los microcontroladores PIC de rango medio

*
78 @ M IK IIW *.a. Curso prctico sobre Microcontroladores
Teora

Literal en 8 bits operaciones aritm ticas utilizan el mtodo n u


(palabra de instruccin) Registro
m rico del com plem ento a dos. En in stru c
ciones que m anejan dos operandos, n o rm al
m ente un operando es el registro de trabajo
(denom inado W ) y el otro operando es un re
gistro o una constante, f i g u r a 8 . 5 .

El registro W es un registro no direcciona-


ble de 8 bits utilizado para las operaciones de la
ALU. Dependiendo de la instruccin que se va a
ejecutar, la ALU puede afectar los valores de los
bits ca rry (C ), d ig it ca rry (D C ), y zero (Z) del
registro de estado. Los bits C y D C, indican el
momento en que en una operacin de substrac
Figura 8.5 Operacin de la ALU y el registro W
cin se da un caso de llevo o tomo prestado.

Unidad aritm tica lgica (ALU) Los datos de la memoria RAM interactan
Los microcontroiadores PIC contienen una ALU con las palabras de instruccin al llegar a la ALU.
y un registro de trabajo de 8 bits. La ALU es la uni Dependiendo del valor de d en la correspondiente
dad lgica y aritmtica la cual desarrolla operacio instruccin, el resultado final se dirige a w o al
nes aritmticas y funciones booleanas entre los da registro de la RAM , f.
tos del registro de trabajo y cualquier registro.
El registro de estado
La ALU es capaz de hacer sum as, restas, El registro de estado, f i g u r a 8 . 6 , contiene el esta
desp lazam ien to s y op eraciones lgicas. Las do aritm tico de la ALU, el estado del proceso

Registro: STATUS

IRP RP1 RPO T0 PD Z DC C

bit 7 bitO

D ireccin: 03h
C ondicin de reset. 000??XXX

IRP: Selector de pgina para direccionamiento indirecto


Este b it no se utiliza efectivamente en el PIC16F84, por lo que se puede utilizar como un b it
de propsito general.
RP1,0: Selectores de pgina para direccionamiento directo.
Solamente RPO se utiliza en el PIC16F84. RP1 se puede utilizar como un b it de propsito general.
T0: Time Out o B it de finalizacin del temporizador.
Se coloca en 0 cuando el circuito de vigilancia Watchdogfinaliza la temporizacin.
PD: Power Down o B it de bajo consumo. Se coloca en 0 por la instruccin SLEEP.
Z: Zeroo Bit de cero. Se coloca en 1 cuando el resultado de una operacin lgica o aritmtica es cero.
DC: Digit Carry o B it de acarreo de dgito. En operaciones aritm ticas se activa cuando hay
acarreo entre el /f 3 y e l 4.
C: Carry o B it de acarrreo. En instrucciones aritmticas se activa cuando se presenta acarreo
desde el b it ms significativo del resultado.

Figura 8 .6 Registro de estado

Curso prctico sobre Microcontroiadores m m iK H W s .


Arquitectura de los microcontroladores PIC

de reinicializacin y los bits de seleccin de los Es recomendable que solo se utilicen las ins
bancos de memoria. Este concepto se estudiar trucciones BCE BSF, SWAPF y M O VW F para
en la siguiente leccin: La memoria en los m i alterar el registro de estado, ya que estas instruc
crocontroladores PIC. ciones no afectan los bits z, D C o C . En la tabla
1 se muestran otras instrucciones que no afectan
El registro de estado puede servir para almace los bits de estado.
nar los datos de una instruccin, es decir, puede
trabajar como cualquier otro registro. Si el registro El registro OPCIN
de estado sirve de destino para una instruccin que Este es un registro fundam ental para estable
afecte los bits C, DC o Z, entonces se deshabilita la cer las condiciones con las que va a trabajar nues
escritura en estos tres bits. Esos son puestos en uno tro program a. En l podemos llevar a cabo ope
o en cero de acuerdo a la lgica del dispositivo y a raciones de lectura y escritura. C ontiene varios
las operaciones que ejecute. De hecho, los b its TO bits de control que configuran mdulos como
y PD no son escribibles. los tem porizadores, las interrupciones y las re
sistencias d e p u ll-u p internas del m icrocontro
El resultado de una instruccin que tenga lador, figura 8.7 .
como destino el registro de estado, puede arrojar
un resultado distinto al esperado. Por ejemplo, si Los bits PSA, PSO, PS1, PS2, INTDEG y RTS
se ejecuta la instruccin CLRF ESTADO se bo configuran el funcionamiento del temporizador
rrarn los tres bits ms significativos y Z se pon interno (esto lo estudiaremos ms adelante), el
dr en uno. Esto deja al registro de estado con b it RBPU perm ite que habilitemos una resisten
OOOn nl nnn (donde n significa: no cambia). cias de p u ll-u p internas conectadas al puerto B.

Registro: OPTION (OPCIN)

RBPU IN TED G R TS R TE PS A PS2 PS1 PSO

bit 7 bitO

D ireccin: 81 h
C ondicin de reset. 11111111b

RBPU: PortB Pull-up Enable o Habilitacin de pull-up del puerto B.


0: habilita las p ull-ups internas
1 : las deshabilita
INTEDG: !N T Interrupt Edge Selecto Selector de flanco de la interrupcin INT Valor TMRO WDT
0: flanco de bajada
000 12 1:1
1: flanco de subida
RTS: TMRO Slgnal Source o Fuente de seal de TMRO. 001 14 1:2
0: ciclo de instrucciones interno (Temporizador) 010 18 1:4
1: transicin en el pin RA4/T0CK (Contador) 011 1 16 1:8
RTE: TMRO Signal Edge o Flanco de la seal TMRO
0: incremento en transicin de bajo a alto
100 1 32 1:16
1: incremento en transicin de alto a bajo 101 1 64 1:32
PSA: Prescaler Assignm ent o Asignacin del preescalador 110 1 128 1:64
0: TRMO (Contador/Temporizador)
111 1 256 1:128
1: WDT (Circuito de vigilancia)
PS2,1,0: Prescaler Valu o Valores del preescalador.

Figura 8 . 7 Registro OPCIN

M IK < IIW Curso prctico sobre Microcontroladores


LA MEMORIA EN LOS
MICROCONTROLADORES PIC
C onocer cm o est estructurada la m em o
ria dentro de los m icrocontroladores es un
paso fundam ental para desarrollar aplicacio
nes ptim as y aprovechar al m xim o lo que
estos circuitos integrados nos pueden ofre
cer. En esta leccin analizarem os la disposi
cin y manejo de las memorias RAM y RO M
internas de los m icrocontroladores PIC.
I *
Curso prctico sobre Microcontroladores ( m iK C H T s . 81
La memoria en los microcontroladores PIC

Podemos resear dos bloques principales en Von N eum ann, una m em oria de program a de
los que se divide la memoria en los microcontro 8K puede llegar a tener slo alrededor de 4K
ladores PIC: la memoria de programa (RO M ) y para alm acenar instrucciones.
la m emoria de datos (RAM ). Tambin existe una
m em o ria m u y im p o rta n te d e n o m in a d a la La memoria de programa en los microcon
EPROM de datos; ella ser tema de estudio en troladores PIC se divide en cuatro pginas de 2K
la siguiente leccin. Como vimos en la leccin cada una (0h-7FFh, 800h-FFFh, 1000h-17FFh,
anterior, cada bloque cuenta con su propio bus y 1800h-1 FFFh), figura 9.1. Dependiendo de la
de acceso, de manera que ambos pueden consul referencia del microcontrolador PIC, se determ i
tarse durante un mismo ciclo del reloj. na qu porciones de este mapa de memoria po
see internamente. Para ello debe referirse a la hoja
La memoria de datos, a su vez se divide en de datos del PIC especfico con el fin de estable
dos bloques: los registros de propsito general cer su memoria disponible.
y los registros de funciones especiales (SFR :
S p ecia l F unction Registers). Los registros de pro Para saltar entre las pginas de la m em o
psito general son los que el usuario tiene a su ria de program a, se deben m od ificar los bits
disposicin para ubicar las distintas variables de alto s del contador de program a (P C ). Esto se
su programa, mientras que los registros SFR con hace escribiendo el valor deseado en un re
trolan muchas funciones del microcontrolador y gistro SFR denom inado PCLATF1 ( P rogram
de sus mdulos perifricos. C ou n ter L atch H igh). Sin em bargo, si se eje
cu tan in strucciones secuen cialm ente el con-
El contador de programa
El contador de programa (PC) es un registro de
PC<12:0>
13 bits que especifica la direccin en la memoria
de programa de la instruccin que debe buscarse
para ser ejecutada. El byte bajo del PC se deno
m ina registro PCL y sobre l se pueden realizar
procesos de lectura y escritura. El byte alto se co
noce como registro PCH , contiene los bits 8 al
12 <12:8> del P C y no puede leerse ni escribirse Nivel 1 de la pila
de manera directa.
Nivel 8 de la pila

La memoria de programa
Reset vector OOOOh
El contador de program a de los m icrocontrola
dores PIC de rango medio puede direccionar
8K 6K 4K 2K
Vector de interrupcin 0004h
un espacio en la m emoria de program a hasta de
Memoria de programa 0005h
8K y 14 bits de longitud. Com o todas las ins
(Pgina 0) 07FFh
trucciones son de palabra sim ple, un dispositi 0800h
Memoria de programa
vo que posea una m em oria de program a de 8K (Pgina 1)
OFFFh
x 14 bits tiene espacio para albergar 8K en ins Memoria de programa 10OOh
trucciones. Esto facilita al usuario establecer si (Pgina 2) 17FFh
un dispositivo tiene suficiente memoria d e pro Memoria de programa 10OOh
(Pgina 3)
gram a para una aplicacin determ inada. Esta 1 FFFh
aclaracin es im portante hacerla debido a que,
al trabajar en un dispositivo de C PU C IS C y
Figura 9.1 Memoria de programa

;.a. Curso prctico sobre Microcontroladores


Teora

Direccin
a) En dispositivos hasta de 2K de memoria de programa hexadecimai Memorja de nr0qrama
000

12 10 2K" direcciones
3A5
Contador de X X 0 1 1 1 0 1 0 0 1 0 1 (1 1 -M rango de direcciones)
programa
1---------- II--------------- 1 J

7FF

Direccin
b) Dispositivos hasta de 4K de memoria de programa hexadecimai Memoria de programa
000

12 11
Contador de
X 1 0 1 1 1 0 1 0 0 1 0 1
programa
1 II I I ----------- 1
4K" direcciones
(1 2 -M rango de direcciones)

Fig ura 9.2 Trabajo del contador de programa a l acceder a la memoria de programa

tad o r de program a puede lleg ar a sobrepasar Este ltimo tipo de microcontroladores utiliza
los lm ites de la pgina sin n in gu n a in terven un contador de programa de 13 bits, permitiendo
cin del usuario. Todas las actualizaciones que manejar hasta 8K de memoria de programa sin cam
se hacen sobre el registro PC H afectan in m e biar para nada la estructura de la CPU . Los disposi
d iatam en te al registro PC LA TH . Para dispo tivos de 2K o 4K ignoran los bits ms significativos
sitivos con m enos de 8K el acceso a una posi del contador de programa durante los procesos de
cin por encim a de las establecidas fsicam en bsqueda en la memoria de programa.
te originar u n a sobreposicin. Esto es, en un
d is p o sitiv o de 4K a c c e d e r a la d ire c c i n Existen dos direcciones dentro de la memoria
17FFh en realid ad d ireccio n a la 7F F h. D is de programa que reciben un trato especial por par
positivos de 2K o m enos no requieren pagi te de la CPU. Cuando la CPU inicia su operacin
nar la m em oria de program a. desde su estado de reset, su contador de programa
automticamente toma el valor de cero. Esta direc
Una m emoria de programa de 2K slo nece cin se denomina v ecto r d e reset debido a que a ella
sita de un contador de programa de 11 bits para llegar la ejecucin del programa cuando ocurra un
acceder a cualquier direccin (2 " = 2048 = 2K), estado de reset.
figura 9.2a. U n microcontrolador con una me
m oria de programa de 4K necesita de un conta En este punto se borrar el contenido del registro
dor de programa de 12 bits, figura 9.2b. PCLATH. Esto significa que cualquier salto hacia la

Curso prctico sobre Microcontroladores


La memoria en los microcontroladores PIC

Direccin
hex.
Memoria de programa SERVICIO_INTERRUP se puede asignar a esta
000 I goto PRINCIPAL posicin para que la CPU salte a una subrutina don
de se establezca qu hacer al aparecer la interrupcin,
001
la cual puede estar en cualquier punto del espacio de
002
la memoria de programa.
003
004 goto SERVICIOJNTERRUP Como veremos ms adelante una de las tc
005 nicas ms utilizadas dentro de los microcontro
Tablas ladores es el manejo de tablas. Dentro de la me
moria de programa es conveniente ubicarlas en
Fin de las tablas
PRINCIPAL el rango de direcciones de 005H a OFFH; estas
Programa PRINCIPAL 250 posiciones son ms que suficientes para la
y sus subrutlnas
m ayora de las aplicaciones.
SERVICIO,
Servicio de Interrupcin El programa PRIN CIPAL inicia su ejecu
INTERRUP
y sus subrutlnas
Fin del cin cuando el PIC sale del estado de reset y
cdigo contina funcionando hasta que una de las fuen
tes de interrupcin ha aparecido y requiere aten
F ig ura 9.3 Ubicacin en la memoria de programa
cin inm ediata; en ese momento la ejecucin
direccin del vector de reset (Oh) llevar a la pgina 0 del program a PRIN CIPAL se suspende tem po
de la memoria de programa. Esto lo podemos apreciar ralm ente. La C PU empieza a ejecutar la subru
en la figura 9.3, donde el contenido de la direccin tina del servicio de interrupcin cuando se car
OOOH es la instruccin goto PRINCIPAL. ga autom ticam ente el contador de programa
con 004H . C uando se completa la ejecucin del
La segunda direccin especial es la 004H, la que servicio de interrupcin, la C P U retorna al m is
se carga automticamente en el contador de progra mo punto donde abandon la ejecucin del pro
ma en el momento en que ocurre una interrupcin. gram a PRINCIPAL.
Esta direccin se conoce como vector d e interrupcin.
Cuando el PC toma la direccin del vector de inte La escritura de programas se complica un
rrupcin, el registro PCLATH no se modifica. Como poco cuando entre el cdigo principal, tablas,
se muestra en la figura 9.3, una instruccin goto subrutinas e interrupciones, se ocupa ms de 2K.

Memoria de programa

Micros
de 2K
(rango
de dire
cciones
de 11
bits) M icros de 4K (rango de
direcciones de 12 b its)

Figura 9.4 Direccionamiento usado p o r llamado a subrutinas

.a. Curso prctico sobre Microcontroladores


Teora

Como se muestra en la figura 9 .4 , los bits 0 parte ni de la memoria de programa ni de la me


al 10 de la instruccin cali se cargan dentro del m oria de datos y para acceder a sus posiciones se
contador de programa y los bits 4 y 3 del registro utiliza un registro especial conocido como pun
PCLATH se cargan en los bits 11 y 12 del conta tero a la pila (stack p o in ter ), en el cual no puede
dor de programa. M ientras la memoria de pro escribirse ni leerse.
gram a utilizada sea menor a 2K los bits 4 y 3 del
PCLATH pueden ser dejados en 00H , de m ane Los PIC de rango medio poseen una pila (en
ra que los 11 bits de direcciones en la instruccin hardw are) de 8 niveles y 13 bits de ancho; esto
cali identificarn la direccin de inicio de cual quiere decir que perm ite la combinacin de has
quier subrutina ubicada hasta la direccin 7FFH. ta 8 llamados de subrutinas e interrupciones.

Para programas de ms de 2K es necesario El contador de programa es puesto en la pila


asegurarse de que el b it 3 del PCLATH se ponga cuando se ejecuta una instruccin de llam ada a
en cero o en uno de acuerdo a la porcin de la subrutina CALL o cuando aparece una interrup
memoria de programa que estemos utilizando, cin. El valor presente en la pila es rescatado cuan
cada vez que se llam a una subrutina. La instruc do se ejecuta una instruccin de retorno como
cin GOTO tambin tiene un campo de direc RETURN , RETLW o RETFIE. En ninguno de
ciones de 11 bits y requiere un tratamiento idn estos dos casos se modifica el PCLATH.
tico, ver figura 9.5.
Despus de que la pila se ha almacenado en
ORG 0 x 5 0 0 ocho ocasiones, el noveno almacenamiento so-
BSF PC LATH ,3 ; S e le ccio n o p g in a l(8 00 h-F F F h ) breescribe el valor que fue almacenado en la pri
CALL SUB1_P1 lla m o s u b ru tin a u bicad a en la
mera ocasin. El dcimo alm acenam iento so-
p g in a l ( 8 0 0 h -F F F h )
breescribir el valor almacenado en la segunda
ORG 0 x 9 0 0 ocasin, como se muestra en la figura 9.6. Es
S U B 1 .P 1 : s u b r u t in a lla m a d a e n l a im portante resaltar que no existe ningn b it en
p g in a 1 C 8 0 0 h -F F F h ) el registro de ESTADO que nos indique cuando
se ha llenado la pila, de manera que es labor del
RETURN r e t o r n o a l lla m a d o de l a programador verificar que dentro del programa
s u b r u t in a en l a p g in a 0
no se hagan ms llam adas a subrutinas que las
;(0 0 0 h -7 F F h )
soportadas por el microcontrolador.
Figura 9.5 Ejemplo del llamado de una subrutina en la pgina 1 PILA
desde la pgina 0 -i
IV IV G I 1 ___Dcimo 0 Sobreescribe
1
U IIIILU U U M nivel nivel 1
La pila (stack) t
M iw^.1 O
m v i ___Undcimo Sobreescribe
La pila es un espacio de memoria que contiene la utilizad0 nivel nivel 2
direccin de retorno antes de que ocurra un salto Nivel 3
dentro de la ejecucin de un programa. Al mo utilizado
Nivel 4
mento de ocurrir un salto dentro de un progra utilizado
ma en la pila se almacena la direccin en donde Nivel 5
se estaba llevando a cabo la ejecucin, tomando utilizado

el valor del contador de programa. De esta ma Nivel 6


utilizado
nera, la CPU cuando term ina de ejecutar la su
Nivel 7
brutina, puede consultar en la pila la direccin utilizado
de retorno para continuar con el desarrollo nor
1
m al del programa. El espacio de la pila no forma Figura 9 .6 Comportamiento de la pila

Curso prctico sobre Microcontroladores m u tu T s


La memoria en los microcontroiadores PIC

Comportamiento del Contador de Programa (P( i registro PCL ( y por consiguiente el PCLA-
La figura 9.7 muestra cuatro situaciones en don- TH<4:0> --> P C H ), el PCH no puede modifi-
de podemos estudiar el com portam iento del carse (escribirse) directam ente pero puede mo-
contador de program a (P C ). La situacin 1 dificarse cuando vara PCL, y cualquier modi-
m uestra como se carga el P C al escribir en el ficacin que sufra PCH se refleja inmediatam en
te en el P C L A T H . La situ aci n 2
S ituacin 1: instruccin con PCL como destino
m uestra como se carga el PC durante
Pila (13-bits x 8)
u n a in s tru c c i n G O T O (P C L A -
PCH PCL
12 0 Tope de la pila TH<4:3> --> PC H ) y vemos como los
bits 3 y 4 del PCLATH (establecidos
por el usuario) afectan el contenido del
5J_PCLATH<4:0> \ contador de program a. Como vimos
incorporando un anteriorm ente, de esta m anera accede
resultado de la ALU
en PCL mos a pginas superiores en la memo
PCLATH ria de program a. La situacin 3 mues
tra como se carga el PC durante una
S ituacin 2: comportamiento ante una Instruccin GOTO instruccin CALL (PCLATH <4:3> >
PCH PCL Pila (13-bits x 8)
P C H ), cuando el PC se ha cargado en
12 11 10 8 7 0 Tope de la pila
la cim a de la pila (stack) y como, al
igual que con la instruccin GOTO,
el PCLATH afecta al contador de pro
Incorporando un cdigo
grama. La situacin 4 muestra como
operativo en PCL < 1 0 :0 > se carga el PC durante una instruccin
de retorno (R E TU R N ), donde el PC
PCLATH
es cargado con el valor que hay en la
S ituacin 3: instruccin CALL cim a de la pila.
Pila (13-bits x 8)
Tope de la pila
En muchos programas en lenguaje
ensamblador es necesario construir ta
blas de datos para distintas aplicacio
nes. Uno de los mtodos ms comunes
Incorporando un cdigo
para acceder a estas tablas es sum ar un
operativo<10:0> valor determinado al contador de pro
grama (ADDW F PCL). Cuando invo
PCLATH
camos una rutina de tabla el PC toma
Situacin 4: comportamiento ante una instruccin de retron. esa direccin inicial y al sumarle un va
Pila (13-bits x 8)
lor fijo llega a la posicin de la tabla
PCH PCL ... , indicada por dicho nmero. En un caso
12 11 10 8 7 ' como ste, al sum arle un nmero de 8

bits, la tabla slo podr llegar hasta 256
i L I I posiciones de longitud.
11
----- 7*------
Incorporando un cdigo
operativo<10:0> C ualquier escritura que se haga so
PCLATH
bre el contador de programa (PCL), ori-
Figura 9 .7 Comportamiento de l contador de programa g inar Aue los 5 bits ba)os de PCLATH
se carguen en PCH.

Curso prctico sobre Microcontroiadores


Teora

La Memoria de Datos Los registros de propsito general representan


Como habamos mencionado anteriormente, esta el rea disponible para que el usuario almacene sus
memoria se divide en dos partes fundamentales: datos y desarrolle sus operaciones. Los registros con
el rea de registros con funciones especiales (SFR: funciones especiales controlan la operacin del dis
S pecial Function Registers) y el rea de registros de positivo; por ejemplo, poseen los puertos y los re
propsito general (GPR: G eneralPurpose Registers). gistros de control para establecer el funcionamien-

INDF OOh INDF 80h INDF 10Oh INDF 180h


TMRO 01 h 0PTI0N__REG 81 h 0P T I0N _R E G 101h 0PTI0N__REG 181 h
PCL 02h PCL 82 h PCL 102h PCL 182h
STATUS 03h STATUS 83h STATUS 103h STATUS 183h
FSR 04h FSR 84h FSR 104h FSR 184h
PORTA 05h TRISA 85h 105h 185h
PORTB 06h TRISB 86h PORTB 106h PORTB 186h
PORTC 07h TRISO 87h PORTF 107h PORTF 187h
PORTD 08h TRISO 88h PORTG 108h PORTG 188h
PORTE 09h TRISE 89h 109h 189h
PCLATH OAh PCLATH 8Ah PCLATH 10Ah PCLATH 18Ah
INTCON OBh INTCON 8Bh INTCON 10Bh INTCON 18Bh
PIR1 OCh PIE1 8Ch lOCh 18Ch
PIR2 ODh PIE2 8Dh 10Dh 18Dh
TM R 1L OEh PCON 8Eh 10Eh 18Eh
TM R1H OFh OSCCAL 8Fh 10Fh 18Fh
T1C 0N 10h 90h 11 0h 190h
TM R2 11h 91 h 111 h 191 h
T2C 0N 12h PR2 92h 11 2h 192h
SSPBUF 13h SSPADD 93h 11 3h 193h
SSPCON 14h SSPATAT 94 h 114h 194h
CCPR1L 15h 95 h 1 1 5h 195h
CCPR1H 16h 96 h 116h 196h
CCP1C0N 17h 97 h 117h 197h
ROSTA 18h TXSTA 98 h 118h 198h
TXREG 19h SPBRG 99 h 119h 199h
RCREG 1 Ah 9Ah 11 Ah 19Ah
CCPR2L 1 Bh 9Bh 11 Bh 19Bh
CCPR2H 1 Ch 9Ch 11 Ch 19Ch
CCP2C0N 1 Dh 9Dh 11 Dh 19Dh
ADRES 1 Eh 9Eh 11 Eh 19Eh
ADCONO 1 Fh ADC0N1 9Fh 11 Fh 19Fh
20h Registros de AOh Registros de 120h Registros de 1A0h
propsito propsito propsito
Registros de ge n e ral general general
EFh 16Fh 1 EFh
y i U|JUollU
g e n e ra l 170h 1 FOh
M apeado en Mapeado en Mapeado en
el Banco 0 el Banco 0 el Banco 0
70h - 7Fh<4) 70h - 7Fh<4> 70 h - 7Fh<4
7Fh FFh FFh 1 FFh
Banco 0 Banco 1 Banco 2 Banco 3

Figura 9 .8 Estructura general de la RAM

Curso prctico sobre Microcontroladores m iK <H Ts


to de cada uno de los pines como entrada o como gistros con el cual Banco Directo Indirecto
salida. Contienen tambin registros que permiten se va a trabajar. accedido (RP1:RP0) (RP1:RP0)

la entrada y salida de datos para la variedad de m 0 0 0


0
dulos del microcontrolador, como temporizadores, En general, 1 0 1
puertos seriales, conversores anlogo-digitales, etc. para mover valores
2 1 0
Tambin contienen bits de control que seleccionan de un registro ha 1
el modo de operacin de los mdulos del micro cia otro, el valor 3 1 1
controlador, al igual que pueden habilitar o desha debe pasarse a tra Tabla 9.1 C onfiguracin de los bits
bilitar su funcionamiento. vs del registro de RP Oy RP t
trabajo (W ). Esto
Estructura en bancos significa que para cualquier movimiento de datos en
La memoria de datos (RAM) de los microcontrola tre registros se requieren dos ciclos de instruccin.
dores PIC se ha dividido en cuatro bancos. Cada
uno de ellos contiene registros SFR y GPR. Para Toda la memoria de datos puede accederse di
poder trabajar con cualquiera de estos registros, hay recta o indirectamente. El direccionamiento direc
que estar ubicado dentro del banco correspondien to requiere de la configuracin de los bits RPO y
te. La conmutacin entre bancos requiere configu RP1. El direccionamiento indirecto requiere la uti
rar los bits RPO y RP1 del registro de estado (STA lizacin de un registro especial conocido como FSR
TU S <7:5>) de acuerdo a lo mostrado en la tabla {File Select Register) y el b it IRP {Indirect Register
9.1. La figura 9.8 muestra un mapa general de la Pointer) que hace parte del registro de estado. Me
RAM para los microcontoladores PIC, que corres diante ellos se puede acceder a los bancos 0,1,2 o 3
ponde a una organizacin estndar para todos los de la memoria de datos.
dispositivos de esta familia. Los 13
registros que se encuentran en 0 0 1 0 10 0
Direccin
hex Contenido del archivo
negrilla siempre se encontrarn 1 1
000
en cualquier dispositivo. Los 7/ RPO en el r
registro de
dems registros dependen de la estado
cantidad de perifricos que po Direcciones
3 0 0 1 0 10 0
sea el PIC; por eso conviene efectivas
L_ . _____ j i ----------------------- 1
mirar en las hojas de datos las hex

caractersticas de cada disposi


tivo en particular.
13
En la estructura de los
0 0 1 0 1 0 0
registros que se muestra en la 1 1
80
figura 9.8, se puede apreciar M R PO enel H
registro de
que ellos poseen direcciones estado 94
l
en 8 bits que van desde la di 9F
Direcciones 0 0 1 0 1 0 0
reccin 00H hasta la FFH. El efectivas
l_ II---------------- 1
modo de direccionamiento hex
directo utiliza slo 7 bits de
la instruccin para identificar
la direccin de un registro, el
octavo b it de la direccin FF
debe venir de un b it (RPO)
que selecciona el banco de re- Figura 9.9a Modo de direccionamiento directo

m a z u T s . Curso prctico sobre Microcontroladores


Teora

inform acin del cdigo


operativo cdigo la in stru ccin (OPCODE) son utilizados para
RP1 RPO 6 0 direccionar las posiciones de m em oria y los bits
RPO y R P 1 del registro de estado, pueden ser
I 1 L
Selector de banco Selector de la posicin utilizad o s para d ireccio n ar o seleccionar los
distintos bancos.
------------ 00 01 10 11
OOh
C ad a banco se extiende hasta 7FH (128
bytes). Las posiciones ms bajas de cada banco
M e m o ria de se reservan para los registros con funciones es
d atos peciales (SFR). D ebajo de los SFR se encuen-
7Fh tran ubicados los registros de propsito gene
7Fh
Banco 0 Banco 1 Banco 2 Banco 3 ral. Es de resaltar que algunos registros SFR
Figura 9.9b Esquema general del modo de direccionamiento directo del banco 0 se han puesto tam bin en otros
bancos (posiciones espejo) para facilitar su ac
En la fig u ra 9 .9 a se m uestra la utilizaci n ceso. En la fig u ra 9 .10 se m uestra un m apa de
del direccion am iento directo para acceder al m em oria de datos correspondiente a algunos
registro ubicado en la direccin 14H o 94H , m icrocontroladores PIC de 18 pines, en don
dependiendo del valor de RPO, y en la fig u ra de podemos apreciar algunos registros quema-
9 .9 b se m uestra un diagram a general de este nejan la ubicacin en espejo. Por ejemplo el re
tipo de d ireccio n am ien to , en el cual observa gistro de estado (STATUS) se encuentra ubica
mos como los 7 bits del cdigo operativo de do en las direcciones 03h y 83h. Direccionando
cualquiera de estas dos posiciones podemos ac
Direcciones Direcciones ceder y trabajar con dicho registro.
INDF OOh INDF 80h
D ireccionam iento indirecto
TMRO 01 h 0PTI0N_REG 81 h
Este m odo de direccio n am ien to sobre la m e
PCL 02h PCL 82h
m oria de datos es apropiado en casos donde
STATUS 03h STATUS 83h
las d irecciones de m em oria que se m anejan
FSR 04h FSR 84 h dentro de una in stru ccin no son fijas, es de
PORTA 05h TRISA 85h cir cuando se tiene el caso de que queram os
PORTB 06h TRISB 86h trab ajar con datos que se encuentren d is tri
07h PC0N 87h buidos a lo largo de varias posiciones de m e
ADC0N0/ 08h ADC0N1/ 88h m oria. En este caso el direccion am iento in
EEDATA12 EEC0N1121 d irecto nos b rin d a una m anera rpida de ac
ADRES/ ADRES/ 89h
ceder a todos esos datos, u tilizan d o un regis
09h
tro especial (F SR ) como ap un tad o r a la po si
EEADR(2) EEC0N2
cin en la m em oria de datos que se quiere
PCLATH OAh PCLATH 8Ah
acceder. C om o este ap un tad o r es un registro
INTC0N OBh INTC0N 8Bh
en R A M , sus contenidos pueden m odificarse
OCh 8Ch dentro del program a y de esta m anera ap u n
Registros de Registros de
propsito propsito
tar a m uchas posiciones d istin tas; esto puede
general131 general ser m u y til cuando trabajam os con tablas de
7Fh FFh datos ubicadas en la m em oria de program a;
Banco 0 Banco 1 un ejem plo de este m anejo lo podem os ap re
ciar en el proyecto 3 de este curso titulad o
Figura 9.10 Mapa de la memoria RAM de microcontroladores
PIC de 18 pines Aviso L um inoso con D iodos LED.

Curso prctico sobre Microcontroladores


Direccin
he*. Contenidos
00

Instruccin orientada a b it o a byte

nos dice que el


se usa como aputador
7F
80

1 0 0 1 0 1 0 0 - 94
1__________II----------------1
hex

L 4
L Aocesa cualquier posicin en todo
el espacio de direcciones

Fig ura 9.11 Modo de direccionamiento indirecto

En ese proyecto se escribi una serie de datos Si intentam os leer m anualm ente el regis
en diversas posiciones de la memoria de progra tro FSR, solo leeremos 00F1, y si intentam os
ma, los cuales deban ir mostrndose secuencial- escribir un dato sobre l, resultar un estado
mente en la pantalla de diodos LED. Para resolver de no operacin (N O P). Podemos generar d i
ese problema, simplemente se acudi al registro recciones hasta de 9 bits, concatenando el b it
FSR para que hiciera un recorrido por todas esas 1RP (STATUS <7>) con los 8 bits del registro
casillas y pudiramos tomar el dato. FSR, como se m uestra en la fig u ra 9 .1 2 .

En este m odo de direccionam iento, IRP Registro FSR o

la direccin (en 8 bits) del registro que se


va a acceder, se escribe en un registro es
pecial (FSR) que sirve de apuntador a Selector de banco Selector de posiciones

cualquier punto del mapa de m em oria


R AM . Despus de haber escrito en ese
registro, se puede consultar otro registro
especial llam ado INDF el cual acceder
el registro usando el contenido del FSR
com o apuntador a la posicin de m em o M em oria de
ria deseada por el operando, figu ra 9 .1 1 . datos

?Fh 7Fh
C u alq u ier instruccin que utilice el re Banco 0 Banco 1 Banco 2 Banco 3
gistro IN DF puede acceder al registro
apuntado por FSR. Figura 9 .1 2 Direccionamiento indirecto concatenando el b it IRP

Curso prctico sobre Microcontroladores


24LC01

Ctodo comn

AAAr-
A W -
READ f^ A r
READ/ A A A ^
WRITE

2N 3906

LA EEPROM DE DATOS EN LOS


MICROCONTROLADORES PIC
En la leccin anterior estudiam os los bloques
de m em oria R A M y R O M de los PIC. Ahora
estudiaremos la m em oria EEPROM de da
tos. Esta es un a m em oria que ocupa un blo
que separado de las dos anteriores y que ha
representado la solucin a muchos problemas
dentro del diseo electrnico. Al final habla
remos un poco de las m emorias seriales que
tam bin ocupan un lugar relevante en una
gran variedad de sistemas electrnicos.

Curso prctico sobre Microcontroladores


Hemos visto las distintas tecnologas que tie Tamao de la Rango de
nen los microcontroladores para su memoria de EEPROM de datos direcciones

programa: FLASH, EPROM, EEPROM, OTR etc. 64 Oh - 3fh


Una vez se ha programado un microcontrolador, 128 Oh - 7fh
independiente de su tecnologa, la memoria de pro 256 O h -ffh
grama puede ser considerada como una memoria
Tabla 10.1 Tamao de la EEPROM de datos y su rango de direcciones
ROM , ya que no podemos escribir sobre ella en el
transcurso normal del sistema, a pesar de que luego Algunos dispositivos programadores pueden
podamos retirarla del circuito y programarla nue grabar la m em oria EEPROM de datos. Esta
vamente. En muchos casos vamos a necesitar, por memoria puede ser leda o escrita durante la eje
ejemplo, recolectar datos del mundo exterior y al cucin del programa, siendo un bloque comple
macenarlos, para lo cual necesitaremos una memo tamente separado de la m em oria de programa y
ria en la cual podamos grabar los datos y tener la de los archivos de registros (RAM), y puede usarse
certeza que permanecern all y no se perdern. para almacenar cualquier tipo de datos.

Existen muchos dispositivos EEPROM dis El rango de direcciones de esta memoria es ac


ponibles en el mercado. Estos se pueden clasifi cedido colocando la direccin en un registro espe
car en tres tipos generales: EEPROM seriales, cial (EEADR) y comunicando los datos por medio
EEPROM paralelas y microcontroladores con de otro registro especial llamado EEDATA. Los da
EEPROM de datos internas, como por ejemplo tos son ledos o escritos en un byte al tiempo. Un
los P1C16F84, 16F870 y l6 F 8 7 X d e Microchip. slo bit n o puede ser ledo o escrito. Se usan cuatro
registros de funciones especiales para leer y escribir
Analicemos el funcionamiento y uso de las en la EEPROM de datos, los cuales se muestran en
memorias EEPROM que se encuentran en algu la tabla 10.2.
nos microcontroladores PIC y de las memorias Registro Direccin
EEPROM seriales, por ser estas ltimas m uy co
EEADR 0X09 ->direccin 8 del banco 0
munes en muchas aplicaciones.
EEDATA 0X08
EEC0N1 0X88 ->direccin 8 del banco 1
Memorias EEPROM internas EEC0N2 0X89
La memoria EEPROM de datos puede leerse y es
cribirse durante la operacin normal de un sistema. Tabla 10.2 Registros especiales para e l manejo de la
En esta memoria se pueden almacenar datos y va EEPROM de datos
riables para que no se pierdan cuando se desconec El tiempo de escritura es de aproximadamen
ta la alimentacin del sistema. Analizando los re te 10 milisegundos y es controlado por el tempo
querimientos de la aplicacin, puede ocurrir que rizador que hay dentro del circuito integrado. En
esta memoria sea suficiente y no se tenga que recu realidad ese tiempo resulta muy largo para la velo
rrir a memorias externas. cidad del procesador, por este motivo existen va
rios bits en otro registro especial denominado
Este tipo de memorias soportan hasta 1.000.000 EECON1 para supervisar la completa y correcta
de ciclos de escritura/borrado y pueden guardar la in terminacin del ciclo, figura 10.1. Analicemos los
formacin sin alterarla por ms de 40 aos. Esta me registros asociados al manejo de esta memoria:
moria no se encuentra en el espacio normal de archi
vos de registro; en lugar de eso, debe ser direccionada El registro de 8 bits EEADR es capaz
indirectamente a travs de registros especiales. En la de direccionar un mximo de 2 5 6 posiciones. El
actualidad los microcontroladores PIC lxxx ofrecen rango de direcciones utilizable lo podemos ver
hasta 256 bytes de memoria EEPROM; ver tabla 10.1. en la tabla 10.1.

< M /K//W s. Curso prctico sobre Microcontroladores


Teora

EEC0N1
lim pia cada vez que se enciende
el sistema. El b it W RE RR se pone
EEIF WRERR WREN WR RD
en uno cuando un ciclo de escri
RO: Lectura turase interrum pe por un reset de
1: Se pone en uno cuando se va a realizar un ciclo de lectura de la EEPROM. Luego
pasa a cero automticamente. bido al pin M C L R o al w atchdog.
Despus de un reset, por medio
WR: Escritura
1: Se pone en uno cuando se inicia un ciclo de escritura en la EEPROM. Cuando se de un program a, se puede che
completa el ciclo pasa a cero automticamente. quear el b it W R E R R y reiniciar
WREN: Permiso de escritura el ciclo interrum pido de escritu
1: Permite la escritura en la EEPROM
0: Prohbe la escritura ra. Las direcciones y los datos se
m antendrn sin cambios en los
WRERR: Sealizador de error de escritura
1: Se pone en uno cuando una operacin de escritura ha terminado prematuramente registros EEADR y EEDATA.
0: La operacin de escritura se ha completado correctamente.

EEIF: Sealizador de final de operacin de escritura Ciclo de lectura


1: Cuando este sealizador se pone a 1 indica que la operacin de escritura se ha
Se in icia un ciclo de lectura colo
completado con xito. Se pone a 0 por programa.
0: La operacin de escritura no se ha completado. cando la direccin que se va a ac
ceder en el registro EEADR y po
Figura 10.1 Registro de control de la EEPROM de datos
niendo el bit RD = 1 en el regis
Es un registro de 8 bits que se usa para tro EECON1. En el siguiente ciclo de instruc
pasar datos desde y hacia la memoria EEPROM cin, los datos estarn disponibles en el registro
de datos. EEDATA y permanecern all hasta que se reali
ce una nueva lectura o escritura en la EEPROM.
Este no es un registro fsico, sin em
bargo la direccin 0x89 es asignada a l. Al leerlo EEADR se localiza en el banco 0 (RAM ) y
todos sus bits son cero. Slo se emplea como un EECON1 en el banco 1, de m anera que se re
dispositivo de seguridad durante el proceso de quiere seleccionar cada banco dentro del cdi
escritura de la EEPROM, para evitar las interfe go, figura 10.2.
rencias en el largo intervalo de tiempo que preci Dileccin i leer en EEDR
sa su desarrollo. En l se escriben dos palabras de
control y forman parte del ciclo de escritura.
T
li al banco I
Este es el registro de control y tie
ne la funcin de controlar las operaciones en
la EEPROM; su distribucin de bits se muestra
en la figura 10.1, y su descripcin es la siguiente.

Los bits de control RD y W R inician la lec


tura y la escritura. Se deber tener en cuenta que Ir a l banco (I

estos bits slo pueden ser colocados en uno (no


se pueden colocar en cero) por softw a re para que
inicien el ciclo de escritura/lectura. Estos se lim
pian autom ticam ente al completarse un ciclo
de lectura/escritura.

Una operacin de escritura es vlida cuan


F ig ura 10.2 Diagrama de flujo del ciclo de lectura en la EEPROM
do el b it W REN se pone en uno. W RE N se
de datos

Curso prctico sobre Microcontroiadores m t:


La EEPROM de datos en los microcontroladores PIC

Ejemplo de lectura de la EEPROM: -MANEJO DE LA EEPROM


lis t p= 16c84
r a d ix hex
movlw direccin definir direccin a leer
movwf eeadr informar la direccin
al registro MAPEO DE MEMORIA
sta tu s equ 0 x 03
bsf status,rp0 banco 1 p o r tb equ 0x06
bsf eeconl.rd bit de lectura e e d a ta equ 0x08
eeadr equ 0x09
bcf status,rp0 banco 0 d i r e c c i n equ 0X0C
movf eedata.w datos hacia W b y te equ 0x0d
t r is b equ 0 x 86
eeco nl equ 0 x 88
eeco n 2 equ 0 x 89

Ciclo de escritura
MAPEO DE BITS
El ciclo de escritura comienza cargando en EEA- rd equ 0
wr equ 1
D R la direccin de la posicin que se va a escribir y w ren equ 2
rp 0 equ 3
con el registro EEDATA el valor que se va a grabar.
Despus se debe aadir una secuencia de instruc o rg 0x000
in ic to bsf s ta tu s ,r p 0 b a n c o 1
ciones que inician la escritura, en la cual participa movlw b 00000000' s a lid a s
movwf tr is b
el registro EECON2. Este registro, que en realidad bcf s ta tu s ,r p 0 b a n c o 0
c lr f p o rtb
no se halla establecido fsicamente, slo asume fun movlw B 00000010'
movwf b y te b y t e de
ciones de seguridad en el proceso cargndose en l p r u e b a a g r a b a r
movlw 0X00
dos valores concretos: 55H y AAH. El tiempo de movwf d ir e c c i n
c a li e s c r itu r a
estos pasos es un aspecto crtico, de manera que se bsf s ta tu s ,r p 0
recomienda que se siga esta secuencia. Las interrup e s c r c o m p le ta b tfs c e e c o n l,w r b y t e
e s c r it o ?
ciones deben deshabilitarse mientras se ejecuta este g o to
bcf
e s c r c o m p le ta
s ta tu s ,r p 0
procedimiento. El bit W REN en EECON1 debe c a li le c tu r a
m o s tr a r
movwf p o rtb
ponerse en uno para habilitar el WRITE. Esto pre c ic lo g o to c ic lo
d a t o en e l p u e r t o b

viene escrituras accidentales en la memoria EE


PROM de datos. El bit W REN debe ponerse en ie c tu r a movf d i r e c c i n ,w
to m a r d ir e c c i n
cero en todas las ocasiones, excepto cuando se eje movwf eeadr ;
d ir e c c i n h a c ia e e a d r
cuta WRITE, ver figura 10.3. bsf s ta tu s ,r p 0 b a n c o l
bsf e e c o n l .r d ; le e r
d a t o d e l a EEPROM
bcf s ta tu s ,r p 0
Al escribir un dato en esta memoria, se bo movf e e d a t a .w ;d a t a - > w
re tu rn ; r e t o r n a d a to
rra automticam ente el dato anterior y se graba e n w

e s c r itu r a movf d i r e c c i n ,w to m a
d i r e c c i n
Ir al banco 1 movwf eeadr
movf b y t e .w
movwf e e d a ta
b sf s ta tu s ,r p 0
b sf e e c o n l,w r e n
h a b ilit a e s c r itu r a
movlw 0x55
movwf eeco n2
movlw 0xaa
movwf eeco n2
b sf e e c o n l,w r WR -> 1
bcf e e c o n l,w r e n
; d e s h a b ilit a
e s c r itu r a
bcf s ta tu s ,r p 0 ; banco0
re tu rn

end
FUSIBLES:
MEMORIA DESPROTEGIDA
WATCHDOG DESHABILITADO
CRISTAL 4 MHZ
POWER UP TIMER ON

F ig ura 10.3 Diagrama de flujo del ciclo de escritura en la EEPROM Figura 10.4 Cdigo de ejercicio de lectura y escritura en la EEPROM

<.A. Curso prctico sobre Microcontroladores


Teora

Bufter 5V perm ite ahorrar pines del microcon


2803 trolador; al igual que ocupan poco
3300
15 RB4
10 espacio y consumen poca potencia.
j [> ~ v a h s -
16 RB3 Cuando se ha decidido por el uso
de este tipo de dispositivos, el paso
RB2 siguiente es seleccionar uno de los dos
protocolos posibles de comunicacin
RB1 con la EEPROM serial ( 2 o 3 hilos).

RBO
La eleccin de los dos hilos se
Figura 10.5 Diagrama esquemtico de lectura y escritura en la EEPROM de datos debe hacer para aplicaciones que re
quieran bus P C (este es un mtodo
el nuevo. El tiempo de escritura es controlado de comunicacin de datos serial que estudiare
por el temporizador (tim er 0) del PIC. Este tiem mos ms adelante), inm unidad al ruido y dispo
po puede variar segn las condiciones de voltaje nibilidad lim itada de pines. La eleccin de los
y temperatura, al igual que entre diversos tipos tres hilos es conveniente en casos de requerimien
de circuitos integrados. tos lim itados de protocolos, un protocolo SPI
(otro mtodo de comunicacin serial), alta fre
Al com pletar el ciclo de W RITE, el b it W R cuencia de reloj o en aplicaciones de 16 bits.
se pone en cero automticam ente y se activa la
bandera de escritura completa en EE. El progra En este grupo se encuentran
m a puede detectar si el ciclo de W RITE se ha los dispositivos con la nomenclatura 93XXXX.
cum plido habilitando esta interrupcin, m iran En ellos se requieren cuatro pines.
do la bandera EEIF o el b it W R . Los bits EEIF y
W REN deben ser limpiados por programa. En Bus de dos hilos La nomenclatura comn es
la figura 10.4 vemos un ejemplo de manejo de 24XXXX y 85XXXX, ver tabla 3. El protocolo
lectura y escritura en la EEPROM y su diagrama P C utiliza comunicacin bi-direccional maestro/
esquemtico se ve en la figura 10.5. esclavo. Tanto el maestro como el esclavo pue
den operar como transmisor o como receptor.
Una buena precaucin consiste en verificar La operacin del bus debe ser m anejada por el
si la escritura de la EEPROM ha sido correcta, maestro, quien genera la seal de reloj serial y las
para lo cual se suele restar el dato escrito con el condiciones de inicio de detencin.
que existe en el registro EEDATA. Si no se ha
producido error, el sealizador Z pasa a valer 1. Estas m em orias tienen un pin o term inal
llam ado SC L que recibe los pulsos generados
Memorias EEPROM seriales por el m aestro, y otro llam ado SDA que m a
La tecnologa de las memorias seriales ha surgi neja el flujo de datos bidireccionalm ente. Este
do como una solucin para sistemas que requie dispositivo no requiere de un pin habilitador,
ren bajo tamao y poca potencia. Entre sus prin ya que en este esquem a la transferencia de in
cipales ventajas se cuentan: form acin slo SE puede in iciar cuando el bus
est libre. C ada m em oria tiene su direccin de
Se pueden conectar fcilmente con micropro term inada m ediante los pines A 0, A l y A2; en
cesadores o microcontroladores, incluso algu una red slo responder la m em oria cuya d i
nos de ellos tienen pines dedicados a esa labor. reccin coincida con la direccin que va enca
Transferencia de datos de manera serial, lo que bezando la tram a de inform acin.

Curso prctico sobre Microcontroladores


FOTR!
ROM de datos en los microcontroladores PIC

+5V +5V
24LC 01
1 +5V +5V
AO vcc
2
A1 WP ti4 1 16
3 VDD 2
A2 SCL RB7 RA3 B VCC a C todo c o m n
-W v -
4 VSS SDA R 86 RA2 1 2 b V A -
18 1 c
RB5 RA1 w v ~
I I
17 7 cg d
RB4 RAO
V W -
RB3 3
(O
o e

f
- 'W v
f
________
i
RB2 - W v
14 . . .
RB1 D_ 9 . \ ,
6N D
RBO

MCLR 4

0SC 1

0SC2
VSS

1 20pF

Figura 10.6 Ejemplo del manejo de una memoria serial

Cuando un microcontrolador desea entablar m uestra en el disp lay se va a alm acenar sim ul
comunicacin con la memoria, debe enviarle una tneam ente en una m em oria 24L C 01. En este
serie de bits que lleven la siguiente informacin: caso, los pines de la direccin se conectaron a
l.S e enva el b it de arranque tierra, al igual que el pin WP. La resistencia de
2. El cdigo 1010 (propio de estas memorias) 4 .7 Kohm conectada al pin SD A es necesaria
3. La direccin del dispositivo (A2, A l, A0) dado que dicho pin tiene salida de colector
4 . Un b it que indica que se desea escribir (0 ) en abierto. El disp lay se conecta al puerto A y el
la memoria pulsador al pin RBO, figuras 10.6 y 10.7.

D espus de esto, la m em oria debe enviar El programa lleva el control de la cuenta deci
un reconocim iento para inform arle al m icro mal y almacena en la memoria el mismo dato que
controlador que recibi la inform acin. D i se enva al display. El cdigo de este ejercicio est
cha seal, llam ad a ACK , consiste en poner el disponible en nuestra pgina en la internet, en el
bu s en un nivel bajo (lo hace la m em oria). enlace Curso prctico sobre microcontroladores.
D espus el m icrocontrolador debe en viar los
b its que corresponden a la posicin de m e
m oria que se quiere leer o escribir; nuevam en
te la m em oria enva un reconocim iento. El
paso sigu ien te depende de la operacin que
se vaya a ejecutar.

Ejemplo de aplicacin
En este ejem plo se har un contador de 0 a 9
con un interruptor pulsador y un display de sie
te segmentos, figura 10.6. El nmero que se Figura 10.7 Montaje del ejercicio

m jK fV s . Curso prctico sobre Microcontroladores


LECCIN 11

INTERRUPCIONES EN LOS
MICROCONTROLADORES PIC
U n a de las herram ientas ms tiles que
nos proporcionan los m icrocontrolado
res es la posibilidad de m anejar inte
rrupciones. Las tcnicas disponibles
para m anejarlas deben entenderse m uy
bien para poder aprovechar al m xim o
los recursos y po sib ilidades que nos
pueden brin dar estos dispositivos.

Curso prctico sobre Microcontroladores d c E J C lT .


Interrupciones en los microcontroladores PIC

Una interrupcin es un evento que obliga a origina un estado de reset (o estado de volver a
un sistema procesador a desatender por un mo inicializar el sistema), el C on ta d or d e P rogra m a
m ento la accin que se encuentre ejecutando dirige la CPU a la direccin 000H ; un programa
dentro del desarrollo normal de un programa y que incluya interrupciones generalmente se es
llam ar a una su b ru tin a , la cual usualm ente se tructura como se muestra en la figura 11 .1 .
denom ina ru tin a o servicio de interrupcin.
ORG 000H

Las fuentes de interrupcin ms utilizadas GOTO M A IN


ORG 004H
incluyen cam bios de nivel, flancos de subida o
GOTO IN T _ S E R V
de bajada en algunos pines y desbordes en los M A IN :
tempo rizado res, es decir, cuando se llenan com p ro g ra m a p r in c ip a l
pletam ente (FFH ) y pasan de nuevo a 00H .
La cantidad y el tipo de interrupciones depen IN T _ S E R V :

den de cada referencia de m icrocontrolador; ; r u t in a de in t e r r u p c i n

la lista es la siguiente:
Figura 11.1 Ubicacin norm al de la rutina de interrupcin

Por el pin IN T (denom inada interrupcin ex A l retornar a la direccin donde se en


terna). Es cuando al microcontrolador ingresa contraba antes de la in terru p ci n , se puede
un flanco por un pin determinado (IN T). perder la inform acin de alguno s registros,
Por desborde del temporizador TMRO com o el de trabajo (W ) y el de estado, por lo
Por cam bio de nivel en el puerto B (pines cual es resp onsabilidad del program ador h a
RB7:RB4). cer una copia de ellos.
D ebida al mdulo comparador
D ebida al puerto paralelo esclavo Tal vez la m anera ms ad ecuad a de hacer
D ebida al m dulo USART esta operacin es a travs de un segm ento de
De fin de conversin del mdulo A/D cdigo dispuesto en el in terio r de un M A
D ebida al mdulo LCD U RO . En la figura 1 1 .2 se m uestra un ejem
De fin de escritura en la m emoria EEPROM plo en donde se alm acenan y restauran los re
de datos gistros W y ESTAD O . El registro W _T E M P
Por desborde de los temporizadores T im erl y debe d efin irse en todos los bancos y en la
Tim er2 m ism a posicin tom ando com o referencia la
Debida al m dulo CCP direccin base (por ejem plo, 0x70, 0x7F en
Debida al mdulo SSP el banco 0 ). Los pasos que se siguen para dar
solucin a este problema son los siguientes:
Cuando aparece una interrupcin, el pro
cesador guarda en la pila (stack) la direccin de 1. Alm acenar W en el banco actual
la instruccin en donde se encontraba y el con 2. Almacenar el registro ESTADO en el banco 0
trol del program a se dirige hacia la direccin 3. Ejecutar la rutina de interrupcin
donde se encuentra la rutina de interrupcin. 4. Restaurar ESTADO (y el b it de seleccin de
C uando sta term ina, recupera la direccin de banco)
la pila y vuelve al lugar exacto donde abandon 5. Restaurar W
el programa.
Cada uno de los tipos de interrupcin pue
En el mapa de memoria de programa de los den habilitarse o deshabilitarse, el usuario es quien
microcontroladores PIC existe una direccin asig controla las fuentes de interrupcin a travs de un
nada (0004H ) para ubicar la rutina. Cuando se registro especial llamado INTCON, figura 11.3.

9 8 <MH^HW s.a. Curso prctico sobre Microcontrolad


Teora

MOVW F W _TE M P C O PIAR W EN UN REGISTRO m in a el h ab ilitad o r general o glo b al. Es decir,


T E M P O R A L
las in terru p cio n es se h ab ilitan si se escribe
GUARDAR EL E S T A D O NO ES T A N S E N C IL L O
BSF IN T C O N ,G IE o se d esh ab ilitan si se
Y A QUE MOVF E S T A D O ,W A F E C T A R A LO S B IT S
D E L M IS M O R E G IS T R O ESTADO, PERO LA
escribe BCF IN T CO N ,G IE .
IN S T R U C C IO N S W A P F NO L O S A F E C T A
POR ESO L A PODEMOS U T IL IZ A R Registro: INTCON
S W A P F E S T A D O ,1 GUARDANDO E L R E G IS T R O
S W A P F E S T A D O ,0 D E ESTADO
GIE PEIE TO IE INTE RBIE TO IF IN TF RBIF
M O VW FESTADO _TEM P
bit 7 bitO

L U E G O DEBEN SER RESTAURADOS. D ireccin: OBh


S W A P F E S T A D O _ T E M P ,l R E S T A U R A N D O E S T A D O co n d ic i n de reset OOOOOOOXb
S W A P F E S T A D O _ T E M P ,0
MOVW F E S TA D O GIE: Global Interrupt Enable o Habilitador general de
S W A P F W _ T E M P ,1 R E S T A U R A N D O W interrupciones.
S W A P F W _ T E M P ,0 0: deshabilita todas las interrupciones
1: habilita las interrupciones
Figura 11.2 Ejemplo donde se ilustra como guardar las PEIE: Peripheral Interrupt Enable B it o Habilitacin de
copias de seguridad interrupciones debidas a los mdulos perifricos
0: la deshabilita
Es im portante aclarar que los microcontro 1: la habilita
TOIE: TMRO Interrupt Enable o Habilitacin de interrupcin
ladores que solo cuenten con una interrupcin del temporizador TMRO.
de mdulo perifrico (por ejemplo el 16F84), han 0: la deshabilita
reemplazado el b it 2 (PEIE) por otros como el 1: la habilita
INTE: INT Interrupt Enable o Habilitacin de la interrupcin INT.
EEIE o el ADIE, que corresponden a interrup
0: la deshabilita
ciones como la de la EEPROM de datos. 1: la habilita
RBIE: RBIF Intermpt Enable o Habilitacin de la interrupcin RBIF.
Tambin hay que tener en cuenta que en al 0 : la deshabilita
1: la habilita
gunos microcontroladores el b it 1 (INTF) no se TOIF: TMRO Overflow Interrupt Flag o Bandera de la
encuentra contem plado. Por estas razones es interrupcin por sobrefujo del TMRO.
conveniente verificar el m apa real del registro Se coloca en 1 cuando el TMRO pasa de OFFh a OOh;
sta debe ser puesta a 0 por programa.
IN TC O N para cada tipo de microcontrolador. INTF: INT Interrupt Flag o Bandera de i nterrupcin INT.
Se coloca en 1 cuando la interrupcin INT (RB<0>)
C ada una de las interrupciones puede usarse ocurre; sta debe ser puesta a 0 por programa.
RBIF: RB Port Change In te rru p t Flag o Bandera de
sola o se pueden habilitar varias, dependiendo de
interrupcin por cam bio en el puerto B.
la aplicacin. En cualquier punto del programa, Se coloca en 1 cuando una de las entradas RB<7:4>
el usuario puede desactivar alguna de estas inte cam bia; sta debe ser puesta a 0 por programa.
rrupciones borrando el b it correspondiente:
Figura 11.3 Registro INTCON

BCF IN TCO N , INTE; int. externa


BCF IN TCO N , RBIE; int. en RB
BCF IN TCO N , TOIE; int. por el TMRO

Cuando ocurre un estado de reset todos es


tos bits toman un valor de cero (limpiados).

Para h a b ilita r cu alq u ier in terru pcin , es


necesario activar un b it (GIE) que se deno Figura 11.4 Funcionamiento de la habilitacin de las interrupciones

Curso prctico sobre Microcontroladores


Para e n te n d e r este con cep to , podem os reg istro O P C IO N d e te rm in a si esta in te
hacer una an alo ga con un circu ito serie, fi rrup ci n la gen erar un flanco de su b id a o
g u ra 11.4. A sum am os que GIE, RBIE, INTE un flanco de bajada. C uando aparece un flan
yT O IE son in terrupto res en un circu ito elc co ad ecuad o en el pin INT, la bandera IN TF
trico y una corriente q uiere circu lar desde el [ bi t 4 del registro IN T C O N ) se h a b ilita . Esa
punto A hasta el procesador. Para que este band era debe d esactivarse m ed ian te un c
fenm eno sea posible el interruptor GIE debe d ig o en el p rogram a d entro de la ru tin a de
estar activado, al igual que cu alq u iera de los in terru p ci n , antes de h a b ilita r de nuevo esa
b its que h ab ilitan a cada uno de los tipos de in terru p ci n .
in terru p ci n .
A d icio n alm en te, si el d isp o sitiv o tiene
C uando se ha configurado correctam en otros perifricos que puedan originar in terru p
te algn tipo de in terru p ci n , existe una ban ciones, entonces poseer internam ente algunos
dera asociada para cada tipo que se pone en registros adicionales que perm itan habilitarlas
uno cuando ella se ha presentado. Para de y otros registros donde se alm acenen los bits
te rm in ar el tipo de in terru p ci n basta leer que actuarn como banderas indicadoras. D e
cada una de esas banderas. pendiendo del dispositivo, los registros son:

En el m om ento que ocurre una in terru p PIE1 y PIR1


ci n , el procesador lim p ia el b it GIE im p i PIE2 y PIR2
diendo que o curra una nueva in terru p cin .
Este b it se h a b ilita de nuevo con la in stru c Estos registros no m antienen una ubica
cin RETFIE cuando se retorna de la ru tin a cin estndar para cada uno de sus bits. C ada
de interrupcin. El program ador no debe pre tipo de m icrocontrolador posee algunas varia
ocuparse por esa h ab ilitaci n ya que esto ocu ciones sobre la ubicacin de ellos dentro del
rre auto m ticam en te. registro. Por esta razn, cuando hablem os de
uno de los bits de estos registros no darem os
Interrupcin externa su posicin exacta. D ependiendo de la refe
La in terru p ci n externa se genera cuando lle rencia del m icrocontrolador PIC , se debe bus
ga una seal ex tern a al pin INT. El b it 6 del car su posicin en las hojas de datos.

Figura 11.5 Diagrama de tiempos del comportamiento del microcontrolador frente a una interrupcin INT

Va. Curso prctico sobre Microcontroladores


Teora

En el futuro es m uy posible que se desa de hablaremos sobre los temporizadores TM R1


rrollen m dulos adicionales que puedan gene y T M R 2 , notarem os la in fluencia de estos re
rar interrupciones, de m anera que no sera raro gistros PIE y PIR.
encontrar ms adelante pares de registros como
el PIR3 y el PIE3. En apartados siguientes don- Existe un trm ino conocido como laten-
; e s t e p ro g ra m a c u e n ta e l n m e ro d e cia de la in terru p ci n , que se define como el
; t r a n s i c i o n e s e n l a e n t r a d a R B 0 /IN T tiem po que transcurre desde que apareci la
; y e l r e s u l t a d o l o m u e s t r a e n 4 LED
c o lo c a d o s e n R B 4 ..R B 7
interrupcin (la bandera se ha puesto en uno)
li s t p=16c84 hasta el m om ento en que la instruccin ubica
a # in c lu d e < c : \ p l6 c 8 4 . in c > da en la posicin 0004 H em pieza a ejecutarse,
.C O N F IG 1 1 H
este tiem po es de 3 TCY (ciclos de instruccin)
C O N S T A N T B A S E .V A R = 0 C H para in terru p cio n es sincrnicas (com o por
C O N TAD O R EQU B A S E .V A R + l
0R G 000H
ejem plo las provenientes de un tem porizador).
G O TO IN IC IO
ORG 004H Para interrupcion es no sincrnicas (n o r
G O TO S E R V .D E .IN T
I N IC IO : BSF S T A T U S ,R P O m alm ente las externas), com o la IN T o la del
M O VLW 1 cam bio en el puerto B, el tiem po de latencia
MOVW F T R IS B
BCF S T A T U S ,R P O ;B A N C O 0
est entre 3 y 3 ,7 5 T C Y (ciclos de in stru c
C LR F C ONTADO R c i n ), fig u ra 11.5.
BCF P 0 R T B ,4
BCF P O R T B ,5
En esta figura podemos observar el proceso
BCF P O R T B ,6
BCF PO R TB,7 que ocurre desde que se presenta una interrupcin
BSF O P T IO N .IN T D E G
BCF IN T C O N ,IN T F
BORRA BANDERA DE INTERRUPCION
Entrada de los
IN T C O N ,IN T E ; VCC
flancos e
B BSF E N M A S C A R A I N T . E X T E R N A S MCR
RB 0 /INT
BSF IN T C O N .G IE
6 8 0 2 ^
H A B I L I T O IN T E R R U P C IO N E S
RB 4
PT1: SLEEP r
te
G O TO PT1 i
o
S E R V .D E .IN T : o. RB 5
IN C F C O N T A D O R ,F
16
BTFSS C O N T A D O R ,O 0SC1
BCF P O R T B ,4 15 RB 6
4 MHz OSC2
BTFSC C O N T A D O R ,0
BSF P O R T B ,4 HOH VSS RB 7
BTFSS CONTADO R, 1
BCF P O R T B ,5 22pF ; 22p
BTFSC C O N T A D O R ,!
BSF P O R T B ,5
D BTFSS C O N T A D O R ,2
Figura 11.6b Circuito de aplicacin del ejemplo 1
BCF P O R T B ,6
BTFSC C O N T A D O R ,2 R egistro OPCION
BSF P O R T B ,6
BTFSS C O N T A D O R ,3 B IT 7 B IT 6 BIT 5
BCF PO R TB,7
RBPU INTEDG GRTS
BTFSC C O N T A D O R ,3
i
BSF PO RTB,7
BCF IN T C O N , IN T F
L IM P IA LA BANDERA CORRESPOND.
R E T F IE ---------- Selector de f
1: Flanco de subida
END 0: Flanco de bajada

Figura 11.6a Cdigo del ejemplo 1 FiQura 11.7 Configuracin del flanco que se va a leer p o r el p in INT

Curso prctico sobre Microcontroiadores m M B T


Interrupciones en los microcontroladores PIC

originada por un flanco de subida por el pin donde nos ubicam os en la direccin de la ru ti
na de interrupcin.
INT. La bandera asociada se activa al sigu ien
te ciclo Q y perm anece en ese estado hasta que
M ien tra s nos en co n tram o s ejecu tan d o
no sea borrada. Desde all hasta que el m icro
una ru tin a de in terru p ci n , el b it GIE ser
controlador llega a la direccin 0 0 0 4 H , han
desh ab ilitad o por lo cual no se atiende a n in
transcurrido de 3 a 4 ciclos de instruccin. El
gu n a otra in terrupcin hasta que no salgam os
b it GIE que estaba en alto (de lo contrario no
de esa ru tin a (esto puede ser una desventaja
se hubiera podido haber ledo la interrupcin)
ya q ue es posible que en un diseo especial
es puesto en bajo autom ticam ente por la CPU
deseem os esa caracterstica).
para evitar leer otras interrupciones m ientras
ejecutam os la actual. La m ejor m anera de en
En la ru tin a de in terrupcin , bloque D, el
tender el m anejo de las interrupciones es a tra
contador se increm enta y se visualiza en los
vs de un ejem plo.
diodos LED. En este caso se us una tcnica
un poco dispendiosa para activar o desactivar
Ejemplo de interrupcin externa
los b its ya que en el siguiente ejem plo se usar
El programa que observamos en la figura 11.6a,
el b it RB3 para otros propsitos.
cuenta el nmero de transiciones positivas en el
pin RBO/INT (pin 6) de un PIC16F84 y muestra
El b it bandera asociado con la in terrup
el resultado de la cuenta en cuatro diodos LED
cin externa se lim p ia para p erm itir que el
colocados en las salidas RB4 a RB7, figura 1 1.6b.
procesador se entere de que la peticin de in
En la parte A del programa se configura el puerto
terrup cin ha sido aten d id a. La instruccin
RBO/INT como entrada y los dems pines del
RETFIE hace varias cosas. Ella habilita de nue
puerto B como salidas. El bit INTDEG del regis
vo el b it GIE y configura el contador de pro
tro OPCION , figura 11.7, debe ponerse en uno
gram a a su antiguo valor (el que ten a antes de
para que la interrupcin externa ocurra en el flan
la in terrupcin ). El procesador entra en esta
co positivo de la seal en RBO, o ponerse en cero
do de SLEEP hasta que ocurra una nueva tran
para que la interrupcin ocurra en el flanco nega
sicin en el pin RBO/INT.
tivo de la seal.
El estado de SLEEP es una posibilidad que
Luego, el b it INTE se activa, bloque B del
brindan algunos microcontroladores, por el cual
programa. Cuando el procesador entra en estado
se entra a un modo de bajo consum o; este con
de reset, todas las banderas se lim pian autom ti
cepto lo estudiaremos en una leccin posterior.
camente; sin embargo, es m ejor ser precavidos y
ponerlas m anualm ente en cero (no todas las
Interrupciones por cambio en
marcas de microcontroladores ejecutan un reset un pin RB
tan lim pio como los de M icrochip).
El P IC 16F84, al igual que muchos otros, per
m ite establecer como fuente de interrupcin el
F in alm en te, el b it G IE se pone en uno
cam bio de nivel en algunos pines determ ina
p ara h a b ilita r las in terru p cio n es y lu ego el
dos. En el P IC 1 6 F 8 4 (al ig u al que en los
program a e n tra en m odo SLEEP, b lo q u e C
16C 554/556), la interrupcin se genera en los
del program a.
pines RB4, RB5, RB6 y RB7. Esta caractersti
ca puede usarse como una buena tcnica de aho
Al ocurrir la interrupcin, el contador de
rro en el consum o de potencia de un sistema.
program a se alm acena y la ejecucin del pro
El procesador se puede poner en reposo (en
gram a se direcciona a la posicin 0004 H , en
modo SLEEP) y se despierta slo cuando el

Curso prctico sobre Microcontroladores


Teora

usuario cam bia el estado de alguna de esas en Problem a 1: a l d es a ctiv a r la s in ter r u p cio n es
tradas. El procesador entonces ejecuta d eterm i c m o a segu ra rse q u e rea lm en te lo estn?
nadas tareas y luego vuelve a reposo. Si tenemos un programa donde debemos atender las
interrupciones mientras se ejecutan varias tareas (TA-
El procedim iento general para activar este REA_1), pero no deseamos que se atiendan interrup
tipo de in terru p ci n es sim ilar al que se sigue ciones mientras se ejecutan otras tareas (TAREA_2),
cuando se va activar la del tim erO o la in te se puede pensar en el cdigo de la figura 11.8.
rrupcin externa (IN T ). Se debe activar al b it
RBIE del registro O P C IO N y luego activar De m anera inesperada fuim os in terru m
el b i t h a b ilita d o r glo b al de in terru p cio n es pidos m ientras ejecutbam os el cdigo de la
(GIE). La operacin in tern a del procesador, TAREA_2. Por alg u n a razn la in struccin
en este tipo de in terru p ci n , consiste en leer BCF IN T C O N ,G IE no est haciendo su tra
el n ib b le alto del puerto B y hacer una copia; bajo. Q ue pas entonces? ocurri una in te
la in terrupcin se genera cuando la lectu ra del rrupcin m ientras se estaba ejecutando BCF
n ib b le alto del puerto B difiere de esa copia. IN TCO N ,GIE?
D entro de la ru tin a de in terrup ci n es im
po rtan te que se lea el puerto B para ac tu a li C uando ocurre una in terrupcin, la in s
zar la copia. Para hacerlo, utilizam os las si truccin que se est ejecutando en el m om en
guien tes instrucciones: to term ina de cum plirse y luego el program a
se dirige a la direccin 0004F donde se en
BCF INTCON,RBIF cuentra la rutina.
MOVF PO RTB,W
A l ejecu tar RETFIE el program a reto r
Se observa que se lim pia la bandera de inte nar a la p rim era ln ea de TAREA_2 con las
rrupcin en RB, pero el estado del n ib b le alto in terru pcion es an h ab ilitad as. Por eso el b it
del puerto B an sigue siendo diferente a la anti GIE debe limpiarse, pero debido a que la eje
gua copia, por eso el procesador inm ediatam en cucin de la ru tin a de in terru p ci n causa que
te activar la bandera RBIF y se activar de nue d icho b it se ponga en uno, cuando ejecu ta
vo la interrupcin. Por esta razn el cdigo ante mos la ru tin a TA REA _2 las in terru pcion es
rior es incorrecto, la manera adecuada es as: an se encuentran h ab ilitad as. La solucin se
m uestra en la fig u ra 11.9.
MOVF PO RTB,W
LAZO:
BCF INTCON,RBIF
T A R E A . l:
BSF IN T C O N .G IE
Al ejecutar M OVF PO RTB,W , la antigua ;S E R E A L IZ A N TAREAS
copia del n ib b le alto toma el estado actual y lue ; ACEPTANDO IN T E R R U P C IO N E S
go se limpia la bandera. De esta manera, la si ; LA S TA R E A S VAN EN E S TA
; PARTE D E L PROGRAMA
guiente interrupcin ocurrir cuando el n ib b le BCF IN T C O N .G IE
alto del puerto B cambie de nuevo. ; AHORA SE D E S H A B IL IT A N TO DAS LAS
IN T E R R U P C IO N E S

Problemas comunes al trabajar con T A R E A .2 :


interrupciones S E R E A L IZ A N V A R IA S
T A R E A S S I N ATEN DER IN T E R R U P C IO N E S
A hora analizarem os algunos inconvenientes E S A S TAR EAS VAN EN E S TA PARTE DEL
que se pueden presentar al trabajar con inte PROGRAMA
rrupciones, con lo cual posiblem ente ahorre GOTO LAZO_____________________________________
mos m uchas horas de trabajo.
Figura 11.8 Cdigo del problema 1

Curso prctico sobre Microcontroladores (103


LAZO : pero en realidad recuperamos los valores que se
buscaron en AO y A l. En el caso particular de
TAREA_1:
BSF IN T C O N ,G IE un 16F84, esto no es un problem a grande, va
R E A L I Z A V A R IA S TAR EAS ACEPTANDO que la RAM del usuario se divide en dos bancos
IN T E R R U P C IO N E S
los cuales uno es espejo del otro. Esto es, 20H
y AOH de hecho estn en la m ism a posicin. El
A P A G O .IN T E R R U P S : problem a real es cuando se utilizan m icrocon
BCF IN T C O N ,G IE A P A G O EL G LO BAL
B T F S C IN T C O N ,G IE troladores donde los bancos no son espejos en
G O T O A P A G O _ IN T E R R U P S tre ellos. En ellos 20H y AOH son registros com
TAR EA_2:
pletam ente diferentes.
R E A L IZ A V A R IA S T A R E A S
S I N A T E N D E R IN T E R R U P C IO N E S Para solucionar ese problema, se pueden per
GOTO LAZO m itir interrupciones slo cuando nuestro progra
Figura 11.9 Solucin al problema 1
ma se encuentra trabajando en el banco 0. De
hecho, usualm ente utilizamos el banco 1 para
Notemos que el b it GIE se ha limpiado y ve configurar los registros tri-estado lo cual toma
rificado, para estar completamente seguros de que m uy poco tiempo, y en muchos casos, deshabili
se ha limpiado correctamente. El proceso debe re tar las interrupciones durante este lapso de tiem
petirse cuantas veces sea necesario para que est po no nos trae ningn problema, figura 11.10.
deshabilitado.
voy a l banco 1
As, si una interrupcin ocurre mientras se eje A P A G O _ IN T E R R U P S :
cuta BCF INTCON,GIE, la rutina de servicio de BCF IN T C O N ,G IE
D E S H A B IL IT O
interrupcin activar ese bit, pero el programa con IN T E R R U P C IO N E S
tinuar con la instruccin BTFSC INTCON,GIE BTFSC IN T C O N ,G IE
G O T O A P A G O _ IN T E R R U P S
donde detecta que GIE est activado y por lo tanto
BSF S T A T U S ,R P 0 ;B A N C O 1
se debe hacer algo para apagarlo. De esta manera el T R A B A J O CON T R IS A 0 T R IS B
programa slo llegar a TAREA_2 despus de que BCF S T A T U S ,R P 0 ;B A N C O 0
BSF IN T C O N ,G IE
se ha constatado que el bit GIE ha sido limpiado. A H O R A H A B I L I T O
IN T E R R U P C IO N E S
Problema 2: b an cos d e registros: q u p a sa F ig u ra 1 1.10 Problema 2
cu a n d o estarnos ejecu ta n d o un progra m a
d o n d e n ecesitem os a ten d er in terru p cion es Comentarios finales
cu a n d o estenios en e l b an co 0 en e l b a n co /?. Todos las observaciones que aqu se analizaron,
Al inicio de la rutina de interrupcin, los regis pueden resultar m uy obvias despus de ver su so
tros W y ESTADO se almacenan en W _SEGU R lucin. Pero si no la conocemos seguramente gas
y ESTADO_SEGUR. Asumamos que estas va taremos varios das averiguando que pas.
riables son 20H y 21H. Si la interrupcin apare
ce cuando nos encontramos en el banco 0, ellos C uando se desarrollan productos (sobre todo
se almacenan en las direcciones 20H y 21H . Pero de calidad com ercial) es m uy im portante en
si la interrupcin ocurre cuando nos encontra tender los problem as que se puedan presentar.
mos en el banco 1, esos registros se almacenan En ese proceso de entendim iento se pueden
en las direcciones AO y A1H. em plear varios das (meses, aos o tal vez nun
ca). C uando no se logra un entendim iento to
Nuestro servicio de interrupcin debe conmu tal del problem a, es cuando em piezan a fallar
tar al banco 0 y luego restaurar W y ESTADO, los productos con el transcurrir del tiem po.

m u H T s . Curso prctico sobre Microcontroladores


LECCIN 12

LOS TEMPORIZADORES El\l LOS


MICROCONTROLADORES PIC
C om o hem os visto en lecciones anteriores, den
tro de los m icrocontroladores existen unos m
dulos que podem os utilizar para funciones exac
tas de m edicin de tiem po, llam ados tem poriza-
dores. En esta leccin analizaremos estos elem en
tos internos presentes en los m icrocontroladores
PIC. En la seccin de program acin, desarrolla
remos ejem plos prcticos para el m anejo de es
tos im portantes elem entos.

Curso prctico sobre Microcontroladores


En la fam ilia de los microcontroladores PIC lador y nos sirven para crear bases de tiempo
aparecen tres mdulos temporizadores denom i m uy precisas o para contar eventos externos.
nados: TimerO (TMRO), T im erl (T M R 1) y 77-
m er2 (TM R2). Posiblemente el T im erl sea el ms Por este motivo a este mdulo se le ha de
verstil ya que puede usarse para monitorear el nominado temporizador/contador, ya que puede
tiempo entre las transiciones de una seal ocu configurarse para que sirva de temporizador o que
rridas en un pin de entrada o para controlar de acte como contador de eventos.
manera precisa el tiempo de transicin en un pin
de salida. El TimerO puede utilizarse para contar Cuando el TimerO inicia su operacin, se
eventos externos (transiciones de seales) o ge increm enta con cada ciclo de m quina o con
nerar interrupciones cuando ha ocurrido un cada pulso externo introducido por el pin RA4/
nmero deseado de eventos. TO C K I; la eleccin de cual va a ser la fuente de
seal se configura en el registro O PCI N . El
Existe la m anera incluso, a travs de un m registro TIMERO (de 8 bits) se va llenando has
dulo interno denom inado prescalador, de leer ta llegar a FF; si en ese momento llega otro in
entradas a una rata de velocidad de hasta 50 cremento pasa a 00 y justo ah puede generar
M hz, es decir, que podemos lograr m ucha ms una interrupcin, con lo cual podemos generar
velocidad que cuando leem os norm alm ente una base de tiem po confiable.
entradas por los pines; este ejercicio lo analiza
remos en el proyecto del frecuencm etro in clui El nmero de veces que el contador llega a
do en este curso. cierto valor puede ser contado usando otro regis
tro. El TMRO es un mdulo autnomo, de m a
El Tim er2 tiene m ucha ms libertad en su nera que el procesador puede estar ejecutando
fu ncion am iento y adem s de tem porizador, cualquier tarea m ientras que el temporizador
puede usarse para m anejar el perodo de una TMRO se encuentra trabajando.
seal de salida en formato de m odulacin por
ancho de pulso (P W M ). En este tipo de seal, Las posibles salidas que podemos obtener del
la salida de un pin perm anece en estado lgico TMRO son dos: la primera, es la lectura del re
alto durante un porcentaje determ inado de cada gistro TMRO (H'OT). el cual podemos leer en
periodo. cualquier momento y tomar decisiones sobre esa
lectura, y la segunda, es generar una interrup
El porcentaje se controla escribiendo en el cin por desborde del registro, es decir, cuando
registro C C P {Capture!Compare!PW M ), y el se llena tomando el valor de FF y pasa a 00.
periodo de la seal de salida se controla por el
Timer2. Este tipo de seales es m uy utilizado en El registro O PCI N ( OPTION) cuya es
el control de motores, luces, etc.; el mdulo CCP tructura la estudiamos en la leccin 8 de este
lo analizaremos en detalle en la siguiente leccin. curso, es el que utilizam os para configurar el
funcionam iento de este m dulo de tem poriza-
Temporizador 0 ( TimerO1. TMRO) cin. El b it 5 (T O C S) lo configuram os para
Este tem porizador puede entenderse como un que el TMRO funcione como tem porizador (se
registro de 8 bits, con el cual podemos hacer increm ente con el reloj interno de la m quina)
operaciones de lectura o escritura en cualquier o como contador (se increm ente con los p u l
m om ento. Puede increm entarse auto m tica sos externos ledos por un pin determ inado del
m ente ya sea por medio de los ciclos internos m icrocontrolador llam ado T O C K ). Para detec
del reloj o por medio de pulsos externos que tar cul es el pin que corresponde a esta fun
entran por un pin especfico del m icrocontro cin en cada tipo de m icro, debemos referir-

i. Curso prctico sobre Microcontroladores


Teora

Divisor de la
Entradas entrada Salidas

Pin de entrada
Temporizador/Contador F ig u ra 12.1 Esquema en bloques del TMRO

nos a las hojas de datos. Con un cero (0) en este valor d eterm inado por los bits 0, 1 y 2 del
b it el TMRO funciona como temporizador, y con registro O P C I N , que corresponden al va
un uno (1) funciona como contador. lor PSO, P S l y P S2, segn la tabla 1 2 .1 . La
cuen ta o la tem porizacin del TMRO puede
H ay que ten er en cuen ta que si el TMRO hacerse sin la in tervencin del prescalador;
se ha configurado como contador, l slo fun para hacerlo, debem os poner un uno (1) en
cio n ar con flancos, no con niveles; es decir, el b it 3 del registro O P C I N : PSA.
que slo contar las transiciones de cero a uno
(flanco de su b id a), o de uno a cero (flanco de Para tener una lectu ra confiable cuando
b a jad a ). Por esta razn se le debe d e cir al vam os a trab ajar con una seal de reloj exter
TM RO qu tran sici n querem os que cuente na, es m ejor ten er en cuenta las siguientes re
a travs del b it A del registro O PCI N deno com endaciones:
m inado TO SE ; poniendo este b it en cero (0),
el TMRO contar todos los flancos de subida 1. Si no se va a utilizar el prescalador, la entrada
y po nindolo en uno (1 ), el TMRO contar debe permanecer en alto (o en bajo) durante
todos los flancos de bajada. al menos dos (2) perodos de oscilacin del
reloj del microcontrolador (Tose).
Para m odificar los contenidos del registro
O P C I N , existen dos opciones: la prim era 2. Si se va a utilizar el prescalador, el periodo de en
consiste en ubicarnos en el banco correspon trada debe ser de al menos cuatro (4) Tose dividi-
diente, cargar W con el nm ero que llevaremos
0PCI0N
a O PCI N y pasar los contenidos de W a d i 3 2 1 0
cho registro m ediante la instruccin M O V W F
O P C IO N , luego se debe retornar al banco
in icial para co n tin u ar trabajando norm alm en Valor del
prescalador
te. La segunda no requiere m overnos de ban
co, sim p lem ente consiste en dar la in stru c | PS2 PS1 PSO D ivid ir por |
ci n especial O P T IO N , la cual m over in 0 0 0 2
m ediatam ente los contenidos que tengam os 0 0 1 4
en ese m om ento alm acenados en el registro 0 1 0 8
W al registro O PC I N . 0 1 1 16
1 0 0 32
La fuente de seal h acia el TMRO puede 1 0 1 64

ser som etida a un proceso de divisin de fre 1 1 0 128

cuen cia a travs de un m dulo denom inado I 1 1 1 256

el prescalador, figura 1 2 .1 . En este m dulo


Tabla 12.1 Valores configurados en el registro
la frecuencia de entrada es d iv id id a por un OPCIN para el prescalador

'icrocontroladores C 107
L o s iL H U L Q i t a i i L - L H lh i la s LH C

En el m om ento del
de oscilador externo que ms se ajuste; en el pro
FF + desborde ocurre yecto Reloj Digital con PIC presente en este curso
u na Interrupcin
observaremos como se cre un intervalo exacto de
Cuenta hasta FF-N un segundo mediante un cristal de 1.87MHz.
El contador se El TMRO se carga con
increm enta desde - este va lo r (N) y desde La nica manera de no prescalar el tem pori
aqu aqu em pieza a co n ta r
zador es asignarlo al perro guardin ( w a tch d o g ).
Se carga el
Se trata de un registro de 8 bits que cumple con
TMRO con N una labor muy especfica (como veremos ms
00- adelante) al cual podemos asignar este factor de
divisin. Algunos autores mencionan que cuan
F ig u ra 12.2 Esquema del funcionamiento del TMRO do se asigna al TMRO funciona como prescala
dor y cuando se asigna al w atchdog funciona como
dos por el valor del prescalador, y los niveles altos postescalador. Sin embargo en muchas fuentes
y bajos deben ser mayores a lOns de duracin. bibliogrficas se conoce simplemente como pres
calador sin distinguir si hace el trabajo de p r e o
Si existe una operacin de escritura sobre de post. El manejo del w a tch d og lo analizaremos
el TIMERO, el increm ento se inhibe por los detenidam ente en una leccin posterior.
siguientes dos ciclos de instruccin. Esto pue
de com pensarse ajustando el nm ero cargado Veamos ahora algunas recomendaciones para
en el registro. el uso del TIMERO.

El prescalador !. C onfigurando el TIMERO.


Como ya se mencion, el prescalador es un m Los pasos son los siguientes:
dulo interno que divide la frecuencia de reloj de Asignar el presca la dor
entrada al temporizador. Para ejecutar esta tarea Configurar el temporizador colocando los
utiliza como factor de divisin el nmero confi bits adecuados en el registro OPCIN
gurado en OPCIN en los bits 0, 1 y 2. De esta Para inicializar el temporizador, sim ple
manera el usuario puede jugar con este factor de m ente debemos escribir un nmero en el re
divisin para lograr un intervalo de tiempo preci gistro TIMERO, o borrarlo. Cuando se ha
so (en el caso de que trabaje como temporizador). cargado con un nm ero el tem porizador
En este punto cabe resaltar que para ajustar un cuenta desde ese nmero, figura 12.2.
intervalo de tiempo (por ejemplo 1 segundo) se Una vez ha empezado a trabajar no es po
puede manipular, adems del prescalador, el tipo sible detener al TMRO.

< g m iK < iiT i.a. Curso prctico sobre Microcontroladores


Teora

El temporizador se mantendr contando siem da con el valor contenido en el registro del pe


pre y cuando no se haya borrado o escrito me riodo, se origina un pulso hacia el postescalador.
diante instrucciones del programa o el microcon
trolador no se haya inicializado de nuevo. En l se ejecuta una nueva divisin de la
El temporizador/contador debe ser recar salida del comparador y puede activar la bandera
gado despus de cada sobreflujo para repeti de interrupcin dentro del registro PIR1 (recor
dos intervalos de tiempo. Si esto no se ha he demos de la leccin 11, que el registro PIR es
cho, FF resultar en cada ocasin. propio de cada tipo de microcontrolador segn
las interrupciones que posea internam ente, ra
2. Cm o nos damos cuenta que el timerO est zn por la cual, el lector debe ubicar en cada hoja
haciendo algo? de datos, dnde se encuentra la bandera del
M ediante repetidas lecturas en el registro, T M R 2 dependiendo del microcontrolador).
o chequeando un b it de ese registro.
M ediante interrupcin en el m omento De la m ism a m anera, cuando el valor del
del sobreflujo de FF a 0 0 . A s es com o nos T M R 2 es igual al registro P R 2, la salida del
damos cuenta que el tem porizador ha ter com parador in icializ a de nuevo el T M R 2 , lo
m inado de contar. La bandera de in terru p cual es m uy u tilizad o para la generacin de
cin es la salida. P W M cuando se usa el m dulo C C P (lo ve
rem os ms ad elan te), al igual que en ap lic a
El Timer2 ciones seriales (SSP ).
El T im er2 es un tem porizador de 8 b its que
slo puede configurarse para que su fuente de Las posibles salidas del T R M 2 son la lectura
seal sea el reloj interno, de m anera que slo que se puede hacer en cualquier momento del
sirve como tem porizador. C uenta con un m registro TM R 2 o la bandera de interrupcin ori
dulo prescalador, un m dulo postescalador y ginada por el T M R 2, la cual se genera cada vez
un registro para el ajuste del periodo. El pres que se igualan PR2 y T M R 2 .
calador divide el tren de pulsos que le llegan
por un valor determ inado (1 , 4 o 16). El TM R2 puede activarse o desactivarse en cual
quier momento, mediante un bit de control ubicado
El diagram a de bloques del T M R 2 es el
que se aprecia en la figu ra 12.3. Com o pode Registro: T2C 0N . CONTROL T im e r2
mos observar, el T M R 2 se increm enta por el - T0U TPS3 T0U TP S2 T0UTPS1 TOUTPSO T M R 2 0 N T2CKPS1 T2CKPS0
reloj interno (fosc/4) desde 0x00 hasta el n M f7 0
m ero establecido por el registro del periodo
b it 7: Se lee desde 0
(PR2). Si en ese momento ocurre otro incre b it 6-3: T0UTPS3 - TOUTPSO o bits de seleccin de la salida del
m ento, la cuenta pasa de nuevo a 0x00. postescalador del Timer2
0000 = 1-1 postescala
0001 = 1 - 2 postescala
El registro del periodo se denomina PR2, el
cual es de 8 bits y sobre l podemos hacer opera
ciones de lectura o escritura, de manera que po 1 1 1 1 = 1 -1 6 postescala
b it 2: TMR20N o bite activacin del Ti mer2
demos m odificar el momento del desborde. 1 :Tim er 2 est encendido
0: Timer2 est apagado
b it 1 -0: T2CKPS1 - T2CKPS0 o bits de seleccin del prescalador del
En el registro PR2 configuramos un nm e Timer2
00 = prescalador est en 1
ro determinado el cual es vigilado permanente 01 = prescalador est en 4
m ente por un m dulo de comparacin, y cada 1x = prescalador est en 16
vez que el valor contenido en el T M R 2 concuer Figura 12.4 RegistroT2CON para el control del TIMER2

Curso prctico sobre Microcontroladores < ^ M IK < lh r, 109


Los tem porizadores en los microcontroiadores PIC

Nombre Bit 7 Bit 6 B it 5 B it 4 Bit 3 | Bit 2 fl/M BitO


INTCON GIE PEIE TOIE INTE RBIE TOIF INTF RBIF
PIR1 TMR2IF
PIE1 TMR2IE
TMR2 Registro TMR2
T2C0N T0UTPS3 T0UTPS2 T0UTPS1 T0UTPS0|TMR20N T2CKPS1 T2CKPS0
PR2 Registro de periodo del Timer 2

Figura 12.5 Registros asociados con e l manejo del TMR2

en el registro T2CO N . Los valores presentes en el cacin tambin depende del microcontrolador.
pre y postescalador se borran por tres razones funda En la figura 12.6 observamos un cdigo para
mentales: la escritura sobre TM R2, una escritura so inicializar el T M R 2.
bre T2CO N , o por un estado de reset, que cuando
ocurre, llena a PR2 con unos. El tim erl
El temporizador T im e rl es un mdulo de 16 bits
En la figura 1 2 .4 vemos el registro de con que se divide en dos registros de 8 bits (T M R l H y
trol del T M R 2; a ll podemos ver el b it 2 deno TMR1L), sobre los cuales se pueden ejecutar ope
m inado T M R 2 0 N con el cual activamos o des raciones de lectura y escritura. Este par de regis-
activam os el funcionam iento del temporizador,
los b its 3 al 6 que configuran el valor que va a
tener el postescalador y los bits 0 y 1 los cuales C LR F T 2 C 0 N DETENGO A L T M R 2 ,
establecern el valor del prescalador. Veamos PRESCALADOR = 1 : 1 ,
los pasos para configurar el modo de operacin PO STESCALADO R = 1 : 1
CLR F TMR2 BORRO R E G IS T R O TMR2
de este tem porizador; en la figura 12 .5 aprecia CLR F IN T C O N D E S H A B IL IT O
mos una tabla con todos los registros asociados IN T E R R U P C IO N E S
al m anejo del T M R 2. BSF S T A T U S , RPO S A LT O A L BANCO 1
C LR F P IE 1 D E S H A B IL IT O IN T E R R U P
En el registro T 2C O N debemos seleccionar C IO N E S DE MODULOS
el valor del pre y postescalador y la activacin del P E R IF E R IC O S .
BCF S T A T U S , RPO REGRESO A L BANCO 0
T M R 2. Para habilitar la interrupcin de este C LR F P I R l BORRO BANDERAS DE I N T .
m dulo debemos activar el t T M R 2 IE del re P E R IF E R IC A S .
gistro PIE 1; la ubicacin de este b it dentro del MOVLW 0 x 7 2 PO S TE S C A LA D O R = 1 : 1 5 ,
registro no siempre es la misma. PRESCALADOR = 1 :1 6
MOVWF T 2 C 0 N T IM E R 2 APAGADO
BSF T 2 C 0 N , TMR20N T IM E R 2 E M P IE Z A A
Depende de la referencia del microcontrola
IN C R EM EN TAR SE
dor que estemos usando, por eso es conveniente ESPERO_DESBORDE
verificarlo en las hojas de datos. BTFSS P I R l, TMR2IF HA O C U RR IDO UNA I N T E
R R U P C I N POR TM R 2?
Del registro de control de interrupciones GOTO E SPER O , DESBORDE ; N O , C O N TIN U O CON
IN TCO N debemos activar los bits 6 y 7 que co EL C IC L O .
rresponden al habilitador global (GIE) y al habi- SE HA DESBORDADO EL
T IM E R ?
litado r de interrupciones de otros perifricos BCF P I R l , TM R 2IF S I , BORRO L A BANDERA
(PEIE). La bandera indicadora de la aparicin Y C O N TIN O .
de esta interrupcin se encuentra dentro del re
gistro PIRl y se denom ina T M R2IF; cuya ubi- Figura 12.6 Cdigo para el manejo del TIMER2

<-*. Curso prctico sobre Microcontroiadores


Teora

TMR1 = Temporizador/
contador TMR1 = Modo captura TMR1 = Modo comparacin

-T~L Entrada .TI J~ L Entrada


TMR1 5
del
TMR1 O
cc
Z
t-
Pin de CCP Pin de CCP
(entrada) (salida)

16 - B its
Figura 12.7 Modos de funcionamiento del TIMER1

tros se incrementan desde OOOOH hasta FFFFH y sido cargado previam ente con algn valor.
al pasar por este ltimo valor, regresan a OOOOFL C uando los contenidos del TIM E R1 se incre
Al igual que el TimerO, el T im erl puede generar m entan y llegan a un valor igual al valor al
interrupcin por desborde, para lo cual requiere m acenado en dicho registro de com paracin,
que un b it de habilitacin, presente en el registro se produce una salida, que puede ser un cam
PIE, se encuentre activado. bio de nivel en el pin de salida del m dulo
CCP, una interrupcin o am bos, figura 12.7c.
El T im e rl puede ser em pleado de diferen
tes m aneras. En prim er lugar, lo podem os u ti La u tilizaci n del m dulo C C P perm ite
lizar de la m anera tp ica para leer los conteni leer el T IM E R l y alm acenar el resultado para
dos del registro T IM E R 1, en cualquier mo u tilizarlo posteriorm ente cuando se detecta
m ento del program a, figura 12.7a. un flanco de entrada externo, todo esto m ien
tras el m icrocontrolador est ocupado hacien
La segunda posibilidad que se tien e es la do otras tareas.
de capturar (grabar) los contenidos del regis
tro T M R 1 para ser recuperados en el m om en Con el m dulo C C P tam bin es posible
to en que un flanco sea ledo externam ente por m anejar un pin de salida cuando los contenidos
el m icrocontrolador, figura 12.7b . Los pulsos del TIMER1 se incrementan hasta un valor de
que entran al T M R 1 increm entan el contador. terminado, de manera totalmente independien
te de otras tareas que el microcontrolador se en
C uando un flanco llega por el pin CCP, cuentre ejecutando.
los contenidos son capturados y se activa una
bandera de interrupcin. El valor capturado Descripcin del TIMER1
se encuentra ahora disponible para ser ledo. En la figura 1 2 .8 apreciamos un diagram a ge
neral de la estructura del T M R 1 . Podemos no
Los contenidos del T M R 1 pueden com tar que la fuente de seal para el TIMER1 pue
pararse continuam ente con los contenidos de de ser una seal externa para aplicaciones de
un registro especial de com paracin, el cual ha cuenta, o los pulsos internos de reloj para apli-

B it 1 del re g is tr n CON

ito de
Twia
aUCl

Evento especial disparado desde


el mdulo CCP Figura 12.8 Diagrama de bloques del TIMERI

Curso prctico sobre Microcontroladores


Los temporiza dores en los microcontroladores H E f

fico cuyo nom bre dentro del encapsulado es


R egistro: T1 C 0N . Control del Tim e rl T 1 C K I, fig u ra 1 2.1 0.
- - T1CKPS1 T1CKPSO T10SCEN T1SYNC TMR1CS TM R10N

bit 7 bit O Los pulsos externos que entran al T M R l


pueden ser de dos tipos. El primero, es por p u l
b i t 7 -6 Deshabilitado. Se lee desde 0
b it 6-3: T1CKPS1 - T1CKPSO o bits de seleccin del valor del sos que entran por T i CKI, as el T M R l se in
prescalador del Timerl
1 1 = 1 - 8 valor del prescalador crem enta en cada flanco de subida que se pre
10 = 1 - 4 valor del prescalador sente en este pin (dividido por el valor especifi
01 = 1 - 2 valor del prescalador
00 = 1 - 1 valor del prescalador cado en el prescalador). Este modo de opera
b it 3: T10SCEN o b it de habilitacin del oscilador del Timen cin se habilita con el zY T M R lC S pertene
1: Oscilador est encendido
0: oscilador est apagado ciente al registro T i C O N . Cuando se desea leer
b it 2: TTSYNC o b it de seleccin de la entrada externa de pulsos por el pin T i CKI (b it 0 del puerto C ),
sincronizacin al Tim erl
Cuando TMR1CS = 1 este pin debe estar previam ente configurado
1: la entrada externa no se sincroniza
0: la entrada externa se sincroniza
como entrada.
Cuando TMR1CS = 0
sta es ignorada
b it 1: TMR1 CS o bits de seleccin de la fuente para Tim erl El segundo tipo de entrada al T IM E R l es
1 = entrada externa por el pin T10SO/T1CKI (flanco a travs de un circuito oscilador conectado a
de subida)
0 = reloj interno (FOSC/4) los pines T lO S C I y T lO S C O , el cual puede
b it 0: TMR1ON o b it de habilitacin del Timerl ser hasta de 200 KHz, figu ra 1 2 .1 1 . La ap lica
1: habilita Tim erl
0: detiene Timerl cin clsica de esta conexin que se encuentra
en gran cantidad de notas de aplicacin, es la
Figura 12.9 Registro de control del TIMER1 (T1CON) creacin de un reloj de tiem po real utilizando
este temporizador y un cristal de 3 2 .7 6 8 KHz.
caciones de tem porizacin, la entrada ingresa a
un m dulo prescalador que divide los pulsos de
entrada por 1, 2 , 4 o 8.

La seleccin de la fuen te de seal para el


T IM E R 1 se hace m ediante un b it especfico
del registro T I C O N , fig u ra 12.9 . Se trata del
z fT M R lC S con el cual se establece si la entra
da va a ser externa o van a ser los ciclos de reloj
Figura 12.10 Entrada del TMRl
internos. De ig u al m anera, a travs del b it 0
denominado T M R IO N de este registro, po
dem os activar o desactivar el T M R 1 en cu al
q u ie r m om ento del program a y m ediante los
bits A y 5 (T1CKPS1 y T i CKPSO) se establecen
los valores que tendr el prescalador para d i
v id ir la seal de entrada.

C uando el T M R 1 se desborda, se activa


un b it de bandera del registro PIR1 y se ge
nera una in terru p ci n , si sta ltim a se ha ha
b ilitad o previam ente m ediante el b it corres
po ndiente dentro del registro P IE l. Los p u l
F ig ura 12.11 Conexin del TMRl con un circuito oscilador para
sos externos deben en trar por un pin espec
la creacin de un reloj de tiempo real

-*. Curso prctico sobre Microcontroladores


MODULOS CCP
(CAPTURA/COMPARACIN/PWM)
En la leccin anterior conocim os los m dulos
tem porizadores de los m icrocontroladores PIC
que son la base para trabajar con los m dulos
CCP. A hora estudiarem os el m anejo y funcio
nam iento de estos ltim os, los cuales pueden
ser de gran utilid ad en m uchas aplicaciones en
electrnica. H ablam os en plural sobre estos m
dulos debido a que en un m icrocontrolador pue
de existir ms de un m dulo CCP.
El modo de comparacin permite manejar
de manera muy efectiva la salida sobre un pin Registro de control: CCPxCON
determinado del microcontrolador y el modo de No m plem entados DCxB1 DCxBO CCPxM3 CCPxM2 CCPxM! CCPxMO

captura permite hacer mediciones muy precisas b7 bit 0


de los instantes en que se producen algunos flan b it 7-6: Sin implementar. Se leen como 0
b it 5-4: DCxB1:DCxB0. Ciclo til del PWM
cos de entrada. Ambos modos se han diseado b it 3-0: CCPxM3:CCPxM0. B it de seleccin del modo CCPx
para trabajar con el T im erl; si un microcontro 0000: Captura/compara/apaga PWM (reinicia el mdulo CCPx)
0100: Modo de captura, cada flanco de bajada
lador posee varios mdulos CCP funcionando 0101: Modo de captura, cada flanco de subida
en modo de captura o comparacin, ellos debe 0110: Modo de captura de cada 4o flanco de subida
0111: Modo de captura de cada 16o flanco de subida
rn compartir el mismo temporizador. El modo 1000: Modo de comparacin
de PW M (modulacin por ancho de pulso) es Inicia pin CCP bajo, cuando la comparacin indica
igualdad, pone el pin CCP en alto (se activa el b itCCPIF)
muy udlizado para controlar motores, lmparas 1001: Modo de comparacin
u otras cargas resistivas y est diseado para el Inicia pin CCP alto, cuando la comparacin indica
igualdad, pone el pin CCP en bajo se activa el bit CCPIF)
Timer2, de manera que ningn otro temporiza 1010: Modo de comparacin
Genera interrupcin por software, cuando la comparacin
dor puede ejecutar esta funcin, ver Tabla 13.1. indica igualdad (se activa el b it CCPIF, el pin CCP no
Cada mdulo C C P contiene un registro de 16 se afecta)
1011: Modo de comparacin
bits el cual puede trabajar como registro de cap Disparador de eventos especiales (se activa el bit
tura de 16 bits, como un registro de compara CCPIF)
11 xx: Modo PWM
cin de 16 bits o como un registro para generar
PW M en 10 bits. Todos los mdulos CCP tra Figura 13.1 Registro de control de los mdulos CCP

bajan prcticamente de la misma manera.


controlador, independiente de las tareas que se en
C ad a m dulo C C P posee tres registros cuentre ejecutando la CPU. Algunos microcontro
p ara los cuales utilizarem os nombres genri ladores como el 16C62A, el 16C64A y el 16C72
cos, como se m uestra en la T abla 13.2. En ella solo cuentan con un mdulo CCP, ellos solo pueden
vernos que, cuando dentro de cada registro controlar los tiempos de salida del pin RC2/CCP1,
colocam os una x, quiere decir que hablam os mientras que los microcontroladores que poseen dos
in distintam ente del m dulo 1 o del m dulo mdulos CCP pueden controlar tambin el pin RC1 /
2. En la Tabla 13.3 se m uestran las interaccio CCP2. El nombre que reciben estos pines nos indica
nes entre los m dulos C C P ; en esta tabla, la funcin alterna que cumplen, sta es la de pines de
C C P x es un m dulo C C P y C C P y es otro m propsito general del puerto C. Recordemos de la
dulo CCP. En la figu ra 13.1 tenemos el regis leccin anterior que el T im erl incluye un prescala
tro de control de estos m dulos C C P con la dor que divide la frecuencia interna del reloj por 1,2,
funcin de cada uno de sus b its constitutivos. 4 o 8; si seleccionamos la divisin por 1 obtendre
mos la resolucin ms fina para ajustar el tiempo de
M odo de com paraci n salida de un flanco de salida. Esto significa que, con
El T im erl junto con el CCP, pueden controlar de un cristal de 4M H z, el tiempo de los flancos de un
manera muy precisa la salida de un pin del micro pulso puede controlarse con una resolucin de 1us.

Modo CCP Funcin Nombre genrico CCP1 CCP2 Comentario


Captura Timerl CCPxCON CCP1C0N CCP2C0N Control de registro CCP
Comparacin Timerl CCPRxH CCPR1H CCPR2H Byte CCP alto
PWM Timer2 CCPRxL CCPR1L CCPR2L Byte CCP bajo
CCPx CCP1 CCP2 Pin CCP
Tabla 13.1 Fuente de cada modo de
operacin Tabla 13.2 Nomenclatura genrica de los registros CCP

i. Curso prctico sobre Microcontroladores


TRISC cabo una accin determinada por
(H 8 7 1)
El p in RC2/CCP1
los valores establecidos en los bits
T1 CON
e s una salida de control C C P1M 3:C C P1M 0
(H 'l O) (C C P 1CON<3:0>); dicha ac
TM R 1O N 1: h a b ilita e n tra d a d e co n te o a TMR1 cin puede ser poner en alto, en
0: d e sh a b ilita e ntrada de conteo a TMR1
CCP1CON J
(H '1 7 1)
bajo o permanecer sin cambiar
el estado del pin. Cuando se ori
En cualquier caso, activando la bandera
CCP1IF e n la co m p a ra ci n : gina un desborde en el T im erl
0 0 activa el pin RC2/CCP1 en la comparacin o el comparador ha establecido
0 1 borra el pin RC2/CCP1 en la comparacin
1 0 no afecta el pin RC2/CCP1 en la comparacin igualdad entre el T M R l y los re
TMR1H (HOF1) TMR1L (H'OE')
gistros CCPR1, se origina un es
TM R10N
Sobreflujo tado de interrupcin y se activa
Activa, desactiva
o no afecta el pin OSC/4 la bandera correspondiente en el
RC2/CCP1
registro PIR1. Si se cumple que
el habilitador global (GIE), el ha-
bilitador de interrupciones de pe
rifricos y los bits correspondien
tes del registro PIEl se encuen
tran activados, se generar en la
CPU un estado de interrupcin.
Para microcontroladores que po
Interrupcin TMR1IF
en CPU sean dos mdulos CCP, el circui
to y los registros asociados al
CCP2 se muestran el figura 13.3,
Registro INTCON pero su funcionamiento es prc
activa la interrupcin TMR1IE
ticamente el mismo del circuito
anterior; en esta figura podemos
apreciar los registros exactos
Figura 13.2 CCP1 en modo de comparacin
que se deben configurar en este
En la figura 13.2 se muestran grficamente los caso, con las respectivas direcciones de cada uno
pasos que se deben seguir para iniciar el mdulo de de ellos. Cuando un microcontrolador posee m
comparacin C C P l; all observamos los registros dulo C CP2 debe incluir en su mapa de memoria
que se deben configurar: el TRISC, el T i CO N y el todos estos registros.
C C P l CON. En este caso el valor almacenado en
los registros C C P R 1H y C C P R 1L se compara cons Para microcontroladores PIC que posean dos
tantemente con los registros del T M R 1, los cuales mdulos CCP, si ambos mdulos se usan para
se incrementan progresivamente por su fuente de .com paracin o captura, deben co m p artir el
seal. Cuando ambos son iguales, adems de gene T M R l y en este caso el T M R l no debe m odifi
rarse una interrupcin, en el pin C C P l se lleva a carse (escribir sobre l). Pero si el T M R l slo se

Modo CCPx Modo CCPy Interaccin


Captura Captura La misma base de tiempo de TMR1
PWM PWM Ambos PWM tendrn la misma frecuencia
PWM PWM Ninguno
PWM PWM Ninguno
Tabla 13.3 Interaccin entre los mdulos CCP

Curso prctico sobre Microcontroladores


TRISC
(H'87') zacin de la figura 13.2 se ha
El pin RC1/CCP2 cu m p lid o con el registro
es una salida
T1 CON T I CON cargado con H 01, el
(H '10')
TMR1ON 1: habilita entrada de conteo a TMR1 registro CCP 1CON se ha car
0: deshabilita entrada de conteo a TMR1 gado con H09 y el pin RC2/
CCP2C0N
(Hl D') CCP1 se ha puesto inicialmente
En cualquier caso, activando la bandera en bajo, entonces observemos el
CCP2IF en la comparacin:
0 0 activa el pin RCl/CCP2en la comparacin
cdigo, en la siguiente pgina.
0 1 borra el pin RC1/CCP2 en la comparacin
1 0 no afecta el pin RC1/CCP2 en la comparacin
En estas lneas de cdigo se
TMR1H (HOF TMR10N configura inicialmente el modo
Sobreflujo de comparacin, para iniciar un
Activa, desactiva
OSC/4
o no afecta el pin
RC1/CCP2
pulso que permanece hasta un
Comparador
ciclo despus de que se habilita
A
la entrada de seal al T M R 1. In
mediatamente despus de que
ese evento ha ocurrido, se con
figura el segundo comparador
el cual desactiva el pulso. Si el
T M R l est siendo utilizado
TMR1IF
para otra funcin adems de la
de comparador, no podr dete
nerse ni modificarse. En este
caso el T M R l slo puede ser le
Interrupcin
en CPU do y a partir de esa lectura ob
tener dos valores para configu
rar el registro C C P R I, para ini
ciar y detener el pulso.
Registro INTCON
activa la interrupcin TMR1IE Modo de captura
PIE 1
(H8C') La combinacin del T im erl con
Figura 13.3 CCP2 en modo comparacin
el C C P l o el C CP2 permite que
el PIC se utilice para determinar
usa para una funcin, su uso se puede sintetizar el tiempo en que ocurre un flanco de entrada. El
en los siguientes pasos: T im erl y su prescalador pueden utilizarse para me
1. Detener su reloj (borrando el foYTMRl ON del dir directamente intervalos de alto rango; la mejor
registro T i CON) resolucin en la medida se obtiene omitiendo el
2. Borrar el T M R l uso del prescalador. De esta manera, con un cristal
3. Configurar el registro C C PR I de 4M H z y omitiendo el prescalador, se pueden
4. Iniciar de nuevo la cuenta del T M R l medir tiempos de aparicin de una entrada en el
rango de lus. Es importante tener claro que en el
Veamos el siguiente ejemplo. Asumiendo que modo de captura, el pin CCPx debe estar configu
el T M R l no se utiliza para ninguna otra funcin, rado como entrada.
originar un pulso positivo de 100 us en el pin RC2/
CCP1 en un microcontrolador PIC funcionando En la fig u ra 13.4 se m uestra el circuito y
con un cristal de 4MHz. Asumamos que la iniciali- los respectivos registros asociados al uso del m a

t e prctico sobre Microcontroladores


Teora

PULSO INTERRUPCIONES
BCF T1C0N,TMR10N ; DETENCIN DEL BTFSC IN T C O N .G IE
; RELOJ DEL TMRl GOTO PULS01
CLRF TMR1H BSF T1C0N, TMON IN IC IA N LAS SEALES
CLRF TMR1L AL TM R l
CLRF CCPR1H MOVLW 101 CONFIGURAR SEGUNDO
MOVLW H0 1 COMPARADOR
MOVWF CCPR1L MOVWF CCPR1L
BCF CCP1CON,0 ; CONFIGURO PIN RC2/CCP1 BSF CCP1C0N LIM PIAR PIN RC1/CCP1
PARA COMPARACIN EN EL SEGUNDO
PULS01 COMPARADOR
BCF IN T C O N .G IE ;DESHABILITAMOS BSF IN TC O N .G IE HABILITAR NUEVAMENTE
MOMENTANEAMENTE LAS LAS INTERRUPCIONES
TRISC
nejo del m dulo CCP1 (H'87'l X X X X X 1 X X
El pin RC2/CCP1
en m odo de captura. El es una salida
TICON
tiem po entre dos flan (H 'l 0')
cos de entrada se deter- TMR10N 1: habilita entrada de conteo a TMR1
0: deshabilita entrada de conteo a TMR1
m in a h a c ie n d o dos CCP1CON |
(H17D)
capturas y restando el
tiem po que hubo entre
En cualquier caso, activando la bandera
am bas. Este m odo de CCP1IF en modo captura: CCPR1H (Rl'16 CCPR1L (H'15')

operacin consiste en 0 0 tiempo de cada flanco de bajada


en el pin RC2/CCP1 Pin RC2/CCP1
que lo s re g is tro s 0 1 tiem po de cada flanco de subida
en el pin RC2/CCP1
C C P R 1 H :C C P R 1 L 1 0 tiempo de cada 4 anco de subida
en el pin RC2/CCP1
capturan el valor de 16 1 1 tiem po de cada 16 flanco de
subida en el pin RC2/CCP1
bits presente en el regis
tro T M R l en el m o
m ento en que se pre
senta un evento en el
pin C C P 1. Este evento
se selecciona con los bits Interrupcin
en CPU
de control C C P 1 M 3 ,
C C P1M 2, C C P1M 1,
C C 1P M 0 (C C P IC O N
< 3:0> ), e n tre las s i Registro INTC0N
activa la interrupcin
guientes posibilidades:
Figura 13.4 Mdulo CCP1 en modo de captura
C ualquier flanco de bajada
C ualquier flanco de subida que se especifican claramente en esta figura. El cir
C ada 4o flanco de subida cuito de la figura 13.4 puede configurarse inicial
C ada 16 flanco de subida mente para capturar el tiempo del flanco de subida
cargando el registro CCP ICON con H 05.
En la figura 13.5 podemos observar el circuito
y los registros asociados al funcionamiento y mane Cuando se ha ejecutado una captura, se acti
jo del mdulo C C P2, para funcionar en modo de va el b it CCP1IF, el cual debe limpiarse mediante
captura; su procedimiento es similar al circuito para el programa. Si se ejecuta una nueva captura antes
manejar el C C P 1, pero difiere en algunos registros de que el valor del registro CCPR1 se haya ledo,

Curso prctico sobre Microcontroladores < M IK < IIT s .


se perder el valor cap TRISC
(H'87') X X X x X X 1 X
tu rad o an terio rm en te. El pin RC1/CCP2
Luego de borrar la ban es una salida
TICON
dera CCP1IF del regis (H-10-)
TMR10N 1: habilita entrada de conteo a TMR1
tro PIR1, se debe activar 0: deshabilita entrada de conteo a TMR1
CCP2CON g
el b it CC P1IE del regis (H'l D)
tro PIE1 para habilitar
las interrupciones debi En cualquier caso, activando la bandera
CCP1IF en modo captura: CCPR2H (H-1C ) CCPR2L (H 1B')
das al m du lo C C P l.
0 tiempo de cada flanco de Bajada
De igual m anera los bits en el pin RC1/CCP2 Pin RC1/CCP2
1 tiempo de cada flanco de subida
GIE y PE1E deben estar en el pin RC1/CCP2
0 tiempo de cada 4 flanco de subida
activados. Cuando apa en el pin RC1/CCP2
1 tiempo de cada 16 flanco de TMR10N
rece la interrupcin debi subida en el pin RC1/CCP2

do a la aparicin del flan 0SC /4

co seleccionado para el
pulso de entrada en el pin
RC2/CCP1, se limpia la
bandera CCP1IF. En este
momento se borra el b it 0
de C C P l CO N para con
fig u rar la cap tu ra del Interrupcin
en CPU
tiempo de ocurrencia del
flanco de bajada de la en
trada. Finalmente el re
gistro de 2 bytes CCPR1 Registro INTC0N
activa la interrupcin
se copia en dos posiciones CCP2IE
de memoria RAM . Cuan PIE 2
(H8D)
do ocurre la segunda in
terrupcin, el primer va Fig ura 13.5 Mdulo CCP2 en modo de captura
lor capturado se resta del
Voltios Ciclo til
nuevo valor capturado para proporcio
nar el ancho del pulso. Cuando la medi + 5 V
cin se ha culminado, se puede borrar el
Tiempo
b it CCP1IE del registro PIEl.
Periodo
1
Modo de PWM Periodo
En el modo de modulacin por ancho de (a) Forma de onda de la salida PWM
pulso (PWM), el pin CCPx produce una
salida PWM de 10 bits. Debido a que el pin Ancho de banda de la seal deseada

CCPx posee una funcin alterna como pin


I/O, se debe configurar por medio de la ins
4 Componentes de frecuencia de PWM

truccin TRIS para que trabaje como sali


da. En la figura 13.6 se muestra la salida de Frecuencia
V#I 3f 5 f
modulacin por ancho de pulso (PWM) ori Seal f m a x
ginada desde un microcontrolador PIC; all I Espectro de la frecuencia
se observan los principales elementos que se
Figura 13.6 forma de onda de una seal PWM

Curso prctico sobre Microcontroladores


distinguen en este tipo de ondas, a saber: el periodo, el fmax << fcorte del filtro << pwm
ciclo y la frecuencia de la seal de PWM.
La frecuencia de corte del filtro necesita estar
En muchas aplicaciones prcticas es necesario por debajo de la frecuencia de la onda PW M , f p w m ,
un periodo de la seal corto. Por ejemplo, el circuito para remover su componente fundamental y sus ar
de la figura 13.7 utiliza una salida variable de PW M mnicos en 3 fpwm, 5 fpwm, 7 fpwm, etc. y dejar
para generar voltajes entre 0 y 5 voltios, utilizando solamente los componentes C C que varen lenta
un filtro pasabajo para conformar un valor prome mente. De esta manera, acortar el periodo de la se
dio a partir de la forma de onda. Entre ms corto sea al de la PW M es la manera ms simple de acomo
el periodo de la PW M , ms rpido podr cambiar el dar seales de frecuencia con un filtro que las deje
valor promedio. Si los cambios en la seal PW M se pasar y remueva los efectos de la modulacin PWM.
caracterizan por una frecuencia mxima,fm a x como
se muestra en la figura 13.6b, se tiene: En algunas otras aplicaciones el filtrado es in
necesario. En la figura 13.8 se muestra un circui
to que puede usarse para controlar temperatura o
la intensidad de una fuente de luz mediante un
Filtro
pasa-bajo Circuito seguidor MOSFET; dispositivo que para estos casos es ideal.
-W v - Este elemento se caracteriza por poseer una en
Salida trada de alta impedancia que lo hace fcil de m a
anloga
I [ nejar. Para controlar adecuadamente un motor C C
se necesita un nmero o m agnitud y un signo; el
Figura 13.7 Circuito de conversin D/A signo nos indica la direccin hacia la cual va a
<20V
girar el motor y la magnitud es la cantidad de ener
ga que se le va a aplicar al movimiento; en el cir
cuito de la figura 13.9, el signo se origina por el
pin RD6. Cuando dicho bit se encuentra en alto
y la salida de la P W M activada, la parte izquierda
Resistencia < 0.04 0Q del circuito se activa haciendo que la corriente flu
con VGS = 4.5V, ID = 2.5A
ya hacia la derecha. Si el bit 6 se pone en bajo y la
> 1M SJ salida de la PW M se encuentra activada, la co
rriente fluye de derecha a izquierda en el motor.
Fig ura 13.8 Manejo de una carga conmutada
El concepto del funcio
o. namiento de la PW M es el
Direccin
o RD6 que se muestra en la figura
aP
c
e
13.10. E1TMR2 es sometido
a dos comparaciones con dos
registros distintos, la primera
es con el registro del ciclo til
y la segunda es con el registro
del periodo. C uando el
TM R2 y el ciclo til son igua
les, la salida del pin CCPx se
pone en bajo, pero el TM R2
contina incrementndose
Figura 13.9 Control de un m otor CC con un puente H hasta igualar al registro del pe-

Curso prctico sobre Microcontroiadores


Mdulos CGP (captura/comparaci

riodo; cuando esco ocurre, el pin CCPx se pone en


Ciclo til de la PWM = (valor en los bits
alto y se borra el TM R2 para iniciar de nuevo.
DCxB9:DCxB0) Tose (valor del prescalador
del TMR2)
En la figura 13.11 se muestra un diagrama en
bloques del mdulo CCP funcionando en modo
Los bits DCxB9:DCxB0 pueden ser escritos en
PW M . El periodo de la PWM se especifica en el regis
cualquier momento, pero el valor del ciclo til no se
tro PR2 y se calcula mediante la siguiente frmula:
almacena en CCPRxH hasta despus de que los con
Periodo de la PWM = [(PR2) + 1] 4 Tose tenidos de PR2 yT M R 2 sean iguales, lo cual marca el
(valor del prescalador del TMR2) final del periodo actual. En el modo PWM el registro
CCPRxH solo puede ser ledo. El registro CCPRxH
Cuando el T M R 2 es igual a PR2, en el siguiente y un bitch interno de 2 bits configuran el buffet del
ciclo se presentan los siguientes eventos: ciclo til, el cual, al igualar el contenido del TM R2
El T M R 2 es borrado concatenado con dos bits de su prescalador, borran el
El pin CC Px se pone en alto pin CCPx, estableciendo el final del ciclo til.
El ciclo til de la PW M es alm acenado en
CCPRxL pasa a CCPRxH Configuracin de la PWM
Para configurar el mdulo C C P para que fun
Ciclo til de la PWM cione en modo PW M se deben ejecutar los si
El ciclo til de la PW M se especifica en el registro guientes pasos:
CCPRxL y en los bits DCxBLDCxBO (CCPx- 1. Establecer el periodo en el registro PR2.
CON<5:4>). Se puede lograr una resolucin hasta 2. Establecer el ciclo til en los bits DCxB9:DCxB0.
de 10 bits gracias a los 8 de CCPRxL y a los bits 4 y 3. Configurar el pin C CPx como salida.
5 de CCPxCON que actan como los bits LSB. 4. E stab lecer el v alo r del p rescalad o r del
Este valor de 10 bits en definitiva queda en T M R 2 y h abilitar elT im er2 m ediante el re
DCxB9:DCxB0. Para calcular el ciclo til nos po gistro T 2C O N .
demos remitir a la siguiente frmula: 5. Configurar el mdulo CCP para el modo PWM.

Mdulo C C P xC 0N <5:4>
CCP1 Registros de "(DCxB1:DCxB0)
ciclo til
CCPRxL
(D C xB9:DCxB2)

10
Pin CCP1 bajo

CCPRxH TRIS<Y>
(Esclavo)
p R2
SALIDA PWM

Mdulo CCP
Pin CCP1 alto Nota 1:
Igual borra TMR2 El tim er de 8 bits es concatenado
con 2 bits del prescalador para
crear la base de tiempo de 1 0 bits

PR2 Borrar el temporizador y


alm acena el ciclo til Figura 13.11
Diagrama de bloques
Mdulo Tim er2 de la PWM
Fig ura 13.10 Concepto del funcionamiento de la salida PWM

1 2 0 fM I/G IO T sA. Curso prctico sobre Microcontroladores


INTRODUCCIN A LAS
COMUNICACIONES SERIALES
La utilizacin de las com unicacio
nes seriales se encuentra por doquier
en el m undo digital ya que nos ofre
ce un a solucin econm ica y de alta
calidad para una gran variedad de
aplicaciones.

Curso prctico sobre Microcontroladores , ( 121


En los sistemas con microcontroladores siem Las familias de rango alto de los microcon
pre existe la necesidad de conectar elementos in troladores PIC tienen incorporados mdulos in
ternos entre s como los microcontroladores con ternos de comunicaciones con sus pines o ter
las memorias, con conversores A/D, conversores minales especializados para esta funcin y sus co
D/A, etc. o entre el microcontrolador y elem en rrespondientes instrucciones de programacin lo
tos externos al sistema como teclados, displays e que facilita estos procesos. En las familias de bajo
interfaces de potencia, entre otros. nivel (pocos pines), las comunicaciones se hacen
por medio de los pines de entrada/salida (I/O) o
< 0 puertos y los protocolos (reglas de juego) se de
1 ^
' 1 ben establecer en el programa lo que hace un
Microcontrolador : Dispositivo
(UC) interno poco ms compleja su elaboracin.
; o ;
* o l o externo
; 1 1
; 1 ;
i

Figura 14.1 Comunicacin en paralelo

En trminos generales, hay dos maneras de


interconectar elementos electrnicos digitales: en
paralelo y en serie. Se dice que una com unica
Figura 14.3 Comunicacin unidireccional (half dplex)
cin es en paralelo cuando se conectan varias l
neas entre los dispositivos (internos o externos) Por otro lado, las com unicaciones seriales
y los datos se envan simultneam ente por ellas; pueden ser unidireccionales (half dplex) o bidi-
en la mayora de los casos, en valores mltiplos reccionales (full dplex). En las primeras se trans
de 8 bits (8, 16, 32, 64, etc.), figura 14.1. El fieren los datos en una sola direccin al tiempo y
otro tipo de com unicacin, la serial, se hace b se utilizan dos cables, uno para la seal y el otro
sicamente por una sola lnea (o m uy pocas) y los para la masa o tierra, figura 14.3. Con este siste
bits se envan uno detrs de otro, figura 14.2. ma hay que enviar primero los datos y despus
En el primer caso, la com unicacin es ms rpi recibirlos o viceversa. Con las bidireccionales, se
da y ocupa muchas lneas o pines del microcon puede enviar y recibir informacin al tiempo y
trolador y en el segundo, es ms lenta y utiliza se requieren como m nimo tres cables o pines,
pocos pines lo que nos perm ite realizar otras fun uno para enviar, otro para recibir y otro para la
ciones con los pines libres. Actualm ente, debido masa o tierra, figura 14.4. En las com unicacio
a la alta velocidad que se ha logrado en la opera nes seriales hay dos mtodos principales: las co
cin de estos circuitos, la comunicacin serial es municaciones sincrnicas o sincronizadas y las
la ms utilizada ya que conviene ms ahorrar pi asincrnicas o no sincronizadas lo cual explica
nes, que tener en cuenta la velocidad de transm i remos ms adelante.
sin que se lograra con la conexin en paralelo.

Figura 14.2 Comunicacin en serie o serial Figura 14.4 Comunicacin bidireccional (full dplex)

rs.t. Curso p r c tic o sobre M icro co n trola do re s


Teora

Otro factor que se debe tener en cuenta en como un carcter, sin im portar que no sea la
las com unicaciones seriales es la velocidad de unidad final de la inform acin. El ejemplo ms
transmisin de los datos la cual se mide en bits clsico de este caso son los conversores A/D de
por segundo o baudios que es en realidad la ve 10, 12 o ms bits.
locidad con que cambian los estados de la seal
(de l a 0 o d e 0 a l ) . A esta velocidad se le llama Cuando se transmiten caracteres serialmen
generalmente rata de baudios ( Baud rate) o sim te, los bits que conforman cada carcter se envan
plemente rata. Por lo general, se utilizan ratas de manera secuencial, distribuidos en el tiempo.
con valores normalizados de 2400, 9600 y 19200 Cuando un dispositivo transmisor enva estos bits,
baudios. Esto es m uy im portante ya que en una el receptor debe estar en capacidad de:
comunicacin serial entre dos o ms elementos, D eterm inar el momento exacto en que de
se debe conocer la velocidad de transmisin de ben llegar.
los datos con el fin de que sta se logre. Reconocer cundo empieza y cundo termina
cada uno de los bits.
Para que dos equipos se com uniquen satis Reconocer cundo empieza y cundo termina
factoriamente, ambos deben m anejar un mismo la serie de bits que conforman el carcter.
conjunto de normas que indiquen los parme
tros y la m anera correcta de realizar la transm i Para facilitar el reconocimiento claro de todos
sin y la recepcin. Este conjunto de normas es los caracteres, se ha establecido un sistema de sin
lo que se conoce con el nombre de protocolo. cronizacin por medio de algunos bits de delimita
cin y separacin. Como ya lo mencionamos, exis
Cuando efectuamos una comunicacin serial, ten dos mtodos de delimitacin que definen los
los grupos de datos que se van a transmitir se de dos tipos bsicos de transmisin de datos: la trans
ben descomponer en bits los cuales son transmiti misin sincrnica y la transmisin no sincrnica.
dos uno por uno desde el emisor hasta el receptor
en donde se establece de nuevo el grupo original. Transmisin sincrnica
En este tipo de transmisin se asocia un pulso
Un carcter lo podemos definir como la de reloj con cada b it transm itido. En este caso se
unidad m nim a de inform acin com puesta de requieren dos lneas de comunicacin (usualmen
varios bits. El em isor puede generar unidades te cables), uno para los bits de datos y otro para
de informacin de ms de 8 bits, pero como un los pulsos de reloj.
m icrocontrolador PIC tiene una CPU de 8 bits,
las unidades de informacin deben dividirse en El receptor puede reconocer fcilmente los bits
varios segmentos de 8 bits para ser enviados por de datos debido a que ellos ocurren de manera si
separado. El dispositivo receptor se encarga de multnea con los pulsos de reloj, de esta manera
ensam blar de nuevo los segmentos para recu sabremos exactamente cuando leer los bits de datos
perar el mensaje original. Para propsitos de la correctos sin importar que la seal de reloj no man
transm isin, cada segmento de 8 bits se trata tenga una frecuencia estable, figura 14.5.

Reloj

Datos

Bits de carcter
Figura 14.5 Carcter serial sincrnico

Curso prctico sobre Microcontroladores


capacidad de reconocer cuando em
pieza un b it y cuando termina. Si el
receptor puede determ inar cuando
Bits de carcter llega el prim er b it de un carcter y
Bits de la estructura J conociendo el hecho de que cada bit
Figura 14.6 Transmisin no sincrnica posee un periodo fijo, el receptor
puede anticipar cuando llegarn cada
Cuando un dato se codifica en determinado uno de los bits. Cuando no existen datos en el
nmero de bits, para separar los distintos caracte medio de transmisin, se dice que se encuentra
res el receptor necesita contar bits, empezando con en estado vaco o desocupado y el receptor se
el primer b it recibido. Este tipo de transmisin es encuentra esperando que llegue un bit.
adoptado por algunos estndares internacionales
como el protocolo SPI, I2C y Microwire. Cuando llega el primer b it e l receptor lo reco
noce y espera un tiempo determinado para leer de
Transmisin no sincrnica nuevo el siguiente bit, este primer b it forma parte
Este tipo de transmisin asocia unos bits especiales de la estructura y se le llama b it de sincroniza
a cada carcter conformando una estructura o pa cin. El receptor repite este proceso de lectura y
quete; incorpora un bit justo antes de empezar el espera hasta que se hayan ledo todos los bits.
carcter y otro b it despus del carcter. Todos los
bits, incluyendo los de la estructura, s envan a la El transmisor y el receptor poseen cada uno
misma velocidad (todos los bits con un mismo pe su propio reloj para m edir el tiempo de cada bit.
riodo) y cuando llegan al receptor, ste ya sabe que Es posible que estos dos relojes en un momento
el primer b it recibido corresponde al bit de estruc dado se desajusten y no queden completamente
tura y que despus de l, en intervalos fijos de tiem sincronizados entre s? En realidad s, y si ese es
po, encontrar los bits de datos, figura 14.6. el caso, se puede originar un desfase y crear pro
blemas como el del receptor esperando un b it en
Tanto el em isor como el receptor deben tra el instante incorrecto.
bajar a la misma velocidad, es decir, a la misma
rata de bits-, como el primer b it es quien informa Este problem a se resuelve sincronizando pe
la aparicin de un paquete y despus de l se ridicam ente, haciendo fija la longitud del ca
localizan los bits de datos a una rata constante, el rcter y transm itiendo nuevamente el b it d e sin
carcter puede ser enviado en cualquier m omen cronizacin al inicio de cada carcter de tam a
to. Por ello, este mtodo se conoce como carc o fijo. De esta m anera los relojes slo necesi
ter no sincrnico y b it sincrnico. tan estar en fase durante un corto tiempo ya
que ellos se ponen en fase nuevam ente en cada
Otro mtodo para la comunicacin no sincr b it de sincronizacin.
nica consiste en transmitir a ratas de b it variables.
Este mtodo no requiere una longitud fija de los Con un nm ero fijo de bits por carcter, el
caracteres ni de los bits de estructura, aunque a ve receptor cuenta los bits para delim itar cada ca
ces s se utilizan; este tipo de comunicacin lo uti rcter perm itiendo recibir correctam ente cada
liza un protocolo denominado Dallas 1-Wire. uno de ellos, sin im portar que sean transm iti
dos a intervalos irregulares de tiem po (transm i
Comunicaciones seriales no sin no sincrnica). Debido a que el prim er b it
sincrnicas de la estructura es un cambio del estado vaco
Ya sabemos que la transmisin serial distribuye al estado de ocupado, por lo menos un b it e n el
los bits en el tiempo y el receptor debe estar en estado vaco debe seguir al ltim o b it del carc-

Curso prctico sobre Microcontroladores


Teora

Tiempo
Estructura del carcter-

Tiempo d e u n M

P-5 o < Estado desocupado

4 Estado ocupado
I " I
B it de datos

Bit de B it de final del


sincronizacin paquete

Figura 1 4.7 Estructura del carcter

ter, el cual tam bin corresponde a un b it fun fica que deben ser 1,1/2 o 2 bits de parada como
dam ental para conform ar la estructura. m nim o y 5, 6, 7 u 8 bits de datos en el carcter.
El carcter de datos se transmite empezando por
Protocolo serial no sincrnico el b it menos significativo y a continuacin del
Este protocolo es utilizado por la m ayora de ltim o bit de datos del carcter puede haber (aun
los m dulos especializados para com unicacio que no es completamente necesario) un b it espe
nes (UART) que existen dentro de los m icro cial denominado b it de paridad.
controladores en com unicaciones seriales no
sincrnicas. La transm isin se describe en la El b it de paridad es un mtodo bsico para
fig u ra 14.7: caracteres transm itidos a in terva la deteccin de errores en la transmisin. La pa
los indeterm inados pero a una rata fija de b it ridad es una caracterstica definida sobre cada
(carcter no sincrnico, b it sincrnico). carcter de datos. Se determ ina por el nmero
de unos (1) lgicos en los datos. El primer paso
Segn este protocolo, el estado vaco de la trans es decidir si se va a trabajar con paridad par o
misin es un 1 lgico, y se le conoce como estado paridad impar. Para paridad im par el nmero de
de marca. El estado de ocupado es un 0 lgico y se unos en el carcter de datos debe ser impar. Esto
le denomina estado de espacio. Al bit de sincroni es, se cuenta el nmero de unos presentes en el
zacin se le llama b it de inicio y al bit de final de la carcter de datos y si la cuenta es impar entonces
estructura b it de parada. El b it de inicio es una el b it de paridad se pone en cero. Si el nmero de
transicin desde el estado de marca hacia el estado unos en el carcter de datos es par, entonces el
de espacio y el b it de parada es el estado de marca. b it de paridad se pone en uno para hacer el n
mero de unos de nuevo impar, figura 14.8. Igual
Slo puede existir un b it de inicio, pero pue metodologa se aplica para el caso contrario, es
den existir varios de parada. El protocolo especi- decir para paridad par.

Bits de datos y
bits de paridad {opcionales)

j Marca (1 lgico)

re Espacio (0 lgico)


B it LSB
B it de parada
B it de inicio
Figura 14.8 Formato del carcter

Curso prctico sobre Microcontroladores


En la comunicacin por medio de dos cana
les, los datos pueden viajar en ambas direcciones
sim ultneam ente, o pueden viajar en ambas d i
recciones pero no sim ultneam ente. Com o ya
lo dijim os anteriormente, un canal de com uni
cacin que es capaz de operar en ambas direc
ciones simultneamente se denomina full-duplex ;
Figura 14.9 Interfaz serial de dos lneas
y un canal capaz de operar en ambas direcciones
pero no sim ultneam ente se denom ina half-du -
Salida de datos
plex, en estos dos casos la rata de los datos debe
Entrada de datos
ser la misma en ambas direcciones. Un canal de
Entrada Salida
de datos . de datos una sola lnea capaz de operar en una sola direc
cin se denom ina canal simplex.
Salida de BiiiKPf Entrada
control j de control
Para un canal half-duplex se debe hacer un
Entrada Salida de sistema de control para prevenir que ambos ter
de control y T control
minales intenten transmitir al mismo tiempo o
Terminal 1 Terminal 2
que un terminal enve cuando el otro no est listo
i --------
para transmitir. Este flujo de control requiere de
Figura 14.10 Interfaz serial de dos hilos con lneas otras lneas adicionales, utilizadas para controlar
adicionales de control
de manera adecuada el flujo de los caracteres trans
mitidos por las lneas de datos, figura 14.10.
El canal de comunicacin
Muchas comunicaciones se desarrollan en dos vas El estndar RS-232
y requieren de un transmisor y de un receptor al Una aplicacin real de la comunicacin serial no
final de las dos vas del canal de comunicaciones. sincrnica es la que se ha definido en el estndar
En muchos casos se acostumbra dar el nombre internacional EIA RS-232. Se trata de una nor
de equipo term inal a cada uno de los equipos de ma que define las caractersticas fsicas que debe
comunicacin y a las lneas de transmisin se les tener el canal y las funciones de las lneas de con
denom ina ruta de los datos. trol y de datos. No se enfoca en el formato de los
datos, de manera que cada usuario es libre de
La comunicacin en dos vas requiere de dos construir sus propios formatos.
lneas, una para cada direccin de viaje de los
datos. El transmisor de un term inal se conecta Dentro de esta norma, los equipos term ina
por medio de la lnea A al receptor del segundo les tom an unos nombres especficos dependien
term inal y de la misma manera el transmisor del do de su labor dentro del canal de com unica
segundo term inal se conecta al receptor del pri cin, ellos pueden ser: Equipo Terminal de Da-
mero, figura 14.9.

Interfaz Interfaz
RS-232 RS-232

Figura 14.11 Canal de comunicacin serial

i. Curso prctico sobre Microcontroiadores


Lneas RS-232 (conector de 25 pines)
PIN Nombre Direccin Funcin
DTE DCE
1 PG Tierra de proteccin Tierra de seguridad
2 TD Datos TX Salida Entrada Datos de salida
3 RD Datos RX Entrada Salida Datos de entrada
4 RTS Peticin para enviar Salida Entrada DTE quiere enviar
5 CTS Listo para enviar Entrada Salida 0K para que DTE enve
6 DSR Datos listos Entrada Salida DCE listo para comunicarse
7 Comn Tierra
8 DCD Deteccin de portadora Entrada Salida Enlace de comunicacin en proceso
20 DTR Equipo terminal listo Salida Entrada DTE listo para comunicarse
22 RJ Indicador de llamada Entrada Salida Anuncia en llamado entrante
23 DSRD Rata de la seal de datos Cualquiera Cualquiera Indicador de la rata de datos

Conectar DB-9 Tabla 14.1 Lneas RS-232 en un conector DB-25


IBM-PC
estndar, el equipo DTE debe tener un conector
Lnea Conector RS-232 Conector RS-232
tipo macho y el DCE un conector tipo hembra.
25 pines 9 pines
TD 2 3 Estas lneas se puede clasificar en dos gru
RD 3 2 pos: las de funciones de datos y las de fu n cio
RTS 4 7 nes de control. Solo hay dos lneas para fu n
CTS 5 8 ciones de datos, por la lnea 2 se transm iten
los datos y por la ln ea 3 se reciben. Las d e
DSR 6 6
ms ln eas se u tilizan para efectos de control
Comn 7 5 del flujo de los datos y el nom bre de cada una
DCD 8 1 de ellas refleja su funcin desde el punto de
DTR 20 4 vista del equipo D TE.
Rl 22 9
La interfaz R S-232 ha llegado a estandarizar
Tabla 14.2 Conector RS-232 de 9 pines (DB-9) la com unicacin entre dos terminales de datos
por medio de un mdem, un enlace de com uni
tos (DTE) o Equipo de Com unicacin de Da
cacin y otro mdem, figura 14.12.
tos (DCE). Inicialm ente podemos entender un
DTE como una computadora y un DCE como
Caractersticas elctricas
un mdem, figura 14.11.
El estndar R S-232 se aplica a ratas de datos de
hasta 20.0 0 0 bits por segundo y hasta 15,24
El estndar define 25 lneas con sus corres
pondientes nmeros de pines dentro de un co
nector. De las 25 lneas 11 tienen que ver con la -* *
com unicacin no sincrnica y se pueden apre
ciar en las Tablas 14.1 y 14.2, donde se muestra _ Interfaz _
la distribucin para conectores de 25 (D B-25) y RS-232

9 pines (DB-9). De la misma manera, segn el Figura 14.12 Comunicacin serial por medio de un mdem

Curso prctico sobre Microcontroladores


l A i t i - u i i u e d a u t i L tis c L iiiL L ic t iC L a L iL ^ s e L d L e s

C uando u tilizam o s comunicaciones seria


les externas en un m icrocontrolador, las sa li
das digitales de 0 y 5 voltios deben aco n d i
cionarse para llegar a los niveles R S-232 . Este
Salida
problem a se puede resolver fcilm en te por
RS-232 m edio de una configuracin de transistores o
por m edio de un circu ito in tegrad o especial,
al cual se le entregan los niveles T T L y arroja
los niveles R S -2 3 2 , fig u ra 14.13. De este tipo
Lgica RS-232 PIC de in tegrados existe una gran variedad y m u
Marca (1) -3 a 12V 5V chas em presas fabricantes de circuitos los han
Espacio (0) +3a+12V OV desarrollado satisfactoriam ente.

Figura 14.13 Interfaz RS-232 con un microcontrolador El cdigo ASCII


Cuando queremos transm itir caracteres que los
metros de longitud del cable, aunque esta longi humanos podamos leer y entender, debemos co
tud se puede extender por medio de unos dispo dificarlos por medio de una combinacin de bits.
sitivos repetidores de seal que corrigen los nive El cdigo de texto de ms aceptacin se llam a el
les de voltaje. cdigo ASCII.

Com o estam os trabajando con com unica ASCII es un conjunto de caracteres codifi
ciones binarias, solo se han definido dos posi cados en 7 bits que cuenta con 95 caracteres im
bles estados para la seal: m arca y espacio. Una primibles y 33 no imprimibles. Los primeros in
m arca es un uno lgico y su seal de voltaje, cluyen letras minsculas, maysculas, los nm e
para que sea com prendida correctam ente, debe ros del 0 al 9, caracteres de puntuacin y otros.
estar en el rango de - 3 hasta 15 voltios.
Los segundos se denom inan caracteres de
Un espacio es un cero lgico y su voltaje debe control y sirven para m anejar la comunicacin.
estar entre +3 y +15V para que el receptor lo Los caracteres im prim ibles tambin se conocen
pueda leer adecuadamente. Si una seal se en como caracteres grficos o lebles por humanos y.
cuentra en el rango comprendido entre 3 y +3V son codificados desde $20 hasta $7E como se
se entiende como un estado indeterminado. muestra en la Tabla 14.3.
Nibble bajo

0 1 2 3 4 5 6 7 8 9 A B C D E F
0 NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI
1 DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US
2 ! ( *
SP # $ % & ( ) + / -

3 0 1 2 3 4 5 6 7 8 9 < r= > ?
4 @ A B C D E F G H I J K L M N 0
5 P Q R S T U V W X Y Z \ A
[ l
6 a b c d e f g h i j k I m n 0
7 P Q r s t u V w X
v z I } DEL
<
Tabla 14.3 Cdigo ASCII
a *
128 < @ m iK < IIT s , Curso prctico sobre Microcontroladores
Teora

Jum per de 1
DTE seleccin
(25 pin)
6 80 Q
10 D1
DTR 20 PA2 PB7
11
TD 2 PA1 PB6

3 9
RD PA3 PB5
12 A D 4 --
RTS PAO PB4 v a H i
GND PA4/T0CKI PB3
COM PB2 ^ w ^ S b - L -
' PB1 W v H |
INT/PBO
16C5X, 16F84
16C62X, 16C55X

Vdd

v ss +5V

MCLR
0SC1
10K
0SC2

IDI
22pF 4 = 4MHz 4 = 22pF i Reset
opcional

Figura 14.14 Esquema del circuito para comunicacin serial

La mejor manera de aprender el manejo y el embargo, esas funciones se pueden desarrollar con
establecimiento de comunicaciones seriales con algunas lneas de cdigo. En muchas ocasiones,
microcontroladores es a travs de algunos ejem esta opcin representa una efectiva y econmica
plos bsicos. Ahora entraremos a analizar dos solucin, y por lo tanto debe ser considerada. El
casos tpicos sobre microcontroladores PIC de circuito de la figura 14.14 puede utilizarse con
18 pines: las comunicaciones H alf-D uplexy Full- muchos microcontroladores PIC d el 8 pines y el
Duplex. Daremos algunas rutinas bsicas genri objetivo siempre ser el de comunicarnos con una
cas que no estn ligadas a ningn microcontro computadora por medio de su puerto serial, que
lador en particular y que pueden ejecutarse so har las veces de equipo DTE y quien deber
bre la configuracin de circuitos mostrada en la estar ejecutando un programa term inal que per
figura 14.14. m ita monitorear todos los datos que transm ita o
reciba por este puerto.
Comunicacin no sincrnica en
microcontroladores Si el lector no tiene amplios conocimientos en
Como ya lo mencionamos, los microcontrola algn lenguaje de programacin, no hay problema:
dores ms pequeos no cuentan con mdulos Windows ofrece el programa hyperterm inal que lo
especializados de com unicacin (U ART). Sin podemos utilizar fcilmente.

Curso prctico sobre Microcontroladores


liiiiu iiiu a L i t i la s s u l i i u .i i l c c .C'L u Li a s S L H a l s s

L I B l . GRP------------------------------------------------------------ ; AL S A L IR EL PUERTO DE TX DEBE QUEDAR EN


ESTE PRIMER MDULO RECIBE UN CARCTER DE 8 ; ALTO .
B IT S , 1 DE IN I C I O , 1 DE
PARADA Y S IN PARIDAD
RESULTADO F IN A L : CARCTER R EC IBID O EN EL TRA_ASINC
REGISTRO REGREC BCF PORTA >TX B IT DE IN IC IO
CALL B IT ; ESPERO EL TIEMPO DE 1
BIT
REC_ASINC MOVLW 08 8 B IT S DEL CARCTER
BCF BANDERA,1 L IM P IA BANDERA DE KMNF OJENT/LBir SE CARGA EN ESTE
ERROR DE IN IC IO REGISTRO
BCF BANDERA,0 L IM P IA BANDERA DE TRA_ASINC1
ERROR DEL PAQUETE RRF REGTX ,F ROTA B IT A TRAV...S DEL
MOVLW 09 8 B IT S DE DATOS + 1 ; CARRY
DE PARADA BTFSC ESTADO,C CARRY = 0 ?
MOVWF CUENTA_BIT GOTO TRA.ASINC2 NO - > C = 1 , PA1 =1
BCF PORTA >TX B IT DE DATOS = 0 .
REC_ASINC1 PA1= 0
BTFSC PORTA,RECE ; LLEGO B IT DE GOTO TPAj ASING Y SALTO
; IN IC IO ? TRA_ASINC2
GOTO REC_ASINC1 ; NO - > REGRESO BSF PORTA,TX B IT DE DATOS = 1 ,
CALL M ED IO _B IT ; S I - > ESPERO UN PA1 = 1
; TIEMPO DE 1 /2 B IT
BTFSS PORTA,RECE ; AN SE TIENE EL B IT TRA_ASINC3
; DE IN IC IO ? CALL BIT 1ESPERA EL TIEMPO DE 1 BIT
GOTO REC_ASINC2 ; S I - > SALTO A DECFSZ C U E N TA _B IT,F :YA SE ENVIARON
; REC_ASINC2 LOS 8 B IT S ?
BSF BANDERA,1 ; NO - > ACTIVO B IT 1 GOTO TRA_ASINC1 NO - > IR POR EL
; DE BANDERA SIGUIENTE B IT
(DIO RECASINCJIN ; Y SALGO BSF PORTA >TX S I - > HACER EL B IT
DE PARADA
REC_ASINC2 CALL B IT ESPERA EL TIEMPO DE 1 B IT
CALL B IT ; ESPERO EL TIENFO DE 1 BIT RETLW 0
DECFSZ CUENTA-BIT,F ; ACTUALIZO EL
; CONTADOR E B ITS
GOTO REC_ASINC3 ; S I NO HA TERMINADO ; RETARDO U T ILIZ A D O PARA TEMPORIZAR LOS B ITS
; EL PAQUETE SALTO.
BTFSS PORTA,RECE ; B IT DE STOP LIS TO ? RET MOVF CONTAB,W
BSF BANDERA,0 ; NO - > ACTIVO B IT 0 MOVWF CONTAC
; DE BANDERA R E TI MOVF CONTAA,W
GOTO RECASINCFIN ; Y SALGO MOVWF CONTAD
RET2 DECFSZ CONTAD,F
REC_ASINC3 GOTO RET
BSF ESTADO,C ACTIVO EL CARRY DECFSZ CONTAC, F
BTFSS PORTA,RECE TOMO EL B IT DE GOTO R E TI
DATO. ES 1? RETLW 0
BCF ESTADO,C NO - > BORRO CARRY
RRF REGREC,F ROTO EL CARRY CON EL M E D IO _B IT
REGISTRO DE RX MOVLW D 3 '
GOTO REC_ASINC2 SALTO PARA ESPERAR MOVWF CONTAB
EL SIG U IENTE B IT MOVLW D 20'
MOVWF CONTAA
REC_ASINC_FIN CALL RET
RETLW 0 ; SALID A RETLW 0

B IT MOVLW D 3'
MOVWF CONTAB
ESTE SEGUNDO MDULO ENVA UN CARCTER DE 8 MOVLW D4 3
B IT S , 1 DE IN IC IO , 1 DE PARADA MOVWF CONTAA
S IN PARIDAD CALL RET
ENTRA: CARCTER A SER ENVIADO EN EL RETLW 0
REGISTRO REGTX Y PORTA,1 DEBE
ESTAR EN ALTO
Figura 14.15 Rutinas de recepcin y transmisin no sincrnica

Curso prctico sobre Microcontroladores


En la figura se puede apreciar que el micro Recepcin Half-Duplex
controlador se conecta a la com putadora por Con el objeto de tener el control sobre la trans
medio de un transceiver, conformado por el cir m isin, se ha definido un registro de banderas
cuito integrado M AX232 y los pines de conexin (BANDERA) cuyos bits se activan o desactivan
entre este ltim o y un conector para puerto se de acuerdo a los errores encontrados. Si el m i
rial tipo DB-25; como elementos de sealizacin crocontrolador detecta un b it de. inicio cuya d u
se han conectado diodos LED en los puertos del racin es menor al tiempo normal de 1/2 bit, lo
microcontrolador.
Borrar banderas 1
Comunicacin Half-Duplex
i l. Activar el carry
En muchos casos la aplicacin de una com unica
cin H alf-D uplex es ms que suficiente para sa [ Contador de 1
4
\
1 bits = 9
tisfacer plenamente las exigencias de un sistema
Bits de no
en donde se transmiten datos. entrada de h J Borrar el carry
i
datos = 1?

Desde el punto de vista del receptor se pue


Bitde inicio?
den dar dos casos: el primero, es cuando el mi
crocontrolador debe obligadamente esperar la lle i
Rotar el carry a
gada de un carcter para poder ejecutar sus ta la derecha en el
reas, caso en el cual podemos hacer que el pro Espera un perodo
registro de Rx
gram a se encierre en un ciclo hasta que llegue el de 1/2 bit
carcter. El segundo caso se presenta cuando el
microcontrolador posee un tiempo limitado para T
esperar el carcter ( tim eou t ), ya que debe estar No
An en el Activar bandera
pendiente de otras actividades. de error
b it de inicio?

Los mdulos de softw a re mostrados en la Si


figura 14.15, conforman las subrutinas de re
i
cepcin y transm isin. La velocidad de trans Espera un
misin es de 2.400 bps y cada carcter posee un perodo de 1 bit
formato compuesto por 1 b it de inicio, 8 bits de
datos y 1 b it de parada, figu ra 14.16.
Decrementa

i
contador de bits

1 2 3

Si No Activar bandera
8/sde
Bit de inicio B it de parada Contador
parada? de error en la
de bits = 0 ? estructura
LSB- MSB
Figura 14.16 Formato del carcter Si
4 No
Leer b it
Bandera 3 2 1

Disponibles L B it de
estructura
Error de Figura 14.18 Diagrama de flujo de la rutina de
F ig ura 14.17 Registro BANDERA
inicio recepcin no sincrnica

Curso p r c tic o sobre M icrocontroladores


.L iiru iiu e c L u u e la s c u lu iilu c lc lu lil^ g|gLig

ms probable es que se trate sim plem ente de un A l detectar la presencia de un cero lgico
ruido que apareci en la lnea y en ese m om en en la lnea, se presume que se trata del b it de
to se activa el b it 1 de BANDERA. Si por algu inicio, se debe esperar un tiem po (1/2 bit) y de
na razn el b it de parada no llega en el m om en nuevo comprobar que ese nivel permanece en
to exacto que se esperaba, se genera una nueva la lnea; si la comprobacin no es exitosa se es
situacin de error y se activa el b it 0 de BAN tablece un estado de error en la transm isin,
DERA, figura 14.17. activndose el b it 1 de BANDERA. Si se ha
comprobado la llegada del b it de inicio, se es
La estructura del programa es la que se muestra pera el tiempo gastado por un b it para hacer la
en la figura 14.18. All podemos apreciar como ini prim era lectura; en este punto se ha esperado
cialmente entra en un ciclo de espera del cual no sale un tiem po de 11/, bits desde que se detect el
hasta que se ha detectado la llegada del primer bit. b it de inicio hasta que se ley el prim er bit. A
partir de ese momento se hacen 9 lecturas, cada
una separada por el tiempo gastado por un bit.
Si la novena lectura es un uno lgico se asume
una lectura correcta y el valor ledo se coloca en
el registro REGREC. Si el noveno b it no co
rresponde a un uno, se configura un estado de
error denom inado error en la estructura y se
activa el b i t 0 del registro BANDERA.

El registro de recepcin toma el dato de la


transmisin por medio de un procedimiento en
el cual el b it ledo se coloca en el b it ca rry del
registro de estado y se hace una rotacin del re
gistro REGREC.

La subrutina de retardo la podemos apre


ciar en la figu ra 14.19. Se com pone de un c i
clo em bebido dentro de otro ciclo que se repi-

Rata Tiempo de 1 b it Tiempo 1/2 b it


Bits/s (B s) (B s)
110 9090,89 4545,5
300 3333,3 166,7
600 1666,6 833,3
1200 833,3 416.7
2400 416,7 208,3
4800 208,3 104,2

Retardo = (3 * Contadorl * Contador2 9600 104,2 52,1


+ 5 * ContadorB)(Tiempo del 19200 52,1 26
ciclo de reloj)
Tabla 14.4 Tiempos empleados para distintas velocidades
Figura 14.19 Diagrama de flujo de la subrutina de retardo de transmisin

Curso prctico sobre Microcontroladores


Teora

te un cierto nm ero de veces decrem entado al Transmisin no


gunos registros. En la tabla 14 .4 se m uestran sincrnica
los distintos periodos de tiem pos que em plean
un b it , y 1/2 de b it pata, las distintas velocida
des de transm isin.

La instruccin RRF: rote el contenido del regis


tro f a la derecha, usando el carry

Sintaxis: RRF f,d


Los bits del registro f son desplazados una casilla
hacia la derecha, y el bit que ocupaba la posicin
cero es ahora el b it carry. Si d=0 el resultado final
se guarda en W, si d= 1 el resultado se guarda en f.

Transmisin Half-Duplex
Para desarrollar esta funcin se debe tener el
cuidado de m anejar la m ism a velocidad y for
m ato de los caracteres que los utilizados en la b its = 0 7
recepcin, pero en este caso no se han estable
cido banderas de error. Si
Enviar b it de
El dato que se va a enviar serialm ente debe parada
estar alm acenado en un registro denom inado
registro de transm isin. La transm isin debe
Espera un
empezar colocando un cero lgico por la lnea perodo de 1 b it
de salida que corresponde al b it de inicio, luego
espera el tiem po correspondiente a un b it para
que el tiempo de dicho b it sea el apropiado y a
partir de ese m omento se hacen ocho rotacio
Figura 14.20 Transmisin no sincrnica
nes (a travs del carry) del registro de transm i
sin, figura 14 .2 0. Aplicacin de las rutinas de recepcin
y de transmisin no sincrnicas
Cad a vez que se hace una ro tacin a la Estudiemos ahora una situacin en la cual sim-
derecha del registro de transm isin, cada uno plemente se recibe un byte carcter desde una
de los bits de datos em pieza a circu lar secuen- term inal (PC) y ese mismo carcter se enva de
cialm en te por el ca rry. De esta m anera solo nuevo hacia ella (es lo que se conoce como eco);
necesitam os chequear el estado de dicho b it para visualizar el proceso se puede utilizar el pro-
para saber el estado que debe tom ar la ln ea gram a hyperterm inal de W indow s 95/98. El
de transm isin en cada in stan te de tiem po, diagram a de flujo del ejercicio lo podemos apre
figura 1 4 .2 1 . ciar en la figura 14.22.

Curso prctico sobre Microcontroladores m /K tMT


Rotar a la derecha S E R IA L 1 .A S M ----------------------------------------
el registro de E J E R C IC IO DE C O M U N IC A C I N S E R IA L
transmisin a
travs del carry 2 4 0 0 B P S , 1 B I T DE I N I C I O , 1 DE PARADA
ENTRADA DE D A T O S : PA3
S A L ID A DE DATOS : P A 1 , D T R : PA2
R A D IX H E X
L IS T P = 1 6 F 8 4
Carry = 1? Pin deTxen bajo C EQU 0
Z EQU 2
W EQU 0
F EQU 1
l RECE EQU 3
Pin d eT xen alto TX EQU 1
ESTADO EQU 03

* PORTA
T R IS A
EQU
EQU
05
85
Fig ura 14.21 Estableciendo e l dato de la lnea de transmisin PORTB EQU 06
T R IS B EQU 86
BANDERA EQU 0C
CUENTA_CHAR EQU 1C
C U E N T A _ B IT EQU ID
CONTAA EQU 1E
CONTAB EQU 1F
CONTAC EQU 0D
CONTAD EQU 0F
REGREC EQU 10
REGTX EQU 11
ORG 0
IN IC IO
C LR F PORTA
BSF E S T A D O ,5 S A L T A A L BANCO 1
MOVLW B 0 0 0 0 1 1 1 1
MOVWF T R IS A
MOVLW 0 X 0 0
MOVWF T R IS B
BCF E S T A D O ,5 S A L T A A L BANCO 0
Figura 14.22 Ejercicio de comunicacin BSF P O R T A ,2 D E S A C T IV A DTR
BSF P O R T A ,1 SALE ESTADO DE MARCA
Cuando el sistema est listo para recibir un LAZO C LR F BANDERA
carcter, activa la lnea de D TR (D ata Term inal BCF P O R T A ,2 A C T IV A DTR
Ready); al recibir el dato, el microcontrolador C A LL R E C .A S IN C
BSF P O R T A ,2 D E S A C T IV A DTR
deshabilita la lnea D TR (PA2) y enva el mismo
C A LL B I T ESPERA UN PERICCO DE 1 B n
carcter hacia el term inal. D eshabilitar D TR
BTFSS B A N D E R A ,0 ERROR EN LA ESTRUCTURA?
equivale a decirle al terminal que no enve ms GOTO L A Z 0 1
caracteres porque el microcontrolador est ocu MOVLW 1 0 N A K
pado y no va a recibir ms datos porque ahora l MOVWF REGREC Y LO D EVUELVE
es quien va a transmitir. LAZ01 MOVF REGREC,W
MOVWF REGTX
C A LL T R A _ A S IN C
Este es un ejemplo muy sencillo de control GOTO LAZO
del flujo de la comunicacin en una transmisin IN C L U D E L I B 1 . GRP
Half-Duplex, si el microcontrolador recibe un bit END
de error en el registro bandera, retorna un carc- Figura 14.23 Cdigo fuente del ejercicio de comunicacin serial

Curso prctico sobre Microcontroiadores


ter ASCII indicador de que reconoci el error. controladores son dispositivos que ejecutan una
En las redes de com unicacin, cuando el emisor serie de instrucciones de manera secuencial a tra
se ha enterado de este carcter, puede tomar ac vs del tiempo, este tipo de comunicacin debe
ciones tales como enviar nuevamente el dato. implantarse dividiendo el proceso de recepcin
y transmisin en distintas tareas. Como hemos
El cdigo fuente del ejercicio lo podemos visto anteriormente, la unidad bsica de trans
apreciar en la figura 14.23 El m icrocontrola misin dentro de las comunicaciones no sincr
dor habilita la lnea D TR para informar que est nicas es el bit, si el tiempo empleado por cada
listo p ara re c ib ir datos y lla m a la ru tin a una de estas unidades se divide en pequeos in
REC_ASIN C para tomar el carcter. Al hacer tervalos de tiempo, podemos hacer una buena
la recepcin y si no se ha activado ninguna ban simulacin de operaciones simultneas de trans
dera de error, el dato pasa del registro de recep misin y recepcin. Para ello, simplemente se eje
cin REGREC al registro de transm isin REC- cuta la tarea de recepcin en un instante de tiem
TX y se transm ite. po y la tarea de transmisin en el siguiente ins
tante; este modo de trabajo es viable siempre y
Recordemos que la rutina de recepcin en cuando se tenga un estricto cuidado en el con
realidad lee el b it de parada cuando ste an trol de los tiempos, el cual se hace mediante su-
est en la m itad de su periodo. Para evitar con brutinas de retardo basadas en ciclos anidados
flictos es conveniente esperar un periodo de un de programa. En la figura 14.24 podemos apre
b it despus de que se ha deshabilitado la lnea ciar el manejo que se debe hacer del tiempo de
D T R ; de esta m anera evitaremos algunos ries recepcin y transmisin; all podemos observar
gos como por ejem plo, que el m icrocontrola como el tiempo de cada b it se ha dividido en
dor enve datos cuando el term inal an esta pequeos intervalos que sirven para definir el
em itiendo el b it de parada. instante exacto en que deben operar cada una de
las tareas. Observemos como la transmisin se
Comunicacin serial Full-Duplex lleva a cabo slo a partir de que la recepcin ha
Este tipo de comunicacin se caracteriza por de reconocido satisfactoriamente cada uno de los bits
sarrollar simultneam ente los procesos de recep de datos, mostrando una especie de intercalado
cin y transm isin. Debido a que los m icro en la ejecucin de ambos procesos.

T ie m p o de
1 /4 de b it

Recepcin

r Reconocimiento
del b it d in itio
(.ectpra (le
prirrter b it
L L ectura del
segund bit
(le dptos de c)ato$

Transmisin

.A lm a c e n a . A lm a c e n a
b it de inicio prim er b it de
datos

Figura 14.24 Temporizacin de las tareas

Curso prctico sobre Microcontroladores < s m iK iim


Introduccin a las comunicaciones seriales

mero un archivo (full.grp) con las distintas su-


brutinas que se requieren para transm itir y reci
bir estilo Full-Duplex.

Para controlar los distintos estados de la co


m unicacin se ha establecido un registro b an
deras denom inado BA N CO M , cuya distribu
cin se muestra en la parte de abajo.

En la figura 14.26 podemos apreciar el c


Usuario digo del program a que desarrolla el m todo de
las tareas para distintos instantes de tiem po, el
Figura 14.25 Lazo de tareas cual podemos in clu ir dentro de nuestro pro
yecto particular. En este program a podemos
Una segunda posibilidad para hacer la dis d istin gu ir claram ente la m anera como se cons
tribucin de tareas en instantes de tiempo es con truyeron las dos tareas. Existe una tarea a d i
figurando una interrupcin del temporizador, cional denom inada la tarea del usuario. Ella
bajo la cual se ejecutan secuencialmente la re contiene, como su nombre lo sugiere, los pro
cepcin y la transmisin. cedim ientos especficos que l requiere para su
proyecto particular.
Estudiemos un programa de ejemplo donde
podamos visualizar m ejor estos esquemas. Se En cualquier programa que utilice estas su-
compone de tres partes o tareas principales: la brutinas, la tarea del usuario debe primero che
tarea de recepcin, la tarea de transmisin y la quear la existencia de nuevos datos recibidos (ban
tarea del usuario. Todas ellas se ejecutan secuen dera BANUDA) y si se ha recibido un nuevo ca
cialmente por estar dentro de un ciclo que se rcter debe moverlo hacia el registro de datos reci
cum ple indefinidamente, figura 14.25. Para fa bidos; de esta manera, el registro de recepcin del
cilitar el desarrollo de este programa se cre pri usuario queda disponible para nuevas lecturas.

B IT BANDERA DE INDICACIN
0 R e c ib ie n d o ( B A N R E C E ) 1 a l r e c ib ir e l b it d e in ic io
0 a l r e c ib ir e l b it d e p a ra d a
1 ltim o b it ( B A N U L B ) 1 a l r e c ib ir e l lt im o b it de d a to s
0 a l r e c ib ir e l b it d e p a ra d a
2 E r r o r e n la e stru c tu ra (B A N E S T ) 1 s i n o se r e c ib i b it d e p a ra d a e n e l d c im o p e rio d o
0 p o r e l u s u a rio
3 N u e v o d a to re c ib id o ( B A N U D A ) 1 a l r e c ib ir e l b it d e p a ra d a
0 p o r e l u s u a rio
4 E r r o r e n la re c e p c i n ( B A N R E S ) 1 s i a l r e c ib ir e l lt im o b it de d a to s , la b a n d e ra n o se a c tiv
0 p o r e l u s u a rio
5 T r a n s m itie n d o ( B A N T X ) 1 a l in ic io d e l b it de in ic io
0 a l fin a l d e l b it d e p a ra d a
6 D a to s d e tra n s m is i n lis to s 1 p o r e l u s u a rio
(B A N D A T R ) 0 a l in ic io d e l b it de in ic io
7 T r a n s m is i n com p leta (B A N T X F ) 1 a l fin a l d e l b it d e p arada
0 p o r e l u s u a rio

Curso prctico sobre Microcontroladores


; = = = F U L L .G R P = = = = = = = RETA4 NOP
GOTO RETAI
; R E C E P C IO N RETAI GOTO R3
) R3 GOTO R4
R E TA SET RETAI R4 GOTO RETA2
FREC BTFSS BAN C O M ,B AN R EC E ; RETA2 NOP
GOTO FR E C 2
D E C FS Z LAZO R EC E ; T R A N S M IS IO N
>
GOTO E T2 TXON B TFSS BA N C O M .B A N TX T R A N S M IT IE N D O ?
BTFSC B A N C O M ,B A N U LB BAN D ER A DE U L T IM O B I T ? GOTO TXO N2 N O -> I R A TXO N 2
GOTO FR E C 3 S I -> I R A FREC 3 DECFSZ L A Z O T X ,F S I - > A C T U A L IZ A R
BSF E S T A D O ,C NO - > LE E R B I T CONTADOR DE LAZO
RRF R E G R E C .F R O TAR CARRY EN EL S A LT O GOTO RETA5 B I T AU N NO ES TA
B Y T E DE RX
C O M P LE TO . I R A RETARDO
MOVLW 04 CARGO CONTADOR MOVLW 04
MOVWF LA Z O R EC E MOVWF LA Z O T X T IM E O U T . I N I C I A L I Z A R
D EC FS Z R O T A B IT A C T U A L IZ A C O NTADO R . CONTADOR DE LAZ O
S A L T A S I SON O CHO. D EC FS Z C N T B IT X .F AC TU ALIZAR CONTADOR DE B IT
GOTO RETAI S I N O -> I R A RETARDO GOTO TX0N4 NO SE HAN E N V IA D O TODOS
BTFSS B A N C O M ,B AN U D A B AN D ER A DE NUEVO DATO LOS B I T S > I R A
R E C IB ID O ? S IG U IE N T E B I T
BSF B A N C O M ,B AN R ES BCF BA N C O M .B A N TX SE HAN ENVIADO TODOS LOS B IT S .
BSF B A N C O M ,B A N U LB A C IT V A R BANDERA DE BSF BANCO M , BANTXF ACTIVAR BAOERA DE TX C O fLE T A
U L T IM O B I T GOTO RETA6
MOVF REG R EC .W M OVER BY TE R E C IB ID O A L
R E G IS T R O DEL TX0N2 BTFSS B AN C O M ,B AN D ATR ; D ATO S DE L A T X L IS T O S ?
R E C E P C IO N D E L U S U A R IO . GOTO RETA7 NO - > RETARDO
MOVWF RECE BSF B AN C O M .B A N TX DATOS LISTOS. ACTIVAR BANDERA
GOTO RETA2 IR A RETARDO MOVLW 0A
MOVWF C N T B IT X ; IN IC IA L IZ A R CONTADOR DE B IT S
FR E C 2 MOVLW 04
BTFSC P T O E N T .P IN E N T B I T DE I N I C I O ? MOVWF LA Z O T X IN IC IA L IZ A R CCNTADCR DE LAZOS
GOTO RETA3 N O -> RETARDO MOVF R E G D A T.W MOVER DATO D E L U S U A R IO
BSF BAN C O M ,B AN R EC E ; S I - > A C T IV A R BAN DER A A L R E G IS T R O DE TX
DE R E C E P C IO N BCF BANC O M , BANDATR L IM P IA R BANDERA DE
MOVLW 08 IN IC IL IZ A R CONTADOR DE DATOS DE T X L IS T O S
B I T S DE R E C E P C IO N
MOVWF R O T A B IT ET3 BCF P TO SAL . P IN S A L ; B I T DE I N I C I O
MOVLW 05 GOTO TX0N8
MOVWF LAZO R EC E IN IC IA L IZ R CONTADOR TX0N4 BSF E S T A D O ,C
DE LA Z O S DE RX RRF R E G T X .F MOVER B I T DE DATOS AL CARRY
GOTO RETA4 IR A RETARDO TXO N 5 BTFSC E S T A D O ,C CARRY = 0 ?
GOTO TX0N6
FR EC 3 BCF P T O S A L ,P IN S A L S I - > B I T DE DATO = 0 ,
BTFSC P T O E N T .P IN E N T B I T DE PAR AD A? L IM P IA R P IN P A 1
GOTO FR EC 4 GOTO TX0N7
BSF B A N C O M ,B A N E S T N O -> A C T IV A R BAN DER A TX0N6 BSF P T O S A L ,P IN S A L PONER EN UNO P I N P A 1
DE ERROR EN ESTRU CTU RA NOP
FR E C 4 TX0N7 GOTO TX0N8 F IN A L IZ A R LA T X
BCF BAN C O M ,B AN R EC E L IM P IA R BANDERA DE RETA5 NOP
R E C E P C IO N RETA7 GOTO ET4
BCF B A N C O M ,B A N U LB BORRAR BANDERA DE ET4 GOTO ET5
U L T IM O B I T R E C IB ID O E T5 GOTO RETA6
BSF B A N C O M ,B AN U D A A C T IV A R BAN D ERA DE RETA6 GOTO ET6
NU EVO DATO R E C IB ID O ET6 GOTO ET7
GOTO R E TA E IR A RETARDO ET7 GOTO TX O N 8
ET2 NOP TX0N8 NOP S A L IR DE L A T R A N S M IS IO N
RETA3 GOTO R1 LASO D E C FS Z C O N R E T , F
R1 GOTO R2 GOTO LASO
R2 GOTO RETA4 RETLW 0

Figura 14.26 Subrutinas de recepcin y transmisin

Curso prctico sobre Microcontroladores E tC B Y ,l 137


lii m u c L n ii a \m E fiiL L L ie a d u u irS f e in t t e

BANRES EQU 0 4 ;S O B E F L U J O EN L A RX
BANTX EQU 0 5 B A N D E R A DE T R A N S M IS IO N
m M ii N T r a r i r i N s f r t i no s in c r n ic a BANJATR EQU 0 6 B A N D E R A DE DATO S L IS T O S PAR A TX
--------------------------------------- f u i i m iD i fv B A N T X F EQU 0 7 B A N D E R A DE T R A N S M IS IO N COM PLETA
P T O S A L EQU PORTA
R A D IX HEX P IN S A L EQU 01
L IS T P = 16F84 P TO EN T EQU PORTA
C EQU 0 P IN E N T EQU 03
Z EQU 2
DC EQU 1 ORG 0
PD EQU 3 I N I C I O CLRF PORTA
TO EQU 4 BSF P T O S A L ,P IN S A L ; E N V IA R MARCA
RPO EQU 5 CLRF PORTB
RP1 EQU 6 BSF E S T A D O ,R P O
W EQU 0 MOVLW 00E9
F EQU 1 MOVWF T R IS A ; CO NFIG URANDO P IN E S PTO A
; R E G IS T R O S DE L A CPU BCF E S T A D O , RPO
CLRF BANCOM
IN D F EQU 00 BSF B A N C O M ,B A N T X F ; A C T IV A R BAN DER A DE T X
TMRO EQU 01 ; CO M PLETA
PCL EQU 02 GOTO FREC
ESTAD O EQU 03 in c lu d e F U L L .G R P
FSR EQU 04
P O R TA EQU 05 ; T A R E A D E L U S U A R IO
PO R TB EQU 06 >
E E D A T A EQU 08
EEADR EQU 09 ECO BTFSS B A N C O M ,B A N U D A ; NUEVO DATO R E C IB ID O ?
P C LA T H EQU 0A GOTO RET7
IN T C O N EQU 0B MOVF R E C E ,W ; S I - > TOMAR LO S DATOS
O PTR EG EQU 01 ; R E C IB ID O S
T R IS A EQU 85 MOVWF REG DAT ; Y L L E V A R LO S A L R E G IS T R O DE T X
T R IS B EQU 86 ; D EL U S U A R IO
E E C 0N 1 EQU 08 BCF B A N C O M ,B A N U D A ; BORRAR BAN DER A DE NUEVO
; DATO R E C IB ID O
; M E M O R IA DE TR A B A JO B TFSS B A N C O M ,B A N T X F ; T X C O M PLETA?
> GOTO R ETA8
BANCOM EQU 0C BCF B A N C O M ,B A N T X F ; BORRAR BAN DER A DE F I N
C ONRET EQU 0D ; DE T X
REGREC EQU 0E BSF B A N C O M ,B A N D A T R ; A C T IV A R BAND ERA DE
R ECE EQU 0F ; DATOS DE T X L IS T O S
LAZCRECE EQU 10 GOTO RETA9
R O T A B IT EQU 11 RET7 GOTO RETA8
R EG TX EQU 12 GOTO Ql
R E G D A T EQU 13 Ql NOP
L A Z O T X EQU 14 RETA8 NOP
C N TBITX EQU 15 GOTO RETA9
BAN U SU EQU 16 RETA9 MOVLW D 14 '
; B I T S D E L R E G IS R O BANCOM MOVWF CONRET
BANRECE EQU 0 0 ; BAN D ER A D E R EC E P C IO N C A LL LASO
BA N U LB EQU 0 1 ; BAN D ER A DE U L T IM O B I T GOTO Q3
B A N E S T EQU 0 2 B A N D E R A DE ERROR EN L A ESTR UCTURA Q3 GOTO FREC
BAN U D A EQU 0 3 B A N D E R A DE N U EVO DATO R E C IB ID O END

Figura 14.27 Cdigo fuente del ejercicio

De la m ism a m anera, el usuario no debe quieren de la intervencin del program ador


mover ningn dato al registro de transm isin para m odificarlas,
hasta que esta tarea haya activado la bandera
de transm isin com pleta (BAN TXF).Todas las
banderas se en cuentran d isponibles para el
u s u a r i o ; a lg u n a s d e e lla s s o n a c t iv a d a s o d e s a c - E l p r o g r a m a q u e p o d e m o s a p r e c ia r e n la figura
t iv a d a s p o r la s d i s t i n t a s ta r e a s , p e r o o t r a s r e - 1 4 . 2 7 a p lic a la s s u b r u t in a s d e l p r o g r a m a a n t e r io r y

Curso prctico sobre Microcontroladores


con ellas se encarga de recibir un carcter, prove Si se han recibido nuevos datos, el carcter
niente de un terminal y lo devuelve (enva un eco) recibido se mueve desde el registro de datos reci
hacia este ltimo. Si el terminal enva continua bidos del usuario hacia un registro denominado
mente caracteres, los cuales se devuelven de la mis registro de datos de transmisin y se desactiva la
m a manera, se configura un sistema funcionando bandera BANUDA(BAndera de NUevo DAto
como Full-Duplex. El formato del carcter para este recibido) indicando al usuario que se ha tomado
ejemplo es de ocho bits de datos, sin bit de paridad el nuevo carcter. Si el transmisor no se encuen
y un bit de parada; los datos viajan a una velocidad tra ocupado, se activa la bandera de datos de
de 2.400 bps, si el cristal es de 4MHz. transmisin listos (BANDATR) lo que le indica
a la subrutina de transmisin que puede empe
Com o se anot an teriorm ente, el p ro gra zar su trabajo. Despus de esto el control del pro
m a hace un lazo cuyo tiem po de ejecucin gram a pasa a la tarea de recepcin.
equ ivale al tiem po de duracin de un b it d i
v id id o entre cuatro. Si estam os trabajan d o a Tareas del usuario
una velocidad de 2 .4 0 0 bps, cada b it es d e
4 1 2 6 ,6 6 m icrosegundos y por tanto el lazo
se debe dem orar 104,17 m icrosegundos, es No
Se recibi
d ecir 104 ciclos de in struccin (si se trab aja nuevo dato?
a 4 M H z ). La tarea del usuario tiene un n
m ero lim itad o de ciclo s, de acuerdo a los
Si
em pleados por las otras dos tareas; en la Ta
b la 1 4.2 se m uestran algunos resultados que Mover datos
recibidos al registro
nos dicen cuantos ciclos se em plean para la del usuario
tarea del usuario.
\
Como se puede ver en la figura 14.28, la Borrar bandera de
nuevos datos
tarea del usuario indaga por la existencia de nue recibidos
vos datos recibidos; si no los hay, espera un tiem
po hasta que se completa el nmero de ciclos
requerido y luego entrega el control a la tarea de No
Transmisin
recepcin m ediante la instruccin goto frec. lista?

Cristal Rata de Ciclos por lazo Ciclos de las tareas


MHz bits de tareas del usuario
Borrar bandera
4 2400 104 62 de Tx completa
4 4800 52 10
4 9600 26 4 Activar bandera de
datos de Tx listos
8 2400 208 164
8 4800 104 62

8 9600 52 10 Retardo B Retardo C Retardo A

12 9600 78 36
16
20
9600
9600
104
130
62
88
|
*Frec

Tabla 14.2 Ciclos para la tarea del usuario Figura 14.28 Subrutina o tarea del usuario

L *
Curso prctico sobre Microcontroiadores G M B & H T F *. ( 1 3 9
iLlUliLLCCLQLl CL LgS l2liiULLLUCCiCLL!Lllj! S lH tiltS

L a ta r e a d e r e c e p c i n , figura 14.29, r e c ib e p e r a c in c o m i n i p e r i o d o s d e b i t a n te s d e le e r el
e l d a t o q u e lle g a y la s s e a le s q u e le i n d i c a n a l p r i m e r b i t d e d a t o s . L o s d e m s b it s d e d a t o s s o n
u s u a r io q u e h a lle g a d o u n c a r c t e r y q u e s e e n le d o s c a d a c u a r t o m i n i p e r i o d o d e b it .
c u e n t r a d is p o n i b l e p a r a s u u s o . D e s p u s d e d e
t e c t a r u n a c o n d i c i n d e b i t d e i n i c i o , la t a r e a e s - E s t a s u b r u t i n a r e c o n o c e y s e a liz a p o r m e

frec d io d e b a n d e ra s d o s tip o s d e e r r o r : s i e l d c i
m o b i t ( b i t d e p a r a d a ) n o se e n c u e n t r a e n e s t a
\ d o d e m a r c a (1 l g i c o ) , e n t o n c e s s e a c t i v a e l
No
Actual mente
recibiendo?
No
Bride inicio?
Si
X
Actualizar contador
de lazos X
T Reactivar bandera
* de recepcin

No
Bit listo? X
Inicializar contador
de bits

Inicializar contador
de lazos de
recepcin

No
stop?

Activar bandera X
n nrrnr nn lo Activar bandera de
oea error en la Si Inicializar contador ltimo bit
estructura de lazos
Borrar bandera
de recepcin T
Actualizar contador Si
X de bits Nuevo dato
recibido?
Borrar bandera
de ltimo bit
T No
1
Activar bandera de
T Si sobreflujo en Rx
8 J/fS?
Activar bandera de
nuevo dato recibido

I No
X
Retardo B Retardo D Retardo E Mover datos Retardo C Retardo A
recibidos al registro
de Rx del usuario

Figura 14.29 Tarea de recepcin


TXON

140 Curso prctico sobre Microcontroladores


O I1 S

TXON

U suario Figura 14.30 Tarea de transmisin

b it de error en la estructura (BA N E ST); y si La su b ru tin a o tarea de tran sm isi n se


la bandera de nuevos datos recibidos no est e n c arg a esp e cfic am en te de tra n sm itir un
borrada cuando el noveno b it (ltim o b it de b y te de datos y las seales para el u su ario ,
datos) se ha ledo , se activa la bandera de so- cu an d o las seales se han co m p letad o . El
breflujo en la recepcin. Ambas banderas de tran sm iso r ejecu ta la estru ctu ra m ostrada en
ben ser lim piadas por el program ador. la fig u ra 1 4 .3 0 .

Curso prctico sobre Microcontroladores m K lT l


U iU u u m a H u & la s L n m iu it o v ^ N & lt r s

Existen nueve registros especiales asociados


Muchos modelos de microcontroladores PIC po con la UART, contando con un registro especial
seen un mdulo interno para establecer com uni que se utiliza en programas donde las com unica
caciones seriales denominado Receptor/Transmi ciones manejan interrupciones. Estos registros
sor universal sincrnico y no sincrnico ( U niver especiales conforman el control, el estado y las
sal Synchronous A synchronous R eceiver Transmitter. interfaces de los datos requeridos para el correc
USART). Este mdulo permite desarrollar comu to funcionamiento de los programas.
nicaciones seriales Full-Duplex no sncronas o co
municaciones h alfd plex sncronas. Por ejemplo, existe un registro denominado
SPBRG que se utiliza para establecer la veloci
La principal ventaja que se tiene con m du dad de la transmisin (bits por segundo). El con
los de esta naturaleza es que le ahorran mucho tenido que debe tener este registro debe colocar
trabajo al usuario, teniendo a su disposicin un se antes de habilitar la UART y se calcula me
m dulo de excelente calidad encargado de llevar diante la siguiente frmula:
a cabo todas las rutinas que vimos anteriorm en
te y asegurando que el cdigo que se deba desa Fose - 64 (vel)
SPBRG =
rrollar se lim ite a los requerimientos del progra 64 (vel)
ma especfico; es decir, es un mdulo especiali
zado y diseado para estas tareas lo que garantiza donde Fose es la frecuencia del oscilador en M H z
su correcto funcionamiento. y vel es la velocidad de trasnmisin en bits por
segundo (bps).
Utilizando la USART
Muchos autores, cuando utilizan la USART para En los microcontroladores PIC se han esta
aplicaciones no sincrnicas (como en este caso), blecido dos pines especiales para la transmisin y
acostumbran denominarla UART (UniversalAsyn la recepcin a travs de la UART; se trata de dos
chronous Receiver/Transmitter). El formato de los pines del puerto C: RC6 para la transmisin (TX)
datos de la UART es 1 bit de inicio, 8 o 9 bits de y RC7 para la recepcin (RX). Necesariamente,
datos y un bit de parada. En la figura 14.31 obser aunque inicialmente no parece lgico, ambos se
vamos el circuito base que utilizaremos para visua deben configurar para que funcionen como pines
lizar algunos algoritmos tomados como ejemplo. de entrada (por medio de la instruccin TRISC).

DTE

Figura 14.31 Diagram a esquem tico del circu ito para los ejem plos

142 & C IT s l Curso prctico sobre Microcontroladores


le u L t

Los registros RCSTA y TX STA respecti En la figura 14.33 se m uestran los regis
vam ente, son los que finalm ente conform an tros de control configurados para establecer una
el estado y control de la recepcin y el estado com unicacin con 8 bits de datos a 2.4 0 0 bps
y control de la transm isin, respectivam ente. (y un reloj de 4M H z) y en la figura 14 .3 4 se
m uestran los registros de control de in terru p
Los registros RCSTA, RXSTA y PIR1 infor ciones requeridos para configurar una interrup
man el estado de la comunicacin y los registros cin en la recepcin. F inalm ente, en la figura
RCREC y TXREC son los registros de datos de 1 4 .3 5 , se m uestran los bits de estado (bande
la recepcin y la transmisin, figura 14.32. ras) de la UART.

7 6 5 4 3 2 1 0
Los registros PIE1 e IN TCO N establecen PIE 1
el control de interrupciones en los casos donde
se utilicen estas tcnicas. I j x ie - Interrupcin de
transmisin habilitada

-------------- RCIE- lnl erruPc'n de


7 6 5 4 3 2 1 0 recepcin habilitada
RCREG
7 6 5 4 3 2 1 0
Registro de recepcin: En el se tienen los datos recibidos
cuando RCIF est activado INTCON

7 6 5 4 3 2 1 0 p r ir Interrupcin de
perifricos habilitada
TXREG
Gl:_ Habilitador global de
Registro de recepcin: Se escribr en este registro interrupciones
solo cuando TXIF est activado
Figura 14.34 Registros de control para activar una interrupcin
Figura 14.32 Registros de datos de la UART en la recepcin

1 0 7 6 2 1 0
TRISC
T RCSTA

I___I___ Deben estar en uno para OPDD Error por


la operacinde de la UART sobrepaso

7 6 5 4 3 2 1 0 FERR- Error en la
estructura
RCSTA
I ZT
CREN: Recepcin habilitada 7 6 3 2 1 0
R x 9-Recepcin en 8 bits TXSTA
SPEN- Puerto serial habilitado

7 6 3 1 0 trm t Registro de
transmicin vaco
TXSTA
7 6 5 4 3 2 1 0
TX9-*I
en 8 bits ^ BRGB:S S pSfe
Transmisin TXEN SYNC- Seleccin de m0(l0
habilitada ' no sincrnico Buffer de transmisin
TXIF- (TXREG) vaco
1 0 0 -^C u a n d o se cargan nuevos
SPBRG datos en TXREG
1 _ *Cuando se activa TXGN
CONTENIDO = FaS6C4 6(4R iy RCIE- Se activa si el B uffe rde recepcin
tiene por lo menos 1 BITE

Figura 14.33 Configuracin de los registros de control de la UART Fig ura 14.35 Registros de estado de la UART

Curso prctico sobre Microcontroladores < S lE K tT s .


Una caracterstica muy interesante de la UART m iento se encuentra vaco, a l llegan los conte
es que tiene mdulos internos en hardware com nidos del registro de transm isin y se inicia la
pletamente independientes para la recepcin y para transm isin del dato. Si el registro de desplaza
la recepcin, lo que permite establecer fcilmente m iento no se encuentra vaco, la transmisin
comunicaciones Full-Duplex. El proceso finalmen de los contenidos del nuevo registro de trans
te es tan simple como colocar el dato que se va en misin no em pieza hasta que el byte anterior se
viar en el registro de transmisin y leer el dato reci haya transm itido com pletam ente.
bido en el registro de recepcin; todo lo dems lo
hacen los circuitos de la UART. En esta leccin da Recepcin por medio de la UART
remos las rutinas prototipo para la recepcin, la Cuando trabajamos en comunicaciones no sincr
transmisin y la interrupcin, con el fin de que se nicas, no se puede predecir el momento de llega
puedan utilizar en otros programas. da de un dato. Al recibir un carcter se puede ge
nerar una interrupcin notificando este evento,
Transmisin por medio de la UART figura 14.37. Cuando configuramos la interrup
La rutina de transmisin, figura 14.36, inicialmen cin por recepcin en la UART, ella se genera en
te entra en un lazo del cual no sale hasta que haya el momento en que se ha recibido la totalidad del
detectado vaco el registro de transmisin. Esto lo carcter. En ese momento la subrutina de inte
hace chequeando la bandera TXIF del registro rrupcin debe tomar el carcter del registro de re
PIR1; cuando ella se encuentra en estado alto, cepcin y trabajar sobre l dentro de una nueva
quiere decir que el registro est vaco. Cuando esta subrutina, figura 14.38.
condicin se ha cumplido, el dato que se va a trans
m itir se pone en el registro de transmisin y la Lo primero que se debe hacer dentro de esta
rutina termina. rutina es comprobar que la interrupcin se de
bi a una recepcin, de lo contrario retorna.
Un registro vaco indica que ya se ha envia Dentro de la nueva rutina de recepcin se toma
do el carcter anterior hacia el registro de des el carcter del registro de recepcin.
plazam iento que ejecutar finalm ente la trans
m isin. Si se ha habilitado la interrupcin por
transmisin (z'fTXIE del registro PIE l en alto)
\
Datos de No
se generar una interrupcin cuando el registro registro de
se haya desocupado. Si el registro de desplaza recepcin?

\
i
Guardar contexto

No Registro de
Tx vaco?
Leer los
carcteres de
receptor

1
J
r

Carcter al registro
deTx Restaurar contexto

1
L
Figura 14.36 Transmisin con ia UART Figura 14.37 Servicio de interrupcin

A. *
144 <EM H W s. Curso prctico sobre Microcontroladores
UREC
El diagram a de flujo de la figura 14.38
i
Borrar
corresponde a una subrutina pertenecien
banderas del te al archivo COM.GRP, el cual podemos
usuario
incluir dentro de nuestro proyecto parti
l cular en cualquier m om ento, como se
Activar
bandera de mostrar a travs de un ejemplo. Esta su
byle
recibido
brutina trabaja con base en el carcter re
cibido en el registro de recepcin, para ase
gurarnos que el dato se lee correctamente,
como se explica a continuacin. Adicio
nalmente, la misma subrutina se encarga
de generar las banderas, tabla 14.3, las cua
les sealizan el funcionamiento del progra
ma principal. Todas las banderas de esta
tabla se encuentran ubicadas dentro del
registro BANREC.

El registro de recepcin que m aneja


la UART es de dos bytes y es del tipo FIFO
(F irst In F irst O ut. el primero que entra
es el primero que sale). Esto quiere decir
que antes de poder leer este registro de
recepcin se deben haber recibido con an
terioridad por lo menos dos caracteres. Si
se lee el registro cuando un tercer carc
ter est llegando, no se perder la infor
m acin alm acenada. Sin embargo, pero
si el registro se lee antes de que hayan lle
gado los dos caracteres se presentar un
error denominado de sobrepaso, en el cual
los datos se perdern. Si se presenta esta
situacin se activar una bandera (OERR)
del registro RCSTA.

Los microcontroiadores PIC ofrecen


una ventaja para no correr riesgos en la lec
Sobrepaso?
tura del registro de la UART. Cuando el
Activar bandera dato del registro est listo y disponible, se
de sobreflujo
activa una bandera (RCIF) del registro
P IR l. Al momento de esta activacin se
Borrar bandera
debe leer inm ediatam ente el registro antes
de sobrepaso de de que llegue el tercer carcter y se pueda
la UART
perder informacin. En la figura 14.39 se
observa el cdigo fuente de este archivo, el
cual usted puede descargar de nuestra p
Figura 14.38 Diagrama de flujo de la recepcin por medio de la UART gina en la internet.

Curso prctico sobre Microcontroiadores 145


ll l t L U lilL e d L l El l a s U U IU U IU IC .L VIU LIL1 a k M r S

BIT BANDERA FUNCIN

0 byte recibido (NUBYTE) activada al recibir un byte


borrable por el usuario

1 dos bytes recibidos (DOSBYTE) activada al recibir los dos bytes


borrable por el usuario

3 error en la estructura del byte 1 activada por error en el prim er byte


borrable por el usuario

4 error en la estructura del byte 2 activada por error en el segundo byte


borrable por el usuario

6 error de sobreflujo (ERSOB) activada por sobrepaso en la recepcin


borrable por el usuario

Tabla 14.3 Registro de banderas

El programa que se muestra en la figura 14.40 co Como se dijo al principio de esta leccin, una comu
rresponde a una porcin de un ejercicio con la nicacin serial sincrnica se caracteriza por transmitir
UART en el cual se desarrolla una comunicacin mldples bits de datos, donde cada bit transmitido se
Full-Duplex (por razones de espacio no se incluy asocia con un pulso de reloj transmitido por una lnea
en su totalidad, pero est disponible en nuestra p separada de la lnea de datos. La comunicacin sin
gina de la internet). En este caso se recibe un carc crnica puede o no tener bits de estructura y ellos pue
ter proveniente de un terminal y de nuevo se retor den o no, estar sincronizados con el reloj.
na el eco hacia el terminal. Este programa sirve para
demostrar la interfaz de software entre la UART y el La transmisin serial de datos distribuye los
programa de aplicacin. bits en el tiempo y el receptor debe estar en ca
pacidad de reconocer el momento en que em
El programa empieza enviando los caracteres pieza y el momento en que termina. Cuando se
ASCII de la palabra OK hacia el terminal. Desde tiene a disposicin una seal de reloj que se pue
ese momento, cualquier carcter recibido del ter da utilizar como referencia para ubicar de mane
minal es devuelto como un eco hacia ste. Si por ra precisa los bits de datos, ellos pueden tener
alguna razn en el carcter recibido se detecta un diversas duraciones, lo importante es que la l
error en su estructura, el microcontrolador retorna nea de reloj delim ita el b it exacto.
el cdigo ASCII SUB (1A) en lugar del carcter
recibido. Con ello, el terminal puede saber que hubo En la figura 14.41 se muestra un esquema
un error y puede tomar medidas al respecto, como de transmisin sincrnica en donde los ciclos de
por ejemplo, enviar de nuevo el dato. Si ha ocurri reloj juegan un papel fundamental. Los bits de
do un error de sobrepaso, los caracteres recibidos se datos empiezan a ser vlidos cada que ocurre un
devuelven pero junto con el carcter ASCII NAK flanco de subida de la seal de reloj y son ledos
(15). De esta manera, el terminal estara en capaci en el receptor cada que ocurre un flanco de baja
dad de determinar qu caracteres se perdieron y pro da de la misma seal. Podemos notar que la se
ceder a enviar los que se detectaron. al de reloj puede ser simtrica o asimtrica.

Tgm uznm . Curso prctico sobre Microcontroladores


;===================com .grp--
; MANEJO DE L A UART

MODULO DE T R A N S M IS IO N

MMTX B T F S S P I R l. T X I F ; BU FFER DE TX V A C IO ?
GOTO MMTX
MOVF C A TU S .W ; S I -> TOMA E L CARACTER A T R A N S M IT IR
MOVWF REGTX ;
RETURN

MODULO DE R EC EPC IO N

RX C LR F BANREC BORRA BANDERAS DE R E C E P C IO N


BSF B A N R E C ,N U B Y TE A C T IV A R BANDERA DE BYTE R E C IB ID O
B T F S C E S T R E C .F E R R ERROR EN LA ESTRUCTURA?
BSF B A N R E C ,E R R E S T 1 S I - > A C T IV A R BANDERA DE ERROR EN E S T . 1
MOVF REGREC.W TOMAR CARACTER R E C IB ID O
M O VW FR EG I Y LLE V A R LO A L BYTE 1
B TFS S P I R 1 , R C IF E L DATO AUN E S TA (B Y T E 2 )E N E L BU FFE R ?
S A L T A GOTO RXX
BSF B A N R E C ,D O S B YTE S I . A C T IV A R L A BANDERA DE R E C E P C IO N DEL BYTE 2
B T F S C E S T R E C .F E R R ERROR EN LA ESTR UC TU RA?
BSF B A N R E C ,E R R E S T 2 S I - > A C T IV A R BANDERA DE ERROR 2
MOVF REGREC.W TOMAR E L 2 CARACTER R E C IB ID O
MOVWFREG2 Y SE MUEVE A L BYTE 2 DEL R E G IS TR O D E L U S U A R IO

RXX B T F S C E S T R E C .O E R R ERROR POR SOBREPASO


BSF BAN REC ,ER SO B S I - > A C T IV A R BANDERA DE SOBREPASO
BCF E S TR E C .C R E N BORRAR BANDERA DE SOBREPASO DE LA UART
RETURN

S E R V IC IO DE IN T E R R U P C IO N

S E R V .IN T
B T F S S P IR 1 ,R C IF ESTAN LOS DATOS EN EL BU FFER DE R E C E P C IO N ?
GOTO S A L IN T NO - > NO R E C IB IO IN T E R R U P C IO N , S A L IR
MOVWFTEMPW S I GUARDAR C O P IA DE S E G U R ID A D DEL CONTEXTO
SW APFESTAD O ,W
BCF E S T A D O ,R P 0
MOVWFTEMPST
C A LL RX ; TOMAR LOS DATOS R E C IB ID O S
S E R V .IN T 1
SW APFTEM PST,W ; RESTAURAR CONTEXTO
MOVWF ESTADO
SW APFTEM PW ,F
SW APFTEMPW ,W

S A L IN T R E T F IE

Figura 14.39 Cdigo fuente de la librera para comunicacin no sincrnica utilizando la UART

S. *
Curso prctico sobre Microcontroladores ( C M / K H T s . # 1 4 7
l i i u u a i i m L i ti L a s c u L u u i c t i L n u n a s sc - l-l u u s

M O VLW 080
; E JE R C IC IO DE C C M M C A C IC N E S F U LL DUPLEX CON UART
MOVW F ESTTX
M O VLW 019
R A D IX H E X
MOVWF s p b rg
L IS T P=16F873
BCF E S T A D O ,R P 0
o p tre g EQU 01
M O VLW 010
tr is a EQU 05
MOVW F ESTREC
tr is b EQU 06
BSF E S T R E C .s p e n
tr is e EQU 07
BSF E S T A D O ,R P 0
p ie l EQU 0c
BSF E S T T X ,T X E N
p ie 2 EQU 0d
BSF p ie l. R C IE
peon EQU 0e
BCF E S T A D O ,R P O
p r2 EQU 12
BSF IN T C O N ,p e ie
sspadd EQU 13
C LR F BANREC
s s p s ta t EQ U 14
BSF I N T C O N , g ie
ESTTX EQU 18 ; ESTADO DE L A TX
M O VLW OH
s p b rg EQU 19
MOVW F CATUS
r b if EQU 0
C ALL M M TX
M O VLW KAY
TEM PST EQU 0020
MOVW F CATUS
TEM PW EQU 0021
C ALL M M TX
BANREC EQU 0022; B A N D E R A DE RX
LAZO BTFSS B A N R E C ,N U B Y T E
REGI EQU 0023; REG 1 DE LA RX
G O TO LAZO
REG2 EQ U 0024; REG 2 DE LA RX
BCF B A N R E C ,N U B Y T E
CATUS EQU 0 0 2 6 ; CAR . DE T X DE USUARIO
BTFSS B A N R E C ,E R R E S T 1
NUBYTE EQU 0 ; BAM3ERA DE BYTE R E C IB ID O
G O TO LAZO l
DOSBYTE EQU 1 ; BCN. CE FE dP C K N CE 2 BiTES
M O VLW SUB
th re b y t EQU 2
MOVW F REGI
ERREST1 EQU 3
MOVF R E G l. w
ERREST2 EQU 4
MOVWF CATUS
ERSOB EQ U 6 ; ER R O R POR SO B R E P A S O
CALL M M TX
OH EQU 04 f
BTFSS B A N R E C ,D O S B Y T E
KAY EQU 04b
G O TO LAZO
SUB EQU O la ; CARACTER A S C II
BTFSS B A N R E C ,E R R E S T 2
NAK EQU 015
G O TO LAZ02
>
M O VLW SUB
o rg 0X00
MOVW F REG2
IN IC IO GOTO IN I
LA Z 02 MOVF R EG 2, w
dw 0072
MOVW F CATUS
dw 006c
C ALL M M TX
dw 0073
BTFSS B A N R E C ,E R S O B
G O TO S E R V .IN T
G O TO LAZO
IN I C LR F PORTA
M O VLW NAK
C LR F PO RTB
MOVWF CATUS
C LR F PORTC
CALL M M TX
BSF E S T A D O ,R P O
G O TO LAZO
M O VLW 0c0
MOVW F tr is e
IN C L U D E C O M .G R P
M O VLW 000
MOVW F tr is b
EN D
M O VLW 001
MOVW F tr is a

Figura 14.40 Cdigo ejemplo de comunicacin Full-Duplex

. *
148 M H C iT ,. Curso prctico sobre Microcontroiadores
Reloj
u._
Datos x
L. L L. L . L .
Reloj
n _

Datos

Datos vlidos

Figura 14.41 Protocolo serial sincrnico

Cuando los bytes poseen una longitud fija, el D entro del bus sincrnico solo puede exis
receptor solo necesita contar bits empezando con tir un dispositivo que gobierne el funcionamien
el primero que recibe con el fin de delimitarlos. to y control de las com unicaciones en cada ins
Este tipo de transmisin es utilizada por un pro tante de tiem po; a este dispositivo se le deno
tocolo o bus denominado SPI. m ina el m aestro, los dems dispositivos se les
llam a esclavos. El maestro tiene como tareas
En algunos casos se u tilizan bits de acom in iciar y term inar la transm isin, generar las
p aam iento que conform an una estru ctu ra seales de reloj y direccionar (elegir) el disposi
que d elim ita los datos, com o en los buses I2C tivo esclavo con el que se va a comunicar.
y M icrow ire.
Dispositivos perifricos comunes en la
El bus I2C es m uy utilizado para conectar al comunicacin serial sincrnica
microcontrolador diversos perifricos que comple Por lo general los dispositivos seriales desarrollan
menten el sistema y poder cumplir con tareas ms una tarea perifrica especfica; los ms comunes son:
exigentes. Este bus permite incluir dentro de una
misma tarjeta un gran nmero de dispositivos se Dispositivos de memoria (RAM , EPROM)
riales sin que el hardw are deba complicarse dema Conversores A/D
siado y empleando pocas lneas para la conexin. Conversores D/A
Multiplexores
Relojes de tiempo real y calendarios
El com portam iento de todos los dispositivos Puertos I/O
que se conectan en el bus serial se rige por las Generadores de tono (DTMF y tonos musicales)
norm as d ictad as por el protocolo del bus. Manejadores de displays
C om o se dijo anteriorm ente, un protocolo es Funciones especficas (por lo general I2C)
un conjunto de norm as y procedim ientos ne
cesarios para asegurar transferencias de datos Estndares r io I'
licacin serial
exitosas. Este define el form ato de los b its de sincrnica
datos, la form a de la seal de reloj y las m ed i Dentro de la transmisin serial sincrnica se han
das de seguridad ante posibles errores en la establecido tres esquemas m uy representativos:
transm isin o prdidas en la inform acin. Philips desarroll el I2C {Inter I Q , M otorola el

Curso prctico sobre Microcontroladores


ILI1LLLLVLHLI t i Lti CLULLLlLCtiClULlL-i: S lrl& L

SPI (S erial P eriph erical Interfac) y N ational Se El protocolo I2C es en realidad m uy sencillo; los
m iconductor lanz la interfaz M icrowire, figura datos son vlidos cuando la lnea de reloj est en
14.42. Partiendo de estos estndares muchas estado alto y slo pueden cambiar cuando la lnea
empresas han desarrollado circuitos integrados de reloj se encuentra en estado bajo.
adaptados para funcionar con estas tecnologas.

Emplea tres lneas: entrada de datos, salida de


Este bus emplea dos lneas: una para el reloj y otra datos y reloj. Adicionalmente requiere de una l
para los datos. En este caso se hace una comunica nea de seleccin de ch ip para cada dispositivo en
cin Half-Duplex debido a que por la misma lnea el bus; en este caso las comunicaciones son Full-
(SDA) circulan los datos de entrada y de salida. Duplex. El bus SPI define varios esquemas de sin
C ada perifrico es direccionado por softw are de cronizacin, pero bsicamente los datos son v
manera que no existen lneas de seleccin de chip. lidos en una transicin y pueden modificarse en
la transicin opuesta.
-o + 5 v

Es sim ilar al bus SPI: requiere tres lneas, ms la


lnea de seleccin de chip. En este caso los datos
SDA |
LJ son vlidos durante la transicin de estado bajo
a estado alto.
SCL
| (Reloj)
Profundizemos un poco en el bus PC , el cual
es ampliamente utilizado en todo el mundo y ba
BUS l2C sndonos en l desarrollaremos una serie de ejerci
cios en la seccin de programacin de este curso.

P C (Inter-Integrated Circuit) es un bus serial de


dos hilos utilizado para transferencias de datos en
8 bits, figura 14.43. Los dos hilos (reloj serial y
datos seriales) transportan la informacin entre los
dispositivos conectados al bus, los cuales se clasifi
can entre maestros y esclavos. La lnea de datos es
bidireccional pero la informacin solo puede fluir
en una sola direccin en un tiempo dado.

En un bus PC todos los dispositivos pueden


funcionar como transmisor o como receptor, pero
no sim ultneam ente; sin embargo, algunos dis
positivos slo sirven como receptores y otros
como transmisores; por ejemplo, un display es
un dispositivo que slo puede ser receptor.

D entro del bus I2C el dispositivo m aes


Interfaz m icro w ire tro es el encargado de in iciar la transferencia
Figura 14.42 Esquema de comunicacin serial sincrnica de inform acin, generar la seal de reloj y lle-

W K M T .: Curso prctico sobre Microcontroladores


o+5V

Solo un dispositivo
puede ser el maestro Figura 14.43 Configuracin tpica del bus FC

var el control de las operaciones. Para fac ili El inicio y la parada del proceso son seales
tar esta tarea, cada dispositivo dentro del bus de control generadas por el maestro; cada trans
posee una direccin n ica por m edio de la ferencia de informacin debe presentarse primero
cual el m aestro puede en tab lar una co m u n i con una condicin de INICIO, seguida de la
cacin precisa con ellos. Es de resaltar que direccin del esclavo, los bytes de datos y final
en el m ism o bus pueden existir varios d isp o mente una condicin de PARADA.
sitivos m aestros, pero no al m ism o tiem po.
Para evitar que se presenten colisiones por este La condicin de INICIO se define como
concepto, se debe poner en claro un pro cedi una transicin de alto a bajo en la lnea SDA,
m iento de arbitram ento. m ientras la lnea SCL se encuentra en alto; y
una condicin de PARADA se define como una
Especificaciones del bus l2C transicin de estado bajo a estado alto en la l
Las dos lnes del bus I2C : la de reloj (SC L) y la nea SDA, m ientras la lnea SC L se encuentra
de datos (SD A) son bidireccionales y se conec en alto, figura 14.44.
tan a una fuente de voltaje positiva a travs de
resistencias de p u ll-u p , de m anera que cuando Cada byte que se ponga en la lnea SDA debe
el bus est libre, ambas lneas se encuentran ser de 8 bits , pero se pueden transm itir todos los
en estado alto. Las velocidades que m aneja el bytes que se desee. Cada uno de ellos debe estar
bus I2C se encuentran en el rango de 0 hasta acompaado del b it de reconocimiento (ACK)
100 Kbits/segundo. generado en el receptor, el cual indica que el re
ceptor pudo leer y procesar el dato correctamen
La generacin de las seales de control es te, y cada uno se transmite empezando por el b it
responsabilidad del maestro. l genera la seal M SB. Los datos son vlidos durante el periodo
de reloj cuando la informacin es enviada hacia alto del reloj y pueden cambiar durante el perio
el bus, y cuando hay com unicacin entre dos do bajo del reloj.
dispositivos, se debe establecer una serie de con
diciones de reconocimiento entre ambos elemen La seal de A CK necesita de la seal de
tos, pero igualm ente sincronizadas con el reloj. reloj enviada desde el m aestro. Para confor
Para ello se utiliza un bit de reconocimiento de m ar esta seal, un a vez term inados los datos,
nominado ACK {acknoivledgm ent). el transm isor debe poner en alto la lnea SDA

Curso prctico sobre Microcontroladores


lllULiuTriHQll Ci lag CULllLLLCaCULlljt SlHtfeUiS

y el dispositivo receptor debe ponerla de nue- Si se presenta algn error en la recepcin, el


vo en bajo. Este estado bajo ocurrido durante receptor debe dejar la lnea SDA en alto, esto
el periodo alto de la seal de reloj, es el reco- d eterm in a un estado de no reconocim iento
nocim iento de la recepcin. (NOACK). Si un esclavo enva un NOACK, el
maestro puede generar una con-
Transferencia de b its en l2c dicin de PARADA para abor
tar la transmisin, figura 14.45.
SDA (Datos)

Despus del INICIO, el pri


(Reloj) mer byte enviado por el maestro
es la direccin del esclavo con el
Datos vlidos J L Datos pueden cambiar
cual desea entablar comunicacin
y establece la direccin que ten
C ondiciones de inicio y p a rad a en l2 C
drn los siguientes datos. Para ello
los siete bits ms significativos de
la direccin del esclavo indican la
direccin del dispositivo y el bit
menos significativo (LSB) deter
m ina el flujo de la informacin.
Un cero en el b it LSB quiere de
cir que el maestro transmitir en
los siguientes bytes y un uno en el
R econocim iento en l2 C
mismo bit indica que transmitir
el esclavo, figura 14.46.
Salida de datos
del transmisor y Sin reconocimiento
O bservem os en la fig u ra
Salida de datos
del receptor b 14.47 una grfica donde se mues

y Reconocimiento
tra una transmisin P C donde el
dispositivo esclavo es una memo
ria EEPROM. La seal ACK ge
El SCL desde el nerada por el esclavo es lo que si
maestro
gue despus de la direccin del es
clavo y a partir de ella deben estar
Inicio J Pulso de reloj para los bytes de datos; luego va la seal
reconocimiento
ACK generada por el receptor.
Figura 14.44 Funcionamiento del bus PC

ry
Seal de reconocimiento
desde el receptor ACK

SDA A /T T y y y y y y
SCL
y y y a ^ j a j a j
L Inicio Reloj de ACK t _ Si el reloj permanece
bajo, la transferencia
t Reloj de ACK
se detiene
Figura 14.45 Transferencia de datos PC Parada
_ *
Curso prctico sobre Microcontroladores
Si en un momento dado se desea cam biar la com unicacin con el esclavo se term ina con
la direccin de los datos, se debe enviar de nue el envo de una seal de PARADA.
vo una condicin de IN ICIO y la direccin del
esclavo para establecer el cambio. Finalm ente El esquema mostrado en la figura 14.47 co
rresponde a un ejemplo concreto de una com u
nicacin por medio del bus I2C , entablada con
7 6 5 4 3 2 1 0
una memoria EEPROM, la cual es un dispositi
vo que puede enviar o recibir datos. De la mis
-------------------------- 1 I RW ma m anera este esquema se cumple para otros
Direccin del dispositivo 1 = Lectura dispositivos como visualizadores, decodificado-
0 = Escritura
res, controladores, etc. En la seccin de progra
macin analizaremos un ejemplo en el que, a tra
Fig ura 14.46 Formato de la direccin del esclavo vs del bus I2C , incorporamos una memoria se
rial a un sistema microcontrolado.

NO j ~ Parada
Inicio |
Direccin del esclavo A Byte de datos A
(desde el maestro) C (desde el esclavo) C
-i K r i K

Desde el esclavo Desde el esclavo


1010 para EPROM Indica lectura

Figura 14.47 Transmisin PC

PARA SABER MS sus productos, logrando una reduccin en cos


Breve historia del l2C tos y aum entando los volmenes de produccin.
El bus l2C se desarroll en los aos 80 e inm edia
tam ente fue clasificado dentro de la categora de De e s ta m a n e ra s u rg ie ro n n u m e ro s a s g a
redes LAN. En la actualidad millones de televiso m as de p ro d u c to s (por e je m p lo , c o n v e rtid o
res, radios y otros aparatos utilizan este sistema res A /D , D/A, m e m o ria s RAM, e tc .) y e n tr al
de comunicacin en sus circuitos internos; esta m e rca d o de la te le fo n a m o d e rn a , donde son
adopcin se debi al alto inters que despertaron indispensables elem entos ta le s com o las m e
sus ventajas dentro del mundo de la microelectr m o ria s, los g e ne ra d o re s de fre c u e n c ia s , las
nica. Igual acogida tuvo este protocolo de com u p a n ta lla s de c ris ta l lquido, etc. A hora la m ira
nicacin en la electrnica autom otor para com u est puesta en c a m p o s com o la m u ltim e d ia .
nicar la mayora de los equipos instalados en los En la ta b la 1 4 .4 se m u e stra n a lg u na s de las
automviles. El alto im pacto del bus l2C motiv a p o s ib ilid a d e s de c o b e rtu ra en m e rcad o s de
muchos fabricantes a adoptar esta tecnologa en c o m p o n e n te s del bus l2C.

Curso prctico sobre Microcontroladores


liiu u tiiiC L ii a la s aLuiLL caLnuues sa H ia la s

TV Radio Audio Telfono Industria Autom vil


Recepcin de TV
Recepcin de radio
Tratamiento de audio
Mando infrarrojo
Mando de displays LCD
Mando de displays LED
Sintetizador de voz
DTMF
l/O
Convertidor D/A y A/D
Reloj/Temporizador ()
RAM
EEPROM
Microcontroladores de 8 bits
Microcontroladores de 16 bits

Tabla 14.4 Cobertura de componentes con bus l2C

En resum en, l2C es un bus rpido que interco- En la s ig u ie n te ta b la se m u e stra n a lg u no s c ir


necta varios perifricos dentro de un sistem a cu ito s integrados que cum plen los re q u e rim ie n
por m edio de dos hilos de com unicacin. to s para in c o rp o ra rse al bus l2C.

Integrado Funcin D ireccin


A6 A5 A4 A3 A2 A1 AO
PCD3311 /1 2 G enerador de tonos 0 1 0 0 1 0 u
D T M F /m od e m /m usicale s
PCF8200 S inte tiza do r de voz 0 0 1 0 0 0 0
PCF8570 RAM 2 5 6 8 1 0 1 0 u u u
PCF8573 R eloj/C alendario 1 1 0 1 0 u u
PCF8574 C on ve rtid or de PC a 8 bits 0 1 0 0 u u u
PCF8579 M a ne jad or de LCD 0 1 1 1 1 0 u
PCF8581 EEPROM de 128 bytes 1 0 1 0 u u u
PCF8591 Convertidor de 8 bits A/D y D/A 1 0 0 1 u u u
SAA7199 Encoder digital 1 0 1 1 0 0 0
SAA1300 M a ne jad or de corrie nte 0 1 0 0 0 u u
TDA4680 P rocesador de vdeo 1 0 0 0 1 0 0
TDA8421 P rocesador de aud io e streo HI-FI 1 0 0 0 0 0 u
TDA8461 D e cod ifica do r de color 1 0 0 0 1 0 u
TEA6100 Interfaz de sinto nizacin 1 1 0 0 0 0 1
TSA5511 S inte tiza do r de fre cu e n cia 1 1 0 0 0 u u
PLL para TV
TSA6057 Sintetizador de frecuencia PLL para radio 1 1 0 0 0 u u
U: Usuario
Estos m dulos son m uy im portantes para la
gran m ayora de diseos en instrum entacin y
control de procesos industriales, debido a que
perm iten leer variables anlogas de sistemas rea
les y registrarlas en la m em oria. En esta leccin
analizarem os el funcionam iento y el m anejo de
este m dulo interno.

X,-\>
Curso p r c tic o sobre M icro co n trola do re s W a 155
L i s cuiiviH m iUrS aid lu d u / d u iL es

En los m icrocontroladores ms modernos que internam ente se haga esta conexin y no


de M icrochip tenem os la posibilidad de leer tengam os que em plear un pin para aplicar un
seales anlogas por m edio de un m dulo in voltaje de referencia externo; de esta m anera
terno especializado. Sus principales caracters se logra que los PIC puedan u tilizar hasta 8
ticas son: canales de entrada A/D.

Entre 5 y 8 canales de entrada (dependiendo El caso ms apropiado para hacer correspon


de la referencia del microcontrolador) der el voltaje de referencia con el voltaje de la
Un m ultiplexor anlogo alimentacin del PIC, es cuando se trabaja con
Un circuito de ajuste y retencin de la seal de un transductor cuya salida es proporcional a su
entrada propia fuente de alimentacin, permitindose un
Varias alternativas de fuentes de reloj para lle am plio rango de voltajes anlogos de entrada,
var a cabo la conversin entre OV y el voltaje de referencia:
Velocidad de toma de muestras (muestreo)
ajustable
Seleccin de un voltaje de referencia interno o 0V< V <V
EN TRAD A - R E F E R E N C IA
externo
Conversin a 8 a 10 bits (dependiendo de la
referencia) Para configurar el funcionamiento de los con
Generacin de interrupciones cuando se ha vertidores A/D debemos seguir el procedimiento
completado la conversin

Salida d igital

Analicemos el caso de la conversin


a 8 bits. El convertidor anlogo/di
gital maneja la funcin de transfe
rencia mostrada en la figura 15.1,
en donde se convierte el voltaje de
entrada en un nmero de 8 bits.

La seal anloga de entrada al


convertidor se acondiciona me
diante un factor de escala denom i
nado voltaje de referencia, produ
ciendo una salida en 8 bits como
se muestra en dicha figura.

U na de las opciones ms u ti
lizadas para configurar el voltaje
de referencia para el convertidor,
es que ste corresponda al volta
je de alim en tacin del PIC. Para 256 256 256 256 256 256 256 256
hacer uso de esta opcin, debe
___________________________ Voltaje de entrada_________________________________
mos hacer algunas configuracio Voltaje de referencia
nes dentro del program a para
Figura 15.1 Funcin de transferencia del conversorA/D de los PIC
t *
156 Curso prctico sobre Microcontroladores
Entradas anlogas Slo para entradas Slo para l/O
l/O digitales anlogas digital

C>J CO
r*-
o
co
T O
co >.Jo
o
h* C o
Q- o.
S 'a
o 5

-S.

7 6 5 4 3 2 1 0
(ADRES) y dos de control (ADCONO y
ADCON1
AD CO N 1), figuras 15.3 y 15.4; el m
dulo A/D de 10 bits tiene cuatro regis
No establecidos tros asociados, dos para almacenar el dato
(ADRESH y ADRESL) y dos de control
7 6 5 4 3 2 1 0
TRISA (ADCONO y A D CO N 1).
(H '85 ')
1------- -------1 1 En algunos casos es ms aconsejable
1 1 -Entradas anlogas
utilizar una referencia de voltaje externa
_ 1: Entrada digital
" 0: Salida digital de 3,0 voltios para proporcionar una ma
1: Entrada anloga yor resolucin en la salida (para medicio
o digital
-------------No establecidos 0: Salida digital nes de voltajes anlogos por debajo de 3,0
voltios). Esto es especialmente llamativo
para mediciones de voltajes diferenciales.
TRISE
(H '8 4 ) La figura 15.5 m uestra la conexin
Deshabilitar funciones _ 1: Entrada anloga de una referencia de voltaje externa al
alternativas del puerto E o digital
0: Salida digital PIC y adicionalm ente, la configuracin
de los registros para su funcionam iento.
No establecidos

Figura 15.2 Entradas anlogas con Z = Zn.

Resumamos las principales caractersticas


mostrado en la figura 15.2. En esta figura se mues de funcionamiento de los convertidores A/D
tran inicialmente los pines con funciones A/D y internos de los microcontroladores PIC.
la configuracin de los registros asociados. C ual
quier pin al que le sea asignada la funcin de en Interno: VREFER^ aA
trada anloga o digital puede leerse como una en = V DD (v o lta je de a lim e n ta c i n )
trada digital o como una entrada anloga. Externo: 3,0V <VR E F E R E N C IA<- V DD + o ^ V

El mdulo A/D de 8 bits tiene tres registros Tpiica-


asociados, uno para alm acen ar el resultado mente 180 uA.

Curso prctico sobre Microcontroladores M IK < IIT s


LOS CULlVLHiliL-lrS CiLldLU/lLULtdLei

R e g is tro : ADCONO R egistro: ADC0N1

ADSC1 ADSC0 Res. CHS1 CHS0 Go/Done ADIF ADON


u u u u u u PCFG1 PCFGO

b it 7 b it 0 b it 7 b it 0

D ireccin: 08h D ireccin: 88h


con dicin de reset. 00000000b C ondicin de reset. 00000000b

ADSC1.0: A/D Conversin Ciock Select selector del reloj U: Unimplemented No establecidas.
del convertidor
Estos bits se leen como ceros.
PCFG1,0: Configuracin de los pines RA0-RA3
00 fosc/2
01 fosc/8 PCFG1,0 RA0,RA1 RA2 RA3 V ref
10 fosc/32
11 fre
00 E. anlogas E. anloga E. anloga Vdd
01 E. anlogas E. anloga Referencia RA3
Res: Reservado
Este b it no se utiliza 10 E. anlogas E/S digital E/S digital Vdd
CHS1.0: Analog Channel S ele ct selector del canal 11 E/S digitales E/S digital E/S digital Vdd
anlogo

00 canal 0 (AIN0| Figura 15.4 Registro ADCON1


01 canal 1 (AIN1)
10 canal 2 (AIN2) sos de conversin, es tener en cuenta el tiem
11 canal 3 (AIN3) po de m uestreo q ue se acaba de listar en las
anteriores caractersticas y cuya estructura ge
GO/DONE: Comienza la conversin cuando se colo ca en neral se aprecia en la fig u ra 15.6.
1. Al fin a liz a r la conversin es puesto en O por
hardware.
ADIF: A/D Conversin Complete interrupt Flag bandera Cuando seleccionamos un canal de entrada
de interrupcin por finalizacin de la conversin. al convertidor A/D, un interruptor de muestreo
Se coloca en 1 cuando termina la conversin; debe que funciona como m ultiplexor anlogo lo co
ser puesta en 0 por programa. necta a un condensador de muestreo (C R|.TEN),
ADON: B it para controlar la activacin del convertidor. figura 15.6a.
0: mdulo del convertidor desconectado y por lo
tanto no exige corriente.
1: mdulo del convertidor A/D en operacin.
El voltaje de retencin V R[..|TNdebe m ante
nerse el suficiente tiempo para que el conden
Figura 15.3 Registro ADCONO sador de retencin C RRETEN TEN tom e el voltaje de la
fuente V Fr,,r.,Tr
rU E N T E yJ alcance uno de los escalones
12 us. ste es el de voltaje mostrados en la figura 15.1.
tiempo transcurrido desde que el canal se ha se
leccionado y antes de que se inicie la conversin. Entre m ayor sea la resistencia de la fuente,
m ayor ser el tiem po de carga del condensador,
f i g u r a 15.6b. U na resistencia alta en la fuente
15 uspara un oscilador de 20 MHz se puede reducir m ediante un am plificador en
30 uspara un oscilador de 10 M Hz configuracin de seguidor, f i g u r a 15.6c.
19 uspara un oscilador de 4 M Hz
D espus de esperar el tiem po de m ues
U na de las caractersticas ms im p o rtan treo, se puede in iciar la conversin. El c irc u i
tes que debem os considerar al utilizar proce- to A/D ab rir el in terru p to r de m uestreo y

s.4. Curso prctico sobre Microcontroladores


+5V Slo para entradas Entradas Slo para l/O
anlogas anlogas digital

2 3 5
0.1 uF 4 c
3 g
10(iF 2 S
? k 0 .1 [iF 1 - X
r-~
0 o
co
5
2 LU u>
Circuito integrado de
referencia de voltaje. 1 1
Analog Devices Ref193 0 S.

7 6 5 4 3 2 1 0
ADC0N1
(H 9 F )

No establecidos

7 6 5 4 3 2 1 0
TRISA - - 1 1
(H 8 5 ') 1
i
Para c o n fig u ra r e n tra d a s a n lo g a s

P ara c o n fig u ra r la e n tra d a d e la


' re fe re n c ia d e v o lta je

1 : E n tra d a d ig ita l
0 : S a lid a d ig ita l

1: E n tra d a a n lo g a o d ig ita l
0 : S a lid a d ig ita l

No e s ta b le c id o s

7 6 5 4 3 2 1 0
TR ISE
(H'89>
D e s h a b ilita r fu n c io n e s . 1: E n tra d a a n lo g a y d ig ita l
a lte rn a tiv a s d e l p u e rto E ' 0 : S a lid a d ig ita l

-------------------------- No e s ta b le c id o

F ig ura 15.5 Entradas A/D con voltaje de referencia externo

llevar a cabo la conversin del voltaje de en sos m ostrados en las figuras 15.2 y 15.5, en
trad a en el m om ento en que el in terru p to r se donde se configuran los registros A D C O N 1,
abre. Si el A/D se u tiliza para tom ar m uestras T R ISA y TRISE para seleccionar el voltaje de
en un solo canal a iguales intervalos de tiem referencia y los canales de entrada deseados.
po, se puede hacer uso de interrupciones.
Luego, se inicializa el registro ADCONO
m ediante los pasos que se m uestran en la fi
Para trabajar con el convertidor interno de los gura 15.7. El prim er paso es seleccionar la
microcontroladores PIC debemos seguir los pa- fuente de reloj del convertidor A/D entre cua-

Curso prctico sobre Microcontroladores


L a s e uLiviH m iuua* a i l a a a M a t d i r S

7 6 5 4 3 2 1 0
Maunllip
lolegoxw ADCONO
WT- 0 0 0 0 0 1
(H 'l F')
Seleccin
del canal L Activar el ADC
-B it no establecido
.No iniciar an la
conversin

Dividir por: Ose. Para obtener un periodo


del reloj del ADC de:

20 MHz 1 . 6 | s
10 MHz 3,2 ps
4 MHz 2 LI S

7 6 5 3 2 1 0
ADCONO
( H 'l F )
-
50K 1 1 ' t t N o c a m b ia r e s to s tiits
VD0 0 0 0 : E n tra d a a n lo g a p o r e l b itO d e l p u e rto A
0 0 1 : E n tra d a a n lo g a p o r e l b it 1 d e l p u e rto A
0 1 0 : E n tra d a a n lo g a p o r e l b it 2 d e l p u e rto A
0 1 1: E ntrada a n lo g a p o r e l b it 3 d e l p u e rto A
1 0 0 : E n tra d a a n lo g a p o r e l b it 5 d e l p u e rto A
1 0 1: E n tra d a a n lo g a p o r e l b it 0 d e l p u e rto E
1 1 0 : E n tra d a a n lo g a p o r e l b it 1 d e l p u e rto E
1 1 1: E n tra d a a n lo g a p o r e l b it 2 d e l p u e rto E

7 6 5 4 3 2 1 0

Figura 15.6 Consideraciones sobre e l tiempo de muestreo ADCONO


(H l F ) ! i, , .,
1111 -N o c a m b ia r

tro posibilidades (OSC/2, O SC/8, O SC/32 y -In ic ia r c o n ve rsi n


R C ). Las opciones m ostradas en la fig u ra
1 5 .7 a perm iten la m ayor velocidad posible Fig ura 15.7 Configuracin y utilizacin del registro ADCONO
bajo la restriccin de que el periodo del A/D
debe ser de 1,6 us o mayor. treo y luego in iciar la conversin activando el
/>GO_DONE del registro ADCONO. C uan
La seleccin de RC (activando los bits 6 y do G O _D O N E se pone de nuevo en bajo, la
7 del registro ADCONO) se utiliza cuando el conversin ha term inado, y podemos leer el
m icrocontrolador trabaja con un cristal de fre resultado del registro ADRES (H lE ).
cuencia relativam ente baja.
Cuando se presenta la necesidad de tomar
Si slo vamos a utilizar una entrada an muestras peridicam ente de uno o ms canales
loga, podemos seleccionarla como se ilustra de entrada, un excelente recurso es pensar en la
en la figu ra 15.7b y la seleccin del periodo posibilidad de incorporar dentro del funciona
m ostrada en la 15.7a. Si vam os a u tilizar va m iento del co nvertid or el m dulo tim erl/
rias entradas anlogas, es im portante esperar C C P 2, del cual ya analizamos su operacin en
un tiem po de m uestreo com o se apreci en la las lecciones 12 y 13 de esta seccin, para que
figura 15.6b. Esto es, una vez seleccionado el peridicam ente se encargue de iniciar el proce
canal, debemos esperar un tiem po de mues- so de conversin.

;.4. Curso prctico sobre Microcontroladores


El tem p o rizad o r w a t c h d o g y el m o do s l e e p son
dos co n cep to s q u e , si se saben m a n e ja r co rrec
tam en te, p u e d en traern o s en o rm es b en eficio s
p ara la e sta b ilid a d y o p tim iz aci n de los siste
m as electr n ico s q u e d esarro llem o s con m icro -
co n tro lad o res. En esta lecci n an alizarem o s es
tos factores y observarem os com o in sertarlo s co
rrec tam e n te d e n tro del c d ig o del p ro gram a.

Curso p rctico sobre M icrocontroiadores M T,


El w atch d o g y el m odo sleep

El tem p o rizad o r w atchdog D esde la fuente


(WDT) reloj del TM RO

C o m o su nom bre lo sugiere, el _0_


w atchdog o perro gu ard in es un Post-escalador
1
m dulo interno que una vez a c ti T e m po riza d o r
WDT
vado, perm anece alerta para que
los program as no caigan en fallas
inesperadas e indeseables. F un da T PSA
P S2:PS0

m entalm ente su vigilancia consis t Al TM RO


B it de
te en generar cada cierto tiem po habilitacin del
un estado de reset para que el pro W DT

gram a in icialice nuevam ente su


o p e ra c i n d e sd e la d ir e c c i n
0 x 0 0 0 0 . De esta m anera com ba Salida del W D T

tim os problem as tales com o caer F ig u ra 16.1 E structura en bloques d e l w atchdog


en ciclos infinitos o alteraciones
debidas al ruido. M uchos usuarios acostum bran
em plear dentro de sus aplicaciones, alguno de R e g is tro : OPCION
los tem porizadores para que hagan las funciones RBPU IN TE D G GRTS RTE P SA P S2 PS1 PS0
del watchdog.
B it7 B it 0

El te m p o rizad o r w atch d o g (W D T ) es un D ire c c i n : 81 h


c o n d ic i n de r e s e t 11111111b
o scilad o r in tern o b asad o en un sen cillo c ir c u i
to R C , cu yo fu n c io n am ie n to es ab so lu ta m e n RBPU: PortB P u ll-u p Enable o H abilitacin de p u ll-u p
te in d e p e n d ie n te d el o scilad o r gen eral d el m i del puerto B.
0 : h abilita las p u ll-u p s internas
c ro c o n tro lad o r de m an e ra q u e , au n q u e este
1: las deshabilita
ltim o se d eten ga, el w atch d o g (W D T ) c o n INTEDG: IN T In te rru p t Edge S ele ct o S elector de flanco
tin u a r fu n cio n an d o . de la inte rrup ci n INT
0: flan co de bajada
1: flanco de subida
En la fig u ra 1 6 .1 p o d em o s o b serv ar u n a RTS: TMRO SignaI Source o Fuente de seal de TMRO.
e stru c tu ra en b lo q u es d el W D T en d o n d e ve 0: ciclo de instrucciones interno (Temporizador)
m os q u e el te m p o riz a d o r se ac tiv a m ed ian te 1: tra nsicin en el pin RA4/T0CK (Contador)
RTE: TMRO SignaI Edge o Flanco de la seal TMRO
u n b i t de c o n fig u ra c i n ; si recordam o s las le c 0: increm ento en transicin de bajo a alto
c io n es a n te rio re s, en la p o sici n 3 d e l re g is 1: increm ento en transicin de a lto a bajo
tro O P C IO N se e n c u e n tra el b i t P SA , fig u ra PSA: P rescaler A ssig nm en t o Asignacin del prees-
calador
1 6 .2 . S i este b it s e e n c u e n tra en u n o , el p res
0: TRM0 (C ontador/Tem porizador)
c a la d o r se a sig n a al W D T y si est en cero , se
asig n a al T M R 0; haciendo la asignacin del pres V a lo r TMRO WDT
calador al W D T hacem os que los pulsos de en 000 1:2 1:1
001 1:4 1:2
trada al TM RO no sean som etidos a n in g n pro 010 1:8 1:4
ceso de divisin de frecuencia. 011 1:16 1:8
100 1:32 1:16
101 1:64 1:32
D e esca m anera el W D T puede ser som eti
110 1:128 1:64
do a un proceso de divisin para variar su tiem 111 1:256 1:128
po de respuesta, el cual se rige por los m ism os
factores configurados por los bits P S 0, PS1 y Figura 1 6.2 Registro OPCION

M T . l . Curso prctico sobre M icrocontroladores


Teora

PS2. C uando el prescalador es asignado al W D T tener m ucho cuidado en este punto, porque si den
se acostum bra den o m in arlo post-escalador. tro del program a desactivamos el w atchdog, pero
en el entorno de program acin se activa, este m
Uno de los problem as m s com unes que se dulo en definitiva quedar habilitado y esto se pue
encuentran cuando depuramos un programa, es que de reflejar en problemas de funcionamiento de nues
el temporizador watchdog (W D T ) est habilitado tro dispositivo electrnico.
inadvertidam ente y el circuito program ado no hace
su trabajo adecuadam ente. El W D T se puede acti La p a la b ra d e c o n fig u ra c i n
var m ediante la configuracin establecida dentro Cuando se programa un microcontrolador PIC, den
del entorno de desarrollo, figura 16.3; tam bin se tro del cdigo se suele colocar la palabra de configura
puede hacer dentro del cdigo del program a por cin que corresponde a una tcnica que nos permite
m edio de la palabra de configuracin. Debemos configurar desde el programa los parmetros con que
va a funcionar el circuito; para hacer esta operacin se
puede colocar un nmero binario o ciertas etiquetas
r lp (* x t r hs r rc r ec habilitadas, como se muestra en la figura 16.4. Un
r IN T R C p ] r E X T R C (E R J ejemplo de esta configuracin la podemos observar
r IN T R C C lo c k o u f C E X T R C (ERJ C lo c k o u t en el proyecto Aviso luminoso con diodos LED pu
blicado en este curso. Para especificar los parmetros
C od e P io te c tio n
deseados se utiliza la directiva del ensamblador co n fig ;
O ff U p p e t 1/2 V D a ta EE M em ory
la cual permite especificar cada uno de estos bits den
C A I C U p p e t 3/4 f C alibration S p a ce
tro del cdigo del programa. Esta directiva hace una
B ro w n-o ut V o lta g e operacin A N D (& ) con cada una de las etiquetas de
25 r 2.7 r 4.2 r 4.5 la figura 16.4, por ejemplo:
-Enable
WaijchdoqTim
eii V M em ory P arity Error _ c o n f ig (_ X T _ O S C & _W D T_O FF &
P o w e t-u p Tim er F L o w VoH age Progcam _PW RTE _O FF & BO D EN O FF &
B ro w n-o ut R e s e l R7 Flash P rogram W rfte _C P_O FF)
R ster Clear R e s e t 1 In-C kcu D e b u g g e r
En la sintaxis de esta d irectiv a podem os ob
servar algunos caracteres u n d erlin e ( _ ) q ue se
F ig u ra 16.3 Parm etros de configuracin deben escribir o b ligato riam en te. C om o hemos
13 12 11 10 9 8 6 5 4 3 2 1 0
CONFIG
(H2 0 0 7 )

F ig u ra 16.4 Palabra de configuracin

Curso p rctico sobre M icrocontroladores c i6 3


El iVcI lHiill! y l4 liu>u s Li- l-[>

Nom bre B it 7 B it 6 B it 5 B it A B it 3 B it 2 B it B it 0
config. bits MPEEN BODEN CP1 CPO PW rT e WDTE F0SC1 FOSCO
Tabla 16.1 Registros
0PTI0NLREG RBPU INTEDG TOCS TOSE PSA PS2 PS1 PSO asociados aJ WDT

m encionado an teriorm ente, m uchos program a-


dores aco stum b ran in c lu ir dentro de sus pro En co n d icio n es n o rm ales, el W D T se en carga
gram as u n a serie de archivos que contienen su de g en erar un estad o de reset a l m ic ro c o n tro la
b ru tin as, d e fin icio n e s, lib reras, etc., q u e los d o r c ad a que se alca n z a un tiem p o de espera.
h acen m s com prensibles, a la vez que perm iten C u a n d o se tra b a ja co n e l p o st-escalad o r, el
reu tilizar com ponentes de so ftw a r e en futuras W D T tien e un p erio d o d e espera de 18 m s el
aplicaciones. cu al p u e d e v a r ia r co n p a r m e tro s e x tern o s
com o la te m p eratu ra.
El m s u tiliz ad o es el archivo IN C , el cual
co n tien e todo el m ap a de d ireccion es R A M y la Si deseam os unos tiem p o s d e espera m s
descrip ci n de cada uno de los b its de los d is la rg o s, d eb em o s u tiliz a r el p o st-esca lad o r se
tin to s registros de cada tipo de m icro co n tro la le c c io n a n d o u n o de los facto res d e d iv isi n
dor, lo c u al nos ah o rra el trab ajo de rep etir con d is p o n ib le s . Si se le c c io n a m o s un fac to r de
tin u am en te las m ism as d efin icio n es; ejem p los 1:1 2 8 , p o d em o s lle g a r a p erio d o s h asta d e 2 .3
d e e sto s a r c h iv o s so n e l P 1 6 C 7 4 A .I N C , se g u n d o s.
P 1 6 F 8 4 .IN C , etc. D ebido a la gran u tilid a d de
estos archivos, ellos se en cu en tran d isp o n ib les R e g is tro : ESTADO
en la p g in a d el fab rican te para que sean des
cargado s y u tilizad o s lib rem en te. D entro de es IR P RP1 RPO TO PD Z

o
tos archivos IN C tam b in se en cu en tran todas B it 7 B it 0
las d efin icio n es de la p alab ra de co n figu raci n ,
lo que nos p erm ite u tilizar las etiq u etas en el D ire c c i n : 03h
m o m en to q u e vayam os a p ro gram arla. c o n d ic i n d e re set. 00077XXX

IRP: Selector de pgina para direccionamiento indirecto


En muchas ocasiones se encontrar que un mis Este b it no se utiliza efectiva m en te en el PIC16F84,
m o microcontrolador aparece con el sufijo A, por p o r lo que se puede u tiliz a r com o un b it de propsito
general.
ejemplo PIC 16C 74 y PIC16C74A. Esa diferencia
RP1,0: Selectores de pgi na para di recclonamiento directo.
se ver reflejada en la palabra de configuracin. flte rRPU se utiliza en el P tC tfF 8 4J3g 1 se puede
utilizar como un b it de propsito general.
Los b its de c o n fig u ra ci n del cdigo p ro Time Out o B it de finalizacin del temporizador.
Se coloca en 0 cuando el c ircu ito de vigilancia Watch-
tegido son tile s cu an d o se trab aja en el m odo d o g fin a liza la tem porizacin.
d e p ro g ram aci n se ria l. C u a lq u ie r secci n de ?D: P o w e r D ow n o B it de bajo consum o. Se coloca erj
la m em o ria de p ro gram a a la q u e no se le pro )r la instruccin SLEEP.
Z: Z e /o o ~ M rte -c efo. So coloea-err re ti d o el resultado
te ja el c d igo , es su scep tib le de ser le d a se de una operacin lgica o a ritm tica es cero.
ria lm e n te d esde un d isp o sitiv o extern o . Esto DC: D ig it C a rryo B it de acarreo de dgito. En operaciones
p e rm ite v e rific ar la in te g rid a d del c digo en a ritm tica s se activa cuando hay acarreo entre el b it
3 y el 4.
un m ic ro c o n tro lad o r p ro gram ad o y de c ie rta
C: C a rry o B it de acarrreo. En instru ccio ne s aritm ticas
m an era, p e rm ite te n e r en secreto el p ro gram a se activa cuando se presenta acarreo desde el b it ms
g u ard ad o . En la tab la 1 6 .1 po dem os ap reciar s ig n ific a tiv o del resultado.
u n resu m en de los registros aso ciad o s al fu n
c io n am ie n to del tem p o rizad o r w atch d o g . Figura 16.5 R egistro de estado

tS tM f& ll W ,1 Curso prctico sobre M icrocontroladores


D espertando del modo sleep
C u an d o en un proceso en el cual in terviene un D ep en d ien d o de cm o se d e sp ierta el P IC , el
m icrocontrolador este no opera duran te algn p ro g ram a in ic ia r su o p eraci n en d e te rm in a
perodo de tiem po, es posible llevarlo a un esta d a p o sici n de la m em o ria de p ro gram a; por
do en el cual se desactivan algu n as de sus fu n e je m p lo , si la sa lid a d el sleep se o rig in por
ciones y co n su m ir m enos en erga. Esta carac u n a se al en el p in M C L R o por u n a se al del
terstica es m u y til sobre todo en dispositivos W D T , el P IC in ic ia r su o p eraci n en la d i
aut nom os o p o rttiles q u e req uieran ahorrar recci n 0 x 0 0 0 , que co rrespond e a la p o sici n
al m xim o el consum o de sus bateras. n o rm al d el reset. S i este es e l caso, los b its PD y
T O y el registro P C O N p u ed en an alizarse para
Este m odo de bajo consum o se llam a sleep, id e n tific a r la cau sa de estar en la d irec c i n de
que en ingls quiere decir dorm ir; de hecho se in icio , com o lo verem os m s ad elan te en el ejer
puede decir que el m icrocontrolador se pone a c ic io de esta lecci n .
dorm ir. C u an d o de nuevo se requiere que el m i
crocontrolador funcione no rm alm ente se debe El registro P C O N (P o w e r C O N tro) con
despertar, para lo cual debe existir algu n a de las tiene u n a serie de banderas q u e, ju n to con los
condiciones que se citan m s adelante. b its T O y PD pued en u tilizarse para d e term i
nar el o rigen del estado de reset del m icro co n
P ara e n tra r a l m o d o slee p b asta e je c u ta r trolador, fig u ra 16.6.
la in stru c c i n SL E E P ; desde ese m o m en to el
o sc ila d o r se d e sa c tiv a , se a lm a c e n a el estad o El m icro co n tro lad o r p u ed e d esp ertar del
a c tu a l de to d o s los reg istro s, los te m p o riz a- m odo sleep por algu n a de las siguientes razones:
d o res se d e tie n e n (a e x cep ci n d e l T I M E R 1 ,
si ste se e n c u e n tr a fu n c io n a n d o con reloj 1. R eset del dispositivo
e x te rn o ), los p u e rto s p e rm an e c e n co n el es 2. Seal del W D T
tad o a c tu a l, el b i t PD d e l re g istro de estad o 3. A lgn m dulo perifrico q ue pueda activar una
se p o n e en b a jo y e l b i t T O se p o n e en a lto , band era de in terru p ci n m ientras estam os en
fig u ra 1 6 .5 . m odo sleep com o:
Pin externo IN T
El w atch d o g s c o n tin a fu n c io n a n d o ; de C am b io en un p in de entrada
hecho c u a n d o el d isp o sitiv o se e n c u e n tra en C om paradores
m odo sleep pu ede ser d esp ertad o p o r el W D T . A/D
P ara aseg u rar q u e el W D T est lim p io , se debe T im erl
e je c u ta r la in stru c c i n C L R W D T an tes de la LC D
in stru c c i n SLE E P. SSP
C ap tu ra

Registro U n aspecto im portante que se debe tener en


PCON cuenta dentro del m odo sleep, es cuanto tiem po
B IT 1 BIT0
se dem ora un m icrocontrolador PIC para salir de
B IT 0 B O R : B tte estado de resel por Brown - out
1: No ocurri reset por Brown - out
l. D ebido a que entre las funciones del PIC que
0: Ocurri un estado d e reset por Brown - out se desactivan se encuentra el oscilador, cuando se
B IT 1 P O R : B rid e estado d e l reset por encendido pretende norm alizar de nuevo el funcionam iento,
( Power-on )
1: No ocurri re s e fp o r Power-on se deben esperar 1.024 oscilaciones para asegurar
0: Ocurri re s e por Power-on
nos que la seal es estable y a partir de ese m o
Figura 16.6 Registro PCON
m ento em pezar la ejecucin norm al.

Curso p rctico sobre M icrocontroladores < s m iK < n w


El w atch d o g y el modo sleep

l i l i

F ig u ra 1 6.7 Despertando m ediante interrupciones

T am bin se pueden u tilizar interrupciones D ependiendo de la causa que lo hizo des


para salir del estado de sleep. Si el b it GIE se en pertar, ejecuta la in struccin en PC+2 o salta a la
cuentra en alto, el PIC saldr de este estado hacia in struccin ubicada en la direccin 04.
la direccin 04. Si esto no se debe a una interrup
cin, el PIC continuar el program a en el punto
donde se detuvo antes de entrar al m odo sleep. E ntra al m odo d orm id o (sta n d b y )
SLEEP
El diagram a de tiem pos que tiene lugar cu an El procesador se pone en m odo
do se despierta por m edio de una in terrupcin , SLEEP y se detiene su oscilador
se puede apreciar en la fig u ra 16.7. C u an d o se E jem j SLEEP
ejecuta la instruccin SLEEP siem pre se busca la
siguiente instruccin (PC+1); como siem pre ocu
rre ese fenm eno, es conveniente colocar siem
pre despus de la instruccin SLEEP u n a ins Borra el contenido del tem poriza
truccin NOP. dor w atch d o g
Su)i.!\ CLRW D T
Si ob servam os c u id ad o sam en te la fig u ra Inicializa de nuevo el tem poriza
1 6 .4 podem os ap reciar com o la ejecu ci n de la d o r w atc h d o g , al igual q ue el prescalador del
in stru cci n SLEEP y la b sq u ed a de la in stru c W DT.
cin en PC + 1, se en cu en tran en el m ism o esp a Ejem plo: C L R W D T
cio de tiem p o . En PC+2 el procesador y a se A ntes de la in stru cci n C ontador
en cuen tra en m odo sleep . S i el b it G IE se en W D T =?
cu en tra h ab ilitad o y aparece la b an d era que in D espus de la instruccin C ontador
d ic a la ap arici n de u n a in terru p ci n , el proce W D T = 00
sador espera un tiem po m ien tras se estab iliza la T O = 1, PD = 1
seal del reloj y de nuevo est en cap acid ad de
ejecu tar instrucciones.

it :. Curso p rctico sobre M icrocontroiadores


Teora

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
C LR F T R IS B LA D IR E C C I N SALE
E X P E R IM E N T A N D O CON EL MODO SLEEP POR EL PUERTO B
EN ESTE PROGRAM A PODEMOS OBSERVAR EL BCF S T A T U S ,R P O
C O M P O R T A M IE N T O DE LO S B IT S PD Y TO
CUANDO EL M ICR O C O TR O LADO R SE S A LE D E L M X O SLEEP LAZO COMF S T A T U S ,W M O STRAR VALO R ES DE
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
TO Y PD
MOVWF P O R T A
L IS T P=16F84 BSF IN T C O N ,IN T E H A B IL IT A
R A D IX D E C IN T E R R U P C I N P O R R BO
IN C L U D E C :\P 1 6 C 8 4 .IN C SLEEP PONE EL P IC A
D O R M IR
NOP P R E C A U C I N P A R A E L
. C O N F IG W D T .O F F & .X T .O S C SLEEP
; FEFRO GALFDIAN C E S C T IV A D M M JV 0 X 0 FB ESTA S A L ID A IN D IC A
.C O N F IG W D T .O N & .X T .O S C MOVWF P O R T B QUE ESTAM OS E N M O DO
; PERRO GUARDIAN ACTIVADO SLEEP

ORG 0 GOTO LAZO NOS E N C A S IL L A M O S EN


UN C IC L O
BSF S T A T U S ,R P 0
C LR F T R IS A ;P O R EL PUERTO A END
; SALE N TO Y PD

F ig u ra 1 6.8 E jercicio d e l m anejo d e l WDT y e l modo sleep


+V
+V

14
VDD RBO

6 80 2 MCLR
17
RAO

RB1
co
L i-
RB2 -v w H
tD RB3
O 10
RB4
ca
11
RB5 ----
12
RB6 v w n f -
ites 13
RB7 V vV - h I-------
1 OSC1 OSC2 6 80 2
16 15
HOK
4 MHz
22pF d = 22pF

T F ig u ra 16.9 D iagram a esquem tico d e l ejercicio

Curso p rctico sobre M icrocontroladores # r


El W L iid i u y y l4 lu u ll diHr['

TO PD RB1 RB2 Descripcin


1 1 1 0 P ow er on rerzt/MCLR durante la operacin normal
1 0 1 0 Seal de _ M C L R d uran te el m odo sleep
1 0 0 1 Seal en RB0
0 0 0 1 D espertando por m edio del W D T

Tabla 16.2 B its P D y T0

En el p rogram a de la figura 1 6 .8 podem os A l a lim e n ta r el c irc u ito p o d em o s ob ser-


an alizar algun o s d etalles im p o rtan tes de m ane var q u e lo s d io d o s LED q u e c o rresp o n d en a
jo d el m odo sleep; p ara e llo o b servem o s el T O y P D y RB1 se a c tiv a r n . S i esp eram o s
d iagram a esq u em tico de la figura 1 6 .9 . Ini alg u n o s se g u n d o s los tres LED se a p a g a r n ,
c ialm e n te se d esp liega p o r el p u erto el estado p ero el LED en R B 2 p e rm an e c e r ac tiv ad o .
d e los bits T O y PD q u e debe ser alto d eb id o a O b serv em o s en la ta b la 1 6 .2 el resu m en de
q ue apenas se a lim e n ta el sistem a y el program a los re su ltad o s o b ten id o s.
em p ieza en la direccin 0 x 0 0 0 0 . S e h a b ilita la
in terru p ci n IN T e in m ed iatam en te se en tra al Este sencillo ejercicio puede ilustrarnos acerca
m odo sleep. d e m uchos detalles que se deben tener en cuenta
para el m anejos del w atch d og y del m odo sleep.
Si se entrega una seal de reset, la seal en Para ex p erim en tar, podem os m o n tarlo en un
PD desaparecer debido a que se est in icial izan p r o to b o a r d y hacer toda clase de m odificaciones
do de nuevo el PIC estando ste dorm ido. A ho al program a y visualizar los resultados.
ra, si se enva un estado alto al pin RB0 el LED
en RB1 se ap agar y el ubicado en RB2 se en C o m p lem en ta el contenido del registro
cender. El estado en TO /PD indica q ue el modo
sleep se in terrum p i y el LED en R B 2 in d ica C O M F f,d
q ue la ejecucin term in. C O M F regis,0
Antes de la instruccin regis = 1 3 , W = ?
Si colocam os u n p unto y com a d elan te de D esp us de la in stru c c i n regis = 13,
la in stru cci n BSF IN T C O N ,IN T E para in d i W = EC
c arla com o co m en tario , se desactiva la in terru p
ci n IN T y de nuevo ponem os a fu n cio n ar el
e jercicio en el c u al observarem os que, com o era D ecrem enta el contenido del registro f .
d e esperarse, no pasa n ad a au n q u e se o p rim a el D ECF f,d
p u lsad o r en R B 0. D ECF regis, 1
A ntes de la instruccin regis = 1 3
En las p rim eras ln eas d el p ro gram a p o d e D espus de la in struccin regis = 12
m os o b servar dos d irectiv as C O N F IG una de
las cuales est c o m en tad a. En la p rim era ln e a
se d esactiva el W D T , ah o ra q u item o s el co m en Increm enta el con tenid o del registro f .
ta rio d e esa ln e a y co lo q u m o slo en la otra IN C F f,d
p a ra activ arlo . En este punto tam bin podem os IN C F regis, 1
hacer el ensayo de desactivar el W D T desde el A ntes de la in stru ccin regis = 24
program a pero h abilitarlo en el entorno de pro D espus de la in struccin regis = 25
gram acin para visualizar el resultado.

< M IK < IIT Curso prctico sobre M icrocontroladores


LECCIN 17

ARQUITECTURA DE LOS
MICROCONTROLADORES MOTOROLA
En esta le c c i n e stu d ia re m o s la e stru c tu ra in
te rn a o a rq u ite c tu r a , y el flu jo d e in fo rm a c i n
e n tre la u n id a d c e n tra l y lo s p erif ric o s d e los
m ic ro c o n tro la d o re s d e la fa m ilia 6 8 H C 0 8 , los
c u ales so n m u y re p re se n tativ o s d e n tro d e la a m
p lia g a m a de estos c irc u ito s in te g ra d o s, fa b ric a
dos p o r M O T O R O L A .

Curso p rctico sobre M icrocontroladores


D esde la aparicin de los prim eros m icro d ad cen tral de procesam iento (C P U ) particular
controladores fabricados por la em presa estado y un am p lio y com pleto conjunto de instruccio
unidense M O T O R O L A de la fam ilia 68X X , su nes. A dicio nalm en te, cuentan con un excelente
po pularidad ha ido creciendo a pasos ag ig an ta nivel d e com patibilid ad de cdigo entre todas sus
dos en virtu d de sus m agnficas caractersticas, fam ilias, lo cual los hace de fcil uso y flexibles,
tales com o in m u n id ad al ru ido elctrico, facili perm itien d o el intercam bio de program as entre
dad de program acin, velocidad, com patibilidad, m icrocontroladores de diferentes fam ilias.
flexibilidad, y una am p lia gam a de caractersti
cas y referencias disponibles. Entre las diferen cias m s sign ificativas de
estas cinco fam ilias se encuentran: las nuevas ins
Ellos han contado con u na gran acogida en la trucciones, la lo n gitu d de palabra (8 16 bits),
industria especialm ente en reas com o: el desa la disponibilidad de tem porizadores (1 a 8 tim ers),
rrollo de dispositivos electrnicos y sistem as de los tipos de puertos de co m un icaci n (S C I, SPI,
com unicacin telefnica analgica o digital, las I2 C , M B U S , U SB , SIO P y C A N ), el espacio y
redes de transm isin de datos, vdeo y sonido, los tipo de m em oria (E E PRO M , F LA SH y R A M ),
sistem as de rastreo y localizacin satelitales {global el nm ero de canales A/D (4 a 10 canales), y el
p o sitio n system G PS), los sistem as inteligentes para nm ero disponible de puertos d igitales de entra
el control del trfico terrestre, los dispositivos d i d a y salid a (entre 15 y 91 ).
gitales para el alm acenam iento, reproduccin y
reconocim iento de voz, y la construccin de dis En este curso se e stu d ia rn tres d e las fa
positivos para el control autom tico de algunas m ilia s m s p o p u lares y rep resen tativ as de los
funciones dentro de los autom viles m odernos. m icro co n tro lad o res d e M o to ro la, la 6 8 H C 0 8 ,
la 6 8 H C 1 1 y la 6 8 H C 1 2 , que tien e n una gran
A c tu a lm e n te los m ic ro c o n tro la d o re s de ac o g id a por p arte d e los fab rican tes y e stu d ia n
M otorola cuentan con cinco fam ilias p rin cip a tes d e esta te cn o lo g a en m u ch as in d u strias,
les: la 6 8 H C 0 5 , la 6 8 H C 0 8 , la 6 8 H C 1 1 , la cen tro s ed u cativ o s y u n iv ersid ad es del m u n
6 8 H C 1 2 y la 6 8 H C 1 6 , cada una con una un i d o ; d eb id o a su d is p o n ib ilid a d , v arie d ad de ca

M C68HC908AS60 8 - 2K 60 K FLASH 1K 2 (16 Bits) 45 /5 0 SCI/SPI 1 5 canales TIM Y 5,0 8 ,0 5 2 PLCC/64 QFP

XC68HC08AZO 8 . 1K _ 512 2 (16 Bits) 48 SCI/SPI 8 canales TIM Y 5,0 8 ,0 100 LQFP

XC68HC08AZ32 8 32K 1K - 512 2 (16 Bits) 48 SCI/SPI 8 canales TIM Y 5.0 8 ,0 64 QFP

XMC68HC908AZ60 8 . 2K 60 K FLASH 1K 2 (16 Bits) 48 SCI/SPI 1 5 canales TIM Y 5,0 8 .0 64 QFP

XC68HC908GP20 8 - 512 20 K FLASH - 2 (16 Bits) 33 SCI/SPI 8 canales TIM Y 3 ,0 -5 ,0 8 ,0 4 0 DIP

M C68HC908GP32 8 - 512 32 K FLASH - 2 (16 Bits) 33 SCI/SPI 8 canales TIM Y 3,0 - 5,0 8 .0 40 D IP

MC68HC90 8 - 128 4K FLASH - 2 (16 Bits) 23 - 12 canales TIM Y 3,0 - 5.0 8 ,0 28DIP

MC68HC908JK1 8 - 128 1 ,5K FLASH - 2 (16 Bits) 15 - 1 0 canales TIM Y 3,0 - 5,0 8 .0 2 0 DIP

M C68H C 908JK3 8 - 128 4K FLASH - 2 (16 Bits) 15 10 canales TIM Y 3 ,0 -5 ,0 8 ,0 20DIP

XC68HC08LN56 8 56K 128 - - 2 (16 Bits) 42 SCI/SPI 4 canales TIM Y 3 ,3 -5 ,0 8 ,0 144 LQFP

XC68HC708M P16 8 - 512 16K OTP - 2 (16 Bits) 44 SCI/SPI 10 canales TIM Y 5,0 8 ,0 64 QFP

XC68HC908M R24 8 - 512 24 K FLASH - 2 (16 Bits) 44 SCI/SPI 10 canales TIM Y 5,0 8 ,0 64 0FP

Tabta17.1 Cuadro de caractersticas princip ale s de ios m icrocontroladores M otorola de la fam ilia 68HC08
M *
170 Curso p r ctico sobre M icrocontroladores
Teora

ractersticas, red u cid o costo y fac ilid a d de p ro 5 ,5 V C C , ideal para la fabricacin de d isp o siti
g ram ac i n y d e p u rac i n p o r m edio de sus he vos porttiles.
rram ie n tas de desarro llo . Dos ripos de osciladores: con red R C o con
cristal de cuarzo externos.
En la ta b la 17.1 se m uestran de m an era re M em o ria FLASH para el usuario de 1.536
su m id a las p rin cip ales caractersticas de algu 4 .0 9 6 bytes, con estrategia de segu rid ad que
nos de los m icrocontroladores m s po pulares de d ificu lta la lectura o copia no auto rizad a de los
la fam ilia 6 8 H C 0 8 de M o toro la. datos contenidos en ella.
Memoria RAM con capacidad entre 128 y 512 bytes.
La fam ilia 68HC 08 Dos m dulos de tem porizacin de 16 b i t s c ada
Los m icrocontroladores M C 6 8 H C 9 0 8 JX X son uno (T IM A y T IM B ).
m iem b ros de la fam ilia 6 8 H C 0 8 de rango m e D oce canales, cada uno con convertidor an
d io , bajo costo y alto desem peo. Todos los m i logo/digital de 8 bits.
cro controladores de esta fam ilia poseen u n a pa Q uince lneas de entradas y salidas d igitales de
lab ra de un b y te (8 b its), y usan la m ism a u n i propsito general, dentro de las que se cuen
dad cen tral de procesam ien to conocida com o tan las in terrupcion es para el m anejo de tecla
C P U 0 8 . Las p rin cip ales caractersticas con las do con resistencias internas de p u ll-u p , los d ri-
q u e c u e n tan , y que son tpicas para la m ayora vers o am plificadores de corriente para diodos
de los m icrocontroladores de M o to ro la son: LED , las eneradas o salidas de drenador ab ier
to ( o p en -d ra in ) de 25m A cada una, las lneas
C P U 0 8 con arqu itectu ra Von N eum ann y bus para trab ajar en el m odo de captura (ICAP/
interno de 8M H z. O C A P ), la salid a del generador de P W M .
A m plio y com pleto co n ju n to de instrucciones Cuatro sistemas de proteccin para el cdigo del
(poseen m s de 90 in strucciones con funcio programa, que son: C O P (sistema de vigilancia
nes sim ples y especializadas). Watchdog), LVI (inhibidor de bajo voltaje), detec
C d igo de program a y tecn olo ga com patible tor de cdigo ilegal y detector de direccin ilegal.
con fam ilias de rango inferior, tales com o las Sistema maestro de restablecimiento (RESET) ac
M 6 8 0 5 , H C 0 5 y M 146805. tivo en nivel bajo, con resistencia interna de suje
D iseo C M O S con bajo consum o de potencia cin a Vdd, e interrupcin de restablecimiento a la
y con u n ran go de alim e n ta c i n e n tre 3 y conexin de la alimentacin PO R {power on reset).

28-pn PDIP 68HC908JL3CP


Busde8M Hz,con cristal 28-pin SOIC 68HC908JL3CDW
XT, resonador con reloj 20-pin PDIP 68HC908JK3CP
externo. CPU08
20-pin SOIC 68HC908JK3CDW
>Bus de 2MHz, con
20-pin PDIP 68HC908JK1CP
o scilad or RC. 20-pin SOIC 68HC908JK1CDW
23 1/0
(28 pin)
FLASH de 4 kbytes Entradas y salidas flexibles
FLASH
(JL3/JK3). RAM 151/0 7 entradas de interrupcin para
FLASH de 1,5 kbytes (JK1). Memory (20 pin) teclado.
RAM de 128 bytes. 10 entradas y salidas de 10mA.
2 entradas y salidas drenadero
abierto de 25 mA.

LVI - LVI (Inhibidor y res/de voltaje bajo)


M dulo de captura,
Timers
com paracin y PWM
(2 Canales de 16 bits). Convertidores A/D
A/D
' 1 2 Canales de 8 bits (JL).
10 Canales de 8 bits (JK).
k __________________

Figura 17.1 Sum ario de las caractersticas princip ale s den tro de los m icrocontroladores de la fa m ilia 68HC08

Curso p r ctico sobre M icrocontroladores


'L>Ullil'UI.LLUL^b- WlUUIVi

s