Está en la página 1de 323

TEO

@
A, ffi,
Capa.c:ita,nlos lrara.
uiuir nteiot
gGlleraL
Es muy placentero
y satisfacto,io
p"," CEKIT S.A. presentar
a todos nuestros
lectores y amigos, estudites,
profesorer,
"fi.iorr"dos,
tcnicos, profesionales
y en general
a la comunidad
tcnica int.rnacional,
una nueva obra didctica en el camPo de la electr-
;i;"-;;J.r,ito
p-iio yi"
-.,oaologa
de'Aprendertraciendo"
que no:
F:t::t:tl*
do por anros aos. Se trata del Curso prfutii sobre MICROCONTROLADORE$
el
cual tiene como oUioirro principal
d-",
"
.orrocer y ensear,
de una manera ficll y
agradable,
esta maravillosa
tecnologa'
Los microcontroladores,
que pueden considerarse
como una microcomputadora
en un slo empaq,,.,
t,"'p.,-i.iao
un avance sin par en los ltimos_aos
en el diseo
y la fabricacin
de todo tipo de aparatos y aplicaciones
electrnicas'
Haciendo un smil
con el ser humano, pod.-o,
decir que un microcontrolador
es un
Pequeo
cerebro
electrnico
for*"do'po,
-.r.ho,
,.".rri.,or.,
interconectados
entre sl tal como las neu-
ronas y que tiene rr"ri", zonas con funciones
especializadas
como la memoria' uno o
varios circuitos para recibir informacin
de teclados, interruptottt
y,:t"::l:tl^:l*'
otros, y secciorr.s
para activar elementos
externos como motores,
rels' lndlcaoores
sonoros, pantallas,
.t..; ado esto coordinado
por medio de un
Programa
o conjunto
de instrucciones.
Nunca antes, en la historia de la electrnica,
un componente
haba permitido
"nra creatividad
y J.r"r.ollo
de productos
de una forma tan fcil' en tan corto tiempo
f"
lo.ro. ,"r, ,.rr.iJos.
Con los microcontroladores
es posible disear y fabricar casi
cualquier
aparato que se nos ocurra; el lmite est dado slo por la imaginacin
y
t.r.rir" capacidad
de hacerlo'
Aunque el tema parece difcil y complejo,
realmente no lo es y pafa demostrar
lo
contrario,
lo iremos explicando
p"ro
"
p".o ." u-n lenguaje simple acompaado
de
muchas figuras, di"gram"s
e ilusiracione.
de tal forma qut los lectores lo puedan ir
asimilando
"
r" p;;i;;i;;"
de aprendizaje
sin
-"y."r::
dificultades.
Para entender
v
"pfi."t
..,"...rrloi",
,. requieren conocimientos
de Electrnica
Digital' de los siste-
mas de ,rum.racirrl
.rp..i"l-.nte
del sistema binario y hexadecimal'
y nociones
bsi-
'
cas sobre los micropro."dor.r.
Sin embargo, durante .l
"rr,,o
rePasaremos
algunos de
los concepto,
f,rrr"-.ntales
de estos ,.-, con el fin de que los lectores que no los
.orror."t,
puedan comprender
mejor cada una de las lecciones'
La mayorade
los aparatos
electrnicos
modernos incluyen uno o vanos micro-
controladores
y de ah la importancia
y necesidad de este curso en este mundo tecnol-
gico en el cual nos encontr"rrror.
un reloj d_igital d:.p."f.t1lo
utiliza para contabilizar
el tiempo,
mostrarlo en una pequeapanta[
y recibir las rdenes en los botones para
ejecutar dif.r.rrt.,
furr.iorr...
Una vid.og."b"o,"
lo utiliza para coordinar
sus princi-
pales funciones
como el encendid
o y ,llp^g do, el cambio
de los canales' el avance y
retroceso de ta cint", las funcione, d.l .orrrr remoto, etc. En un horno microondas
el
microcontrot"o.r.'*.arga
de recibir las rdenes que le damos en el teclado' mostrarlas
en la pantalla
y accionar
.f.lemerrto
que produce el calor en los alimentos'
LffisLLrn
&i.r:: curso
prctico sobre Microcontroladores
Pero sin restarle importancia a este tipo de aplicaciones, es en otro c:rmpo 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 experimental y sobre todo para ensearles a nuestros lectores cmo desa-
rrollar su propia aplicacin partiendo de sus necesidades particulares.
Para enseary explicar mejor esa tecnologa, hemos dividido este curso en varias secciones asl:
Una seccin de Teora en donde se presentan los conceptos bsicos de los microcon-
troladores iniciando con su origen basado en los microprocer"dor.s, su esrructura o
arquitectura interna, su funcionamiento elctrico y lgico, la operacin de sus blo-
ques internos, etc. En fin, toda la informacin necsaria para poder configurar un
circuito con un microcontrolador y entender su funcionamiento.
Una seccin de Programacin 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 importancia dentro del curso ya que la programacin es donde radica la
mayor dificultad de muchas personas para acceder a esta tecnologla 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 metodologla de CEKIT
S.A., hay una secccin de Proyectos y actividades prcticas en donde se presentan
ejemplos completos con aplicaciones de diferentes tipos de microconrroladores. En
esta seccin tambin se incluirn los diagramas de piries y las caracterfsticas de los
microcontroladores ms representativos de las principales marcas o fabricantes y una
explicacin de los componenres y circuitos que los acompaan, desde un simple
LED, hasta pantallas de cristal llquido (LCD),
sensores, conversores A./D, acondi-
cionadores de seal, etc.
Aunque existen en el mercado una buena cantidad de fabricanres de micro-
controladores, cada uno con una gran variedad de modelos, hemos seleccionado
como ejemplos para este curso principalmente los de MotorolayMicrochip (PIC)
Por
ser los de mayor difusin y aplicacin actualmente; con un menor cubri-
miento, los de INTEL, ATMEL, PARALLAX y oos, los cuales esperamos rra-
tar en un prximo curso.
Felipe Gonzlez G.
Editor Generd
#<lE:.
Curco prctico sobre Microcontrotadores
- . . <a
* _
-
\ - ] , L
- ' - - -
: - : - c-
: . . dI I
- -
el
- - - -
- - : d-
-
_rn-
: : t o
l - o-
: JN
tIn microcontrolador
(microcontro
ller,
en ingls) es un circuito integrado que
contiene todalaestructura de una mi-
crocomputadora, o sea, CPIJ
(unidad
Central de Proceso), memoria RAM
,
memoria ROM, circuitos de entrada-
sal i da
(IIO)
y otros mdul os con apl i -
caciones especiales. Su nombre nos in-
dica sus principales caractersticas: mi-
cro por lo pequeo y controlador por-
que se ut llizaprincipalmente
Paracon-
trolar otros circuitos o dispositivos elc-
tri cos, mecni cos, etc.
curso prctico sobre Microcontroladores
&*,
E.:.db
\,f
a
I
- ) ' *
\ - s
- \ '
\ /
Este maravilloso
componente
resulne' en un solo
circuito
integrad,o,
ms de cuarenta
aos de tecnolo-
ga electrn.
Es difcil enconffar
en la actualidad
un apararo o una aplicacin
que no 1o utilice o no
prr.dl"
utilizarlo para opdmizar
su oPeracin.
se ha menci onado
y confi rmado
muchas
veces que la electrnica
es la tecnol oga de los
componenres.
El desarrollo
de cada nuevo dis-
poriii,ro
de estado slido trae consigo
tcnicas
de
di seo di ferentes,
pot l o general ,
ms si mpl es'
E,n los aos sesenr a, pafaconstruir
un reloj digi-
tal, era necesario
acoplar un buen nmero
de cir-
cui tos i ntegrados
l gi cos. Al mi smo ti empo,_el
diseador
Jeba por.,
conocimientos
muy cla-
ros sobre cada uno de los elementos ,
paa reali-
zaf, con xito, l" integracin'
A partir
de 1970' el panorama
de la electr-
nica y especialmente
.1 . la electrnica
digital'
cambi radicalmente
cuando
aPareci
en el mer-
cad,o un nuevo supercomPonente:
el micropro-
cesad.or.
Esto introdujo
un concePto
novedoso
que en la actualidad
se conserva y refu erza cada
vezms,
el de la lgica programada.
Antes de los
microprocesadores,
los circuitos
electrnicos
se
diseaban
Par^
una funcin
esPe-
cfi,cala
cual no
Poda
modificarse
si n cambi ar
fsi camente
l as co-
Figura 1.1. Eiempto de un circuito con tgica cableada
ner i ones. ei nur t ; r t r . . ^: . : i t r i , Jad
de l os di f er en-
t es el ement os que l os f ormab' ' an
a l o cual se l e
llam la lgica cableadtt,
figura 1' 1'
con los microprocesadores
y ahora con los
circuitos lgicos programables
(FPGA), los mi-
crocontrolJores
y los circuitos
de DSP
(Proce-
sami ento Di gi tal de seal es),
entre otros' es posi -
ble modifi cafcuantas
veces se requiera el progra-
ma, an en forma remota
Por
la internet, y el
circuito o aparato en el cual estn instalados,
tra-
baprd. ,rn" forma completamente
diferente
sin
modifi caflsicamente
una sola conexin'
De esta
forma, el lmite de los diseos solo lo establece
la
imaginacin
de los programadores
y Ia caPacr-
dad de los dispositivr
q.t. lancen al mercado
los
fabricantes
especi alizados en estas tecnologas'
consol i dadas
l as t cni cas
di gi t al es
de l os
aos sesent a, se cre ent onces
l a necesi dad
de
profu ndizar en el estudio y desarrollo
de las
apl i caci ones
p^f a l os mi croProcesadores
y l a
programacin.n
l.rrguaje de mquina o dssembbr.
f , rJt " poca de oro del 8080, el 8086, el Z-80,
el 6809, el 6502, el 68000 y ot ros mi croPro-
cesadores,
ut i l i zados
como ci rcui t os
cent ral es
en l as apl i caci ones
de cont rol '
En 1980, aproximadamente,
los fabri-
canres de circ.ri,o,
integrados
iniciaron
la
difusin de un nuevo circuito con aplica-
ciones paraconffol,
medicin
e instrumen-
tacin, al que llamaron
"microcomputa-
dor en un slo chiy'' o, de manera
ms
exacm y concisa: mirocontrolndnr.
Para
entender
mejor [a estructura
interna, el fu-
cionamiento
y los orgenes
de los micro-
controladores,
rePasaremos
primero
el
tema de los microProcesadores'
Desde el punto de vista funcional,
un mi-
croprocesador
es un circuito
integrado,
fi-
grrt" l.Z,que
incorpora
en su interior una
unidad ..ntral de ptottto
(CPU) y todo
un conjunto
de elementos
lgicos que
Per-
I
' : 5
-,rrrrJl
ilt
,4L *ii' #
{+ b
& nffi.:. curso
prctico sobre Microcontroladores
\yZ
-l
)s ,Jiteren-
cuil se le
ra con l os
l ' , . l os mi -
;P t,Proce-
)s. es posi -
el progra-
:rnet, y el
lados
,
tfa-
ferente sin
,n.
De esta
stablece la
la capaci-
ercado l os
rol ogas.
l es de l os
esi dad de
llo de las
l o res y l a
:sembler.
, .
el Z-80,
ni cropro-
cent ral es
, 1.
:- los fabri-
riciaron la
on aplica-
T]STIUITICN-
romputa-
urera ms
rdor. Para
rna. el fu-
hr micro-
dmero el
!e.t- un ml-
es:ado, fi-
.t-:r or una
L- ' , -rodo
Is c ue
Per-
X1
x2
RESET OUT
vcc
HOLD
HLDA
cLK (0ul
nEser N
READY
ron
S1
RD
WR
ALE
SO
415
A14
413
At2
Al l
A10
A9
AB
'','"lffiluffi'
un solo microprocesador, utilizado en el di-
seo de un sistema digital, puede ree mplazar una
gran cantidad de circuiros integrados de peque-
r^y mediana escala como compuerra s,
flip-flops,
registros, contadores, decodificadores, memorias,
sumadores, comparadores, etc, figura L.3. Esto
es ventajoso desde varios punros de vista: facili-
dad de diseo, modularidad, versatilidad, flexi-
bilidad, manrenimienro, bajo cosro, confiabili-
dad, poco consumo de ene rga, etc.
Figura 1.2, Microprocesdor 8085
miten enlazar otros dispositivos como memorias
y puertos de entrada o de salida (I/O), formando
un sistema complero para cumplir con
una aplicacin especfica dentro del
mundo 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
,i
elementos de memo ria, generalmente
externos al mismo . La aplicacin ms
importanre de los microprocesadores y
que cambi totalmente la forma de tra-
bajar, ha sido la computadora personal
o microcomputadora.
Dent ro de l os anal es de l a el ect rni ca est el
ao de L970 como l a f echa de i nvenci n del
mi croprocesador.
Desde ent onces, est e di mi -
nut o di sposi t i vo, uno de l os adel anros recno-
l gi cos ms i mporranres de nuesrro si gl o, ha
revol uci onado
t odos l os campos de l a vi da
humana. Con el mi croprocesador se i ni ci
una nueva era de desarrol l o de l a i ndust ri a de
l as comput adoras y de l a el ect rni ca, l a cual
hast a el presenre ha i do evohrci onando con
una vel oci dad que an sorprende i ncl uso a
l os vi si onari os ms f ut uri sras. Nadi e en esa
poca se i magi naba el i mpacro ran grande que
causara este desarrol l o en l a vi da del hombre
moderno.
Los apararos electrnicos que utilizan mi-
croprocesadores,
entre el l os l as computadoras
personal es y de escri tori o, fi gura L.4, han cam-
bi ado total menre l a forma de trabaj ar e i nves-
Figura |
'3'
Tarieta con circuitos integrados individuales vs un Microprocesador
, oot s
sl D+>
TRAP
--+
RST 7.5 -*
RST 6.5 -+
RST 5.5
->
INTR
-f>
i M+-
ADa{- {
AD1 +)
AD2
AD3{*
\
AD4
ADS{*
AD6
AD7
Vss
c u rso p r cti co sob re Mic roco ntro I a do res
&a,
l:.:.#
&d
ffi
Figura 1.4. Computadora perslnal y su tarjeta principal
t i gar de l os seres humanos. Ni nguna herra-
mi enta anteri or desarrol l ada por el hombre l e
haba dado tanto poder para crear orras y ace-
l erar su evol uci n en todos l os campos. Para
asi mi l ar mej or el desarrol l o de esra tecnol o-
ga, retrocedamos un poco en l a hi stori a de l a
el ectrni ca, sus componentes y apl i caci ones.
Si n l ugar a dudas, l a senda l a abri el i n-
vento del tubo de vaco por Lee De Forest a
comi enzos del si gl o, basado en el descubri -
mi ento de un fenmeno l l amado Efecto Edi -
son. Este di sposi ti vo hi zo posi bl e l a radi o, l "
telefo na, la tele grafa inalmbrica, erc., e im-
pul s el desarrol l o comerci al e i ndustri al de l a
el ectrni ca. Incl usi ve l as pri meras compura-
doras eran fabricadas con tubos de vaco. Lue-
go vi no l a revol uci n del transi sror, desarro-
l l ado en l os l aboratori os de Bel l Tel ephone en
1948 y uti l i zado a parti r de 1950 a escal a i n-
dustri al , con su i ncl usi n en l a fabri caci n de
todo ti po de aparatos de radi o, tel evi si n, so-
ni do, computadoras y en l a i ndustri a mi l i tar y
espaci al , entre otras apl i caci ones.
De l os tres i nvenrores del rransi stor (' S7' .
Brattai n, \(/. Shockl ry y
J.
Bardeen), fi gura
1. 5, Shockl ey f ue el ni co que se dedi c a
desarrol l ar mt odos de f abri caci n en seri e
de est e revol uci onari o di sposi t i vo en su em-
presa, Shockl . y Semi conducror Labora-
tori es, dando naci mi ento a una nueva era
en l a i ndust ri a el ect rni ca y a l a ubi ca-
ci n de est a t ecnol og a en un si t i o de Ca-
l i f orni a cercano a San Franci sco que ms
tarde se l l am Si l i con Val l ey o Val l e del
Si l i ci o. En est a com pa r a se i ni ci aron l os
pri nci pal es ci ent f i cos e i ngeni eros que
ms t arde f orma r an sus propi as empre-
sas y desarrol l ar an l os ci rcui ros i nt egra-
dos y l os mi croprocesadores.
El mi croprocesador es el mxi mo ex-
ponente de l a erapa si gui enre al transi s-
tor: l a tecnol oga de l os ci rcui ros i ntegra-
dos. El concepro de ci rcui t o i nt egrado,
fi gura I.6, effi p ez a rondar por l os cerebros y
mentes prodi gi osas de qui enes trabaj aban en
el di seo y fabri caci n de transi stores. El pl an-
teami ento fue ms o menos el si gui enre: si se
fabri caban transi srores en forma i ndi vi dual y
l uego se tenan que uni r si empre de l a mi sma
forma entre s con al ambres y con otros com-
ponent es
por
qu no f abri car de unavez t odo
el conj unto de materi al semi conducror y ai s-
l ante, i nterconectado i nternamenre para que
cumpl i era l a mi sma funci n del si stema total ?
Est e pl ant eami ent o f ue desarrol l ado en
l " p rct i cv si mul t neamenre, pero en f orma
i ndependi ent e, por dos empr esas muy i m-
I
I
- -
t l t
. '":i
:
- - i l
_ .,. {llu
-
- *l
. !
' . ' . ' . . - ' ' ' , l
.. r- {llul
-
. l
'1lFrl
. *.. llu
',',,1
_, n
- . - , *t
l Jl
-.,
""
:'"
;i, r{
*.
"- '
Tt r
-. .
:
""
' ' l l !
j , :
: TT[
-
, i l [
,r-.. ll
tl
;
. .dlll.rl
- q
"
:::,:l
n
q
,,
,,,, -,,,rild
;wl
,
^
r'
gWrE:.
Cursogrctico sobre Microcontroladores
cs. ll , |
\,
-
z<S'
,,,
--,,ts
#*tt
XOCIX
Figura 1.5, El transistor y sus inventores
bora-
ra era
rb i ca-
.e Ca-
e ms
l e del
cn l os
$ que
rnPre-
t egra-
no ex-
ran s i s-
l tegra-
grado,
: bros y
Dan en
I pl an-
e: si se
i dual y
mi sma
IS COITI-
ez todo
r v ai s-
.ra que
a t ot al ?
l ado en
r f orma
ru)' i m-
por t ant es en l a hi st or i a de l a el ect r ni ca:
Fai r chi l d Semi conducr or y Texas I nsr r u-
ment s. En Fai rchi l d di ri g a el equi po de t ra-
baj o Robert Noyce, y en Texas
Jack
Ki l by.
Como ancdot a, podemos menci onar que l os
pr i mer os ci r cui t os i nt egr ados sal i er on al
mercado en el ao de 1959 a un preci o de
450 dl ares y sol amente i ncl uan cuarro tran-
si st ores y vari as resi st enci as. Act ual menre, un
ci rcui t o i nt egrado cuest a enrre l 0 y 20 cen-
t avos de dl ar y un mi crocont rol ador senci -
l l o, con muchas ms pr est aci ones, puede
cost ar hast a un dl ar o menos en escal as i n-
dust ri al es . La expl osi n de l os ci rcui ros i n-
t egrados desde el ao 1960 hast a l a f echa,
ha permi t i do el desarrol l o de l a el ect rni ca
en una f orma sorprendent e.
Noyce renunci a l a Fai rchi l d en 1968 y
fund, er comp aa de Gordon Moore y An-
drew Grove y con el respal do econmi co de
Art hur Rock, l a empresa I nt el en donde se
di eron l os pri meros pasos para el desarrol l o
del microprocesador. Esta comp a.a empez
a vi sl umbrar un gran mercado en el rea de
l as comput adoras y su i nvest i gaci n se ori en-
r haci a el reempl azo de l os ci rcui ros de me-
mori a magnt i cos con ncl eo de f erri t a, por
ci rcui t os de memori a basados en semi conduc-
rores. La base t cni ca consi st i en el uso de
un si mpl e
fl i p-fl op
como el emenro de memo-
ri a. As se cre el pri mer ci rcui t o de memori a
-i po
RAM l l amado el 1 103, con una capaci -
: rd de 1024 bi t s.
El di seo del mi croprocesador se i ni ci
--
Lrn grupo de t rabaj o de I nt el di ri gi do por
Te..i Hoff, un bri l l anre i ngeni ero egresado de
' a
uni versi dad de St anf ord. Todo emp ez
cuando I nt el se deci di a f i rmar un conrraro
ccn una compafi aj aponesa fabri cante de cal -
cul adoras (l a
desapareci da Busi com Corpo ra-
ri on ). sra quer a' que se l es f abri c araun con-
i unt o de ci rcui t os i nt egrados que reempl aza-
ran l a gran cant i dad de component es que re-
r an l as cal cul adoras de ese enronces.
Despus de un largo rrab"jo, se lleg hasta
lograr que todo el circuito fuera reemplazado
por tres chips, pero estos resultaron ser de un
tamao mayor de acuerdo a los requerimien-
tos. A Hoff se le ocurri que deba agrupar toda
la parte de proceso aritmtico y lgico en un
solo circuito y el resro de la calculadora en los
otros dos circuiros. Con la intervencin de otro
diseadot, Federico Faggin, el proyecro se llev
acabo con todo xito. A este circuito, de 2250
elementos integrados en un rea de 3 x 4 mil-
metros, se le llam microprocesndor. Thmbin
se le dio el nombre de CPU (
Central Processing
Unit) o MPU (Micro
Processing
(Jnit).
Aunque esre circuito ten ayamuchas de las
caractersticas
de una unidad central de proce-
so integrada, el primer microprocesador en un
slo chip, fabricado como tal, fue el 4004 de
Intel, diseado para ree mplazar grandes canti-
dades de circuitos integrados TTL. El 400 4 era
un chip muy sencillo que manipulaba datos de
cuatro bi ts. Intel desarrol l muy pronro, en
1972, el 8008, el cual poda procesar datos de
ocho bits. pero era muy lento.
Para remediar esto, Inrel desarroll un sus-
ti tuto, el 8080, y posteri ormenre el 8085, com-
Figura 1.6. Estructura interna bsica de un circuito integrado
s inventores
curso prctico
sobre Microcontroradores
&ar-r#
p",i bl .
con el pri mero,
con funci ones
adi ci o-
nal es y meno,
.i r.ui tos
de soporte.
un equi po
de diseadores
que antes
haba trabajado
Pafa
Intel en el 8080
form
l a Zi l ogl nc.
I:otstru-
y el mi croprocesador
z-80,
el cual i ncorpo-
raba un corr,ttr,o
de instrucciones
ms exten-
so que el 8080' aunque
era to-Patible
con este
ltimo.
Este micropro..sador
ha sido uno de
los ms utilizadot
* el campo
de control'
Por l a mi sma
poca
en que se
Presentaba
al mercado
el 8080, otra emPresa
de semi con-
ductores,
Motorol a,
desarrol l
el 6800,
ur mi -
croprocesador
de 8 bi ts con un di seo
com-
pl.t"-ente
distinto
Pero
corl,' q:{:t^caracte-
rsti cas.
Motorol a
p.i f..ci on
el 6800
haci a el
6309,
consi derado
como
uno de l os mei ores
procesadores
de 8 bits de todas
las pocas'
A pesar
de sus excelentes
caactersticas'
el 6309
no ruvo el xi to comerci al
que se es-
peraba.
Di cho xi to
l o obtuvo
otro deri vado
del 6800:
el 6502,
produci do Por
MOS
Te-
chnol ogy.
con .rr. mi croProcesador
se fa-
bri caro
1", pri meras
comPutadoras Persona-
I es como
l a PET de commodore
y l a ApPl e
I I de APPt e
ComPut er
I nc'
A part i r
de ese moment o,
S est abl eci
. una
guerra
t cni c
ay comerci al r Q
an sub-
si ste,
enrre
Intel y Motorol a,
l a cual
l os ha
l l evado
a ser l os do, grandes
l deres
i ndi scu-
ti bl es
del mercado
d. l ot mi croProcesadores'
pero
el desarrol l o
del mi croProcesador
no se
q,r.d
ah. A pri nci pi os
de l a dcada
de l os
80, emPeza onaaPar ecer l : t mi cr oPr ocesa-
dores
d; di eci sei s
bi ts, mucho
ms potentes'
El pri mero
en sal i r al mercado
fue el 8086 de
Intel en 1 978,
el cual fue adoptado
PoI
la IBM
p^*^l a
f abri caci n
de su f amosa
I BM
Pc' Lo
si gui er on
de cer ca
el 68000,
el 68020,
el
630 30 yel 68040
de Mot orol a.
con est os mi -
croProcesadores
se i ni ci
en nppl t una nueva
f ami t i a
de mi crocomPut adoras:
l as Maci n-
t osh. LueEo, enunconsor ci oent r eApPl . . '
IBM y Mtorol a
se desarrol l
una nueva fa-
&
,v'
\{1>'
T[at
,:.2. curso
prctico sobre Microcontroladores
8FC
V\ ,.)z
XNX
mi l a de mi croprocesadores:
l os Power
Pc l os
cual es se uti l i zan
en l as comPutadoras
Appl e
e I BM act ual es.
Por los lados de Intel se desarrollaron
el 8088
utilizado
en el IBM )(L el 80186'
el 80286
utili?a-
do par alaIBM
Ar, el 80386,
el 80486y
los Pen-
dm.
Todos estos microProcesadores
de Intel han
sido utilizados
Para
la fabricacin
de microcomPu-
tadoras
de bajo costo llamadas
clones,
lo
9!1
ha
hecho que esra empresa
siga siendo el mayor
fabri-
cante de microprocesadores
en el mundo.
Lasi gui enre
generaci n
fueron
l os Pen-
t i uml l , Pent i uml l l yact ual ment el osPen-
ti um IV con l os cual .s
se han l ogrado
vel oci -
dades d. procesami ento
i mpresi onantes
y una
enorm.
."p"cidad\e
memo tia,lo que los hace
apropiados
paramoverse
sin problemas
en en-
rornos
como
l a i nt ernet ,
el vi deo,
l a mul t i -
medi a,
el procesami ento
de datos y el trabaj o
en t i emPo
real '
il# m
g
&t * # $:$* fiP
f t# {; {# t*. ;fr u$ {3 $'{,* S
p
ffi
'.
4"fi ru # +r l+
Dentro
de los microProcesadores
de la pla-
taforma
Pc, actualmente
podemos
mencionar
los productos
de las firmas
Intel, AMD,
cyrix
,
t,rital.
Las referencias
ms novedosas
son
el Pentium
IV el Althon'
el 686 MMX
y el
Alpha,
resPectivamente'
figura
l'7'
Figura 1.7. Micro7rocesadores
. os
l l .
' i
' l
t l
EE
L
' ; n-
' 3n-
- - :
una
I l ce
an-
. t . i
- . Ll _
r . 1l o
^t . .
t , 4",
. -. ri x
: ul t
:.
el
Son los circuitos integrados que
revol uci onaron l a el ectrni ca al
permitir el diseo de todo tipo de
aparatos programables. Aunque su
principal aplicacin son las com-
putadoras personales, tambin se
encuentran en la mayora de los
circuitos de control.
curso prctico
sobre Miuocontrotadores
&icmt
#
El microprocesador, corazn de las
computadoras
Una computadora digital es un equipo especiali-
zado en el procesamiento de informacin, cuyo
principio de funcionamiento 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 ficiles de entende la parte compleja la
encontramos cuando estudiamos el interior de
dichos circuitos, pero esto en realidad no es de
mucho inters para el usuario comn.
Una computadora digital se compone de tres
bloques fundamentales, figura 2.L: una unidad
de entradas y salidas, una CPU y una memoria.
A su vez, la unidad de entradas y salidas se divide
en un bloque de entrada y otro de salida. Del
mismo modo, la CPU se divide en una unidad
aritmtico-lgica
(ALU),
y una unidad de con-
trol y el bloque de memoria en memoria RAM y
memoria ROM, obtenindose seis bloques o uni-
dades con funciones muyespecficas, figaru2.2,
cuyas funciones describiremos a continuacin.
La unidad de entrada es quien recibe infor-
macin del mundo exterio ya sea de un opera-
dor humano o un fenmeno ftsico; esta unidad
permite llevar esa informacin hacia la unidad
de memoria para poder procesarla posteriormen-
te; dispositivos de entrada son, por ejemplo, los
teclados y el ratn. La unidad de salida entrega
los resultados del procesamiento al mundo exte-
Figun 2.1 Bloques principales de una compubdon digibl
Microprocesador
o CPU
Figun 2.2 Estructura general de una computadora digital
rior. Esta informacin se lleva desde la unidad
central de proceso o CPU, hacia circuitos o apa-
ratos externos llamados perifericos que se encuen-
ffan fuera de la computadora, por ejemplo mo-
nitores, impresoras o padantes.
La unidad de memoria se encarga de dma-
cenar los datos y los programas que operan sobre
esos datos y es una de las ms importantes de
una computadora. Se distinguen dos sistemas
diferentes de memoria: la de almacenamiento
primario y la de almacenamiento secundario. La
memoria de almacenamiento primario se refiere
a los circuitos'que guardan los programas que se
van a ejecutar y los datos que se necesitan duran-
te la ejecucin de estos programas, y la memoria
de almacenamiento 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".
Dentro de la memoria de almacenamiento
secundario se distinguen tres categorlas: la ROM
(Read
Only MernorT) o memoria de solo lectura,
donde se almacenan cierto tipo de programas
como el del sistema de arranque de una compu-
tadora (BIOS); la RAM (RandomAccess Memory)
o memoria de lectura y
escritura, donde se dma-
Unidad de
Entrada/Salida
Unidad de
Memora
&
#
&n;
cutso prcticosobrctticrocontotadorcs
,.
)
cenan los datos que los programas van generan-
do y la cache que es una memoria RAM con tiem-
po de acceso muy rpido donde se mantienen
los datos ms utilizados durante la ejecucin de
un programa.
La unidad central de proceso
(CPU: Central
Processing Unit) reine la unidad de control y la
unidad aritmticolgica en un solo bloque. Esta
ltima tambin se conoce como ALU (Arithme-
tic Logic Unit). En la prctica, la unidad central
o CPU se encuentra en forma de un circuito in-
tegrado llamado microprocesador.
Dentro de esta CPU, la unidad de control se
encarga de la interpretacin y ejecucin de las
instrucciones del programa. Tambin controla
todos los componentes de una computadora por
medio de lneas de conexin llamadas buses. La
ALU se encarga de realizar las operaciones lgi-
cas y aritmticas. Las principales funciones arit-
mticas realizadas en la ALU incluyen la AND,
la OR, la EXOR y la comparacin. Como he-
mos visto, el microprocesador es quien lleva a
cabo las principales funciones de un sistema de
cmputo, y quien integra a los dems compo-
nentes y ejecuta las instrucciones. Es por eso el
principal componente de una computadora.
Funcionamiento del microprocesador
Desde un punto de vista conceptual, un micro-
procesador ideal es un dispositivo digital que
acepta o lee datos aplicados a un cierto nmero
El mcroprocesador (ideal) es un
dispositvo con N lneas de enfada, M
lneas de salida y un programa
almacenado
Figun 2.3 El microprocesador ideal
de lneas de entrada (N); los procesa de acuerdo
a las instrucciones secuenciales de un programa
almacenado en su memoria, ysuministra o escri-
be los resultados del proceso en un cierto nme-
ro de lneas de salida
(M), figura 2.3
[.os datos de entrada pueden provenir de inte-
rruptores, sensores, convenidores 4,./D, teclados, etc.
Los datos de salida pueden estar dirigidos a actua-
dores, indicadores o disp lays, pantallas, convertido-
res D/A, alarmas, impresoras, etc. El programa al-
macenado determina como deben ser procesados
los datos de entrada y, en consecuencia, que infor-
macin debe enviarse a las llneas de salida.
El soporte fisico de las instrucciones del pro-
grama es la memoria, la cual almacena los datos
para que sean procesados. En un momento dado,
los niveles lgicos (unos y ceros) de las llneas de
salida de un microprocesador, dependen no sola-
mente del programa en s sino tambin de la his-
toria de las seales de entrada hasta ese momenro.
Mientras que en un microprocesador ideal no exis-
ten restricciones respecto al nmero de entradas y
salidas, los microprocesadores reales slo pueden
acomodar un nmero limitado de terminales o
pines para estas funciones. Como veremos ms
adelante, para simplificar el nmero de pines, la
mayorla de microprocesadores utilizan las mismas
lneas para la entrada y salida de datos.
De otro lado, mientras que un microprocesa-
dor ideal tiene, tericamente, una memoria inter-
na ilimitada, los microprocesadores reales solo dis-
ponen de una cantidad limitada para almacenar
Registro de 16 bits
Figun 2,4 Registros de un microprocesador
ht
dad
rPa-
en-
mo-
lrna-
obre
sde
:mas
nto
o. La
fiere
ue se
ran-
noria
Pera
no se
de la
s dis-
ento
ROM
crurat
ralnas
)mPu-
mory)
alma-
Registro de
I bits
curco prctico
sobre Microcontotadores
&tt
#
datos e instrucciones. Por esta razn, un mlcro-
procesador debe tener la posibilidad de comuni-
carse con una memoria externa. Para lograrlo, ne-
cesita disponer tambin de un conjunto de lfneas
de seleccin o direccionamiento adicionales.
Finalmente, para sincronizar su operacin
con la de los componentes externos conectados
al mismo y tener un control global de los buses
de datos y direcciones, un microprocesador ne-
cesita disponer tambin de un conjunto de l-
neas de control. Por tanto, un microprocesador
requiere de un bus de datos, un bus de direccio-
nes y un bus de control para comunicarse con
los dems componentes.
Natural mente, el mi croprocesador i deal
(un
dispositivo con slo entradas y salidas y
un programa almacenado en l) no existe.'Sin
embargo, la tendencia de los nuevos diseos
es incluir cadavez ms funciones en una mis-
ma pastilla, incluyendo unidades de memoria
e interfaces entrada/salida como en el caso de
los microcontroladores.
415- 48
Bus de di recci ones
Figura 2.5 Arquitectura interna de un microproceudor 8085 de lntel
RESET IN
& ."(
q12
F A(t;
Curso prctico sobrc Micocontoladores
&fl
cio-
con
' .,r' ' Janizacin
interna de un
:.::
icroprocesador
[a organizacin interna de un microprocesador, es
decir, su arquitectura, vara notablemente de un
spositivo a otro. Por esta razn, es dificil definir
un modelo de microprocesador que represente to-
das las alternativas posibles puesto que cada uno
tiene una lgica de funcionamiento propia.I.aar
quitectura, y especialmente el tipo, nmero y orga-
nizacin de los registros internos, es una considera-
cin imponante a la hora de elegir un microproce-
sador para una aplicacin determinada.
Un registro es una posicin de memoria co-
nectada a la CPU donde se pueden retener cifras
binarias. Est formado por elementos lgicos
(compuertas,
flip-flopt,etc.)
que, al ser tomados
en conjunto, pueden almacenar nmeros binarios
de 4, 8, 16 ms bits, frgan2.4. Se utilizan esen-
cialmente para almacenamiento temporal, en el
que el contenido cambia continuamente.
Esto no implica que se deba conocer con de-
masiado detalle, cmo funciona internamente un
microprocesador para poder utilizarlo. Existen
partes y funciones que normalmente deben estar
presentes: un reloj, unaAL(J, varios registros, un
contador de programa, etc. En la figura,2.5 se
muestra un ejemplo de la arquitectura interna
de un microprocesador simple, el 8085 de Intel.
Por ejemplo, el reloj o circuito de oscilacin
puede estar o no incorporado en el microproce-
sado 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-
cesador debe tener en su interior registros que Ie
permitan almacenar informacin
,
realizar lectu-
ras, modificaciones a los datos, etc.
iperacin bsica de un
,:,i i fi roprOcesfl d0r
Analizando un sistema de cmputo, nos da-
mos cuenta que el mi croprocesador o CPU es
la parte del sistema encargada de leer, inter-
pretar y ejecutar las instrucciones del progra-
ma almacenado en la memoria.
Desde un punto de vista conceptual, la ac-
cin de leer e interpretar las instrucciones la rea-
liza una parte del microprocesador denominada
unidad de instruccin y su ejecucin corre a car-
go de otro circuito especializado dentro del mis-
mo denominado unidad de ejecucin,figan2.6
Unidad central de orocesamiento ICPU o
Figura 2,6 Unidades de instruccin y ejecucin
l unidad de ejecucin, a su vez, contiene una
unidad aitmtico-lgica o ALU y un conjunto de
registros auxiliares. t^a ALU se encuga de realizar
una gran variedad de operaciones aritmticas y l-
gicas, y los registros de almacenar temporalmente
informacin. l-as distintas funciones realizadas por
el microprocesador quedan especificadas por su
conjunto de instrucciones.
deal
asy
: Si n
sos
mis-
roria
ode
L
F
mrcr0pr0cesaoor
i& lntel
curco prctico
sobre ticrrcontotadores
&rrr"#
I unidad de instruccin lleva la
cuenta de las posiciones o direcciones
de memoria donde se encuentran las
instrucciones que el microprocesador
necesia en cada instante. Normalmen-
te, las insuucciones se leen y ejecuan
en el mismo orden en que fueron alma-
cenadas en la memoria. Sin embago,
la presencia de instrucciones de control
de programa puede alterar la secuencia
de ejecucin de estas instrucciones.
Para llevar la cuenta de las di-
recciones de las instrucciones, la
unidad de instruccin incorpora un
registro especial llamado contador
de programa o PC (Prograrn
Coun-
ter). Cade vez que se lee una ins-
truccin, el contador de programa
se i ncrement a aut omt i cament e
para suministrar la direccin de la
posicin de memoria donde se en-
cuentra la siguiente instruccin o
dato del programa.
Bus del sistema hacia la memoria principal
y dispositivos de lS
Figun 2,7 Arquitectura de un microprocesador genrico
La mayorla de los microprocesadores, por
ejemplo, incluyen un registro especial llamado
acumulador (Registro
A) que es utilizado por
muchas instrucciones como fuente o destino de
datos. Thmbin es muy comn la presencia de
un registro de eitado que suministra informa-
cin relativa a la ejecucin de ciertas instruc-
ciones como sobreflujo, paridad, generacin de
acarreo, resultado negativo o cero, etc.
Muchos microprocesadores poseen tambin
un conjunto de registros de propsito general que
pueden ser utilizados para almacenar direccio-
nes de memoria, datos, resultados intermedios y
otros propsitos. El nmero y tipos de registros
que posee un microprocesador, es una parte muy
importante de su arquitectura y programacin.
En la figura2.7 se muestra un modelo ge-
nrico de microprocesador que ilustra los con-
ceptos anteriores.
Bus de direcciones
Cada vez que un microprocesador recibe
una instruccin, la almacena en un registro
interno del mismo llamado registro de ins-
trucciones con el fin de proceder a su deco-
dificacin o interpretacin y buscar en la
memoria ROM el conjunto de microinstruc-
ciones necesarios para su ejecucin. Esta fun-
cin la realiza un circuito denominado de-
codificador de instrucciones.
Adems del contador de programa y el
registro de instrucciones, un microprocesa-
dor contiene usualmente otros registros para
facilitar el acceso a las instrucciones y a los
datos. Algunos de estos registros son progra-
mables en el sentido de que su contenido
puede ser alterado por software (instruccio-
nes) mientras que otros son inaccesibles des-
de el punto de vista de programacin y su
contenido slo lo puede determinar y con-
sultar el microprocesador.
istro de status
errr"
cu,' prco nbrc Mtcoantohthtu
ma
-::ilrctura
eie fuses rie un
,:.l t' 0Ff0ce$fi d*E'
En la figura 2.8 se muestra la estrucna de buses
generalizada de un microprocesador. Externamenre,
el dispositivo cuenta con un bus de datos, un bus de
diecciones y un bus de conuol. En las siguientes
secciones decribiremos la funcin y las caractersticas
de cada uno. Adems de estos ues buses principales,
un microprocesador debe disponer tambin de un
bus de alimentacin, el cual hace llegar la coriente
de la fuente a sus distintos componentes internos.
ceden siempre de la memoria mientras que los
datos que procesa u obtiene el programa de ins-
trucciones, puede provenir de o ir hacia la memo-
ria o los mdulos de entrada/salida.
Generalmente, el nmero de lneas de en-
trada es igual al nmero de lneas de salida. Este
nmero define la longitud de la palabra de da-
tos del microprocesador. Son comunes longitu-
des de pal abra de 4, 8, 16, 32 y 64 bi t s. En l a
figura 2.4, por ejemplo, se muesrra un micro-
procesador de 8 bits. En este caso, tanto el bus
de datos de entrada como el bus de datos de
salida con de un byte, es decir de ocho (8)
bits.
El nrimero toul de pines asignado en el circuito
integrado del bus de datos puede reducirse prctrca-
mente en un 50olo si se utilizan los mismos puntos
de consrin mto para los daros de enrada como
para los datos de salida, pero no para ambos simult-
namente. El bus de datos as constituido es bidirec-
cional en el sentido de que lainformacin puede circu-
la entrando o saliendo del microprocesador. La for-
made represenaf un bus de datos bidireccional paxa un
microprocaadorde N bis se iltstraen lafrgn2.g
Un bus bidireccional puede construine con com-
puertas tri-sa*pancintrola la direccin del flujo de
informacin. l figura 2.9 (a) represena un micro-
procesadorde cuatro bits con un bus de datos bidirec-
cional. En la figum 2.9 (b)
se muesrra la configura-
cin de una lnea de bus bidireccional. Ias llneas de
seleccin S1 y S0 proceden del bus de conuol.
bnes
tico
t
Por
nado
D
Por
no de
cia de
0rma-
$ruc-
n de
rrbin
ral que
rcccio-
adios y
gistros
te muy
cin.
blo ge-
(}s con-
Bus de
control
Cu,o,,o,
I
control
I
satioas oe
l_
control
Fuente de
alimentacin
q
. ^' -
w=
E
Figura 2.8 Estructura de buses generalizada
ls lneas de los buses de un microprocesador
ansportan volajes que representan nmeros bina-
rios (1's y 0's). EI microprocesador, los puertos de
entrada/salia y la memoria, responden nicamente a
esos nmeros binarios codificados elecrnicamente.
rl bus dm datas. Li neas fi Si recci onal fi s
El bus de datos lleva datos e instrucciones hacia y
desde el microprocesador. Las instrucciones pro-
BDB: Lnea de bus direccional de datos
DB0UT: Control de sal i da de datos
DBIN: Control de entrada de datos
51, S0: Control de bus
H0LDA: Control de garanta
de bus (alta
impedancia)
Figura 2,9 (a) Microprocendor de 4 b'tts con bus de datos bidireccional.
DBOUT
(a)
(b) Lnea de bus bidireccional.
curco prctico
sobre Microcontotadores
rrrr.&
' -*%c
Los,,
La transferencia de datos de entrada o salida
desde o hacia ei bus de datos se realiza, respecti-
vament e, con S1S0
=
10 y S1S0= 01. La l nea de
bus puede inhabilitarse con S1S0
=
00 para im-
pedir cualquier transferencia de informacin en-
tre el bus de datos y el microprocesador.
Las lneas de seleccin pueden utilizarse para
informar a los mdulos externos que comparten
el bus de datos el estado del bus bidireccional en
un momento dado. Este es el propsito de las
lneas marcadas como DBOUT (bus de datos en
el modo de salida), DBIN (bus de datos en el
modo de entrada) y HOLDA (bus de datos en
estado de alta impedancia) en la figura 2.9 (b).
la informacin contenida en el bus de datos
puede representarse numricamente de varias for-
mas: binaria, octal y hexadecimal, principalmente.
Considrese, por ejemplo, un microprocesador de
8 bi ts con el byte 10111011 en l as l neas D7 a D0
del bus de datos, siendo D7 el bit ms significativo
o LSB y D0 el bit menos significativo o LSB.
Esta palabra de datos representada como un
nmero bi nari o es si mpl emente 10111011(B)
10111011(2), representada como nmero octal
es 273Q 2738 y como nmero hexadecimal (la
ms usada) es BBH 8816. La forma de conver-
tir nmeros binarios en octales o hexadecimales y
viceveresa se explicar en detalle en la seccin de
programacin. Los sufijos B,Qy H, y los subndi-
ces 2, 8 y 16 enfatizan el sistema numrico (bina-
rio, octal y hexadecimal) de cada presentacin.
A pesar de que el sistema hexadecimal pro-
porciona una forma muy compacta y concisa
de expresar el contenido de un bus de datos, no
podemos olvidarnos completamente de la re-
presentacin binaria. En una aplicacin real, esta
ltima nos permite identificar fcilmente, por
ejemplo, cual interruptor ha de ser abierto o
cerrado en un momento dado para obtener una
condicin de entrada especfica o cual lmpara
ha de ser energizada para obtener un efecto de
salida determinado.
i : i ,::=
..-::'
.j r"1gg!:-!:1q5. j ,1:=l ::::
r$
i i i l i l l f l t ; a: ; 1:
El bus de direcciones contiene la informacin
digital que enva el microprocesador a la me-
moria y dems elementos direccionables del sis-
tema para seleccionar una posicin de memo-
ria, una unidad de entrada/salida o un registro
particular de la misma. El nmero de lneas dis-
ponible en el bus de direcciones
(n) determina
el tamao mximo de memoria que puede ser
acomodado en el si stema
(2").
As, por ejemplo, un microprocesador con
un bus de datos de 8 bits y un bus de direccio-
nes de 16 bits (tpico) tal como el Z-80 puede
manejar directamente una memoria de 2t6
=
65536 (64K)
posi ci ones, cada una conteni en-
do un byte (palabra de 8 bits).
Natural mente. una vez sel ecci onada una
posicin de memoria, el microprocesador debe
estar en capacidad tanto de almacenar informa-
cin en esa localizacin (operacin de escritu-
ra) como de extraerla (operacin de lectura).
La canti dad de memori a uti l i zada en un
si stema con mi croprocesador depende de l a
apl i caci n especfi ca y es a menudo i nferi or a
l a mxi ma que puede manej ar el bus de di -
recci ones. El conj unto compl eto de l ocal i za-
ci ones de membri a a l as que puede tener ac-
ceso un mi croprocesador, se denomi na espa-
ci o de memori a.
As, por ej empl o, el espaci o de memori a
de un mi croprocesador de 8 bi ts con un bus
de di recci ones de 16 bi ts (por ej empl o el 8080)
es si mpl emente 216
=
64K.
En el caso de un mi croprocesador de 8
bi ts con un bus de di recci ones de 16 bi ts, el
espacio de memoria puede ser visualizado gr-
f i cament e como un mapa de 65536 di recci o-
nes de memori a, cada una conteni endo un
byte, l a ms baj a de l as cual es es 0000H y l a
ms al t a FFFFH, f i gura 2. 10
^@^
4 ,t
te F fi<ti.
Gurco prcco sobre Microcontroladores
&fl
FFFF
F000
E000
D000
c000
8000
4000
9000
8000
7000
6000
5000
4000
3000
2000
1 000
0000
Note que ladireccin de memoriase incremen-
a en 1000H cada4K(=4096) direcciones de espa-
cio de memoria. Observe tambin que cada lK
(=1024) posiciones de memoria la direccin de me-
moria se incrementa en 400H. l memoria puede
dividirse ambin en pginas de memoria, cada una
contiene 256 peJabrasy cubre 100H dirccciones de
memoria- Hay, por tarrto,4 pginas en lK de me-
moria- las direcciones en la pgina de ms bajo or-
den ran desde 0000H hasa 00FFH, en la siguiente
dade 0100H hasa 01FFH, y as sucesivamente.
,
i}ri;,1 ii{l il:f}trfii
El bus de control contiene la in-
formacin que envla el micropro-
cesador a los elementos del siste-
mao bien la recibe deestos con el
propsito de sincronizar la opera-
cin de los circuitos octemos. El
nmero delfneas del bw de con-
uol es variableydepende del mi-
croprocesadorparticular utilizado.
rii' irfl{lt}
{ie un
.:i'ils
tl;Jf;ft#0 Sfl
.,' :ir;-:.i*gSfltlSf
En la figura 2.11 se muestra la
esrucnrra organizativa de un sis-
tema tpico basado en mi-
croprocesador. Note que
consta de cuauo elemenros
principales: una memoria,
un microprocesador, un
puerto de entrada y un
puerto de salida.
El microprocesador
est conectado a todos los
otros comPonentes a tra-
vs del Bus de dzns.l-as
seales del Bus dc con rol,
conjuntamente con las del
Bus d direcciones, deter-
minan que elementos se
comunican con el micro-
procesadoren un momen-
0400
01 00
0000
Figun 2.10 Espacio de memoria
de entrada
t n
o-
de
:n-
ma
:be
na-
rru-
) .
o
;-
ra
:r
un
el a
Dr a
di-
iza-
' ac'
sPa-
pria
bus
080)
de8
ts, el
tgr-
ccio-
oun
l vl a
to dado. Estos tres buses configuran el bus del sis-
tema y el gobierno del mismo es responsabilidad
del microprocesador.
La secuenci a de i nstrucci ones que cons-
ti tuyen el programa que debe ej ecutar el mi -
croprocesador estn almacenadas en un rea
de la memoria. En el momento de iniciar el
si stema, el mi croprocesador si trl a en el bus
de di recci ones l a di recci n de l a posi ci n de
memori a donde se encuentra l a pri mera i ns-
truccin. Como. resultado, la memoria entrega
Hacia dispositivos
de sal i da
Figun 2.ll Diagnma de bloques de un sistema basado en un microprocesador
Desde disoositivos
cuso prctico sbre Microcontotadow
&tr*#
Lo s tn ictu
r
t'or:esatj.oruas
esta i nformaci n en el bus de datos. Despus
de i nterpretar y ej ecutar l a pri mera i nstruc-
ci n, el mi croprocesador busca l a si gui ente
i nstrucci n, l a ej ecuta y asl sucesi vamente. La
generaci n de l a seri e de i nstrucci ones nece-
sari as para que el mi croprocesador real i ce una
tarea determi nada, es l o que se denomi na su
programaci n.
Hasta aqu hemos vi sto l a arqui tectura genri -
ca de un mi croprocesador y de un si stema ba-
sado en uno de estos di sposi ti vos; ahora anal i -
zaremos con ms detal l e l os pasos que si gue
un si stema de esta natural eza para ej ecutar l as
i nstrucci ones conteni das en un programa y
aprenderemos como trabajan en conjunto cada
uno de l os bl oques del si stema para desarrol l ar
estas tareas.
Un mi croprocesador es un di mi nuto con-
j unto de mi l es o mi l l ones de el ementos l gi -
cos e i nterconexi ones di seado para respon-
der a l as i nstrucci ones de unprograma, el cual
l e i ndi ca l o que debe hacer en cada i nstante.
Si n un programa que l e de vi da, un mi cro-
procesador y todo el ltardware conectado a su
al rededor, serl a una masa i nerte de compo-
nentes el ectrni cos si n un obj eti vo especfi -
co. De hecho, l a funci n pri mari a de un mi -
croprocesador es ej ecutar programas.
Las i nstrucci ones que consti tuyen un pro-
grama se almacenan en la memoria del siste-
ma como patrones de unos y ceros, organiza-
dos en grupos de 8, 16, 32y ms bi ts, depen-
di endo de l a l ongi tud de l a pal abra de datos
del microprocesador.
PAIABRA: Es un grupo de bits que se traran
como una sola unidad. El ms comn es el
byte, elcual es1 formado por ocho
(8)
zrs.
Cuando se trabaja con un microprocesador,
es importante comprender su conjunto de ins-
trucciones y ser capaz de utilizarlas en la elabo-
racin de programas; se debe entender la forma
como el microprocesador las ejecuta y adquirir
la habilidad para emplearlas eficientemente en
la manipulacin de datos.
Para ej ecutar l as operaci ones i ndi cadas
por una i nstrucci n, el mi croprocesador debe
empezar por di recci onar o encontrar l a posi -
ci n de memori a donde se encuentra l a i ns-
trucci n, l eerl a y decodi fi carl a o i nterpretar-
l a por medi o de sus ci rcui tos i nternos. Los
pasos anteri ores consti tuyen l o que se deno-
mina ciclo de instruccin. Durante su opera-
ci n normal , un mi croprocesador no hace
ot ra cosa que' ej ecut ar repet i dament e ci cl os
de i nstrucci n.
i.uf,
_: ", , . j . i : , : f
l
: . L-*
T
-::..: ,{
:,"
-:;
-ir
- -frfir!
:-l-.::1{
0001
001 0
001 1
0100
0101
01 10
001 1
0000
0000
0000
0000
0000
0000
0000
0000
Direcciones
0000 0000
0000 0000
0000 0000
0000 0000
0000 0000
0000 0000
0000 0000
0000 0000
0010 0000 0100
1111 1111 1111
0000 ----+ 1
Instuc'cones. datos
0
x xl xl xl xl x
-->
--+
----+
---+
----+
_-->
----+
0
I
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
t
u
1
0
1
I
I
0
I
0
0
0
0
0
0
1
1
1
0
0
1
I
0
1
1
0
0
0
I
I
0
0
1
0
0
0
0
1
0
0
0
1
0
0
I
'*-::i;r
_
l ! ' i l
: lj":u
1{OTA:
Este programa calcula un nmero y almacena el resullado
(DCBA) en la p0sicin
de memoria 2040H.
0000 --+ 0
1111 --> X
0
x
Figura 2.12 Ejemplo de un programa en lenguaje de nquina
$ rrr*
curco prctico
sobre Microcontrctadores
&fl
o-
:e-
A-
:n-
tos
an
el
Ejemplo de un prognma objeto
Para ejegutar un programa, un micropro-
cesador debe tenerlo almacenado en forma bi-
naria (patrones de I y 0) en posiciones adya-
centes de la memoria de programa del sistema.
Esta forma binaria del programa se denomina
lenguaje de mquina y es el nico lenguaje que
entiende el microprocesador. En la figara 2.12
se muestra un ejemplo de un programa en len-
guaj e de mqui na para un rni croprocesador
8085. Para evi tar l a confusi n que, desde el
punto de vista del programador, puede gene-
rar una larga lista de unos y ceros, estos cdi-
gos se pueden representar en forma hexadeci-
mal , consti tuyendo l o que se denomi naunPro-
grarna o cdigo objeto. En otras palabras, un c-
di go obj eto es, si mpl emente, una representa-
cin abreviada de un programa en lenguaje de
mqui na, f i gura 2. l 3. Por ej empl o, 10111101
se representa como BD, 0000 0001 como 01,
1110 0110 como E6, 0000 111l como 0F, et c.
No todos l os cdi gos de un programa ob-
j eto o en l enguaj e de mqui na, corresponden
a instrucciones ejecutables. Muchos de ellos co-
rresponden a datos y direcciones que son uti-
lizados por el programa para propsitos parti-
culares. Los cdigos correspondientes a instruc-
ci ones ej ecutabl es se denomi nan comnmen-
te cdigos operacionales
(opcodes). Por tanto,
en un si stema de8 bi ts,l os programas en l en-
guaje de mquina se reducen a unas cuantas
secuencias de grupos de 8 bits
(1
bte)
situados
en algn lugar de la memoria.
Estas secuencias representan a su vez una
mezcla de instrucciones para el microprocesa-
dor (opcodes)
y datos sobre los cuales ha de ope-
rar el mismo. Cada cdigo de operacin le in-
dica, directa o indirectamente al microproce-
sador, la direccin de memoria donde se en-
cuentra al macenada l a si gui ente i nstrucci n
ejecutable. Al recibir un cdigo de operacin,
los circuitos internos del microprocesador lo
descifran. La informacin obtenida permite al
dispositivo identificar la naturaleza de los bytes
que siguen el opcode.
El conjunto de cdigos de operacin (opco-
des) aloscuales puede responder un microproce-
sador, constituye su conjunto de instrucciones
(Instruction
Set) . Cadamicroprocesador dene su
propio conjunto de instrucciones, cada una re-
presentada por un opcode diferente. El nmero
mximo de cdigos de operacin que puede des-
cifrar un microprocesador es igual a 2N, siendo
N el tamao de la palabra de datos del mismo.
Las instrucciones de un microprocesador
pueden agruparse en tres grandes categorlas se-
gn su funcin: la primera son las instruccio-
nes de transferencia de datos, las cuales mue-
ven informacin sin alterar su contenido de una
parte a otra del sistema; la segunda categora es
la de procesamiento de datos; estas instruccio-
nes transforman la informacin desde el punto
de vista lgico o aritmtico; y la tercer catego-
ra, son las insdrucciones de control de progra-
ma, ellas determinan la secuencia de ejecucin
de las instrucciones.
En l a fi gura 2.14, observamos un di agra-
ma simplificado de la arquitectura de un siste-
ma basado en un microprocesador, en el cual
basaremos nuestro an lisis de la interaccin en-
tre cada una de las partes del sistema y la se-
cuencia que presenta.
En este diagrama se pueden notar cuatro
bloques fundamentales: la memoria, la unidad
de control, la unidad operativa y el mdulo de
entradas y salidas. Todos ellos conectados a tra-
vs de los buses de direcciones, datos
y
coritrol.
.
Direc'ciones
(En hexadecimal)
00 0 0
00 01
00 0 2
00 0 3
00 0 4
00 0 5
00 0 6
. . 00 0 7
'.
Figura 2.13
Conbnido
Insuccin,
datD (Hex)
BD
01
E6
OF
32
40
20
76
dor,
ins-
abo-
,rma
uirir
te en
cadas
debe
posi -
e i ns-
,fetaf-
s. Los
deno-
)Pera-
hace
ci cl os
curco prctico sobe Micocontotadorcs
&n;#
Lo s tnirt'u
t
tu cesad.o ru=s
Bus de datos
o
instrucciones
Unidad de control
W
.
ri
- - .
: . : r i
: . :
I
, : . - -
: E
- :
. - . u
- u
. . . . o
.:!
-i
,,,:
N
*i
:l
{
;,(
- (
, {
i
Perifricos del
mundo exterior
{>
Bus de di recci ones
Seleccin
de operacin
Unidad operativa
;
: . r: . r ". . , 1: , , i
i ' ' i : . l ! ; ' : rf t l i j
@
unidadoperativa
m
Figura 2,14 Diagrama de bloques sinplificado de un sistema basado en un microproceador
dto$ Qft:.
curco prctico sobre Microcontroladores
&d
W
'-
Memoria RAM de lectura
y escritura, con 256 posiciones
de 8 bifs cada una
BUS de
direcciones
l : ,
. ' +
St u. r : .
.
tb.
Lectura/escritura
.,1 o
iones
F
) . .
El bloque 1 es la rnernoria; en ella se al-
macenan una seri e de canti dades codi fi cadas
en ocho 8 bi ts. Para entender l a operaci n de
una memori a, puede hacerse una anal oga con
un casi l l ero de correos, donde exi sten muchas
casi l l as para di ferentes usuari os, cada una con
un nmero o di ecci n que l a i denti fi ca y con
l a propi edad de al macenar cual qui er cl ase de
i nformaci n.
l
Pues bi en, una memori a posee un conj un-
ro de posi ci ones cada una con su propi a di rec-
cin, y en cada una de dichas posiciones puede
existir cualquier dato de ocho bits.
La posi ci n que se va a acceder es i ndi -
cada por el bus de direcciones al Decodffica-
dor de Direcciones
(DI),
el cual es un dispo-
si ti vo de n entradas y 2" sal i das. Dependi en-
do de l a entrada bi nari a que l ea, habi l i ta l a
l ect ura de una di recci n det ermi nada por
medi o de l a acti vaci n de l a l nea correspon-
di ente, fi gura 2.15. Los 8 bi ts de l a posi ci n
accedi da sal en por el bus de datos hasta el
Registro de Datos (RD), si se efecta una ope-
raci n de l ectura.
Cuando se trata de una operacn de escritu-
ra, el contenido digital de las 8 lneas del bus de
datos se carga en el Registro de Datos

desde 1,
en las 8 celdas de la posicin direccionada. El pro-
ceso de direccionar una posicin y leer o grabar
un dato se denomina cicln d mmtoria.
1 6 posi ci ones
en l a
memori a
Ftgura 2.15 Segn el dato introducido por el bus de direcciones,
se habilita la comunicacin con una deterninada
posicin
de
remora
i i ' t*ui l kF{i :}#
{Jtf*
il memoria
pti".tprl
de un sistema basado en un
,
l-ic.oprocCIadorse
constnrye con memorias de tipo
;
ielectrnico, que se dasifican en dos grandes grupos: :
,Memorias ROM (RtaOnlyMeno4T).
Son me-
'morias que una vez grabadas, permanecen con di-
.
lcha informacin permanentemente y slo pueden
:
,ser leldas. Son memorias de 'tlo lectura" v se uti-
l
lizan paraguardar
[os
program", o d"to, i!o..
i
Memorias RAM (Random Access Memory\. El',
rcontenido de sus posiciones puede ser ledo y es-
i
crito. Al igual que las memorias ROM, son de ac- i
iceso aleatorio, es decir, que para acceder a una po-
sicin determinada no hay que pasar por las ante-
lriores,
como sucede en las cintas y discos magn-

rticos. Son las ms rpidas y su tiempo de acceso se :


:mide
en nanosegundos.
i
:
El principal inconveniente de las memorias ,
tipo RAM es que son voltiles, o sea, al cortarse .
el suministro de energa elctrica, cuando se des- :
conctx el sistema, pierden la informacin que :
contenlan. En un sistema con microprocesador, ,
se utilizan este tipo de memorias para almacenar
el resultado de las operaciones y los datos de las i
variables que se van cr1n{o en elprograma.
,
El bloque 2 esla unidad de control cuya
funcin primordial es la de interpretar y eje-
cutar las instrucciones. El cdigo binario de la
operacin que se va a ejecutar, se deposita ini-
cialmente en el Registro de Instrucciones (RI)
y luego se traslada al Decodificador de Instuc-
ciones (DI),
cuya misin es seleccionar en una
memoria ROM un conjunto de posiciones que
corresponden al cdigo recibido y en las que
se encuentran los cdigos de las operaciones
elementale s (o microinstrucciones) que compo-
nen las diferentes etapas en las que se divide la
ejecucin de la instruccin decodificada.
Las microinstrucciones van pasando al S-
cuenciador (S),
que es el circuito lgico de'con-
ocegdor
cuso
prctico
sobe Microcontotadorcs
&n;#
Memoria principal
instrucciones
Figun 2.16 Movinientos de informacin de los contenidos de las unidades que participan en Ia fase de bsqueda de una instruccin
Bus de
I
datos e
I
Unidad de control
trol y tiempos el cual gobierna a todos los ele-
mentos del sistema y lleva a cabo la ejecucin
secuencial de las\microinstrucciones.
I,a fun-
cin del Contador de Prograrna
(PC) es en-
viar por el bus de direcciones la posicin de la
memoria donde se encuentra la siguiente ins-
truccin que se va a ejecutar. Normalmente,
este contador se incrementa en una unidad en
cuanto la memoria acepta la direccin de la
instruccin anterior.
El bloque 3 es la unidad operdtiadi allf se
ejecutan las operaciones aritmticas, lgicas, de
desplazamiento, de rotacin, de incremento,
etc. Uno de los operandos que interviene en la
operacin que va a efectuar la ALU
(Unidad
lgico-aritmtica), procede de un registro de
8 bits llamado Acumulador. El otro operando
llega desde cualquier parte del sistema y se car-
Perifricos del
mundo exterior
ga o almacena en un registro auxiliar. Un re-
gistro especial, denominado Registro de Esta-
do, contiene una serie de bits que actan como
sealizadores de alguna caracterfstica especial
que se haya producido en la ltima operacin
efectuada por la ALU. Por ejemplo, un seali-
zador denominado Z (cero), pasa a valer uno
(1)
si el resultado de la operacin que ha he-
cho la ALU ha sido cero
(0).
El bloque 4 es el de entradas y salidasy se
encarga de suministrar al sistema los datos pro-
cedentes del exterior, as como de llevar los re-
sultados a los perifricos del mundo real.
*qecuen*ia de operacin de una
instruc*in
En un mi croprocesador, el pri nci pi o de ej e-
cucin de cualquier instruccin tiene carac-
Bus de direcciones
Figun 2.17 Elcontenido del Conbdor de Programa (PC) pasa al Registro de Direccilnes (RDI)
#
&tn
cw", petico sobre Microcontoradores
Bus de direcciones
Bus de control
I
tin
re-
'ttrt-
)mo
rial
ci n
ali-
uno
r he-
t vse
i Pr o-
DS re-
e eje-
c fac'
c*nes
(RDI)
Figun 2'18 Elcontenido de la posicin
de la memoria se deposita en et Registro de tnstruccin
tersticas similares. En todas ellas hay dos sigue con la parte de la ejecucin propiamente
tiempos fundamentales llamad os bsqueda dicha que puede tener varios subtiempos, depen-
(fttth) y ejecucin (execute).
El diagrama de diendodeitipodeinstruccin.
bloques de un sistema con microprocesador
permite un anlisis rpido de la forma en que Fase de busru*rla
se ejecuta una instruccin cualquiera; por Eselcomienzodeunanuevainstruccin,el
futador
ejemplo, la correspondiente a la suma de dos dePngrana(PQdeposia
enelbus dedireccionesla
operandos.
direccin de la posicin de la memoria principal don-
de se encuentrael codigo de la instruccin que sevaa
El contador de programa empieza conte- ejecuar. Dicho .gdigJuk de la memoria principal
niendo la direccin de la memoria principal pordzsdedatoshasala UniadeContmldond.
donde est almacenado el cdigo binario de la segrabaen elRegittude Instruccions,frgra'2.l.
instruccin de suma. Luego ese contenido pasa
atravs delbusdedireccioneshastalamemoria
Como la CPU no sabe que tipo de ins-
principal, donde se decodifica y selecciona la truccin va a ejecutar, los tiempos e bsque-
posicin que contiene el cdigo binario de la da son exactamente iguales. El desarrollo de
operacin. Dicho cdigo de
"mquina"
sale de esra fase es la siguiente:
ia memoria por el bus de datos hasta el registro
de instrucciones de le Unidad d Control, 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 uniad de con-
:digo de la instruccin mencionada, recibe el trol, aparece en el registro de direcciones de me-
nombre defase de bhqueda y es la misma para moria, gara2.l7.
:ualquier 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
iempo de decodificacin de la instruccin y pro- en un registro de instrucci"
fllt*
2.1&
curcoprcticosobreMicrocontotadoes&t;.drtb
&
E-
i:iilsii333tx3i#T
Figun 2.19 Comporkmiento de la unidad de control dunnte lafase de ejecucin
Al mismo tierpo, el Conador de Programa (PC) bit seaJuzdores del Registro de Esado, tomann el
se incrementa, puesto que l debe siempre sea- valor correspondiente en funcin del rCIulado.
lar la direccin de la siguiente instruccin que se
va a ejecutar, para cuando se necesite. De esa Eiecucin dg una i*strtt**inn
forma se ha completado la operacin de bsque- En resumen: completada la fase de bsqueda, el
ddeunanueva instruccin. cdigo de mquina del Registro de Instrucciones
Dec*rfirica*i*n #* i;n; ir*ir:**irn :'i:ilI ?:f:!K;#,{:Xt:i?S:i:
Es la primera parte del tiempo de ejecucin y de microinstrucciones q.r.
"ott
rpondan. Dichas
es tambin exactamente igual para todas las microinstrucciones van introducindose al se-
instrucciones, puesto que an no se sabe que cuenciador a medida que se realizeel proceso. El
operacin hay que efectuar. secuenciador, con cada microinstruccin, envfa
una sene de seales de control a los elementos
De momento,la parte de la instruccin llama- del sistema que deben actuar en cada momento.
da cdigo de operacin
(opcode),
se transfiere Ejecutadas todas las microinstrucciones que com-
al Decodificador de Instrucciones
(DI) y aqu ponen la instruccin, el Contador de Programa
empieza 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 encrrga
de seleccionar en la memoria de microinstruc- Hay 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 d Se- tes criterios, tales como funcionalidad, nme-
cuenciador, origina una seriede seales de con- ro de ciclos de memoria utilizados, nmero de
trol que regulan la ejecucin de las diferenteseta- palabras que utiliza, etc. Dependiendo de las
pas en las que se descompone la instruccin. carecterlsdcas de la computadora y de su mi-
croprocesador, los diferentes tipos de instruc-
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 Acumu- cesitarn uno o ms ciclos de memorie, pa
Iador,mientras que el otro llegar del registro auxi- llegar a obtenerse enteramente en la unidad de
liar, generalmente, desdelamemoriadedatos, cuya control. En funcin del nmero 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 parmetros de-
terminan, por ejemplo, el nmero de veces que
lALU efatrar la sumay el resulado se de- el sistema debe acceder a la memoria para leer
,osiar:
en el Acumulador, d mismo tiempo que los toda la instruccin.
^s{h.
-(
dz} &t:
cwso prctin o,be Mictocottfrotadorcs
W
I
iiin
nel
El concepto de entrada/salida abarcatoda trans-
ferencia o intercambio de informaci n (datos)
entre un microprocesador (CPU) y un disposi-
tivo externo o periferico especlfico. Cuando los
datos fluyen hacia el microprocesador, se tiene
el caso de una operacin de ennada y cuando
lo hacen en direccin al mundo exrerno, se rie-
ne el caso de una operacin de salida.
Un paso importante en el diseo de cual-
quier sistema basado en microprocesadores es
seleccionar los puertos de entrada/salida o cir-
cuitos de interfaz cuyo costo y rendimienro sean
los ms adecuados para una aplicacin dada. La
complejidad de un pueno I/O puede variar des-
de un sencillo
flip-flop
hasta un circuito inte-
grado altamente especializado; por ejemplo, un
controlador para un tubo de rayos catdicos o
un display grfico tipo LCD.
En general, las funciones que debe realizar un
puerto o dispositivo de interfaz de entrada/salida
'e
pueden resumir en los siguientes trminos:
.
Identi fi car di recci ones con el fi n de esra-
bl ecer l a conexi n con l os buses de dat os y
de cont rol del si st ema cuando se sel ecci o-
na un di sposi ti vo peri fri co de entrada/sa-
l i da especfi co.
.
Interpretar rdenes. Generalmente, las rdenes
enviadas por el microprocesador al puerto I/O
se reducen a seales de lectura y escritura. Es-
us seales pueden venir ya decodificadas o ne-
cesitar una decodificacin previa.
.
-{.daptar
ftsicamente el sistema a los re-
quisitos del periferico. Esto incluye la
utilizacin de manejadores (driuer)
de
Lneas de transmisin, eliminadores de
ruido, optoacopladores, etc.
.
Cnrolar los tiempos para la transferen-
.ja de informacin con el fin de garanri-
rr que el flujo de datos entre el micro-
:rocesador y el periferico se haga de una
rnnera ordenada y eficiente.
Un pueno o interfaz de entrada./salida puede
construirse utilizando componentes normales de
pequea y mediana escala como compuertas,flip-
/hps,
regisuos, codificadores, decodificadores, etc;
o circuitos integrados de gran escala LSI (Large
Scale Integration) especializados como la interfaz
periferica programable (PPI)
8255 o el controla-
dor programable de interrupciones (CPI)
82j9.
En la figura 2.20 se muesrra un ejemplo
sencillo de un puemo de salida con un
flip-flop
tipo D cuya funcin es transferir el estado del
bit de datos D0 a un diodo LED que acta como
dispositivo perifrico. Esto sucede cuando en la
llnea de direccionamiento A15 hay un nivel alto
y la seal de escritura (m)
es baja. Despus de
deshabilitad o, el
flip-flop
retiene la informacin
previamente almacenada mientras el micropro-
cesador se dedica a orras rareas.
En la figura 2.21 semuesrra un ejemplo senci-
llo de puerto de entrada con un
flipfup.
En este
caso, el dispositivo periferico es un interruptor y su
estado (alto
o bajo), se rransfiere a la lnea de datos
D0 cuando en la lnea de direccionamiento A15
h"y,m nivel alto y la lnea de control de escritura
(RD)
es baja-
(Jna
vez que el microprocesador acepa
el bitD} presenre en el bus de datos,lo transfiere al
acumulador y sinia la salida del puerto de entrada
en estado de alta impedancia con el fin de que no
interfiera con otr transferencias de datos.
(Jna
manera ms ele-
gante y eficiente de controlar el trnsito de informa-
Microprocesador Puerto de salida
Dispositivo
perifrico de
salida
Figura 2.20 Puefto de nlida con fiip-flop
Lel
lnes
3Se
oria
*ras
se-
. El
nva
ntos
nto.
)om-
elna
$aa
Pro-
sicas
:ren-
rne-
ro de
le las
mi -
f,ruc-
y ne-
Para
ad de
)ras y
le ca-
r de-
:s que
ra leer
curco prctico
sobre Microcontotadores
&l:#
ii
Dspositivo perif rico
de entrada
Do_DZ: Bus de datos
" Microprocesador
Hgun 221 Pueto de entada con intenuptor
cin entre el mundo rcemo y el microprocesador,
es utilizando circuitos intqradosde gran escal
(S4
disearlos para ef manejo de enuadas
ysalidar.Entre las principala caacterlsticas de estos
circrritos podemos mencionar:
.
Son fciles de conectar con los buses del siste-
ma puesto que disponen de llneas de adapta-
cin directa con las salidas del respectivo mi-
croprocesador. Por lo general, slo se requiere
un sistema decodificador de direcciones.
.
Son circuitos de entradas y salidas programa-
bles. Esta caracterlstica permite adaptarlos f-
cilmente a las condiciones de los circuitos ex-
ternos utilizando nicamente comandos de
programacin. Generalmente, la programa-
cin consiste en cargar, de una forma prede-
terminada, un registro interno que define el
modo de operacin. Este ltimo se puede_ al-
terar en cualquier momento por programa.
.
Algunos mdulos de entrada/salida poseen
cierta capacidad de proceso propia, indepen-
diente del microprocesador. Esta circunstan-
cia es favorable ya que libera al microproce-
sador de la ejecucin de ciertas tareas ruti-
narias y de control, las cuales delega en el
dispositivo de interfaz.
La caracterfstica anterior, denominada algu-
nas veces inteligencia ditibuida,simplifica el cir-
cuito y el programa y hace posible funciones que
no serfan ejecutables si el microprocesador tu-
viera que hacerse cargo de todo el proceso de en-
trada/salida. Por la funcin que hacen, los puer-
tos de interfaz progamables se pueden dividir
en dos categorlas: interfaces dedicadas e interfa-
ces de propsito general o interfaces universales.
Las interfaces dicaas se especidizan en
una funcin especlfica, por ejemplo, controlar
perifricos, temporizar eventos, etc. En esta ca-
tegorla se encuentran entre otros: el temporiza-
dor programable 8253, el controlador de disco
flexible 827l,la interfaz programable de teclado
y disphy 8279 y elcontrolador de tubos de rayos
catdicos (TRC)
8275.
I-as intrfata de prcpna gmeral como su
nombre lo indica, son ms universdes y pueden
adaptarse a una gran variedad de apcaciones. Exis-
ten interfaces para transmitir datos en paralelo como
la interfaz perifrica programable (PPD 8255 y para
la transmisin de datos en serie como el 8251.
El circuito de soporte 8155
(|/O-RAM)
Si analizamos un microprocesador tfpico como l
8085, observaremos que contiene todas las partes
de una CPU funcioryl asf como un puerto serie;
todo lo que necesita para completar un sistema
bsico es una memoria RAM, una memoria ROM
y puertos parallos de entrada./salida.
Con el fin de minimizar el nmero de cir-
cuitos integrados necesarios para configurar un
sistema sencillo, Intel, creador del 8085, ha de-
sarrollado una serie de componentes que inte-
gran memoria RAM y puertos I/O memoria
ROM y puertos I/O en un mismo circuito inte-
grado. Los dispositivos ms representativos son
el 8155, el 8355 y eL8755. El8155 antene256
byta de RAM, dos puenos I/O paralelos de8 bit,
un puefto I/O paralelo de6 biny un temporizador
de 14 hit. Et 8355 contiene 2M8
bt6
de ROM y
dos puertos I/O paralelos de 8 bir. H, 87 55 tiene dos
puertos llO y 2048
futa
eEPROM. En esta sec-
cin estudiaremos un sistema bCIado en micropro-
A1 5-40: Bus de direcciones
D0-D7: Bus de datos
#
&tn
cueo
pctingobre Micoowttutattups
lue
ru-
en-
l er-
idir
,rfa-
rles.
l en
rolar
e, ca-
riza-
lisco
:lado
ravos
no su
ueden
. Fxis-
rcomo
)'Para
i l .
t '
{,
omo
el
s
Partes
.o serie;
sistema
a ROM
, de cir-
prar
un
,. ha de-
ue inte-
nemoria
ro
inte-
ir-os
son
d.ene256
de8
bit,
porizador
eROMY
i dene
dos
n esr sec-
microPro-
PC3
PC4
TII\4ER IN
RESET
PC5
T[\,1ER 0UT
rolM
;
UE
RD
WR
ALE
ADO
AD1
ADz
AD3
AD4
AD5
AD6
AD7
(a) GND
Vcc
PC2
PCl
PCO
P87
PB6
PB5
PB4
PB3
P82
P81
PBO
PA7
PA6
PA5
PA4
PA3
PA2
PAl
PAO
Port B
,
PAO-7
l O/M+
I
pod
A
wewl w
nt r +
cesador, uillizando el circuito integado 8155. En la
frgm2.22 se muestra la configuracin de pines, el
diagrama interno de bloques y la estrucnra de re-
gistros de este circuito.
El 8155 puede demultiplexar internamen-
te el bus de datos y direcciones del 8085. Por
esta razn, slo se necesitan ocho llneas, desde
ADO hasta AD7, para transmitir datos y direc-
ciones. Las llneas IOiMD, RD y'WRse utilizan
para el control de la memoria y las lneas ALE y
RESET para el conol interno.
Para efectos de la interfaz se utilizan 221neas
programables como entradas o sdidas y organize-
das en tres grupos asl: desde PAO hasta PA7 panel
puerto A, desde PBO hasta PB7 pxael pueno B y
desde PCO hasa PC5 para el puerto C. ls llneas
TI (pin
3) y To(pin 6) son, respectivamenre, la
entrada y la salida del temporizador.
La memoria RAM del8155 tiene asignadas
las direcciones 0000H hasta 00FFH y es accesi-
ble externamente mediante los ocho bits de di-
reccionamiento de ms bajo orden cuando las
lneas C-E e IO/M son bajas y cualquiera de las
lneas RD S. es baja. Los ocho bits dedirec-
cionamiento 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
byns) 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.
. .
,
- . 1. 1
: : : t , i ; : i
i , l ' i r i : , :
r ' , , 1
Los puertos A, B y C se pueden utilizar como
tres puertos de entrada/salida independientes;
estos puertos son accesibles externamente a tra-
vs de las 8 lneas de ms baio orden del bus de
direcciones cuando G ., aja, RD o ffi..,
baja e IO/M es alta. La figura 2.23 muestra las
ALE+
RD+
- WR+
RESET+
tD)
!+-'.
I
I
I
,,"r*r,*l
I
iiMER our-l
|
|
vcc r.vr
|-GND (0V)
-*d,...i; ; lofr
c-
- - 1. ; "- , *$
I @e
I
MODO TIMEB
Figura 2.22 Circuito de soporte 81 55
Curco prctico
sobre Microcontotadores
&<r*#
direcciones internas de cada registro y de cada
puerto en el 8155. Por ejemplo, para seleccio-
nar el puerto B, A1 debe ser alta (l) y A2y A0
deben ser bajas
(0).
Disenn rln un sistema rnn*l* **"
S0*$
y
S1s5
Podemos decir que un sistetna mlnitno con mi-
croprocesador es un dispositivo constituido por
una serie mlnima de elementos que permiten el
desarrollo de algn tipo de tarea o aplicacin
en el mundo real de manera autnoma, inteli-
gente y siguiendo las pautas dadas por un pro-
grama. En el estudio de los microcontrolado-
res, es muy importante entender qu es un sis-
tema mfnimo con microprocesadores, ya que es
precisamente esta configuracin bsica la que
se ha reemplazado con esta nueva tecnologla.
Como ejemplo mostraremos el diseo de un
sistema microcomputador mnimo desarrollado
por CEKIT alrededor de una CPU 8085 y un
circuito de soporte 8155. Aunque el 8085 es un
microprocesador de ocho bix de las primeras ge-
neraciones, lo hemos utilizado en este ejemplo por
la facilidad para entenderlo con fines didcticos
segn los objetivos de este curso. De l se origin
el 8086 el cual es la base de toda la familia Intel la
que sigui con el 80186, el 80286, el 80386, el
80486 y el Pentium. Si usted est interesado en
profundizar en este tema, le recomendamos nues-
tro Curso Bsico de Microprocesadores.
El sistema se ha divido en dos tarjetas: una
tarjeta procesadora y una tarieta programadora, fi-
gan2.23. I.a primera contiene, esencialmente, la
CPU, la memoria RAM, el temporizador progra-
mable, los puertos de entrada./salida y el registro de
comandos. En la memoria RAM reside el progra-
ma de instrucciones que ejecuta el microprocesa-
dor. Ia arjeta programadora consta de una serie de
funciones de pequeay mediana escala ales como
compuertas, dTium, decodificadores y registros. Su
funcin es permitir que el usuario tenga acceso a la
memoria del sistema y pueda cargar en la misma
datos e instrucciones, as como visualizar resula-
dos. la informacin se recibe desde un teclado hexa-
decimal y se visualiza en diodos LED y d"pkyt
{.3isrfi* tt* lr*
tarjeta
procesdrrr
Ia tarjeta procesadora de nuestro microcompua-
dor consa, bsicamente, de una CPU 8085 y un
Visualizador Visualizador
binario hexadecimal
ffiffi
t t t
tr:si
E=-
ffi@W1#
l - C- l - - -
F@ffi r
:
Tareta programadora
Salda de reloi
wR:oroen o-e escritura
(ESC)
t*lil"'"'
RD: orden de lectura (LEE)
ALE: orden de dreccionamiento
&n;
::,*
r**
sbrc Micromntotadoes
Figun 2.Zl Sistema nnimo
o
ta
el
in
s-
na
fi-
la
ra-
de
T^-
5a-
: de
,lO
. Su
al a
sma
lta-
g-
r.
Bus de
Cirecciones
*
(a)
@!
ffiill
#:ffiI
A1
A2
A3
A4
A5
A6
F
o
Reset L
1
il
I Cl B
- c
sene
sene
+5V
Entrada
Sal i da
EI
EI
: - : . JJ
!;:854
g
L
7.
rb
l rsl
l osl
L*l
f"-
f#
HSl"
AD7
AD6
AD5
AD4
AD3
ADz
AD'1
ADO
,-tI
:cuito de soporte 8155. En las figuras 2.24(a) y
f.24(b) se muestran, en su orden, los diagramas de
rloques y esquemtico de esta parte del sistema.
La CPU 8085, cuya configuracin interna
s ilustr en la figura 2.5, proporciona, entre otros
:-oques funcionales, una unidad aritmtico-l-
;;a
(ALU)
de ocho bits, una unidad de control
-.--.-arios
registros accesibles al usuario.
,{.unque el 8085, por disponer de un bus de
::ecciones de 16 bits, puede direccionar un espa-
,;a- de RAM disponibles en nuestro sistema son
--jcientes
para soportar la mayora de programas
srcillos de aplicacin. Todos los bloques funcio-
:;,s que constituyen la tarjeta procesadora se co-
::rican entre s a travs de los buses de control,
-
ros y de direcciones del sistema. El bus de
T1
T0
Tempori zador
Pura-
Y trn
7
)
Figun 2.24 (a) Diagrama de bloques (b) Diagrama esquemtico
control, como su nombre lo indica, transporta las
sealesdecontrol (ALE,ffi., RD,IO/M, etQ que
necesita la CPU para comunicarse o dialogar con
la memoria y los puertos I/O.
A travs del bus de direcciones, el 8085 se-
lecciona de manera inequlvoca la posicin de
memoria o el puerto I/O desde el cual trae o ha-
cia el cual dirige la informacin del bus de datos.
Puesto que el sistema tiene solamente 256 bytes
de memoria, slo se requieren ocho lneas de di-
reccionamiento (las menos significativas); las
ocho restantes (las m:s significativas), no se uti-
lizan. En el 8085 las ocho lneas de direcciona-
miento de ms bajo orden (A0 hastaAT), se mul-
tiplexan internamente con las ocho lneas del
bus de datos (D0 hasta D7) formando un bus
nico de datos y direcciones. El 8155 decodifi-
ca o demultiplexa la informacin transportada
8155
tmnimo
curco prctico
sobre Miuocontrotadores
*tn#
1t
i '
sobre estas lfneas para saber cundo se trata de
una direccin y cundo de un dato.
El circuito de reloj
Todo microprocesador necesita un generador de
pulsos de reloj para controlar el contador de pro-
grama y sincronizar sus funciones internas. En
nuestro clso, este circuito de reloj viene incor-
porado en la CPU 8085 y su frecuencia puede
controlarse externamente mediante un cristal o
una red RC externa conectada entre las lfreas Xl
(pin l) yX2
(pin2).
El circuito de reset
El 8085 puede ser fcilmente conectado o desco-
nectado por hardware manelt{o adecuadamen-
te su entrada de rasar
(RESET IN); pin36. Cuan-
do esta llnea recibe un nivel bajo, el microproce-
sador ingresa al esado de reset. Bajo esta condi-
cin, el contador de programa se carga con ceros y
los buses de datos y direcciones se sitrlan en el es-
tado de alta impedancia. Debido a su naturaleza
asincrnica, la seal de reset puede afecar el con-
tenido de los registros internos de la CPU, in-
cluido el de estados o banderas. Cuando la lfnea
FBEmi se hace aka, el 8085 procede a ejecu-
ar el prograrna almacenado en la memoria.
En el momento de aplicar energfa al siste-
ma, el conderisador Cl est descargado e inyec-
ta, a travs de R4, un nivel bajo a la entrada
RFfm del8085. Como resultado, este l-
timo pasa al estado de reset descrito anterior-
mente. El condensador comienza entonces a
cargarse a travs de R3. Cuando el voltaje entre
los terminales de Cl alcanzaun valor cercarro a
+5V la enrrada RBS-ff W recibe un nivel alto
y el 8085 sale del estado de reset, comenzando
la ejecucin de las instrucciones a partir de la
posicin 0000H. El diodo Dl descarga rpida-
mente el condensador cuando se desconecta mo-
mentneamente la fuente de alimentacin, in-
cluso como resultado de una falla en la alimen-
tacin. El circuito constituido por Sl, Rl, R2,
ICIA e ICIB forma un eliminador de rebote
cuyo objetivo es aplicar un nivel baio a la entra-
d" FRF del 8085 cuando el interruptor
Sl est en posicin "RESET" y un nivel alto
cuando Sl est en la posicin "RLIN".
Los buses de datos
y
direcciones
El 8085, por poseer un bus de direcciones de
16 llneas, puede direccionar hasta 65536 bytes
(64K)
de memoria. Sin embargo, para acceder
a.Ies256 posiciones de RAM disponibles en el
circuito de soporte 8155 slo se requieren las
ocho llneas de.ms bajo orden. En la figura
2,25 se muestra la forma de interconectar los
buses de datos y direcciones de los.circuitos
8085 y 8155. Recuerde que en el 8085 las ocho
llneas de direccionamiento de ms bajo orden
estn multiplexadas con las ocho lfneas de da-
tos, formando un bus nico de datos y direc-
ciones. En otras palabras, en nuestro sistema,
los datos y direcciones viajan sobre las mismas
lfneas (ADO
hastaADT).
El 8155 distingue internamente enue direc-
ciones y datos interpretando el esado de lallneade
conuol ALE. Cuando esta riltima es de nivel bajo,
entiende que la informacin presente en el bus es
un dto y cuando es de nivel dto es una direccin.
Cuando el bus AD actrla como bus de da-
tos, las lfneas ADO a AD7 son bidireccionales, es
decir, pueden transportar informacin desde o
hacia el microprocesador. Cuando este bus se
convierte en bus de direcciones, las lfneas ADO
hasta AD7 son unidireccionales y llevan infor-
macin de la CPU hacia la memoria o hacia los
puertos de entrada/salida.
Hgun2 hnexin nuWptexadadetbus de datosy direcciona
#
&tt
cuw pr*i,, ct*wnotturw
I
i
I
:or
Ito
Como se muest ra en l a f i gura 2. 26, I a CPU
8085 se comuni ca con el ci rcui tb de soporte
8155 a travs de cinco lneas de control: RE-
SET, ALE,' Sf-R, m e IO/M. Otras lneas de
;ontrol como HOLD, HLDA, READY, erc.,
no son necesarias para la operacin de nuestro
sisrema mnimo pero s se requieren en siste-
mas ms grandes para ejecutar otras funciones.
La salida de reset del 8085 (RESET OUT,
pin 3), activa en alto, le comunica a la entrada
Je reset del 8155 (RESET IN, pi n 4) que el mi -
:roprocesador est en condicin de reset, es decir
que no est ejecutando el programa de aplica-
:i n. Cuando esto sucede, el 8155 entra tam-
bin en estado de resety define todas las lneas de
sus puertos como entradas.
La lnea ALE (Address Latch Enable: habi-
-irador
del seguro de direcciones) del 8085 (pin
10) est conectada a l a l neaALB del 8155
(pi n
. I
).
Cuando esta seal es al ta, l a CPU l e i n-
:orma a l a memori a i nterna del 8155 que l a
:nfbrmaci n bi nari a di sponi bl e en el bus AD
.s una di recci n.
Como resultado de la seal ALE, el 8155 al-
:rlacena en un registro interno, durante el flanco
ie bajada, la palabra de direccin. En el siguiente
,^iclo de mquina, el microprocesador puede pro-
:eder entonces, a leer o a escribir en la posicin de
::remoria direccionada. En este caso, la informa-
in se transmite sobre el busAD, convertido aho-
: en el bus de datos del sistema.
Figura 2,26 Conexin del bus de control
:::-'!-rl
:j
La lneafr.
Qrrite:
escritura) del 8085 (pin
31) est conecada a la lnea ffi.
1pi"
l0) del
8155. Cuando esta lnea se hace baja, la CPU le
indica a la memoria que el dato o la instruccin
presente en el bus AD va a ser escrita en la posi-
cin de memoria previamente seleccionada. La
lnea RD (read: lecatra) del 8085 (pin
32) est
conectada a la lnea-RD (pin
9) del 8155. Cuan-
do esta lnea se hace baja, la CPU le indica a la
memoria que va a proceder a leer el contenido
de la direccin prgviamente seleccionada y a si-
tuar la informacin en el bus AD.
Finalmente, la lnea IO/M (Input/output-
memor!: entrada/salida-memoria) del 8085 (pin
34) es conecrada a la lnea IO/M (pin
7) del
8155. Cuando esta l nea se hace al ta, el 8155
reconoce que la palabra de direccin presente
en el bus de datos corresponde a un registro in-
terno o a un puerto I/O. Cuando l a l nea IO/
M se hace baja, la CPU 8085 le informa al cir-
cui to de sopome 8155 que l a di recci n presenre
en el bus AD corresponde a una de las 256 po-
siciones de memoria a las que es posible tener
acceso. Estas localizaciones tienen asignadas di-
recci ones entre 00H y FFH.
. : ' : '
- : . ' . ,
Desde un punto de vista conceptual, el circuito
de la figura 2.24 es una microcomputadora com-
pleta porque posee una unidad central de pro-
ceso, una unidad de memoria y puertos de en-
trada/salida. Sin embargo, le falta lo ms im-
portante: un programa. Sin un programa que le
indique lo que debe hacer, un microcomputa-
dor es slo una masa inanimada de componen-
tes electrnicos.
Para almacenar en la memoria los datos e
instrucciones que constituyen el programa de
nuestra microcomputadora, necesitamos asumir
temporalmente el control del circuito de soporte
8155 y aislar el microprocesador 8085 del resto
del sistema. De este modo, podemos introducir
informacin en la memoria sin intervencin de
la CPU. Esta es, precisamente la funcin de la
de
Ites
:der
nel
r las
Fra
r l os
ritos
rcho
rden
e da-
[irec-
:ema,
$mas
direc-
nea
de
I baio,
bus
es
eccin.
de da-
nles,
es
lesde
o
bus
se
s ADO
n infor-
acia
los
y direcciones
curco prctico sobre Microcontrotadores
tklZt
#
Los tnict-ot rt'gcesadoL'es
Figura 2.27 Conexin de la tarjeta programadora
tarjeta programadora. En la figura 2.27 se ilustra
la forma de conectar esta tarjeta a la tarjeta pro-
cesadora. Cuando el interruptor S1 de esta lti-
ma se sita en posicin
'RESET", las lneas de
datos y direcciones ADO hasta AD7 del 8085
adoptan el estado de alta impedancia y quedan
flotantes. Lo mismo sucede con las lneas de con-
trol ALE, \fR, RD e IO/M. La lnea RESET IN
del 8085 es de nivel bajo.
Baj o estas condi ci ones, desde l a tar-
j eta programadora podemos acceder l i bre-
ment e a l a RAM del 8155 y escri bi r en l a
mi sma el programa que debe ej ecutar el
mi croprocesador. As mi smo, podemos
di recci onar cual qui er posi ci n de memo-
ri a y l eer su conteni do. Una vez cargado
el programa, el cont rol del 8155 debe
retornar al 8085 para que este l ti mo
l o ej ecute (Sl = "RUN").
En l a fi gura
2.28 observamos el aspecto fsi co del
si stema mni mo desarrol l ado al rede-
dor del mi croprocesador 8085 y del
ci rcui t o i nt egrado 8l 55.
En esta leccin se ha hecho un repaso
general de los aspectos ms importan-
tes relativos al mundo de los micropro-
cesadores. Hemos analizado su arquitectura in-
terna, su firncionamiento y la forma de interco-
nectarlos dentro de un sistema para que puedan
ejecutar tareas que involucren el manejo de va-
riables reales y cierto grado de inteligencia. He-
mos visto que estos dispositivos requieren de
componentes adicionales para ejecutar una tarea
especfica y que poseen las facilidades para direc-
cionar o manejar gran cantidad de perifericos
como memorias, puertos y muchos otros dispo-
siwos. Debido a.esta capacidad, los microproce-
sadores son el elemento fundamental dentro de
los equipos de computacin modernos, donde
se maneian enormes cantidades de memoria y
gran variedad de perifericos.
Los microcontroladores son dispositivos elec-
trnicos que agrupan en un solo circuito integra-
do todas estas caractersticas, aunque con cierta
limitaciones de memoriay periftricos. Sin embar-
go, su funcionamiento interno sigue siendo bsi-
camente el mismo. Por esta razn hemos querido
entregar esta corta introduccin a los micropro-
cesadores, para dar una idea de todo el desarrollo
tecnolgico que involucra esta tecnologa y sentar
las bases para el estudio de estos elementos.
Visualizacin de los datos Tarjeta procesadora
Tarjeta programadora
Tarjetas de l/0
f,
$ <t;
curco prctico sobre Microcontroradores
&g
Figura 2.28 Sistema nicrocomputador mnimo con el 80
-d
i n-
' co-
dan
\-a-
He-
r de
area
.rec-
' i cos
sPo-
' oce-
ode
rnde
ri a y
^t ^^
<l cL-
:egra-
cierta
nbar-
bsi-
rerido
oPro-
rollo
sentar
- 8085
-
- 155
I
.
el 80
En los ltimos aos, un componente elec-
trnico ha revolucionado las tcnicas de
diseo; se rrara del microconrrolador.
Es
un circuito integrado programable
que
contiene todos los elementos necesarios
pafa controlar un sistema.
A partir de esta leccin, iniciamos un esru-
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 rc-
nicas y algoritmos que permiren su maneio
e inclusin dentro de un proyecro.
cu rso prctico
sobre Microcontrotadores
&irl
*t
#
Los ln lctccctrLt'o Lad-ol-s
Al analizar los sistemas basados en micro-
procesadores mostrados en las lecciones anterio-
res, se puede deducir que la estructura de un sis-
tema de microcomputadora para aplicaciones de
medicin o control, tiene un carcter constante,
es decir, siempre existir esa misma estructura
(CPU, memori as, puertos, buses, etc.). No es
difcil comprender, entonces, porqu los fabri-
cantes de circuitos integrados decidieron produ-
cir un supercomponente que contenga todos los
elementos de una computadora en un solo cir-
cuito integrado.
A mediados de los aos 70, los fabricantes de
circuitos integados dieron a conocer un nuevo dis-
positivo denominado microcontrolador el cual con-
tena toda la estrucnrra de una microcomputadora,
es decir, unidad de proceso
(CPU), memoria RAM,
memoria ROM y circuitos de entrada./salida. El pri-
mer dispositivo de esta naturaleza fue lanzado por
Texas Instruments y se denomin TMS 1 000, el cual
fue el primer microprocesador que inclu suficien-
te RAM y ROM para el desarollo de aplicaciones.
El mi crocont rol ador se conci bi como
un di sposi t i vo programabl e que puede ej e-
Entradas Sal i das
Figura 3,1 ldea general de un microcontrolador
cut ar un si nnmero de t areas y procesos.
Desde ese moment o, el di seo de product os
el ect rni cos cambi radi cal ment e. Ci rcui t os
l gi cos, manej o de peri fri cos, tempori zado-
res y est ruct ura de comput adoras, t odo pro-
gramabl e y al oj ado en un sol o ci rcui to i nte-
grado; es deci r, una pequea comput adora
para t odas l as apl i caci ones.
O
_O
EG
o- -
6o
x=
- G
' ==
C- )
;-
&t.:.
Microconolador
Dispositivos de entrada
Figura 3.2 Diagrama general de un sistema basadl en un micrlcontrolacllr
Curco
prctico sobre Microcontroladores
+5V (Fuente de al i mentaci on)
Di sposi ti vos de sal i da
34
-i ] : ora.
para
un di seador. l a i dea de una
: r-: rocomput adora. en api i caci ones de conrrol o
=: i a tabri caci n masi va de aparatos modernos,
,.=
"i mi i a
al esquema mostrado en l a fi gura 3.1,
:::r,i e tenemos una fuente de al i mentaci n, un
:-::ui ro de rel oj v un mi crocontrol ador.
(Jna
vez
:
-:rgurado
el sistema en cuanto al hardtaare, so-
:j::nte se requiere grabar el programa en la me-
:-::i a ROM; l os puertos ya estn l i stos para
1-i:ti
conectarse al mundo exterior.
(Jn
microcontrola-
dor puede definirse entonces como un sistema
completo de cmputo, que incluye una CPU,
memoria RAM y ROM, un oscilador y puertos
I/O, todo dentro de un mismo circuito integrado.
Aunque un usuario comn no lo perciba, hoy en
da es muy comn encontrar uno o varios mi-
.0,
o/n
.1*n
a, , , aH
';;:?:'x?'ffi
o
oc
F
z
U
9,ffi.
ffi*,,..
Entradas digitales Sal i das di gt al es
Figura 3.3 Estructura bsica de un microcontrolador y de los dispositivos que pueden
hacer pafte de un sistema
curso prctico sobre Miuocontrotadores
&<lr*#
crocontroladores en todo tipo de aplicaciones des-
de los electrodomsticos y aparatos caseros como
las cafeteras, los hornos microondas, las video-
grabadoras y las alarmas, hasta los circuitos de
control sofisticados de los automviles, los avio-
nes, las naves espaciales, los barcos, los sistemas
de automatizacin industrial, etc. Las aplicacio-
nes para los microcontroladores son infinitas; el
nico lfmite es la imaginacin.
La posibilidad de manejar seales de entra-
da y de salida, asl como su capacidad para pro-
cesar datos y tomar decisiones, lo convierte en
uno de los elementos electrnicos ms versti-
les que existen. El diagrama general de un siste-
ma microcontrolado serla el que se muestra en
lagura,3,2.
Cuando se habla de dispositivos de entrada,
se hace referencia a todos los elementos que pue-
den cambiar su estado ante una determinada con-
dicin y generar una sed que pueda ser utilizada
por el microcontrolador para tomar alguna deci-
sin; por ejemplo, un teclado, un interruptor, ln
sensor, un transductor, etc. I-os dispositivos de sa-
lida pueden ser indicadores visuales, audibles o ac-
tuadores, entre otros.
Figura S.4Ejemplo del uso de un microcontrolador
en un horno microondas
ls indicadores visuales ms comunes son las
pantallas de cristal Uquido, los diodos LED, las
lmparas incandescentes, etc. Los indicdores au-
dibles pueden ser parlantes, zumbadores, etc.
Los actuadores son muy importantes ya
que se utilizan para manejar las "cargas" como
los rels, las electrovlvulas, los motores, etc.,
figura 3.3.
Un ejemplo prctico puede ilustrar mejor
todas las posibilidades. Veamos el caso de un
horno microondas, gura 3.4.
En este ejemplo tenemos tres clases de dis-
positivos de entrada: el teclado, por medio
del cual se programa la funcin que se desea,
los sensores internos para controlar variables
como la temperatura
),
si el horno tiene esa
funcin, un receptor de control remoto para
captar las rdenes dadas por el usuario sin ac-
cionar el teclado.
Como dispositivos de salida estn: eI dis-
play que puede ser de diodos LED o de cris-
tal lfquido, el motor que hace girar los ali-
mentos y algunos rels que se encargan de
controlar o desactivar los circuitos del hor-
no, lo cual permite, por ejemplo, cambiar la
potencia y el tiempo de coccin, entre otros.
En este caso tenemos un microcontrola-
dor programado especfficamente para esta
cin acompaado de una serie de circui
complementarios de entrada y salida y sus
pectivas interfaces.
Hay innumerables ejemplos de
de esta tecnologla, desde algunos muy simp
como un temporizador, hasta sofisticados
bots con cierto grado de inteligencia artifici
En la seccin de proyectos de este curso,
sentamos una serie de aplicaciones reales
el alumno podr construir, y asl aprender y
rificar el poder y la versatilidad que
estos dispositivos.
F
#
&tn
cwgo prctico sbrc Microcontotadotes
r.x las
D. Ias
15 au-
t a.
I r es ya
: omo
s, et c. ,
: mej or
Je un
i e di s-
medi o
: desea,
ari abl es
i ene esa
)o
Para
: si n ac-
: el di s-
,
de cri s-
:
-os
al i -
i : gan
de
,i el hor-
, nbi ar
l a
: : e ot ros.
{ut I t I Oh-
i :sa fun-
c i rcui t os
1' sus r es'
rrl i caci n
, t
j V
Sl mPt es
i : ados
ro-
r erti fi ci al .
-i -: rso, Pre-
:eal es que
: nder
y ve-
:e ofrecen
Esten varias diferencias imporrantes enrre esras
Jos tecnologas, cada una tiene ventajas y desven-
iajas, y su uso depende de las necesidades de cada
aplicacin. Para aclarar las ideas sobre esre rema,
i-earnos cuales son estas diferencias:
1. La CPU del mi crocontrol ador es ms si mpl e
y
sus instrucciones estn orientadas, princi-
palmenre, a la operacin de cada una de las
lneas de entrada y salida.
l. La memoria RAM (de
datos), que ofrecen los
microcontroladores,
es de baja capacidad. La
razn es simple: las aplicaciones de conrrol e
instrumentacin comunes no necesitan alma-
cenar grandes cantidades de informacin tem-
poral. En cambio, los microprocesadores
pue-
den acceder, a travs de los buses, a grandes
bancos de memoria RAM externa de acuerdo
a las necesidades del sisrema.
-1.
En los microcontroladores, la memoria ROM
(de
programa) es l i mi tada. Por l o general ,
no mayor a 4 Ki l obytes. De esra memori a
hay tres ti pos: EPROM, OTP y EEPROM,
fi gura 3.5. Los mi crocontrol adores
con me-
mori a EPROM se uti l i zan bsi camente Dara
G
GCT
I
I
EEPROM

T
I
I
I
OTP
,PO
i
ls
l 1
I
I
EPROM
o
\ ' \
t . \
\
\h
\ -
li
Figura 3.6 Dispositivo de luz ultravioleta para el borrado
de microcontroladores con memoria EpR1M
el desarrol l o de prototi pos; con este ti po de
memoria, es posible programar y reutilizar
el mi crocontrol ador
a l a manera de l as me-
mori as 2776, 2732, erc. , est o es, borrando
el programa mediante un haz de luz ultra-
violeta aplicado sobre una ventanita. En cam-
bi o,l os ci rcui tos i ntegrados OTP (One
Ti me
Programable)
o programables una sola vez,
no permi ten que se al tere o borre l a i nfor-
maci n escri ta. Este ti po de di sposi ti vos es
ms econmi co, por l o tanto es el ms uti l i -
zado para la produccin en serie de apararos
el ectrni cos, cuando el prototi po ya
^ha
si do
compl etamente
probado.
Los dispositivos EEPROM, que han hecho
su aparicin en los ltimos aos, se caracteri-
zan por permitir el almacenamiento
de un pro-
grama 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 muesrra en la figura 3.6.
Una variedad de la memoria EEPROM es la
memoria FTASH; los microconrroladores
con
este tipo de memoria, tambin son borrables
y reprogramables elctricamenre, pero pueden
soportar un nmero mucho mayor de estos
procedimientos. En un sistema con micropro-
Figura 3.5 Tipos de memoria en los microcontrlladores
Curso prctico
sobre Miuocontrotadores
&rt
'&
7E:qF)
4.
cesador; se pueden tener memorias ROM ex-
ternas de diferentes tecnologlas y capacidades,
de la misma forma que las memorias RAM.
Con los microcontroladores no es necesa-
rio disear complejos circuitos decodifica-
dores porque el mapa de memoria y de
puertos I/O estn incluidos internamen-
te. Por laruzn anterior, el circuito impre-
so de las aplicaciones es muy simple

en
algunas ocasiones, puede ser de una sola
capa lo cual es una ventaja sobre los mi-
croprocesadores.
La mayoa de los microcontroladores no
tienen accesible al usuario los buses de di-
recciones, de datos y de control de la CPU.
Algunos modelos lo hacen a travs de los
puertos de entrada/salida
(I/O),
utilizan-
do seales especiales de sincronizacin.
Estos buses y seales se pueden emplear
para construir expansiones de memoria
RAM y ROM por fuera del microcontro-
lador. Como ya vimos, esta funcin es
mucho ms fcil de utilizar en los micro-
procesadores.
La velocidad de operacin de los microcon-
troladores es ms lenta que la que se puede
lograr con los sistemas de microprocesado-
res. Sin embargo, actualmente existen micro-
controladores que funcionan por encima de
los 50 MHz lo que es suficiente para mu-
chas aplicaciones.
7. De manera similar a los sistemas utiliza-
dos con los microprocesadores para escri-
bir, ensamblar y depurar programas en len-
guaje de mquina, se requiere un sistema
de desarrollo para cada familia de micro-
controladores. Est compuesto por un pa-
quete de software con editor, ensamblador
y simulador de programas

al mismo
tiempo, se necesita un hardware pare-
"qr.-
mar" o almacenar el programa en la me-
moria del microcontrolador.
5.
6.
En resumen, dgunas de las principdes ven-
tajas cuando hacemos el diseo de un
utilizando un microcontrolador son:
El circuito impreso es ms pequeo ya que mu-
chos de los componentes se encuentran dentro
del circuito integrado.
El costo del sistema es mucho menor, al redu-
cir el nmero de componentes.
.
Los problemas de ruido que pueden afectar los
sistemas con microprocesador se eliminan, de-
bido a que todo el sistema principal se encuen-
tra en un solo encapsulado.
.
El tiempo de desarrollo de un sistema se redu-
ce notablemente.
Cuando una aplicacin o problema que se
va solucionar, sobrepase las caracterfsticas de un
microcontrolador como capacidad de memoria,
velocidad de proceso, nmero de pines o llneas
de entrada y salida, etc., se debe recurrir a un
sistema con microprocesador o a una microcom-
putadora completa.
Cristal r
7'i Curs pAco srlbre Micrwntotadorcs
Figun 3.7 Mdulos especializados en los
ven-
uito
\fuchas aplicaciones requieren algo ms que las
.imples entradas y salidas de tipo digital. Pen-
.endo en ello, los fabricantes de microcontrola-
jores
han adicionado internamente algunos cir-
:uitos especiales en algunos de sus modelos. Las
:.rsibilidades son amplsimas y el usuario puede
:::oger a la carta. A continuacin, enunciaremos
aqunas de las posibilidades, las cuales iremos es-
:-:diando progresivamente en este curso.
.
Si los fenmenos que se necesitan medir o con-
:rolar son de naturaleza anrloga como tempera-
:ura, voltaje, etc., se debe disponer de un conver-
ddor anlogo-digital (A/D) de varios canales.
.
Si hay que medir perodos de tiempo o gene-
rat en las salidas del circuito, tiempos, tonos o
frecuencias, hay que tener uno o ms contado-
res program ables (timers).
.
Si la informacin obtenida en un proceso de
medida o control, o el resultado de los clculos
Jel programa, se deben enviar a otro micro-
ontrolador, a una computadora o a una red,
-s
muy til tener un circuito RS-232 para co-
municaciones seriales.
L\J\-:,1 LTJ.
Para quienes requieren salidas P\fM (modula-
cin por ancho de pulso) para el control de mo-
tores CC o cargas resistivas, existen microcon-
troladores que pueden ofrecer varias de ellas.
Cuando se requiere atender eventos en tiempo
real o existen procesos que no dan espera, se
debe utilizar la tcnica llamada de
"interrup-
ciones". Cuando una seal externa activa una
lnea de interrupcin, el microcontrolador deja
de lado la tarea que se encuentra ejecutando
para atender una situacin especial y luego pue-
de regresar a continuar con la labor que estaba
desempeando.
I'ilr'lif{llnE!'ill!?lif'Tf lf lljilll!,Tf'Jf flliili til
Tabla 3.1 Microcontroladores de la familia INTEL 8051
En la figura 3.7 se presenta el diagrama de un
posible circuito con microcontrolador que incluye
la mayora de los elementos que se utilizan en apli-
caciones de medicin, instrumentacin y control.
mu-
:ntro
:edu-
ar los
n. de-
cuen-
redu-
que se
de un
mori a,
lneas
f aun
ocom-
4'g
gH
<oo
N
l P0
P1l P2
Direcciones/Datos
RXD
Figura 3.8
TXD
toladores
Curco prctico
sobre Microcontroladores
i
$,
li
Principales
familias
de
microcontroladores
Actualmente existen en el mercado varias mar-
crs reconocidas como las ms importantes dadas
sus caractedsticas, comercializacin, soporte tc-
nico, difusin, usos en la industria y en la fabri-
cacin de productos de consumo masivo, etc. En-
tre ellas estn Motorola, Microchip, Intel, Phi-
lips, National yAIMEL.
La familia Intel 8051
El primer microcontrolador de Intel fue e[8048,
en el cual la memoria RAM estaba dentro del
circuito integrado, pero el programa debla alma-
cenarse externamente; posterior a 1, en los aos
80, naci el 8051. Esta familia de microcontro-
ladores ha sido una de las ms difundidas en el
mundo e incluye varios miembros, cda uno de
ellos acondicionado para aplicaciones especfficas.
Todas las versiones existentes estn conformadas
segn un nrlcleo bsico (8051
Core) cuyo diagra-
ma de bloques se muestra en a figura 3.8.
. Tienen la misma CPII, memoria RAM, tem-
porizadores, puertos paralelos y entradas/salidas
de tipo serid, segn la distribucin que se mues-
tra en la tabla 3.1.
El 805 I tiene 4kilobpes de memoria ROM
que se deben programar durante el proceso de
fabricacin del circuito integrado. En el 8751,
la memoria ROM se ha reemplazado por una
memoria EPROM que el usuario puede pro-
gramar con un aparato especial y borrar con luz
ultravioleta.'
El 8031 es un caso especid; no tiene capaci-
dad para memoria ROM interna y, por lo tanto,
la memoria de programa se debe colocar exter-
namente. Para realvar la comunicacin con la
memoria externa, se deben emplear tres de los
cuatro puertos paralelos de entrada./salida que tie-
ne. Esta posibilidad de expansin de la memoria
RAM y ROM con circuitos externos, es una Gl-
racterstica propia. de los microcontroladores de
esta familia.
Mapa de memoria. Los componentes de esta
familia de microcontroladores rienen una ca-
racterfstica en comn que los hace diferentes
al comportamiento convencional de un mi-
croprocesador: tienen un espacio para las di-
recciones de datos
(lectura/escritura)
y otro
para las direcciones de programa o de lectura
solamente.
La memoria de programa puede ser hasta de 64
Kbytes. En las versiones que rienen ROM y
EPROM, los 4K 8K o 16K inferiores de pro-
grama, estrin alojados en el microcontrolador.
Con
junto
de instrucciones. Todos los miem-
bros de la familia ejecutan las mismas instruc-
ciones. Este conjunto de instrucciones ha sido
diseado pensando en optimizar aplicaciones
de control de 8 bits. Ofrece una variedad de
modos de direcionamiento para accesar la me-
moria RAM interna con el fin de facilitar las
operaciones de 8 bits en una esrructura de da-
tos pequea.
El conjunto de insmucciones proporciona un
soporte muy amplio para variables de un bit. De
esta manera, se puede lograr la manipulacin en
los sistemas lgicos y de control, que necesitan
operaciones de lgebra de Boole.
La informarin sobre el ncleo del 8051
se hizo pblica y en ella se han basado otros
fabricantes para llwar al mercado versiones ac-
tualizadas con mejores caractersticas en cuan-
to a velocidad, consumo de corriente, fun-
ciones adicionales, etc., como el caso de Phi-
llips y ATMEL.
Motorola
Los microcontroladores Motorola se derivaron
del microprocesador 6800 y han sido optimi-
zados para aplicaciones de control especializa-
do, formando parte de aparatos de produccin
masiva como juguetes, equipos de video, im-
presoras, electrodomsticos y son de amplio
uso en la industria automotriz.
#
rr*
cutw prctico sbrc Mictwn*ad,w
-
est a
l ca-
' e
nt es
I mi -
es di -
-
ot r o
t ct ur a
de 64
f Mv
.e
Pro-
,dor.
mi em-
r st r uc-
ra si do
. ci ones
.i ad de
I a me-
i r ar l as
, de da-
ona un
oi r . De
rci n en
<esi tan
. l 805 1
[t- ottOS
Jnes ac-
' n cuan-
r-. f un-
, l e Phi -
i rl varon
. -' pt i mi -
e ; i al i za-
' i ucci n
i eo, i m-
'
rmpl i o
Exi st en ci nco f ami l i as pr i nci pal es: l a
:
-: 1C05,
l a 68HC08 y l a 68HC11 de 8 bi t s, y
: : SHC12 y l a 68HC16 de 16 bi t s; cada una de
:
-:!
con una CPU di ferente.
Dentro de l a fami l i a 68HC05 exi sten ms
:-
j ,l
mi crocontrol adores di sti ntos, todos cons-
---.i os
a parti r de l a mi sma CPU de 8 bi ts e
-,---rren
RAM, ROM, puertos IIO y tempori -
..:
-
:es; al gunos ti enen adems, puertos seri al es,
-
:-'..ertidores anlogo-digitales y memorias EE-
-
: l\f o EPROM como lo describe latabla.3.2.
-
os mi crocontrol adores de l a fami l i a HC08
::.r puertos seriales, conversin A/D, inter-
--:, rara redes CAN, PLL, P' $7M, etc., depen-
.:. io de la referenci,.
I t - t r t l , r
Tabla 3,2 Microcontroladores Motorola
vard. Este tipo de arquitectura fue tomada por
General Instruments para su CPU CP1600, y
de esta empresa surgi , al rededor de 1985, una
divisin que se ubic en Aizona y que tom el
nombre de Microchip Technology, con el micro-
control ador PIC como su producto pri nci pal .
Los microcontroladores PIC se clasifican en
tres grupos dependiendo de la longitud de la pa-
l abra de i nstrucci n que pueden manej ar (12,I4
16 bi x), tomando l as referenci as 12CXXX,
16)000(, 12OO(y 18)OC(
Nota: Las X en estos nombres quieren decir que
en esos espacios se ubican diversos nmeros y
letras, segn el tipo de integrado.
Sus fabricantes definen a los PIC como micro-
controladores de 8 bits tipo RISC (Reduced
Ins-
nacon Set Computer Computadora con un con-
junto reducido de instrucciones) de bajo costo, bajo
consumo de potencia y alta velocidad de operacin.
No estn muy alejados de la realidad: ya es-
tn en desarrollo microcontroladores PIC de has-
ta 40 MF{z y el consumo de potencia es de 50
.:es de l os mi crocontrol adores de esta em-
'e
hallan en la Universidad de Harvard
:
-.
se desarrollaba un proyecto para el De-
::r-nto de Defensa de E.E.U.U. en el cual
-,:aba
un nuevo di seo en cuanto a l a di s-
. :r e i nteracci n de l a CPU con l a memo-
,:al tom el nombre de arqui tectura Har-
.".."
s9-
$s
a"t-'
of'
o\"
M
u:68HC0586
ffi8HC05832
v:8HC705SR3
m8fic705116
:
-.a3HC908GP20
E8lrc908GP32
u:b8HC908JKl
ms{c908JK3
v:68HC1 200
G8IJC811E2
:
:aHC81 244
L58r.1c912832
8

I
I
I
I
I
I
I
I
16
16
76
528
192
512
512
512
128
128
192
256
1K
' tK
3.75K
16X
2OK FI-ASH
32K FI.ASH
1.5K FLASH
4K FI,ASH
2 (1 6 Bits)
2 (16 8ib)
1 (8 Bits)
2 (16 Bits) 1 (8 Bits)
2 (16 Bib)
2 (16 Bib)
2 (16 Bits)
2 (16 Bit$)
1
06
Bils)
1 (16 Bits)
8 (16 Bits)
I06 Bib)
32
32
32
3S
33
15
15
I 6 Exp.
scl
scl
sr0P
SCUSPI
sct/sPl
scr/sPl
scvsH
SCI/SPI
scilsPl
8 canales/8 Bts
8 canals
4 canales
8 canales
I canalos
10 canal es
10 canales
8 canales
I canales
I canalG
3,3 - 5,5
3,3 - 5,5
3,3 - 5,0
3,3 - 5,0
3,0 - 5,0
3,0 - 5,0
3,0 - 5,0
3,0 - 5,0
3,0 - 5,0
D
3, 3- 5
5
4.0
2.1
2. 1
2.1
8.0
8.0
8. 0
8.0
2
8/0
I
56 SDIP
56 SotP
40 DIP
80 0F?
40 DIP
40 DIP
20 DIP
zODIP
40 PDIP
48 DIP
I 12 LOFP
80 OFP
4K EEPROM
768 EEPROM
32K FI.ASH
+de91
+def f l
curco prctico
sobre Microcontrotadores
&kl
,.t
#
Lo s LLr [croco trt-rc Lad-c r,-=s
PERIFERICOS
AT91 M40800
AT91 F4081 6
4T9 1 M40400
AT89C51
AT89C1 051
AT89C205t
SSOF
SSOF
OF
ur
mi crowati os a 32 Khz de operaci n y 6 mi -
crowatios en modo de reposo o standby.
La arqui tectura de l os PIC se basa en regi s-
tros con memorias y buses separados para las ins-
trucciones y los datos, llamada arquitectura Har'
uard. La memoria y el bus de datos
(RAM) son
de 8 bi ts de ancho, mi entras que l a memori a
(EPROM) y su bus ti enen 12 bi ts.
La t ecnol og a de l os mi crocont rol adores
ha permaneci do en const ant e evol uci n en
cuant o a t ecnol og a de f abri caci n y cual i da-
des of reci das. Los mi crocont rol adores PI C de
l t i ma generaci n son mqui nas asombrosas;
por ej empl o se t i enen proyect ados PI C de t an
sol o 8 pi nes con conversor AI D y memori a
Fl ash. Al gunos l l egan a poseer hast a 100 pi -
nes, y segn l a referenci a, i ncl uyen una buena
vari edad de mdul os i nt ernos que cumpl en
con una gran cant i dad de f unci ones como
puert os seri al es, P\ ' M, comparadores, et c. En
l a t abl a 3. 3 t enemos una l i st a de al gunos mo-
del os de est os mi crocont rol adores con al qu-
nas de sus pri nci pal es caract er st i cas.
labla 3.3 Alaunos mldells de microcontroladores P
-
Esta empresa manej a tres grandes grupos de m
crocontrol adores RISC cuyas CPU l l egan ha,
t a l os 32 bi x. El pri mer grupo t i ene una arqu
t ect ura basada en el 8051 de I nt el con mem,
ria de programa ripo Flash. El segundo gru;
son l os mi crocontrol adores AT9 1, l os cual es s:
portan compi l ador en C, emul ador, etc. El
' *
ti mo grupo l o conforman l os mi crocontro-.
dores AVR, de arqui tectura RISC y CPU de
bi ts, y mdul os USART, SPI, ADC, etc. En ,
tabl a3.4 se muestran l as caractersti cas pri n:
pal es de al gunos model os de esta marca.
\q,
a;,/
8K
8K
4K
K
:s'
d
ia
."ttt*
' //,'
t
( . '
w
Ptc16C54
Ptc16C56
Ptcl 6C61
Ptcr6c71
Ptc16C74
Ptc16C84
Ptc17C42
Ptc17C44
20
20
20
20
20
10
25
25
20
20
\ t
1K
1K
1K
4K
2K
8K
1K
4K
8K
25
25
36
36
192
o
J
454
192
369
64
128
250
TMRO
TlI,|RO
TMBO
TMRO
TMRO, TMR.I , TMR2
TMRO
TMRO, TMRI , TMR2, TMR3
TMRO, TMRI , TMR2, TMR3
TMRO, TMRl , TMR2
TMRO, TMR1, TMR2
sPt/t2clscl
JI
si
!
l . l
' l o"l
''
l'"1
l l
-l,l
l ' ' l
'
I
5ch
I
si
8ch I Si
3
4
12
4
1l
11
I J
14
l z
12
13
13
Q1
13
33
22
1.5-6.25
2.5-6.25
3.0-6.0
3.0-6.0
3.0-6.0
2.0-6.0
4.5-5.5
2.5-8.0
18-pi n Dl e 18-pn Sol C,20 pi n t
1 8-pin DIB 18-pin SolC, 20 pn S
18-pi n DIB 18-pi n S0l C
' 18-pi n
DIR 18-pi n S0l C
40-pin DIR 44-pin PLCC, 44 pin
18-pi n DIB 18-pi n S0l C
40-pin Dle 44-pin PLCC, 44 pin
40-pin DIB 44-pin PLCC,44 pin
28-pn DIP Sol C
40-pi n DIP Sol C ,tc1
6F87;
MSSP Usart
/g
Y)
3
3
3
T_,
81 11. 8- 3. 6
85 | 2. 7- 3. 6
3212.7-3.6
4Kt1?8 32 I 4.0-6.0
1K164 1 5 12. 7- 6. 0
2K1128 15 12. 7- 6. 0
^\

{
{nb &f
ln:. curso prctico sobre Microcontrotadores
\"'rl
Tabl a 3. 4 Microcontroladores ATl"i
h
vi
-: adores PIC
Eos
de mi -
.l egan
has-
una arqui -
Lrn memo-
ndo gruPo
s cual es
so-
. etc. El l -
rLrControl a-
' CPU
de 8
, . et c. En l a
:i ;as pri nci -
,CTES ATMEL
La familia de microcontroladores
pIC
ha
conquistado,
en los ltimos aos, un espa-
cio imporranre
ene los diseadores
de toda
clase de circuitos de instrumentacin,
me-
dicin y control, as como enrre los experi-
mentadores y estudiantes de esra tecnolo-
ga, por lo tanto, vamos a dedicar parte de
este curso a explicarlos.
curco prctico
sobre Microcontroradores
&Ot
#
El crecimieirto de la participacin de estos mi-
croconuoladores en el mercado mundialha sido po-
sible debido a la capacidad de estos dispositivos de
satisfacer lrs necesidades, cavams o<igentes, de
los ingsnieros y tecnicos de todo el mundo. Este cre-
cimiento ambin se diment porlavariedad ofreci-
da en sus presentaciones y tipos de memoria Algu-
nas de las razones que justificaron esa acogida son:
.
Sencillez de manejo por su juego reducido de
instrucciones
.
Buena informacin: notas tcnicas, proyectos
en internet, etc.
.
Precio y disponibilidad en el mercado
o
Herramientas de desarrollo fciles y baratas
la empresa Microchip tabrica entre otros mu-
dros producos, microcontroladores de 8erde pro-
puito general de arquitecnua RISC (conjunto re-
ducido de instrucciones), bajo consumo de potencia
y una disuibucin intema en donde la memoria de
programa
(ROM) ylamemoriadedatos
(RAM) se
encuentran en bloques sepaxados, cada una con su
propio bus de a@eso
(atuauraHarvardl.
Ellos se clasifican dependiendo de la longitud
de la palabra de sus instrucciones. Actualmente
las ues familias de microcontroladores PIC son:
1. LlneaBase o bsica palabras del2 bit delongn
2. Rango Medio: palabras de 14 bits de longitud
3. Rango Alto: pdabras de 16 bits de longitud
los dispositivos de la llnea bsica tienen las refe-
rencias 12C)OO( los de rango medio l6ClOO( y
los ms avanzados se nombran como 17OOO( y
I SOOOC figura 4. 1. Cuando desarrollamos un p-ro.
yecto con microcontroladores PIC, debemos elegir
el microconuolador ms adecuado dependiendo de
sus caractedsticas. Estas se relacionan direcamente
con las funciones que s puedan ejecuar con cada
microcontrolador y su tecnologa de fabricacin.
Herramientas de desarrollo
Microchip y otras empresas, ofrecen un amplio
rango de herramientas de desarrollo que permiten
agl:var la elaboracin y depuracin de los progra-
mas. Estas pueden dividirse en cuatro categorfas:
1. Generacin de cdigo
2. Depuracin de los programas
3. Dispositivos programadores
4. Terjetas de evaluacin de los productos
Todas las herramientas de desarollo de Mi-
crochip operan bajo el entorno del programa
MPIAB. Ias henamientas de generacin de cdi'
go son MPASM, MPIAB-Cy MP-Drive\l'ayru.
ls herramientas parr depuracin del cdigo son:
PICMASTER@ emulador In-Circuit, ICEPICT
Emulador In-Circuit y el MPIAB-SIM o simula-
dor de programas. Despus de generado el cdigo
de la aplicacin, el dispositivo debe ser programa-
do. Microchip ofrece dos niveles de programado-
res: el PICSTT\RT Plus yel PROMAIE II.
Las tarjetas de demostracin permiten al
usuario evaluar la capacidad y disponibilidad del
dispositivo para una aplicacin determinada. Ellas
son: PICDEM-I, PICDEM-2, PICDEM-3 y
PICDEM-14A.
Arquitectura de los PIC
Podemos estudiar cada microcontrolador
teniendo en cuenta tres aspectos
1. El ncleo
2. Los perifricos
3. Las caracterlsticas especides
El ncl eo
Se refiere a las caracterlsticas fundamentales
se requieren panralizar su operacin bsica.
tre ellas estn:
F.l circuito oscilador. Es un circuito que se
z.a pafa generar la seal de reloj del disposi
Esta seal es necesaria para que el mi
lador ejecute las instrucciones y para que
nen los perifricos. Entre los circuitos de
cin ms comunes estn los basados en
en red RC y los de resonador.
Fl l si stema para reanucl ar
(Reset).
Se usapara
var al microcontrolador a un estado conocido.
este estado se establecen por lo general las
#
rr*
curso prctico sobre ttricroantotadores
e Mi-
irama
: cdi-
,yru.
io
son:
EPICT
;imula-
cdigo
qralna-
amado-
iL
ri ten al
idad del
da. Ellas
EM-3
y
dor PIC
nentales:
rules
que
arica.
En-
re se utili-
Lspositivo.
:rocontro-
ue funcio-
de oscila-
:n cristal,
-.a
para
lle-
nocido.
En
I ls condi'
13 I
, . CODE
7 ... o (btfs)
k (literal)
--:ones
de inicio con que siempre empieza el siste-
:: \'con las que un producto electrnico garanti-
::. un buen funcionamiento de todas sus tareas.
Fls la res-
:.rnsable de tomar la informacin de la memoria
::
programa (instrucciones)
para controlar la ope-
:.:in de todo el sistema.
En un si sre-
::-.: con microcontrolador muchas de las insrruc-
:.-,nes operan sobre l a memori a de datos. Para
-:i rar
en esta memori a, se requi ere de l a ALU,
.. :ual permite el desarrollo de las operaciones
--.-nti cas
y l gi cas sobre el l a.
Existen dos bloques de memoria que se
.:::n en este punto: la memoria de programa, la
:
-"1
se divide en bancos seleccionables por pro-
a-.:i-na,
y
Ia memoria de datos; cada bloque cuenta
:
-
: su propio bus. La secuencia de las instruccio-
-=.
est controlada por el contador de programa
-
,-
. el cual se incrementa en cada paso, para eje-
:-:a las instrucciones grabadas en la ROM.
Los ml cro-
::rol adores PIC ti enen vari as fuentes de i n-
=::.rpci n. Estas fuentes i ncl uyen a l os mdu-
,
'
:eri feri cos.
Cada i nstrucci n
= : : r' i de en un cdi go de operaci n (OPCO-
-
: . que especi fi ca el ti po de i nstrucci n, y
-
. o ms operandos que especi fi can l a ope-
' . : .
rn de I a i nst rucci n. En el si gui ent e ej em-
-
, observamos el cdi go de operaci n de l a
. , : : ucci n MOVL\ X/ 06H :
L\ JUL Li 1
Los perifericos son los elementos que en realidad
diferencian a los microcontroladores PIC de un
microprocesador. Ellos hacen posible la comu-
nicacin con el mundo exrerior (puertos I/O, ma-
nejadores LCD, entradas A/D, P'$?'M, etc.) y la
realizacin de diversas tareas tales como tener di-
ferentes bases de tiempo. Los principales perife-
ricos de un microcontrolador PIC son:
Permiten que el PIC reciba y en-
ve seales desde y hacia el mundo exterior. Ade-
ms, se utilizan para vigilar y controlar otros dis-
positivos. Para darle ms flexibilidad al dispositi-
vo, algunos pines se multiplexan con firnciones
alternas. Esto quiere decir que en unos casos las
mismas lneas pueden ser pines de entrada/salida
o en otros casos, realizar otra funcin.
Se utilizan para establecer
bases de tiempo confiables, medir el tiempo en-
tre eventos, contar eventos externos, etc. En los
microcontroladores PIC pueden existir diferen-
tes tipos de temporizadores como:
Timer0. Temporizador de 8 bits.
Ti merl . Tempori zador e 16 bi ts.
Timer2. Temporizador de 8 bits.
Cada mdulo CCP contiene un registro
de 16 bits qte opera como registro de caprura,
como un registro de comparacin o como un re-
gi stro de P\fM de 10 bi ts.Estos mdul os son
muy tiles en distintas aplicaciones tales como el
control de motores o cargas resistivas, compara-
cin de seales y orras.
Este mdulo es una
interfaz serial para la comunicacin con otros
microcontroladores u otros periftricos tales como
memorias seriales, registros de desplazamienro,
conversores A/D, etc.
Es una in-
terfaz serial para comunicarse con otros disposi-
1l \L\ 06H
: 06
instruccin
cdigo operativo
curso prctico
sobre Miuocontrotadores
&kl,t
#
t,
tivos. Puede operar en dos modos distintos:
SPI TM I 2CTM.
i i l l eri t i srl ' i rl i srl r. l ' . i ; r{l ni rf sf ; i i L' i 5, \ i } l " Est e es
otro mdulo para comunicacin serial tipo SSP
il.','!.i'. i 1 ",t
-.i
r. Se denomina mdulo universd re-
ceptor uansmisor aslncrono. Es uno de los dos tipos
de puertos seriales
(el
ouo es el SSP). Puede configu-
rarse en modofull duplm o lmo halfduplac.
i.cjert:nci;rs i' l' : ;o!raii' . Este mdulo se usa nor-
malmente en conjunto con el mdulo compara-
dor. Se puede entender como una red de resis-
tencias que proporciona un voltaje de referencia
seleccionable.
{,o:nrr"r{,,r,"',r. Algunos PIC contienen dos com-
paradores anlogos de seales. Las entradas a los
comparadores se multiplexan con pines I/O.
i,i:rr'urrrli s ,'ii I ) rit: li /,','-'. Convierten una se-
al anloga en un dato digital de 8 bits.
{,
i r!:"!,r.r' 1{!rs. 11,/[i i * l tl /rs, Convi erten unase-
al anloga a un dato digital de l0 bits.
' \ ' i
; i l l {:
l . i {i
t }4r, . : r, *y, i ; ' t 1r. t ; ,
i i i : l i
t i }i i r s i l , , c ri si . ; ; i
,1l;r:i,-ii-. r i i.l-"i. Este mdulo genera el control
de tiempos para manejar un panel LCD. Thm-
bin proporciona el control para los pixeles de
datos del LCD.
i ' u' :ri ,r i rurl ti ,ri ,t *;r-:.l r' {- i
j :.(r
l ;l Al gunos PIC po-
seen un puerto paralelo de 8 bits.
: gr**t u: r $t i . i b
; ; s$i {; r}i i .
$
Las caracterlsticas especiales ayudan a disminuir
el costo del sistema y a incrementar su funciona-
lidad y su flexibilidad. Los microcontroladores
PIC de rango medio ofrecen dgunas caracters-
ticas que cumplen con esos objetivos:
i l t : . n. i . , . - , 1. ' t l i i l i {' "1 r ' *i i . ; r l i ; r l r i r i i . i i . - , , , i : , , ' . , - . ] Pef mi t gn
que cada usuario personalice ciertos aspectos del
microcontrolador que va a utilizar para su apli-
cacin. Cuando el circuito se alimenta, el estado
de estos bits determinan su modo de trabajo.
i':,t/.'r'' t;; /lcso'
il)L)l{. Cuando se alimenta el
sistema, se puede generar un estado de reset gue
lo obliga a llevar el contador de programa a la
posicin inicial.
.[i'ou.'-rt
Rrsrr {l]{.)ltj. Origina un estado de
reset en el momento en que se detecta una falla
en el voltaje de alimentacin.
'1.:rn:orizrdr
\Y'htthtl,. Es un oscilador tipo
RC ubicado en el interior del circuito integra-
do que no requiere componentes externos. Se
utiliza para prevenir fallas catastrficas en
operacin de un sistema, cuando el PIC se b
quea por alguna rezn. Tambin se puede uti
lizar pan temporizar o como detector de
sos perdi dos.
fu1<do ri e baj o -.{}{1srl r1ro dc potenci a
(52,r,
En este modo de trabajo el oscilador del PI
es desactivado y se presenta un consumo
nimo de potencia. Cuando el sistema lo requi
re, el microcontrolador vuelve a su estado
consumo normal .
{.}scilatJor irtcrlo R(,. Cuando no se tienen
querimientos exigentes de manejo en la
sin del timpo, se puede utilizar una red
como oscilador externo lo que permite un
o muy econmico.
! r l ogr ' ; r mi r c, i u scr i al c{cnt r o del c i r cui t <r
{"' ir.uiti. Es la posibilidad de programar
microcontroladores dentro de la aplicaci
ci rcui to fi nal . Esto se hace medi ante ci
neas: una para el rel oj , otra para l os da
otras tres lneas para la alimentacin y el
taj e de programaci n.
Con todos estos factores, podemos es
cer un diagrama de bloques genrico de un
croconolador PIC, como el que se
en la figura 4.1.
#
rrr"
curco prctico sobe Microcontotadores
I estado
bai o.
nenta
el
reset qtJe
rma a la
stado
de
una falla
rdor
ti Po
r i ntegra-
ernos.
Se
,cas en l a
tC se bl o-
ruede uti-
rr de pul -
r del PIC
rsumo
m-
r lo requie-
estado
de
e tienen
re-
:n Ia preci-
na red RC
te un dise-
rgramar
l os
rpl i caci n
o
nte ci nco
l -
. Ios datos
Y
i n y el vol -
:mos
estable-
rco de un mi-
re se muestra
Bus de datos
{wfws*
t*otrui.iijitui,'
a
o
o
RAO
RA1
RA2
RA3
RA4
RA5
PUEBT0 n
MCLR Voo,Vss
Mdul os peri fri cos
,
-,: ';tz
se han analizado los requerimientos fun-
: .:-,-les del dispositivo, se deben estudiar orros
i;.r::os como: tecnologa de la memoria, voltaje
-.
-
-racin,
rango de temperatura de operacin,
r:Jr-ncia de operacin y encapsulado. Microchip
Figura 4.1 Diagrama de bloques general
de un microcontrolador PIC de rango medio
posee una buena cantidad de opciones entre las
cuales podemos escoger la ms indicada.
Dependiendo
de la aplicacin y el modo de pro-
gramacin, hay varias tecnologas paralamemo-
OSCl /CLKIN
-]SC2/CLKOUT
curso prctico
sohre Microcontroradores
&t*#
I
I
I
ria en los microcontroladores PIC. Esta tecnolo-
ga de la memoria no afecta la operacin lgica
del dispositivo. Debido a los diferenres procesos
de fabricacin y las distintas tecnologfas, algunas
caractersticas elctricas pueden variar entre dis-
positivos, a pesar de que tengan las mismas fun-
ciones y pines.
Cada uno de los tipos de memoria que estn
en los dispositivos, hace que cada uno de ellos
presente una variedad en la respuesta de frecuen-
ciayen las opciones de encapsulado. Dependien-
do de los requerimientos
de la aplicacin y de la
produccin, las opciones propias del dispositivo
pueden identificarse usando las hojas de datos
suministradas por los fabricantes.
El tipo de memoria utilizado en cada dispo-
sitivo se puede identificar en su nmero de parte
por la primera(s) letra(s) as:
1. C, como en PICI6C)OO(. Estos dispositivos
tienen memoria EPROM
2. CR, como en PICI6CruOOC Dispositivos
con memoria ROM
3. F, como en PIC16F)OOC Dispositivos con me-
moa Flah
EPROM
Es la memoria borrable (EPROM:
Erasable
pro-
grammable Read Only Memory) para que los di-
seadores rengan flexibilidad en el desarrollo de
los prototipos.
ROM
Microchip ofrece dispositivos en versin ROM
(Read
Only Memory) la cud,es la apropiada para
utilizarse en casos de produccin en serie, ya que
es la ms econmica del mercado.
labla 4,2 Rangos de vottaje tpicos pan
cada tipo de dispositiw
Memoria Flash
Estos dispositivos son borrables elctricamenre y
se ofrecen en un encapsulado plstico de baio
costo; pueden borrarse y reprogramarse.
0pciones de rango de veltaje de
0peracin
Todos los microcontroladores
PIC de rango r
dio operan sobre un rango estndar de rrolta
Algunos modelos pueden trabajar sobre
rangos extendidos de voltaje (y rango reduci
de frecuencia).
L tabla 4.1 muestra la designacin para los
pos de memoria y rangos de voltaje en los mi
conuoladores PIC 16C)OOC Los desi
estn en negrilla.
En la tabla 4.2 podemos apreciar las es
ficaciones dadas por Microchip para los rroi
de los distintos microcontroladores.
Esros
res estn comprobados.
Variedades
de encapsilladCI
Dependiendo
de la fase de desarrollo de
proyecro, se debe usar uno de los tres ri
de encapsulado. El primero es un disposit
con una ventana de borrado. Normal m
ffiffi
borrar y reprogramar la memoria de
ma muchas veces.
El segundo tipo de encapsulado es el
de bajo cosro. Por ltimo estn los diiposi
vos DIE (dado)
los cuales se caracrerizan
poseen un encapsulado cermico y se usan
la fase de desarrollo, debido a que permi
no tener encapsulado. Se utilizan en aplica<
nes de muy bajo costo donde el espacio de
tarjetas deba ser mlnimo. En la figura 4.2
muestran los tres tipos de encapsulados.
Tabla 4.1 Tpos de memoias y rangos de votkje
#
rr*
curco prctim
e Micrwnfrotadorcs
I
EI
E
: EPROM
=gura
4.3 Principales encapsulados de los microcontroladores PIC
' l
1. , r r
- i - .
LL- SL Lr 1
vez. Si el programa se daa o se riene que cam-
bia hay que programar e insralar en el circuito
un nuevo dispositivo.
Un microcontrolador tipo FLASH permite mo-
dificar el contenido de su memoria mediante una
carga elctrica. Esto significa que el sisrema 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 muy econmicos.
Un dispositivo EEPROM permite que su me-
moria sea borrada mediante una carga elctrica.
Esto significa que el sisrema puede disearse para
que el borrado y el reprogramado puedan hacer-
se dentro del circuito. Thmpoco requieren venra-
na de borrado y se encapsulan en plstico.
Los di sposi ti vos ROM ti enen su memori a de
programa establecida desde el momenro de su
fabricacin. Como ella no puede cambiarse, es-
tos dispositivos tienen la presentacin en plsti-
co ms econmica del mercado.
Esta opcin permite el desarrollo de tarjetas muy
pequeas. La fabricacin con DIE requiere equi-
pos y conoci mi entos especi al es, l o que i mpl i ca
que el nmero de casas fabricantes que soporran
esta tecnologa sea limitado.
Para algunos usuarios que incorporen la tecnolo-
ga OTB debido a un cdigo fijo para sus produc-
tos, Microchip ofrece dos encapsulados especia-
Ies: la programacin rpida para produccin y la
programacin serial rpida para produccin. Ellas
les permiten a estos usuarios ahorrar mucho tiem-
po en el proceso de fabricacin de sus productos.
a. Programacin rpidaparaproduccin (QTP'
Quich
Turn Production)
:tsPositivo
nlente
y
de baio
ango
me-
e vol taj e'
, bre unos
reduci do
' ara
l os ti -
Itrs mi cro-
si qnadores
Ias especi-
i."'s voltajes
Estos
val o-
oi l o
de un
i rres t i Pos
Ci sposi t i vo
' rmal ment e
,- se Ll san en
. e per mi t en
de progra-
:s el pl sti co
os di sposi t i -
. ; reri zan Por
e n apl i caci o-
spaci o
de l as
gura
4. 2 se
ui ados.
' rsi n
borrabl e UV de di sposi ti vos de me-
::,r de programa EPROM es ptima para el
..:rol l o de prototi pos y programas pi l oto. Es-
i i sposi ti vos pueden programarse una y orra
. La cantidad de tiempo requerida para bo-
: completamente un dispositivo [fV depende
.e l ongi tud de onda del haz, su i ntensi dad,
:nci a entre l a fuente y el mi crocontrol ado y
.: recnol oga del di sposi ti vo (qu
ran peque-
son l as cel das de memori a).
\t-ra: las bombillas fluorescentes y la luz del
-.
emiten luz ultravioleta con una longitud
:- onda que permi te el borrado. Si en un di s-
:
,sitivo
de este tipo no se protege la ventana,
::ede ocurri r, con el ti empo, que l as cel das de
. memori a se borren. El ti empo de borrado
-
n una luz fluorescente es aproximadamente
--
rres aos, mi entras que con l a l uz del sol se
-=qui ere
de aproxi madamente una semana.
.:a prevenir la prdida de los datos, se debe
-
.ocar una superficie opaca (p.
.j. cinta ais-
.::e) sobre l a ventana de borrado.
:i sposi ti vos OTB r. encapsul an en pl sti co
:.:rl i ten que el usuari o l os programe una sol a
curso prctico
sobre Microcontrotadores
&rr*t
#
Microchip 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 MCU. 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 rpidaparaproduccin
(SQTP: Serialized
Q"ith
Thrn Producon)
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, passwordo nmero de identificacin.
PROGRAMADORE$ Y ENTRENADOHES
(Trai ners|
Los programadores son dispositivos que permiten
grabaren la memoriadel microcontrolador el pro-
grama escrito y ensamblado en la computadora.
Algunos programadores trabajan conectndose al
puerto paralelo como el K-220 de CEKII figura
4.4; y otros, conectndose d puerto serial como
los que se muestran en la figura 4.5.
Un enuenador es un dispositivo que permite
rahzar una serie de prcticas con microconuolado-
res. Se compone de una serie de mdulos indepen-
dientes que se pueden interconectar entre sly con los
cuales se facia el aprendizaje de las pncticas ms
Figun 4.5 Prognnadores por el puerto
a) PrognmadorK-224de
O PICSTART PIus de
c) Prognmador Clear View
comunes y fundamentales que se deben asi
en esta tecnologla. El K-148 de CEKII
4.7, es un entrenador que tiene mdulos como
de manejo de display de siete segmentos, la
quisicin de variables anrlogas y
serides, entre otros.
Figun 4.4 Progranador por puefto paralelo, K-220 de CEKIT
r
*

#
<rr"
curco prctico sotue tticrocotttotadoes
Hgun 46 Entrenador para
microcontroladores PlC,
:
"F"
?t ,
FT
=
7
r : ouerlo
serial
, .,-224 de CEKIT
,-s
de MicrochP
E' /tew Mathias
[.'en
asimilar
-EKIT,
figura
d.'os
como
el
n.ntos'
la ad-
tmunicaciones
n-':s
PlC, referencta
K-l48 de CEKIT
Esta familia de microcontroladores es una
de las ms difundidas y utilizadas en todo el
mundo. Sus aplicaciones incluyen las comu-
nicaciones, el control, la electrnica automo-
triz, etc. En esta leccin haremos una intro-
ducci n a sus asPectos ms i mportantes
como las familias en que estn divididos, sus
canactersticas,
sus ventaj"t y en general, da-
remos un rpido vistazo a esta tecnologa.
TE
E
t E

@
EUt
$Eufi u
curso prctico sobre Microcontrotadores
&ktnt
#
Lo s Ln [cruco trr-t'o Lati.o ru.s LVloto ro La
Los microcontroladores Motorola tienen la
reputacin de ser muy confiables, fciles de pro-
gramar y, ante todo, ser unos de los ms utiliza-
dos en todo el mundo. Y no es de extraar ya
que esta firma es lder en la fabricacin de semi-
conductores, especialmente microprocesadores,
microcontroladores y productos de alta tecnolo-
ga. La cantidad de familias y referencias que
poseen estos dispositivos permiten que los dise-
adores puedan escoger el ms apropiado para
cada tarea especfica que se deba realizar. Como
dato curioso, pero que a la vez confirma la cali-
dad y versatilidad 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 conoci das son: 68HC05, 68HC08, 68HC11,
68HCl2,68HCl6, 683)C(, MPC5)O( y la fa-
milia de ncleo M
(Core
M). Cada una de ellas
tiene muchas referencias distintas, las cuales pue-
den variar por el tamao de la memoria que po-
seen, el nmero de pines, caractersticas especiales
como convertidores A/D, temporizadores, inte-
rrupciones, etc. Como un ejemplo de esta gran
vari edad, l a f ami l i a de mi crocont rol adores
68HC05 posee ms de 100 miembros. Como el
tema es tan amplio, en lecciones posteriores trata-
remos principalmente la familia 68HC08, que es
la ms indicada para iniciarnos en esra tecnologa
y haremos una breve descripcin de las familias
68HC11 y 68HC12.
Esta es una de las familias de microcontrolado-
res ms populares en el mundo, con ms de 2
billones de unidades vendidas. Posee una ven-
taja adicional y es la compatibilidad de sus pro-
gramas con l a fami l i a HC08, l o que permi te
hacer migracin de diseos hacia dispositivos
de ms alto rendimiento de una manera fcil y
rpida. Cuando se especifica una referencia en
particular, sta puede sufrir algunas varianres y
an as corresponder a un di sposi t i vo 100:
compati bl e. Por ej empl o, hay un mi crocontr--
l ador 68HC705KJl , ot ro 68HC805KJl y or: .
68HC905KJ1. La di ferenci a radi ca en que :
pri mero
(705)
ti ene memori a de programa ti r,.
EPROM, el segundo (805)
memori a de prosr.-
ma ti po EEPROM y el tercero (905) memor-.
FLASH. Lo que s queda claro es que existe u:;
gran variedad de referencias para escoger; es:-
i mpl i ca que el di seador debe estudi ar a fonc:
para decidirse por la ms adecuada. En la figu-
ra 5.1 se muestra el di agrama de pi nes de u:--:
de estos mi crocontrol adores.
RESET
OSCl
OSC2
PB3
P82
VDD
VSS
PA7
tR0/i /PP
PA(]
PA1
PA2
PA3
PA4
PA5
PA6
Figura 5,1 Diagrama de
pines
del 68HC
Los aparatos en que se pueden enconr
estos microcontroladores son muy variados r-
ramas bien diferentes. Estas categoras inclur
dispositivos para aplicaciones auromorrices, p
ductos de consumo, comuni caci ones, comF
tadoras y apl i caci ones i ndustri al es, enrre orr
A i onti nuaci n haremos una breve descri pci c
de al gunas subfami l i as o di vi si ones que ti ene
fami l i a HC05.
Es un di sposi ti vo de propsr
general cuyas pri nci pal es ventaj as son un
deroso tempori zador y una memori a para
tos tipo EEPROM de 256 posiciones. Or:
caractersticas incluyen memoria de progra
desde 4K hasta 32K, memori a RAM desde 1
hast a 528 byt es, S canal es A/ D, comuni caci ,
seri al no si ncrni ca. erc.
Son el ementos
propsito general cuya principal venta.ia es
temporizador de l6 bits, el cual est acompa
do por un mdulo de captura y un mdulo
ts--
#
&t,:
curco
prctico
sobre Microcontroradores
I t - l r I r
)0o/o
ttro-
otro
e el
. ti po
0gra-
nori a
e una
;
esto
iondo
figt-
uno
y1c705KJ1
rcontrar
idos
y en
rncluyen
ices, pro-
comPu-
ue otras.
scri pci n
,e ti ene
l a
propsi t o
)n un
Po-
r para
da-
res.
Otras
Programa
desde
176
.uni caci n
rnentos
de
ntai a
es su
acomPaa-
mdulo
de
:rmparaci n. Adems, ofrece tamaos de me-
::oria de programa desde 4K hasta 16K, que lo
:.i p ac i tan p ar a r ealizar tareas bastan te co mplej as.
losee interfaz de comunicacin no sincrnica SCI
S e r i a I C o mmunicatio ns In te rfac e), con velocidad
:.' ustabl e por programa desde 75 Hz hasta 131
l{Hz; tambin incluye una interfaz SPI (Serial
?:riferical Interface) de 4 hilos y alta velocidad.
lI u,atchdog timer o circuito de vigilancia tam-
:in es una de sus caractersticas importantes.
Estas son l as fami -
-:.
de ms baj o costo y vi enen en encapsul a-
i os de 20 y 16 pi nes. El t amao de su memo-
: i a de programa va desde 0, 5K hast a 2K, con
::emori a RAM de 32 hasta 128 bytes. El mi -
: : ocont rol ador 68HC705KI I es el ms eco-
: mi co de t odos.
Es una familia de microcontrolado-
:=s de propsito general de 28 pines, poseen me-
::roria de programa desde 2K hasta 8K con me-
roria RAM desde 96 hasta I92 bytes.Tienen co-
::runicacin serial no sincrnica, temporizador
te 16 bits con mdulo de captura y de compara-
:in, convertidor A/D de 8 bits con 4 canales de
=ntrada y capacidad de manejar alta corriente en
"Jqunos
pi nes.
Su pri nci pal caractersti ca es que
rosee un controlador para manejar una pantalla
ie cristal lquido o LCD, con un tamao que va
j:sde
8 caracteres por 4 filas hasta 16 caracteres
:or 60 filas. La memoria de programa va desde
-,.6K
hasta 24Kcon memoria RAM de 32haxa
-68
bytes.Incluye temporizador de 16 bits con
::dulos de captura y comparacin, comunica-
-i n
seri al si ncrni ca v no si ncrni ca.
:'ros
microcontroladores permiten una fcil mi-
=aci n del cdi go desde el HC05, poseen una
-.
-locidad
interna hasta de 8 MHz, una pila de
--
bits, instrucciones de multiplicacin y una
:::emoria de 64Kpara programa y datos; su dise-
--'
mi ni mi za el consumo de potenci a. Hay ver-
:-,rnes con memori a FTASH y EPROM. En l a
foura
5.2 se muestra el diagrama de pines de
*:o de estos microcontroladores.
Figura 5.2 Diagrama de pines del 68HC908JK3
Las principales subfamilias de la HC08 son:
La principal caracterstica de esta
subfamilia es que incorpora un controlador de bus
multiplexado que permite una avanzadacomuni-
cacin serial. Una aplicacin tpica de este siste-
ma est en los automviles. donde muchos mi-
crocontroladores se pueden comunicar sobre un
bus de uno o dos hilos para el diagnstico de cada
una de las operaciones del vehculo con un riesgo
mnimo de interferencia o ruido en los datos.
Esta subfami l i a conti ene una i n-
rcrfaz CAN. sta es un protocolo muy popu-
l ar en redes de automati zaci n i ndustri al y re-
des automotri ces.
Esta familia es muy recomendada
para aplicaciones de propsito general, cuenta
con memoria FIASH, convertidores A./D, puer-
tos seriales sincrnicos y no sincrnicos, PLL,
temporizadores y P\7M.
Esta subfamilia brinda unas poderosas
caactersticas y es especial para aplicaciones de pro-
psito general donde se requieran diseos de bajo
costo. Se encuentran disponibles en encapsulados de
20y28 pines, memoria FIASH o ROM, conver-
sores A"/D, entre otros. las versiones
JK,
por ejem-
plo el 68HC908JK3, son parte de ella
Estas subfamilias incorporan
un sistema avanzado de P\WM de 6 canales y 12
bits, convertidores ND y puertos seriales, que las
hace ideales para el control de motores trifsicos.
Esta subfamilia posee integra-
dos con memoria FTASH de 2 hasta 8Kbytes, 196
bytes de memoria RAM, un temporizador de 2
l B01
VSS
OSCl
OSC2 / PTA6
VDD
PTBT
PTB6
PTB5
PIDT
PTD6
PTEO
PTBl
PTB2
PTB3
PTB4
curso prctico
sobre Microcontrotadores
&<t't
#
Los tnict
canales y 16 bits, cuatro canales de conversin
A./D, interfaz de comunicacin serial no sincr-
ni ca y ms de 13 pi nes I/O.
:..-:; :1
:,1
;1irii'= l. Fsa subfamilia cuenta con 2K de
memoria FIASH progmmable dentro del sistema, I 28
bytes de memoria RAM, un temporizador de dos ca-
nales y 16 bin, y un volaje de operacin de 1.8 V
i i
';+,r+l,i, 'iilX t
Esta es una familia de microconuoladores de 8 bits
de muy alto rendimiento, su arquitectura es compa-
tible con la HC05 y su programacin es compatible
con la familia de microcontroladores de 16 bits
68HCl2; esto hace que la migracin de diseos de
una familia a oua sea bastante npida. Dentro de sus
caractersticas ms sobresalientes se encuentran:
.
Ha sido optimizada para un bajo consumo de
potencia
.
Posee un sistema de interrupciones muy avanzado
.
Muchos de sus mi embros poseen memori a
EEPROM
.
[s ultimos miembros de esta familia incluyen un
coprocesador matemtico con Unidad Aitmtica
Lgica (ALU) de 16 bits para rpidas operacio-
nes de multiplicacin y divisin
.
Un registro acumulador de 16 bits, o dos de 8 bits
.
Seis modos de direccionamiento
I familia 68HC11 posee un miembro llama-
do 68HCl lE9, el cual fue el primer microcontro-
lador en incorporar memorias EPROM y EE-
PROM en el mismo circuito integrado; adems,
incluye otras cuactersticas como son 12K de me-
moria EPROM, 512 bytes de EEPROM,5I2 bytes
de RAM, interfazSCl, convertidorA/D de 8 cana-
leslS bits y 38 pines de entrada./salida. Este micro-
controlador es muy utilizado por los experimenta-
dores en robtica. Dentro de los 68HCl1 se tie-
nen seis principales series de microcontroladores;
todas cuentan con puertos seriales SCI y SPI, me-
moria EEPROM yADC; ellas son:
'il,i
{i l i i.r Estaserieofreceunaalternativaecon-
mica para aplicaciones donde no se requieran fun-
ciones avanzadas. ni mucha cantidad de memoria.
VDD
PD5/SS
PD4lSCK
PD3/0Sl
PD2l MISO
PD1fi xD
PDO/RXD
tR0
XIRO
RESET
PC7/47 tD7
PC6/A6/06
PC5/A5/05
PC4tA4/D4
PC3/A3/03
PC2tA2/D2
PC1/A1/D' l
PC0/A0/00
XTAL
EXIAL
STBB/BW
E
STRfuAS
MOD/LIR
Figura 5.3 Diagrama de pines del 68HC"
' ' Fuel apri meraencombi narEEPRol I
yEPROM en un solo circuito integrado.
,1:-1i : 1
; Tienen buena capacidad de pines I
O, memori a RAM de l Ky un bus de 5MHz.
,.,;: i :
.
;
j . .
' .. Son di sposi ti vos muy pode-
rosos; el 68HC1l K4 y el 68HC1l KWl ofre-
cen alta velocidad, MMU (unidad
para el ma
nejo de memoria) y P\lM.
;:.ri
i i
;:
Esta seri e ofrece PLL, buena me-
moria y tres puertos seriales. En la figura 5.3 sc
muestra el diagrama de pines de el microcontro-
l ador MC68HC11A8.
. ; . : i
J; r i , - : 1i i q r t ?
t l - '
Este es un poderoso microcontrolador de I
bi t s y segn Mot orol a reune l o mej or d
68HCll y mucho ms. Entre sus princi
caractersticas se encuentran:
.
Bajo consumo de potencia y operacin a ba
voltaie
.
Memorias Flash y EEPROM en un solo c
cuito integrado
.Instrucciones
de lgica difusa (Funy Logicl
'qn
'{t
l-
#
&<1r,,
curco prctico sobre Mi*ocontrotadores
Et 68HC11
IROM
pines
I/
, \ l Hz.
r\.
Pode-
I-1 ofre-
a el ma-
l ena
me-
ua 5. 3
se
rocontro-
l or
de 16
nei or
del
rri nci Pal es
ci n
a baj o
rn sol o
ci r-
=t
Logic)
'
:
-.
: dat os de B 16 bi t s
.
: rue\' s i nstrucci ones adi ci onal es a l as ya
-
: . - . i das del 68HCl I
.
-
..:i d Ari tmti ca Lgi ca (ALU) de 20 bi ts
.
:.,' erri dor A/D de 8 canal esl S bi x
.
- - . r : \ \ f
Jos de l os pri nci pal es mi embros de l a fami -
.
. SHC12
son el 68HC8l 2A4
( A4) y el
:-C9l 2B32
(832). Ambos se basan en una
-
-
i L ms una serie de mdulos perifericos adi-
: :-: .s. EIB32fue el primermicrocontrolador de
.
r'i.-i con memoria FTASH EEPROM en su in-
-::
:. En la figura 5.4 se muestra el diagrama de
-
.=. de uno de estos microcontroladores.
Sus principales caractersticas son
--:
CPU de 16 bi t s, l K de RAM, 4 K de EE-
. a,.,r\f , dos i nterfaces seri al es (SCI) y una i nter-
-,-
,,:i al peri fri ca
(SPI), un tempori zador y con-
: : : l res A/ D,
Tmbi n posee una CPU de 16
: .
j l
K de fl ash EEPROM, l K de RAM, 768
'
,-,..de EEPROM, i nterfaces SCI y SPI, un tem-
:, :-udor de 8 canales, conversores A/D, y PVM
-:
--rtro
canal es.
CPU de 16 bi t s, al t ament e
-
: : pat i bl e con el HC11, ALU de 20 bi t s,
Pueo 0[C Puedo S
r yr F
' :
"
t j : "= - : :
2 t 3 ; ; r 5 A 2 ; i . 6 a
leorta
l 28K de f l ash EEPROM, 2K de EEPROM,
8K de RAM, dos conversores A/D, dos tem-
pori zadores de 8 canal es y 10 bi ts de resol u-
ci n, fi l tro pasabaj o, mdul os CAN, cuatro ca-
nal es P\WM, mdul o contador de 16 bi ts, i n-
terfaces seri al es SCI, SPI, I2C, etc.
Thmbi n se basa en una CPU de 16 bi ts. Su con-
junto
de instrucciones soporta lenguajes de alto
ni vel . La CPU de 16 bi ts es compati bl e con l os
mi crocontrol adores HCI 1, al gunas de sus pri n-
cipales caractersticas son:
'
Funci ones de procesami ento di gi tal de
seal es (DSP)
.
1 Mbyte de espacio para memoria de programa
.
1 Mbyte de espacio para memoria de datos
'
2 acumuladores de propsito general de 16 bix
.
3 registros ndice de 16 bits
'
Rpida respuesta ante interrupciones
.
Mdulo CAN
.
Versi ones de i 6, 20
v
25 MHz
.
Convertidor A/D
Las principaies variaciones de la familia HC16 son:
Es la ms adecuada para aplica-
ciones con mucha memoria y que utilicen co-
municaciones seriales y funciones anlogas.
'Esta
familia integra en los circui-
tos memoria FLASH o ROM, unidad de pro-
cesamiento de tiempo, tres interfaces seriales
(dos
SCI y un SPI) y convertidores A"/D.
Son de bajo costo, memoria
FIASH, mdulos seriales y funciones anlogas.
Estos poseen una arquitectura RISC de32 bits,
instrucciones de 16 bits, permiten la emula-
cin gracias a su arquitectura interna y poseen
un diseo para bajo consumo de potencia.
vss
voo
l=
Puedo t
Fgura 5.4 Dagrama de pnes det 6BHC91 2832
Tienen arquitectura de 32 bits, reloj a 40 MF{z,
curso prctico
sobre Microcontrotadores
&<t't &
&d
Lcs Lnlcrocotri-roLad.otcs LUtoi-oL oLa
unidad para el trabajo de operaciones de punto
flotante, interfaz para la emulacin, etc.
Estos microcontroladores estn diseados para
soportar lenguajes de alto nivel, cuentan con 16
Mbytes de memoria de programa, poseen un bus
dinmico de 8 16 bits, y vienen en versiones de
16MHz, 20MHZ 25 MHz. Las principales
subfamilias de esta categora son:
Son subfamilias especiales para apli-
caci ones donde se requi ere mucha memori a,
cuentan con puertos seriales y mdulos avanza-
dos de temporizacin; la 68CK338 cuenta ade-
ms con un reloj en tiempo real y un mdulo
temporizador de 20 canales. Las
se componen de dispositivos di-
seados para trabalar bajo condiciones atmosfe-
ricas complicadas, al igual que donde se requie-
ran altas velocidades, comunicaciones seriales,
redes CAN y sistemas sofisticados de adquisicin
desde mltiples fuentes.
Motorola y muchas empresas independientes de
desarrollo electrnico, tienen disponible una gran
variedad de herramientas para trabajar con estos
dispositivos. Entre ellas se cuentan, emuladores,
analizadores lgicos, programadores, tarjetas de
evaluacin, simuladores, compiladores en lengua-
je C, sistemas operativos en tiempo real, ensam-
bladores y depuradores. Todos estos element
permiten desarrollar, monitorear, probar y dep
--
rar su cdi go, para que l as apl i caci ones funci .-
nen bien y rpido. Existe una gran cantidad ;:
modelos, los cuales se ajustan a las necesidade.
presupuestos di sponi bl es, fi gura 5.5.
Al gunos de estos di sposi ti vos son de b
costo, pero a pesar de el l o ofrecen muchas ve :.-
taj as, como por ej empl o, capaci dad de emu..-
ci n en el ci rcui to de l a apl i caci n

aunq-:
esta tarea no se ejecute en tiempo real, es :-
gran ayuda para agilizar el trabajo y dismin:--
el ti empo de desarrol l o de l os programas. Ot:-
caractersti cas son:
Ambiente de desarrollo totalmente
bajo'!7'indows
.
Se puede examinar y modificar la memoria.
-
registros y los pines de entrada/salida
.
Acepta hasta 64 breakpoints (puntos de parac
.
Diferentes modos de ejecucin en pasos o de con.
.
Programa microcontroladores OTP y EPRCI
.
Conexin serial a la computadora
CEKIT S.A., como empresa lder en el d-
o y fabricacin de material didctico, tiene c
ponible un sistema de desarrollo muy econ:
coy fcllde utilizar para la familia 68HC908Ji
figura 5.6, crtya construccin, ensamblaje r-'-
lizacin sern explicados en detalle en uno dr
proyectos que forman parte de este curso.
Figura 5.5 Sistena de desanollo de Motorola para el 68HC05
(f
#
&ictr,i.
curco prctico sobre Microcontrotadorcs
Figura 5.6 Sistema de desarrollo CEKIT para el
l I OS
: Pu-
rcio-
dde
Jes
y
bai o
i ven-
nrula-
l nque
es de
ni nui r
. Otras
re
g,rado
t-ri a,
l os
: parada)
ie corrido
EPROM
:n el di se-
ti ene
di s-
<conmi -
ceoBJK3'
:hie Y
uti-
uno
de los
-rr
so.
,
-icrocontroladot
68HCgO8JK3
. / l
--\,,
Daremos un vistazo rpido a estas tres marcas
que tambin son ampliamente utilizadas, algu-
nas por su potencia, otras por su facilidad de
manejo. De cualquier manera, se constituyen en
excelentes opciones para el desarrollo de pro-
ductos electrnicos. El microcontrolador 805 1
de INTEL y las versiones que de l se derivan,
han obtenido en el medio industrial un xito
indiscutible, los ATMEL son muy utilizados en
aplicaciones mdicas y en redes de automatiza-
cin, y los BASIC Stamp son muy apetecidos
por la facilidad en su programacin.
A
*
,/,^\
Curso prctico
sobre Microcontroladores
&fr(frT"^
1
57
7
\,2
Los LnlcL'ar:oLri-Lolad.cr.es'lt iL LtrEL
y
Bllsl S'i-airLr
A comi enzos de l os
"nos
gO
I nt el propuso el
model o de mi cr ocont r ol ador denomi nado
8051. Est a pri mera versi n t en a t res vari an-
t es: el 8051 propi ament e di cho, dot ado de
una memori a ROM i nt erna programada en
f br i ca; el 8751, equi pado con una EPROM;
y el 8031, desprovi st o de cual qui er t i po de
memori a permanent e
(ROM). Est a pri mera
seri e se compl et rpi dament e con l a versi n
8052. A est e l t i mo mi crocont rol ador, muy
pareci do al 8051, se l e aadi un peri f ri co
(un tercer tempori zador) y 128 bytes de RAM
i nt erna. Tambi n exi st e una versi n del 8052
que cont i ene un i nt rpret e de l enguaj e BA-
SI C en su memori a ROM.
fu naci la famosa familia 51, la cual se com-
plet con otros miembros. Todos estos micro-
controladores se han concebido bajo un mismo
ncleo. Esta caracterstica motiv a varios fabri-
cantes (SIEMENS, MHS, OKI, PHILIPS, etc.)
a firmar acuerdos gracias a los cuales pueden fa-
Figura 6.1 Microcontroladores PHILIPS. Su ncleo es el 80:'
bricar microcontroladores basados en la mism.
arquitectura 8051 o a producir nuevas versione ,
mejoradas del mismo circuito integrado, inco:-
porndoles nuevos perifericos, figura 6.1.
, ] i "I i l
En la figura 6.2 se aprecia el diagrama de blc -
ques y el di agrama de pi nes del 8051. En .
se puede apreci ar l a CPU y una RAM i nt ern-
de 28 bytes; adicionalmente hay que disti:-
gui r aqu l a posi bi l i dad de di recci onami en: .
Gama de microcontroladores MCS-51 de INTEL (1991)
3+WDT
3+WDT
Versin NMoS
Posibilidad de salidas PWM, entradas con captura y \1:-
7 puertos
C/D 8U10 bfic 2 salidas Pl/M e interfaz de bus CA
S\ z/
^q9
,/ ,.$"
//
"\9'
\-
q.o.
80c451
80c592
80c528
Tabla 6.1 Gama de microcontroladores 8051 y algunos der ,z
4.r)
tt- ,/ <'<
3. 5 a 12
3. 5 a 12
1.,"
rZu)
%-) ffi
"#
Gama de mcrocontroladores SIEfUEilS (1991
8 entradas analgicas de I bits; 4 saldas PWM
4 entradas con captura; 4 niveles de prioridad de
interrupciones
1 2 entradas analgicasi I punleros de 1 6 ,,b
unidad aritmtca looca de 16 brffi 21 salidas PWM
5 entadas con capfura; 2 puertos serie; 4
de 16 ,r& WDT programable
RAM interna de 2.25 Kb convertidori/D de 1 0 ,lls
12y 16
16
16,20 y 24
$ &krr,I.
curco prctico sobre Microcontrotadores
W
TXD RXD
Todos los fabricantes
tienen disponibles los micro-
controladores 8051, 8052 v
t H
r*r,.rrionesCMOS..,.n-
EE
capsulado DIP de 40 pi-
E 8
nes o pati l l as. Al gunos l os
ofrecen en otros encapsu-
l ados. Dentro de sus pi -
nes podemos destacar el
pin M. el cual es una en-
trada que permite confi-
gurar el microcontrolador
para si stemas con buses
externos. Posee tres puer-
tos: el puerto 0 cuyas l-
neas son de colector abier-
to, el puerto 1 qui en po-
see resistencias internas de
pull-up, el puerto 2 tam-
a et 8051
r misma
rersiones
o. incor-
. 1.
ra de bl o-
51.
En
l
l f i nterna
ue
di sti n-
rnami ento
\
\
I
\
I
JrigldebusCN
l
Y
algunos
derivadw
Direcciones/Datos
Figura 6.2 Diagrama de bloques y de pines del 8051
Je memori as externas, en esos casos uno de
i us puertos debe uti l i zarse en esa funci n,
:ambiando su caracterstica como puerto a bus
: \ t erno. El 8051 cont i ene, ent re ot ros, un
ruerto seri al y dos tempori zadores de 16 bi ts.
l n l a tabl a l .l se encuentran al gunos de l os
:rodel os ms representati vos de esta fami l i a.
bi nconpul l -upy el cual es uti l i zado durante el
acceso a la memoria externa. Por ltimo est el
puerto 3 que posee funciones adicionales as:
'
P3.0 RXD entrada de interfaz serie
'
P3.1 TXD salida de interfaz serie
.
P3.2INTO entrada para interrupcin externa
'
P3.3lfl.nttada para interrupcin externa
'
P3.4 T0 entrada de contador para el tempori-
zador 0
.
P3.5 Tl entrada de contador para el temporiza-
dor 1
'P3.6
\7'-R salida de escritura de la memoria
externa
.
ffi salida de lectura de la memori"."r.rn"
En una leccin posterior explicaremos en de-
talle este microcontrolador.
i*;; i
qr:tr;r
:' fi I firi{ir*$ Arfr4HL
Los microcontroladores ATMEL, figura 6.3,
han teni do una gran acogi da en el mercado;
de el l os se pueden dest acar t res f ami l i as, l a
pri mera est basada en el 8051, l a segunda
es l a AT91 ARM Thumb y por l t i mo, l os
AVR. Veamos ahora un poco de cada uno de
est os gruPos.
T2 P1. 0
TzEX P1. 1
P1. 2
Pl . 3
Pl . 4
Pl . 5
P1. 6
P1. 7
RST
RXD P3.O
TXD P3.1
ItrlfO PS.Z
mT]
ps.
T0 P3.4
T1 P3.5
wR
p.0
no :.2
TAL 2
XTAL 1
VSS
vcc
PO.O ADO
PO.1 AD1
PO.2 AD2
PO.3 AD3
PO.4 AD4
PO.s ADs
PO.6 AD6
PO.7 AD7
fupp
ALVPMG
PSEN
P2.7 415
P2. 6 414
P2. 5 Al 3
P2.4 A12
P2. 3 A11
P2.2 A10
P2.1 A9
P2.0 A8
PO P2 P1 P3
curco prctico
sobre Microcontrotadores
&kt
,.t
#
Lcs LnlcrccLrtrcld-ctes tl{fEl, lfLtLEL
y
L:-ISL St-anir
Figura 6.3 Microcontroladores ATMEL AVR
ATMEL Ofrece una lnea de microcontrolado-
res basados en l a arqui tectura 8051, con memo-
ria de programa FLASH dentro del circuito in-
tegrado, al igual que versiones OTP.
Los microcontroladores Al:9 1 son microcontro-
ladores de 32 bix lo que permite el desarrollo de
protocol os de comuni caci n, compresi n de da-
tos y control. Cuando se construye un producto
electrnico alrededor de un ncleo ARM se ga-
rantizala durabilidad v calidad del mismo.
L,os microcontroladores AI91 son muy apete-
cidos para aplicaciones de bajo consurno de potencia
y otras en tiempo real; se han hecho aplicaciones
muy exitosas en automatizacin industrial, disposi-
tivos MP3, productos para la adquisicin de datos,
equipos mdicos, GPS y sistemas de redes.
La serie Af91 cuenta con un amplio con-
junto de herramientas de programacin de alto
nivel, como compiladores de lenguaje C, emula-
dores y sistemas operativos en tiempo real.
Son microcontroladores de 8 bits cuyas instruccio-
nes se ejecutan en un solo ciclo de mquina. Cuen-
tan con osciladores internos, temporizadores, UAR
-
SPI, resisten cias de pu I l-up, P\X44, ADC, compar. -
dores anlogos, etc. Dentro de los ms representa:.-
vos estn los ATtiny 10, 1 1 y 12, microcontrolad--
res FLASH de 1 K de memoria de progralna, 64 h:,
de RAM y programables dentro del circuito.
La empresa Parallax Inc. produce estos micr-
control adores que son muy potentes y pose.
unas herrami ent as de programaci n que i .
hacen muy Fci l es de manej ar. Con el l os el di s.
ador no requiere de conocimientos avanzaC'.
en el ectrni ca di gi tal , ni en mi croprocesador.
ni en el desarrol l o de programas en l enguaj e e .
samblador, entre otros. Por esta razn estn sie :
do ampl i amente uti l i zados por estudi antes d.,
de el col egi o hasta l a uni versi dad, por afi ci or-:
dos, tcni cos e i ngeni eros de di ferentes ramas
adems, se han popul ari zado mucho en el ca:
po de l a robti ca experi mental .
Los BASI C St amp son pequeas comF-
t adoras const rui das en una t arl et a de ci rcu. :
i mpreso, f i gura 6. 4 y st pri nci pal caract e: .
t i ca es que ej ecut an programas escri t os en
-
l enguaj e muy si mi l ar al t radi ci onal l engu"
BASI C. l l amado PBASI C. Su f orma de r.
baj o es muy si mpl e: segn el ci rcui t o qu.
qui ei a cont rol ar, el di seador escri be su p:
grama en l a comput adora, l o compi l a y l o . .
va haci a el mi crocontrol ador a travs de
cabl e de conexi n que se ha preparado p:
vi ament e. El mi crocont rol ador reci be di c:
i nst rucci ones y l as al macena en una memc
RESET
PDO
PD]
XTAL 2
XTAL 1
( r NT0) PD2
PD3
(T0) PD4
PD5
GND
_^^.
r t I Tt )
(XTAL 1) PB3
(XTAL 2) PB4
GND
VCC
PB7 I SCK)
PB6 (t\4tS0)
PB5 ( t \ 4t S1)
PB4
PB3
P82
PB1 ( Al Nl
)
PB0 ( At N0)
PD6
VCC
PB2 {T0)
PBr ( t NT0/ A| N1)
PBO ( At N0)
E-
#
&kro.i.
curso prctico sobre Microcontrotadores
Figura 6.4 Microcontroladores BASIC
"<:ar
.\RI,
:rPara-
3ntati-
olado-
* hytes
mtcro-
Poseen
1ue
l os
el di se-
Lnzados
;adores'
,rai e
en-
n si en-
rres des-
J' i ci ona-
rmas
y,
, el cam-
compu-
ci r cui t o
rract er s-
: os en un
l enguaj e
a de t ra-
t o que se
)e su
Pro-
[ a v l o l l e-
i s de un
rado
Pre-
rbe di chas
L memor i a
. . .
. 1e donde l as l ee para ej ecut arl as
, _ . . - : ] ent e.
-
, : \SIC Stamp I y II i ncl uyen un mi cro-
---
.=r,rr de l a fami l i a Mi crochi p o Sceni x, el
-.-,
::rr :rabado previamente con un interpreta-
-
'
:: , rj i qos que Ie permi te tomar l os datos que
.: -
.-. r-rrdo desde l a computadora y ej ecutar l as
--:
-:)
;orrespondi entes. Thmbi n poseen una
:
--
. ia EEPROM serial donde se almacena el
-
:--:r.1 reci bi do y que se debe ej ecutar; un r-
---
-
-
.,: Je i'oltaje, su respectivo circuito oscilador
-
-.
,:sema de reinicializar (reset)
muy eficiente.
.'s BASIC Stamp han evolucionado rpida-
-:r.r:
desde su creaci n. El pri mer model o di s-
:, .-:ie. conocido con el nombrede BASIC Stamp
:-.:-emente, posee un PIC16C56 como chi pi n-
' : : : : : r ador
y una memor i a EEPROM ser i al
' -Ci 6
donde se al macena el programa. Este si s-
-::-.,.
i ncl uye un conector para batera de 9 vol -
-
,. Jonde se debe conectar la alimentacin ex-
-:::.-r:
tambin incluye un rea de circuito impre-
. .:5re para hacer prototipos y, por supuesto, los
: :.-s donde se conecta el cable que viene desde la
: :rputadora y a travs del cual se descarga el pro-
:..:ra que ha escrito el usuario. Este cable se co-
:-:a al puerto paralelo de la computadora. En la
-sua
6.5 se muestra este modelo de BASIC Stamp
-
:. su respectivo cable de programacin.
=
' : e
mi cr ocont r ol ador pr esent un avance
-ranci al
respect o a su ant ecesor ya que est
Figura 6.5 Modelo original del BASIC Stamp con su cable de
programacin
l r r 11- l r .
const rui do con t ecnol og a de mont aj e super-
f i ci al , l o que si gni f i ca un ahorro de espaci o
muy i mport ant e en l a apl i caci n f i nal . En l a
f i gura 6. 6 se muest ra su aspecro f si co. Como
se puede apreci ar, posee un ci rcui t o i nt egra-
do i nt er pr et ador basado en un PI C| 6C56 y
una memori a seri al , un regul ador de vol t aj e
que per mi t e al i ment ar el si st ema con una
f uent e de 6 a 15 vol t i os y un si st ema de reset
que rei ni ci al i zael f unci onami ent o del mi cro-
cont rol ador en caso de que l a f uent e del si s-
t ema cai ga por debaj o de 4Y.
Figura 6.6 BASIC Stamp I
Como se puede apreci ar en l a fi gura 6.7,
este si stema posee 14 pi nes organi zados en una
sol a fi l a; de el l os, ocho se pueden uti l i zar como
entradas o sal i das i ndi vi dual es, posee un pi n
de reset, una entrada para al i mentaci n con
fuente regul ada de 5V una entrada para al i -
mentaci n con fuente no regul ada de 6 a 15
vol ti os, pi n de ti erra, y l os pi nes de programa-
ci n a travs de l os cual es se comuni ca con l a
computadora. En l a fi gura 6.8 se muestra l a
confi guraci n del cabl e necesari o para l a pro-
gramaci n; ste se debe conectar al puerto pa-
ral el o de l a computadora.
Una alternativa muy 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 ali-
mentaci n, un ci rcui to i mpreso para montar
otros componentes y el conector para la respec-
tiva programacin. En la figura 6.9 se muesrra el
di seo de di cha tarj eta.
x BASIC
StamP
Curso prctico
sobre Microcontrotadores
&kl": #
&d
Los Lulctacotri-t
vttl Entrada de alimentacin no regulada
Acpnf do A-16 Vnfl
GTID Tierra
PC0 Conectar al
pin 1 1 del
puerto paralelo
para programacin (BUSY)
PGI Conectar al pin 2 del puerto paralelo
Dara orooramacin lD0)
UDD 5 voltios de entrada o de salida. Si se
aplica una fuente no regulada al pin
VlN, en este
pin
se obtienen 5 voltios.
Si el pin VIN se deja al aire, se debe
conectar aou la fuente de 5V del sistema
RES Reset de entrada/salida. Cae a un nivel
bajo cuando la fuente de +5V est por
debaio de 4V.
PO.HTPines de entrada salida de propsito
general. Pueden manejar 25 mA en
modn snrrrce
Figura 6.7 Distribucin de pines del BASIC Stamp I
En lo que respecta a la programacin del mi-
crocontrolador, se deben tener en cuenta varios
aspectos. El primero, tiene que ver con el progra-
ma (sofiware) que se ejecuta en la computadora y
que permite hacer todo el desarrollo de la aplica-
cin. Este es un programa diseado por Parallax y
es muy similar a los editores de texto sencillos. En
este sistema, se escriben las instrucciones para la
aplicacin particular

mediante unos comandos
definidos por combinaciones de teclas especiales,
se puede compilar el programa, revisar la sintaxis
y descargarlo hacia el microcontrolador.
Figura 6.8 Cable de programacin del BASIC Stamp I
Otro aspecto importante de la programacin
es el conocimiento que se debe tener sobre la ca-
pacidad de memoria 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 ltima est el con-
trol de los pines de entrada/salida y de las varia-
bles que se utilicen dentro del programa.
Como di j i mos anteri ormente, l a caracters-
tica ms importante de los BASIC Stamp es la
posibilidad de ejecutar programas en un lenguaje
muy parecido al tradicional BASIC. Se trata de
un lenguaje desarrollado por Parallax y que se
denomi na PBASIC. Con base en esto, el di se-
ador de aplicaciones puede utilizar muchas he-
rramientas de programacin que son difciles
de conseguir cuando se trabaja con microcon-
troladores corrientes, los cuales son programa-
dos en lengua.ie ensamblador.
Dentro del grupo de instrucciones se encuen-
tra la posibilidad de hacer ciclos condicionales.
de generar sonidos, de hacer lecturas de botone
o pulsadores, de medir tiempos o de generar pul-
sos con una sol a i nstrucci n, etc. Como se pue-
de aprecia son instrucciones muy poderosas \-
que disminuyen notablemente el tiempo de de-
sarrollo de una aplicacin.
j r : : i l
. : '
-
l L! ! l l
ste posee el mayor nmero de caractersticas es-
peciales. Su aspecto fsico se puede ver en la figura
6.10. El chipinterpretador o controlador que po-
see es un PlCl6C57 y la memoria serial que reci-
be el programa que se va a ejecutar c
una24LCI6. Este sistema posee ademi
un sistema de resetbastante sofisticado',
una fuente de alimentacin regulada qu.
garantizan su correcto funcionamienr
an en diftciles condiciones.
Est diseado de tal forma que p-
rece un circuito integrado de 28 pinei
de los cuales 16 son programables corn.
BSl-lC Rev. B
I
E

if
E
q

o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
1 VIN
2 VSS
3 PCO
4 PCI
5 VDD
6 RES
7P0
8Pl
9P2
10 P3
11 P4
12 P5
13 P6
14 P7
#
&i<rr*
curso prctico sobre Microcontrotadores
L\ JUL Lr 1
ffiacin
)re la ca-
lor. Para
6
posi -
b.t,fts de
: el con-
las varia-
a.
rracters-
rmp es l a
r lengua.ie
e trata de
\' que se
r. el di se-
uchas he-
r di fci l es
ni crocon-
!rograma-
se encuen-
di ci onal es,
l e botones
enerar pul -
mo se
Pue-
,trderosas y
npo de de-
reristicas
es-
' en
l a fi gura
.1or que
Po-
ial que reci-
r eiecutar
es
osee adems'
s.-'t-isticado
y
reeulada
que
ci onami ento
i
)rn-Ia que
Pa-
dr 28
Pi nes,
nlebles
como
1
2
4
6
6
7
I
9
28
27
o
25
+
23
22
21
20
19
1B
17
10
11
12
Figura 6.9 Tarjeta para desarrollos con BASIC Stamp I
.
-
-.
,.J o sal i da; adems, posee entrada para una
-
, : :::c de al i mentaci n regul ada de 5V una fuen-
. -
: : l i ment aci n no regul ada de 6 a 15 vol t i os,
: , i e reset y pi nes de comuni caci n seri al que
:.rrran ni vel es de vol taj e RS-232. A travs de
: . liltimos se hace la programacin desde la
-
:t'r1dota y se puede establecer comunicacin
, r, trtros di sposi ti vos externos.
Como se acaba de menci onar, l a progra-
--, , i n
de est e di sposi t i vo se hace desde el
.
- r r r o
ser i al de l a comput ador a, f i gur a 6. 11,
-
: : t l renci a de l os dos model os ant eri ores que
:rr1can desde el puerto paral el o. Al i gual que
, 3 \ SI C St amp I , en est e caso t ambi n se di s-
: : re de una t arj et a para el desarrol l o de pro-
-
::pos (carri er bonrd), en l a cual se pueden
-: r. r. rrol l ar
apl i caci ones part i cul ares a l a vez que
Figura 6.11 Distribucin de pines y cable de conexin ttlr:#;i
se di spone de conexi n para l a fuente de al i -
mentaci n y para el cabl e de programaci n.
En l a fi gura 6.12 se puede ve r l a tarj eta de pro-
t ot i pos del BASI C St amp I I .
En lo que respecta a su programacin, este dis-
positivo tambin posee su propio programa de de-
sarrollo donde el diseador crea sus programas, los
compila y los descarga hacia el microcontrolador.
Inclusive, existe un ambiente de desarrollo especial
para trabajar bajo Vindows que presenta las facili-
dades propias de este tipo de aplicaciones.
La memoria de este microcontrolador es mu-
cho ms amplia que la de sus predecesores; en la
memoria de programa cuenta con2048 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 DTMB comunica-
ciones seriales RS-232 y P'S7M, entre otros.
Un aspecto muy importante que se debe te-
ner presente a l a hora de i ni ci ar un di seo 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-
ci r, si en un PIC con rel o
j
de 4MHz se ei ecutan
un mi l l n de i nstrucci ones cada segundo, en
Figura6.10BAS\CStamp //
un BASIC Sramp, que posee
I
1tr-o
cristal
curso prctico
sobre Microcontrotadores
&rc1tr"'.
(( 63
)
\q
Puerto serial PC
SOUT VIN
SIN VSS
ATN RTS
VSS VDD
p0 p15
Pi ?n4
N
P2
a
P13
P3 P12
p4 Pl l
P5 P1O
P6 P9
P7 PB
Los LLL[crocoLr-t-roLad-oru=s LL\LIEL, lt.l LVLEL t' l-:ll.Sl StaLntl
Figura 6.12Tarjeta para Desarrollos con BASIC Stamp ll
de 4 MHz, se eiecutan alrededor de 2000 ins-
trucciones. Esto se debe a que cada instruccin
del programa en PBASIC, se debe ejecutar en
varias instrucciones de ensamblador del chp in-
terpretador, que hace parte del BASIC Stamp.
Las versiones ms actualizadas de los BASIC
Stamp son el BS2p24-ICy eIBS2p4O-IC, quevie-
nen en presentaciones de 24 y 40 pines, figura
6.13. Presentan toda una serie de nuevas funcio-
nes y comandos (55 distintos) y es muy interesan-
te saber que las pistas de su circuito impreso estn
hechas en oro para mejorar su conductividad.
Las principales caractersticas las podemos
apreciar en la tabla 6.2. f,horaposeen un micro-
controlador SCENIX SX48AC a 20 MHz, en
lugar del PIC y manejan fcilmente los protoco-
los I2C, DALLAS 1-\7IRE y mdulos LCD.
Hasta aqu hemos vi sto l os aspectos gene-
ral es de al gunas de l as pri nci pal es fami l i as de
mi crocontrol adores. Ahora estamos l i stos para
i ni ci ar un estudi o detal l ado, si gui endo el or-
den de fami l i as que se ha mostrado en l as pri -
meras l ecci ones, sobre l a estructura bsi ca, el
funci onami ento y el manej o de cada una de
l as partes y mdul os que hemos enunci ado an-
teri ormente y que forman parte de un mi cro-
control ador.
Mucha
dedi caci n y xi tos, son
nuestros deseos para usted, que se i ni ci a ahora
de l l eno en este maravi l l oso mundo de l os mi -
crocontrol adores!
Figura 6.13 Microcontroladores BASIC S:=-:
Presentacin 24 o 40 pines
Temperatura del ambiente 0 - 70 C
Microcontrolador SCENIX SX4SAC
Velocidad del procesador 20 MHz
38 bes
8 x 2K bytes
16132
40 mA en modo RUN.
400 uA en modo SLEEI
RAM
EEPROM
Pines I/O
Consumo de corriente
Tabla 6.2 Caractersticas ms representativas de los
BASIC Stamp BS2p y
CEKIT S.A. tiene disponibles una serie i.
entrenadores y tarjetas para prcticas con es::
tipo de microcontroladores, gara 6.14.
I-_
$ &kt".i.
curco
prctico sobre Microcontrotadores
&d
Tabla 6.14 Entrenador
para
BASIC Stamp ll,
/\
\.i/
StamP
;2p40.
_-\ y
LEF-P
s 1uev]s
352P40.
r i e de
n este
Con esta leccin iniciamos el estudio detallado
de los principales componentes de cada una de
las familias de los microcontroladores mencio-
nados anteriormente en cuanto a su esrructura
elctrica y funcionamiento. Empezamos con los
circuitos de oscilacin y de reiniciilizacin (rott)
de los PIC, dos elementos b:sicos para su fun-
cionamiento cuyo conocimiento es esencial para
el desarrollo de los circuitos de aplicacin. Thm-
bin es muy importante conocer como cambian
los parmetros de un sistema dependiendo de la
configuracin de estos dos circuitos.
c:to K-202
curso prctico
sobre Microcontrotadores
&in.t
#
EL usriluor t, eL clLL'uil-u d.c relLLicil[:loll
(Liu.sL'[)
u=n Ls L(Liu.roruntrLid-tL-es PL
Todos los microcontroladores requieren de un
sistema que genere una seal de reloj que le per-
mita a la CPU ejecutar secuencialmente las ins-
trucciones. Ese sistema se puede conectar exter-
namente al microcontrolador a travs de pines es-
pecficos destinados para tal fin formando un pe-
queo circuito externo cuya configuracin y el
valor de sus componentes determinan la veloci-
dad con la que el microcontrolador ejecutar el
programa que tiene almacenado en su memoria.
Cadavez que el microcontrolador se energi-
za debe esperar un tiempo para que esa oscila-
cin se estabilice y l pueda empezar a funcionar
correctamente. Esos dos importantes factores son
los que estudiaremos en esta leccin: como con-
figurar los circuitos de oscilacin y el circuito de
reinicializacin
(reset). En trminos generales; esta
teora es vlida para todos los microcontrolado-
res de esta marca; en el caso de que algun mode-
lo tenga requerimientos especiales al respecto, lo
estaremos explicando en su debido momento.
En el i nteri or de l os mi crocontrol adores PIC
exi ste un ci rcui to de osci l aci n que permi te ge-
nerar l a seal de rel oj necesari a para que todo el
di sposi ti vo trabaj e correctamente. Cada cuatro
perodos de esa seal de rel oj se genera un ci cl o
de i nstrucci n, en otras pal abras, se ej ecuta una
i nstrucci n, fi gura 7.1. En estos mi crocontro-
ladores existen varios tipos de configuracin para
el osci l ador con el cual va a funci o-
nar l a apl i caci n, al gunas ms rpi -
das que otras; esa confi guraci n se
puede establ ecer dentro del progra-
ma o manual mente en el momento
de programar el di sposi ti vo.
[.os tipos de oscilador ms utilizados son:
.
LP (baj a potenci a): cri stal a baj a
frecuenci a. Es l a que menos co-
rri ente consume dentro de l as tres
opci ones de trabaj o con cri stal .
Ci cl o 1 Ci cl o 2 Ci cl o 3 Ci cl o 4
: :
Errrrionffi
Figura 7.1 Ciclo de instruccc'
.
XT (ganancia media): Cristal/Resonador.
.
HS: Cristal/Resonador de alta frecuencia. E,
la que permite trabajar ms rpido y por lo tantc
la que ms corriente consume.
.
RC: Red RC externa. Es una solucin mu'
econmi ca.
.
INTRC: Red RC interna. Es la solucin ma,
econmica en que se puede pensar para el cir-
cuito oscilador. Cada que se vayaa trabajar co--
un mi crocontrol ador determi nado, se deb.
mi rar en su hoj a de datos si ti ene di sponi bl .
este tipo de oscilador.
En el interior del microcontrolador existe u:
circuito que, dependiendo de la seleccin hech.
entre LB XT y HS afecta su ganancia interna-
debido a eso se presentan los distintos rangos c:
frecuencia. Entre ms alta sea la frecuencia de ope-
racin del microcontrolador, ms alto ser su cor--
sumo de potencia. Este es un concepto fundamer-
tal dentro del desarrollo de proyectos con micrc-
controladores, por lo tanto es aconsejable elegir
-
oscilador que proporcione la mrs baja frecuenc'
A l a l gca i nterna
I
I
I
I
I
I
OSCl r
XT1:
Crstal o resonador cermi co
- - - -prcxxx - -
Figura 7.2 Conexin del oscilador basado en crstal 0 resqnad1r cerff :
#
&rrr,.i.
curso
prctico sobre Microcontrotadores
.---.d
'struccn
L-) r.
i i a.
Es
.r-l t[tO
l n muy
i n
ms
:.r el ci r-
\ l l ar con
.e debe
; poni bl e
a\l ste
un
.on
hecha
:nterna
y
;angos
de
::a de oPe-
:: su con-
-.:ndamen-
:.-,n
micro-
rle elegir
ei
iecuencia
I
I
I
I
r rnterna
: . . XXX
'+:ndor cermrc
a;
Figura 7.3 Aspecto fsico de un cristal comn
.ile con el que nuestra aplicacin y los disposi-
j
i\ternos, puedan funcionar correctamente.
--
; st e caso, para generar l a seal de rel oj , se
-
: r; Corectar un pequeo ci rcui to conforma-
-
:or dos condensadores
(C1
y C2) y un cri s-
.
,
un resonador a l os pi nes OSC1 y OSC2
, i ::ri crocontrol ador qui enes se comuni can i n-
:-r.r.rrrente con un ci rcui to l gi co que genera
,i l aci n
,
Frgara7.2.
-.rdo
se hace uso de cristales, estos se pueden
.,:quir en una gran variedad de encapsulados y
--
-
encias que por lo general vienen marcadas en
- --lpsula
exterior, figura 7.3. Cuando se confi-
- -
. el modo de operacin en XI LP o HS, el
-:ocontrolador
puede tener una fuente externa
-:
,
,s
pul sos de rel oj conectada al pi n OSC1. En
:gura 7.4 se aprecian algunas posibles configu-
-.
res de elementos externos que el lector pue-
-:
:rs?/at para generar la seal de frecuencia
---lla.
Estas configuraciones constan princi-
-
-
-,:nte
de compuertas lgicas, resistencias y
-
:-nsadores.
-uando
el ci rcui to de rel oj reci be l a al i -
: . rci f l , el osci l ador empi eza a t rabaj ar,
'
.r real i dad es que no l o hace de manera
-
-
j i ata;
requi ere de ci erto ti empo de esta-
, : i n. El t i empo requeri do para que el
. . dor opere normal ment e depende de
t l - UL Lr 1
f act ores como l a cal i dad del cri st al , l a t empe-
rat ura del si st ema, l os val ores de l os condensa-
dores uti l i zados, l a frecuenci a del cri stal o re-
sonador ut i l i zado, l a sel ecci n del modo de os-
ci l ador, el rui do del si srema, erc. , f i gura7. 5.
La sel ecci n de l os el ementos que compo-
nen el ci rcui to de osci l aci n no es al azar. Los
val ores de cada uno de esos el ementos al tera l a
sal i da fi nal del ci rcui to; por eso se debe hacer
una cui dadosa sel ecci n de estos el ementos re-
ni endo en cuenta l a vel oci dad de ej ecuci n que
requi era l a apl i caci n que se est desarrol l ando.
Seal de rel oj desde
un si stema externo
NoTA {
,
Una resstenci a a tera puede usarse para di smi nui r el rui do
del sstema. Esto oui z i ncremente l a corri ente del si stema.
330 Kl )
Haci a otros
d i sposi ti vos
0. 1
F
XTAL
I
Figura 7.4 Conexin de diversos osciladores ertern0s
- ,nl ema
l
I
I
I
I
l
Haca otros
d i sposi ti vos
330 Ko
Curso prctico
sobre Microcontrotadores
&icW": #
&4
EL osciLauor
y
eL ciLcui[o uc= re=iLrie'iali:acln
Lteset
u=Lt Los Nticrocuttl-L'olad.ores LrL
MXmO VDD
del si st ema
Al i mentaci on del
si stema (VDD)
ilft
k+l
Ti empo para el nrci o de
operaci n del cri stal
Fisura 7.5 Compoftamiento det oscita"r, ,:i:#,,;!#:;2ifli
En las tablas I y 2 se aprecian los valores tpi-
cos para los condensadores Cl y C2 para trabajar
con un circuito basado en resonador
y en cristal.
Cuando se desarrol l en apl i caci ones que no
tengan requeri mi entos exi gentes de tempori -
zaci n, se puede uti l i zar un osci l ador RC ex-
terno como se muestra en l a fi gura 7,6. En un
osci l ador de este ti po, l a frecuenci a depende
di rectamente del val or de l a resi stenci a y el con-
densador
(Rext, Cext) y de l a temperatura. Si
l a resi stenci a Rext es menor de 2.2K,l a osci l a-
ci n puede ser i nestabl e o detenerse compl e-
tamente; si es demasi ado grande,
Por
ej empl o
1M, l a osci l aci n se hace muy suscePti bl e al
rui do y l a humedad.
Por eso es recomendable que Rext tenga un
valor comprendido entre 3K y 100K. En la tabla
3 se pueden apreciar las frecuencias generadas por
distintas configuraciones de la red RC.
Modo
i
Frecuenci a
I
r-
I
fabla 7.1 Valores tpicos de los
condensadores cuando se trabaia
con resonadores
Figura 7.6 Configuracin del oscilador RC externc
En realidad este circuito puede funcionar in-
clusive sin condensador
(Cext =
0) pero se reco-
mienda utilizar valores por encima de 20pF por
razones de estabilidad e inmunidad al ruido. Cuan-
do el condensador es muy pequeo o no existe, Ia
frecuencia de oscilacin puede cambiar brusca-
mente debido a capacitancias creadas externatnente
como por ejemplo, la creada en el trazado del cir-
cuito impreso.
La frecuencia del oscilador, dividida por 4, se
encuentra disponible como salida en el pin OSC:
y se puede utilizar para sincronizar otros dispositi-
vos que trabajen en paralelo en el mismo circuito.
En los microcontroladores PIC existe un pin de-
nominado frrfCln. Cuando este pin se lleva
"
un ni vel l gi co baj o, el PIC entra al estado d-
reinicializacin
(reset). En este estado todas la-'
salidas se apagarn y el reloj se desactivar. To-
dos l os nuevos mi crocontrol adores PIC
posee:-
c2
68 - 100 pF
15- 30pF
un filtro contra el ruido en el pi:-
trrrcI-n para detectar e ignora--
pul sos pequeos, razn que fac:-
l i ta l a i ncorporaci n de estos di s-
positivos en ambientes ruidosos :
contami nados.
Dentro del mapa de memc-
ri a exi ste una di recci n denom,-
nada vector de reset, en esta d--
Frecuencia
455 K'llz
2.0 MHz
4,0 MHz
8,0 MHz
16.0 MHz
c1lcz
?Jl -1l J9F
15- 68pF
15- 68pF
10- 88pF
10- 22pF
32 KHz
2m KHz
c1
68 - 100 pF
15- 30pF
150 - 200 pF
15- 30pt
15- 30pF
100l $z
2 tlHz
4 MHz
68
-
150 pF
15- i l l pF
15- l l pF
15 - :il} pF
t 5- 30pF
15- 30pF
15 - : 0
pF
15- 30pF
15 - : 10
pF
Tabla 7.2 Valores tpicos de los condensadores
cuando se trabaja con cristales
}"
d& &icm.i.
curco prctico sobre Microcontrotadores
&fl
1OrLA
ffi,*tr':+iftffiffi
|W.'*SI
"#E*k'i,*
t0 K 220 of 80 KHz
m*i':?'g+l$
-S
\,
' l N4148
f
neset
Tabla 7.3 Frecuencias de osilacin
pan
disfintos
valores de la red RC
H?ltp,on,r
Figura 7.7 Configuracin para utilizar el P)R
-=,-:i n
es donde el PIC empi eza l a ej ecuci n
:-- programa. Esta di recci n es l a 0 para l os
- -C
de medi o y al to rango y corresponde a l a
--:i ma
di recci n para l os PIC de rango baj o.
-
,: e
j empl o,
el vector de reset de un PIC16C54
. =: e l a di recci n 0x01FF. Cada
:: que el PIC entra, por al guna
-rJn,
en estado de reset, la CPU
:=- nicrocontrolador se dirige a esta
:.-;i ci n de l a memori a para i ni ci ar
-- :\-amente la ejecucin de todas
VOO
'.
insrrucciones del programa.
Figura 7.8b 1tro circuito para POR
controladores PIC, por las ventajas que ofrecen.
Analicemos cada uno de ellos.
Este estado de reset se origina en el momento de
detectarse un estado alto en la alimentacin. Para
aprovechar esta caracterstica, se puede conectar
una resistencia desde el pin MCLRhasta el volta-
je de alimentacin (VDD), figura 7.7. Esto u;e-
gura que cada vez que el sistema es alimentado
adecuadamente, el programa inicia su operacin
desde el punto exacto desde donde debe iniciar.
Figura 7.9 Diagrama de tiempo del inicio de operacin del oscilador
Figura 7,8a Circuito externo de
POR
exErn0
rar in-
3 reco-
pF por
Cuan-
riste,
Ia
brusca-
emente
del cir-
pr
4, se
n OSC2
lispositi-
circuito.
I
n pi n
de-
se lleva
a
stado
de
todas
las
n'ar.
To-
C poseen
, en el
Pi n
e i gnorar
que
faci-
estos
di s-
ruidosos
o
de memo-
n denomi -
en esta
di -
LXrSren vanas razones que
Pue-
::: motivar un estado de resetade-
-*-:s
del estado lgico bajo en el pin
::LR, el l as se conocen como ti -
:,-
'
de reset, y son: la reinicializa-
- -
r al encendido (Power On Reset),
.. reinicializacin por cada en la
--:rentaci n
(Brown Out Reset).
-'::bin
es importante anaJizar la
*:'-:ncia de inicio que presentan
., ?l C cada que se da un estado de
-r
.: \'a que all existen algunos re-
:--:ls que se han incorporado como
--=--rersticas
estndar en los micro-
MCLR
0scilador
Tiempo Ost
Tiempo PWRT
Reset interno
curco prctico sobre Microcontrotadores
&<tn.#
EL osciluar y
u=L ciLcui[o ur. reinidali:acin
Lieset-)
eLr Los ltLicL tl','aLtLclarj.oL es Lrl
Reset i nterno
Figura 7.10 Secuencia seguida al alimentar el sistema y et pin MLCR
conectado directamente a VDD
Cuando el dispositivo sale del estado de reset
(comienza
su operacin normal), los parmetros
de operacin del dispositivo (voltaje,
frecuencia,
temperatura, etc.) deben encontrarse dentro de sus
rangos normales de operacin; de otra manera el
microcontrolador no funcionar correctamnre.
El retardo originado con el POR permire que se
establezca un retardo lo suficientemenre largo para
que estos parmetros se normalicen.
En la figura 7.8 se aprecia un posible circuito
POR basado en una red RC y un diodo; recomen-
dable para un sisrema que posea una fuente de ati-
mentacin de baja rampa de crecimiento
Un circuito externo para POR slo se re-
quiere si el tiempo de Voo es demasiadc
lento. El diodo D ayuda a descargar rpida-
mente el condensador cuando VDD se des-
activa. Otra variacin de este circuito
-.
que evi ta probl emas en el arranQue s;
muestra en la figura 7.8b.
EI P\fRf es una caracterstica que se pued:
incorporar en el momento de grabar un prc-
grama en la memoria del microcontrolado:
Esto proporciona un retardo de aproxima-
damente 70 ms a la reinicializacin POR o .
la BOR. El PVRT se basa en un osciladc
RC interno dedicado. El microcontroladc:
permanecer en estado de reset mientras .
P\fRf se encuenrre activo. El retado proporciona.
do por el P\MRI le permite alvoltaje de alimenu.
cin Von alcanzar un nivel aceptable.
Este tempori zador proporci ona un rerardo c.
1024 ci cl os del osci l ador (de
acuerdo a l a er. .
t r ada en OSCI ) despus de que el r et ar i .
P\RT ha termi nado. Esto asegura que el o,-
ci l ador de cri st al o resonador se encuent ra oD. -
rando en su modo est abl e.
voo
cLn
P0R Interno
PWBT Time out
Ost Time out
Figura 7.11 Circuito 1 erterno de Brown out
voo
#
&kt*i.
curco prctico
sobre Microcontroradores
Figura 7.12 Circuito 2 erterno de Brown :,
nto.
iado
rida-
: des-
i t o
Y
ue se
Figura 7.13 Comportamiento del B1R
debe mant ener se en
sea el adecuado. El
una r ed RC ext er na
est e pr opsi t o.
l r r r l l r .
I l - t t t . r
Cacl a r. ez que el
pi n MCLR t ome un
ni vel al to, el proceso se
repi te automti camen-
te. Esa caractersti ca es
muy t i l , por ej empl o,
en apl i caci ones donde
se necesi t en si ncroni -
zar var i os mi cr ocon-
trol adores que trabaj en
en paral el o.
Si el vol t aj e f i nal
del si st ema no cumpl e
con l as especi fi caci ones
el ctri cas del mi crocon-
trol ador (l as cual es se
pueden hal l ar en l as
hoj as de datos del fa-
bri cante) el pi n MCLR
baj o hast a que el vol t aj e
uso de un ret ardo con
debe ser suf i ci ent e para
Dentro de los microcontroladores PIC exisre es-
teotro tipo de reset denominado Broun-out, eI
cualpuede ser habilitado o deshabilitado por el
usuario. Este permite llevar el PIC a un estado
de reset ctando el voltaje de alimentacin cae por
POR BFn
Bi t0
puede
m
Pro-
olador.
'orima-
ORoa
scilador
uolador
entras
el
orciona-
Iimenta-
,rardo
de
l al aen-
I retardo
1ue
el os-
: nrra
oPe-
figura 7.9 se observa la operacin del
: : . ^i ro OST en conj unt o con el P\ RT. Al l
--: ros
apreci ar como a medi da que el vol -
-
. \ -DD crece t ambi n l o hace l a seal en
-
. ' Rr a part i r de ci ert o ni vel el POR empi e-
-
: .. operaci n y el P\7RT se acti va durante
-
-
. . -mpo; cuando st e t ermi na, habi l i t a al os-
. : , , rr para que empi eze su operaci n. Para
'
: =i es de baj a f recuenci a est e t i empo de i ni -
:
-i ede
ser un poco ms l argo.
: . e debe a que el t i empo que t oma el osci -
-
: Je baj a f recuenci a para empezar a osci -
-'
:) mayor que el retardo del P' WRT. As, el
:-=ro tornzdo desde que el P\RT se acaba
-
: . : uando el osci l ador empi eza a osci l ar, se
-:
. : r' ri na t i empo muert o.
:. rrrolnnto de alimentar el microcontrola-
,: desarrol l a l a si gui ente secuenci a: pri mero
-:i :Cta
el POR; si est habi l i tado, se i nvoca el
--.T.
Despus de que termi na el ti empo del
. . 1 se act i va el OST, f i gura 7. 10.
No i mpl antados
Bi tT
bit 6:3 No implantados
bit
'1
POR: Bit de estado del reset Power-on
1
=
No ha ocurrido reset
por
Power-on
0
=
Ha ocurrido un reset Power-on
bit 0 BOR: Bit de estado del reset Brown-out
1
=
No ha ocurrido un reset Brown-out
0
=
Ha ocurrido un reset Brown-out
Figura 7.14 Registro PC0N
-J
de Brown
c-
Curso prctico sobre Microcontrotadores
&rt
&
/z:%3
EL osr:llauor
y
e=L t'ircuii-u uu. t'einlclall:adn
Liese[)
u=n Los LVLiuroi-:uniloLad"oL'es LrL
debaj o de un vol taj e determi nado (BVoo). Esto
asegura que el dispositivo no contine con la eje-
cucin del programa mientras se encuentre por
fuera del rango de operacin vlido. El reset
Brown-out es muy utilizado en aplicaciones de
lneas CA o en aplicaciones donde se conmuten cr-
gas y donde el voltaje puede caer temporalmente.
Algunos microcontroladores no poseen este
tipo de rset, paa los que lo poseen es necesario
ajustar el voltaje de Brown-out al nivel deseado.
Para este propsito, en las figuras 7.lI y 7.12 se
muestran dos ejemplos de circuitos externos que
se pueden implantar. En la figura 7.I3 se muestra
un diagrama de tiempo donde se ilustran los mo-
mentos en que se ori gi na una rei ni ci al i zaci n
BOR. Cada uno de ellos debe ser comprobado en
la prctica para verificar que cumplan con los re-
querimientos de la aplicacin.
En el caso del circuito 1 activar el reset cuan-
do Voo se encuentre por debaj o deYZ + 0.7.
Donde Vz es el voltaje zener. Al utilizar este cir-
cuito la configuracin Broutn Out Reset debe
deshabilitarse en el momento de la programa-
cin. Las resistencias se deben ajustar dependien-
do de las caractersticas del transistor.
EI circuito 2 es ms econmico pero menos pre-
ciso; el transistor
Ql
se desactiva cuando VDf
se encuentra por debajo de cierto nivel, de acuer-
do a Ia siguiente formula:
R1
VDD
* =
0.7
Rl +R2
En l os nuevos mi crocont rol adores PI C es pc-
si bl e detectar l a fuente de un estado de rese:
a travs del regi stro PCON. Este regi stro cor.-
t i ene un bi t de est ado que permi t e det erm--
nar que est ori gi nando el est ado de reset . Pc.
ej empl o, det ermi na si f ue un POR, un rei : .
ext erno, et c. Est e regi st ro l o podemos obse: -
var en l a f i gura 7. 14,
j unt o con l os est adc
de l os bi t s en el moment o que se ori gi nan l c
di st i nt os t i pos de reset . En l a f i gura 7. 15 : .
muest r a un di agr ama de bl oques genr i c.
sobre como i nt eract an l as di versos t i pos c:
condi ci ones que ori gi nan un est ado de res:
OSC 1 Pi n
F
Reset del
PIC
Figura 7.15 Esquema general de lostipos de RESET er :
microcontroladores
)
#
&<t,i.
curco prctico sobre Microcontrotadores
l
)
Pre-
VDD
cuer-
es
Po-
e reset,
:o con-
: rermi -
tet. Por
rn reset
obser-
est ados
nan l os
7. 15
se
enr i co
: i pos
de
le reset.
e RESET en lw
ntotadores
PIC
+
B
#
14
En esta leccin estudiaremos aspectos bsi-
cos de la estructura interna o arquitectura
de los microcontroladores PIC, tales como
Ia manera en que ejecutan las instrucciones
teniendo en cuenta su arquitectura bsica y
el funcionamiento de la CPU y la ALU.
,,*il#lll
r ll lr"lrllfrH{#3lr^..*
Curso prctico
sobre Microcontrotadorcs
&krr,.: dN
\f,
Los microcontroladores PIC poseen carac-
tersticas que los hacen muy competitivos den-
tro del mercado global de la electrnica. Entre
ellas se encuentran su arquitectura Harvard y su
reducido conjunto de instrucciones
(RISC: Rr-
duced Instruction Set Computer),veamos los pun-
tos ms.representativos de esta tecnologa.
Arquitectura Harvard
Este tipo de arquitectura se caracteriza por tener
la memoria de programa
(ROM) en un bloque
separado de la memoria de datos
(RAM). De la
misma manera, cada una posee su propio buspara
comunicarse con los dems elementos del micro-
controlador. los diseadores han aprovechado esta
caractersticas para implantar un bus de8 bits para
conectar la memoria de datos y un bus de ms de
ocho bits para ser conectado a la memoria ROM
donde se encuentran las instrucciones. De esta
forma se hace un uso ms eficiente de la memoria
de programa, porque ella puede estar optimizada
para los requerimientos de la arquitectura. Por esta
rczn, esta arquitectura permite un mejor manejo
de las instrucciones que la tradicional arquitectu-
ra von Neumann, en la cual el programa y los da-
tos se ubican en un mismo bloque, el cud se co-
munica mediante un solo bus.
Para ejecutar una instruccin, una mqui-
na de arqui tectura von Neumann debe real i -
zar uno o ms
(normal mente ms) accesos al
bl oque de memori a a travs de un bus de 8
bi ts;l a razn es que exi sten i nstrucci ones cuya
di mensi n o l ongi tud en bi ts es mayor de 8
bits, superando la longitud del bus
de
datos.
Adi ci onal ment e, l os dat os deben buscarse
dentro de l a RAM y l l evar a cabo operaci ones
de di sti ntos ti pos, todo por el mi smo bus de
8 bi ts. As, al trabaj ar i nstrucci ones y datos
por un mi smo bus, se ori gi nar demasi ada
congesti n en ste.
Caso contrario ocurre en la arquitectura Har-
vard, en la cual una instruccin puede buscarse
en un solo ciclo de instruccin, debido a que el
bus que conecta la memoria de programa es de
14 bits. Al tiempo que la memoria de programa
se est accediendo, la memoria de datos, como
cuenta con su propio bus, puede ser leda o escri-
ta. Esta configuracin de buses separados permi-
te que una instruccin se ejecute al mismo tiem-
po que se busca la.siguiente instruccin. En la
figura 8.1 podemos apreciar el diagrama bsico
de ambos tipos de arquitecturas.
Instrucciones de
palabra
sencla
(single wor
Los microcotroladores PIC manejan instruc-
ciones de palabra sencilla (single taord). Esras
instrucciones se codifican y almacenan dentro
de la memoria de programa con un tamao de
14 bits; ese nmero las hace ideales para ser
transmitidas por el bus conectado a dicha me-
moria, el cual es precisamente de 14 bits. El
hecho de que el bus y las instrucciones tengan
ambos 14 bits, permite que en un solo ciclo se
ej ecute una i nstrucci n.
Caso contrario ocurre en la arquitectura von
Neumanri; en ella las instrucciones por lo gene-
ral son de mltiples bytes por lo que no es segu
que en cada posicin de memoria exista una ins-
truccin vlida.
Manejo de las instrucciones
{pipelne:
Para rgilizar el proceso de ejecucin de las i
trucciones en los sistemas digitales, se ha dise
do un sistema en el cual se empieza la bsq
de una instruccin a medida q
se va completando la ejecucin
la instruccin precedente o an
rior. Este tipo de conexin o
cuencia se conoce con el nom
de p ip e lin e
(entubar, encavzaf ,
rigir o distribuir por tubos).
ilti..ll
lilti: LJuli;l
1ry
Figura 8.1 Diagrama de bloques de las arquitecturas Harvard y von Neumann
Von-Neumann Harvard
#
rrr*
curso prctico sobre Micmcontotadoes
. si ada
a Har-
I SCATSC
que
el
aesde
)grama
. como
o escri -
, permi -
ro ti em-
n. En
l a
,a bsico
:
i nst ruc-
.d. Estas
rn dentro
nrao
de
s
Para
ser
di cha
me-
t + bi t '
El
res tengan
rl o
ci cl o
se
tectura
von
ror
Io gene-
no es seguro
i sta
una
i ns-
,n de las ins-
se ha disea-
r la bsqueda
r medida
que
r ei ecuci n
de
dente
o ante-
onexi n
o se-
:trn
el nombr
r. encauzar,
di-
rr t ubos).
, :nicrocontroladores PIC se utiliza esta
. s procesos de bsqueda y ejecucin se
: ; bsqueda de una instruccin toma un
- - -
- , , : - ^ - ,
l ^
^i - - , , ^i A ^, *^ ^: ^l ^ .:quina y la ejecucin se toma otro ciclo.
Srr
de buscar la instruccin actual y ejecu-
-- -
-,:--r*-iin
previa, en cada ciclo de mquina se
-
-.- -j--r
:nsiruccin al tiempo que se ejecuta otra.
-
:::i o a que el bus de l a memori a de pro-
:--: :-:ne un ramao de 14 bi ts. una i nstruc-
-
:: i r-rrrrx en un sol o ci cl o de mqui na, y se
: :-
--.
-n
otro ci cl o. Si el resul tado de l a i ns-
:--:
-
, : modi fi ca el conteni do del contador de
- -
:::::r.1. puede existir un pequeo retardo de
-.- -
:,:. el cual debe corregi rse dentro de l a se-
-i
-
:-,. esre caso l o estudi aremos ms adel ante.
' : .
:
-
:-..;rocontroladores PIC se clasifican dentro
:: . :-rregora RISC (Reduced Instruction Set
,
,::,:er)i
esto qui ere deci r que se requi eren
:'
-:,
::srrucci ones para l l evar a cabo cual qui er
---:.
Es de resaltar aqu que un conjunto redu-
-
-'
j -
i nstrucci ones puede ser aprendi do ms
--
:
, por
el usuari o.
TCYl
021 031
PC
-(OUT
leorta
La memoria de datos de los microcontroladores
PIC se divide en registros, cada uno con una
ubicacin determinada, lo que permite que pue-
da accederse a cualquier parte de ella a travs de
direcciones. Existen algunos registros que cum-
plen funciones especiales los cuales tambin se
encuentran ubicados dentro de ella en posicio-
nes determinadas, como veremos en la siguiente
l ecci n denomi nada
"La
memori a en l os mi cro-
control adores PIC".
Las instrucciones de los microcontroladores PIC
han sido diseadas para que cumplan con cierta
ortogonalidad o simetra; esto quiere decir que
para cada instruccin existe otra instruccin si-
mtrica que cumple la labor complementaria; esta
caracterstica tambin ayuda a facilitar el apren-
di zaj e de l as i nstrucci ones.
Las instrucciones ortogonales hacen posible
llevar a cabo cualquier operacin sobre cualquier
registro usando algn tipo de direccionamiento.
La naturaleza simtrica y la ausencia de instruc-
011 04
1
04 I
TCY2
021 03 |
TCY3
02t 031
Figura 8.2 Flujo de ejecucin de una instruccin
cl
01
Q2
03
Q4
Busca instruccin (PC)
Ejecuta instruccin (PC-1
)
Busca instruccin
(PC+1)
Ejecuta instruccin (PC)
Busca insfuccin
(PC+2)
Ejecuta instruccin (PC+1
)
Curso prctico
sobre Microcontrotadores
&rrr"t
#
ciones especiales, (como ocurre en otros mlcro-
controladores tipo CISC, quienes cuentan con
numerosas instrucciones, donde algunas de ellas
cumplen con labores muy puntuales o especides),
hacen que la programacin sea muy simple y efi-
ciente, alavez que la curva de aprendizaje se re-
duce signifi cativamente.
El ciclo de instruccin
La seal de entrada de reloj (pin
OSCI) se divide
internamente por cuatro, generando cuatro pul-
sos peridicos en cuadratura
(desfasados) deno-
minados
Ql,Q2,Q3
yQa. Internamente el con-
tador de programa (PC) se incrementa cadavez
que aparece
Ql,
la instruccin se busca en la me-
moria de programa y se almacena dentro del re-
gistro de instrucciones en
Q4.
Luego la instruc-
cin se decodifica y se ejecuta durante el siguiente
ciclo de
Ql
a
Q4.
En la figura 8.2, se ilustra el
flujo de la ejecucin de una instruccin.
Un ciclo de instruccin est formado por cua-
tro ciclos
Q
(Q1,
Q2, Q3
y
Q4).
l,a operacin de
busqueda requiere de un ciclo de instruccin mien-
tras hace la decodificacin y la operacin de ejecu-
cin toma otro ciclo de instruccin. Debido al
manejo que se le hace a las instrucciona
(pipeline),
cada instruccin se ejecuta efectivamente en un ci-
clo. Si una instruccin hace que el contador de pro-
gramase modifique, (por ejemplo un GOTO) en-
tonces se requiere de un ciclo extra para completar
la instruccin, ver ejemplo 1.
la operacin de bsqueda de la instruccin
empieza en
Ql
incremenado el contador de pro-
grama. En el ciclo de instruccin, la iristruccin
buscada es almacenada dentro de un registro de
instruccin (IR) en el ciclo
Ql.
E t ese momento
ella se decodificayse ejecuta durante los ciclos
Q2.
Q3
y
Qa.
[.a memoria de datos se ha leldo durante
el ciclo
Q2
y se ha escrito durante el ciclo
Q4.
En el ejemplo I se muestra la secuencia de
operacin (pipelin) de una instruccin. EnTCY0
se busca la primera instruccin en la memoria de
programa; en TCY1 sta se ejecuta mientras se
busca la segunda. DuranteTCY2, la segunda ins-
truccin se ejecuta mientras se busca la tercer
Durante TCY3 se busca la cuarta instruccin
mientras se ejecuta la tercera (CALL S-1).
Cuando se ha terminado la ejecucin de la ter-
cera instruccin, la CPU hace que la direccin de la
cuarta instruccin se lleve a la pila cambiando d
contador de programa (PC)
a la direccin de S_l-
Esto significa que la instruccin que se busc du-
rante TCY3, debe ser nivelada desde el pipeline.
Durante TCY4 se nivela la cuarta instruc-
cin (se ejecuta como un NOP: instruccin
no operacin) y se busca la instruccin ubi
en la direccin S-1. Finalmente, duranteT
se ejecuta la quinta instruccin y se busca la i
truccin presente en la direccin S_l + 1.
Formato general
de una instruccin
las instncciones en los microcontroladores PIC
rango medio pueden ser clasificadas segn
Formatos generales, como se muestra en la figura
[,os codigos operativos (opcodzs) de las i
varan entre 3 y 6 bin. Este tamao variable de
opcodzs permite esablecer 35 instrucciones.
Relaj de las instrucciones
Cada ciclo de instruccin
(T
comprende cuatro ciclos
Q
(Ql
Q4).
El tiempo del ciclo
Qes
el mi
mo que el ciclo de tiempo del osci
lador del dispositivo (TOSC).
ciclos
Q
son los que dan la
para la ejecucin de cada uno de
procesos de decodificacin, lectu
Ejemplo I Secuencia de bsqueda y ejecucin de las instrucciones
Busca 1 Ejecuh 1
Busca 2 Ejecuh 2
Busca 3 Ejecuh 3
1. MOVLWSSh
2, MOWF PORTB
3. CALLS_1
4. BSF PORTA, BlT3 (torced NOP)
5. Instrucciones en la direccin S_1
Busca 4 Nivelar
Busca S_1
Ejecuta S_1
Busca S_1 +1
#
&rr-r
curco prctico sobe Microcontrotadores
de
nto
12,
]nte
r de
]Y0
ade
NSC
r ins-
cefa.
rin
A ter-
r del a
do el
: S-1.
du-
we,
suc-
bn de
bicada
[CY5,
la ins-
n
PIC de
cuaos
Era8.3.
rcciones
e de los
s
(TCY)
I
(Q1-
el mi s-
Jel osci-
C). Los
h pauta
p
de los
lectura,
operacones de regso orientadas a 8,'fe
13 87 6 0
operaclones de rgso orientadas a ,it
13 109 76 0
operacones de control
srocesamiento de datos, escritura, etc., de cada
.iclo de instruccin, figura 8.4.
Los cuatro ciclos
Qque
conforman un ciclo
,Jc instruccin (TCY) se pueden generalizar as:
Ql:
Ciclo de decodificacin de la instruccin
Q2:
Ciclo de lectura de datos de la instruccin
Q3:
Procesamiento de datos
Q1:
Ciclo de escritura de datos de la instruccin
- -
i
.sts ($e0 de instrucciones
Lras cdigos de mquina o conjunto de instruc-
iones que la CPU reconoce, se muestran en la
Ebla I (al igual que los nemnicos que el progra-
ma ensamblador usa para generar estos cdigos).
- :
i , - i J y l a GPU
[. unidad central de proceso (CPU) es la respon-'
sble de utilizar la informacin de la memoria de
prcsrama
(instrucciones)
para controlar la opera-
d
=
0
para que
W sea el destino final del resultado
d
=
1 para que f sea el destino del resultado
f =7-bit registro de la direccin de un archivo
b
=
3-brt posicin
de un Dff(3 Drb)
f =7-bit registro de la direccin de un archivo
K = valor literal (8
bits)
K =valor literal (11 bits)
Figura 8.3 Formato general de una instruccin
cin del dispositivo. Muchas de estas instruccio-
nes operan sobre la memoria de datos para lo cual
se requiere de la unidad aritmtico lgica (ALU,
Aritbmec Logical Unb). Para llevar a cabo las ope-
raciones aritmticas y lgicas, IaALU controla los
bits de estado (los cuales se localizan en un regis-
tro especial denominado registro de estado). El re-
sultado de algunas instrucciones obligan alos bits
de estado a cambiar su valor, dependiendo del re-
sultado de la operacin.
La CPU puede considerarse como el cere-
bro del microcontrolador. Ella es la responsable
de buscar la instruccin correcta que se va a eje-
cutar, decodificarla y ejecutarla. En algunas oca-
siones, la CPU trabaja en conjunto con la ALU
para completar la ejecucin de la instruccin (en
los casos que se efecten operaciones lgicas o
aritmticas). La CPU controla el bus de direccio-
nes de la memoria de programa, el bus de la me-
moria de datos y el acceso a la pila.
Figun 8.4 Ciclos A
TCYz ICY3 TCY1
curco prctico sobre Microcontotadores
&tl..#
ilemotcnico 0peracin
SumarW y f
ANDent reWyf
Limpiar f
Limpiar w
Complementar f
Decrementar f
Decrementar f,
saltar si cero
Incrementar f
Incrementar f,
saltar si cero
0Rent r eWyf
Mover f
MoverW af
No operacin
Rotar a la izquierda
a travs del carry
Rotar a la derecha
a travs del carry
RestarW de f
lntercambiar nibbles de f
0R exclusiva entre W y f
Cd. de operacinEstados
msb lsb
00 0111 dfff ffff
00 0101 dtff tfff
00 0001 lfff tftf
00 0001 Onfi xxxx
00 1001 dfff tfff
00 0011 dfff
00 1011 dfff
00 1010 dtff
00 1111 dfff
00 0100 dtff
00 1000 dttf
00 0000 lfff
00 0000 0xx0
00 1101 dttf
00 1100 dttf
00 0010 dfff
00 1 110 dtff
00 0110 dfff
00bb btff
01bb btff
10bb bfff
11bb bfff
Giclos
1
afectados
C,DC,Z
z
z
7
z
z
7
TO,PD
z
ADDWF
ANDWF
CLRF
CLRW
COMF
DECF
DECFSZ
INCF
INCFSZ
IORWF
MOVF
MOWVF
NOP
RLF
RRF
SUBWF
SWAPF
XORWF
ADDLW
ANDLW
CALL
CLRWDT
GOTO
IORLW
MOVLW
RETFIE
RETLW
RFTURN
SLEEP
SUBLW
XORLW
z
z
1( 2)
1
1 (2)
f,d
f,d
f
f,d
f,d
f,d
f,d
f,d
f,d
f,d
f
f , d
f,d
f,d
f,d
f,d
ffff
ffft
tfff
ftff
tfff
ffff
ffff
0000
tfff
fttf
ffi
tfff
fftf
ttff
tfff
tfff
ffff
BCF f,b
BSF f,b
BTFSC f,b
Limpiar bit b de f
Activar bit b de f
Probar bit b de f,
saltar si es cero
Probar bit b de f,
saltar si es uno
Sumar literal k aW
ANDent r ekyW
Llamar subrutina
LimpiarWDT
Salta a direccin k
0Rent r ekyW
Cargar aW con literal k
Retornar de intenupcin
Retornar y cargar aW con k
Retornar de subrutina
lr al modo de bajo consumo
Restarle k aW
0R exclusiva entre k y W
11 111X kkkk kkkk
11 1001 kkkk kkkk
10 okkk kkkk kkkk
00 0000 0110 0100
10 lkkk kkkk kkkk
11 1000 kkkk kkkk
11 00xx kkkk kkkk
00 0000 0000 1001
11 01XX kkkk kkkk
00 0000 0000 1000
00 0000 0110 0011
11 110X kkkk kkkk
11 1010 kkkk kkkk
101
101
1( 2)
01
1( 2)
01
BTFSS f.b
k
k
k
k
k
k
k
1
1
2
1
2
1
1
2
2
2
1
1
1
c,Dc,z
z
TO,PD
C,DC,Z
z
k
k
Tabla I Conjunto de instrucciones de los microcontroladores PIC de rango
l-
#
&<n::
curco prctico sobre Microcontrotadores
I
I
Literal en B blfs
(palabra de nstruccin)
- =, 1
Figura 8.5 0peracn de Ia ALU y el registro W
-
, :ricrocontroladores PIC contienen una ALU
-.
::qistro de trabajo de 8 bits. La AIU es la uni-
-
. rgica y aritmtica la cual desarrolla operacio-
-
:
--irmticas
y funciones booleanas entre los da-
:=l registro de trabajo y cualquier registro.
. ' r ALU es capaz de hacer sumas, rest as,
: : , : . zami ent os y oper aci ones l gi cas. Las
Registro: STATUS
I-eoria
r=.
operaci ones ari tmti cas uti l i zan el mtodo nu-
mri co del compl ement o a dos. En i nst ruc-
ci ones que manej an dos operandos, normal -
ment e un operando es el regi st ro de t rabaj o
(denomi nado
V) y el ot ro operando es un re-
gi st ro o una const ant e, f i gura 8. 5.
El registro
'$'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 carry (C),
digit carry (DC), y zero
(Z)
de|
registro de estado. Los bits C y DC, indican el
momento en que en una operacin de substrac-
cin se da un caso de
"llevo"
o
"tomo
prestado".
Los datos de la memoria RAM interactan
con las palabras de instruccin al llegar a laALU.
Dependiendo del valor de d en la correspondiente
instruccin, el resultado final se dirige a w o al
registro de la RAM, f.
El registro de estado, figura 8.6, contiene el esta-
do aritmtico de la ALU, el estado del proceso
DC
bi t 0
c IRP RPl RPO TO PO Z
I
:,7
bi t 7
Di recci n:
Condicin de reset
03h
OOO??XXX
l i
ii
q
,t
D
IRP: Selector de pgina para direcconamiento indirecto
Este llno se utiliza efectivamente en el PlCl 6F84, por lo que
se puede utilizar como un b
de propsi to general .
RP1,0: Selectores de pgina para direccionamiento directo.
Solamente RPOse utilizaen el PlC16FB4. RP1 se puede utilizarcomo un Dlf de propsitogeneral.
T0: Time Outo Blf de finalizacin del temoorizador.
Se coloca en 0 cuando el circuito de vigilancia Watchdogfinaliza latemporizacin.
PD: Power Downo Blf de bajo consumo. Se coloca en 0 por la instruccin SIEFP
Z: Zeroo Bitdecero. Secolocaen 1 cuandoel resultadode unaoperacin lgicaoaritmticaescero.
DC: Dgt Carry o Bit de acarreo de dgito. En operaciones aritmticas se activa cuando hay
acarreo entre el bif 3 y el 4.
G: Canyo Bitde acarrreo. En instrucciones aritmticas se activa cuando se presenta acarreo
desde el Dl f ms si gni fi cati vo del resul tado.
,PD
fr,7
z
E rango
medtc
Figura 8.6 Registro de estado
curso prctico sobre Microcontrotadores
&k,
n,l"
&
%c
de reinicializacinylos bits de seleccin de los
bancos de memoria. Este concepto se estudiar
en la siguiente leccin: La memoria en los mi-
crocontroladores PIC.
El registro de estado puede servir para almace-
nar los datos de una instruccin, es decir, puede
trabajar como cualquier otro registro. Si el registro
de estado sirve de destino para una instruccin que
afecte los bits C,DC o Z, entonces se deshabilita la
escritura en estos tres bits. Esos son puestos en uno
o en cero de acuerdo a la lgica del dispositivo y a
las operaciones que ejecute. De hecho, los bixTO
y PD no son escribibles.
El resultado de una instruccin que tenga
como destino el registro de estado, puede arrojar
un resultado distinto al esperado. Por ejemplo, si
se ejecuta la instruccin CLRF ESTADO se bo-
rrarn los tres bits ms significativos y Z se pon-
dr en uno. Esto deja al registro de estado con
000n nlnnn (donde n significa: no cambia).
i - - ' : ""- - ' : - - '
-
: - . - - t "*' *
RTS
:
RTE PSA i PS2 1 PSl
i
PSo
i
bit 0
i ool
; 010
; 011
r 100
: 101
1: 4
1: B
1: ' l 6
1: 32
' l:64
1: 2
1: 4
1: 8
1: 16
1: 32
1: 64
1: 128
i l l o
;
1: 128
l
, 111

1.2-56
Registro: OPT|ON (0PC|ON)
: ,
i -
I
RBPU INTEDG
h+ 7
Direccin: 81h
Condi ci n de reset 1' 1111111b
RBPU: PortB Pull-up Enable o Habilitacin de pull-up del puerto B.
0: habilita las pullups internas
1: las deshabilita
INTEDG: INT lnterrupt Edge Select o Selector de flanco de la interrupcin INT
0: flanco de bajada
1: flanco de subida
RTS: TMR} Signal Source o Fuente de seal deTMR0.
0: ciclo de instrucciones interno (Iemporizador)
1: transicin en el
pin RA4/IOCK (Contadofl
RTE: TMR} Signal Edge o Flanco de la seal TMRO
0: incremento en transicin de bajo a alto
1: incremento en transicin de alto a bajo
PSA: PrescalerAssignmenfoAsignacindelpreescalador
0: TRM0 (Contador/temporizador)
1:WDT (Ci rcui to de vi gi l anci a)
PS2,1,0: PrescalerValueoYaloresdel preescalador.
Es recomendable que solo se utilicen las ins-
trucciones BCF, BSF, S\APF y MOVWF par.
alterar el registro de estado, ya que estas instruc-
ciones no afectan los bits z,DC o C. En la tabl.
I se muestran otras instrucciones que no afecta:.
los bits de estado.
' ' : r . . j i st f sj
: , " : r r ,
Este es un regi stro fundamental para establ e-
cer las condiciones con las que va a trabajar nues-
tro programa. En l podemos l l evar a cabo ope-
raci ones de l ectura y escri tura. Conti ene vari o,
bi ts de control que confi guran mdul os com:
l os tempori zadores, l as i nterrupci ones y l as re-
si stenci as de pul l -up i nternas del mi crocontro-
l ador, fi gura 8.7.
Los bi t s PSA, PS0, PS1, PS2, I NTDEG y RT:
confi guran el funci onami ento del tempori zadc:
i nterno (esto l o estudi aremos ms adel ante), c.
bi tP.BPU permi te que habi l i temos una resi sten-
ci as de pul l -up i nternas conectadas al puerto B
a=
' ' - - : - - - ' ' - - - - . . '
:
Valor i TMR0
f' .' *
**.-*-,-*s.*' *""
". " -.
1 000 i 1: 2
;
,r*
T"-I ' i -
$ tkt,:
curco prctico sobre Microcontrotadores
&d
Figura 8.7 Registro 1PC\N
I l l s-
P1rr
. - l
Lt l -
:,rbl a
ac t1l l
: bl e -
' l l Ll es-
, -' oPe-
' . ' rrri os
a0l Tl o
. s r e-
t r l t r o-
. I1TS
-
rz, rcl or
: ' . i c) , e I
. . i st et t -
: . r t o
R.
\
/ /
_*
- t
E-l
{-
.
t
te-
{-
.$
.
Fl
f,
t
t*
+
IDT
' 2
.
1O
J'
' 64
. r q
Conocer cmo est estructurada l a memo-
ri a dentro de l os mi crocontrol adores es un
paso fundamental para desarrollar aplicacio-
nes ptimas y aprovechar al mximo lo que
estos ci rcui tos i ntegrados nos pueden ofre-
cer. En esta lecci n analizaremos la disposi-
cin y manejo de las memorias RAM y ROM
i nternas de l os mi crocontrol adores PIC.
':
)PC\)N
Cu rso prctico
sobre M icrocontro lado res
&k
m;
d;\
\-,,2
Podemos resear dos bloques principales en
los que se divide la memoria en los microcontro-
ladores PIC: la memoria de programa
(ROM) y
la memoria de datos
(RAM).
Thmbin existe una
memor i a muy i mpor t ant e denomi nada l a
EPROM de datos; ella ser tema de estudio en
la siguiente leccin. Como vimos en la leccin
anterio cada bloque cuenta con su propio bus
de acceso, de manera que ambos pueden consul-
tarse durante un mismo ciclo del reloi.
La memoria de datos, a su vez se divide en
dos bl oques: l os regi stros de propsi to general
y l os regi stros de funci ones especi al es
(SFR:
Special Function Registers). Los registros de pro-
psito general son los que el usuario tiene a su
disposicin para ubicar las distintas variables de
su programa, mientras que los registros SFR con-
trolan muchas funciones del microcontrolador y
de sus mdulos perifericos.
F. l r, orrl -l l t " {1r". '
l }r{: }: : : ' . ri ,
j i l
El contador de prograrna
(PC) es un registro de
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-
mina 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 42:8> del PC y no puede leerse ni escribirse
de manera directa.
La rnemoria rJe
Sr{igrrrlr;i
El contador de programa de los microcontrola-
dores PIC de rango medio puede direccionar
un espacio en la memoria de programa hasta de
8K y 14 bi ts de l ongi tud. Como todas l as i ns-
trucci ones son de pal abra si mpl e, un di sposi ti -
vo que posea una memoria de programa de 8K
x 14 bits tiene espacio para albergar 8K en ins-
trucciones. Esto facilita al usuario establecer si
un dispositivo tiene suficiente memoria de pro-
grama para una aplicacin determinada. Esta
aclaracin es importante hacerla debido a que,
al trabajar en un dispositivo de CPU CISC y
Von Neumann, una memoria de programa d.
8K puede llegar a tener slo alrededor de 4l'.
para almacenar instrucciones.
La memoria de programa en los microcon-
troladores PIC se divide en cuatro pginas de 21.-
cada una (Oh-7FFh, 800h-FFFh, 1000h-17FFh
y 1800h-1FFFh), fi gura 9.1. Dependi endo de l .
referencia del microcontrolador PIC, se determi-
na qu porciones de este mapa de memoria po-
see internamente. Para ello debe referirse a la hor
de datos del PIC especfico con el fin de estable-
cer su memoria disponible.
Para sal tar entre l as pgi nas de l a memo-
ri a de programa, se debn modi fi car l os bi :
al tos del contador de programa
(PC). Esto s.
hace escri bi endo el val or deseado en un r(-
gi stro SFR denomi nado PCLATH (Progra,t
Counter Latch Hi gh). Si n embargo, si se ej e-
cutan i nstrucci ones secuenci al mente el con-
PC<' 12:0>
OFFFh
1 000h
1 TFFh
1 000h
1 FFFh
8K 6K
0004h
0005h
OTFFh
0800h
rr
I
#
&irr*t.
curso prctico sobre Microcontrotadores
Figura 9.1 Memoria de
ade
i 4K
EOn-
h2K
' FFh,
, de l a
ermi-
ia po-
a hoja
;table-
0e mo-
os bits
isto
se
un re-
tugram
se ej e-
el con-
OFFFh
1 000h
1 TFFh
r
1000h
l l FFFh
t
ade Programa
m04h
m05h
OTFFh
0800h
a ? dispositivos hasta de 2K de memoria de programa
nroJl???lilr'
000
l.cntador de
lf0grama
| )sposlfivos asta de 4K de memoria de programa
12 11
Contador de
pr0grama
="-i 6r . programa puede l l egar a sobrepasar
l *: l mi tes de l a pgi na si n ni nguna i nterven-
;:'cn del usuario. Todas las actualizaciones que
i e hacen sobre el regi stro PCH afectan i nme-
:' ,ramente
al regi stro PCLATH. Para di spo-
:j r-os con menos de 8K el acceso a una posi -
---lr por encima de las establecidas flsicamen-
r ori gi nar una sobreposi ci n. Esto es, en un
c; posi t i vo de 4K acceder a l a di r ecci n
:-FFh en real i dad di recci ona l a 7FFh. Di s-
si ti vos de 2K o menos no requi eren pagi -
nr l a memori a de programa.
Una memoria de programede2Kslo nece-
*r.-
de un contador de programa de I I bits para
'-.eder
a cualquier direccin (211 =
2048
=
2K),
3rra 9.2e.Un microcontrolador con una me-
nrria de programa de 4K necesita de un conta-
-mr
de programa de 12 bits, figara-9.2b.
7FF
Dheccin
hexadecimal
000
"4K" direcciones
(1 2- bit rango de di recciones)
FFF
Figura 9.2 Trabajo del contador de prograna al acceder a la memoria de programa
Este ultimo tipo de microcontroladores utiliza
un contador de programa de 13 bits, permitiendo
manejar hasa 8K de memoria de programa sin cam-
biar para nada la estructura de la CPU. Los disposi-
tivos de 2Ko 4Kignoran los bix ms significativos
del contador de programa durante los procesos de
bsqueda en la memoria de programa.
Existen dos direcciones dentro de la memoria
de progama que reciben un trato especid por par-
te de la CPU. Cuando la CPU inicia su operacin
desde su estado de reset, su contador de programa
automticamente toma el valor de cero. Esta direc-
cin se denomina aec-tor d resetdebido a que a ella
llegar la ejecucin del programa cuando ocurra un
estado de reset.
En este punto se borrn el contenido del regisuo
PCIAIH. Fsto significa que oulquier salto hacia la
345
I l di recci ones
I""*l*"direcciones)
Memoria de programa
Memoria de programa
curco prctico
sobre Microcontohdores
&n*#
Direccin
nex.
000
001
002
003
004
005
Fin de las tablas
PRINCIPAL
-1,*,*
I
I
,ronrrr. PRINOIPAL
I
y sus subrutinas
I
servicio de interrupcin
I
y sus subrutinas
Figura 9.3 Ubicacin en la memoria de pragrama
direccin del vector de resa (0h) llevar a la prgina 0
delamemoriade programa. Esto lo podemos apreciar
en la figura 9.3, donde el contenido de la direccin
000H es la instruccin goto PRINCIPAL.
la segunda direccin especial es la 004H, la que
se
qrga
automticamente en el contador de progra-
ma en el momento en que octure una interrupcin.
Esta direccin se cono@ como wam dc intemtpcin.
Cuando el PC toma la direccin del vector de inte-
rrupcin, el registro PCIAIH no se modifica. Como
se muestra en la figura 9.3, una instruccin goto
Instruccin
"cal l "
SERVICIO-INTERRUP se puede asignar a est;
posicin paraque la CPU salte a unasubrutinadon-
de se establezca qu hacer al aparecer la interrupcin.
la cual puede estar en cualquier punto del espacio d.
la memoria de programa.
Como veremos ms adelante una de las tc-
nicas ms utilizadas dentro de los microcontro-
ladores es el manejo de tablas. Dentro de la me-
moria de programa es conveniente ubicarlas er-
el rango de direcciones de 005H a OFFH; esta-.
250 posiciones son ms que suficientes para l;
mayora de las aplicaciones.
El programa PRINCIPAL iriicia su ejecu-
cin cuando el PIC sale del estado de reset r
contina funcionando hasta que una de las fuen-
tes de interrupcin ha aparecido y requiere aten-
cin inmediata; en ese momento la ejecucin
del programa PRINCIPAL se suspende tempo'
ralmente. La CPU empieza a ejecutar la subru
tina del servicio de interrupcin cuando se car
ga automticamente el contador de progra
con 004H. Cuando se completa la ejecucin
servicio de interrupcin, la CPU retorna al mi
mo punto donde abandon la ejecucin del p
grama PRINCIPAL.
La escritura de programas se complica
poco cuando entre el cdigo principal,
subrutinas e interrupciones, se ocupa ms de 2
Micros
de 2K
(rango
de dire-
cciones
de 11
btg
Micros de 4K (rango
direcciones de 1 2
iltl
,.q
sERVtCt0_
INTERRUP
Fin del
cdigo
t ,
I
l-
#
&rr*
curco
prctico sobre Microcontrotadores
Figura 9.4 Direccionamiento usado
por llamado a
a esta
tdon-
pin,
rio de
es tc-
ontro-
la me-
rlas en
[; estas
para
la
ej ecu-
reset y
s fuen-
re aten-
:cucin
temPo-
r subru-
) se car-
ograma
ci n del
r al mis-
del pro-
plica
un
l, tablas,
s de 2K.
K (rango de
de 12 bi f s)
b a subrutinas
Curco prctico sobre Microcontrotadores
&arr*#
Como se muestra en la figura 9.4,los bits 0
r i0 de la instruccin call se cargan dentro del
;.nrador de programa y los bits 4y 3 del registro
{L{TH se cargan en los bits II y 12 delconta-
r'r de programa. Mientras la memoria de pro-
sema utilizada sea menor a 2K los bix 4y 3 del
I\-L\TH pueden ser dejados en 00H, de mane-
n que los ll bits de direcciones en la instruccin
^-f identificarnla direccin de inicio de cual-
r;:er subrutina ubicada hasta la direccin 7FFH.
Para programas de ms de 2K es necesario
scsurarse de que el bit3 del PCLATH se ponga
-
cero o en uno de acuerdo a la porcin de la
rcmoria de programa que estemos utilizando,
.-'ls vez que se llama una subrutina. La instruc-
:,on GOTO tambin tiene un campo de direc-
a-,nes de lI bitsy requiere un tratamiento idn-
=o. \'er figura 9.5.
DG 0x500
F PCLATH,3
:I.1 SUB1-P1
Ox900
s.81_P1:
;
Selecciono
Wgirc
L(W1-FFFh)
;l1ono
subrutino ubicodo en 1o
; pgi noL
( 800h- FFFh)
,
;subruti no
l l omodo en 1o
; pg no
1 ( 800h- FFFh)
;
retorno o1 l l omodo de to
; subr ut i no
en l o pgi na 0
;(000h-7FFh)
parte ni de la memoria de programa ni de la me-
moria de datos y paraacceder a sus posiciones se
utiliza un registro especial conocido como pun-
tero a la pila (stach
pointer), en el cual no puede
escribirse ni leerse.
Los PIC de rango medio poseen una pila (en
hardware) de 8 niveles y 13 bits de ancho; esto
quiere decir que permite la combinacin de has-
ta 8 llamados de subrudnas e interrupciones.
El contador de programa es puesro en la pila
cuando se ejecuta una instruccin de llamada a
subrutina CALL o cuando aparece una interrup-
cin. El valor presenre en la pila es rescatado cuan-
do se ejecuta una instruccin de retorno como
RETURN, RETL\ o RETFIE. En ninguno de
estos dos casos se modifica el PCIATH.
Despus de que la pila se ha almacenado en
ocho ocasiones, el noveno almacenamiento so-
breescribe el valor que fue almacenado en la pri-
mera ocasin. El dcimo almacenamienro so-
breescribir el valor almacenado en la segunda
ocasin, como se muestra en la figura 9.6. Es
importante resaltar que no existe ningn bit en
el registro de ESTADO que nos indique cuando
se ha llenado la pila, de manera que es labor del
programador verificar que dentro del programa
no se hagan ms llamadas a subrutinas que las
soportadas por el microconrrolador.
PILA
Sobreescribe
nivel 1
Sobreescribe
nivel 2
Figura 9.6 Comportamiento de la pila
fttra
9.5 Ejemplo del llamado de una subrutina en la pgina 1
i t i t ' ! {l
; pila es un espacio de memoria que contiene la
:eccin de retorno antes de que ocurra un salto
.-ntro de la ejecucin de un programa. Al mo-
::nro de ocurrir un salto dentro de un progra-
i:
en la pila se almacena la direccin en donde
;e estaba llevando a cabo la ejecucin, tomando
= r-alor del contador de programa. De esra ma-
r.ra. la CPU cuando termina de ejecutar la su-
inrrina, puede consultar en la pila la direccin
ie retorno para continuar con el desarrollo nor-
=.I del programa. El espacio de la pila no forma
desde la pgina
0
Dcimo
nivel
L ruemcrie elr Lcs tniclccctru'clec.n-.s L)L
La figura 9.7 muestra cuatro situaciones en don-
de podemos estudi ar el comportami ento del
cont ador de programa (PC). La si t uaci n 1
muestra como se carga el PC al escri bi r en el
Si tuaci n 1: i nstrucci n con PCL c0m0 desti no
PCH PCL
B7
regi st ro PCL ( y por consi gui ent e el PCL. I
TH<4: 0> --> PCH), el PCH no puede modi r
carse (escri bi rse) di rectamente pero puede m,
di fi carse cuando vara PCL, y cual qui er moc
ficacin oue sufra PCH se refleia inmediatame:
t e en el PCLATH. La si t uaci n
-
muestra como se carga el PC duran ,
una i nst r ucci n GOTO
( PCL. -
TH<4: 3> --> PCH) yvemos como l ,
bits 3 y 4 del PCLATH (establecid
por el usuario) afectan el contenido c.
contador de programa. Como vi m
ant eri orment e, de est a manera accei
-
mos a pgi nas superi ores en Ia mem
ri a de programa. La si tuaci n 3 mu.
tra como se carga el PC durante u:
instruccin CAIL
(PCIAIH <4:3> --
PCH), cuando el PC se ha cargado .-
l a ci ma de l a pi l a (stack)
y como.
-
i gual que con l a i nstrucci n GOTI
el PCLATH afecta al contador de pr
grama. La si tuaci n 4 muestra cor'
se carga el PC durante una i nstrucci ,-'
de retorno (RETURN), donde el f
es cargado con el valor que hay en
ci ma de l a pi l a.
En muchos programas en lengu.
ensambl ador es necesari o construi r :-
blas de datos para distintas aplicac.
nes. LJno de l os mtodos ms comur..
para acceder a estas tablas es sumar
-
valor determinado al contador de p:
grama
(ADD\F PCL). Cuando in'.
camos una rutina de tabla el PC to,
esa di recci n i ni ci al y al sumarl e un' ,
l or fi j o l l ega a l a posi ci n de l a ta:
indicada por dicho nmero. En un c-
como ste, al sumarl e un nmero d.
bi ts,l atabl a sl o podr l l egar hasta i '
posi ci ones de l ongi tud.
Cualquier escritura que se haga ,
bre el contador de programa
(PCL), c'
ginar que los 5 bitsbajos de PCIAI
se carguen en PCH.
12
cdi go
<10: 0>
Figura 9.7 Comporlamiento del contador de programa
t 1i
Incorporando un cd
operati vo<10:0>
t g0
Situacin 4: comportamiento ante una instruccin de retrono
Por ejemplo, Return, Retfie, o RETLW.
A
| 11
Incorporando un cdi go
operativo<'l 0:0>
PCH
12 11 10 B7
I
I
m_tiTil
PCLATH
Pi l a (13-bi ts x 8)
t 11
Incorporando un
operativo en PCL
A
4: o'
|
8
i ncorporando un
resul tado de l a ALU
en PCL
PCLATH
Situacin 2: c0mportamiento ante una instruccin G0T0
PCH PCL
12 11 10 87 0
I
I
+
2 /
PCLATH<4:3>
I
[rrr]-l-l-T i
r I r l r r r l i
PCLATH
Situacin 3: instruccin CAL-
13
#
PCH
I
PCL
' 12
11 10 87 0
Pi l a (13-bi ts x 8)
Pi l a (13-bi ts x B)
PCLATH
Pi l a (1 3-bi ts x 8)
.(ffi' a t
dttb &fm).
Curso prctico sobre Microcontrotadores
&f,
,LA-
,difi-
mo-
10di -
men-
n2
.rante
- LA-
no l os
: ci dos
do del
r-i mos
ccede-
nemo-
mues-
rt e Una
t3> -->
:ado
en
l mo,
al
rOTO'
de pro-
a como
.rucci n
l e el PC
.av en la
l enguaj e
strui r
ta-
rpl i caci o-
comunes
sumar
un
l r de
Pro-
ndo
invo-
PC t oma
ule un va-
ie la tabla
En un casc
mero
de E
hasta
25(
1'eor[
Los registros de propsito general representan
:abamos mencionado anteriormente, esta el rea disponible para que el usuario almacene sus
-'
. :e se divide en dos partes fundamentales: datos y desarrolle sus operaciones. Los registros con
'.
.
je
registros con funciones especiales (SFR:
funciones especiales conrrolan la operacin del dis-
Ftntcton Registers) y eI rea de registros de positivo; por ejemplo, poseen los puertos y los re-
-
.i:o
general
(GPR:
Genera/ Purpose Register). gistros de control para establecer el funcionamien-
IIIDF
IfrlR0
PCL
STATUS
FSR
PORTA
POHfB
PORTC
PORTO
PORIE
PCLAITI
ilfTcltf{
PIRl
PIR2
TMR1L
TMRIH
TlCON
I[4R2
T2CON
SSPBUF
ssPcoN
CCPR1L
CCPR.IH
ccPlcoN
RCSTA
TXREG
RCREG
ccPR2t
CCPRzH
ccP2c0N
ADRES
ADCONO
Registros de
oroosito
'geherdP)
Banco 0
]IIDF
OPTIOII-BEG
PCt
SIAIUS
FSR
TRISA
TRISB
TRISC
TRISD
TRISE
PCLATH
{TC0f{
PIEl
PIEZ
PC0l{
OSCCAL
PR2
SSPADD
SSPATAT
TXSTA
SPBRG
ADCONl
Registros de
propsito^.
general
(r,
Mapeado en
el Banco 0
79 - 7p(+)
Banco 1
IHDI
OPTION_BEG
PCt
STATUS
FSR
PORTB
PORTF
PORTG
PCI.ATH
rNTCot{
Registros de
propsito^.
general lq
Mapeado en
el Banco 0
76 - 7rl)
Banco 2
ffiF
fFfrftl_ffi
?9.
,sfmw'
'
,P0Xm
POfilF,;,'
P0f6:,;
4ff11i
lIfGffi':r '
neo*:
sm'0
r
70it
-7$i{f
Banco 3
00h
01h
02h
03h
04h
05h
06h
07h
08h
09h
0Ah
0Bh
0ch
0Dh
0Eh
0Fh
10h
11h
12n
13h
14h
15h
16h
17h
18h
19h
1Ah
1Bh
1Ch
1Dh
1Eh
1Fh
20h
80h
B1h
82h
83h
84h
B5h
86h
87h
BBh
89h
BAh
BBh
8Ch
BDh
8Eh
8Fh
90h
91h
92h
93h
94h
95h
96h
97h
98h
99h
9Ah
9Bh
9Ch
9Dh
9Eh
9Fh
A0h
EFh
1 00h
101h
1 02h
1 03h
1 04h
1 05h
1 06h
1 07h
1 08h
' 109h
1 OAh
1 0Bh
1 Och
1 0Dh
' l 0Eh
1 OFh
1 10h
111h
112h
1 13h
' I
14h
1 15h
1 16h
117h
1 l 8h
1 19h
1l Ah
11Bh
' l 1ch
11Dh
11Eh
' I
1Fh
1 20h
1 6Fh
1 70h
FFh
1 80h
181 h
1 82h
1 B3h
1 84h
1 85h
1 86h
1 87h
1 88h
1 89h
1 8Ah
1 BBh
1 8Ch
1 8Dh
1 BEh
1 8Fh
1 90h
191 h
1 92h
1 93h
1 94h
1 95h
1 96h
1 97h
1 98h
1 99h
1
gAh
1
gBh
1
gch
1
gDh
1
gEh
1
gFh
1 Aoh
1 EFh
1 Foh
1 FFh
se haga
so-
PCL),
ort'
: PCLATF
Figura 9.8 Estructura general de la RAM
cu rso prctico
sobre M icrocontrotadores
&k,
*:
&
&d
I
to de cada uno de los pines como entrada o como
salida. Contienen tambin regisuos que permiten
la entrada y salida de datos para la variedad de m-
dulos del microcontrolador, como temporizadores,
puertos seriales, conversores anlogo-digitales, etc.
Thmbin contienen bits decontrol que seleccionan
el modo de operacin de los mdulos del micro-
controlador, al igual que pueden habilitar o desha-
bilitar su funcionamiento.
fistrtcturr en bancos
la memoria de datos
(RAM)
de los microcontrola-
dores PIC se ha didido en cuItro bancos. Cada
uno de ellos contiene registros SFR y GPR Paa
poder trabajar con cualquiera de estos registros, hay
que estar ubicado dentro del banco corespondien-
te. [ conmuacin entre bancos requiere corgu-
rar los bits RPO y RPI del registro de estado (STA-
TUS <7:5>) de acuerdo a lo mostrado en la tabla
9.1. t figura 9.8 muestra un mapa general de la
RAM para los microcontoladores PIC, que corres-
ponde a una organizacin esundar para todos los
dispositivos de esa familia- l,os
regisuos que se encuentran en
negrilla siempre se encontrarn
en cualquier dispositivo. lns
dems regisuos dependen dela
cantidad deperiftricos que po-
sea el PIC; por eso conene
mirar en las hojas de datos las
caractersticas de ca disposi-
tivo en panicular.
En la estructura de los
registros que se muestra en la
figura 9.8, se puede apreciar
que ellos poseen direcciones
en8 bits que van desde la di-
reccin 00H hastalaFFH. El
modo de direccionamiento
directo utiliza slo 7 bits de
la instruccin para identifi car
la direccin de un registro, el
octavo bit de la direccin
debe venir de un bit
(PoD)
que selecciona el banco de re-
Dff RPO en el
registro de
estado
Direcciones
efectivas
gistros con el cual
se va a trabajar.
En general,
paramovervalores
de un regisuo ha-
cia otro, el valor
debe pasarse a tra-
vs del regisuo de
trabajo (\X/). Fsto
significa que para cualquier movimiento de datos e:-
ue regisuos se requieren dos ciclos de instruccin.
Toda la memoria de datos puede accederse d.
recta o indirectamente. El direccionamiento direc-
to require de la configuracin de los bits RP}
RPl. El direccionamiento indirecto requiere la uo
lizacin de un registro especial conocido como
(Fih
Selct fugtttu) y el bit lW (Indirect Regi
Pointer) que hace parte del registro de estado.
diante ellos se puede acceder a los bancos 0,1,2 o
de la memoria de datos.
RP1 y B>
Dreccn
nex.
000
/',i
@
E
.9.
g)
o)
CE
Tabla 9.1 Configuracion de los b=
Contenido del archivo
./ii
a
o
@
q)
6
x
U
=
CE
#
&m
cuso prctico sobe Microcontotadores
Figura 9,9a Modo de direccionamiento
)ct0
1P0)
i nformacl n del cdi go
U
oFerati vo cdi go
O
r Sel ector de l a posi ci on
h
Memori a de
datos
Banco 0 Banco I Banco 2 Banco 3
lta
9.9b Esquema genenl del modo de direccionamiento directo
: r l a f i gura 9. 9a se muest ra l a ut i l i zaci n
-: : ecci onami ent o
di rect o para acceder al
-
, : : o ubi cado en l a di recci n 14H o 94H,
:
-: : di endo
del val or de RPO, y en l a f i gura
:
: . muest ra un di agrama general de est e
: - di recci onami ent o, en el cual observa-
, , , mo l os 7 bi t s del cdi go operat i vo de
leor[a
I a i nst rucci n (OPCODE) son ut i l i zados para
di recci onar l as posi ci ones de memo ray l os bi ts
RPO y RP I del regi stro de estado, pueden ser
ut i l i zados para di recci onar o sel ecci onar l os
di st i nt os bancos.
Cada banco se exti ende hasta 7FF{
(128
bytes). Las posi ci ones ms baj as de cada banco
se reservan para l os regi stros con funci ones es-
peci al es (SFR). Debaj o de l os SFR se encuen-
t ran ubi cados l os regi st ros de propsi t o gene-
ral . Es de resal tar que al gunos regi stros SFR
del banco 0 se han puest o t ambi n en ot ros
bancos (posi ci ones espej o) para f aci l i t ar su ac-
ceso. En l a f i gura 9. 10 se muest ra un mapa de
memori a de dat os correspondi ent e a al gunos
mi crocont rol adores PI C de 18 pi nes, en don-
de podemos apreciar algunos registros quema-
nej an l a ubi caci n en espej o. Por ej empl o el re-
gistro de estado (STATUS) se encuentra ubica-
do en l as di recci ones 03h y B3h. Di recci onando
cualquiera de estas dos posiciones podemos ac-
ceder y trabaj ar con di cho regi stro.
Est e modo de di recci onami ent o sobre l a me-
mori a de dat os es apropi ado en casos donde
l as di recci ones de memori a que se manej an
dent ro de una i nst rucci n no son f i j as, es de-
ci r cuando se t i ene el caso de que queramos
t rabaj ar con dat os que se encuent ren di st ri -
bui dos a l o l argo de vari as posi ci ones de me-
mori a. En est e caso el di recci onami ent o i n-
di rect o nos bri nda una manera rpi da de ac-
ceder a t odos esos dat os, ut i l i zando un regi s-
t ro especi al (FSR) como apunt ador a l a posi -
ci n en l a memori a de dat os que se qui ere
acceder. Como est e apunt ador es un regi st ro
en RAM, sus cont eni dos pueden modi f i carse
dent ro del programa y de st a manera apun-
t ar a muchas posi ci ones di st i nt as; est o puede
ser muy t i l cuando t rabaj amos con t abl as de
dat os ubi cadas en l a memori a de programa;
un ej empl o de est e manej o l o podemos apre-
ci ar en el proyect o 5 de est e curso t i t ul ado
Avi so Lumi noso con Di odos LED.
os bts
l yRPl
ios en-
:i n.
:rse
di -
r direc-
RPO
Y
e la uti-
no FSR
Regixa'
i o. Me-
t . 1, 2 o 3
7Fn
Di recci ones
IIIDF
TMRO
PCL
STATUS
FSR
PORTA
PORTB
ADCONO/
EEDATAE)
ADRESi
EEADR
(2)
PCLATH
r1{TC0N
Registros de
propsito^,
general
(r'
Banco 0
IIIDF
0Pftoil_REG
PCL
STATUS
rsn
TRISA
TRISB
PC0l{
ADCONI/
EECoN1
e)
ADRES/
EECoN2(2)
PCLATH
lltTcoll
Registros de
oroosito
geheral
(s)
Banco 1
00h
01h
02n
03h
04h
05h
06h
07h
08h
09h
0Ah
0Bh
0ch
80h
81h
82h
83h
84h
85h
86h
87h
88h
89h
8Ah
8Bh
8Ch
FFh
7Fh
3igura
9.10 Mapa de la memoria RAM de microcontroladores
PIC de 18 pines

U
.
- ento directc
curso
prctico sobre Microcontrotadores
&fff't
$)
L nreincr[ eu Ls nrlcrcccrruclares L)L
nstrut cron ori entada a bi t o a byte
La dr r ecci on de I NDF nos di ce que el
FSR se usa como aputador
D r ecc n
hex
00
7F
BO
OA
Accesa cual qui er posi ci n en todo
el espaci o de di r ecci ones
FF
En ese proyecto se escribi una serie de datos
en diversas posiciones de la memoria de progra-
ma, los cuales deban ir mostrandose secuencial-
mente en Ia pantalla de diodos LED. Para resolver
ese problema, simplemente se acudi al registro
FSR para que hiciera un recorrido por todas esas
casillas y pudieramos tomar el dato.
En est e modo de di recci onami ent o,
l a di recci n (en
8 bi ts) del regi stro que se
va a acceder, se escri be en un regi stro es-
peci al (FSR)
que si rve de apunt ador a
cual qui er punt o del mapa de memori a
RAM. Despus de haber escri t o en ese
regi stro, se puede consul tar otro regi stro
especi al l l amado I NDF el cual acceder
el regi st ro usando el cont eni do del FSR
como apunt ador a l a posi ci n de memo-
ri a deseada por el operando, f i gura 9. 1 l .
Cual qui er i nst rucci n que ut i l i ce el re-
gi st ro I NDF puede acceder al regi st ro
apunt ado por FSR.
Figura 9.11 Modo de direccionamiento indir::
Si i nt ent amos l eer manual ment e el reg
t ro FSR, sol o l eeremos 00H, y si i nt ent am
escri bi r un dat o sobre 1, resul t ar un est a
de no operaci n (NOP).
Podemos generar c
recci ones hasta de 9 bi ts, concatenando el ,.
IRP (STATUS <7>) con l os 8 bi ts del regi sr:
FSR, como se muest ra en l a f i gura 9. 12.
7
Regi stro FSR
Sel ector de
I
I
.___l
7Fh
I RP
T n-rT-[-__
banco Sel ector de posi ci o
Memori a de
datos
Banco 0 Banco I Banco 2 Ba co 3
Figura 9.12 Direccionamiento indirecto clncatenandl el bt
:
,4.;' a #
Ito"b &lcl".L
curso prctico sobre Microcontrotadores
\.. z
3 indirecto
:l regis-
ntamos
l estado
lerar di-
Jo el bit
registro
12.
ndo
etttRP
v0D
R87
RB6
RB5
RB4
RB3 T
t.
(0
RB2
E
RBl
O-
RBO
0sc1
0sc2
Vss
RESET
I
e-r
=
TA EEPR|M IIE DATfl$ EIU tf|S
MISR|G|IUTR|TfiII|RE$ PIG
En la leccin anterior estudiamos los bloques
de memoria RAM y ROM de los PIC. Ahora
estudiaremos la memoria EEPROM de da-
tos. Esta es una memoria 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 memorias seriales que
tambin ocupan un lugar relevante en una
gran variedad de sistemas electrnicos.
curco pnctico
sobe Mictocontotadoes
arr*#
I
I
I
Hemos visto las distintas tecnologas que tie-
nen los microcontroladores para su memoria de
programa: FIASH, EPROM, EEPROM, OTB etc.
Una vez se ha programado un microcontrolador,
independiente de su tecnologa, la memoria de pro-
grama puede ser considerada como una memoria
ROM, ya que no podemos escribir sobre ella en el
transcurso normal del sistema, a pesar de que luego
podamos retirarla del circuito y programarla nue-
vamente. En muchos c:uos vamos a necesitar, por
ejemplo, recolectar datos del mundo exterior y d-
macenarlos, para lo cual necesitaremos una memo-
ria en la cual podamos grabar los datos y tener la
ceftezaque
\erm
ecern all y no se perderin.
Existen muchos dispositivos EEPROM dis-
ponibles en el mercado. EstoS se pueden clasifi-
car en tres tipos generales: EEPROM seriales,
EEPROM paralelas y microcontroladores con
EEPROM de datos internas, como por ejemplo
l os PICl 6F84, l 6F870y l 6F87X de Mi crochi p.
Analicemos el funcionamiento y uso de las
memorias EEPROM que se encuentran en algu-
nos microcontroladores PIC y de las memorias
EEPROM seriales, por ser estas ltimas muy co-
munes en muchas aplicacionei.
Mernorias EEPROM internas
la memoria EEPROM de datos puede leerse y es-
cribirse durante la operacin normal de un sistema.
En esta memoria se pueden almacenar datos.y va-
riables para que no se pierdan cuando se desconec-
ta la alimenacin del sistema. Analizando los re-
querimientos de la aplicacin, puede ocurrir que
esta memoria sea suficiente y no se tenga que recu-
rrir a memorias externas.
Este tipo de memorias soporan ha$a 1.000.000
de cidos de escritura/borrado ypueden gurdar la in-
formacin sin alterarla por rrrs de 40 aos. Esa me-
moria no se encuena en el espacio normal de archi-
vos de registro; en lugar de eso, debe ser direccionada
indirecamente a trav6 de regisuos especiales. En la
acn:alidad los microconuoladores PIC 16oor ofrecen
hasta256 bytesde memoria EEPROM; ver tabl 10.1.
Tamao de la
EEPR0iil de datos
Rango de
direcciones
64
128
256
0h - 3fh
0h - 7fr1
0h - ffrl
Tabla l0.l Tanaio de la EEPB1M de daW y su nnp de diecciae.
Algunos dispositivos programadores puede:
grabar la memoria EEPROM de datos. Esu
memoria puede ser leda o escrita durante la eje-
cucin del programa, siendo un bloque comple-
tamente separado de la memoria de programa
r
de los archivos de registros (RAM), ypuede usarss
para almacenar cudquier tipo de datos.
El rango de direcciones de esta memoria es ac
cedido colocando la direccin en un registro
cial (EEADR) y comunicando los datos por
deouo registro especialllamado EEDATA ls
tos son ledos o escritos en un
ba
il tiempo. U
slo bitno puede ser leldo o escrito. Se usan
registros de funciones especiales para leer y escriti
en IaEEPROM de datos. los cuales se muestran
la tabla 10.2.
Dircccin
EEADR 0X09 ->direccin 8 del banco 0
EEDATA OXOS
EECON1 0X88 ->direccin 8 del banco 1
EECONz OX89
Tabta 10.2 Registros especiales para et manejo h
EEPR0M de
El tiempo de escritura es de
te 10 milisegundos y es controlado por el
cidad del
rios bits
rizador que hay dentro del circuito integrado.
realidad ese tiempo resulta muy largo para la
procesador, por este motivo existen
en otro registro especial denomi
EECONI para supervisar la completa y
terminacin del ciclo, figura 10.1. Analicemos
registros asociados d manejo de esta memoria:
Irt'.AllR. El registro de 8 bits EEADR es
de direccionar un mximo de256 posiciones.
rango de direcciones utilizable lo podemos
en la tabla 10.1.
EECONl
ecct0nes
ueden
. Esta
l a ej e-
rmpl e-
rama y
I usarse
ia es ac-
o esPe-
r medio
Los da-
rpo. Un
n cuatro
'escribir
stran en
l
-.1
0l
I
r l
I
-)
nneio de la
)M de datos
radamen-
: l t empo-
rado.
En
ia la,relo-
risten
va-
romi nado
\- correcta
i..-o,
lo,
emori a:
{ es caPaz
i ci ones.
EI
l emos
ver
:1: :.' . zador de fi nal de ooeraci n de escri tura
-.-:-:o
este sealizador se pone a 1 indica que la operacin de escritura se ha
Se inicia un ciclo de lectura colo-
:::'-: etado con xito. Se pone a 0 por programa.
.
:ceracin de escritura'no se ha completado.
cando la direccin que se
ya
a ac-
Figura tl.t Regstro de control de ta EEpR\M de drto,
ced" en el registro EEADR y po-
ni endo el bi t RD
=
1 en el resi s-
: :
- . : t ur a
-
:.:ne en uno cuando se va a realizar un ciclo de lectura de la EEPR0M. Lueoo
: =; : :ero automticamente.
r :
i - . : ' t ur a
i; :,:-e en uno cuando se inicia un ciclo de escritura en la EEPR0M. Cuando se
:::
--
r.a el ciclo
pasa
a cero automticamente.
q ? r r, r:.-
so de escri tura
--'-e
la escritura en la EEPR0M
:-i
=e la escritura
u:
: : : : : i al i zador
de enor de escr i t ur a
-
:.:"e en uno cuando una operacin de escritura ha terminado prematuramente
'
:aeracin de escritura se ha completado conectamente.
Es un registro de 8 bits que se usa para
-
-
-.-
iatos desde y hacia la memoria EEPROM
, : : : : OS,
Este no es un registro fsico, sin em-
-
---:
la direccin 0x89 es asignada a 1. Al leerlo
' : : sus bi ts son cero. Sl o se empl ea como un
-.
:. .irivo de seguridad durante el proceso de
: : :' ra de l a EEPROM, para evi tar l as i nterfe-
' : -
:.r-i en el l argo i nterval o de ti empo que preci -
- -
jesarrollo.
En l se escriben dos palabras de
-::ri
r- forman parte del ci cl o de escri tura.
Este es el regi stro de control y ti e-
' '
. i nci n de cont rol ar l as operaci ones en
-
::lROMl su distribucin de bits se muestra
-
. ligura 10.1, y su descripcin es la siguiente.
'-
bits de control RD y \lR inician la lec-
"- -.
"
.a escri tura. Se deber tener en cuenta que
:: ' .,
j ts
sl o pueden ser col ocados en uno (no
, :
-:len
colocar en cero) por sofiware para que
-
- -:
el ci cl o de escri tura/l ectura. Estos se l i m-
-
-.-
,l tomti camente al compl etarse un ci cl o
-
: : : : ura/ escri t ura.
-
:ra operaci n de escri tura es vl i da cuan-
- -
tit \REN se pone en uno.
\WREN
se
leor[a
limpia cada vez que se enciende
el sistema. El ir'STRERR se pone
en uno cuando un ci cl o de escri -
tura se interrumpe por un reset de-
bido al pin MCLR o al watchdog.
Despus de un reset, por medio
de un programa, se puede che-
quear el ir \fRERR y reiniciar
el ci cl o i nterrumpi do de escri tu-
ra. Las di recci ones y l os datos se
mantendrn si n cambi os en l os
registros EEADR y EEDATA.
tro EECONI. En el si gui ente ci cl o de i nsrruc-
cin, los datos estarn disponibles en el registro
EEDATA y permanecern all hasta que se reali-
ce una nueva lectura o escritura en la EEPROM.
EEADR se l ocal i za en el banco 0 (RAM)
y
EECON1 en el banco 1, de manera que se re-
qui ere sel ecci onar cada banco dentro del cdi -
go, fi gura 10.2.
Figura 10,2 Diagrama de flujo del ciclo de lectura en la EEPB1M
de datos
curso prctico
sobre Microcontrotadores
&irr*: S
&
f:.j ernpl o tl c l ectur de l a F]tr.l ]ROM:
movlw direccion
;
defini.r dtreccin o leer
mowf eeodr
;
infornor lo direccin
;
o1 regi.stro
bsf stotus,rpO
;
bonco 1
bsf eeconl , rd
;
bi t de t ect uro
bcf stotus,rpO
;
banco 0
movf eedoto,w
; dotos hoci.o ly
escrttura movf di recci .on,w
eeodr
byte,w
eedoto
stotus, rpo
eeconl ,vyren
movlw 0x55
mowf eeconz
novlw Oxoo
novrvf eeconz
bsf eeconl ,wr
bcf eeconl ,wren
bcf stotus,rpo
return
;hobi l i to escri
end
; FUSIBLES:
; MEI.ORIA DESPROTEGIDA
; WATCHDoG DESHABILITADo
;CRISTAL 4 l.lttz
;P0ltER UP TIttlER 0ll
Figun 10.3 Diagnma de flujo det cclo de escritura en la EE1R1M
ry
ry
ffi
;-+,|ANEJo DE LA EEpRfi--
ti st
P=16c84
'
radtx hex
; lllAPEo DE MEITORIA
stotus equ
portb
eedoto
eeadr
di recci on
byte
t r i sb
eeconl
eeconz
Ox03
Ox06
OxQS
0x09
OxOc
OxOd
0x86
0x88
0x89
0
1
?
3
equ
equ
equ
equ
equ
equ
equ
equ
I
ticlo de escritura
El ciclo de escritura comienan cargando en EEA-
DR la direccin de la posicin que se va a escribir y
con el regisuo EEDATA el vdor que se va a grabar.
Despus se debe aadir una secuencia de instruc-
ciones que inician la escritura, en la cual participa
el registro EECON2. Este regisuo, que enealidad
no se halla establecido fisicamente, slo asume fun-
ciones de seguridad en el proceso cargndose en l
dos valores concreros:
55H y AAH. El tiempo de
estos pasos es un rspecto crtico, de manera que se
recomienda que se siga estasecuencia. las interrup-
ciones deben deshabilitarse mienuas se ejecua esre
procedimiento. El zr\[REN en EECONI debe
ponerse en uno para habiliar el't7RITE. Esto pre-
viene escrituras accidentales en la memoria EE-
PROM de datos. El z\IREN debe ponerse en
cero en todas las ocasiones, excepto cuando se eje-
cuta \7RITE, ver figua 10.3.
AI escribir un dato en esta memoria, se bo-
rra automticamente
el dato anterior y se graba
;I.OPEO DE BITS
rd
equ
wr
equ
wren
equ
?P0
equ
oro
i ni ci o
bsi
novlw
'
mowf
bcf
cl r f
'
movlw
mowf
rovlw
movwf
col t
bsf
escrcompleto btfsc
goto
bcf
col l
mowf
ci cl o goto
lecturo movf
OXWO
stotus, rpo
b, W'
tri sb
stotus, rpo
portb
s' owLO,
byte
OxO0
di recci on
escri turo
stotus, rpo
eeconl ,wr
escrcompleto
stotus, rpo
l ecturo
portb
ci cl o
di recci on,w
;bonco 0
;byte de
iryueba a g?abor
;mostror
;doto en el puerto
;direccion hoci.o
;
boncol
;
l eer
;doto de to EEPKT
;doto-> r
;retorno doto
;en ,
; deshobi l i to
;bonco0
bsf
bsf
novwf eeodr
stotus, rpo
eeconl, rd
bcf stotus,rpo
movf eedoto,w
return
novwf
movf
novrrf
bsf
bsf
escri turo
#
&n;
cuso pnctico
sobre nicmcor,frotado?s
frgun lM dip de ejmicio de tectun y esritun en ta
I
permite ahorrar pines del microcon-
trolador; al igual que ocupan poco
espacio y consumen poca potencia.
Cuando se ha decidido por el uso
de este tipo de dispositivos, el paso
siguiente es seleccionar uno de los dos
protocolos posibles de comunicacin
con la EEPROM serial
( 2 o 3 hilos).
La eleccin de los dos hilos se
qrta
10.5 Diagrama esquemtico de lectura y escritura en ta EEPRyM des
debe hacer para aplicaciones que re-
quieran bus IzC (este
es un mtodo
' :iEvo. El tiempo de escritura es controlado
:.:r =i temporizador (timer
0) del PIC. Este tiem-
: :uede variar segn las condiciones de voltaje
;
=:'rperatura, al igual que entre diversos tipos
.r ::cuitos integrados.
-\l
completar el ciclo de'IIRITE, el bit\XIR
;r :\f,ne en cero automticamente y se activa la
n:.lera de escritura completa en EE. El progra-
-,'
puede detectar si el ciclo de'SIRITE se ha
:, -rplido habilitando esta interrupcin, miran-
o
-
bandera EEIF o el ir\MR.Los bits EEIF y
Tf.E\ deben ser limpiados por programa. En
",le
Egura 10.4 vemos un ejemplo de manejo de
-e-:rra
v escritura en la EEPROM y su diagrama
s-emtico se ve en la figura 10.5.
Una buena precaucin consiste en verificar
; escritura de la EEPROM ha sido correcta,
: lo cual se suele restar el dato escrito con el
orr existe en el registro EEDATA. Si no se ha
r:.lucido erro el sealizador Zpasaavaler 1.
hr:
'
:.3s
HH)fi tM serral es
L:ecnologa de las memorias seriales ha surgi-
,o: ;omo una solucin para sistemas que requie-
rr baio tamao y poca potencia. Entre sus prin-
:rles ventajas se cuentan:
.
-
pueden conectar fcilmente con micropro-
;:sadores o microcontroladores, incluso algu-
:os de ellos tienen oines dedicados a esa labor.
.
l:ansferencia de daios de manera serial, lo que
de comunicacin de datos serial que estudiare-
mos ms adelante), inmunidad al ruido y dispo-
nibilidad limitada de pines. La eleccin de los
tres hilos es conveniente en casos de requerimien-
tos limitados de protocolos, un protocolo SPI
(otro mtodo de comunicacin serial), alta fre-
cuencia de reloj o en aplicaciones de 16 bits.
Brs clc tr*s hilos. En este grupo se encuentran
los dispositivos con la nomenclatura 93)OOO(
En ellos se requieren cuatro pines.
l l us dc cl os hi l os. La nomencl atura comn es
24)CCCK,y 85)OOO(, ver tabla 3. El protocolo
IzC utiliza comunicacin bi-direccional maestro/
esclavo. Thnto el maestro como el esclavo pue-
den operar como transmisor o como receptor.
La operacin dd bus debe ser manejada por el
maestro, quien genera la seal de reloj serial y las
condiciones de inicio de detencin.
Estas memorias tienen un pin o terminal
l l amado SCL que reci be l os pul sos generados
por el maestro, y otro l l amado SDA que ma-
nej a el fl uj o de datos bi di recci onal mente. Este
di sposi ti vo no requi ere de un pi n habi l i tador,
ya que en este esquema la transferencia de in-
formacin slo SE puede iniciar cuando el bus
est libre. Cada memoria tiene su direccin de-
termi nada medi ante l os pi nes A0, A1 y A2; en
una red sl o responder l a memori a cuya di -
recci n coi nci da con l a di recci n que va enca-
bezando la trama de informacin.
curco prctico
sobre Microcontrotadores
&<n:.#
:l
+5V
+5V
F
lrl
=
a
Cuando un'microcontrolador desea entablar
comunicacin con la memoria, debe enviade una
serie de bits que lleven la siguiente informacin:
1.Se enva el bit de arranque
2. El cdigo 1010 (propio de estas memorias)
3. La direccin del dispositivo (A2, A1, A0)
4.Un bit que indica que se desea escribir
('0') en
la memoria
Despus de esto, l a memori a debe envi ar
un reconoci mi ento para i nformarl e al mi cro-
control ador que reci bi l a i nformaci n. Di -
cha seal , l l amada ACK, consi ste en poner el
bus en un ni vel baj o (l o hace l a memori a).
Despus el mi crocontrol ador debe envi ar l os
bi ts que.corresponden a l a posi ci n de me-
mori a que se qui ere l eer o escri bi r; nuevamen-
te l a memori a enva un reconoci mi ento. El
paso si gui ente depende de l a operaci n que
se vaya a ej ecutar.
. I , i : , , j , : "
I
.
En este ejemplo se har un contador de 0 a 9
con uh interruptor pulsador y un display de sie-
te segmentos, figura 10.6. El nmero que se
Figura 10,6 Ejemplo del manejo de una memoria
muestra en el display se va a almacenar sim
tneamente en una memori a 24LC0I.En
caso, l os pi nes de l a di recci n se conectaro:
tierra, al igual que el pin \lP La resistencia
4.7 Kohm conectada al pin SDA es neces
dado que di cho pi n ti ene sal i da de col ec
abierto. El display se conecta al puerto A '.'
pul sador al pi n RBO, fi guras 10.6 y 10.7.
El programa lleva el control de la cuenta
mal y almacena en la memoria el mismo dato
se enva aJ displny, El cdigo de este ejercicio
disponible en nuestra pgina en la internet, er
enl ace
, *!
'
! : ' . .
VDD
RB7
RB6
RB5
RB4
RB3

(0
RB2
E
RBl
A.
RBO
osc1
0sc2
VSS
^
vcc^
od
2b
l c
7E
d
c:l
ctt
e
f
s
GND
#
&<t,,
curso prctico sobre Microcontrotadores
Figura 10.7 Montaje del
,b
/ /
x'
'oria
seral
si mul -
En est e
: raron
a
: nci a
de
ecesari a
col ect or
oAyel
0. 7.
:nta
deci-
dato
que
:cicio
esta
TI et , en e.
Una de las herramientas ms tiles que
nos proporcionan los microcontrolado-
res es la posibilidad de manejar inte-
rrupci ones. Las t cni cas di sponi bl es
paramanejarlas deben entenderse muy
bien parapoder aprovechar al mximo
l os recursos y posi bi l i dades que nos
pueden brindar estos dispositivos.
z e del elerctc
curso prctico
sobre Microcontrotadores
&kr*l
#
LJna interrupcin es un evento que obliga a
:tigiil
un estado de reset (o estado de volve :
un sistem pro..r"do. a desatende,
io,
.rn o-
inicializar el sistema), el Contadar dz Prograt
menro la accin que se encuenrre ejecutando
dirige la CPU a la direccin 000H; un
Prograi
dentro del desarrollo normal de un progr"-" y
que incluya interrupciones generahlerlte Se :
llamar a una subrutina. la cual ,rr,r"l-.rrt. ,.
tructura como se muestra en la figura I l.l.
1[f,
,ill,ill[0
I|tlltul
l i r l l
ilt
denomina rutina o servicio de interrupcin.
|
oRG oooq
Las fuentes de interrupcin ms utilizadas
I
G0T0 MArN
incluyen cambios de nivel, flancos de sul
'
'
I oRG @o4H
de bajada en algunos pines y desbordes::"il
lror*,
G0T0 rNT-SERV
temporizadores, es decir, cuando se llenan com-
I ;
p.o groma principol
pletamente (FFH) y pasan de nuevo a 00H.
|
;
La cantidad y el tipo de interrupciones depen-
IINT-SERV:
den de cada referencia de microcontrolador;
|
;
rutino de interrupcin
la lista es la siguiente:
Figura ll.l ubicacin nvrmal de la rutna de intenup:t
.
Por el pin INT (denominada interrupcin ex- Al retornar a la direccin donde se e:
terna). Es cuando al microcontrolador ingresa contraba antes de la interrupcin, se pueir
un fl anco por un pi n determi nado (INT).
perder l a i nformaci n de al gunos regi strr,
'
Por desborde del temporizador TMRO como el de trabajo (W y el de esrado, por
.
Por cambio de nivel en el puerto B (pines
cual es responsabilidad del programador I
RB7:RB4). cer una copia de ellos.
.
Debida al mdulo comparador
'
Debida al puerto pardelo esclavo Tal vez la manera ms adecuada de ha;
'
Debida al mdulo USART esta operacin es a travs de un segmento ,
.
De fin de conversin del mdulo A/D cdigo dispuesto en el interior de un lrl
.
Debida al mdulo LCD CRO. En la figura 11.2 se muesrra un ejer
'
De fin de escritura en la memoria EEPROM plo en donde se almacenan y restauran los:
de datos gistros W y ESTADO. El registro \_TEI
.
Por desborde de los temporizadores TimerL y debe definirse en todos los bancos y en
Timer2 misma posicin tomando como referencia
.
Debi da al mdul o CCP di recci n base (por ej empl o, 0x70, 0x7F
.
Debida al mdulo SSP el banco 0). Los pasos que se siguen para
sol uci n a este probl ema son l os si gui entes:
Cuando aparece una interrupcin, el pro-
cesador guarda en la pila
(stach) la direcein de 1. Almacenar\W' en el banco actual
la instruccin en donde se encontraba y el con- 2. Almacenar el registro ESTADO en el
trol del programa se dirige hacia la direccin 3. Ejecutar la rutina de interrupcin
donde se encuentra la rutina de interrupcin. 4. Restaurar ESTADO (y el bit de seleccin
Cuando sta termina, 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
En el mapa de memoria de programa de los den habilitarse o deshabilitarse, el usuario es
microcontroladores PIC existe una direccin asig- controla las fuentes de interrupcin a travs de
nada (0004H) para ubicar la rutina. Cuando se registro especial llamado INTCON, figura 1l
dtt% kt,:
curco prctico sobre Microcontrotadores
&fl
Figura ll.1 Ubicacin normal de la rutina de intenup:w
l
j
terruPcin
r' ef a
'arnd
rama
;e es-
se en-
puede
gi st r os'
.
Por
l o
dor
ha-
i e hacer
rent o
de
un MA-
r n ei em-
rn l os re-
' -TEMP
svenl a
-' renci a
I a
0x7F
en
n para
dar
. i ent es:
el banco
Ct
ei ecci n
de
I
.rpci n Pue-
|
ario es quie:
travs
de u:
fi gura
11.3
I|' ::tr ESTAD.,1
I : : E ESTAD' , 0
{"' IF ESTADO-TEMP
;
GUARDAI',|DO EL REGISTRO
; DE
ESTADO
;CPIAR
It{ B, l.N REGISIR0
;TEMPOML
, -1i DAR EL ESTADO NO ES TAN SENCI LLO
.T
:I..JE MOVF ESTADO,W AFECTARA LOS BITS
: : - VI SMO REGI STRO ESTADO, PERO LA
: \ )-RUCCI ON SWAPF NO LOS AFECTA
:,-i
ESO LA PODEMOS UTILIZAR
Lorla
':
:
mina el habilitador general o global. Es decir,
l as i nt errupci ones se habi l i t an si se escri be
BSF I NTCON, GI E o se deshabi l i t an si se
escri be BCF I NTCON. GI E.
Registro: INTCON
GIE PEE TOIE INTE RBIE TOIF INTF RBIF
bit 7 bit 0
Direccin:
()Bh
condicin de reset 0000000Xb
GfE: Global lnterrupt Enable o Habilitador general de
i nterrupci ones.
0: deshabilita todas las interruociones
1: habi l i ta l as i nterruoci ones
PE|E: Peripheral lntenupt Enable Blf o Habilitacin de
i nterrupci ones debi das a l os mdul os peri fri cos
0: l a deshabi l i ta
1: l a habi l i ta
T0lE: TMR1 lnterrupt Enable o Habilitacin de interrupcin
del tempori zador TMR0.
0: l a deshabi l i ta
1: l a habi l i ta
f NTE: INT lntenupt Enale o Habilitacin de la interrupcin lNT.
0: l a deshabi l i ta
1: l a habi l i ta
RBfE: RBIF lntenupt Enableo Habilitacin de la intenupcin RBIF
0: l a deshabi l i ta
1: l a habi l i ta
TOf F: TMR} 1verflow Intenupt Flag o Bandera de la
interrupcin por sobrefujo del TMR0.
Se coloca en 1 cuando el TMR0 pasa de 0FFh a 00h;
sta debe ser puesta a 0 por programa.
RBIF:
INT lnterrupt Flag o Bandera de interrupcin lNT.
Se coloca en 1 cuando la interrupcin INT (RB<0>)
ocurre; sta debe ser puesta a 0 por programa.
RB Port Change lnterrupt Flag o Bandera de
i nterrupci n por cambi o en el puerto B.
Se coloca en 1 cuando una de las entradas RB<7:4>
cambi a; sta debe ser puesta a 0 por programa.
--: 50
DEBEN SER RESTAURADOS.
l'rrtr ESTAD0-TEMP, 1
;
RESTAURAND0 ESTADO
:i l l .tF ESTADo_TEMP,0
| | f' .tF
ESTADo
:i l :ttr ff-TEMP, 1
:i l T' F W-TEMP, O
;RESTAURANDO
lll
Figura 11 .2 Ejemplo donde se ilustra como guardar las
copias de seguridad
:.
importante aclarar que los microcontro-
.-: , :-s que sol o cuenten con una i nterrupci n
- -,:Jul o
peri feri co (por ej empl o el 16F84), han
-=-.:.azado el bit 2 (PEIE)
por otros como el
::-: el ADIE, que corresponden a i nterrup-
.-
-..i
como la de la EEPROM de datos.
lambin hay que tener en cuenta que en al-
---.
-,s
microcontroladores el bit 1 (INTF) no se
:
-
-
=flt contemplado. Por estas razones es
.
-'..:niente
verificar el mapa real del registro
.
-
CON para cada tipo de microcontrolador.
t ada una de las interrupciones puede usarse
"
: l S pueden habilitarvarias, dependiendo de
-
=jcacin. En cualquier punto del programa,
.
.uaio
puede desactivar alguna de esas inte-
*-:riones
borrando el bit correspondiente:
Figura | | .3 Regstro INTC1N
-:
INTCON, INTE; i nt. externa
-:
INTCON, RBIE; i nt. en RB
-:
INTCON, TOIE; i nt. por el TMRO
luando ocurre un estado de reset todos es-
:-r;j toman un valor de cero (limpiados).
l ara habi l i tar cual qui er i nterrupci n, es
::-:!ario activar vn bit (GIE)
que se deno-
Figunll'4Funcionamientodelahabilitacindelasintenupciones
c,E f-"
^-,PaocESADoR
curco prctico
sobre M icroconttotadores
&<t
"t
#
Para ent ender est e concept o, podemos
hacer una anal oga con un ci rcui to seri e, fi -
gura I 1. 4. Asumamos que GI E, RBI E, I NTE
y TOIE son i nterruptores en un ci rcui to el c-
tri co y una corri ente qui ere ci rcul ar desde el
punto A hasta el procesador. Para que este
fenmeno sea posi bl e el i nterruptor GIE debe
estar activado, al igual que cualquiera de los
bits que habilitan a cada uno de los tipos de
i nterrupci n.
Cuando se ha confi gurado correctamen-
te al gn ti po de i nterrupci n, exi ste una ban-
dera asoci ada para cada ti po que se pone en
"uno" cuando el l a se ha presentado. Para de-
termi nar el ti po de i nterrupci n basta l eer
cada una de esas banderas.
En el momento que ocurre una i nterrup-
ci n, el procesador l i mpi a el bi t GI E i mpi -
di endo que ocurra una nueva i nterrupci n.
Este bi t se habi l i ta de nuevo con l a i nsrruc-
ci n RETFIE cuando se retorna de l a ruti na
de interrupcin. El programador no debe pre-
ocuparse por esa habi l i taci n ya que esto ocu-
rre automti camente.
i : . r i ; 1; . ; "' r r i i l ' ; ; , 1i ' : : :
- -
La i nterrupci n externa se genera cuando l l e-
ge una $eal
externa al pi n INT. El bi t 6 del
regi st ro OPCI ON det ermi na si est a i nt .
rrupcin la generar un flanco de subida
un flanco de bajada. Cuando aparece un flar..
co adecuado en el pin INT, la bandera INT:
(bi t 4 del regi st ro I NTCON) se habi l i t a. E' .
bandera debe desactivarse mediante un cc-
digo en el programa dentro de la rutina c
interrupcin, antes de habilitar de nuevo e i.
i nt errupci n.
Adi ci onal ment e, si el di sposi t i vo t i en,
otros perifericos que puedan originar interrur-
ciones, entonces poseer internamente algunc.
registros adicionales que permitan habilitarl
y otros registros donde se almacenen los ;:
que actuarn como banderas indicadoras. D.-
pendiendo del dispositivo, los registros son:
.
PIE1 y PIRI
.
PIE2 y PIR2
Estos registros no mantienen una ubi
cin estnder para cada uno de sus bits.
tipo de microcontrolador posee algunas vari
ciones sobre la ubicacin de ellos dentro d
registro. Por esta razn, cuando hablemos
uno de los bits de estos registros no darem
su posicin exacta. Dependiendo de la ret!
rencia del microcontrolador PIC, se debe
car su posicin en las hojas de datos.
0sc1
CLKOUT
Pin INT
; Bandera INTF
I |NTC0N,1
i ait el
i rNTcoN, 7
i
rruo e
i instruccln
i Instruccin
; buscada
:
, Instruccin
eiecutada
lnstruccin
en PC-1
011 021 031 01
|
021 031 011 021 031 021 031 011 021 031
I
Latencia de la interrupcin
:
lnstruccin
en PC+1
Figun ll.5 Diagrama de tienpos del compoftamiento del microcontrolador frente a una
lnstruccin
en 0005h
Inslruccn
en 0004h
Instruccin
en PC
Instruccin
en PC
lnstruccin
en 0004h
l.
#
rrr"
curco prcco sobre Mtcrocontotadores
i nt e-
i da o
f'lan-
, NTF
a. Esa
r n c-
, na de
\-o esa
r t i ene
re rruP-
rl gunos
i l i tarl as
los bits
: as. De-
s son:
ubi ca-
r-'.. Cada
ras vari a-
: nt ro
del
l emos
de
daremos
e l a refe-
Jebe
bus-
- l
031 0:
.,ru1-
J-
-
- 0n
: t On
-1 il
'a rnterruPcin
l"
GOTO
: : ,
- DE- I NT:
I NCF
BTFSS
BCF
BTFSC
BSF
BTFSS
BCF
BTFSC
BSF
. ' , : -ANT BASE-VAR
=
OCH
.i ,-:l 0R EQU BASE-VAR+1
ORG 000t1
GOTO I NI CI O
ORG OO4H
GOTO SERV-DE-INT
- - - 3:
BSF STATUS, RPO
MOVLW 1
MOVWF TRISB
BCF STATUS, RPO; BANC0 0
CLRF CONTADOR
BCF PORTB. 4
BCF PORTB, 5
BCF PORT8. 6
BCF PORTB, 7
BSF OPTI ON, I NTDEG
BCF I NTCON, I NTF
;MRM
BAIIDEM DE Il.tfERRUrcIO,l
:
BSF I NTCON, I NTE;
-
;ENMASCARA
INT. EXTERNAS
BSF I NTCON, GI E
: HABI LI TO I NTERRUPCI ONES
: :. el futuro es muy posi bl e que se desa-
: : mdul os adi ci onal es que puedan gene-
' -
--rrupci ones,
de manera que no ser a raro
-
, :.::r ms adel ante pares de regi stros como
. i -l r' el PIE3. En apartados si gui entes don-
. : : : -
gr ogr omo
cuent o el nmer o de
. - - - sr ci ones en l o ent r odo RBO, / I NT
=
-
r esul t odo 1o muest r o en 4 LED
:
-
- -
: : odos en RB4. . RB7
--
i st D=16c84
:
=r ncl ude
<c: \ p16c84. i nc>
- CONFI G
11H
L\ : UL L
de habl aremos sobre l os tempori zadores TMRI
y TMR2, not aremos l a i nf l uenci a de est os re-
gi st ros PI E y PI R.
Exi ste un trmi no conoci do como l aten-
ci a de l a i nterrupci n, que se defi ne como el
ti empo que transcurre desde que apareci l a
i nt errupci n (l a bandera se ha puest o en uno)
hast a el moment o en que l a i nst rucci n ubi ca-
da en l a posi ci n 0004H empi eza a ej ecutarse
,
este ti empo es de 3 TCY (ci cl os de i nstrucci n)
par a i nt er r upci ones si ncr ni cas ( como por
ej empl o l as proveni entes de un tempori zador).
Para i nt errupci ones no si ncrni cas (nor-
mal ment e l as ext ernas), como l a I NT o l a del
cambi o en el puert o B, el t i empo de l at enci a
est ent re 3 y 3, 75 TCY (ci cl os de i nst ruc-
ci n) , f i gur a 1 1. 5.
En esta figura podemos observar el proceso
que ocurre desde que se presenta una interrupcin
Figura 11.6b Circuito de aplicacin delejemplo 1
Regi sho 0PCl 0N
BIT 6 BIT 5
INTEDG GRTS
Selector de flanco
I : Flanco de subida
0: Flanco de bajada
PT1
BTFSS
BCF
BTFSC
BSF
BTFSS
BCF
BTFSC
BSF
BCF
;
LI MPI A
RETFI E
END
CONTADOR, F
CONTAD0R, 0
PoRTB
, 4
CONTADOR, O
PORTB, 4
CONTADOR, 1
PORTB, 5
CONTADOR, 1
PORTB, 5
CONTADOR, 2
PORTB, 6
CONTADOR, 2
PORTB
, 6
CONTADOR, 3
PORTB, 7
CONTADOR, 3
PORTB, 7
I NTCON, I NTF
LA BANDERA CORRESPOND.
BI TT
RBPU
Figura l l.6a Cdigo det ejemplo 1
Figura 11.7 Configuracin del flanco que se va a leer por el pin INT
Curso prctico sobre Microcontroladores
&km: S\
ruff
I
i"'
originada.por un flanco de subida por el pin
INT. La bandera asociada se activa al siguien-
te ciclo
Qy
permanece en ese estado hasta que
no sea borrada. Desde all hasta que el micro-
controlador llega a la direccin 0004H, han
transcurrido de 3 a 4 ciclos de instruccin. El
bit GIE que estaba en alto
(de lo contrario no
se hubiera podido haber ledo la interrupcin)
es puesto en bajo automticamente por la CPU
para evitar leer otras interrupciones mientras
ejecutamos la actual. La mejor manera de en-
tender el manejo de las interrupciones es a tra-
vs de un ejemplo.
Eiemplo de interrupcin externa
El programa que observamos en la figura II.6a,
cuenta el nmero de transiciones positivas en el
pin RBO/INT
(pin 6) de un PICI6F84 y muestra
el resultado de la cuenta en cuatro diodos LED
colocados en las salidas RB4 a RB7, figura 11.6b.
En la parte A del programa se configura el puerto
RB0/INT como entrada y los dems pines del
puerto B como salidas. El bit INTDEG del regis-
uo OPCION,figura 11.7, debe ponerse en
"uno"
para que la interrupcin externa ocurra en el flan-
co positivo de la seal en RB0, o ponerse en 'tero"
para que Ia interrupcin ocurra en el flanco nega-
tivo de la sed.
Luego, el ir INTE se activa, bloque B del
programa. Cuando el procesador entra en estado
de reset, todas las banderas se limpian automti-
camente; sin embargo, es mejor ser precavidos y
ponerlas manualmente en
"cero" (no todas las
marcas de microcontroladores ejecutan un reset
tan limpio como los de Microchip).
Finalmente, el bit GIE se pone en uno
para habilitar las interrupciones y luego el
programa entra en modo SLEEP, bloque C
del programa.
Al ocurrir la interrupcin, el contador de
programa se almacena,yla ejecucin del pro-
grama se direcciona ala posicin 0004H, en
donde nos ubicamos en la direccin de la rur
na de interrupcin.
Mi ent ras nos encont ramos ej ecut and.
una ruti na de i nterrupci n, el bi t GIE ser;
deshabi l i tado por l o cual no se ati ende a ni r.-
guna otra i nterrupci n hasta que no sal gamc
de esa ruti na
(esto
puede ser una desventa' ;
ya que es posible que en un diseo especi;-
deseemos esa caractersti ca).
En la rutina de interrupcin, bloque D, e
contador se incrementa y se visualiza en lo,
diodos LED. En este caso se us una tcnic
un poco dispendiosa para. activar o desactiva:
los bits y4 que en el siguiente ejemplo se usan
el bit P.B3 para otros propsitos.
El bit bandera asociado con la interru
cin externa se limpia para permitir que
procesador se entere de que l a peti ci n de i
terrupcin ha sido atendida. La instruccic
RETFIEhace varias cosas. Ella habilita de
vo el bit GIE y configura el contador de
grama a su antiguo valor (el
que tenfa antes
la interrupcin). El procesador entra en
do de SLEEPhasta que ocurra una nueva
sicin en el pin RBO/INT.
El estado de SLEEP es una posibilidad
brindan algunos microcontroladores, por el
se entra a un modo de baio consumo; este
cepto lo estudiaremos en una leccin
Interrupciones por
cambio en
un pn
RB
El PICI6F84, il, igual que muchos otros,
mite establecer como fuente de interrupcin
cambio de nivel en algunos pines determi
dos. En el PI Cl 6F84
(al i gual que en
16C5541556), la interrupcin se genera en
pines RB4, RB5, RB6 y RB7. Esta
ca puede usarse como una buena tcnica de
rro en el consumo de potencia de un si
El procesador se puede poner en reposo
(
modo SLEEP) y se despierta slo cuando
#
errr"
curso prftco sbre tticrrcontotadores
'uti-
ndo
ser
ni n-
tmos
nt aj a
. l
)eclar
D, el
: n l os
icnica
ctivar
usar
erruP-
que el
de i n-
ucci n
le nue-
l e pro-
ntes de
:n esta-
ra tran-
dad que
rr el cual
ste con-
osteri or.
:fos,
Per-
upci n
el
:termina-
re en l os
era en l os
ractersti-
ca de aho-
n si stema.
ePoso
(en
cuando
el
.
-=:i o
cambi a el estado de al guna de esas en-
'
.:.s. El procesador entonces ej ecuta determi -
' - -: s
rareas y l uego vuel ve a reposo.
El procedi mi ento general para acti var este
-
Je i nt errupci n es si mi l ar al que se si gue
:
-ndo
se va act i var l a del t i mer} o l a i nt e-
-: : pci n
ext erna (l NT). Se debe act i var al bi t
L8I E del regi st ro OPCI ON y l uego act i var
. : : , i r habl l i t ador gl obal de i nt errupci ones
GI E). La operaci n i nt erna del procesador,
: r. i st e t i po de i nt errupci n, consi st e en l eer
.
, : i bbl e
al t o del puert o B y hacer una copi a;
. . rrerrupci n se genera cuando l a l ect ura del
i ol e afto del puerto B di fi ere de esa copi a.
- -nt ro
de l a rut i na de i nt errupci n es i m-
: : rant e que se l ea el puert o B para act ual i -
-. :
l a copi a. Para hacerl o, ut i l i zamos l as si -
.
- - i nt es
i nst r ucci ones:
BCF INTCON,RBIF
MOVF PORTB,\r
Se observa que se limpia la bandera de inte-
---:cin
en RB, pero el estado del nibble ako
-:- rurto B an sigue siendo diferente a la anti-
:-. copia, por eso el procesador inmediatamen-
-:
.crivar la bandera RBIF y se activar de nue-
-a
interrupcin. Por esta razn el cdigo ante-
-
-:
es incorrecto, la manera adecuada es as:
MOVF
BCF
PORTB,\T
INTCON.RBIF
-\l
ejecutar MOVF PORTB,'W', la antigua
-
:ia del nibble alto toma el estado actual y lue-
: se limpia la bandera. De esta manera, la si-
:--:nre interrupcin ocurrir cuando eI nbble
-:
del puerto B cambie de nuevo.
--,--,1 ra analizar emos algunos inco nven ientes
- --
se pueden presentar al trabaj ar con i nte-
"--ci ones,
con l o cual posi bl ement e ahorre-
*
. muchas horas de trabai o.
Si tenemos un programa donde debemos atender las
interrupciones mientras se ejecutan varias tareas (TA-
REA_l), pero no deseamos que se atiendan interrup-
ciones mientras se ejecutan otras tareas (ll{REA_2),
se puede pensar en el cdigo de la figura 11.8.
De manera i nesperada f ui mos i nt errum-
pi dos mi ent ras ej ecut bamos el cdi go de l a
TAREA_2. Por al guna razn l a i nstrucci n
BCF I NTCON, GI E no est haci endo su rra-
baj o.
Que
pas ent onces?
ocurri
una i nt e-
rrupci n mi ent ras se est aba ej ecut ando BCF
INTCON,GIE?
Cuando ocurre una i nterrupci n, l a i ns-
trucci n que se est ej ecutando en el momen-
to termi na de cumpl i rse y l uego el programa
se di ri ge a l a di recci n 0004H donde se en-
cuent ra l a rut i na.
AI ej ecutar RETFIE el programa retor-
nar a l a pri mera l nea de TAREA_2 con l as
i nt errupci ones an habi l i t adas . Por eso el bi t
GIE debe l i mpi arse, pero debi do a que l a ej e-
cuci n de l a rut i na de i nt errupci n causa que
di cho bi t se ponga en uno, cuando ej ecut a-
mos l a ruti na TAREA-2 l as i nterrupci ones
an se encuent ran habi l i t adas. La sol uci n se
muest ra en l a f i gura 11. 9.
LAZO:
TAREA-I :
BSF I NTCON, GI E
;
SE REALIZAN TAREAS
;
ACEPTANDO INTERRUPCIONES
;LAS
TAREAS VAN EN ESTA
;PARTE
DEL PROGRAMA
BCF I NTCON, GI E
;AHORA
SE DESHABILITAN TODAS LAS
;
I NTERRUPCI ONES
TAREA-2:
;
SE REALIZAN VARIAS
; TAREAS
SI N ATENDER I NTERRUPCI ONES
;ESAS
TAREAS VAN EN ESTA PARTE DEL
;
PROGRAMA
GOTO LAZO
Figura 11 .8 Cdigo del problema 1
Curso prctico
sobre Microcontroladores
hrerrupui:tJreJ llr lls r.uicllc ulttulalutes ?)C
LAZO:
TAREA-]-:
BSF I NTCON, GI E
;
REALIZA VARIAS TAREAS ACEPTANDO
;
I NTERRUPCI ONES
APAGO-INTERRUPS :
BCF I NTCON, GI E; APAGO EL GLOBA-
BTFSC I NTCON, GI E
GOTO APAGO-INTERRUPS
TAREA-Z:
;
REALIZA VARIAS TAREAS
; SI N
ATENDER I NTERRUPCI ONES
GOTO LAZO
Figura 11 .9 Solucin al problema 1
Notemos que el bitGIE se ha limpiado yve-
rificado, para estar completamente seguros de que
se ha limpiado correctamente. El proceso debe re-
petirse cuantas veces sea necesario para que est
deshabilitado.
As, si una interrupcin ocurre mientras se eje-
cuta BCF INTCON,GIE, la rutina de servicio de
interrupcin activarese bit, pero el programa con-
tinuarcon la instruccin BTFSC INTCON,GIE
donde detecta que GIE est activado y por lo tanto
se debe hacer algo para apagarlo. De esta manera el
programa slo llegar aflA.REA-2 despus de que
se ha constatado que el bitGlE ha sido limpiado.
Al i ni ci o de l a ruti na de i nterrupci n, l os regi s-
tros'Wy ESTADO se almacenan en'W-SEGUR
y ESTADO-SEGUR. Asumamos que estas va-
ri abl es son 20H y 2l H. Si l a i nterrupci n apare-
ce cuando nos encontramos en el banco 0, el l os
se al macenan en l as di recci ones 20Hy 21H. Pero
si l a i nterrupci n ocurre cuando nos encontra-
mos en el banco 1, esos regi stros se al macenan
en l as di recci ones A0 v Al H.
Nuestro servicio de interrupcin debe conmu-
tar al banco 0 y luego restaurar'W.y ESTi\DO,
pero en real i dad recuperamos l os val ores que
buscaron en A0 y A1. En el caso part i cul ar
-
un 16F84, est o no es un probl ema grande,
que l a RAM del usuari o se di vi de en dos banc
l os cual es uno es espej o del ot ro. Est o es, 2('
y AOH de hecho estn en l a mi sma posi ci n. :
probl ema real es cuando se uti l i zan mi croco:
trol adores donde l os bancos no son espej os e .
tre el l os. En el l os 20F{y AOH son regi stros cor:
pl etamente di ferentes.
Para sol uci onar ese probl ema, se pueden pe
mi ti r i nterrupci ones sl o cuando nuestro progr.
ma se encuentra trabaj ando en el banco 0. I
hecho, usual mente uti l i zamos el banco I pa:
configurar los registros tri-estado lo cual tor'
muy poco ti empo, y en muchos casos, deshabi
tar l as i nterrupci ones durante este l apso de ti e:
po no nos trae ni ngn probl ema, fi gura l 1.l t.
|
; voy
ol bonco l -
I APAGO-I NTERRUPS:
' BCF I NTCON, GI E
i ;
DESHABI LI TO
;
I NTERRUPCI ONES
;
BTFSC I NTCON, GI E
I
GOTO APAGO-INTERRUPS
I
BSF STATUS, RPO; BANC0 1
; TRABAJO
CON TRI SA O TRI SB
BCF STATUS, RPO; BANCO 0
BSF I NTCON. GI E
;
AHORA. HABI LI T0
: I NTERRUPCI ONES
Figura 11.10 Proble-.
Todos las observaciones que aqu se analizar
'
pueden resultar muy obvias despus de ver su ,
lucin. Pero si no la conocemos seguramente E*
taremos varios das averiguando que pas.
Cuando se desarrol l an product os
(sobre t c :
de cal i dad comerci al ) es muy i mport ant e . -
t ender l os probl emas que se puedan presen: -
En ese proceso de ent endi mi ent o se puec:
empl ear vari os d as (meses, aos o t al vez n--
ca). Cuando no se l ogra un ent endi mi ent o :
tal del probl ema, es cuando empi ezan a fa
l os product os con el t ranscurri r del t i emp,
f f i \ ^a
dt& fu<m:.
curco prctico sobre Microcontrotadores
&fl
L-
l -
)e
ra
i-
. l _
) .
: "
' z
t n
so-
, do
3n-
t ar .
t
- -
- l gl t
Jl l -
t o-
l l ar
Como hemos visto en lecciones anteriores, den-
tro de los microcontroladores existen unos m-
dulos que podemos utilizan parafunciones exac-
tas de medicin de tiempo, llamados tempo riza-
dores. En esta leccin analizaremos estos elemen-
tos internos presentes en los microcontroladores
PIC. En la seccin de programacin, desarrolla-
remos ejemplos prcticos para el manejo de es-
tos importantes elementos.
curso prctico
sobre Microcontrotadores
&<rr,.t
#
En la
frmilia
de los microcontroladores PIC
aparecen tres mdulos temporizadores denomi-
nados: Timer0
(TMRO),
Timerl
(TMRI) y Z-
rnn2
(TMR2).
Posiblementeel Tirnerl sea el ms
verstil ya que puede usarse para monitorear el
tiempo entre las ffansiciones de una seal ocu-
rridas en un pin de entrada o para controlar de
manera precisa el tiempo de transicin en un pin
de salida. El Timer0 puede utilizarse para contar
eventos externos
(transiciones
de seales) o ge-
nerar interrupciones cuando ha ocurrido un
nmero deseado de eventos.
Existe la manera incluso, a travs de un m-
dulo interno denominado prescalador, de leer
entradas a una rata de velocidad de hasta 50
Mhz, es decir, que podemos lograr mucha ms
velocidad que cuando leemos normalmente
entradas por los pines; este ejercicio lo analiza-
remos en el proyecto del frecuencmetro inclui-
do en este curso.
El Tirner2 tiene mucha ms libertad en su
funcionamiento y adems de temporizado\
puede usarse para manejar el perodo de una
seal de salida en formato de modulacin por
ancho de pulso
(P\7M).
En este tipo de seal,
la salida de un pin permanece en estado lgico
alto durante un porcentaje determinado de cada
periodo.
El porcentaje se controla escribiendo en el
registro CCP
(CapturelCornparelP'WlVI),
y el
periodo de la seal de salida se controla por el
Tirner2. Este tipo de seales es muy utilizado en
el control de rnotores, luces, etc.; el mdulo CCP
lo analizaremos en detalle en la siguiente leccin.
Temporizador 0 (Timer TMR0)
Este temporiztdor puede entenderse como un
registro de 8 bits, con el cual podemos hacer
operaciones de lectura o escritura en cualquier
momento. Puede incrementarse auromtica-
mente ya sea por medio de los ciclos internos
del reloj o poq rnedio de pulsos externos que
entran por un pin especlfico del microcontro-
lador y nos sirven para crear bases de tiemp'
muy precisas o para contar eventos externos.
Por este motivo a este mdulo se le ha d=-
nominado temporizador/contador, ya que pueft
configurarse para que sirva de temporizador o q'!c
acte como contador de eventos.
Cuando el Tirner} inicia su operacin, s
incrementa con cada ciclo de mquina o con
cada pulso externo introducido por el pin RA+
TOCKI; la eleccin de cual va a ser la fuente
seal se configura en el registro OPCIN.
registro TIMER0 (de
8 bix) se va llenando h
ta llegar a FF; si en ese momento llega otro i
cremento pasa a 00 y justo ahl puede ge
una interrupcin, con lo cual podemos gen
una base de tiempo confiable.
El nmero de veces que el contador llega
cierto valor puede ser contado usando offo
tro. El TMR0 es un mdulo autnomo. de
nera que el procesador puede estar ejecu
cualquier tarea mientras que el tempori
TMR0 se encuentra trabajando.
[,as posibles salidas que podemos obtener
TMRO son dos: la primera, es la lectura del
gistro TMRO (H'01'),
el cual podemos leer
cudquier momento y tomar decisiones sobre
lectura, y la segunda, es generar una in
cin por desborde del registro, es decir,
se llena tomando el valor de FF y pasa a 00.
El registro OPCIN (OPTIOII)
cuya
tructura la estudiamos en la leccin 8 de
curso, es el que utilizamos para configurar
funcionamiento de este mdulo de te
cin. El bit 5
(TOCS)
lo configuramos
que elTMRO funcione como temporizador
incremente con el reloj interno de la mqui
o como contador
(se incremente con los
sos externos ledos por un pin determinado
microcontrolador llamado TOCK). Para de
tar cul es el pin que corresponde a esta f
cin en cada tipo de micro, debemos refe
#
&t*
curco prcco sobre Microcontotadores
mPo
)s.
r de-
uede
) que
' n, se
, con
RA4/
rte de
N. EI
r has-
ro in-
:nerar
:nerar
llega a
r regis-
le ma-
rtando
izador
ner del
del re-
leer en
rbre esa
terruP-
cuando
00.
uya es-
de este
5urar
el
tporiza-
ros para
ador
(se
quina)
los pul-
rado del
ra detec-
sta fun-
; referir-
Pin de entrada
Tem porizador/Contador
nos a las hojas de datos. Con un cero
(0)
en este
irelTMR0 funciona como temporizadot y con
un uno
(l) funciona como contador.
Hay que tener en cuenta que si el TMR0
se ha configurado como contador, l slo fun-
:ionar con flancos, no con niveles; es decir,
que slo contar las transiciones de cero a uno
t' lanco de subida), o de uno a cero (flanco de
ra.iada). Por esta razn se le debe decir al
TMR0 qu transicin queremos que cuente
ninado TOSE; poniendo exe bit en cero
(0),
:lTMR0 contar todos los flancos de subida
-.-
ponindolo en uno (1), el TMRO contar
:odos los flancos de bajada.
Para modificar los contenidos del registro
OPCIN, existen dos opciones: la primera
:onsiste en ubicarnos en el banco correspon-
ente, cargar'W'con el nmero que llevaremos
OPCIN y pasar los contenidos de \7 a di-
:ho registro mediante la instruccin MOVWF
OPCION, luego se debe retornar al banco
:nicial para continuar trabajando normalmen-
:e. La segunda no requiere movernos de ban-
:o, simplemente consiste en dar la instruc-
:in especial OPTION, la cual mover in-
nediatamente los contenidos que tengamos
-n
ese momento almacenados en el registro
T al registro OPCIN.
La fuente de seal hacia el TMRO puede
ier sometida a un proceso de divisin de fre-
,uencia a travs de un mdulo denominado
.l prescalador, figura 12.1. En este mdulo
-e
frecuencia de entrada es dividida por un
Figura l2.l Esquema en bloques del TMR0
valor determinado por los bits 0, I y 2 del
registro OPCIN, que corresponden al va-
l or PSO, PS1 y PS2, segn l a t abl a I 2. 1. La
cuenta o la tempozacin del TMRO puede
hacerse sin la intervencin del prescalador;
para hacerlo, debemos poner un uno
(1) en
el bit 3 del registro OPCIN: PSA.
Para tener una lectura confiable cuando
vamos a tabajar con una seal de reloj exter-
na, es mejor tener en cuenta las siguientes re-
comendaciones:
1. Si no se va a utilizar el prescalador, la entrada
debe permanecer en alto (o en bajo) durante
al menos dos
(2)
perodos de oscilacin del
reloj del microcontrolador (Tosc).
2. Si se va a utilizar el prescalador, el periodo de en-
trada debe ser de al menos cuatro
(4)
Tosc dividi-
0Pcr0N
3210
0
l o
0
l o
1
l r
'l
1
2
4
8
16
32
64
128
256
labla l2.l Valores configurados en el registro
hPC\N
pan
el
prescatador
0
1
0
1
0
1
0
I
curco
prcco
sobe Microcontotadores
&n;#
t-
it'fif8'.t
Figura 12.2 Esquema deltuncionamiento delTMR0
dos por el valor del prescaladot y los niveles altos
y bajos deben ser mayores a 10ns de duracin.
Si existe una operacin de escritura sobre
el TIMER0, el i ncremento se i nhi be por l os
siguientes dos ciclos de instruccin. Esto pue-
de compensarse ajustando el nmero cargado
en el registro.
Hl
Fres*aladnr
Como ya se mencion, el prescalador es un m-
dulo interno que divide la frecuencia de reloj de
entrada al temporizador. Para ejecutar esta tarea
utiliza como factor de disin el nmero confi-
gurado en OPCIN en los bits 0,1 y 2. De esta
manera el usuario puede jugar con este factor de
divisin para lograr un intervalo de tiempo preci-
so (en
el caso de que trabaje como temporizador).
En este punto cabe resaltar que para ajustar un
intervalo de tiempo (por ejemplo I segundo) se
puede manipular, adems del prescalador, el tipo
de oscilador externo que ms se ajuste; en el pro-
yecto Reloj Digitd con PIC presente en esre curs:
observaremos como se cre un intervalo eXcto c:
un segundo mediante un cristal de 1.87MH2.
La nica manera de no prescalar el tempori-
zador es asignarlo al perro guardin
(uatchdog
Se trata de un registro de 8 bits que cumple cor
una labor muy especfica (como
veremos ma:
adelante) al cual podemos asignar este factor dr
divisin. Algunos autores mencionan que cuan-
do se asigna al TMR0 funciona como prescala-
dor y cuando se asigna al uatchdogfunciona comc
postescalador. Sin embargo en muchas fuentes
bibliogrrficas se conoce simplemente como pres-
calador sin distinguir si hace el trabajo de pre o
de post. El manejo del watchdoglo analizaremo
detenidamente en una leccin posterior.
Veamos ahora algunas recomendaciones
el uso del TIMERO.
i { i . l ; { r : r t ' ar ' ' , ! , u, ' , i i l h' t l : t {i
Los pasos son los siguientes:
.
fuignar el prescakdor
.
Configurar el temporizador colocando
bits adecuados en el registro OPCIN
o
Para inicializar el temporizador, sim
mente debemos escribir un nmero en el
gistro TIMER0, o borrarlo. Cuando se
cargado.con un nmero el tempori
cuenta desde ese nmero, figam, L2.2.
.
IJna vezha empezado a trabajar no es
sible detener al TMRO.
En el momento del
+ desbordeocurre
una nterrupcin
Cuenh hash FF-N
..sr(l
q{
El contador se
incrementa desde
aqu
El TMR0 se carga con
este valor (N) y desde
aqur empreza a conrar
Figura 12.3 Diagrana de bloques del
L
#
&r*
curco prctico sobre Microcontotadores
Pro-
lrrsO
ode
L
pri-
lod.
: con
ms
or de
uan-
rcAa-
Dmo
Entes
Pres-
?re
o
mos
5
Para
rdo
los
t
lmple-
n el re-
l seha
zador
t.
t es
Po-
a delTMR2
-t
P
Curco prctico
sobre Microconotadorx
ar"#
.
El temporizador se mantendr contando siem-
pre y cuando no se haya borrado o escrito me-
diante instrucciones del programa o el microcon-
trolador no se haya inicializado de nuevo.
.
El temporizador/contador debe ser recar-
gado despus de cada sobreflujo para repeti-
dos intervalos de tiempo. Si esto no se ha he-
cho, FF resultar en cada ocasin.
. :r;o rs c{rn{s c*{nta rl l rt' rI ti n-er{-} *sr.
:-:r-:i i :ndu rl goi
.
Mediante repetidas lecturas en el registro,
o chequeando un bit de ese registro.
.
Mediante interrupcin en el momento
del sobrefl uj o de FF a 00. Asl es como nos
damos cuenta que el temporizador ha ter-
minado de contar. La bandera de interrup-
ci n es l a sal i da.
rs12
El Timer2 es un temporizador de 8 bits que
slo puede configurarse para que su fuente de
seal sea el reloj interno, de manera que slo
sirve como temporizador. Cuenta con un m-
dulo prescalador, un mdulo postescalador y
un registro para el ajuste del periodo. El pres-
cdador divide el tren de pulsos que le llegan
por un valor determinado (I,4
o 16).
El diagrama de bloques del TMR2 es el
que se aprecia en la figura 12.3. Como pode-
mos observar, el TMR2 se incrementa por el
reloj interno (fosc/4)
desde 0x00 hasta el n-
mero establecido por el registro del periodo
tPR2).
Si en ese momenro ocurre orro incre-
mento, la cuenta pasa de nuevo a 0x00.
El registro del periodo se denomina PR2, el
cuel es de 8 bits y sobre l podemos hacer opera-
dones de lectura o escritura, de manera que po-
demos modificar el momento del desborde.
En el registro PR2 configuramos un nme-
ro determinado el cual es vigilado permanente-
mente por un mdulo de comparacin, y cada
su que el valor contenido en elTMR2 concuer-
da con el valor contenido en el registro del pe-
riodo, se origina un pulso hacia el postescalador.
En l se ejecuta una nueva divisin de la
salida del comparador y puede acrivar la bandera
de interrupcin dentro del registro PIR1 (recor-
demos de la leccin 11, que el registro PIR es
propio de cada tipo de microconrrolador segn
las interrupciones que posea internamente, ra-
zn por la cual, el lector debe ubicar en cada hoja
de datos, dnde se encuenrra la bandera del
TMR2 dependiendo del microcontrolador).
De la misma manera, cuando el valor del
TMR2 es igual al registro PR2, la salida del
comparador inicializa de nuevo el TMR2, lo
cual es muy utilizado para la generacin de
P\fM cuando se usa el mdulo CCP
(lo
ve-
remos ms adelante), al igual que en aplica-
ci ones seri al es (SSP).
Las posibles sdidas delTRM2 son la lectura
que se puede hacer en cualquier momento del
registroTMR2 o la bandera de interrupcin ori-
ginada por el TMR2, la cual se genera crda.vez
que se igualan PR2 yTMR2.
EITMR2 puede activarse o desactivarse en cual-
quier momento, median te un bit de conuol ubicado
il7 O
bitT: Se lee desde 0
Dif6-3: T0UTPS3 - TOUTPS0 o Difs de seleccin de la salida del
postescalador
del Time
0000 = 1-1 postescala
0001 = 1-2 postescala
a
a
1111 = 1-16
Postescal a
bit2: TMR2ON o bffde activacin delTimer2
1: Time2 est encendido
0: Timer2 est apagado
bitl-0': T2CKPS1 - T2CKPS0 o bib de seleccin del prescalador del
Time12
00
= prescalador
est en 1
01 = prescalador
est en 4
1
= prescalador
est en 1 6
Figura 12.4 RegistroT2C0N para el control delT\MER2
Registro: T2C0l. cot{TRoL rime
flxfiPs IIX'IP$I IotrPst rlltfPs rtR2(n rzc|osl T2G-tCgl
NombreBitT Bit6 BitS Bit4 BitS Bitz I Bitl Bit0
PIRl TMR2IF
PIEl TMR2IE
TMR2
Registro TMR2
T2CON
r0uTPsS TOUTPS2 TOIJTPSl TOUTPSO TMR2ON IT2CKPSI T2CKPSO
PR2 Registo de periodo delTimer 2
en el registro T2CON. [s valores presentes en el
pre y postescalador se borran por tres raz'ones funda-
menules: la escritura sobre TMR2, una escritura so-
bre T2CON, o por un estado de reset, que cuando
ocurre, llena a PR2 con unos.
En la figura 12.4 vemos el registro de con-
trol del TMR2; all podemos ver el bit 2 deno-
minadoTMR2ON con el cual activamos o des-
activamos el funcionamiento del temporizador,
los bits 3 al 6 que configuran el valor que va a
tener el postescalador y los bits 0 y I los cuales
establecern el valor del prescalador. Veamos
los pasos para configurar el modo de operacin
de este temporizador; en la figura 12.5 aprecia-
mos una tabla con todos los registros asociados
al manejo del TMR2.
En el registro T2CON debemos seleccionar
el valor del pre y postescalador y la activacin del
TMR2. Para habilitar la interrupcin de este
mdulo debemos activar el bitTMR2IE del re-
gistro PIEI; la ubicacin de este bit denvo del
registro no siempre es la misma.
Depende de la referencia del microcontrola-
dor que estemos usando, por eso es conveniente
verificarlo en las hojas de datos.
Del registro de control de interrupciones
INTCON debemos activar los bits 6 y 7 que co-
rresponden al habilitador global
(GIE) y al habi-
litador de interrupciones de otros perifricos
(PEIE). La bandera indicadora de la aparicin
de esta interrupcin se encuentra dentro del re-
gistro PIR1 y se denomina TMR2IF; cuya ubi-
Figura 12,5 Registros asociados con el manejo delTM?-
cacin tambin depende del microcontrolado:
En la figura L2.6 observamos un cdigo pr.
inicializar el TMR2.
:l tillter"t
El temporizador Timerl es un mdulo de 16 b::
que se divide en dos registros de9 bits (TMRIH
-
TMRI L), sobre los cuales se pueden ejecutar opt-
raciones de lectura y escritura. Este par de reg:=
CLRF TZCON
;
t
;
CLRF TMRZ
;
CLRF INTCON
;
t
BSF STATUS, RPO
;
CLRF PI E] -
;
t
i
BCF STATUS, RPO
;
CLRF PI RI '
I
,
M0VLW 0x72
;
MOVWF TZCON
;
BSF TZCON, T},R2ON
;
,
ESPERO-DESBORDE
BTFSS PIR1, TI8ZIF; HA 0CURRIDO UNA INTE-
;
RRUPCIN POR TTI4R2?
G0T0 ESPERO-DESBORDE
;N0,
C0NTINUO CON
;
EL CI CLO.
.
SE HA DESBORDADO EL
t .
;
TIMER?
BCF PIR1, Tlt4RzIF
;
SI, B0RR0 LA BANDERA
;
Y CONTI NUO.
DETENGO AL TMRz,
PRESCALAD0R
=
1: 1,
P0STESCALAD0R
=
1: 1
BORRO REGISTRO T}4R2
DESHABILITO
INTERRUPCIONES
SALTO AL BANCO 1
DESHABILITO INTERRUP-
CIONES DE MODULOS
PERI FERI COS.
REGRESO AL BANCO O
BORRO BANDERAS DE INT.
PERI FERI CAS.
POSTESCALADOR= 1: 15,
PRESCALADOR
=
1: 16
TIMERz APAGADO
TIMERz EMPIEZA A
INCREMENTARSE
#
ticmt
curco prctico sobre Microcontrotadores
Figura 12.6 Cdigo para el manejo del
dTMR2
'lador.
)
Para
16 bits
Rl H y
rr oPe-
: regis-
-1
LI
Rzl
IUP-
I
' ul
E INr.
I
: 15,
I
:16
I
I
rNrE-
I
2?l
' cON
I
) EL
I
DERA
I
I
TKITIMER2
TMR1 = Temporizador/
contador
16 - 8ls
TMRI = Modo caDtura TMR1 = Modo comoaracin
rros se incrementan desde 0000H hasta FFFFH y
al pasar por este ltimo valor, regresan a 0000H.
Al igual que el Timer0, el Timerl puede generar
interrupcin por desborde, pr lo cual requiere
que un bit dehabilitacin, presente en el registro
PIE, se encuentre activado.
El Timerl puede ser empleado de diferen-
res maneras. En primer lugar, lo podemos uti-
lizar de la manera tpica para leer los conteni-
dos del registro TIMER1, en cualquier mo-
mento del programa, figura I2.7a.
La segunda posibilidad que se tiene es la
de capturar (grabar) los contenidos del regis-
rro TMR1 para ser recuperados en el momen-
ro en que un flanco sea ledo externamente por
el microcontrolador, figura L2.7b. Los pulsos
que entran al TMRI incrementan el contador.
Cuando un flanco llega por el pin CCP,
ios contenidos son capturados y se activa una
bandera de interrupcin. El valor capturado
se encuentra ahora disponible para ser ledo.
Los contenidos del TMRI pueden com-
fararse continuamente con los contenidos de
un registro especial de comparacin, el cual ha
Figura 12.7 Modos de funcionamiento delTlMERl
si do cargado previ amente con al gn val or.
Cuando los contenidos del TIMERI se incre-
mentan y llegan a un valor igual al valor al-
macenado en dicho registro de comparacin,
se produce una salida, que puede ser un cam-
bio de nivel en el pin de salida del mdulo
CCB una interrupcin o ambos, figura I2.7c.
La uti l i zaci n del mdul o CCP permi te
l eer el TIMERl y al macenar el resul tado para
uti l i zarl o posteri ormente cuando se detecta
un flanco de entrada externo, todo esto mien-
tras el microcontrolador est ocupado hacien-
do otras tareas.
Con el mdulo CCP tambin es posible
manejar un pin de salida cuando los contenidos
del TIMERI se incrementan hasta un valor de-
terminado, de manera totalmenre independien-
te de otras tareas que el microcontrolador se en-
cuentre ejecutando.
nnnr rlninrl sl*i TEVIH#"{ r
En la figura,12.8 apreciamos un diagrama ge-
neral de la estructura del TMRI. Podemos no-
tar que la fuente de seal para el TIMERI pue-
de ser una seal externa para aplicaciones de
cuenta, o los pulsos internos de reloj para apli-
Evento especial disparado desde
el mdulo CCP Figura 12.8 Diagrama de bloques delTIMER|
Bl t1 del regi stroTl CON
curso prctico
sobre Microcontrotadoles
&l;#
bitT-G Deshabilitado. Se lee desde 0
Dff6-3: TlCKPS1 -T1CKPS0 o bibde seleccin del valordel
prescalador del Timerl
1 1
= 1- 8 valor del prescalador
10 = 1- 4 valor del
prescalador
01
= l- 2 valor del
prescalador
00
= 1- 1 valor del prescalador
bitSt Tl0SCEN o Dffde habilitacin del oscilador del Timerl
1: 0scilador est encendido
0: oscilador est apagado
bit2: TTSYNOo Dffde seleccin de la entrada externa de
sincronizacin al Timerl
CuandoTMR1CS
= 1
1: la entrada externa no se sincroniza
0: la entrada externa se sincroniza
Cuando TMR'ICS = 0
Esta es ignorada
bitl: TMR1 CS o Dlfs de seleccin de la fuente para Timerl
1 = entrada externa por el pin T1 0S0fi1CKl (flanco
de subida)
0
= reloj interno (F0SC/4)
bit0t TMR10N o Dlfde habilitacin delTimerl
1: habilita Timerl
0: detiene Timerl
Figura 12.9 Registro de control del TIMERI (Tl C0N)
caciones de temporizacin,la entrada ingresa a
un mdulo prescalador que divide los pulsos de
ent rada por 1, 2, 4 o 8.
La sel ecci n de l a fuente de seal para el
TIMERI se hace medi ante un bi t especfi co
del regi stro TICON, fi gura 12.9. Se trata del
bitTMRlCS con el cual se establece si la entra-
da va a ser externa o van a ser los ciclos de reloj
internos. De igual manera, a travs del bit 0
denomi nado TMR1ON de este regi stro, po-
demos acti var o desacti var el TMRl en cual -
qui er momento del programa y medi ante l os
bi t s4y 5
(TI CKPSl yTI CKPSO) seest abl ecen
l os val ores que tendr el prescal ador para di -
vi di r l a seal de entrada.
Cuando el TMR1 se desborda, se acti va
un bi t de bandera del regi stro PIR1 y se ge-
nera una i nterrupci n, si sta l ti ma se ha ha-
bi l i tado previ amente medi ante el bi t corres-
pondi ent e dent ro del regi st ro PI El . Los pul -
sos externos deben entrar por un pi n espec-
.LliS l][c
fi co cuyo nombre dentro del encapsul ac
Tl CKI , f i gur a L2. 10.
Los pulsos externos que entran al Tl.
pueden ser de dos tipos. El primero, es pof :
sos que entran por T1CKI, as el TMR1 ,.
crementa en cada flanco de subida que se :
sente en este pin (dividido por el valor espe :
cado en el prescalador). Este modo de o:,
cin se habilita con el ir TMR1CS per:.
ciente al registro TICON. Cuando se dese
pulsos por el pin TlCKI (bit 0 del puerrc
este pi n debe estar previ amente confi gu:
como entrada.
El segundo tipo de entrada al TIMEF.
a travs de un circuito oscilador conecra-
l os pi nes T1OSCI y TI OSCO, el cual p-
ser hast a de 200 KHz, f i gura, l 2. l 1. La ap
ci n cl si ca de esta conexi n que se encu-
en gran cantidad de notas de aplicacin. .
creaci n de un rel oj de ti empo real uti l i z-
este temporizador y un cristal de 32.768l:
_rL
-
Figura 12.10 Entrada de
Figura l2,ll Conexin del TMRI con un circutl oscilat:
#
&<nt
curn prcco sobre Microcontotadores
la creacin de un reloj de tier:
I KI
)ul-
in-
Pre-
cifi-
ra-
ene-
l eer
c),
rado
11 es
doa
uede
rl i ca-
entra
es l a
ando
KHz.
il TMR|
bdor Para
empo real
En la leccin anterior conocimos los mdulos
temporizadores de los microcontroladores PIC
que son la base para trabajar con los mdulos
CCP. Ahora estudiaremos el manejo y funcio-
namiento de estos ltimos, los cuales pueden
ser de gran utilidad en muchas aplicaciones en
electrnica. Hablamos en plural sobre estos m-
dulos debido a que en un microcontrolador pue-
de existir ms de un mdulo CCP.
curso prctico
sobre Microcontrotadores
&kt=t
#
[Vt uulo s CL'[] (cartura/ co urr at aui u/ LrV IVt)
El modo de comparacin permite mane.iar
de manera muy efectiva la salida sobre un pin
determinado del microcontroladory el modo de
cptura permite hacer mediciones muy precisas
de los instantes en que se producen algunos flan-
cos de entrada. Ambos modos se han diseado
para trabajar con el Timerl; si un microcontro-
lador posee varios mdulos CCP fi.-rncionando
en modo de captura o comparacin, ellos debe-
rn comrartir el mismo temporizador. El modo
de PVM (modulacin
por ancho de pulso) es
muy utilizado para controlar motores, lmparas
u otras cargas resistivas y est diseado para el
Timer2, de manera que ningrn otro temporiza-
dor puede ejecutar esta fi-rncin, ver Thbla 13.1.
Cada mdulo CCP contiene un registro de 16
bits el cual. puede trabajar-como registro de cap-
tura de 16 bits, como un registro de compara-
cin dc l6 bits o como un registro
[)a-ra
generar
P\M en 10 bits.Todos los mdulos CCP tra-
bajan prcticamente de la misma manera.
Cada mdul o CCP posee t r es r egi st r os
para l os cual es ut i l i zarernos nombres genri -
cos, como se muest ra en l a Thbl a 13. 2. En el l a
vemos que, cuando dent ro de cada regi st ro
col ocamos una x, qui ere deci r que habl amos
i ndi st i nt ament e del mdul o I o del mdul o
2. En l a Tabl a 13. 3 se muest ran l as i nt eracci o-
nes ent r e l os mdul os CCP; en est a t abl a,
CCPx es un mdul o CCP y CCPy es ot ro m-
dul o CCP. En l a f i gura 13. 1 t enemos el regi s-
t ro de cont rol de est os mdul os CCP con l a
f unci n de cada uno cl e sus bi t s const i t ut i vos.
El Timerl junto con el CCI pr-reden controlar de
manera muy precisa la salida de un pin del micro-
Regi stro de control : CCPxC0N
iloinucncnbdos
ocxBl DCXB0 CCpxM3 CCpxM2 CCpxMl CCpxMo
ffi7 H0
bitT-6: Sn implementar. Se leen como 0
bitS-4: DGxBI:DCxB0. Ciclo til del PWM
bit3-0: GCPxM3:CCPxM0. Bit de seleccin del modo CCPx
0000: Captura/compara/apaga PWM (reinicia el mdulo CCh
01 00: Modo de captura, cada flanco de bajada
01 01: Modo de captura, cada fl anco de subi da
01 1 0: Modo de caDtura de cada 40 flanco de subida
01 I |: Modo de caotura de cada 1 60 flanco de subida
1000: Modo de comoaraci n
Ini ci a pi n CCP baj o, cuando l a comparaci n i ndi ca
igualdad, pone el pin CCP en alto (se activa el ftCCP:
1001 : Modo de comoaraci n
Ini ci a pi n CCP al to, cuando l a comparaci n i ndi ca
igualdad, pone el pin CCP en bajo se activa el bffCCPI:
1010: Modo de comoaraci n
Genera interrupcin por software, cuando la comparacic-
indica igualdad (se activa el bCCPIF, el pin CCP no
se afecta)
101 1: Modo de comoaraci n
Disparador de eventos especiales
(se
activa el b
CCPID
11xx: Modo PWM
Figura l3.l Registro de control de los mdulos C.
controlado independiente de las ra-reas que se c.
cuentre ejecutando la CPU. Algunos microconrr
.
ladores como el l6C62A, el l6C64A y el 16C--
solo cuentan con un mdulo CCB ellos solo puec1.-
controlar los tiempos de salida del pin RC2/CC|
mientras que los microcontroladores que poseen c
mdulos CCP pueden controlatambin el pin RC
CCP2. Elnombre que reciben estos pines nos ind--
la rncin alterna que cumplen, sta es la de pines ,
propsito general del puerto C. Recordemos de ,
leccin anterior que elTimerl incluye un prescl.,
dor que divide la frecuencia interna del reloj por l.
-
4 o B; si seleccionamos la divisin por 1 obtend:,
mos la resolucin ms fina para a.iustar el tiempo
-
salida de un flanco de salida. Esto significa que, c,
'
un cristal de 4MHz, el tiempo de los flancos de
-'
pulso puede controlarse con una resolucin de 1u
TT
Modo CCP
_
-
: . . -
^**i ; : : : . "
: ; ; . : :
Captura
Comparacin
PWM
Funci n
,:::-::--
-:::
*.:.
Timerl
Timerl
Timer2
Nombre genri co CCPI
CCPxC0N CCPICON
CCPRxH CCPR1H
CCPRxL CCPR1L
CCPx CCP1
CCP? Comentario
CCP2CON Control de registro CCF
CCPR2H ByteCCP alto
CCPR2L Byte CCP bao
CCP2 Pin CCP
Tabla 13.1 Fuente de cada modo de
0Deraa0n
/ . 1\ L +
(1o
) @<ln:.
curso prctico sobre Microcontrotadores
V
lahla 13.2 Nomenclatura genrica de los registros C
DCPX)
3
DCPI
3
DCPID
mcin
Pno
T
fuCCP
!se en-
Dntfo-
r6C72
pueden
CCPI,
cen dos
nRCl/
indica
nes
de
mdel a
escala-
porl,2,
endre-
mpo
de
|le,
con
r deun
lde
lus.
r-l
FdcFl
E
hd
|stros
CCP
cabo una accin determinada por
los valores establecidos enlos bits
de conuol CCPIM3:CCPIMO
(CCPICON<3:0>);
dicha ac-
cin puede ser poner en alto, en
bajo o permanecer sin cambiar
el estado del pin. Cuando se ori-
gina un desborde en el Timerl
o el comparador ha establecido
iguddad entre elTMRl y los re-
gistros CCPRI, se origina un es-
tado de interrupcin y se activa
la bandera correspondiente en el
registro PIRI. Si se cumple que
el habilitador globd
(GIE), el ha-
biador de intemrpciones de pe-
riftricos y lo s bix corrapondien-
tes del registro PIE1 se encuen-
tran activados, se generar en la
CPU un esado de interrupcin.
Para microconuoladores que po-
sean dos mdulos CCB el circui-
to y los registros asociados al
CCP2 se muesuan el figura 13.3,
pero su funcionamiento es prc-
ticmente el mismo del circuito
anterior; en esta figura podemos
apreciar los registros exactos
que se deben configurar en este
ccPlcoN
(H' 17)
,Fl?!$E
qsry
ry*::.' rita entrada de conteo arM*l
0: deshabilta entrada de conteo a TMRl
t- En cualquer caso, activando la bandera
CCPI lF en la comoaracin:
0 0 actva el pin RCZCCPIen la comparacin
0 1 borra el pin RCZCCPI en la comparacin
1 0 noafectael pi n RCZCCPI en l acomparaci n
TLRIH (H'oF) TIR1L (H',oE) TlrRloN
Figura 13.2 CCPI en modo de compancin
Enlafigura l3.2semuestrangrficamentelos 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 CCPI; all observamos los registros dulo CCP2 debe incluir en su mapa de memoria
quesedeben configurar: eITRISC, elTlCONyel todos estos registros.
CCPICON. En este caso el valor almacenado en
hs regisros CCPRI H y CCPRI L se compara cons- Para microcontroladores PIC que posean dos
nrementeconlosregistrosdelTMRl,loscales mdulos CCB si ambos mdulos se usan para
se incrementan progresivamente por su fuente de .comparacin o captura, deben compartir el
ral. Cuando ambos son iguales, adems de gene- TMR1 y en este caso el TMRI no debe modifi-
rarse una interrupcin, en el pin CCPI se lleva a carse (escribir sobre l). Pero si el TMRI slo se
Tabla lS.S lnteraccin entre los mdulos CCP
CCPR1H (H' 16)
CCpRIL (H' 1s)
curco prctico
sobrc nictocontotadoes
&l;#
t
I
#
EI Curco prctico srtbre Micrcontotadorcs
l - @
ilffii
ry
;;::',,ita entrada de conteo a rMRl
0: deshabilita enfada de conteo aTMRI
t- En cualquier caso, activando la bandera
CCP2IF en la comparacin:
0 0 activa el pin RCl/CCPzen la comparacin
0 I borra el pin RC1/CCP2 en la comparacin
' I
0 noafectael pi n RC1/CCP2 en l acomparaci n
TMRI H (H'0F) TMRI L (H',oE)
ccP2coN
(H',1D)
zaitn de la figura 13.2 se h;
cumplido con el registr:
TICON cargado con H'01', e.
registro CCPICON se ha ca:-
gado con H'09'y el pin RCJ
CCPI se ha puesto inicialmenr
en bajo, entonces observemos cl
cdigo, en la siguiente pgina-
En estas lneas de cdigo
configura inicidmente el
de comparacin, para iniciar
pulso que permanece hasta
ciclo despus de que se habi
la entrada de seal alTMRl.
mediatamente despus de q
ese evento ha ocurrido. se
figura el segundo co
el cual desactiva el pulso. Si
TMRI est siendo utili
para otra funcin adems de
de comparador, no podr
nerse ni modificarse. En
caso elTMRl slo puede ser
do y a partir de esa lectura
tener dos vdores para
rar el registro CCPRI, para
ciar y detener el pulso.
Modo de captura
la combinacin del Timerl
Otras
interrupcones
PIE2
(H',8D)
TIi|Rl ON
t
Registro INTCoN
actim la nteruDcn
TMRIIE
PIE 1
(H'8C)
Figun 13.3 CCP2 en modo comparacin
elCCPI oelCCP2permite
el PIC se utilice para
usa para una funcin, su uso se puede sintetizar
en los siguientes pasos:
l. Detener su reloj (borando
el TTMRION del
registroTlCON)
2. Borrar el TMRI
3. Configurar el registro CCPRI
4. Iniciar de nuevo la cuenta del TMRI
Veamos el siguiente ejemplo. Asumiendo que
el TMRI no se utiliza para ninguna otra funcin,
originar un pulso positivo de 100 us en el pin RC2/
CCPI en un microcontrolador PIC funcionando
con un cristal de4MHz.Asumamos que la iniciali-
el tiempo en que ocrrre un flanco de enui
Timerl y su prescalador pueden utilizarse para
dir direcamente intervalos de alto rango; la
resolucin en la medida se obtiene omitiendo
uso del prescalador. De esta manera, con un cri
de 4MHz y omitiendo el prescalador, se
medir tiempos de aparicin de una entrada en
rango de lus. Es importante tener claro que en
modo de captura, el pin CCPx debe esar
rado como entrada.
En la figura 13.4 se muestra el circuito
los respectivos registros asociados al uso del
ccPR2H (H' 1C)
ccPR2L (H' 18)
eha
rstro
l ' , el
. caf-
\c2l
rente
ros el
ina'
80
se
nodo
iar un
[a un
ilita
i . l . I n-
E que
e con-
uador
r Si el
lizado
sdel a
dete-
r este
rser le-
rra ob-
rnfigu-
ara ini-
erl con
nite que
rrminar
rida. El
erame-
h mejor
iendo el
m cristal
pueden
da en el
re
en el
configu-
rcuito y
rdel ma-
BCF T1C0N,TMR1oN
;DETENCTN
DEL
;RELoJ
DEL TltlRl
CLRF TMR1H
CLRF T1I,IR1L
CLRF CCPR1H
MOVLII' H' 01'
MOWF CCPR1L
BCF CCP1CON,0
;CO'{FIQR0
PIN RCZ,zCCP1
;PARA
COMPARACIN
INTCON,GIE
;DESHABILITAMOS
;
i,I0i,iENTANEMENTE LAs
;
INTERRUPCIONES
BTFSC I NTCON, GI E
GOTO PULSO1
BSF T1C0{,1},Rt0.l
;INICIAN
LAS SEALES
;AL
Tlt'lRl
MOVLW 101
;CONFIGURAR SEGUNDO
; COMPARADOR
MOWF CCPR1L
BSF CCP1C0N
;LIMPIAR
PIN RC1/CCP1
;EN
EL SEGUNDO
;COttpAMD0R
BSF INTCON,GIE
;HABILITAR
NUEVAMENTE
;LAS
INTERRUPCIONES
BCF
nej o del mdul o CCPI
en modo de captura. El
ri empo entre dos fl an-
cos de entrada se deter-
mi na haci endo dos
capturas y restando el
ri empo que hubo entre
ambas. Este modo de
operaci n consi st e en
que l os r egi st r os
CCPRI H: CCPRl L
.apturan el val or de l 6
irs presente en el regis-
rro TMRI en el mo-
menro en que se
Pre-
i enta un evento en el
pi n CCPl . Este evento
'e
selecciona cnlos bits
Je cont rol CCPl M3,
CCP1M2, CCP1M1,
CCl PMO
(CCPICON
<3: 0>) , ent r e l as si -
:ui entes posi bi l i dades:
@
En cualquier caso, activando la bandelra
CCP1 lF en modo caotura:
0 0 ti empo decadafl anco de baj ada
en el pi n RCZCCPI
0 1 ti emDo de cada fl anco de subi da
en ei pi n RCZCCPI
1 0 ti empode cada4ofl ancodesubi da
en el pin RCZCCP'I
'I
1 tiemoo de cada 16oflanco de
subida en el oin BCZCCP1 Sobref
.I$qMEE
. . . @
L
runl ol 1 : habilita entrada de conteo a TMRI
0: deshabilita entrada de conteo a TMR1
Pn RC2ICCP1
.
Cualquier flanco de bajada
.
Cualquier flanco de subida
.
Cada 4" flanco de subida
.
Cada 16" flanco de subida
En la figura 13.5 podemos observar el circuito
'los
registros asociados al funcionamiento y mane-
,r del mdulo CCP2, para funcionar en modo de
:eprura; su procedimiento es similar al circuito para
=rnejar el CCP1, pero difiere en algunos registros
Figun 13.4 Mdulo CCPI en modo de captura
que se especifican claramente en esta figura. El cir-
cuito de la figura 13.4 puede configurarse inicial-
mente para capturar el tiempo del flanco de subida
cargando el registro CCP1CON con H'05'.
Cuando se ha ejecutado una captura, se acti-
vael bitCCPlIF, el cual debe limpiarse mediante
el programa. Si se ejecuta una nueva captura antes
de que el valor del registro CCPR1 se haya ledo,
curso prctico
sobrc Micrrcontrotadores
&at*#
se perder el valor cap-
t urado ant eri orment e.
Luego de borrar la ban-
dera CCPIIF del regi s-
tro PIR1, se debe acti var
el bit CCPIIE del regis-
tro PIEl para habi l i tar
l as i nterrupci ones debi -
das al mdul o CCPl .
De igual manera los bits
GIE y PEIE deben estar
activados. Cuando apa-
rece la interrupcin debi-
do a la aparicin del flan-
co sel ecci onado para el
pulso de entrada en el pin
RC2/CCP1, se l i mpi a l a
bandera CCPlIF. En este
momento se borra el bitj
de CCP1CON para con-
fi gurar l a captura del
tiempo de ocurrencia del
flanco de baiada de la en-
trada. Finalmente el re-
gistro de 2 bytes CCPRI
se copia en dos posiciones
dememoriaRAM. Cuan-
do ocurre la segunda in-
terrupcin, el prinier va-
lor capturado se resta del
H
nuevo valor capturado para proporcio-
nar el ancho del pulso. Cuando la medi-
cin se ha culminado, se puede borrar el
bit CCPIIE del registro PIE1.
Modo de PWM
En el modo de modulacin por ancho de
pulso (PVM), el pin CCI\ produce una
satida P\7'M de l0 bir.Debido a que el pin
CCPx posee una frrncin altema como pin
I/O, se debe configurar por medio de la ins-
truccin TRIS para que rabaje como sali-
da En la figura 13.6 se muestra la salida de
modulacin por anclo de pulso
(P\XA4) ori-
ginada desde un microconuolador PIC; all
se observan los principales elementos que se
T14R1H (H' oF) TMR1L (H' oE)
Figura 13.5 Modulo CCP2 en modo de
,lfi?e,ry
.lTu w{*:::,,ita
entrada de conteo a TMR.
0: deshabilita enfada de conteo a TMRI
ccP2c0N
(H' , 1D)
En cualquier caso, activando la bandera
CCPI lF en modo captura:
0 0 ti empode cadafl anco de baj ada
en el oi n RCI/CCP2
0 1 ti emDodecadafl anco desubi da
en el Di n RC1/CCP2
1 0 ti emDode cada4ofl ancodesubi da
en el oi n RC1/CCP2
' I
1 ti emoo de cada 16"fl ancode
subida en el oin RC]/CCP2 Sot
t =- l -
' PwM
Periodo
(a) Forma de onda de la salida PWM
Seal f.*
(b) Espectro de la frecuencia
*T-
de banda de la seal deseada
Comoonentes de frecuencia de PWM
#
kt;
curco prctico sobre Microcontrotadores
Figura 13.6 forma de onda de una seal
. . . CCP2
K
It
' i l 4
I caprura
-
empo
distinguen en este tipo de ondas, a saber: el periodo, el
ciclo y la frecuencia de la seal de P\flM.
En muchas aplicaciones prcticas es necesario
Lrn periodo de la seal cono. Por ejemplo, el circuito
de la figura 13.7 ulinuna salida variable de P\XA4
para generar voltajes entre 0 y 5 voltios, utilizando
un filtro pasabajo para conformar un valor prome-
dio a partir de la forma de onda. Entre ms cono sea
el periodo de la P\lM, ms rpido podr cambiar el
',.alor promedio. Si los cambios en la seal P'!M se
.-aracterizan por una frecuencia mxima,fnax como
se muestra en la figura 13.6b, se tiene:
Figura 13.7 Circuito de conversin D/A
Resi stenci a < 0.040Q
con VGS = 4.5V lD = 2.54
leor[
fmax << fcorte del filtro << f pwm
la frecuencia de corte del filtro necesita esra
por debajo de la frecuencia de la onda P]/M,fpunn,
para remover su componente fundamental y sus ar-
mnicos en 3
fowm,
5 fpwm, 7
fowm,
etc. y dejar
solamente los componentes CC que varen lenta-
mente. De esta manera, acortar el periodo de la se-
al de la P\X/M es la manera ms simple de acomo-
da seales de frecuencia con un filtro que las deje
pasar y remueva los efectos de la modulacin PVM.
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
MOSFET; dispositivo que para estos casos es ideal.
Este elemento se caracteriza por poseer una en-
trada de alta impedancia que lo hace f,cil de ma-
nejar. Para controlar adecuadamente un motor CC
se necesita un nmero o magnitud y un signo; el
signo nos indica la direccin hacia la cual va a
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, eI signo se origina por el
pin RD6. Cuando dicho bit se encuentra en alto
y la salida de la P'SIM activada, la parte izquierda
del circuito se activa haciendo que la corriente flu-
ya hacia la derecha. Si el bit 6 se pone en bajo y la
salida de la P\X/M se encuentra activada, la co-
rriente fluye de derecha a izquierda en el motor.
El concepto del funcro-
namiento de la P\7M es el
que se muestra en la figura
13.10. EITMR2 es someddo
a dos comparaciones con dos
registros distintos, la primera
es con el registro del ciclo til
y la segunda es con el registro
del peri odo. Cuando el
TMR2 y elciclo til son igua-
les, la salida del pin CCPx se
pone en bajo, pero el TMR2
conti na i ncrementndose
hasta igualar al registro del pe-
Figura 13.8 Manejo de una carga conmutada
Figura 13.9 Control de un motor CC con un puente H
salPWM
Gurso prctico
sobre Microcontrotadores
&i*r*: db
\d
lVtrlutus IGP r(catl-utt:Jourluate$ln/ l]VtJ L{t)
riodo; cuando esto ocurre, el pin CCPx se pone en
alto y se borra el TMR2 para iniciar de nuevo.
En la figura 13.11 se muestra un diagrama en
bloques del mdulo CCP funcionando en modo
P\7M. El periodo de la P\lM se especifica en el regis-
tro PR2 y se calcula mediante la siguiente formula:
Periodo de la PWM =
KPR2)
+ lt
o
4
o
Tosc
o
(valor del
prescalador
delTMR2)
Cuando el TMR2 es igual a PR2, en el siguiente
ciclo se presentan los siguientes eventos:
.
El TMR2 es borrado
.
El pin CCPx se pone en alto
.
El ciclo til de la P\7M es almacenado en
CCPRXL pasa a CCPRXH
El ciclo til de la P\ilflM se especifica en el registro
CCPRxL y en los bits DCxBI:DCxB0 (CCPx-
CON<5:4>). Se puede lograr una resolucin hasta
de l0 bits gracias a los 8 de CCPRxL y a los bits 4 y
5 de CCPxCON que actan como los bits I8.
Este valor de I0 bits en definitiva queda en
DCxB9:DCxBO. Para calcular el ciclo til nos po-
demos remitir a la siguiente formula:
%t'1'ry
lsud*
Pin ccPl bajo
SALIDA PWM
+
Pin CCPI alto
l gual borra TMR2
Figura 13.10 Concepto del funcionamiento de la salida PWM
Gi cl otr del a PWM (valor losfB
DCxB9:DGxBO)
.
lssc
o
(valor del
prescala
delTMR2)
Las bir DC-xB9:DCxBO pueden ser escrirc ar
cualquier momento, pero el valor del cido til n-
almacena en CCPRxH hasa despu de que los
tenidos de PR2 yTMR2 sean iguales,lo cual ma:
final del periodo acrual. En el modo P\[M el
CCPRxH solo puede ser ledo. El registro
y rn kxh intemo de2 bia configuran el bufe
cido til, el cual, al igualar el contenido del T\
concatenado con dos bir desu prescalador,
pin CCI*, esableciendo el final del cido til.
Para configurar el mdulo CCP para que:
cione en modo P\fM se deben ejecutar lo,
guientes pasos:
1. Establecer el periodo en el registro PR2.
2. Bablecer el cido til en los bitsDCyBg:
3. Configurar el pin CCPx como salida.
4. Est abl ecer el val or del prescal ador
TMR2 y habilitar elTimer2 mediante e-
gistro T2CON.
5. Configurarel mdulo CCP panel modo
Registros de
ciclo til
CCPxC0N<5:4>
(DCxBl:DCxB0)
Mdtllo CCP
l{ota 1:
Eltimer de Lifses
con 2 lb del prescalador
crear la base de tiemoo de
'I
Borrar el temporizador y
almacena el ciclo til
Mdulo Tme12
Figura
$tle &ktf",
curso prctico sobre Microcontrotadores
&d
Diagrama de
en
SC
In'
rel
o
I
del
R2
nel
{
l CPx
La uti l i zaci n de l as comuni caci o-
nes seriales se encuentra por doquier
en el mundo digital ya que nos ofre-
ce una solucin econmica y de alta
calidad para una gran variedad de
aplicaciones.
'
#,.
t
'
/ +l
-rI
,)
CursoprcticosobreMicrocontroladores&*tt<ilT";
ai ena00
I pata
e 10 Dlts
a 13.11
bloques
,a PWM
I
i
I
i
I
En los sistemas con microcontroladores siem-
pre existe la necesidad de conectar elementos in-
ternos entre sf como los microcontroladores con
las memorias, con conversores A./D, conversores
D/A, etc. o entre el microcontrolador y elemen-
tos externos al sistema como teclados, displays e
interfaces de potencia, entre otros.
Figura l4.l Comunicacin en paralelo
En trminos generales, hay dos maneras de
interconectar elementos electrnicos digitales: en
paralelo y en serie. Se dice que una comunica-
cin es en paralelo cuando se conectan varias l-
neas entre los dispositivos
(internos o externos)
y los datos se envfan simultneamente por ellas;
en la mayorla de los casos, en valores mltiplos
de 8 bits
(8, 16, 32, 64, etc.), figura 14.L. El
otro tipo de comunicacin, la serial, se hace b-
sicamente por una sola lnea (o muy pocas) y los
bits se envfan uno detris de offo, gara 14.2.
En el primer caso, la comunicacin es ms rpi-
da y ocupa muchas llneas o pines del microcon-
trolador y en el segundo, es ms lenta y utiliza
pocos pines lo que nos permite realizar otras fun-
ciones con los pines libres. Actualmente, debido
ala altavelocidad que se ha logrado en la opera-
cin de estos circuitos, la comunicacin serial es
la ms utilizada ya que conviene ms ahorrar pi-
nes, que tener en cuenta la velocidad de transmi-
sin que se lograrla con la conexin en paralelo.
Figun 14.2 Comunicacin en serie o serial
Las familias de rango alto de los microcor-
troladores PIC tienen incorporados mdulos ir*
ternos de comunicaciones con sus pines o
minales especializados para esta funcin y sus
rrespondientes instrucciones de programacin
que facilita estos procesos. En las familias de
nivel (pocos
pines), las comunicaciones se
por medio de los pines de entrada/salida (I/O
puertos y los protocolos (reglas
de juego) se
ben establecer en el programa lo que hace
poco ms compleja su elaboracin.
Figun 14.3 Comunicacin unidireccional (half
Por otro lado, las comunicaciones
pueden ser unidireccionales
(half
duplex) o
reccionales (frrll
duplex). En las primeras se
fieren los datos en una sola direccin al
se utilizan dos cables, uno para la seal y el
para la masa o tierra, figura 14.3. Con este
ma hay que enviar primero los datos y
recibirlos o viceversa. Con las bidirecci
puede enviar y recibir informacin al ti
se requieren como mnimo tres cables o pi
uno para eirviar, otro para recibir y.otro
masa o tierra, figura L4.4. En las comuni
nes seriales hay dos mtodos principales: las
municaciones sincrnicas o sincronizadas
y
asincrnicas o no sincronizadas lo cual
remos ms adelante.
#
&<lr*
curso prctico sobre Microcontotadores
Figura 14.4 Comunicacin bidireccional (full
con-
bi n-
) ter-
6 CO-
n lo
rbajo
ecen
lO)
"
B
de-
Fun
t
i
I
I duplex)
priales
bbidi-
:uans-
mPoy
el otro
E siste-
bpus
[es,
se
I
FPO Y
r pines,
para la
icacio-
: las co-
hs y las
:xplica-
Otro faetor que se debe tener en cuenta en
Ias comunicaciones seriales es la velocidad de
transmisin de los datos la cual se mide en bits
por segundo o baudios que es en realidad la ve-
locidad con que cambian los estados de la seal
(de
I a 0 o de 0 a 1). A estavelocidad se le llama
generalmente rata de baudios ( Baud rate) o sim-
plemente rata. Por lo general, se utilizan ratas
con valores normalizados de 2400, 9600 y 19200
baudios. Esto es muy imporrante ya que en una
comunicacin serial entre dos o ms elementos,
se debe conocer la velocidad de transmisin de
los datos con el fin de que sta se logre.
Para que dos equipos se comuniquen saris-
factoriamente, ambos deben manejar un mismo
conjunto de normas que indiquen los parme-
uos y la manera correcta de realizar la transmi-
sin y la recepcin. Este conjunto de normas es
lo que se conoce con el nombre de protocolo.
Cuando efectuamos una comunicacin serial,
los grupos de datos que se van a rransmitir se de-
ben descomponer en bitslos'cuales son transmiti-
dos uno por uno desde el emisor hasta el receptor
en donde se establece de nuevo el grupo original.
Un carcter lo podemos definir como la
unidad mnima de informacin compuesta de
varios bits. El emisor puede generar unidades
de informacin de ms de 8 bits, pero como un
microcontrolador PIC tiene una CPU de8 bits,
Ias unidades de informacin deben dividirse en
r-aios segmentos de 8 bits para ser enviados por
rparado. El dispositivo recepror se encarga de
ensamblar de nuevo los segmentos para recu-
perar el mensaje original. Para propsitos de la
uansmisin, cada segmenro de 8 bits se trara
como un carcter, sin importar que no sea la
unidad final de la informacin. El ejemplo ms
clsico de este caso son los conversores A/D de
10,12 o ms bi ts.
Cuando se transmiten cuacteres serialmen-
te, los bits queconforman cedacarcter se envlan
de manera secuencial, distribuidos en el tiempo.
Cuando un dispositivo rransmisor e nva estos bits,
el receptor debe estar en capacidad de:
.
Determinar el momento exacto en que de-
ben llegar.
.
Reconocer cundo empieza y curndo termina
cada uno delos bits.
.
Reconocer cundo empieza y cundo termina
la serie de bits que conforman el carcrer.
Para facilitar el reconocimiento claro de todos
los caacteres, se ha establecido un sistema de sin-
cronizacin por medio de algunos bits de delimita-
cin y separacin. Como ya lo mencionamos, exis.
ten dos mtodos de demiacin que definen los
dos tipos bsicos de uansmisin de datos: la trans-
misin sincrnica y la transmisin no sincrnica.
Tra nsmisin sinerniea
En este tipo de transmisin se asocia un pulso
de reloj con cada bittansmitido. En esre caso se
requieren dos lneas de comunicacin (usualmen-
te cables), uno para los bits de datos y orro para
los pulsos de ieloj.
El receptor puede reconocer fcilmen rclos bix
de datos debido a que ellos ocurren de manera si-
muluinea con los pulsos de reloj, de esta manera
sabremos sacrarnenre cuando leer los zr de datos
correctos sin imporar que la seal de reloj no man-
tenga una frecuencia esable, figura 14.5.
Reloj
Hgun | 1.5 Carcter serial sincrnico
r1ll
duplex)
thhs
Curco pnctico
sobrc Microcontotadores
arr"#
Erts de caracter
Cuando un dato se codifica en determinado
nmero de bits, para separar los distintos caracte-
res el receptor necesita contar bits, empezando con
el primer bitreclbido. Este tipo de transmisin es
adoptado por algunos estndares internacionales
como el protocolo SPI, I2C y Microwire.
Transmisin no sincrnica
Fste tipo de transmisin asocia unos irs especiales
a cada carcter conformando una estructua o pa-
quete; incorpora w bit jttsto antes de empezar el
czrcter y otro bit despues del carcter. Todos los
.bits,
incluyendo los de la estructura, s'e envan a la
misma velocidad (todos los bits con un mismo pe-
riodo) y cuando llegan al receptor, &te ya sabe que
el primer bitrecibido corresponde al bitde estruc-
tura y que despus de 1, en intervalos fijos de tiem-
po, encontrarlos bits de datos, frgra,14.6.
Thnto el emisor como el receptor deben tra-
bajar a la misma velocidad, es decir, a la misma
rata de bitsi como el primer bit es quien-informa
la aparicin de un paquete y despus de l se
localizan los bits de datos a una rata cnstante, el
carcter puede ser enviado en cualquier momen-
to. Por ello, este mtodo se conoce como carc-
ter no sincrnico y bit sincrnico.
Otro mtodo paralacomunicacin no sincr-
nica consiste en transmitir a ratas de bitvariabla.
Este mtodo no requiere una longitud fija de los
cnacteres ni de los bits de estructura, aunque a ve-
ces s se utilizan; este tipo de comunicacin lo uti-
liza un protocolo denominado Dallas l-Vire.
Somunicaciones seriales no
slncrnicas
Ya sabemos
Que
la transmisin serial distribuye
los bits en el tiempo y el receptor debe estar en
capacidad de reconocer cuando er-
pieza un bity cuando termina. Si:
receptor puede determinar cuan
llega el primer bit de un carcter
conociendo el hecho de que cada
posee un periodo fijo, el recr
puede anticipar cuando llegar:n
uno de los bits. Cuando no existen datos en
medio de transmisin, se dice que se encue
en estado vaco o desocupado y el receptor
encuentra esperando que llegue un bit.
Cuando llega el primer bit el receprcrlo
noce y espera un tiempo determinado para leer
nuevo el siguiente bit, este primer bitforma
de la estructura y se le llama bit de sincroni
cin. El receptor repite este proceso de
espera hasta que se hayan ledo todos los bits.
El transmisor y el receptor poseen cada
su propio reloj para medir el tibmpo de cada
Es
posible que estos dos relojes en un
dado se desajusten y rio queden co
sincronizados entre s? En realidad s, y
si
el caso, se puede originar un desfase y ear
blemas como el del receptor esperando un
el instante incorrecto-
Este problerna se resuelve sincroni
ridicamente, haciendo fija la longitud dd
rcter y transmitiendo nuevam ente el bit de
cronizacin al ihicio de cada carcter de
o fijo. De esta manera los relojes slo
tan estar en fase durante un corto ti
que ellos se ponen en fase nuevamente en
bit de sincronizacin.
Con un nmero fijo de bits por ca
receptor cuenta los bits para delimitar
rcter permitiendo recibir correctamente
uno de ellos, sin importar que sean tra
dos a intervalos irregulares de tiempo (t
sin no sincrnica). Debido a que el pri
de la estructura es un cambio del estado
al estado de ocupado, por lo mends tn bi
estado vaco debe seguir al ltimo bit del
Figura | 4,6 Transmisin no sincrnica
#
&lt.
curco prctico sobre Microcontrotadores
m-
i el
rdo
r r y
bit
ftor
ada
nel
[tra
r se
eco-
:r de
ta-rte
tt A-
r ay
. uno
r bit.
rcnto
lente
gse
es
I
Pro-
bi ten
lo pe-
el ca-
h si n-
tama-
rcesi-
Po
ya
n cada
cter, el
da ca-
e cada
rmiti-
rnsmi-
ner bit
o vaco
tr en el
lcarc-
+Tiempo
r.-
Estructura del carcter-r
I
de un blf
l*
Bitde
sincronizacin
ter, el cual tambin corresponde a un bit fun-
damental para conformar la estructura.
;otocolc
serial no sincrnico
Este protocol o es uti l i zado por l a mayora de
l os mdul os especi al i zados para comuni caci o-
nes (UART)
que existen dentro de los micro-
control adores en comuni caci ones seri al es no
si ncrni cas. La transmi si n se descri be en l a
figura 14.7: caracteres transmitidos a interva-
los indeterminados pero a una rata fija de bit
i carcter no si ncrni co, bi t si ncrni co).
Segn este protocolo, el estado vaco de la trans-
misin es un I lgico, y se le conoce como estado
de marca. El estado de ocupado es un 0 lgico y se
le denomina estado de espacio. N bitde sincroni-
zacinse le llama bitdeintdoy aI bitefinal de la
estructura bit de parada. El bit de inicio es una
ransicin desde el estado de marca hacia el estado
de espacio y el bit de parada es el estado de marca.
Slo puede existir un bitde inicio, pero pue-
den existir varios de parada. El protocolo especi-
+ Estado desocupado
+ Estado ocupado
Figura 14.7 Estructura del carcter
fica que deben ser l,l12 o 2 bits de parada como
mnimo y 5, 6,7 u 8 bits de datos en el carcter.
El carcter de datos se transmite empezando por
el bit menos significativo y
?
continuacin del
ltimo bitde detosdel carcter puede haber (aun-
que no es completamente necesario) un bit espe-
cial denominado bit de paridad.
El bit de paridad es un mtodo bsico para
la deteccin de errores en la transmisin. La pa-
ridad es una caracterstica definida sobre cada
carcter de datos. Se determina por el nmero
de unos (1) lgicos en los datos. El primer paso
es decidir si se va a trabapr con paridad par o
paridad impar. Para paridad impar el nmero de
unos en el carcter de datos debe ser impar. Esto
es, se cuenta el nmero de unos presentes en el
carcter de datos y si la cuenta es impar entonces
el bitdeparidad se pone en cero. Si el nmero de
unos en el carcter de datos es par, entonces el
bit de paridad se pone en uno para hacer el n-
mero de unos de nuevo impar, figura 14.8. Igual
metodologa se aplica para el caso contrario, es
decir para paridad par.
i
Tiempo
i
+l
+ Marca ('l tgico
+ Espacio(0lgico)
Elfde parada
Figura 14.8 Formato del carcter
Blf de inicio
Curso
prctico
sobre Microcontroladores
t
i
{
i
I
En la comunicacin por medio de dos cane-
les, los datos pueden viajar en ambas direccione
simultneamente, o pueden viajar en ambas di-
recciones pero no simultneamente. Como.z
lo dijimos anteriormente, un canal de comu
cacin que es capaz de operar en ambas di
ciones simultneamente se denomina
Figun l4.9lnErtaz serial de dos lneas
y un canal capazde operar en ambas di
pero no simultneamente se denomina half
plex, en estos dos casos la rata de los datos
ser la misma en ambas direcciones. Un canal
una sola lneacapaz de operar en una sola direc
cin se denomina canal sirnplex.
Para un canel halfduplr se debe hacer
sistema de control para prevenir que ambos
minales intenten transmitir al mismo tiempo
que un terminal enve cuando el otro no est
para transmitir. Este flujo de control requiere
Figura 14.10 lnbrtu serial de dos hilos con lneas
adicionales de control
El canal de comunica*in
Muchas comunicaciones se desarrollan en dos vlas
y requieren de un transrnisor y de un receptor al
final de las dos vas del canal de comunicaciones.
En muchos casos se acostumbra dar el nombre
de equipo terminal a cada uno de los equipos de
comunicaci.r y
"
las lneas de transmisin se les
denomina ruta de los datos.
La comunicacin en dos vas requiere de dos
llneas, una para cada direccin de viaje de los
datos. El transmisor de un terminal se conecta
por medio de la lnea A d receptor del segundo
terminal y de la misma manera el transmisor del
segundo terminal se conecta al receptor del pri-
mero, frgara14.9.
otras llneas adicionales, utilizadas para cont
de manera adecuada el flujo de los caracteres
mitidos por las llneas de datos, figura l4JO.
El estndar RS-232
Una aplicacin real de la comunicacin serial
sincrnica es la que se ha definido en el
internacional EIA RS-232. Se trata de una
ma que define las caracterfsticas ffsicas que
tener el canal
ylas
funciones de las lneas de
trol y de datos. No se enfoca en el formato de
t r
datos, de manera que cada usuario es libre
construir sus propios formatos.
Dentro de esta norma, los equipos
les toman unos nombres especfficos
do de su labor dentro del canal de com
cin, ellos pueden ser: Equipo Terminal de
DCE DTE
I
I
lnterfaz
RS-232
Interfaz
RS-232
Figun l4.ll Canalde conunicacin
#
rrr"
curso prctico sotue Microcontotadoes
t l : UL L
na-
nes
di -
t ya
l ni -
rec-
tlex;
)nes
'-du-
l ebe
Li de
I TCC-
r un
, ter-
Poo
l i sto
re de
:rolar
rans-
t .
i al no
indar
r nor-
' debe
3 COn-
de l os
rre de
nllna-
rdi en-
uni ca-
l e Da-
1r,:s{-,fi.
talF .E .
' +i : i
' * ! _
t4Fl.{t
:i-i-&
Nombre
'
DTE
1 PG Tiena de
proteccin
2 TD Datos TX Satida
3 RD Datos RX Entrada
4 RTS Peticin para
enviar Salida
5 CTS Listo
para
enviar Entrada
6 DSR Datos listos Entrada
7 -- Comn
I DCD Deteccin de
poftadora
Entrada
20 DTR Equipo terminal listo Salida
22 RJ Indicador de llamada Entrada
23 DSRD Rata de la seal de datos Cualquiera
Conector DB-9
IBM.PC
Lnea Conector RS-232 Gonector RS-232
25 pines
I pines
TD?3
RD32
RTS47
CTSs8
DSR. 6 6
Comn 7 5
DCD81
DTR 20 4
Rl
, ,
229
labla 14.2 Conector RS-232 de I pines (DB-9)
rs
(DTE)
o Equipo de Comunicacin de Da-
.,,s (DCE). Ini ci al mente podemos entender un
ITE como una computadora y un DCE como
. : r mdem, f i gura l 4. l l .
El estndar define 25 lneas con sus corres-
: rndientes nmeros de pines dentro de un co-
.:ctor. De l as 25Lneas 11 ti enen que ver con l a
-
nuni caci n no si ncrni ca y se pueden apre-
-.rr
en l as Tabl as l 4.l y 14.2, donde se muestra
. distribucin para conectores de 25 (DB-25)
y
'
ri nes
(DB-9). De Ia mi sma manera, segn el
Lneas RS-232 (conector de 25 pines)
Direccin Funcin
DCE
Tiena de seguridad
Entrada Datos de salida
Salida Datos de entrada
Entrada DTE quiere
enviar
Salida 0K
para que DTE enve
Salida DCE listo para
comunicarse
Tiena
Salida Enlace de comunicacin en
proceso
'
Entrada DTE listo para
comunicarse
Salida Anuncia en llamado entrante
Cualquiera Indicador de la rata de datos
Tabla l4.l Lneas RS-232 en un conector DB-25
estnda el equipo DTE debe tener un conector
ti po macho y el DCE un conector ti po hembra.
Estas l neas se puede cl asi fi car en dos gru-
pos: l as de f unci ones de dat os y l as de f unci o-
nes de cont rol . Sol o hay dos l neas para f un-
ci ones de dat os, por l a l nea 2 se t ransmi ren
l os dat os y por l a l nea 3 se reci ben. Las de-
ms l neas se ut i l i zan para ef ect os de cont rol
del f l uj o de l os dat os y el nombre de cada una
de el l as ref l ej a su f unci n desde el punt o de
vi st a del equi po DTE.
La interfaz RS-232 ha llegado a estandarizar
la comunicacin entre dos terminales de datos
por medi o de un mdem, un enl ace de comuni -
cacin y otro mdem, figura 14.12.
El estndar RS-232 se aplica a ratas de datos de
hasta 20.000 bi ts por segundo y hasta 15,24
l
Intefaz
RS-232
Figura 14.12 Comunicacin seral plr medl de un mdem
PIN
: n serial
curso prctico
sobre Microcontrotadores
&tcfn: #
&d
i .
.
,''
:tttttutiuut-ltt a las euntuuicaeiuttes st'ttates
Entrada
RS-232
Sal i da
RS-232
Figura 14,13 lnbrtaz RS-232 con un microcontrolador
metros de longitud del cable, aunque esta longi-
tud se puede extender por medio de unos dispo-
sitivos repetidores de seal que corrigen los nive-
les de voltaie.
Como estamos trabai ando con comuni ca-
ci ones bi nari as, sol o se han def i ni do dos posi -
bl es estados para l a seal : marca y espaci o. Una
marca es un uno l gi co y su seal de vol taj e,
para que sea comprendi da correctamente, debe
estar en el rango de -3 hasta 15 vol ti os.
Un espacio es un cero lgico y su voltaje debe
estar entre +3 y +l5V para que el receptor lo
pueda leer adecuadamente. Si una seal se en-
cuentra en el rango comprendido entre -3 y +3Y
se entiende como un estado indeterminado.
Cuando uti l i zamos comuni caci ones ser.i
l es externas en un mi crocontrol ador, l as s
das di gi tal es de 0 y 5 vol ti os deben aconi
ci onarse para l l egar a l os ni vel es RS-232. E, : ,
probl ema se puede resol ver f ci l ment e p
medi o de una confi guraci n de transi store ,
por medi o de un ci rcui to i ntegrado espec.;
al cual se l e entregan l os ni vel es TTL y arr-
los niveles RS-232, figura 14.13. De este r::
de i ntegrados exi ste una gran vari edad y n--
chas empresas fabri cantes de ci rcui tos l os l :
desarrol l ado sat i sf act ori ament e.
Cuando queremos transmitir caracteres que
humanos podamos leer y entender, debemos ::
dificarlos por medio de una combinacin de :
El cdigo de texto de ms aceptacin se llam"
cdi go ASCII.
ASCII es un coniunto de caracteres
cados en 7 bits que cuenta con 95 caracteres
primibles y 33 no imprimibles. Los primeros
cluyen letras minsculas, maysculas, los n:
ros del 0 al 9, caracteres de puntuacin y otr
Los segundos se denominan caracteres
control y sirven para manejar la comunicac-:
Los caracteres imprimibles tambin se con
como caracteres grficos o lebles por human:.:
son codificados desde $20 hasta $7E comr
muestra en la Thbla 14.3.
Nibble bajo
#
&<rct.
curso prctico sobre Microcontrotadores
Tabla 14.3 Cdigc
Jumperde
seleccin
I
r[|-
4MHz
22pf 22pF
ria-
rli-
di-
iste
Por
35O
:ial,
roja
ripo
mu-
han
e los
6 CO-
; bits.
ma el
odifi-
s im-
os in-
rume-
DOS.
res de
acin.
nocen
rnos y.
tmo se
RD
RTS
GND
COM
La mejor manera de aprender el manejo y el
establecimiento de comunicaciones seriales con
microcontroladores es a travs de algunos ejem-
plos bsicos. Ahora entraremos a analizar dos
casos tpicos sobre microcontroladores PIC de
18 pines: las comunicaciones Half-Duplexy Full-
Duplex. Daremos algunas rutinas bsicas genri-
cas que no estn ligadas a ningn microcontro-
lador en particular y que pueden ejecutarse so-
bre la configuracin de circuitos mostrada en la
figura 14.14.
, :
1! uni caci n n*
"qi ' r: rni c; r
er
.
0c fl r.!li{i ! a d il
r?-:.
Como ya lo mencionamos, los microcontrola-
dores ms pequeos no cuentan con mdulos
especializados de comunicacin (UART). Sin
rgun t.t Esq*i *, ,**o para comunicacin seriat
embargo, esas funciones se pueden desarrollar con
algunas lneas'de cdigo. En muchas ocasiones,
esta opcin representa una efectiva y econmica
solucin, y por lo tanto debe ser considerada. El
circuito de la figura 14.14 puede utilizarse con
muchos microcontroladores PIC de18 pines y el
objetivo siempre ser el de comunicarnos con una
computadora por medio de su puerto serial, que
har las veces de equipo DTE y quien deber
estar ejecutando un programa terminal que per-
mita monitorear todos los datos que transmita o
reciba por este puerto.
Si el lector no tiene amplios conocimientos en
algun lenguaje de programacin, no hay problema:
'l7indows
ofrece el programa hypertermina/que lo
podemos utilizar fcilmente.
WoASCtt
curco prctico
sobre Microcontrotadores
$tn.#
: -----LIB1 . GRP----
;ESTE
PRIMER MDULO RECIBE UN CARCTER DE 8
; BI TS,
1 DE I NI CI O, 1 DE
;PARADA
Y SIN PARIDAD
;RESULTADO
FINAL: CARACTER RECIBIDO EN EL
;REGISTRO
REGREC
REC-ASINC
BCF BANDERA,l
BCF BANDERA,0
MOVLW 09
MOWF CUENTA-BIT
REC-ASINCl
BTFSC PORTA,RECE
;
LLEGO BIT DE
;
INICIO?
G0T0 REC-ASINCI
;
N0 -> REGRES0
CALL MEDIO-BIT
;
SI -> ESPER0 UN
;
TIEMPO DE I/2 BIr
BTFSS PORTA,RECE
; AUN
SE TIENE EL BIT
;
DE INICIO?
G0T0 REC-ASINCZ
;
SI -> SALTO A
;
REC-ASINCZ
BSF BANDERA,I
;
N0 -> ACTIVO BIT 1
;
DE BANDERA
(Urc
RECISII'IJIN
;Y
SALG0
REC-ASINC2
;
DE BANDERA
Om REC-ASIK-FIN
;
Y SALGO
REC-ASINC3
CALL BIT
tEcFv 0EIIA_BrT,F
GOTO REC-ASINC3
BTFSS PORTA,RECE
BSF BANDERA,O
BSF ESTADO,C
BTFSS PoRTA,RECE
BCF ESTADO, C
RRF REGREC, F
GOTO REC-ASINCZ
REC-ASINC-FIN
RETLW O
;
L]MPIA BANDERA DE
;
ERR0R DE INICIO
;
LIMPIA BANDERA DE
;
ERROR DEL PAQUETE
;
8 BITS DE DATOS + 1
;
DE PARADA
;ESPERO
EL TIEMPO DE 1 BIT
;
ACTUALIZO EL
;
CONTADOR E BITS
;
SI NO HA TERMINADO
;
EL PAQUETE SALTO.
; BIT
DE ST0P LIST0?
;
N0 -> ACTIVO BIT 0
ACTIVO EL CARRY
TOMO EL BIT DE
DATO.
ES
1?
NO -> BORRO CARRY
ROTO EL CARRY CON EL
REGISTRO DE RX
SALTO PARA ESPEMR
EL SIGUIENTE BIT
;
SALIDA
ESTE SEGUNDO MDULO ENVA UN CARCTER DE
BITS, 1 DE INICIO, 1 DE PARADA
SIN PARIDAD
ENTM: CARCTER A SER ENVIADO EN EL
REGISTRO REGTX Y PORTA.l DEBE
ESTAR EN ALTO
h*
\4
lnirudur,"ulu a las rut uuulgciouss seltiiles
;
AL SALIR EL PUERTO DE TX DEBE
QUEDAR
EN
;
ALTO.
TM-ASINC
BCF P0RTA,TX
;
BIT DE INICI0
CALL BIT
;
ESPERO EL TIEMPO DE 1
BIT
MOVLW 08
;8
BITS DEL CAMCTER
I'OIF O,EITA-BIT
;SE
CARGA EN ESTE
;
REGISTRO
TRA-AS]NC1
RRF REGTX,F
;ROTA
BIT A TRAV.-S DEL
;
CARRY
BTFSC ESTAD0,C
;CARRY
=
0 ?
trT0 TMiSII\IZ
;N0
-> C
=
1, PA1
=1
BCF P0RTA,TX
;BIT
DE DAT0S =
0.
; PAl =
0
OT0 TRA-ASII.(3
;Y
SALT0
TRA-ASINC2
BSF PORTA,TX
;BIT
DE DATOS
=
1,
; PAl
= 1
TM-ASINC3
CALL BIT
DECFSZ
;ESPEM
EL TIEMPO DE
CUENTA-BIT,F
;YA
SE E
1 Bff
;L0S
8 BITS?
GOIO TM-ASnf1
;N0 -> IR POR EL
;SIGUIENTE
BIT
BSF PORTA,TX
;SI
-> HACER EL BIT
;DE
PAMDA
CALL BIT
RETLW O
;ESPEM
EL TIEMPO DE 1
,
;
RETARD0 UTILIZADO PARA TEMP0RIZAR LOS BITS
RET
RETl
RETz
MEDIO-BIT
MOVLW
MOWF
i,t0vLtv
MOWF
CALL
RETLW
BIT MOVLW
MOWF
MOVLW
MOWF
CALL
RETLW
MOVF
MOWF
MOVF
1r,l0wF
DECFSZ
GOTO
DECFSZ
GOTO
RETLW
CoNTAB,W
CONTAC
CoNTM,y{
CONTAD
CONTAD, F
RET
C0NTAC, F
RETl
0
D' , 3'
CONTAB
D' 20'
CONTAA
RET
0
D' , 3'
CONTAB
D' 43'
CONTAA
RET
0
#
&*ni.
curco prctico sobre Microcontrotadores
Figura 14.15 Rutinas de recepcin y transmisin no
I
i
;
I
t
En la figura se puede apreciar que el micro-
controlador se conecta a Ia computadora por
medio de un transceiuer, conformado por el cir-
cuito integrado MAX232 ylos pines de conexin
entre este ltimo y un conector
Para Puerto
se-
rial tipo DB-25;como elementos de sealizacin
se han conectado diodos LED en los puertos del
microcontrolador.
omunica cion Half- D upl ex
En muchos casos la aplicacin de una comunica-
cin Half-Duplex es ms que suficiente para sa-
tisfacer plenamente las exigencias de un sistema
en donde se transmiten datos.
Desde el punto de vista del receptor se pue-
den dar dos casos: el primero, es cuando el mi-
crocontrolador debe obligadamente esperar la lle-
gada de un carcter para poder ejecutar sus ta-
reas, caso en el cual podemos hacer que el pro-
grama se encierre en un ciclo hasta que llegue el
carcter. El segundo caso se presenta cuando el
microcontrolador posee un tiempo limitado para
esperar el carcter
(tirneout), ya que debe estar
pendiente de otras actividades.
Los mdulos de sofiutarr mostrados en la
figura 14.15, conforman las subrutinas de re-
cepcin y transmisin. La velocidad de trans-
misin es de 2.400 bps y cada carcter posee un
formato compuesto por I bitdeinicio, 8 bitsde
datos y I bitde parada, figura L4.16.
fr euepcion ll a I | - uple.
Con el objeto de tener el control sobre la trans-
misin, se ha definido un registro de banderas
(BANDERA)
cuyos bits se activan o desactivan
de acuerdo a los errores encontrados. Si el mi-
crocontrolador detecta un bitdeinicio cuya du-
racin es menor al tiempo normal de l12 bit,lo
Figura 14.18 Diagrama de flujo de la rutina de
recepcin no sincrnica
ff de inicio
LSB
3andera
Disponibles
Fgura 14.17 Registro EANDEM
I
t
Blfde parada
MSB
Figun 14.16 Formato del carcter
Bitde
estructura
Error de
i ni ci o
curso
prctico
sobre Microcontmtadores
rrr*#
! i
t t x
lnuduuuin a lus L'onrunluGlunes srttales
ms probabl e es que se trate si mpl emente de un
ruido que apareci en la lnea y en ese momen-
to se activa el bit I de BANDERA. Si por algu-
na razn el bit de parada no llega en el momen-
to exacto que se esperaba, se genera una nueva
situacin de error y se activa el bit 0 de BAN-
DERA, figura 14.17.
[a estrucnrra del programa es la que se muestra
en la figura 14.18. All podemos apreciar como ini-
cialmente entra en un ciclo de espera del cual no sale
hasta que se ha detectado la llegada del primer bit
Retardo
= (3. Contadorl
.
Contador2
+ 5
.
ContadorB)fl-iempo del
ciclo de reloj)
Figura 14.19 Diagrama de lujo de la subrutina de retardo
Al detectar la presencia de un cero lgic.
en la lnea, se presume que se trata del bit c.
i ni ci o, se debe esperar un ti empo (I12 bi t) y c:
nuevo comprobar que ese nivel permanece e:
l a l nea; si l a comprobaci n no es exi tosa se e!-
tablece un estado de error en la transmisir
activndose el bit I de BANDERA. Si se h;
comprobado la llegada del bit de inicio, se e=-
pera el tiempo gastado por un bit para hacer
-
pri mera l ectura; en este punto se ha esperai :
un tiempo de lt l, bits desde que se detect :
bit de inicio hasta que se ley el primer bit. .!.
partir de ese momento se hacen 9 lecturas, cac:
una separada por el tiempo gastado por un :;
Si la novena lectura es un uno lgico se asun::
una lectura correcta y el valor ledo se coloca e:
el registro REGREC. Si el noveno bit no ct-
rresponde a un uno, se configura un estado c:
error denominado error en la estructura
),
s
activa el bit0 del registro BANDERA.
El registro de recepcin toma el dato de
transmisin por medio de un procedimiento cr
el cual el bitledo se coloca en el bit carry ca.
registro de estado y se hace una rotacin del r.-
gistro REGREC.
La subruti na de retardo l a podemos apr:-
ciar en la figura 14.19. Se compone de un c,
cl o embebi do dentro de otro ci cl o que se rep
Rata
Bits/s
Tiempo de 1 ff
[t
s)
Tiempo 112 bit
[r
s)
110
300
600
1 200
2400
4800
9600
19200
9090,89
3333,3
1666,6
833,3
416,7
208,3
104,2
52,1
4545,5
166,7
833,3
416,7
208,3
104,2
52,1
26
Tabla 14.4 Tempos empleados para distintas velocid
$g23 &rct".i.
Curco prctico sobre Microcontroladores
&d
de
te un cierto nmero de veces decrementado al-
gunos registros. En la tabla 14.4 se.muestran
los distintos periodos de tiempos que emplean
un bit, y ll2 de bit para las distintas velocida-
des de transmisin.
:1n$mf srn l l a l f- u
pl ex
Para desarrollar esta funcin se debe tener el
cuidado de manejar la misma velocidad y for-
mato de los caracteres que los utilizados en la
recepcin, pero en este caso no se han estable-
ci do banderas de error.
El dato que se va a enviar serialmente debe
estar almacenado en un registro denominado
registro de transmisin. La transmisin debe
empezar colocando un cero lgico por la lnea
de salida que corresponde al bitdeinicio, luego
espera el tiempo correspondiente a un bit para
que el tiempo de dicho bitsea el apropiado y a
partir de ese momento se hacen ocho rotacio-
nes (a travs del carry) del registro de transmi-
sin, figura 14.20.
Cada vez que se hace una rotacin a la
derecha del regi stro de transmi si n, cada uno
de l os bi ts de datos empi eza a ci rcul ar secuen-
ci al mente por el carry. De esta manera sol o
necesi tamos chequear el estado de di cho bi t
para saber el estado que debe tomar l a l nea
de t ransmi si n en cada i nst ant e de t i empo,
fi gura 14.21.
Transmisin no
sincrnica
Figun 14.20 Transmisin no sincrnica
i i pl i i :;i *rr:r i tc i ns ri -tl u]rr; de, re*epci on
,
l ! t t i i l i ni r 5i i r l : : l si l r c' ' 0t i i cas
Estudiemos ahora una situacin en la cual sim-
plemente se recibe un byte carcter desde una
terminal
(PC)
y ese mismo carcter se enva de
nuevo hacia ella (es lo que se conoce como eco);
para visualizar el proceso se puede utilizar el pro-
grama hyperterminal de \Tindows 95198. El
diagrama de flujo del ejercicio lo podemos apre-
ciar en la figura 14.22.
La instruccin RRF: rote el contenido del regis-
tro "f" a la derecha, usando el carry
Sintaxis: RRF [,d
l-os bit del registro f son desplazados una casilla
hacia la derecha, y el bitque ocupaba la posicin
cero es ahora el bit carry. Si d=0 el resultado final
se guarda en\1, si d=l el resultado se guarda en f
curco prctico sobre Microcontroradores
rl;#
.J
;
------sERrAL1. ASM------
.-----
;EJERCTCTo
DE CoMUNTCACToN SERTAL
;
z4oo BPs, 1 BIT DE INICIo, 1 DE PARADA
Figun 14.21 Estableciendo el dato de la lnea de transmisin
Figura 14.22 Ejercicio de comunicacin
Cuando el sistema est listo para recibir un
carcter, activa la lnea de DTR
(Data
Terminal
Ready); al recibir el dato, el microcontrolador
deshabilita la lnea DTR (PA2) y enva el mismo
carcter hacia el terminal. Deshabilitar DTR
equivale a decirle al terminal que no enve ms
caracteres porque el microcontrolador est ocu-
pado y no va a recibir ms datos porque ahora l
es quien va a transmitir.
Este es un ejemplo muy sencillo de control
del fluio de la comunicacin en una transmisin
Half-Duplersi el microcontrolador recibe un bit
de error en el registro bandera, retorna un carc-
A_CHAR EQU 1C
A-BIT EQU 1D
C0NTAA EQU 1E
C0NTAB EQU 1F
C0NTAC EQU 0D
C0NTAD EQU 0F
REGREC EQU LO
REGTX EQU 11
ORG O
INICIO
CLRF PORTA
BSF ESTADO,S
;SALTA
AL BANCO
MOVLW B' OOOOLLLL'
;
ENTRADA DE DATOS: PA3
;
SALIDA DE DATOS : PA1,
RADIXHEX
LIST P=16F84
c EQU0
Z EQU?
l 1 EQUo
F EQU1
RECE EQU 3
TX EQU L
ESTADo EQU 03
PoRTA EQU 05
TRISA EQU 85
PoRTB EQU 06
TRrSB EQU 86
BANDERA EQU OC
MOWF TRISA
MOVLIV OXOO
i,IOWF TRISB
BCF ESTADO,5
BSF PoRTA,2
BSF PORTA, 1
LAZO CLRF BANDERA
BCF PoRTA, Z
CALL REC-ASINC
BSF PoRTA, 2
CALL BIT
BTFSS BANDERA,0
GOTO LAZO1
MOVLW 10
MOWF REGREC
LAZO1 MOVF REGREC,W
MOWF REGTX
CALL TRA-ASINC
PA2
;SALTA
AL BANCO
;DESACTIVA
DTR
;SALE
ESTADO DE
;DESACTIVA
DTR
;ESItM
W PERIffi DE 1
;ERROR
EN LA ES
;
NAK
; Y
LO DEVUELVE
DTR
GOTO LAZO
I NCLUDE LI B1. GRP
END
#
rr-i
curso prctico sobre Microcontrotadores
Figura 14,23 digo fuente del eiercicio de comunicacin
1 BIT
NRA?
ter ASCII indicador de que reconoci el error.
En las redes de comunicacin, cuando el emisor
se ha enterado de este carcter, puede tomar ac-
ciones tales como enviar nuevamente el dato.
El cdigo fuente del ejercicio lo podemos
apreciar en la figura,14.23 El microcontrola-
dor habilita la lnea DTR para informar que est
l i st o par a r eci bi r dat os y l l ama l a r ut i na
REC-ASINC para tomar el carcter. Al hacer
la recepcin y si no se ha activado ninguna ban-
dera de error, el dato pasa del registro de recep-
cin REGREC al registro de transmisin REC-
TX y se transmite.
Recordemos que la rutina de recepcin en
realidad lee el bit de parada cuando ste an
est en la mitad de su periodo. Para evitar con-
f'lictos es conveniente esperar un periodo de un
ir despus de que se ha deshabilitado la lnea
DTR; de esta manera evitaremos algunos ries-
gos como por ejemplo, que el microcontrola-
dor enve datos cuando el terminal an esta
emitiendo el bitde parada.
Este tipo de comunicacin se caracterizapor de-
'arrollar
simultneamente los procesos de recep-
:in y transmisin. Debido a que los micro-
Ti empo de
114 de bi t
+l l+ _t
I
i i i i i i l i i i i i i i
controladores son dispositivos que ejecutan una
serie de instrucciones de manera secuencial a tra-
vs del tiempo, este tipo de comunicacin debe
implantarse dividiendo el proceso de recepcin
y transmisin en distintas tareas. Como hemos
visto anteriormente, la unidad bsica de trans-
misin dentro de las comunicaciones no sincr-
nicas es el bit, si el tiempo empleado por cada
una de estas unidades se divide en pequeos in-
tervalos de tiempo, podemos hacer una buena
simulacin de operaciones simultneas de ffans-
misin y recepcin. Para ello, simplemente se eje-
cuta la tarea de recepcin en un instante de tiem-
po y la tarea de transmisin en el siguiente ins-
tante; este modo de trabajo es viable siempre y
cuando se tenga un estricto cuidado en el con-
trol de los tiempos, el cual se hace mediante su-
brutinas de retardo basadas en ciclos anidados
de programa. En la gura 14.24 podemos apre-
ciar el manejo que se debe hacer del tiempo de
recepcin y transmisin; all podemos observar
como el tiempo de cada bit se ha dividido en
pequeos intervalos que sirven para definir el
instante exacto en que deben operar cada una de
las tareas. Observemos como la transmisin se
lleva a cabo slo a partir de que la recepcin ha
reconocido satisfactoriamente cada uno de los bits
de datos, mostrando una especie de intercalado
en la ejecucin de ambos procesos.
i i i
Lectlra el
prinler &T
fle
dgto$
Figura 14.24 Tenporizacin de las tareas
' ansmrst0n
macena l macena
primer ff de
datos
ffde inicio
curso prctico
sobre Microcontotadoes
rrr*#
@
l-l
t r y
l r y
t-@
Figura
mero un archivo (full.grp) con las distintas .--
brutinas que se requieren para transmitir y r.:
bir estilo Full-Duplex.
Para control ar l os di sti ntos estados de l a ;:
muni caci n se ha establ eci do un regi stro b' -
deras denominado BANCOM, cuya distri' :' r
cin se muestra en la parte de abajo.
En la figura 14.26 podemos apreciar el :
digo del programa que desarrolla el mtodc
las tareas para distintos instantes de tiempc
14.25 Lazo de tareas cual podemos incluir dentro de nuestro p:
yecto parti cul ar. En este programa podec
Una segunda posibilidad para hacer la dis-
tribucin de tareas en instantes de tiempo es con-
figurando una interrupcin del temporizador,
bajo la cual se ejecutan secuencialmente la re-
cepcin y la transmisin.
Estudiemos un programa de ejemplo donde
podamos vi sual i zar mej or estos esquemas. Se
compone de tres partes o tareas principales: la
tarea de recepcin, la tarea de transmisin y la
tarea del usuario. Todas ellas se ejecutan secuen-
cialmente por estar dentro de un ciclo que se
cumple indefinidamente, figura 14.25. Para fa-
cilitar el desarrollo de este programa se cre pri-
di sti ngui r cl aramente l a manera como se cc
truyeron las dos tareas. Existe una tarea :.
ci onal denomi nada l a tarea del usuari o. E
conti ene, como su nombre l o sugi ere, l os p:
cedi mi entos especfi cos que l requi ere para
proyecto parti cul ar.
En cualquier programa que utilice esta:
brutinas, la tarea del usuario debe primero
quear la existencia de nuevos datos recibidos r'
dera BANUDA) v si se ha recibido un nue'c
rcter debe moverlo hacia el registro de datos :
bidos; de esta manera, el registro de recepcin
usuario queda disponible para nuevas lectura-..
BIT BANDERA DE
0 Recibiendo (BANRECE)
t ltimo rl (BANULB)
INDIGACN
I al recibir el ir de inicio
0 al recibir el bit de parada
I al recibir el ltimo il de datos
0 al recibir elbit de parada
Error en la estructura
@ANEST)
I si no se recibi bit de parada en el dcimo periodo
0 por el usuario
Nuevo dato recibido (BANUDA) I al recibir el bit de parada
0 por el usuario
Error en la recepcin (BANRES) I si al recibir el ltimo ir de datos, la bandera no se activ
Transmitiendo (BANTX)
Datos de transmisin listos
(BANDATR)
Transmi sin completa (BANDG)
0 por el usuario
I al inicio del it de inicio
0 al final del bit de parada
I por el usuario
0 al inicio del i de inicio
I al final del irde parada
0 por el usuario
tk
t "i. curco prctico sobre Microcontrotadores
: -
)-
u-
re-
n-
c! -
J=t
;
=====FULL . GRP=======
;-----------------
;
RECEPCI ON
;
-----------------
RETA sET RETA1
FREC BTFSS BANCOM, BANRECE
;
GOTO FRECz
DECFSZ LAZORECE
GOTO ETz
BTFSC BANCOM, BANULB
GOTO FREC3
BSF ESTADO, C
RRF REGREC, F
MOVLW 04
MOWF LAZORECE
DECFSZ ROTABIT
GOTO RETA1
;
BTFSS BANCOM, BANUDA;
BSF BANCOM, BANRES
;
BSF BANCOM, BANULB
;
MOVF REGREC, v
MOWF RECE
GOTO RETA2
BANDERA DE ULTIMO BIT?
SI
_>
I R A FREC3
NO
_>
LEER BI T
ROTAR CARRY EN EL
BYTE DE RX
CARGO CONTADOR
ACTUALIZA CONTADOR,
SALTA SI SON OCHO.
SI NO-> IR A RETARDO
EANDERA DE NUEVO DATO
RECI BI DO?
ACITVAR BANDERA DE
ULTIMO BIT
MOVER BYTE RECIBIDO AL
REGI STRO DEL
RECEPCI ON DEL USUARI O,
IR A RETARDO
BI T DE I NI CI O?
NO-> RETARDO
;
5I ->ACTIVAR BANDERA
DE RECEPCI ON
INICILIZAR CONTADOR DE
BI TS DE RECEPCI ON
INICIALIZR CONTADOR
DE LAZOS DE RX
IR A RETARDO
RETA4 NOP
GOTO RETA1
RETA1 GOTO R3
R3 GOTO R4
R4 GOTO RETAz
RETA2 NOP
;
- - - - - - - - - - - - - - - - - -
;
TRANSMISION
;
- - - - - - - - - - - - - - - - - -
TXON BTFSS BANCOM,BANTX
GOTO TXONz
DECFSZ LAZOTX, F
SALTO GOTO RETA5
MOVLW 04
MOWF LAZOTX
DECFSZ CNTBI TX, F
GOTO TXON4
BCF
BSF
GOTO
TXON2 BTFSS
GOTO
BANCOM. BANTX
BANCOM, BANTXF;
RETA6
BANCOM, BANDATR
RETAT
BSF BANCOM, BANTX
MOVLI{ OA
MOWF CNTBITX
;
MOVLW 04
MOWF LAZOTX
MOVF REGDAT,$i
L\.:L.!L Ltl
TRANSMITIENDO?
NO-> IR A TXONz
SI_> ACTUALIZAR
CONTADOR DE LAZO
BIT AUN NO ESTA
COMPLETO. IR A RETARDO
TI ME OUT. I NI CI ALI ZAR
CONTADOR DE LAZO
ACruALIZAR COiITADOR DE
NO SE HAN ENVIADO TODOS
LOS BI TS-->I R A
SI GUI ENTE BI T
SE HAN ENVIADO TODOS LOS BITS,
ACrIVAR RMEM tE TX CO,PLETA
;
DATOS DE LA TX LISTOS?
NO -> RETARDO
0AT6 115T6. ACTWAR BAMERA
INICIALIZAR CO.ITADOR DE BrrS
IMCI,ALIZJR COTAMR ffi LAZ0S
MOVER DATO DEL USUARIO
AL REGISTRO DE TX
LI MPI AR BANDERA DE
DATOS DE TX LISTOS
BI T DE I NI CI O
I.O/ER BIT DE DATOS AL
CARRY = O ?
SI -> BIT DE DAT0 =
0
LIMPIAR PIN PA1
PONER EN UNO PI N PA1
FI NALI ZAR LA TX
SALIR DE LA TRANSMISION
:
i
: REC2
BTFSC
GOTO
BSF
MOVLvf
MOWF
MOVLIII
MOVWF
GOTO
: 18C3
BTFSC
GOTO
BSF
: REC4
BCF
PTOENT, PI NENT
;
RETA3
;
BANCOM, BANRECE
;
08;
;
ROTABIT
05
LAZORECE
;
;
RETA4
;
BCF
ET3 BCF
GOTO
TXON4 BSF
RRF
TXON5 BTFSC
GOTO
BCF
BANCOM, BANDATR;
BCF
BSF
PTOENT, PI NENT; BI T DE PARADA?
FREC4
BANCOM,BANEST
;
NO_>ACTIVAR BANDERA
;
DE ERROR EN ESTRUCTURA
BANCOM, BANRECE; LI MPI AR BANDERA DE
;
RECEPCI ON
BANCOM,BANULB
;
BORRAR BANDERA DE
;
ULTI MO BI T RECI BI DO
BANCOM, BANUDA; ACTI VAR BANDERA DE
'
I
NUEV0 DATO RECIBID0
RETA ; EI RARETARDO
R1
R2
RETA4
I
I TXON6
I
I TXONT
I
nrrls
RETAT
' Er 4
ET5
RETA6
FTE
Ef7
' TXoN8
i LASO
I
l
GOTO
BSF
NOP
GOTO
NOP
GOTO
GOTO
GOTO
GOTO
GOTO
GOTO
NOP
DECFSZ CONRET,F
GOTO LASO
RETLI1I O
PTOSAL, PI NSAL;
TXON8
E5TAD0, C
REGTX, F
ESTADo, C
TXON6
PTOSAL, PI NSAL
TXONT
PTOSAL, PI NSAL
TXON8
ET4
ET5
RETA6
ET6
Ef7
TXON8
GOTO
:_-2
NoP
::TA3
G0T0
: :
GOTO
: .
GOTO
Figura 14,26 Subrutinas de recepcn y transmisin
curco prctico sobre Microcontrotadores
&kt
".t
#
h
lnu tiuuru'l tr a las eu nrunleacio tres serlalc's
;====
C0MUNICACION SERIAL N0 SINCR0NICA::=
;
====:========= FULL DUPLEX=========:=::=
RADIX HEX
LIST P = 16F84
EQU O
EQU 2
EQU 1
EQU 3
EQU 4
EQU 5
EQU 6
EQU A
EQU 1
;
REGISTROS DE LA CPU
EQU OO
EQU OL
L EQU 02
IADO EQU 03
EQU 04
A EQU 05
EQU O6
EQU 08
EQU 09
TH EQU OA
NTCON EQU QB
EQU 0t
ISA EQU 85
rsB EQU 86
c0N1 EQU 08
;
MEMORIA DE TRABAJO
EQU 0C
EQU OD
EQU OE
cE EQU 0F
EQU 70
EQU 11
EQU 72
EQU 13
EQU T4
EQU 15
EQU T6
: BI T5 DEL REGI SR0 BANCOM
EQU OO; BANDERA DE RECEPCI 0N
B EQU OI ; BANDERA DE ULTI MO BI T
T EQU OZ;BANDERA DE ERROR EN LA ESTRUCTURA
03: BANDEM DE NUEVO DATO RECI BI DO
De l a mi sma manera, el usuari o no debe
mover ningn dato al registro de transmisin
hasta que esta tarea haya activado la bandera
de transmisin completa (BANTXF).Todas las
banderas se encuentran di sponi bl es para el
usuario; algunas de ellas son activadas o desac-
tivadas por las distintas tareas, pero otras re-
Figwa14.27
quieren de la intervencin
para modificarlas.
El programa que podemos apreciar en la
BANRES EQU @+;SOBEFLUJO EN LA RX
BANTX EQU OS;BANDEM DE TRANSMISION
BATR EQU OG;BANDERA DE DATOS LISTOS PARA TX
BANTXF EQU 07;BANDEM DE TRANSMISION COMPLETA
PToSAL EQU PoRTA
PINSAL EQU OI
PTOENT EQU PORTA
PINENT EQU 03
ORG O
INICIO CLRF
'
PORTA
BSF PTOSAL, PI NSAL; ENVI AR MRCA
CLRF PORTE
BSF ESTADO, RPO
r.,rovlll 00E9
ItloWF TRISA; CoNFIGURANDo PINES PTo A
BCF ESTADO, RPO
CLRF BANCOi,I
BSF BANC0i,I,BANTXF; ACTMR BANDERA DE TI
;
COMPLETA
GOTO FREC
i ncl ude FULL. GRP
TAREA DEL USUARIO
BANCOIi,BANUDA
;
NUEV0 DATO RECIBIF?
SI_> TOMAR LOS DATOS
RECI BI DOS
Y LLEVARLOS AL REGISTRO DE
DEL USUARIO
BANCOT,I,BANUDA; BORRAR BANDERA DE
;
DATO RECIBIDO
BANCOM,BANTXF; TX COMPLETA?
RETAS
BANC0III,BANTXF; BoRRAR BANDERA DE F
; DETX
BANCOM,BANDATR; ACTIVAR BANDERA DE
;
DAT0S DE TX LISTOS
RETA9
RETA8
Q1.
RETA9
D' 14'
CONRET
LASO
Q3
FREC
. & . (
tgSF
dAI<r,:, Curco prctico sobre Microcontrotadores
&d
14.27 aplica,las subrutinas del programa
l
I
\
I
\
\
t-\
"\
\
1
I
j
Frckio
ndor
con ellas se encarga de recibir un carcter, prove-
niente de un termind y lo devuelve
(envla un eco)
hacia este ltimo. Si el terminal enVa continua-
mente caracteres, los cuales se derruelven de la mis-
ma manera, se configura un sistema funcionando
corno Full-Dup lm. El formaro del carcter para este
ejemplo es de ocho bits de datos, sin bit de paidad
y un bit de parada; los datos viajan a una velocidad
de2.400 bps, si el cristal es de 4MHz.
Como se anot anteri ormente, el progra-
ma hace un l azo cuyo ti empo de ej ecuci n
equivale al tiempo de duracin de un bit di-
vi di do entre cuatro. Si estamos trabaj ando a
una vel oci dad de 2.400 bps, cada bi t es' de
4126,66 mi crosegundos y por tanto el l azo
se debe demorar 104,17 mi crosegundos, es
deci r 104 ci cl os de i nstrucci n (si
se trabaj a
a 4MHz). La tarea. del usuario tiene un n-
mero l i mi tado de ci cl os, de acuerdo a l os
empl eados por l as otras dos tareas; en l a Ta-
bla 14.2 se muestran algunos resultados que
nos di cen cuantos ci cl os se empl ean para l a
tarea del usuari o.
Como se puede ver en la figura 14.28,la
tarea del usuario indaga por la existencia de nue-
vos datos recibidos; si no los ha espera un tiem-
po hasta que se completa el nmero de ciclos
requerido y luego entrega l control a la tarea de
recepcin mediante la instruccin goto frec.
Tabla 14.2 Ciclos
para la tarea del usuario
Si se han recibido nuevos datos, el carcter
recibido se mueve desde el registro de datos reci-
bidos del usuario hacia un registro denominado
registro de datos de transmisin y se desactiva la
bandera BANUDA(BAndera de NUevo DAto
recibido) indicando al usuario que se ha tomado
el nuevo carcter. Si el transmisor no se encuen-
tra ocupado, se activa la bandera de datos de
transmisin listos (BANDATR) lo que le indica
a la subrutina de ansmisin que puede empe-
zar su trabajo. Despus de esto el control del pro-
grama pasa a la tarea de recepcin.
Tareas del usuario
+
Figura 14,28 Subrutina o tarea del usuario
Giclos
por lazo
de tareas
curso
prctico
sobre Mictocontotadores
&irr*#
b
,Lulruduq*xua tes uunrunic'aciunes sertales
La tarea de recepcin, figura 14.29, recibe
el dato que llega y las seales que le indican al
usuario que ha llegado un carctr y que se en-
cuentra disponible para su uso. Despus de de-
tectar una condicin de bit de inicio. la tarea es-
Si
l-
$ttmo
ttit?
vf r o
- - - - +r , r r T
+q
ffiry
frec
+
i , i r : 1: i '
NO
pera cinco miniperiodos de bit antes de lee:
primer bit de datos. Los dems bits de datos :
ledos cada cuarto miniperiodo de bit.
Esta subrutina reconoce y sealiza por
dio de banderas dos tipos de error: si el d
mo bit (bit
de parada) no se encuenrra en
do de marca (1 l gi co), entonces se aci r-
iftfuiT*E
recitdrtb?
+r'
8
bflF,l
#
&kr-,.L
curco prctico sobre Microcontotadores
Figura 14.29 Tarea de
L\--UL LL:,
TXON
I
No
Transmiendo
-
Dahs
deTx
actualmente? - listos?
J' +
Blisto?
Se
enviaron
todos los
biE?
Usuario
:ir de error en la eetructura (BANEST);
y si
a bandera de nuevos datos recibidos no est
borrada cuando el noveno bit
(:kimo
bit de
Jatos) se ha ledo, se activa la bandera oe so-
' rreflujo
en la recepcin. Ambas banderas de-
ben ser limpiadas por el programador.
Figura 14.30 Tarea de transmisin
La subrut i na o rarea de t ransmi si n se
encarga espec f i cament e de t ransmi t i r un
byte de datos y l as seal es para el usuari o,
cuando l as seal es se han compl et ado. El
transmi sor ej ecuta l a estructura mostrada en
l a f i gur a L4. 30.
Si
r
+
curco prcco sobre Microcontotadores
ti<tl:t
#
iF:iii l,eS
r.,tniuuicacio nc's scl.tal u's
Muchos modelos de microcontroladores PIC po-
seen un mdulo interno para establecer comuni-
caciones seriales denominado Receptor/Tiransmi-
sor universal sincrnico y no sincrnia
(Uniuer-
sal Synchronous Asynchronous Receiuer Tiansmitter.
USART). Este mdulo permite desarrollar comu-
nicaciones seriales Full-Duplrx no sincrnas o co-
municacion es h alf dup lex slncronas.
La principal ventaja que se tiene con mdu-
los de esta naturaleza es que le ahorran mucho
trabajo al usuario, teniendo a su disposicin un
mdulo de excelente calidad encargado de llevar
a cabo todas las rutinas que vimos anteriormen-
te y asegurando que el cdigo que se deba desa-
rrollar se limite a los requerimientos del progra-
ma especfico; es decir, es un mdulo especiali-
zadoy diseado para estas tareas lo que garantiza
su correcto funcionamiento.
...
Muchos autores, cuando utilizan la USARI para
aplicaciones no sincrnicas
(como en este caso),
acosnrmbran denominarla UARI
(Uniuersal Asyn-
chronous Receiuer/Tiansmitter). El formato de los
datos de la UART a I bit de inicio, 8 o 9 bits de
datos y un bitde parada. En la figura 14.31 obser-
vamos el circuito base que utilizaremos para visua-
lizar algunos algoritmos tomados como ejemplo.
Existen nueve registros especiales
con la UART, contando con un registro
que se utiliza en programas donde las comu
ciones manejan interrupciones. Estos regi
especiales conforman el control, el estado
interfaces de los datos requeridos para el co
to funcionamiento de los programas.
Por ejemplo, existe un registro denomi
SPBRG que se utiliza para establecer la
dad de la transmisin
(bits por segundo). EI
tenido que debe tener este registro debe
se antes de habilitar la UART
y
se calcula
diante la siguiente formula:
SPBRG
=
Fosc - 64 (vel)
64
(vel)
donde Fosc es la frecuencia del oscilador en
y vel es la velocidad de trasnmisin en bits
segundo (bps).
En los microcontroladores PIC se han
blecido dos pines especides para la transmisi
la recepcin a travs de la UART; se trata de
pines del puerto C: RC6 para la transmisin
y RC7 p."ra la recepcin
(RX).
aunque inicidmente no parece lgico, ambos
deben configurar para que funcionen como
de entrada
(por medio de la instruccin TRI
Figura 14.31 Diagrama esquemtico del circuito para los
DTE
(25 pin)
-
#
ict;
curco
prctico sobe Microconfrotadores
l os
cial
rca-
:ros
Ias
rec-
ado
oci -
:on-
rcar-
me-
,lHz
i
Por
esta-
i n y
e dos
(TX)
l ent e,
)OS SC
Prnes
rsc).
i ej empl os
curco prctico
sobre Microcontrotadores
ti<
r
-t
#
Los registros RCSTA y TXSTA respecti-
vamente, son los que finalmente conforman
el estado y control de la recepcin y el estado
y control de la transmisin, respectivamente.
Los registros RCSTA, RXSTA y PIR1 infor-
man el estado de la comunicacin y los registros
RCREC y TXREC son los registros de datos de
la recepcin y la transmisin, figura 14.32.
Los registros PIEI e INTCON establecen
el control de interrupciones en los casos donde
se utilicen estas tcnicas.
cuando RCIF est acti vado
Registro de recepcin: Se escribr en este registro
solo cuando TXIF est activado
Figura 14.32 Registros de datos de la UART
-XSTA
l , r , r l - t - .
L \--\-' L L\.:.
En la figura 14,33 se muestran los regis-
tros de control configurados para establecer una
comunicacin con 8 bits de datos a 2.400 bps
(y un reloj de 4MHz) y en la figura 14.34 se
muestran los registros de control de interrup-
ciones requeridos para configurar una interrup-
cin en la recepcin. Finalmente, en la figura
14.35, se muestranlos bits de estado
(bande-
ras) de la UART.
t 65431
ryp_
Interrupci n de
" -
transmi si n habi l i tada
RCtE_
Interrupci qn
9q... .
recepcr0n naDrl rtaoa
INTCON
^-,-
Interrupci n de
rtrrtr-
perifricos habilitada
6_
Habi l i tador gl obal de
Inl errupcr0nes
Figura 14.34 Registros de control para activar una interrupcin
en la receDcin
Frrnr nnr
"-""
sobrepaso
,roo_
Error en l a
' -""
estructura
TXSTA
-
- i si n
,- 3 lts
, - i si n
: _ i dud
TX9
TXEN
7654321
BRGH:
Bi:ffifde
prRl
"un,".
Sel ecci n de modo
" "' "
no si ncrni co
0
:
) BRG
'""qO4-IBAIA)
CONTENIDO
=
*6
(RR'A)
Figun 14,3l Configuncin de los registros de control de la UART
-,,,-
Buffer de transmisin
r^rr-
ITXREG
vaco
0*Cuando
se cargan nuevos
datos en TXREG
1
*Cuando
se activa TXGN
RCIF-
Se activa si el Bufferde recepcin
tiene por lo menos
'1
8/IE
Figura 14.35 Registros de estado de la UART
Una caracterstica muv interesante de la UART
es que tiene mdulos intrnos en hrdware com-
pletamente independientes parala iecepcin y pa
la recepcin, lo que permite establecer fcilmente
comunicacio ne fa ll- D up htc. El proceso fi ndmen-
te es tan simple como colocar el dato que se va en-
viar en el registro de transmisin y leer el dato reci-
bido en el registro de recepcin; todo lo dems lo
hacen los circuitos de la UARL En esa leccin da-
remos las rutinas prototipo para la recepcin, la
transmisin y la interrupcin, con el fin de que se
puedan utilizar en otros progftimas.
Transmisin por
medio de la UART
l^a rutina de transmisin, figura l4.36,inicialmen-
-e entra en un lazo del cual no sale hasta que haya
detectado vaco el registro de transmisin. Esto lo
hace chequeando la bandera TXIF del registro
PIRI; cuando ella se encuentra en estado alto,
quiere decirque el registro estvaco. Cuando esta
condicin se ha cumplido, el dato que se va a trans-
mitir se pone en el registro de transmisin y la
rutina termina.
Un registro vaco indica que ya se ha envia-
do el carcter anterior hacia el registro de des-
plazamiento que ejecutar finalmente la trans-
misin. Si se ha habilitado la interrupcin por
transmisin
(bitTXIE
del registro PIEI en alto)
se generar una interrupcin cuando el registro
se haya desocupado. Si el registro de desplaza-
Figura l4.fiTnnsmisin con la UART
miento se encuentra vacfo, a l llegan los
nidos del registro de transmisin y se inicie
transmisin del dato. Si el registro de desp
miento no se encuentra vaco, la ansmlsi
de los contenidos del nuevo registro de t
misin no empieza hasta que el byte
haya transmitido completamente.
Recepcin por
medio de la UAHT
Cuando trabajamos en comunicaciones no
nicas, no se puede predecir el momento de
da de un dato. Al recibir un carcter se
nerar una interrupcin notificando este
figura 14.37. Cuando configuramos la i
cin por recepcin en la UARI ella se
el momento en que se ha recibido la toalidad
carcter. En ese momento la subrutina de i
rrupcin debe tomar el carcter del registro dc
cepcin y trabajar sobre l dentro de una
subrutina, figura 14.38.
Lo primero que se debe hacer dentro de
rutina es comprobar que la interrupcin se
bi a una recepcin, de lo contrario
Dentro de la nueva rutina de recepcin se
el carcter del registro de recepcin.
f-
#
&t;
cwso prciico sbe Mtctocontotad,w
Figun 14.37 Servicio de
UREC
I
I
I
I
I
o-
ra-
Be-
Lfo,
P-
en
del
e-
la
A.
i n
$-
se
rte-
I fe-
gva
esta
de-
ma.
)ma
Figura 14.fi Diagrama de flujo de la recepcin por medio de la UART
El diagrama de flujo de la figura 14.38
corresponde a una subrutina pertenecien-
te al archivo COM.GRP, el cual podemos
incluir dentro de nuestro proyecto parti-
cul ar en cual qui er momento, como se
mostrar a travs de un ejemplo. Esta su-
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 l4.3,lx 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 maneja
la UART es de dos bytesy es del tipo FIFO
(First In First Oux 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-
macin almacenada. 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 microcontroladores PIC ofrecen
una ventaja para no correr riesgos en la lec-
tura del registro de la UART. Cuando el
dato del registro est listo y disponible, se
activa una bandera (RCIF)
del registro
PIRI. Al momento de esta activacin se
debe leer inmediatamente el registro antes
de que llegue el tercer carcter y se pueda
perder informacin. En la figura 14.39 se
observa el cdigo fuente de este archivo, el
cual usted puede descargar de nuestra p-
gina en la internet.
curco
prctico
sobre Microcontrotadores
irr-t
#
lnttu tiuccl n a las co nrunlcaclo [rc=s sc+'[a[c=s
BANDERA
byte recibido (NUBYTE)
dos bytes recibidos (DOSBYTE)
error en la estructura del byte I
error en la estructura del byte 2
error de sobreflujo (ERSOB)
FUNCIN
activada al recibir un byte
borrable por el usuario
activada al recibir los dos bytes
borrable por el usuario
activada por error en el primer byte
borrable por el usuario
activada por error en el segundo byte
borrable por el usuario
activada por sobrepaso en la recepcin
borrable por el usuario
BIT
Tahla 14.3 Registro de
El programa que se muestra en la figura 14.40 co- Como se dijo al principio de esa leccin, una
rresponde a una porcin de un ejercicio con la nicacinserialsincrnicasecaracterizapor
UARI en el cual se desarrolla una comunicacin multipla bindedatos, donde cadabb:.u:rcmtn
Full-Duplcx (por razones de espacio no se incluy asocia con un pulso de reloj transmitido por una l
en su totalidad, pero est disponible en nuestra p- separada de la lnea de datos. [a comunicacin
gina de la internet). En este c:$o se recibe un carc- crnicapuede onotener birdeestrucnrrayellosp
ter proveniente de un terminal y de nuwo se retor- den o no, estar sincronizados con el reloj.
na el eco hacia el terminal. Este programa sirve para
demostrar la interfaz de sofatara entre la UARI y el La transmisin serial de datos distribur-e
programa de aplicacin. bits en el tiempo y el receptor debe estar en
pacidad de reconocer el momenro en que
El programa empieza enviando los caracteres pieza y el momento en que termina. Cuando
ASCII de la palabra OK hacia el terminal. Desde tiene a disposicin una seal de reloj que se p:
ese momento, cualquier carcter recibido del ter- da utilizar como referencia para ubicar de
minal es devuelto como un eco hacia este. Si por ra precisa los bits de datos, ellos pueden
alguna razn en el carcter recibido se detecta un diversas duraciones, lo importante es que la
error en su estructura, el microcontrolador retorna nea de reloj delimia el bit exacro.
el cdigo ASCII SUB (1A) en lugar del carcter
recibido. Conello, elterminalpuedesaberquehubo En la figura 14.4I se muestra un
un error y puede tomar medidas al respecto, como de transmisin sincrnica en donde los ciclos
por ejemplo, enviar de nuevo el dato. Si ha ocurri- reloj juegan
un papel fundamental. Los bir
do un error de sobrepaso, los caacteres recibidos se datos empiezan a ser vlidos cada que ocurre
devrelven pero junto con el carqer ASCII NAK flanco de subida de la seal de reloj y son le
(15).
De esta manera, el terminal estara en capaci- en el receptor cada que ocurre un flanco de
daddedeterminarqucaracteresseperdieronypro- da de la misma seal. Podemos notar que la
ceder a ena los que se detecuon. al de reloj puede ser simtrica o asimtrica.
dt& irr-t
curco prcco sobre Microcontoradores
&d

ia
t<-
; - -
JC-
L\ : Lj L L
;MODULO
DE TRANSMISION
MMTX BTFSSPI RI . , TXI F
GOTO MMTX
MOVF CATUS, W
MOWF REGTX
;
RETURN
;
BUFFER DE TX
;
SI -> TOMA EL
VACIO?
CARACTER A TRANSMITIR
MODULO DE RECEPCION
RX CLRF BANREC
BSF BANREC, NUBYTE
BTFSC ESTREC, FERR
BSF BANREC, ERRESTl
MOVF REGREC, l v
MOVWF REGl
BTFSS PI Rl , RCI F
SALTAGOTO RXX
BSF BANREC, DOSBYTE
BTFSC ESTREC, FERR
BSF BANREC, ERRESTz
MOVF REGREC, W
MOVWF REG2
RXX BTFSC ESTREC, OERR
BSF BANREC, ERSOB
BCF ESTREC, CREN
RETURN
BORRA BANDERAS DE RECEPCION
ACTIVAR BANDERA DE BYTE RECIBIDO
ERROR EN LA ESTRUCTURA?
SI -> ACTIVAR BANDERA DE ERROR EN EST. 1
TOMAR CARACTER RECIBIDO
Y LLEVARLO AL BYTE 1
EL DATO AUN ESTA (BYTE z)EN EL BUFFER?
SI . ACTI VAR LA BANDERA DE RECEPCI ON DEL BYTE 2
ERROR EN LA ESTRUCTURA?
SI -> ACTIVAR BANDERA DE ERROR 2
TOMAR EL 2 CARACTER RECIBIDO
Y SE MUEVE AL BYTE 2 DEL REGI STRO DEL USUARI O
ERROR POR SOBREPASO
SI -> ACTIVAR BANDERA DE SOBREPASO
BORRAR BANDERA DE SOBREPASO DE LA UART
ESTAN LOS DATOS EN EL BUFFER DE RECEPCI ON?
N0 -> N0 RECTBI o TNTERRUPCToN, SALrR
SI GUARDAR COPIA DE SEGURIDAD DEL CONTEXTO
TOMAR LOS DATOS RECIBIDOS
RESTAURAR CONTEXTO
Figura 14.39 Cdigo fuente de la librera para comunicacin no sincrnica utilizando la UART
i
senvrcro DE TNTERRUPcToN
-:--------
,
SERV-INT
BTFSS PI Rl . , RCI F
GOTO SALINT
MOWFTEMPW
SWAPF ESTADO, W
BCF ESTAD0, RPO
MOVllllF TEMPST
CALL RX
SERV-INT1
SWAPF TEMPST, W
MOVWF ESTADO
SWAPF TEMPW, F
SWAPF TEMPW, W
SALI NT RETFI E
curco prctico
sobre Microcontrotadores
&kr
r,"
d%
&d
Ltrtt'utiucci u a Las touruulcaclo lrers serlalt's
t
;
UERCICO DE CCIvINICACIChES RJLL PLEK CCN l.lRr
RADIX HEX
LI ST P=16F873
opt reg
t r i so
t r i sb
t r i sc
pi el
p e2
pcon
pr 2
sspodd
sspst ot
ESTTX
spbrg
rbif
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
ot
05
06
07
0c
0d
0e
L2
13
1.4
18
;
ESTAD0 DE LA TX
L9
o
TEMPST
TEMPW
BANREC
REGl
REG2
CATUS
NUBYTE
DOSBYTE
t hrebyt
ERRESTl
ERREST2
ERSOB
OH
KAY
SUB
NAK
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
0020
00zr
OO22; BANDERA DE RX
0O23; REG 1 DE LA RX
0024; REG 2 DE LA RX
O026; CN. DE TX DE
0
;
BANIM E BYIE RECEtr[t)
1
;
BN. tE RKffiN tE 2
2
3
4
6
;
ERROR POR
o4f
o4b
01o
;
CARACTER ASCII
015
INICIO
org 0x0O
GOTO INI
dw 0072
dw 006c
dw 0073
GOTO SERV-INT
CLRF PORTA
CLRF PORTB
CLRF PORTC
BSF ESTADO, RPO
M0VLW 0c0
MOWF t ri sc
Movllll 000
M0WF t ri sb
MOVLW OOT
MOVWF t ri so
I NI
LAZO
LAZOl
LAZOZ
MovLw 080
MOWF ESTTX
MOVLW OT9
MOWF spbrg
BCF ESTADO, RPO
MOVLW OLO
MOWF ESTREC
BSF ESTREC, spen
BSF ESTADo, RPO
BSF ESTTX, TXEN
BSF pi el , RCI E
BCF ESTADO, RPO
BSF I NTC0N, pei e
CLRF BANREC
BSF I NTCON, gi e
MOVLW OH
MOWF CATUS
CALL MMTX
MOVLIV KAY
MOVWF CATUS
CALL MMTX
BTFSS BANREC, NUBYTE
GOTO LAZO
BCF BANREC, NUBYTE
BTFSS BANREC, ERRESTI .
GOTO LAZOL
MOVLW SUB
MOVWF REG1
MOVF REG1, w
MOWF CATUS
CALL MMTX
BTFSS BANREC, DOSBYTE
GOTO LAZO
BTFSS BANREC, ERREST2
GOTO LAZOZ
MOVLW SUB
MOVWF REGz
MOVF REGZ, W
MOWF CATUS
CALL MMTX
BTFSS BANREC, ERSOB
GOTO LAZO
MOVLW NAK
MOWF CATUS
CALL MMTX
GOTO LAZO
INCLUDE COM. GRP
END
Figura l4.tl0 Cdigo ejemplo de comunicacin FulhDuplex
$le *kt'i.
curco prctico sobre Microcontrotadores
&d
*- i i -
. - :
.c' :
'
Rel oj
L\ JUL Lr 1
Figura 14.41 Protocolo serial sincrnico
Dentro del bus sincrnico solo puede exis-
tir un dispositivo que gobierne el funcionamien-
to y control de las comunicaciones en cada ins-
tante de tiempo; a este dispositivo se le deno-
mina el maestro, los dems dispositivos se les
llama esclavos. El maestro tiene como rareas
iniciar y terminar la transmisin, generar las
seales de reloj y direccionar (elegir)
el disposi-
tivo esclavo con el que se va a comunicar.
Por lo general los dispositivos seriales desarrollan
una tarea periftrica especfica; los ms comunes son:
.
Dispositivos de memoria (RAM, EPROM)
r
Conversores A/D
.
Conversores D/A
.
Multiplexores
.
Relojes de tiempo real y calendarios
.
Puertos I/O
.
Generadores de tono (DTMF y tonos musicales)
.
Manejadores de dispkys
o
Funciones especficas (por lo general I2C)
Dentro de la transmisin serial sincrnica se han
establecido tres esquemas muy representativos:
Philips desarroll el I2C (Inter
IQ, Motorola el
+
I
r--
|
Datos vl i dos
Cuando los bytes poseen una longitud fija, el
receptor solo necesita contar bits empezando con
el primero que recibe con el fin de delimitarlos.
Este tipo de transmisin es utilizada por un pro-
tocolo o bus denominado SPI.
En al gunos casos se uti l i zan bi ts de acom-
paami ent o que conf orman una est ruct ura
que del i mi t a l os dat os, como en l os buses I 2C
y
Mi crowi re.
El bus I2C es muy utilizado para conectar al
microcontrolador diversos perifericos que comple-
menten el sistema y poder cumplir con tareas ms
exigentes. Este bus permite incluir dentro de una
misma tarjeta un gran nmero de dispositivos se-
riales sin que el hardware deba complicarse dema-
siado y empleando pocas lneas para la conexin.
El comportami ento de todos l os di sposi ti vos
que se conectan en el bus seri al se ri ge por l as
normas di ct adas por el prot ocol o del bus.
Como se di j o anteri ormente, un protocol o es
un conj unto de normas y procedi mi entos ne-
;esari os para asegurar transferenci as de datos
:xi tosas. Este defi ne el formato de l os bi ts de
datos, l a forma de l a seal de rel oj y l as medi -
das de seguri dad ante posi bl es errores en l a
ransmi si n o prdi das en l a i nformaci n.
curso prctico
sohre Microcontotadores
&kn.t
#
I Lri-L'o uur-:r-l[ Lr a L iis cu tn uLr leaciu Lres se'[.[als=s
SPI (Serial Peripherical Interface) y National Se-
miconducto r lanz lainterfaz Microwire, figura
14.42. Parti endo de estos estndares muchas
empresas han desarrollado circuitos integrados
adaptados para funcionar con estas tecnologas.
Este bus emplea dos lneas: una para el reloj y otra
para los datos. En este caso se hace una comunica-
cn Half-Duplexdebido a que por la misma lnea
(SDA) circulan los datos de entrada y de salida.
Cada periferico es direccionado por sofiware de
manera que no existen lneas de seleccin de chip.
lnterfaz microwire
Figura 14.42 Esquema de comunicacin serial sincrnica
EI protocolo I2C es en realidad muy sencillo; lc
datos son vlidos cuando la lnea de reloj est e.
estado alto y slo pueden cambiar cuando la ln.,
de reloj se encuentra en estado bajo.
Empl ea tres l neas: entrada de datos, sal i da c.
datos y rel oj . Adi ci onal mente requi ere de una l .-
nea de seleccin de chip para cada dispositivo e .
el bus; en este caso l as comuni caci ones son
-Fr,.-
Duplex. El bus SPI define varios esquemas de sir'
croni zaci n, pero bsi camente l os datos son \' :.-
l i dos en una transi ci n v oueden modi fi carse e
l a transi ci n opuesta.
Es si mi l ar al bus SPI: requi ere tres l neas, ms .-
l nea de sel ecci n de chi p. En este caso l os datc
son vl i dos durante l a transi ci n de estado ba'
a estado alto.
Profundizemos un poco en el bus ItC, el cu,
es ampliamente utilizado en todo el mundo y b.
sndonos en l desarrollaremos una serie de ejerc
cios en la seccin de programacin de este curso.
I2C (Inter-Integrdted Circuit) es un bus serial c,
dos hilos utilizado para transferencias de datos .
8 bits, figura 14.43. Los dos hilos (reloj serial
datos seriales) transportan la informacin entre l,-
dispositivos conectados al bus, los cuales se clasi:
can entre maestros y esclavos. La lnea de datos .
bidireccional pero la informacin solo puede flu
en una sola direccin en un tiempo dado.
En un bus I2C todos l os di sposi ti vos puedr
funcionar como transmisor o como receptor, pe :
no si mul tneamente; si n embargo, al gunos dr:-
posi ti vos sl o si rven como receptores y otr-
como transmisores; por ejemplo, un displal ,
un di sposi ti vo que sl o puede ser receptor.
Dent ro del bus I 2C el di sposi t i vo mae , -
t ro es el encargado de i ni ci ar l a t ransf erenc .
de i nf ormaci n, generar l a seal de rel oj y 1l -
BUS I2E
scK
(Rel oj )
,/\
tsD
@Efr(flT".L curso prctico sobre Microcontrotadores
\,7
h
fE
t"
d
l-
ri
I

I
I
c
f-
n
L
F
ts
lr
&
tcll
l y
:loc

G5
It'r
dcn
dfo-
t}5
t t e5
Eret-
nc
llc-
Solo un dispositivo
ouede ser el maestro
var el control de las operaciones. Para facili-
tar esta tarea, cada dispositivo dentro del bus
posee una di recci n ni ca por medi o de l a
cual el maestro puede entabl ar una comuni -
caci n preci sa con el l os. Es de resal tar que
en el mi smo bus pueden exi sti r vari os di spo-
si ti vos maestros, pero no al mi smo ti empo.
Para evitar que se presenten colisiones por este
concepto, se debe poner en cl aro un procedi -
mi ento de arbi tramento.
. ' ; . rri l , ri q; ; i f i {t e f - Li i S
i a:
Las dos lfnes del bus I2C: la de reloj (SCL)
y la
de datos (SDA) son bidireccionales y se conec-
tan a una fuente de voltaje positiva a travs de
resistencias de pull-up, de manera que cuando
el bus est libre, ambas llneas se encuenrran
en estado alto. Las velocidades que maneja el
bus IzC se encuentran en el rango de 0 hasta
100 Kbi ts/segundo.
La generacin de las seales de control es
responsabilidad del maestro. El genera la seal
de reloj cuando la informacin es enviada hacia
el bus, y cuando hay comunicacin entre dos
dispositivos, se debe establecer una serie de con-
diciones de reconocimiento entre ambos elemen-
tos, pero igualmente sincronizadas con el reloj.
Para ello se utiliza un bit de reconocimiento de-
nominado ACK
(ac
h n ow le dgm en t) .
SCL (Reloj)
SDA (Datos)
Figun l4.iB Configuncin tpica del bus PC
El inicio ylaptadadel proceso son seales
de control generadas por el maestro; cada trans-
ferencia de informacin debe presentarse primero
con una condicin de INICIO, seguida de la
direccin del esclavo, los bytes de datos y final-
mente una condicin de PAMDA.
La condicin de INICIO se define como
una transicin de alto a bajo en la llnea SDA,
mientras la lnea SCL se encuentra en alto; y
una condicin de PARADA se define como una
transicin de estado bajo a estado alto en la l-
nea SDA, mientras la llnea SCL se encuenrra
en alto, figura
.L4.44.
Cada byte que se ponga en la llnea SDA debe
ser de 8 bits, pero se pueden transmitir todos los
bytes que se desee. Cada uno de ellos debe estar
acompaado del bit de reconocimiento (ACK)
generado en el receptor, el cud indica que el re-
ceptor pudo leer y procesar el dato correctamen-
te, y cada uno se transmite empezando por el bit
MSB. Los datos son vlidos durante el periodo
alto del reloj y pueden cambiar durante el perio-
do bajo del reloj.
La seal de ACK necesita de la seal de
reloj enviada desde el maestro. Para confor-
mar esta seal, una vez terminados los datos,
el transmisor debe poner en alto la lnea SDA
cuso prctico
sbe Micwuttotadoes
rr*#
>
I trtt'o tiuccl lr a las eu tuunlcacio [re's se.f lalt=s
y el di sposi ti vo receptor debe ponerl a de nue-
vo en baj o. Este estado baj o ocurri do durante
el peri odo al to de l a seal de rel oj , es el reco-
noci mi ento de l a recepci n.
Transferencia de Dts en l2C
Si se presenta algn error en la recepcin, e.
receptor debe dejar la lnea SDA en alto, estc
det ermi na un est ado de no reconoci mi ent c
(NOACK).
Si un esclavo enva un NOACK, e.
maestro puede generar una con-
dicin de PARADA para abor-
tar l a transmi si n, fi gura L4.45.
Despus del INICIO, el pri-
mer byte enviado por el maestrc
es la direccin del esclavo con e-
cual desea entablar comunicacir
y establece la direccin que ten-
drn los siguientes datos. Para ellc
los siete bits ms significativos de
la direccin del esclavo indican l
direccin del dispositivo y el bi:
menos significativo (LSB) deter-
mina el flujo de la informacin.
LJn cero en eI bit LSB quiere de-
cir que el maestro transmitir er-
los siguientes bytesy un uno en e-
mismo bit indica que transmitir"
el esclavo, figura 14.46.
Observemos en l a f i gura
14.47 unagrtficadonde se mues-
tra una transmisin I2C donde e.
dispositivo esclavo es una memo-
ria EEPROM. La seal ACK ge-
nerada por el esclavo es lo que si-
gue despus de la direccin del es-
clavo y a partir de ella deben esta:
Ios bytes de datos; luego va la se
ACK generada por el receptor.
Pulso de reloj para
rec0nocimento
Figura 14.t14 Funcionamiento del bus PC
*' ffi
t
-
-
-t ---T---
L
,n,.,0
Reloj de Rcx
J L
Si ,l .r'ol pr.*
Figura 14.t15 Transferencia de datos PC
tOO (Datos)
scl n n n
{Reroj)
_J \-/ \-/ \_
t t
Datos vlidos
I
L-
Datos pueden cambiar
Condiciones de inicio y parada en l2C
sDAl -, , (\ t
SCLI J\ | -
Reconocimiento en l2C
Salida de datos
del transmisor
Salida de datos
del receptor
El SCL desde el
maestro
Reconocimiento
#
&kr.L
curco
prctico sobre Microcontrotadores
:
l :,.1,
i
i "' :
?-r:
f
- - l
i LL, L- f -
l -
.rii-l
g'1
- f i ; r - !
i l l -. , 4-
r-l
: i i - - , 1
Si en un momento dado se desea cambi ar
.a di recci n de l os datos, se debe envi ar de nue-
' .' o
una condi ci n de INICIO y l a di recci n del
escl avo para establ ecer el cambi o. Fi nal mente
\ -
LL- UL L
l a comuni caci n con el escl avo se termi na con
el envo de una seal de PARADA.
El esquema mostrado en la figura 14.47 co-
rresponde a un ej empl o concreto de una comu-
ni caci n por medi o del bus I2C, entabl ada con
una memori a EEPROM, l a cual es un di sposi ti -
vo que puede enviar o recibir datos. De la mis-
ma manera este esquema se cumple para otros
dispositivos como visualizadores, decodificado-
res, controladores, etc. En la seccin de progra-
macin analizaremos un ejemplo en el que, a tra-
vs del bus I2C, incorporamos una memoria se-
ri al a un si stema mi crocontrol ado.
Parada
Eyle de datos
(desde el escl avo)
Desde el escl avo
Figura 14.47 Transmisin FC
sus productos,
logrando una reduccin en cOs-
tos
y
aumentando los volmenes de
produccin.
De esta manera surgi eron numerosas ga-
mas de productos (por ej empl o, converti d0-
res A/D, D/A, memori as RAM, etc.) y entr al
mercado de l a tel efona moderna, donde son
i ndi spensabl es el ementos tal es c0mo l as me-
mori as, l os generadores de frecuenci as, l as
pantal l as
de cri stal l qui do, etc, Ahora l a mi ra
est
puesta
en campos c0m0 l a mul ti medi a.
En l a tabl a 14.4 se muestran al gunas de l as
posi bi l i dades
de cobertura en mercados de
component es del bus l 2C,
t _
L---->
RW
ffi
I
=
Lectura
0
= Escritura
Figura 14.t16 Formatl de la direccin del esclavo
Ini ci o--
I
I
Di recci n del escl avo
f
(desde el maestro)
NO
C
K
t
I
1010 para EPROIM
PARA SABER MS
Breve historia del lz0
El bus l2C se desanoll en los aos 80 e inmedia-
tamente fue clasificado dentro de la categora de
redes LAN. En la actualidad millones de televiso-
res, radi0s y
otros aparatos utilizan este sistema
de comunicacin en sus circuitos internos: esta
adopcin se debi al alto inters
que
despertaron
sus ventajas dentro del mundo de la microelectr-
nica. lgual acogida tuvo este
protocolo de comu-
nicacin en la electrnica automotor
para
comu-
nicar la mayora de los equipos instalados en los
automviles. El alto impacto del bus l2C motiv a
muchos fabricantes a adoptar esta tecnologa en
Curso prctico
sobre M icrocontrol adores
&k
m'
\
1 53
2
\ .../,/
F.
lnil o tiuut:l n a las eonrunleaelo nes st.t'[a[u=s
En resumen, l2C es un bus rpido
que interco-
necta varios
perifricos
dentro de un sistema
por
medio de dos hilos de comunicacin.
Tabla 14,4 Cobertura de componentes con bus FC
En l a si gui ente tabl a se muestran al gunos ci r-
cuitos integrados que
cumplen los requerimien-
tos para
incorporarse al bus l2C.
Integrado
PCD331 1 n 2
PCF8200
PCF8570
PCF8573
PCFB574
PCFB579
PCF8581
PCF8591
sM7199
sM1300
TDA468O
TDA8421
TDAB461
TEA61 OO
TSA551 1
TSA6O57
Funcin
Generador de tonos
DTMF/modem/musicales
Sintetizador de voz
RAM 256.8
Reloj/Calendario
Convertidor de l2C a B Dlfs
Manejador de LCD
EEPR0M de128 bytes
Convedidor de 8 DdsffD
y D/A
Encoderdigital
Manejador de corriente
Procesador de vdeo
Procesador de audio estreo Hl-Fl
Decodificador de color
lnterfaz de sintonizacin
Sintetizador de frecuencia
PLL
para TV
Sintetizador de frecuencia PLL pana nadio
'l
1
MAl AO
' r
0u
A6 A5
01
Direccin
A4 A3
00
10
10
01
00
11
10
01
1' l
00
00
00
00
00
00
00
UU
UU
UU
OU
UU
UU
00
UU
00
OU
OU
01
UU
UU
U: Usuario
00
10
11
01
01
10
10
10
01
10
10
10
11
11
0
U
0
U
1
U
U
0
0
1
0
1
0
0
U
w RadioAudioTelfonoIndustria Automvil
Recepcin deW
'
Recepcin de radio
Tratamiento de audio
Mando infranojo
Mando de displaysLCD
Mando de displaysLED
Sintetizador de voz
DTMF
r/0
Convertidor D/A
yA/D
Reloj/Temporizador
MM
EEPROM
Microcontroladores de 8 blfs
Microcontroladores de 16 Drfs
a
a
a
a
a
a
a
a
a
O
a
a
a
a
a
a
a
a
o
a
a
a
a
a
a
a
a
o
O
o
o
a
a
a
a
o
a
a
a
a
(. )
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
o
a
, A\ - r
du& &rctt".i.
curco
prctico sobre Microcontrotadores
\r'
J
-2,
.1
h
'\i/
*fr
,r*
,J$gflg-"
, *_t {.
*, #'-
,,.'
I
I
Estos mdul os son muy i mportantes para l a
gran mayora de di seos en i nstrumentaci n y
control de procesos i ndustri al es, debi do a que
permiten leer variables anlogas de sistemas rea-
l es y regi strarl as en l a memori a. En esta l ecci n
analizaremos el funcionamiento y el manejo de
este mdul o i nterno.
. /
Curso prctico
sobre Microcontroladores GEllffiT,,. ( tSS
)
En los microcontroladores ms modernos
de Microchip tenemos la posibilidad de leer
seales anlogas por medio de'un mdulo in-
terno espec ializado. Sus p rincipales caracters-
ticas son:

Entre 5 y 8 canales de entrada
(dependiendo
de la referencia del microcontrolador)
.
Un multiplexor anlogo
.
Un circuito de ajuste y retencin de la seal de
entrada
.
Varias alternativas de fuentes de reloj para lle-
var a cabo la conversin
.
Velocidad de toma de muestras (muestreo)
ajustable
.
Seleccin de un voltaje de referencia interno o
externo
.
Conversin a 8 a l0 bits (dependiendo
de la
referencia)
.
Generacin de interrupciones
completado la conversin
Caractersticas del
convertidor AD
Analicemos el caso de la conversin
a8 bits. El convenidor 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 denomi-
nado voltaje de referencia, produ-
ciendo una sdida en 8 bits como
se muestra en dicha figura.
Una de las opciones ms uti-
lizadas para configurar el voltaje
de referencia para el convertidor,
es que ste corresponda al volta-
je de alimentacin del PIC. Para
hacer uso de esta opcin, debe-
mos hacer algunas configuracio-
nes dentro del programa para'
que que lnternamente se haga esta conexln y nc
tengamos que emplear un pin para aplicar ur
internamente se haga conexlon
voltaje de referencia externo; de esta maneri
se logra que los PIC puedan utilizar hasta t
canales de entrada A/D.
El caso m:s apropiado para hacer
der el voltaje de referencia con el voltaje de
alimentacin del PIC, es cuando se trabaja
un transductor cuya sdida es proporcional a
propia fuente de alimentacin, permitindose
amplio rango de voltajes anlogos de
entre 0V y el voltaje de referencia:
Para configurarel funcionamiento de los
cuando se ha
vertidores A"/D debemos seguir el procedi
Salida digihl
123
256 256 256
252 253 254 255
256 256 256 256
Volhle de entrada
Voltaie de referencia
frgun l5.l Funcin de tansferencia del conversor A/D de los
H' ,04'
4
256
Vr**oosV*rrr*r".o
#
curso prcticosbe Micrrcontotadotes
Sl o para entradas Sl o para l /0
. anl ogas di gi t al
Ent radas anl ogas
1: Ent rada di gi t al
0: Sal i da di gi t al
1: Ent rada anl oga
o di gi t al
0: Sal i da di gi t al
l l - l I L
"
(ADRES)
y dos de control (ADCONO y
ADCONl ), fi guras 15.3 y 15.4; el m-
dulo A/D de l0 bits tiene cuatro regis-
tros asociados, dos para almacenar el dato
(ADRESH
yADRESL) y dos de control
(ADCONO
y ADCONI ).
En algunos casos es ms aconsejable
utilizar una referencia de voltaje externa
de 3,0 vol ti os para proporci onar una ma-
yor resolucin en la salida (para medicio-
nes de voltajes anlogos por debajo de 3,0
voltios). Esto es especialmente llamativo
para mediciones de voltajes diferenciales.
La fi gura 15.5 muestra l a conexi n
de una referenci a de vol taj e externa al
PIC y adi ci onal mente, l a confi guraci n
de l os regi stros para su funci onami ento.
Resumamos las principales caractersticas
de funcionamiento de los convenidores A,/D
internos de los microcontroladores PIC.
Intemo: V*r.r*.*a^
=
Voo ( vol t aj e
de al i ment aci n)
Externo: 3,0V
5
V*r..**.^
S
Voo + 0,3 V
Tpica-
ment e 180 uA.
Entradas anlogas
l /0 di gi tal es
sf o
NE
l o-
- s (J <l
<r
ADCONl
765432
No establ eci dos
No est abl eci dos
TRI SA
( H' 85' )
TRI SE
( H' 84' )
Deshabi l i t ar f unci ones
alternatvas del puefio E
s
N
l @
' l :
Ent rada anal ooa I o
o di si t al
| =
0: Sal i da di gi t al
|
;
l
No est ab eci dos
| ;
6
Figura 15,2 Entradas anlogas cln Vrr, = Voo
nostrado en la figura 15.2.Enesta figura se mues-
:ran inicialmente los pines con funciones ND y
-a
configuracin de los registros asociados. Cual-
:.uier pin al que Ie sea asignada la funcin de en-
:rada anloga o digital puede leerse como una en-
:rada digital o como una entrada anloga.
El mdulo AiD de 8 bits tiene tres registros
. soci ados, uno para al macenar el resul t ado
,
(
r.\
Curso pracnco soore Mrcroconotadores
@ricttr"., 1
157
7
\ / /
Lus ccuvt;trluot'es anlou o/ulu li-ales
Regi st r o: ADC0N0
ADSCI ADSC0 Res. CHS1
Regi st ro: ADC0N1
UUUUU
bi t 7
CHS0 Go/Done ADIF ADON
fosc/2
fosc/8
fosc/32
frc
canal 0 (AINO)
canal 1 (Al Nl )
canal 2 (AlN2)
canal 3 (AlN3)
un oscilador de 20 MHz
un oscilador de 10 MHz
un oscilador de4MHz
U PCFGI PCFGO
bir 0
bi r 7 bi t 0
Di recci n: 08h
condicin de resef 00000000b
ADSCl,0; A/D Conversion Clock Select selector del reloj
del convertidor
Di recci n: 88h
Condicin de reset 00000000b
U: Unimplemented No establecidas.
Estos blfs se leen como ceros.
PGFG1,0: Confi guraci n de l os pi nes RA0-RA3
PGFGI,O RAO,RAI RA2 RA3 Vref
00 E. anl ogas E. anl oga E. anl oga Vdd
01 E. anlogas E. anloga Referencia RA3
10 E" anlogas US digital E/S digital Vdd
11 E/S digitales E/S digital E/S digital Vdd
Figura 15.4 Registro ADC1N:
sos de conver si n, es t ener en cuent a el t i em-
po de muest r eo que se acaba de l i st ar en l as
anteri ores caractersti cas y cuya estructura ge-
ner al se apr eci a en l a f i gur a 15. 6.
Cuando seleccionamos un canal de entrada
al converti dor A/D, un i nterruptor de muestrec
que funci ona como mul ti pl exor anl ogo l o co-
necta a un condensador de muestreo (C*urun).
figura 15.6a.
El vol taj e de retenci r V*uru,u debe mante-
nerse el sufi ci ente ti empo para que el conden-
sador de retenci n C*u' u* tome el vol taj e de l a
fuente V.uu.rro y al cance uno de l os escal ones
de vol t aj e most rados en l a f i gura 15. 1.
Entre mayor sea l a resi stenci a de l a fuente.
mayor ser el ti empo de carga del condensador.
fi gura 15.6b. Una resi stenci a al ta en l a fuenr
se puede reduci r medi ante un ampl i fi cador en
confi guraci n de segui dor, fi gura 15.6c.
Despus de esperar el t i empo de mues-
t reo, se puede i ni ci ar l a conversi n. El ci rcui -
t o Ai D abri r el i nt errupt or de muest reo l
00
01
' 10
' 11
Res: Reservado
Este lfno se utiliza
CHS1,0: Anal og Channel Sel ect sel ector del canal
anl ogo
00
01
10
11
GO/ D0NE: Comi enza l a conversi n cuando se col oca en
1. Al f i nal i zar l a conversi n es puest o en 0 por
hardware.
ADfF: A/DConversionCompletelnterruptFlagbandera
de i ntenupci n por fi nal i zaci n de l a conversi n.
Se col oca en 1 cuando termi na l a conversi n; debe
ser puesta en 0 por programa.
AD0N: BtDa'a controlar la activacin del convertidor.
0: mdul o del converti dor desconectado y por l o
tanto no exige corriente.
' 1
: mdul o del converti dor Ii l D en ooeraci n.
Figura 15,3 Registro ADC)N0
12 us. ste es el
tiempo transcurrido desde que el canal se ha se-
leccionado y antes de que se inicie la conversin.
.
15 us para
'
30 us para
.
19 us para
Una de l as caract er st i cas ms i mport an-
t es que debemos consi derar al ut i l i zar proce-
/A\ :
uD &ifctf,2.
curso prctico sobre Microcontrotadores
\ , /
\Z
Lr , t ' l r '
L\,-L]L L
Slo para l/0
di gi tal
+5V
Analoo Devices Refl 93
ADCONl
(H' eF' )
Slo para entradas
anl ogas
No establ eci dos
Entradas
anlogas
TRISA
(H' 85' )
TRISE
(H' ,gg' )
l 0 r F

I
4
1uF
3
'10,rF
0 l pF
+
t
Ci rcui to i ntegrado de
referencia de voltaje.
t-l-
"ra
configurar enfadas anlogas
Para configurar la entrada de la
rof aranai da vl t ai
1: Ent rada di gi t al
0: Sal i da di gi t al
1: Ent rada anl oga o dgi t al
0: Sal i da di gi t al
No est abl eci dos
Figura 15,5 Entradas//D con voltaje de referencia externo
sos most rados en l as f i guras 15. 2 y 15. 5, en
donde se configuran los registros ADCONl,
TRISA y TRISE para seleccionar el voltaje de
referencia y los canales de entrada deseados.
Luego, se inicializa el registro ADCONO
mediante los pasos que se muestran en la fi-
gura, 15.7. El primer paso es seleccionar la
fuente de reloi del convertidor A/D enrre cua-
! - J^ A A
Deshabi l i t ar f unci ones_
|
1: Enkada anroga y di gi t al
al t ernat i vas del puedo E
|
0: Sat i da di gi t al
No establecido
i l evar a cabo l a conversi n del vol t aj e de en-
rada en el moment o en que el i nt errupt or se
abre. Si el A/ D se ut i l i za para t omar muest ras
en un sol o canal a i gual es i nt erval os de t i em-
po, se puede hacer uso de i nt errupci ones.
Para trabaj ar con el converti dor i nterno de l os
ni crocontrol adores PIC debemos segui r l os pa-
Curso prctico
sobre Microcontrotadores
&kt
,.,
+
Lus cu uv e'trlriu t'u's anlo c u/ ri.ia ita |.u=s
Ti cmpo de
m!estre0
Acti var el ADC
Bl l no establ ec c
No i ni ci ar an
conversi n
Di vi di r por: Osc
Para obtener un peri odo
del rel oj del ADC de:
1, 6
r s
3, 2
t s
2
ts
0 20 MHz
0 10 MHz
1 4MHz
76543210
iflETim
t t - t t t
Nocambi ar esr oso
0 0: Ent rada anl oga por el bl f 0 del puert o:
0 1: Ent rada anl oga por el bl l 1 del puert o :
1 0: Entrada anloga por el bif 2 del puerto :
1 1: Ent rada anl 0ga por el bl t 3 del puert o
0 0: Entrada anloga por el bll 5 del puerto
0 1 : Entrada anloga por el blt 0 del puerto
I 0: Entrada anloga por el bl 1 del puerto
1 1 : Entrada anloga por el bit2 del puerto
ADCONO
( H' 1F' , )
No cambi ar
I ni ci ar convers
Figura 15.6 Consideraciones sobre el tiempo de muestrel
t r o posi bi l i dades
( OSC/ 2, OSC/ 8, OSC| 32y
RC). Las opci ones most radas en l a f i gura
15. 7a permi t en l a mayor vel oci dad posi bl e
baj o l a restri cci n de que el peri odo del A/D
debe ser de 1, 6 us o mayor.
La seleccin de RC (activando los bits 6 y
7 del regi stro ADCONO) se uti l i za cuando el
mi crocontrol ador trabaj a con un cri stal de fre-
cuenci a rel ati vamente bai a.
Si sl o vamos a uti l i zar una entrada an-
l oga, podemos sel ecci onarl a como se i l ustra
en l a fi gura 15.7b y l a sel ecci n del peri odo
most rada en l a 15. 7a. S
yamos
a ut i l i zar va-
ri as entradas anl ogas, es i mportante esperar
un ti empo de muestreo como se apreci en l a
fi gura 15.6b. Esto es, una vez sel ecci onado el
canal , debemos esperar un ti empo de mues-
0
0
0
0
Figura 15.7 Configuracin y utilizacin del registro ADC}N-
treo y l uego i ni ci ar l a conversi n acti vando e^
bi tGO-DONE del regi stro ADCONO. Cuan-
do GO-DONE se pone de nuevo en baj o, l a
conversi n ha t ermi nado, y podemos l eer e-
resul t ado del regi st ro ADRES (H' 1E' ).
Cuando se presenta l a necesi dad de tomar
muestras peri di camente de uno o ms canal es
de entrada, un excel ente recurso es pensar en l a
posi bi l i dad de i ncorporar dentro del funci ona-
mi ent o del convert i dor el mdul o t i merl
CCP2, del cual ya analizamos su operacin en
l as l ecci one s 12y 13 de est a secci n, para que
peri di camente se encargue de i ni ci ar el proce-
so de conversi n.
/ A\ , ;
<tt)
&-frffiT"I. curso prctico sobre Miuocontrotadores
F':
-
_. 1.
: : ' S
- : - Y
--
.aa
- l
El tempo rizador watchdog y el modo sleep son
dos conceptos que, si se saben manejar correc-
tamente, pueden traernos enormes beneficios
para la estabilidad y optimizacin de los siste-
mas electrnicos que desarrollemos con micro-
controladores. En esta leccin analizaremos es-
tos factores y observaremos como insertarlos co-
rrectamente dentro del cdigo del programa.
Curso prctico sobre Microcontrotadores
&i<
tf":
#
E[vtatcl roog
y
Gl .ni odo sl ec:
Como su nombre l o sugi ere, el
watchdog o perro guardin es un
mdulo interno que una vezacti-
vado, permanece alerta para que
los programas no caigan en fallas
inesperadas e indeseables. Funda-
mentalmente su vigilancia consis-
te en generar cada cierto tiempo
un estado de reset para que el pro-
grama inicialice nuevamente su
oper aci n desde l a di r ecci n
0x0000. De esta manera comba-
timos problemas tales como caer
en ciclos infinitos o alteraciones
t
I
Bit de
habi l i t aci n del
WDT
debidas al ruido. Muchos usuarios acostumbran
emplear dentro de sus aplicaciones, alguno de
los temporizadores para que hagan las funciones
del watchdog.
El tempori zador watchdog (WDT) es un
osci l ador i nterno basado en un senci l l o ci rcui -
to RC, cuyo funci onami ento es absol utamen-
te i ndependi ente del osci l ador general del mi -
crocont rol ador de manera que, aunque est e
l ti mo se detenga, el watchdog
(\l DT) con-
ti nuar funci onando.
En l a f i gura 16. 1 podemos observar una
est ruct ura en bl oques del
\ WDT
en donde ve-
mos que el t empori zador se act i va medi ant e
un bi t de conf i guraci n; si recordamos l as l ec-
ci ones ant eri ores, en l a posi ci n 3 del regi s-
t ro OPCI ON se encuent ra el bi t PSA, f i gura
16. 2. Si esrc bi t se encuent ra en uno, el pres-
cal ador se asi gna al \ 7DT y si est en cero, se
asigna al TMR0; haciendo la asignacin del pres-
calador al VDT hacemos que los pulsos de en-
trada al TMR0 no sean sometidos a ningn pro-
ceso de divisin de frecuencia.
De esta manera el \7DT puede ser someti-
do a un proceso de divisin para variar su tiem-
po de respuesta, el cual se rige por los mismos
factores configurados por los bits PSO, PSI y
<-- PSA
I
V
Sal i da del WDT
Figura 16.1 Estructura en bloques del watchdog
llilsdo a fuente
rcl oj cl ol Ti \ , 4R0
l n
L"
-------+
Regi stro: 0PCl 0N
RBPU INTEDG GRTS RTE
BT7
Direccin:
condicin de reset
<- PS2, PSI
PS] PSO
Bit0
l--"---*
Ar TrvrRo
V'
PSA PS2
81h
11 11 1 111b
RBPU: PortB Pull-up Enable o Habilitacin de pull-up
del
puerto
B.
0: habilita las pull-ups internas
1: l as deshabi l i ta
INTEDG; INT lntenupt Edge Select o Selector de flanco
de l a i nterruoci n INT
0: flanco de bajada
1: fl anco de subi da
TMR} Signal Source o Fuente de seal de TMR0.
0: ciclo de instrucciones interno
ffemporizador)
1: transicin en el pin RA4[0CK (Contador)
TMR} Signal Edge o Flanco de la seal TMR0
0: incremento en transicin de bajo a alto
1: i ncremento en transi ci n de al to a baj o
Prescaler Assgnment o Asignacin del prees-
cal ador
0: TRM0 (Contador/Iemporizador)
RTE:
RTS:
PSA:
Valor
000
001
010
011
100
10t
' 1
10
111
TMRO WDI
1: 2 1: l
1' .4 1:2
. l
: 8 1: 4
1: 16 1: 8
' l :32
1 :16
1: 64 1: 32
1: 128 1: 64
1: 256 1: 128
Figura 16.2 Registro )PAA,
#
kt;.
curco prctico sobre Microcontrotadores
o
(
{
I
c
a
I

PS2. Cuando el prescalador es asignado al \DT


se acostumbra denominarlo post-escalador.
Uno de los problemas ms comunes que se
encuentran cuando depuramos unprograma es que
el temporizador uatchdog (\fDD est habiliado
inadvenidamente y el circuito programado no hace
su trabajo adecuadamente. El'S7DT se puede acti-
var mediante la configuracin esablecida dentro
del entorno de desarrollo, figura 16.3; ambin se
puede hacer dentro del cdigo del programa por
medio de la pdabra de configuracin. Debemos
Figun 16.3 hrmetros de configuracin
tener mucho cuidado en este punto, porque si den-
tro del programa desactivamos elwatcldog, pero
en el entorno de programacin se activa, este m-
dulo en definitiva quedar habilitado y esto se pue-
de reflejar en problemas de funcionamiento de nues-
tro dispositivo electrnico.
Cuando se programa un microcontrolador PIC, den-
uo del codigo se suele colocarlapalabra de configura-
cin que corresponde a una tcnica que nos permite
configurar dade el programalos par:meuos con que
va a funcionar el circuito; para hacer esa operacin se
pude coloca un nmero binario o ciertas aiqueras
habiadas, como se muestra en la figura l6,4.Un
ejemplo de esta configuracin la podemos observar
en el proyectoAviso luminoso condiodos LED pu-
blicado en e$e curso. Paa especificar los parmeuos
deseados se utiliza la directiva del ensamblaclor confrg,
la cud permite especificar cada uno de estos r den-
o del *digo del programa" Fsta directiva hace una
operacin AND
(6)
con cada una de las aiquetas de
la figura 16.4, por ejemplo:
-config
(-XT-OSC &
-\7DT-OFF
&
_PWRTE_OFF
E{
_BODEN_OFF
6c
_cP_oFF)
En la sintaxis de esta directiva podemos ob-
servar dgunos caracteres underline (
-
)
que se
deben escribir obligatoriamente. Como hemos
)
)
Efl0ugtA DESCRtPctol{
_r.P_osc
_xf_osc
_HS_oSC
_RC_OSC
-WDT-OFF
_wDT_Ot{
_PwRIE_ot{
-PI['RTE_OFF
-BODEN-OFF
-BODEN_ON
-CPJLL
_cP_75
_cP_50
_cP_0fF
Crlsbldob4opoder 0SCs200KHz
Cdsbl do mngo modlo 08C < 4l,lH
Crishldonangoab 0SC<20MHZ
Gcllador por condensador 06C < 4 iftlz
lAr@doshabl[hdo
[ldN@haHlluo
tuwetWtln|,thllffi
fo 1|or rp Itnrdsshbilfrado
Bronr, drtlEsaf doshabiliHo
8,owna.ltrcthabllido
Cdigo probgido pan bda la momoria do programa
Cdlp p@ldo par0175% & la Emoria de programr
Cdigo probgldo para el 50% do b momdta do programa
Cdigo sin probccn para h memorb d6 programa
Figun 16.4 tulabn de configuncin
curco
prctico
sobre Miuonnfrotadores
rrr*#
Nombre BitT Bt 6 BitS Bit4 Bit3 Bit2 Bi t l Bi t 0
config.Difs MPEEN BODEN CP1 cP0 FWFTE WDTEFOSClFOSCO
]PTION REG RBPU INTEDGTOCS TOSE PSA PS2 PS1 PSO
ELvtatclruog
l,
Gt tuodo slerur:
mencionado anteriormente, muchos programa-
dores acostumbran incluir dentro de sus pro-
gramas una serie de archivos que contienen su-
bruti nas, defi ni ci ones, l i breras, etc., que l os
hacen ms comprensibles, alavez que permiten
reutilizar componentes de sofiwarr en futuras
aplicaciones.
El ms utilizado es el archivo INC. el cual
contiene todo el mapa de direcciones RAM
v
la
t I t
^
, I t . . | |
descripcin de cada uno de los bits de los dis-
ti ntos regi stros de cada ti po de mi crocontrol a-
dor, lo cual nos ahorra el trabajo de repetir con-
ti nuamente l as mi smas defi ni ci ones; ej empl os
de est os ar chi vos son el Pl 6C74A. I NC,
P16F84. I NC, et c. Debi do a l a gran ut i l i dad de
estos archi vos, el l os se encuentran di sponi bl es
en la pgina del fabricante para que sean des-
cargados y utilizados libremente. Dentro de es-
tos archi vos INC tambi n se encuentran todas
las definiciones de la palabra de configuracin,
l o que nos permi te uti l i zar l as eti quetas en el
momento que vayamos a programarla.
En muchas ocasiones se encontrar que un mis-
mo microcontrolador aparece con el sufijo A, por
ejemplo PICL6C74 y PIC16C74A. Esa diferencia
se ver reflejada en la palabra de configuracin.
Los bits de configuracin del cdigo pro-
tegi do son ti l es cuando se trabaj a en el modo
de programaci n seri al . Cual qui er secci n de
l a memori a de programa a l a que no se l e pro-
Tabla 16.1 Registros
asociados al WDT
En condi ci ones normal es, el \fDT se encarga
de generar un estado de reset al mi crocontrol a-
dor cada que se alcanza un tiempo de espera.
Cuando se t rabaj a con el post -escal ador, el
\fDT ti ene un peri odo de espera de 18 ms el
cual puede vari ar con parmet ros ext ernos
como l a temperatura.
Si deseamos unos ti empos de espera ms
l argos, debemos ut i l i zar el post -escal ador se-
l ecci onando uno de l os factores de di vi si n
di sponi bl es. Si sel ecci onamos un f act or de
1: 128, podemos l l egar a peri odos hast a de 2. 3
segundos.
Regi stro: ESTAD0
I RP RP1 RPO TO
BitT
Direccinl
condicin de reset
PD
03h
OOO??XXX
c
BtO
DC
tej a el cdi go,
^.,
Lrr..p,i bl e de ser l eda se-
z:
ri al mente desde un di sposi ti vo externo. Esto
DG:
permi te veri fi car l a i ntegri dad del cdi go en
un mi crocontrol ador programado y de ci erta
C:
manera, permi te tener en secreto el programa
guardado. En l a tabl a 16.1 podemos apreci ar
un resumen de l os regi stros asoci ados al fun-
ci onami ento del tempori zador watchdog.
$*3 fti.
curco prctico sobre Microcontrotadores
&d
IRP: Selector de pgina para direccionamiento indirecto
Este lfno se utiliza efectivamente en el PlCl6F84,
por lo que se puede utilizar como un Dffde propsito
generar.
RPl,0: Selectores de pgina para direccionamiento directo.
se pueoe
utilizar como un Dde propsito general.
fime Out o 8 de finalizacin del temporizador.
Se coloca en 0 cuando el circuito de vigilancia Watch-
d og finaliza la tem pori zacin.
Power Down o Sltde bajo consumo. Se coloca
la instruccin SIEEP.
el resultado
de una operacin lgica o aritmtica es cero.
Digit Canyo Blf de acarreo de dgito. En operaciones
aritmticas se activa cuando hay acarreo entre el blf
3yel 4.
Carry o Bit de acarrreo. En instrucciones aritmticas
se activa cuando se oresenta acarreo desde el DlTms
significativo del resultado.
Figura 16.5 Registro de estado
: Lr ^4
' . . 3 i I
Cuando en un proceso en el cual inlerviene un
microconrrolador esre no opera durante algn
perlodo de tiempo, es posible llevarlo a un esra-
do en el cual se desactivan algunas de sus fun-
ciones y consumir menos energa. Esta carac-
terstica es muy til sobre todo en dispositivos
autnomos o porttiles que requieran ahorrar
al mximo el consumo de sus bateras.
Este modo de bajo consumo se llama sleep,
que en ingls quiere decir "dormir";
de hecho se
puede decir que el microcontrolador se pone a
dormir. Cuando de nuevo se requiere que el mi-
crocontrolador funcione normalmente se debe
despertar, para lo cual debe existir alguna de las
condiciones que se citan ms adelante.
Para entrar al modo sleep basta ejecutar
la instruccin SLEEP; desde ese momento el
oscilador se desactiva, se almacena el estado
actual de todos los registros, los temp oriza-
dores se detienen (a
excepcin del TIMERI,
si ste se encuentra funcionando con reloj
externo), los puertos permanecen con el es-
tado actual, el bit PD del registro de estado
se pone en baj o y el bi t TO se pone en al t o,
f i gura 16. 5.
El watchdog s contina funcionando; de
hecho cuando el dispositivo se encuentra en
modo sleep puede ser despertado por el VDT.
Para asegurar que el VDT est limpio, se debe
ejecutar la instruccin CLR\DT antes de la
instruccin SLEEP.
Registro
PCON
8I T1 Bf f O
BlT0 BoR: 8,?de estado de reset lot Brown - out
1: No ocuni resetpor Brown - out
0: ocurri un estado de rcsetgor Brown - out
BlTl F0R.
gtOeestadodel
resef
porencendido
(Power-oA
1: No ocuni resetoor
power-on
0: Ocuni reset
got
Power-on
Figura 16,6 Registro PC0N
i ) : ' ;

rr"{. 1
; "t r i
j r
i J' , i
1}i t {i j " S
i ri , : j ,
Dependiendo de cmo se despierta el PIC, el
programa iniciar su operacin en determina-
da posicin de la memoria de programa; por
ejemplo, si la salida del sleep se origin por
una seal en el pin M-CLR o portm"leal del
\fDI el PIC iniciar su operacin en la di-
reccin 0x000, que corresponde a la posicin
normal del reset. Si este es el caso, los bits y
TO y el registro PCON pueden analizarse para
identificar la causa de estar en la direccin de
inicio, como lo veremos ms adelante en el eier-
cicio de esta leccin-
El registro PCON (Power
CONnol) con-
tiene una serie de banderas que, junto
con los
bits TO y PD pueden utilizarse para determi-
nar el origen del estado de reset del microcon-
trolador, figura 16.6.
El microcontrolador
puede despertar del
modo sleep por alguna de las siguienres razones:
l. Reset del dispositivo
2. Seal del VDT
3. Algrin mdulo periferico que pueda activa una
bandera de interrupcin mientras estamos en
modo sleep como:
a
a
a
a
a
a
a
a
Pin externo INT
Cambio en un pin de entrada
Comparadres
A/D
Timerl
LCD
SSP
Captura
Un aspecto imponante que se debe tener en
cuenta dentro del modo sleep, es cuanto tiempo
se demora un microcontrolador PIC para salir de
1. Debido a que entre las funciones del PIC que
se desactivan se encuentra el oscilador, cuando se
pretende normalizar de nuevo el funcionamiento,
se deben esperar 1.024 oscilaciones para asegurar-
nos que la seal es estable y a partir de ese mo-
mento empezar la ejecucin normal.
curso prcco
sob,e Microcontotadoes
&n;#
l ozl or l o+
or i or
l ozl osl o+l
or
l ozl osl o+| or l ozl or l o+|
or
l ozl osl o+
INT pin
(| NTCON<1>)l
GtE bir
(|NTC0N <7>) |
I
rrusrnucuNlor rruLo
PC
lnstruccin
dada
lnstrucin
ejecutada
INST(PS) = SLEEP
l nst(PC-l )
Tambin se pueden utilizar interrupctones
para salir del estado de sleep. Si el bit GIE se en-
cuentra en alto, el PIC saldr de este estado hacia
la direccin 04. Si esto no se debe a una interrup-
cin, el PIC continuar el progralna en el punto
donde se detuvo antes de entrar al modo sleep.
El diagrama de tiempos que tiene lugar cuan-
do se despierta por medio de una interrupcin,
se puede apreciar en la figura 16.7. Cuando se
ejecuta la instruccin SLEEP siempre se busca la
siguiente instruccin
(PC+1); como siempre ocu-
rre ese fenmeno, es conveniente colocar siem-
pre despus de la instruccin SLEEP una ins-
truccin NOP.
Si observamos cuidadosamente la figura
16.4 podemos apreci ar como l a ej ecuci n de l a
instruccin SLEEP y la bsqueda de la instruc-
ci n en PC+ 1, se encuentran en el mi smo espa-
ci o de ti empo. En PC+2 el procesador ya se
encuentra en modo sleep. Si el bit GIE se en-
cuentra habilitado y aperece la bandera que in-
dica la aparicin de una interrupcin, el proce-
sador espera un tiempo mientras se estabiliza la
seal del reloj y de nuevo est en capacidad de
e
jecutar
instrucciones.
Figura 16.7 Despertando mediante interrupcionx
Dependiendo de la causa que lo hizo des-
pertar, ejecuta la instruccin en PC+2 o salta a la
instruccin ubicada en la direccin 04.
CLRWDT'; Borra el contenido del
dor watchdog
Sintiuiis: CLR\IDT
Descripcin; Inicializa de nuevo el temporiza-
dor watchdog, al igual que el prescalador del
\TDT.
Ejemplo: CLR\7DT
Antes de la instruccin Contador
'WDT
=?
;
Inst(0004h)
I
ciclo fantasma
I
Ciclo fantasma
Inst(0005h)
Inst(()004h)
Despus de la instruccin Contador
WDT
=
00
TO=1, PD=l
SI-F.EP: Entra al modo dormido
(standb)
Sintaxis: SLEEP
SLEEP y se detiene su oscilador
Ejemplo: SLEEP
#
rr*
curco prctico sobe Microcontotadores
-:f,)E
- : \
E!
: ll9l
f.|rl
-
*aaa{
I
I
:
I
' "1 ' r
I / r , t t - t F
LVVL LU
. * * * {. r rF rl. * * {. rf *:1. * * * * * * * * * * * * * t * t* * tF 1. tl. tl. }:1. {. * *
; EXPERI MENTANDO
CON EL MODO SLEEP
;EN
ESTE PROGRAMA PODEMOS OBSERVAR EL
;COMPoRTAMTENTo
DE LoS BITS PD Y T0
;cua
EL MIffiO{IR0-Am SE SALE DEL !m SLEEP
. * * * * * * * * * * * * * * * * * x * ,1.
'F
* * * * * * * * * * * * *
'F
{. * {. *
LIST P=16F84
RADI X DEC
I NCLUDE
"C: \ P16C84. I NC"
-CONFI G
-CONFI G
WDT_OFF &
-XT-OSC
;ffi
GIRIIN TESACTIVD
WDT-ON &
-XT-OSC
;PEm
G.URDUN ACIVAD
ORG O
BSF STATUS, RPO
CLRF TRI SA
; POR
EL PUERTO A
; SALEN
TO Y PD
Figura 16.8 Ejercicio del manejo delWDT y el modo sleep
+V
Figura 16.9 Diagrama esquemtico del ejercicio
CLRF TRI SB
;
LA DI RECCI ON SALE
; POR
EL PUERTO B
BCF STATUS, RPO
LAZO COMF STATUS,W
;MOSTRAR
VALORES DE
; TO
Y PD
i'/O/V',F PORTA
BSF INTCON,INTE
;HABILITA
;INTERRUPCION
POR RBO
SLEEP
; PONE
EL PI C A
;
DORMIR
NOP
;PRECAI.KIN
PARA EL
;
SLEEP
Ml r/LW 0X0FB
;ESTA
SALIDA INDICA
IVOVWF PORTB
;QUE
ESTAMOS EN MODO
;
SLEEP
GOTO LAZO
END
;NOS
ENCASILLAMOS EN
; UN
CI CLO
curso prctico sobre Microcontrotadores
kmt
#
ELvriltchuog
!,
r'[ tLruriu s[.e.r
m m RBl R82 Descripcin
I
I 0 Powr on rcsed MCLR durante la operacin normal
I
I 0
I
I 0 Seal de
-MCLR
durante el modo sleep
I 0 0 I Seal en RBO
0 0 0 I Despertando por medio del \X/DT
En el programa de l a fi gura 16.8 podemos
analizar algunos detalles importantes de mane-
j o del modo sl eep; para el l o observemos el
di agrama esquemti co de l a fi gura 16.9. Ini -
ci al mente se despl i ega por el puerto el estado
de l os bi x TO y PD que debe ser al to debi do a
gue apenas se al i menta el si stema y el programa
empi eza en l a di recci n 0x0000. Se habi l i ta l a
i nterrupci n INT e i nmedi atamente se entra al
modo sl eep.
Si se entrega una seal de reset, Ia seal en
PD desaparecer debido a que se est inicializan-
do de nuevo el PIC estando ste dormido. Aho-
ra, si se enva un estado alto al pin RBO el LED
en RBI se apagar y =LL1b:i*do en RB2 se en-
cender. El estado enTO/PD indica que el modo
sleep se interrumpi y el LED en RB2 indica
que la ejecucin termin.
Si col ocamos un punto y coma del ante de
l a i nstrucci n BSF INTCON,INTE para i ndi -
carl a como comentari o, se desacti va l a i nterrup-
ci n INT y de nuevo ponemos a funci onar el
ej erci ci o en el cual observaremos que, como era
de esperarse, no pasa nada aunque se opri ma el
pul sador en RB0.
En l as pri meras l neas del programa pode-
mos observar dos di recti vas CONFIG una de
l as cual es est comenrada. En l a pri mera l nea
se desacti va el \l DT, ahora qui temos el comen-
t ari o de esa l nea y col oqumosl o en l a ot ra
para acti varl o. En este punto tambi n podemos
hacer el ensayo de desactivar el\7'DT desde el
programa pero habilitarlo en el entorno de pro-
gramacin para visualizar el resultado.
Tabla 16.2 Bits PD y T0
Al al i ment ar el ci rcui t o podemos obser-
var que l os di odos LED que corresponden a
TO y PD y RB1 se act i varn. Si esperamos
al gunos segundos l os t res LED se apagarn.
pero el LED en RB2 permanecer act i vado.
Observemos en l a tabl a 16.2 el resumen de
l os resul t ados obt eni dos.
Este sencillo ejercicio puede ilustrarnos acerca
de muchos detal l es que se deben tener en cuenra
para el manej os del watchdog y del modo sl eep.
Para experi mentar, podemos montarl o en un
protoboard y hacer toda clase de modificaciones
al programa y visualizar los resultados.
Complementa el contenido del registro
,rfr,
.
COMF [d
COMF regis,O
Antes de la instruccin regis
=
13
,
Despus de la instruccin regis
=
\ 7=EC
Decrementa el contenido del registro
"f".
DECF f,d
DECF regis,l
Antes de la instruccin regis
=
l3
Despus de la instruccin regis
=
12
Incrementa el contenido del registro "f"
rNCF
[,d
INCF regis,l
Antes de la instruccin regis
=
24
Despus de l a i nstrucci n regi s
=
25
"f u
4(
$Ogb &lctt:I.
Curso prctico sobre Microcontrotadores
%.9
En esta l ecci n estudi aremos l a estructura i n-
terna o arqui tectura, y el fl uj o de i nformaci n
entre l a uni dad central y l os peri feri cos de l os
mi crocontrol adores de l a fami l i a 6BHC08, l os
cual es son muy representati vos dentro de l a am-
pl i a gama de estos ci rcui tos i ntegrados, fabri ca-
dos por MOTOROLA.
curso prctico
sobre Microcontrotadores
&fu
ty,.t
#
1
A,ttl uiteuttLtr do' [o s tret o eo rrtr o liiri.o L cs [(ro i.o I o lri
Desde l a apari ci n de l os pri meros mi cro-
control adores fabri cados por l a empresa estado-
uni dense MOTOROLA de l a fami l i a 68XX, su
popularidad ha ido creciendo a pasos agiganta-
dos en virtud de sus magnficas caractersticas,
tal es como i nmuni dad al rui do el ctri co, faci l i -
dad de programacin, velocidad, compatibilidad,
fl exi bi l i dad, y una ampl i a gama de caractersti -
cas y referenci as di sponi bl es.
Ellos han contado con una gran acogida en la
industria especialmente en reas como: el desa-
rrollo de dispositivos electrnicos y sistemas de
comunicacin telefonica analgica o digital, las
redes de transmisin de datos, vdeo y sonido, los
sistemas de rastreo ylocalizacin satelitales
tglobal
position
rtstm
GPS), los sistemas inteligentes para
el control del trfico terrestre, los dispositivos di-
gitales para el almacenamiento, reproduccin y
reconocimiento de voz, y la construccin de dis-
positivos para el control automtico de algunas
funciones dentro de los automviles modernos.
Act ual ment e l os mi cr ocont r ol ador es de
Motorol a cuentan con ci nco fami l i as pri nci pa-
l es: l a 68HC05, l a 68HC08, l a 68HCl l , l a
68HCl 2 y l a 68HCl 6, cada una con una uni -
dad central de procesami ento (CPU)
parti cul ar
y un ampl i o y compl eto conj unro de i nstrucci o-
nes. Adi ci onal mente, cuentan con un excel ente
ni vel de compati bi l i dad de cdi go enrre todas sus
familias, lo cual los hace de f;cil uso y flexibles.
permi ti endo el i ntercambi o de programas enrre
microcontroladores de diferentes familias.
Entre l as di ferenci as ms si gni fi cati vas de
estas ci nco fami l i as se encuentran: l as nuevas i ns-
trucci ones, l a l ongi tud de pal abra (8 16 bi ts),
la disponibilidad de temporizadores (1
a 8 timers),
l os ti pos de puertos de comuni caci n (SCI, SPI,
I2C, MBUS, USB, SIOP y CAN), el espaci o v
ti po de memori a (EEPROM,
FLASH y RAM),
el nmero de canal es AID (4 a 10 canal es), y el
nmero di sponi bl e de puertos di gi tal es de entra-
da y sal i da (entre 15 y 91).
En este curso se estudi arn tres de l as fa-
mi l i as ms popul ares y represent at i vas de l os
mi crocont rol adores de Mot orol a, l a 68HC08.
I a 68HCl I y l a 68HC12, que r i enen una gr an
acogi da por parte de l os fabri cantes y estudi an-
tes de esta tecnol oga en muchas i ndustri as.
centros educati vos y uni versi dades del mun-
do; debi do a su di sponi bi l i dad, vari edad de ca-
,/*s.
i\s /
6OK FLASH
6OK FI-ASH
2OK FLASH
32K FIASH
4K FLASH
1.5K FI.ASH
4K FLASH
16K OTP
24K FI.ASH
MC68HC908AS60
xc68HC08M0
xc68HC08M32
xc68HC908GP20
MC68HC90
MC68HC908JK1
MC68HC908JK3
xc68HC08LN56
708MP1 6
2K
1K
1K
2K
512
512
128
128
128
1?8
512
512
1K
512
512
1K
8,0
8,0
8,0
8,0
8, 0
8,0
8, 0
8, 0
8, 0
8,0
8, 0
8,0
SCYSPI
sct/sPl
4 canales
I 0 canal es
l 0
5,0
5,0
5,0
5,0
3,0 - 5,0
3,0 - 5,0
3,0 - 5,0
3,0 - 5,0
3,0 - 5,0
3,3 - 5,0
5, 0
5, 0
12
l 0
l 0
Y
Y
Y
Y
Y
Y
I J
I canales
I canales
t5
I canales
I canales
52 PLCC/64 oFP
1 OO LOFP
64 OFP
64 QFP
40 DIP
10
DIP
28DIP
20 DIP
2ODIP
144 LOFP
64 QFP
64 OFP
TIM
TIM
TIM
TIM
TIM
TIM
TIM
TIM
TIM
TIM
TIM
TIM
TablalT.l Cuadro de caractersticas principales
de los microcontroladores Motorola de la familia 68HC08
&x
,,' u*if *
2
06
Bits)
|
48
2 (16 Bi ts)
|
48
2 (16 Bits) |
48
2 (16 Bi ts)
|
33
2 (16 Birs)
I
33
2 (16 8fts)
|
23
2 (16 Bi ts)
|
15
2 ( 16 Bi t s) |
15
2 (16 Bits)
|
a2
2 (16 Bi ts) |
44
,A. t
+
zdb frKlT".i.
curso prctico sobre Microcontrotadores
\\/
ractersti cas, reduci do costo y faci l i dad de pro-
gramaci n y depuraci n por medi o de sus he-
rrami ent as de desarrol l o.
En l a t abl a l 7. l se muest ran de manera re-
sumi da l as pri nci pal es caractersti cas de al gu-
nos de l os mi crocontrol adores ms popul ares de
l a f ami l i a 68HC08 de Mot orol a.
Los mi crocontrol adores MC68HC908JXX son
mi embros de l a fami l i a 68HC08 de rango me-
di o, baj o costo y al to desempeo. Todos l os mi -
crocontrol adores de esta fami l i a poseen una pa-
l abra de un byte (8 bi ts), y usan l a mi sma uni -
dad central de procesami ento conoci da como
CPU08. Las pri nci pal es caractersti cas con l as
que cuentan, y que son tpi cas para l a mayora
de l os mi crocontrol adores de Motorol a son:
.
CPU08 con arqui tectura Von Neumann y bus
i nt erno de BMHz.
.
Ampl i o y compl eto conj unto de i nstrucci ones
(poseen ms de 90 i nstrucci ones con funci o-
nes si mpl es y especi al i zadas).
.
Cdi go de programa y tecnol oga compati bl e
con fami l i as de rango i nferi or, tal es como l as
M6805, HC05 y M146805.
.
Di sei ro CMOS con baj o consumo de potenci a
y con un rango de al i mentaci n entre 3 y
.
Bus de 8MHz, con cristal
XT, resonador con reloj
externo,
+
.
Bus de 2MHz, con
osci l ador RC.
.
FLASH de 4 kbytes
(JL3/JK3),
.
FLASH de 1,5 kbytes (JKl),
.
RAM de 128 bytes.
Mdulo de caplura,
comparacin y PWM
->
(2 Canales de 16 bits).
|
' 1r t l - l
L.
L\:UL L(a
5,5VCC, i deal para l a fabri caci n de di sposi ti -
vos portti l es.
.
Dos ti pos de osci l adores: con red RC o con
cri stal de cuarzo exrernos.
.
Memori a FLASH para el usuari o de 1.536
4.096 bytes, con estrategia de seguridad que
di fi cul ta l a l ectura o copi a no autori zada de l os
datos conteni dos en el l a.
.
Memoria RAM con capacidad entre 128 y 5 12 byn.
.
Dos mdulos de temporizacin de 16 bits cada
uno (TIMA
y TIMB).
.
Doce canal es, cada uno con converti dor an-
logo/digital de 8 bits.
.
Qui nce
l neas de entradas y sal i das di gi tal es de
propsi to general , dentro de l as que se cuen-
tan las interrupciones para el manejo de tecla-
do con resistencias internas de pull-up,los dri-
uers o amplificadores de corriente para diodos
LED, l as entradas o sal i das de drenador abi er-
to (open-drain)
de 25mA cada una, las lneas
para trabajar en el modo de captura (ICAP/
OCAP), l a sal i da del generador de P' !l M.
.
Cuatro sistemas de proteccin para el cdigo del
programa, que son: COP (sistema
de vigilancia
Watchdng), LM (inhibidor de bajo voltaje), detec-
tor de cdigo ilegal y detector de direccin ilegal.
.
Sistema maestro de restablecimiento (MSE7)
ac-
tivo en nivel bajo, con resistencia interna de suje-
cin aVdd, e interrupcin de restablecimiento a la
conexin de la alimentacin POR (power
on reset).
28-pi n PDIP 68HC908JL3CP
28-pi n S0l C 68HC908JL3CDW
20-pi n PDIP 68HC908JK3CP
20-pi n S0l C 68HC908JK3CDW
20-pi n PDIP 68HC908JK1 CP
20-pi n S0l C 6BHC908JK1CDW
+- Entradas y salidas flexibles
.
7 entradas de interrupcin para
teclado.
r
I 0 enfadas y salidas de l0mA.
.
2 entradas y salidas drenadero
abi erto de 25mA.
e LVI (lnhibidor y resef de voltaje bajo)
Convertidores A,/D
+- .
12 Canales de B bifs (JL)
.
1 0 Canales de 8 its (JK)
Figura 17.1 Sumario de las caractersticas principales
dentro de los microcontroladores de la familia 68HC08
Gurcoprcti cosobreMi crocontrotadores
rt' &
/z:qF)
I 1Lt'r1t-Litr.=t'tLt[ a dc= |.o s tutct'o co trtt o lado L tls l(to to L o lii
ts
v<----}
F
G
(J

o
CJ

(0
u
N
ct

ts
cc5:
xt r '
{,
- *'
oi r
'
l)
z,
or y
t sF
z. z,
r
=
- =. u
=cE
i HH
CJ)
=
E=
-=
u)
.o
=6=
f
=
E
- 39
EE
EH
F
I
AI
l
I V
gq
Figura 17.2 Diagrama en bloques que muestra la arquitectura de los microcontroladores de la familia 68HC08
d7$ &Iclf".i.
curso prctico sobre Microcontrotadores
YV
: r
.
Llna entrada.de interrupcin maestra no sincr-
nica IRQ activa en nivel bajo, con.resistencia de
suj ecin y tec nologSa s c h mitt- trigger, progamables.
La figura 17.1 muestra de manera simplifi-
cada las principales caractersticas de la familia
de microcontroladores 68HCO8, y los principa-
les subsistemas en los que se divide.
;rqI irtrutura fl* l*s nl r* rrn{}i.r li*i ii ri'i'}res
i ;l nti rcl
En el diagrama en bloques que se muestra en la
figura 17.2vemos la estructura, disposicin in-
terna e interconexin que hay entre las diferen-
tes partes que conforman un microcontrolador
Motorola tpico de rango medio, tal como los
de l a fami l i a 68HC08.
En la figura se puede apreciar con claridad
la manera como estn interconectados los prin-
cipales bloques del microcontrolador; all puede
verse que entre todas sus partes hay un flujo de
informacin bidireccional que se hace por me-
dio de un sistema de bus nico, tal como en la
arquitectura Von Neumann, y que est contro-
lado y sincronizado desde la CPU.
Todo microcontrolador puede dividirse en
tres grandes subsistemas, que en el caso de los
Motorola se pueden apreciar claramente en el
diagrama de bloques y son: el ncleo de proce-
samiento, el sistema de memoria y los mdulos
perifericos internos.
ff ncl eo de
procesamento
Es el
"corazn"
del microcontrolador, tambin
se le conoce como la Unidad Central de Proce-
samiento
(CPU); cuenta con un bus de datos
interno y propio con un ancho de banda de
SMHz (rango de frecuencia dentro del cual el
bus tiene ganancia unitaria) y contiene los m-
dulos y registros fundamentales para el buen des-
empeo del microcontrolador (los registros de
la CPU son cinco y son independientes del mapa
de memoria del microcontrolador). Las partes
que conforman la CPU son:
, , . '
i
- . i , ' , , t ' l , . i t i , . r t - l - - . : i l :
i i
l ,
qUe eSt
representada por un conjunto de registros de
propsito particular e instrucciones especia-
lizadas disponibles para el usuario; est cons-
tituida por un mdulo sumador completo
(con
acarreo intermedio y final) de 8 bits, un
multiplicador de 8 bits por 8 bits, y un m-
dulo de divisin binario de 16 bits en 8 bits.
La tarea de la ALU, como su nombre lo in-
dica, consiste en procesar todas las opera-
ciones aritmticas o lgicas que debe hacer
l a CPU, tal es como l as sumas, di vi si ones,
multiplicaciones, rotaciones y desplazamien-
tos, entre otras.
Sin embargo, cumple tambin un papel fun-
damental para poder acceder a los datos dis-
ponibles en memoria directa, o indirecta-
mente a travs del registro contador del pro-
grama (PC), cuando se ejecutan instruccio-
nes de salto, llamados y retornos de otras fun-
ci ones o de subruti nas e i nterrupci ones.
De su velocidad de ejecucin y buenas canac-
tersticas tcnicas se desprende la disponibili-
dad que ofrece el microcontrolador para efec-
tuar clculos con grandes volmenes de da-
tos, de una manera gil y segura, tal como se
requiere en las aplicaciones de manejo y re-
conocimiento de voz y vdeo.
l . [ -. 1 reei st ro dc cont rol de l a
(] Pt l ,
que est
conformado por un grupo de bits que gene-
ran las seales de sincronizacin y control
necesarias para que el flujo de datos a travs
del bus se efecte sin contratiempos y en la
direccin correcta ene los diferentes bloques
del microcontrolador.
i l ' l r,:qi srro acunrul :rtl or A, fi gura 17.3, es un
registro de propsito general de lectura y es-
critura con una longitud de 8 bits, que es uti-
lizado por la CPU para almacenar temporal-
mente los operandos y resultados obtenidos
en las operaciones aritmdcas y lgicas reali-
zadas por la ALU.
curco prctico sobre Microcontrotadores
<n;#
Lectura:
Escritura:
Reset XX
X: valor indeterminado. no es afectado Dor el rese
Figura 17.3 Registro acunulador de la CPU08
l : i : . ' r i st i c : ni l i . . ' c I l : i r , f i gur a 17. 4, es w
regi stro de 16 bi ts que permi te di recci onar
hasta 64 hbytes de espacio en memoria en
forma indexada. El byte ms alto del regis-
tro ndice es H, mientras que el byte ms
baj o es X; de esta forma se construye el re-
gi stro concatenado de 2 bytes H:X que es el
ndi ce para el rea de memori a del usuari o,
y con el cual se puede apuntar a cual qui era
de l as 64.000 posi ci ones.
Este regi stro tambi n se puede usar como
uno de propsi to general para el al macena-
mi ento temporal de datos; si n embargo se
debe recordar que l a CPU usa su conteni do
para determi nar l a di recci n efecti va del
operando, y adems, tener presente que l a
parte alta del registro se borra tras la accin
de restablecimiento o de reset en el micro-
control ador
(H=0).
00000000xx
X: valor ndeterminado, no es afectado por el resel
Figura 17.4 Registro ndice de la CPU08
1" Fl r cei st r ' {} . r punt ar l or dc l e
r i l , r
S i f . . , , ' i '
ti t
i tt I rri , fi gura L7 .5, es un regi stro de 16
bi ts qt:,e conti ene en cual qui er i nstante l a
di recci n de l a prxi ma posi ci n de 8 bi ts
dentro de l a pi l a del mi crocontrol ador. En
l os mi crocontrol adores Motorol a el regi s-
tro SP se puede usar como el ndi ce para
acceder a l os datos temporal es dentr< de l a
pi l a, en dos modos de di recci onami ento.
La di recci n conteni da en el SP di smi nuye
en uno con cada dato que entra a l a pi l a, y
aumenta en uno cada que un dato es extra-
do de l a mi sma; de esta manera el SP si em-
pre apunta a l a prxi ma posi ci n di sponi -
bl e en l a pi l a.
Es importante recordar que luego de la ejecu-
cin del ciclo de reset maestro, en el SP se gra-
ba la direccin hexadecimal 00FF, para pro-
veer compatibilidad con la pila de la familia
MC6805; mi entras que con l a i nstrucci n
RSP (reserstack pointer), se restablece el regis-
tro SP colocando su byte ms bajo en FF y no
se afecta el byte ms significativo.
Bi15 14 i3 ,, ,,01*toot,otlt:'o
jttl
3 2 1 Bto
0 000000011111111
X: valor indetermnado
Figun 17.5 Registro apuntador de la pila de la CPU08
PARA SABER MS
Movilidad de la
pila (stack)
En la arquitectura de los microcontroladores
Motorola de las familias 68HC08
y
superiores,
la ubicacin.de la
pila no es fija, es arbitrara,
y puede
relocalizarse en cualquier espacio
dentro de la memoria RAM. Para esto, solo
basta grabar el registro apuntador de la
pila
SP con una direccin de memoria diferente a
la de la pgina
0 (0000 a 00F0,
que
es el lu-
gar por
defecto en el
que reside la pila.
Aunque el desplazamiento
y la ubicacin de la
pila
sea libre para
el
programador, y
a
pesar
de
que
el registro SP es de 16 ,fq para
un
adecuado funcionamiento nunca se debe o-
vidar que
el apuntador de la pila
debe
perma-
necer dentro del rea de la memoria RAM.
:
(
;
\
(
(
t
I
Lefiura:
Escritura:
Reset.
RSP
--
J)
. =!
Regstro ndce (H:x)
8l t 15l 4 13 12 11 r 0 I I 7 6 5 4 3 2 1 Bi t o
#
<lL
Gurco
prctico sobre Micrrcontrotadores
,
fi gura 17.6, es tambi n
un regi stro de l 6 bi ts que conti ene en todo
momento l a di recci n de l a prxi ma i nstruc-
ci n o el operando que se debe buscar, a tra-
vs de un ci cl o de bsqueda de l a CPU. La
CPU si empre aument a el val or del PC en
f orma secuenci al haci a l a si gui ent e posi ci n
de memori a, cada vez que una i nst rucci n
o un operando sea buscado; excepto cuan-
do se ej ecutan operaci ones de sal to, l l ama-
do, retorno e i nterrupci ones, que graban di -
recci ones parti cul ares en el PC.
Durante el ci cl o de restabl eci mi ento, el re-
gi stro PC es grabado con el conteni do del
el ciclo de restabl eci mi ento, el
vector del reset ubicado en las posiciones de
memori a FFFE y FFFF; de esta forma que-
da cargado con un nmero de 16 bits, que
representa l a di recci n de l a pri mera i nstruc-
ci n del programa que debe ser ej ecutada al
t ermi nar est e ci cl o.
Cafga el regstro con l os datos conteni dos en as posi ci ones de memorl a
asi gnadas al vector del resel (p0si ci ones FFFE y FFFF)
Figura 17.6 Registro contador del prlgrama de la CPU08
, figura 17.7, es ram-
bin llarnado por otros fabricantes de microcon-
troladores como registro de estado o registro de
banderas de estado; su longitud es de 8 bits y
contiene el bithabllitador de interrupciones y 5
bits ms que indican el resultado de la instruc-
cin que est siendo decodificada.
-lias
la ejecu-
cin del ciclo de reset eI contenido del registro
CCR solo se afecta en el bit 3, que es el habilita-
dor de interrupciones del microcontrolador (l);
ste se coloca en 1 lgico y las inhabilita.
El si stema de memori a en un mi crocontrol ador es
de gran i mportanci a ya que est desti nado a con-
I r r 11- l r .
L\ : UL Ll a
tener el cdigo del programa con todas sus varia-
bles y constantes. La flexibilidad, confiabilidad,
vida til y facilidad de manejo, son factores im-
portantes para el usuario de esta tecnologa y que
estn l i gados con el ti po de memori a di sponi bl e
para el usuario en el microcontrolador.
Begistro del cdigo de condicin (CCR)
LCCI UTA:
Escri t ura:
Beset.
Xl 1Xl XXX
Bls fijos
X. i ndet ermi nado
V - Bit indicador de sobreflujo
(ouerfuut
flng).
Es colocado en 1 lgico cuando se presenta
un sobreflujo o desbordamiento en el rango
de una operacin aritmtica, en complemen-
to a dos.
H' Bit indicador de acarreo intermedio (half-
carryflag). Es colocado en 1 lgico cuando
ocurre un acarreo entre los bits 3 y 4 del
registro acumulador, durante una operacin
ari tmti ca.
t- Bit habilitador de interrupciones (intenupt
mash). Cuando este bit es colocado en I lgi-
co, todas las interrupciones enmascarables de
la CPU se inhabilitan; mientras que cuando
este bit se borra (en 0 lgico) se habilitan. Este
bit es automticamente colocado en 1 luego
de la accin de reset y Ia atencin a una seal
de interrupcin.
Bit indicador negativo (negatiue
Jhg).
Este
bit es colocado en I lgico cuando el resulta-
do de una operacin aritmtica o lgica, o del
procesamiento de datos, es negativo.
.Bir indicador de cero (zero
Jlag).
Cuando
el resul tado de una operaci n l gi ca, ari t-
mti ca o entre datos es 00, este bi t es col o-
cado en I l gi co; de l o contrari o se manti e-
ne en 0 l gi co.
Bit indicador de acarreo (carryl b orro*
fuS).
La CPU coloca esre bit en I lgico cuando se
presenta un acarreo hacia afuera o hacia aden-
tro del sptimo bit del acumulador, durante
la ejecucin de las operaciones de adicin y
sustraccin, y algunas operaciones lgicas.
Figura 17.7 Registro del cdigo de condicin de la CPU08
N.
z-
c-
Cont ador del programa (PC)
l j i r r : Jj 12 l l l 0 I 8 i 5 I : ) 2 I 8{l
curso prctico sobre Microcontrotadores
&ict,..
\.ryl
Atqultc=ttulu o!' [os tulet o uo tri,t.o lurir t es l(ulto t o lii
En el caso de l os mi crocontrol adores Moto-
rol a, el usari o cuenta opci onal mente con tres ti -
pos de memori as que pueden ser borradas o gra-
badas en cual qui er i nstante (FLASH, E,EPROM
y EPROM), y otros dos ti pos que sol amente se
pueden grabar una vez (OTP
y ROM).
La organizacin de la memoria, sus carac-
tersti cas y sus modos de di recci onami ento, por
ser de gran i mportanci a, se tratarn con ms
detal l e en una futura l ecci n, si n embargo aho-
ra se puede deci r que, al i gual que en muchos
otros mi crocontrol adores, sta se encuentra di -
vi di da en dos grandes bl oques, que son: l a me-
mori a de programa y l a memori a de datos, y su
conexi n con l a CPU se hace a travs del mi s-
mo si stema de bus.
Los mdul os peri feri cos i nternos desempean
funciones bsicas para el buen funcionamiento
de la CPU, como en el caso de los mdulos de
rel oj , l as i nterrupci ones, el reset,l a regul aci n y
protecci n a l a al i mentaci n; el l os faci l i tan l a
operacin de todo el sistema y la conexin con
otros dispositivos o sistemas del mundo exterior.
Adems, desarrollan tareas especficas dentro de
l a arqui tectura de un mi crocontrol ador y l os
orientan hacia aplicaciones particulares dentro del
campo de la industria y la experimentacin con
esta tecnologa.
Los microcontroladores Motorola, dentro de
l a fami l i a 68HCO8, cuentan con mdul os peri -
fericos verstiles de mucho uso y fiicil manejo,
que agilizan las tareas de control y procesamien-
to de datos que se pueden desarrollar. Los m-
dulos perifericos o interfaces que ofrece una fa-
mi l i a de rango medi o como l a 68HC08, son:
driuers digitales para diodos LED, driuers de dre-
nador abierto para cargas de alto consumo, inte-
rrupciones para teclado, contadores y compara-
dores de captura
(ICAP/OCAP), temporizado-
res programables
(TIMX), puertos de comuni-
cacin serial (SCI, SPI y CAN), canales de con-
versin A/D. v salidas de control P'!7M.
Las caractersticas y funciones de los mdu-
los perifericos de mayor importancia para el mi-
crocontrolador y el usuario, sern tratadas am-
pl i amente en l as prxi mas l ecci ones.
[ -os mi crocont rol adores Mororol a de rango
medi o de l a f ami l i a 68HC08 est n di sponi -
bl es en encapsul ados t i po DI P de 20 y 28 pi -
nes. En l a f i gura 17. 8 se muest ra l a di st ri bu-
cin y asignacin de los pines de los micro-
cont rol adores
JK1, JK3
y
JL3.
Los microcontroladores
JL3
poseen, a dife-
rencia de los
JKI
y
JK3,
un mayor grupo de l-
neas disponibles(puertos PTAO a PTA5 y puer-
t os PTDO v PTDI ).
t R01
PTAO
VSS
OSCl
OSC2/PTA6
PTAl
VDD
PTA2
PTA3
PTAT
PTA6
PTA5
PTDT
PTD6
t R01
VSS
OSCl
OSC2/PTA6
VDD
PTBT
PTB6
PTB5
PTDT
PTD6
RST
PTA5
PTD4
PTD5
PTD2
PTA4
PTD3
PTBO
PTBl
PTDl
PTB2
PTB3
PTDO
PTB4
RST
PTD4
PTD5
PTD2
PTD3
PTBO
PTBl
PTB2
PTB3
PTB4
t
Cr
i
n
a
s
C
,^
,l@^
-
r
Stt"b *rct'i.
Curco prctico sobre Microcontrotadores
&c
Figura 17.8 Asignacrn de pines de los mcrocontroladores 68HC08
Dentro de los mdulos con los que cuenran los micro-
controladores de esta familia, los puerros de entrada
y
salida (I/O)
son de gran imponancia
para la interco-
nexin y elmanejo delas
'.rgasydispositivos
exrernos
a ellos. En la acrualidad los microcontroladores
de ran-
go y velocidad media, evolucionan en rorno a la espe-
ciaJizacinde las rareas que son capaces de desarrollar,
y
esto depende de las funciones y caractersticas
que los
diseadores hayan incluido en los pueftos.
curso prctico
sobre Microcontrotadores dgkm; (u|
\7
.1
Lu s
r
ur,'tru s riu. [u .* ur ict'c r,'c utra ladu t'es LiC(J i1 rj.u' Ltolu t'o la
Para continuar conociendo la estructura interna y
los mdulos que rigen el funcionamiento de los
microcontroladores Motorola de la familia HC08,
se debe conocer la distribucin y asignacin defini-
da para cada uno delos pines que ofrece el micro-
controlador parala interconexin del usuario con
el mundo externo.
En l a tabl a 18.l se descri ben de manera re-
sumida las principales caractersticas de cada uno
delos pines de los microcontroladores 68HC908,
en sus versi ones
JK1, JK3
y
JL3,
y encapsul ados
en estructuras DIP de 20
v
28
pi nes.
La al i ment aci n del mi crocont rol ador es
uno de l os f act ores ms i mport ant es para que
el ci rcui t o i nt egrado y t odos sus mdul os i n-
t ernos t rabaj en adecuadamenre, y aunque l a
t ecnol og a usada por Mot orol a, posee f i l t ros
y regul adores de vol t aj e i nt ernos que per-
mi t en al i ment arl os con f uent es monopol a-
res que var en ent re 3 y 5VCC, es necesari o
que l a f uent e de al i ment aci n est prot egi -
da cont ra seal es t ransi t ori as de vol t aj e r'
corri ent e, y que l a ent rada de al i ment aci n
del mi crocont rol ador (ent re
l os t ermi nal es
VDD yVSS) sea prot egi da por medi o de uno
o vari os condensadores no ool ari zados Dara
al t a f recuenci a.
llrt
Nombre
del pi n
Pin Descripcin del pin Direccin
Nivel de
voltaje
tE01
0sc1
0sc2
VDD
VSS
RST
Entrada de alimentacin
positiva.
Salida de cero voltios, usado como referencia para la fuente de alimentacin
(sistema
de tierra GND).
Entrada externa de inicializacin de nivel activo bajo en cero lgico, Tiene
resistencia de pull-upy entrada conformadora de seal a travs de
compuertas schmitt trigger.
Entrada externa activa en nivel bajo, definida
para
la peticin
del servicio
de intenupcin. Posee una resistencia de pull-upy
una compuerta de
entrada schmitt trigger opcionales y programables por
medio del cdigo
del
programa (software). Este prn cumple tambin una funcin hlterna
como entrada del selector de modo del microconfolad.or.
Entrada del mdulo oscilador con base en cristal de cuaao KIAL, resonador
u oscilador pasivo RC.
Este pln puede operar como una entrada o como una salida, dependiendo
del tipo de oscilador configurado. Cuando se usa el cristal de cuarzo o el
resonador, el pln se comporta como salida y la seal que
se obtiene en 1,
es la seal invertida que entra al mdulo oscilador 0SC1. Cuando se elige
la opcin de la red pasiva RC en el oscilador el
pln puede
ser una entrada
o una salida, y por
defecto, se comportar como la salida del reloj RCCLK.
Adicionalmente esta entraba se comparte con las funciones del puerto A,6
y
de la sexta interrupcin para el teclado KBl6, y tiene una resistencia de
pull-up programable.
Entrada
Salida
Entrada
Entrada
Entrada
Entrada/
Salida
3V5V
OV
VDD
VDD a
VDD+V1
Anlogo
Anlogo/
VDD
l ' \
^
(
(=tZA
)
qEKf,T";.
Curco prctico sobre Microcontrotadores
\../
Nombre
del pi n
Pi n Descripcin del pin Direccin
Nivel de
voltaje
PTA[0:6]
PTB[0:7]
PTD[0:7]
JK:4
JL:2,5,
6,8,9,
23,27
JK:6 a
8, 11 a
15
JL: 10 a
12,15,
17, 18,
20,21
JK: 9,
1 0,16 a
1q
JL: 13,
14, 16,
19,22,
24a26
Las lneas de este conjunto de7 bits,que conforman el puerto A, pueden
ser de entradas o salidas de propsito general y tambin pueden
usarse
como siete entradas de interrupcin, y para el manejo de teclados KBI[0:6].
En este puerto todos los prnes pueden ser programados
individualmente
con resistencia interna de
pull-up.
Las lneas de este conjunto de B Ddsque conforman el puefto B, se
comportan como entradas o salidas de propsito general, y tambin
comparten su funcin con ocho canales de los convertidores A/D con
que
cuenta el microcontrolador, ADCIO:7].
Este conjunto de 8 bifs bidireccionales de propsito general,
constituye el
puerto D. Su funcin est compartida con cuatro canales A/D (ADC8 a
ADC11) del microcontrolador, a travs de los puertos PTD[0:3]; y con los
dos canales bidireccionales del mdulo de la interfaz de temporizacin
TlM, TCHO y TCH1 . Adicionalmente, los plnes de los puertos D.6 y D.7
podrn ser configurados como entradas y salidas digitales, con capacidad
de 25mA, interfaz tipo drenador abiefto, y resistencia pull-up interna.
Entrada/
Sal i da
Entrada/
Salida
Entrada/
Salida
VDD
Anlogo
Anl ogo
VDD/
VDD/
LL- UL L
Nota:
En los microcontroladores con encapsulado tipo DIP de 20 pines JK, los terminales PTA0, PTA1, PTA2, PTA3, PTA4,
PTA5, PTDO y PTD1 no se encuentran disponibles.
Tabla|8.1 Descripcingeneral delascaractersticas,funcionesynivelesdevoltajedelospines enlosmicrocontroladores
Motorola de la familia 68HC08.
I
Nota: (Los val ores de l os condensadores s0n ti pi cOs)
.
C1 debe ser un condensador no pol ari zad0 y para
al t a f r ecuenci a ( cer mi co o de pol i est er ) .
.
C2 es un condensador opci onal el ectrol ti co que se
requi ere cuando l os puedos del mi crocontrol ador
entregan toda su carga.
Figura 18.1 Filtrado externo de la entrada de alimentacin del
mcrocontrolador
Durante Ia energi zaci n i ni ci al , debi do a l a
excitacin de grandes cargas a travs de sus puer-
tos, al reset, o a la entrada de seales transitorias
de al ta frecuenci a (rui do
el ctri co) proveni entes
de fuentes externas, el mi crocontrol ador deman-
da una gran canti dad de corri ente de l a fuente en
forma transi tori a, que pueden daarl o u ocasi o-
nar su mal funci onami ento.
Colocando el conjunto de condensadores C1
y C2 tal como se muestra en l a fi gura 18.1,y l o
ms cerca posi bl e de l os pi nes de al i mentaci n,
se crea un fi l tro pasa baj os si mpl e que puede pro-
+ /\
curso prctico sobre Microcontrotadores dg-f<ln.i (.f Zg
)
\ / /
Los
ruettos
ue Lus nr[crucutul'aladut'es Lit'0[
teger efectivamente al microcontrolador, supri-
miendo las seales de alta frecuencia antes de que
puedan afectarl o.
Los puertos de entrada y sal i da I/O, permi ten
que el microcontrolador se conecte de manera
segura, y maneje con niveles de corriente y vol-
taje adecuados todos los dispositivos y sistemas
perifericos externos.
Los microcontroladores Motorola de 8 bits
que pertenecen a l a fami l i a HC08, poseen 23
puertos bidireccionales de entrada y salida muy
verstiles. Todos los puertos pueden ser progra-
mados en varios modos y efectuar diferentes Fun-
ciones, tal como se estudia a continuacin.
A este puerto se puede acceder a travs del re-
gi stro de datos A (PTA), y est compuesto por
7 bi x de l ectura y escri tura que poseen funci o-
nes especi al es de entrada y sal i da di gi tal es. Thm-
bin puede ser configurado como 7 entradas ex-
ternas de i nterrupci n para el manej o de tecl a-
dos (KBI[6:0]). Todos l os termi nal es del puer-
to poseen una resi stenci a i nterna de pul l -up que
puede ser conectada o desconectada por medi o
del cdi go del programa, cuando se confi guran
como entrada.
En est e puert o l os t ermi nal es ent re
PTA0 y PTA5 del registro de datos po-
seen fuentes l i mi tadas de corri ente ori en-
tadas al manej o de di odos LED di recta-
mente, o sea que no es necesari a l a resi s-
tenci a l i mi tadora en seri e con 1.
Por medio del registro de direccin de
datos del puerto A (DDRA), se programa la
condicin de entrada o salida sobre cada ter-
minal o pin del puerto; con un uno lgico
en cualquiera de sus bits seprograma el puer-
to correspondiente como salida, mientras que
con un cero lgico, se deshabilitael buffer de
salida y se programa como entrada.
ur. lvlotur0l.a
PARA SABER MS
Destino de los puertos no usados
Cuando se usa un microcontrolador en el desanollo
de un sistema, dispositivo o experimento, es
posible
que
latarea no requiera de todos sus terminales dis-
ponibles
c0m0
puertos;
en estos casos, stos deben
serterminados, es decir, conectados a un nivel lgi-
co apropiado tal como 0V (VSS) SVCC (VDD).
Aunque los puertos
de los microcontroladores Mo-
torola pueden
dejarse en circuito abierto cuando
n0 se usan (puertos n0 terminados), y no se re-
quiere
cerrar el circuito
para
su buen desempe0,
es recomendable, por
su tecnol0ga basada en in-
tenuptores electrnicos tipo FEI (field effect tran-
sistot), que
sean terminados para
evitar el consu-
m0 excesivo de coniente
y la posibilidad
de
que
se
daen permanentemente por
efecto de las cargas
electrostticas.
En cualquier momento, la accin del resetafec-
tar al registro DDRA, borrando todos sus bits de
control, y programando todo el puerto A como
entrada. En la figura 18.2 se resumen las direccio-
nes, las caractersticas y las funciones alternas pro-
pias del registro de datos del puerto A (PTA)
y del
rdgistro de direccin de datos A (DDRA).
Direccin del registro PTA: $0000
Lectura:
Escritura:
Beset
Funciones
adicionales:
Direccin del registro DDRA: $0004
Bt7 6 5 BtO
, , Ti l l l l ; Jl l l l l l
,,2\
-
l
('"0)
&rcm.1.
curco prctico sobre Microcontrotadores
\iz
Figura 18.2 Definicin de los registros PTA y DDRA
Dirccin del rgso PAPUE: $fI)00
Lectura:
Escritura:
En la figura 18.4 se ha dibujado la
configuracin interna en bloques del cir-
cuito del puerto A, alll se puede ver que,
cuando el registro DDRAx est en uno l-
gico, la lectura de la direccin
$0000 se
efectria sobre el registro de datos PTi{x;
pero cuando el registro DDRAx est en
cero lgico, la lectura de dicha posicin es
el nivel de voltaje presente en el terminal.
El puerto
B
Este puerto posee 8 terminales bidirec-
cionales, programables, y accesibles a tra-
vs del registro de datos del puerto B (PTB),
y
todos comparten su funcin con ocho entra-
das o canales del mdulo de convertidores an-
logo-digitales (ADC).
Por medio del registro de direccin de da-
tos del puerto B (DDRB),
se podr programar
la condicin de entrada o salida sobre cada ter-
minal del puerto; con un uno lgico en cual-
quiera de sus bits se programa el puerto corres-
pondiente como salida, mientras que con un
cero lgico, se deshabilita el b"ft, de salida y
queda programado como entrada.
Tias la accin del reset se afectaral registro
DDRB, borrando todos sus bits de control, y
Srrrt
PTA6EN: Dilhabilitador del pin PTAG (vlido solo con oscilador BC)
Erlen 1: configura el segundo pin del oscilador (0SC2) como
un puerto de entrada y salida de propsito general.
8ten 0: configuracin por defecto del pin 0SC2 como la
salida del reloj del oscilador RC (RCCLK).
PTAPUE[6:0]: Drbhabilihdores de las resisbncias prr-updel PTA
8fien 1: configura la resistencia pul/-up de 30k
Eilen 0: desconecta la resistencia pullup
Hgun 18.3 Definicin del registro P|APUE
El puerto A cuenta adems con el regis-
tro habilitador de las resistencias pull-up in-
ternas, llamado PTAPUE, con el cual se pue-
den conectar o desconectar dichas resisten-
cias. En cada bit del puerto puede configu-
rarse una resistencia de pull-up independien-
temente, siempre y cuando stos estn pro-
gramados como entradas; mientras que la
CPU automticamente la desconectar cada
vez que un terminal del puerto sea progra-
mado como salida, por medio del respectivo
bit en el registro DDRAX.
La figura 18.3 muestra el registro habili-
tador de las resistencias pull-up del puerto A
(PTAPUE).
o
=

t
2
a
o
E
t
tr
ct
=

frgun 18.4 Configuncin interna en bloques delcircuito delpueftoA


Curco prcilco nbrc Mlqooontotadoes
<tn#
Los
rue+tos
tiu'los nctacuui.tulad.otes tt00ti uc= l(totatula
Direccin del regstro PTB: $0001
Bt7 6 5
Lectura:
Escritura:
Reset:
Funciones
adconales:
Direccin del registro DDRB: $0005
Bt t 7654
Lectura:
Escrtura:
Beset:
Figura 18.5 Definicin de los registros PTB y DDRB
El puerto D est compuesto por 8 bi ts
de l ectura y escri tura que se pueden ac-
ceder a travs del regi stro de datos del
puert o D (PTD), y que adems poseen
funci ones especi al es de entrada y sal i -
da di gi t al es. Dos de sus t er mi nal es
compart en su f unci n con l a i nt erf az
del mdul o t empori zador (TCHI y
TCHO), mi ent ras que ot ros cuat ro se
compart en con l as ent radas del mdu-
l o de convert i dores A/ D.
En este puerto, adi ci onal mente, l os
termi nal es PTD6 yPTDT estn di seados para
manej ar corri entes de hasta 25mA en confi gu-
raci n sumi dero (si nhi ng),
y poseen resi stenci a
pul l -up programabl e. Thmbi n l os termi nal es
PTD2, PTD3, PTD6 y PTDT estn capacita-
dos para manej ar di rectamente di odos LED.
Por medi o del regi stro de di recci n de da-
t os del puert o D (DDRD), se conf i gura l a
di recci n del dat o sobre cada t ermi nal del
puert o; con un uno l gi co en cual qui era de
sus bi ts se programa el puerto correspondi en-
t e como sal i da, mi ent ras que con un cero l -
gi co se deshabi l i ta el bffi r de sal i da y se pro-
grama como entrada.
: f : :
: : . : l programando todo el puerto B como entrada.
En l a fi gura 18.5 se resumen l as di recci ones, l as
caiactersticas y las funciones alternas propias
del registro de datos del puerto B (PTB)
y del
regi stro de di recci n de datos B (DDRB).
En l a fi gura 18.6 se ha di buj ado l a confi -
guraci n i nterna en bl oques que corresponde
con el puerto B; al l se puede ver que cuando
el regi stro DDRBx est en uno l gi co, l a l ec-
tura del conteni do de l a di recci n $0001 se
efecta sobre el l atch del regi stro de datos
PTBx; pero cuando el regi stro DDRBx est
en cero l gi co, l a l ectura de di cha posi ci n es
el ni vel de vol taj e presente en el termi nal .
o
=

t
=
at
o
E
c
UJ
c
an
co
Figura 18,6 Configuracin interna en bloques del circuito del
puefto
B
Escritura en PTB
($0001
)
Lectura del PTB ($0001)
#
&kt':.
curco prctico sobre Microcontrotadores
Direccin del registro PTD: $0003
Lectura:
Escritura:
Eeset
Funciones
adicionales:
0ireccin del registro DDRD: $lx)07
Figun 18.7 Definicin de los registros PTD y DDRD
Direccin del registro POCR: fXl0A
Brrrt
SLoWDxi Dits habilitadores del amplificador de cofiiente de 25mA
Bif en 1: habilita el amDlificador
Eifen 0: desconecta el amplificador
PTDPUT i& habilibdorcs de lm rcsisbtrcias plFup de PfD6 y FfllT
Eifen 1: conecta la resistencia pullup de 5k
Eifen 0: desconecta la resistencia pul/-up
Figura 18,8 Definicin del registro de control de puefto D (PDC4)
Lectura del DDRD
una vez se ejecute la accin del reset,
el registro DDRD ser modificado por la
CPU borrando todos $s bits de control y
configurando todo el puerto D como en-
trada. En la figura 18.7 se resumen las di-
recciones, las caractersticas y las funcio-
nes dternas propias del registro de datos
del puerto D (PTD)
y del registro de di-
reccin de datos D
(DDRD).
El puerto D tiene adem:s otro regis-
tro que nos permite habilitar las resisten*
cias pull-up internas y los amplificadores
de corriente de drenador abierto, asocia-
dos con los terminales PTD6 y PTDT; es
conocido como el registro de control del
puerto D (PDCR). En la figura 18.8 se
muestra este registro.
En Ia figura 18.9 se ha dibujado la
configuracin interna en bloques del cir-
cuito que corresponde al puerto D, all se
puede ver que, cuando el registro DDR-
Dx est en uno lgico, la lectura de la di-
reccin
$0003 se efecta sobre el registro
de datos PTDx; pero cuando el registro
DDRDx est en cero lgico, la lectura de
dicha posicin corresponde con el nivel
de voltaje presente en el terminal.
PTD[0:3] al mdulo convertidorA/D
PTD[4:5] al mdulo teqporizador
Hgura 18.9 Configuracin interna en bloques del circuito del pueto D
o
=
,
I
=
an
o
15
t
o
ct)
=

curco prctico sobe Miuocontotadotv


&t;#
Lus
r
ue'ttos tic' los uricta cu u'a Ladu t'es LiC0S ue' L(totu ru [a
PARA SABER MS
Programacin de
puertos
bidireccionales
Ya que todos los
pinesde los puertos
de los microcontroladores Motorola pueden trabajar como entradas o
salidas
programables,
es impoftante saber que el registro de datos, de cualquier
puerto
PTA, PTB o PTD,
puede
ser escrito o grabado con un nuevo dato en cualquier momento y
sin impoftar el estado de los [sde
control de los registros que definen la direccin de los datos en el puerto DDRA, DDRB y DDRD.
Por lo anterior, es importante que
a la hora de desanollar la rutina de
programacin
de una tarea que
involucre los
pueftos,
el
programador no olvide ubicar
primero
las instrucciones o rutinas que se escriben
sobre el registro de datos del
puerto, antes de cambiar los rfs de control del registro de direccin de datos
de 0 a 1 (de entrada a salida). De esta forma, se evita
que
el
puefto
arroje datos no esperados durante el
cambio de direccin de entrada a salida
que puedan
afectar el compoftamiento de los dispositivos
perifri-
cos externos con alta velocidad de respuesta.
El sumari o de t odas l as caract er st i cas y
funci ones pri nci pal es y comparti das de l os tres
regi st ros de dat os de l os puert os PTA, PTB y
PTD, de l os mi crocont rol adores de l a f ami -
l i a 68HC08 de Mot or ol a, se muest r a en l a
f i gur a 18. 10.
(1): el pin de entrada o salida se sujeta a VDD por medio de la resistencia
interna de pull-up
Puerto B
DDRB
(Bt )
PTB
( B t )
Configuracin del
pi n l / 0
Acceso al DDRB Acceso al PTB
Lectura o escrituraLecturaEscritura
0
1
X
X
Entrada de Hi-Z
Salida
DDRBT a DDRB0
DDRBT a DDRBO
Pin
Pin
PTB[7:0]{z)
PTBIT:0.l
Puerto D
X: valor indefinido
Hi-Z: pin en alta impedancia
(21: la escritura afecta al registro de datos, pero no afecta la entrada
Figura | 8.1 0 Resumen de todas las caractersticas y funciones definidas para los pueftos A, B y D
:
: ,
'
- :
I
--l ' --'
: *o
-
_' : l
' - j - ,
Puerto A
PTAPUE
( B t )
DDRA
( B t )
PTA
( B t )
Conf i guraci n
del pi n l / 0
Acceso al DDRA Acceso al PTA
Lectura o escrituraLectura
Escritura
I
0
X
0
0
I
X
X
X
Entrada de Vp(t)
Entrada de Hi-Z
Salida
DDRA6 a DDRAO
DDMO a DDRAO
DDRAO a DDRAO
Pi n
Pin
PTA6 a PTAO
pTA6
a
pT6{z)
PTA6 a PTA0(2)
PTA6 a PTAO
DDRD
( B t )
PTD
( B t )
Conf i guraci n
del
pi n
l / 0
Acceso al DDRD Acceso al PTD
Lectura o escrituraLectura Escritura
0
1
X
X
Entrada de Hi-Z
Salida
DDRD[7:0]
DDRD[:0]
Pin
Pin
PTD[7:0]{z)
PTD[7:0]
,l\\ ..
I
Cf
a+'b
&ftZ.).
curco prctico sobre Microcontrotadores
\ . . /
h
'\.i/
La ejecucin de la secuencia correcta de las tareas programadas
y la mayora de funciones que se llevan a cabo en los mdulos
internos del microcontrolador, se desarrollan de acuerdo acada
uno de los periodos de la seal de reloj generada desde el m-
dulo del oscilador, a partir de componenres exrernos.
EI reset es la seal que goza de la mayor jerarqua
dentro del
conjunto de interrupciones disponibles en los microcontro-
ladores de cualquier familia, ella le define al programador un
lugar para el inicio de la ejecucin del cdigo del programa.
Gurso prctico
sobre Microcontroladores
@[<
ll 7".;.
El uscilauor v e'L lcstl; L.Ll [0s nrict'ocotrtrulatiuru.s LiC0S ur.' l(tuturula
Si lugar a dudas, uno de los mdulos perifericos
internos de mayor importancia es l oscilador,
ste genera las seales de reloj que definen la ve-
locidad de ejecucin del programa por parte del
dispositivo, y en ellas se basan todas las cuentas
de tiempo que se hacen dentro del microcontro-
lador. Segn el periodo de oscilacin (o fase) de
esta seal, se sincronizan, ejecutan, y evalan to-
das las tareas que en el interior de ste se desarro-
l l an; tal es como: l os ci cl os bsi cos de bsqueda y
captura, de ejecucin o decodificacin de la ins-
truccin, de lectura, y de escritura.
El mdulo del oscilador est construido inter-
namente con los circuitos, registros y compuertas
necesarias para generar las seales de reloj requeri-
das por la CPU con gran estabilidad, y con el ade-
cuado nivel de voltaje y frecuencia. Los microcon-
troladores Motorola en frrncin de su referencia,
poseen uno de los dos sistemas de oscilador activo,
uno de ellos genera la seal de reloj a partir de un
cristal de cuarzo XTAL o de un resonador oiezo-
elctrico; mientras que el otro lo hace por medio de
una red conformada por una resistencia y un con-
densador RC; y los dos sistemas comparten las mis-
mas entradas externas (pines
OSCI y OSC2) asig-
nadas en el microcontrolador para la conexin ex-
terna del cristal, el resonador, o la red RC.
El circuito tpico de este mdulo es un oscilador
con compuertas en configuracin Pierce, el cual
ofrece muy buenas caractersticas de estabilidad
dentro de la amplia gama disponible de oscila-
dores digitales para cristal piezoelctrico. En la
fi gura 19.1 se muestra el ci rcui to i nterno si mpl i -
ficado del mdulo del oscilador con cristal exter-
no, y la conexin lgica entre sus partes.
Para la configuracin del oscilador a la fre-
cuenci a necesari a y con l a estabi l i dad apropi a-
da, se requi eren ci nco componentes externos,
tal como se muestra en el ci rcui to tpi co de l a
fi gura 19.1, y stos son:
Desde el SIM
MDULO DEL
OSCLADOR
Haci a el SIM Haci a el SIM
OSCOUT
Figura 19,1 Circuito interno sinplificado
del mdulo del oscilador con cristal externo
2OSCOUT
XTALCLK
COMPONENTES
EXTERNOS
, l \ , 1
(y2
&lrcln.I. curso prctico sobre Microcontrotadores
, &te puede tener una frecuencia de reso-
nancia mxima de 32MHz, y una'capacitancia
equivalente CL entre 5 y 40pF. Su conexin con
el mdulo interno del microcontrolador se hace
a traves de los terminales OSCI v OSC2.
, ste debe tener una
estrecha tolerancia (menor
al5o/o), y su valor
tpico debe ser alrededor de dos veces la capa-
citancia equivalente del cristal o del resonador.
Su conexin con el microconrrolador se hace
por medio de la entrada OSCI, que es la en-
trada del oscilador inrerno.
debe tener una esrrecha tolerancia ,-.";iI
5o/o),y de la misma forma que para Ci, su valor
trpico debe ser alrededor de dos veces la capaci-
tancia equivalente del cristal o del resonador.
Usando un condensador ajustable de baja tole-
rancia en el lugar de C2, se podr sintonizar
cualquier frecuencia no estndar de trabajo in-
ferior a la de resonancia del cristal, para los desa-
rrollos que as lo requieran; el condensador de
sintona se debe conecar al circuito del oscila-
dor en su salida, o sea a rravs del terminal OSC2.
, LLrorLa
, sta
puede tener una tolerancia de hasta el l0o/o
y su val or tpi co es l OMQ; su funci n con-
siste en facilitar el arranque de la oscilacin
con cualquier cristal o resonador, unavez que
el circuito es alimentado y habilitado desde
la CPU. Su ubicacin es en el lazo de reali-
mentacin, entre la entrada y la salida del
mdulo oscilador, o sea entre los terminales
OSCl y OSC2.
sta puede tener una tolerancia de hasta el t0%
y slo se requiere cuando el oscilador va a traba-
jar
a una frecuencia baja (inferior
a lMHz); tal
como se requiere en los diseos estndar de los
osciladores digitales en configuracin Pierce. Si
no se utiliza, se sustituye por un corto circuito.
El circuito oscilador de este mdulo usa una red
externa conformada por un condensador y una
resistencia, y circuitos internos que controlan y
convierten la seal de carga y descarga del con-
densador en un tren de pqlsos rectangulares, sin
distorsin, y relativamente estables.
q
Desde el SIM
stMoscEil
MDUIO DEt
oscrrAD0R
20sc0uT
Haci a el Sl M
Hacia el SIM
oscour
+--+PTAG
0sc2 (PTA6/RCCLK)
f_l rr COM''NENTES
Figura t9.2 Circuito interno simptificado det
I f
f
'
EXTERNSf-
mdulo del oscilador con red RC erterna
Curco prctico
sobre Microcontotadores
&kt
,:#
EL oscllador
y
e'L tcur-"[; u+r Los nrlctuu'onttaladotl's LiL'0t! d.e. lVtotctala
En trminos de estabilidad y precisin, los
osciladores cuya frecuencia de salida depende de
una red con una resistencia y un condensador
(RC), siempre estarn sujetos a la calidad de di-
cha red; en el mdulo del oscilador RC de esta
subfamilia de microcontroladores se requiere que
los componentes externos sean de precisin
(con
tolerancia inferior o igual a lo/o) para obtener una
seal de reloj con una tolerancia del 10%o o me-
nos. La conexin de la red RC, con el mdulo
interno del oscilador, se hace a travs del termi-
nal OSCI; mi entras que en el termi nal OSC2
queda habilitado el puerto bidireccional PTA6 o
disponible la seal de salida de reloj del oscilador
RCCLK.
En la figura 19.2 se muestra el circuito in-
terno simplificado del mdulo del oscilador con
red RC externa, y la conexin lgica entre sus
Partes.
En la tabla 19.1 se resume el comportamiento
de los terminales disponibles en el microcontrola-
dor para la configuracin del mdulo del oscilador.
En las figuras 19.l y 19.2 se pueden ver tambin
las principales seales que intervienen y se origi-
nan en cada mdulo oscilador, y que son usadas
por la CPU, el bus interno, el SIM (system inte-
gration module), y otros mdulos internos du-
rante su operaci n; stas son:
Esta seal cumple la misma fun-
cin en los dos mdulos osciladores
(XTAL.v
RC); pot medio de ella el mdulo del sistema
de integracin SIM del microcontrolador, ha-
bilita o inhabilita completamente el funciona-
miento de cualquiera de los osciladores.
Esta seal es la salida de reloj del
mdulo oscilador con cristal y su periodo est
dado tpicamente por la frecuencia nominal
del cristal de cuarzo (F*.r");
el ciclo de servi-
cio de la seal depender de la calidad y los
parmetros de fabricacin del cristal, y no se
debe olvidar que su frecuencia y amplitud se-
rn inestables durante el breve periodo de
tiempo que dura el ciclo de arranque (start-
up) del microcontrolador, a partir de la co-
nexin a la alimentacin.
sta es l a seal de sal i da del m-
dul o osci l ador RC v su frecuenci a v esta-
bi l i dad son di rect ament e proporci onal es a
l a constante de ti empo de l a red externa
RC, y a l a preci si n y cal i dad de sus com-
ponentes respecti vamente.
sta es la
misma seal de salida XTALCLK RCCLK
de l os mdul os osci l adores correspondi en-
tes, y es enviada a travs de un bffirhacia eI
mdulo intero del sistema de integracin
(SIM),
al l se usa para cal cul ar l os ci cl os de
ti empo que determi nan el comportami ento
del mdul o de vi gi l anci a COP
(computer
operating properly).
Esta se-
al se obtiene a partir de un bloque que re-
cibe y divide por dos la frecuencia de la se-
al 2OSCOUI y se enva al mdulo SIM
para que ste la distribuya entre los dems
mdulos internos que la requieran dentro
del microcontrolador. Para obtener la seal
del reloj, usada por el bus interno de la CPU,
el mdulo SIM divide nuevamente por dos
esta seal, con lo que se determina que la
h
r l
r l
-\unr
:an
(
;lirn,
que i
dam,
;on I
;ia er
La
Je re
.sPe(
magl
ment
I . . , f
raci
ReiS
Rei*
ffi
:
Frect
Rlso
Frecr
Freqt
Frect
ha
Cond(
ffi
Resis
Tipo de
osclador
Funcin del
pin 0SG2
Oscilador con XI-AL
lscilador con RC
Seal 0SC1 invertida
Controlado por el bif PTAEN del registro
PTAPUER ($OD)
PTAOEN
=
0:salida RCCLK
PTAOEN
=
1: Lneade
puerto
PTA6
Tabla l9.l Configuracin y funciones asignadas a lospines del
oscilador en los microcontroladores 68HC08
$fu rr-L
curco prctico sobre Microcontroradores
\{
frecuencia del reloj del bus interno de la CPU
(Fon) sea siempre la cuarta parte de la fre-
cuencia de la seal del oscilador RC o XTAL
(XTALCLK
RCCLK.
Aunque los microcontroladores Motorola cuen-
tan con una amplia tolerancia para el voltaje de
alimentacin (entre
3 y 5Y), esto no quiere decir
que muchas de sus caractersticas elctricas fun-
damentales para su operacin no sean afectadas
con los cambios. tal como sucede con la frecuen-
cia en el mdulo oscilador.
La frecuenci a de operaci n de todas l as seal es
de rel oj manej adas por el mi crocontrol ador, es
especi al mente afectada por l os cambi os en l a
magnitud de la tensin de alimentacin, e igual-
mente. el consumo total de corri ente de ste
(l oo) es funci n di recta
racin que se
9_lr){._
Caractersticas
de l a frecuenci a de ooe-
Frecuencia de operacin interna
iPulso
bajo de reset mnimo (RST)
lFrecuencia del cristal, XTALCLK
lFrecuencia del oscilador, RCCLK
i Frecuencia de referencia externa
Capacidad de carga del cristal
Condensador fijo del cristal
, Condensador de sintonia del cristal
Resistencia de real i mentacin
:Resistencia en serie del oscilador
Resistencia extema del oscilador RC
i Cmdensador exbmo del miladq RC
h-
I r t
- l -
L\ . : \ j t t
La tabla 19.2 es un sumario de las magnitu-
des dpicas que se deben considerar a la hora de
configurar los mdulos de oscilacin de los mi-
crocontroladores Motorola 68HC08 y 68HRC08
;
la tabla se muestra para los dos voltajes nominales
de alimentacin estandarizados: 5 v 3YCC.
Para calcular los componentes externos de
la red RC, se recomienda usar un condensador
externo de 1OpF con baj a tol eranci a, el egi r una
frecuencia, y calcular la resistencia por medio de
una de las dos curvas que se muestran en la figu-
ra 19.3; e n la figura se muestran las curvas de
resistencia contra frecuencia, que corresponden
con dos ni vel es de al i mentaci n tpi cos, al l se
puede ver con claridad la influencia del voltaje
de alimentacin en la frecuencia del reloi.
Dentro de la gama de interrupciones internas y
externas, el reset o interruDcin de inicializacin
68HC08 y 68H8C08.
Mni mo
Si mbol o
Fnccu
|
2
OSCXCLKI
dC
C
C1
C2
Rg
Rg
Rrxt
cn
16
12
16
8
32
12
32
MHz
Fs,
ns
MHz
MHz
MHz
pF
pF
pF
MO
kc,
KO
pF
Segn la impedancia del cristal
Calcular segn la figura 1 9.3
Tabla 19,2 Caractersticas y especificaciones de componentes erternos para los mdulos osciladores de los microcontroladores
curso prctico sobre Microcontotadores
&kt,t
(}
' t A
N
=
-
1t
: ' -
J
(J
( J. ^
EI U
r
L'
CE
, 8
o
o
JA
(.)
ct7
o
J, 4
u
z
u
t n
q
EL oscllatlot'' c'|. t e'sti; e'tt [us ntlci'uu'untroLad.ut'es
'iL't]
ue' l(lotorula
\
\
temperal ura z5"u
I
cExt
= 1o
Pr
Con Vo, =
5Y
Con Voo =
3Y O
J_
30
Besi stenci a, R61 (kl ))
Figura 19.3 Curvas de resistencia externa clntra frecuencia del oscilador RC, para el clculo de Rer
del microcontrolador es la fuente de mayor je-
rarqua, esto significa que su peticin ser aten-
di da i nmedi atamente l uego de su reconoci mi en-
to y val i daci n.
Cada vez que la CPU del microcontrolador
recibe y valida una seal de interrupcin de reset, el
microcontrolador es obligado a asumir un conjun-
to de condiciones iniciales para sus mdulos inter-
nos, y a iniciar la bsqueda y ejecucin de las ins-
trucciones en un lugar predeterminado por los fa-
bricantes para el inicio (starting address).
La entrada de reset no es sincrnica con el
ci cl o de ej ecuci n de i nstrucci ones, y por l o tan-
HTLUJ Ut r
LA CPU
10
0v9 uE
DtREcctoNES
INDETERMINADO
X $fffe tr$FFFF
'
l---------------
DE LA CPU
BUS DE DATOS
DE LA CPU
PI N DE RESET
Figura 19.4 Diagrama de tiempos de un ciclo de reset activado externamente por medio de la correspondiente entrada
UESTREO DEL PI N DE RESET
. ZI \ t
(ir0)
&.lclf".i.
curco prctico sobre Microcontrotadores
\ ' / /
to la interrupcin ser atendida en cualquier mo-
mento, i nmedi atamente despus de reci bi r un
nivel de voltaje en nivel bajo por el pin de resex
en l a fi gura 19.4 se apreci a el di agrama de ti em-
pos que representa l a ej ecuci n de un ci cl o de
reset al interior del microcontrolador.
Una vez la condicin de reset externa o interna
se reconoce, i nmedi atamente muchos regi stros
y bits de control son grabados con los datos ne-
cesari os para i ni ci ar l a ruti na de trabaj o con el
mi crocontrol ador, a parti r de una posi ci n y con
unos
parmetros
definidos; muchas de estas con-
i r el t
:-:
:od
-=
\,rd
lores
SOIO O
r 3 Q
3Ue0
Tlent(
cente
cr0ng
La el f
ci n.
a0nsr
' r 0mr
se d(
0per
dor c
mp0
drrec
OSCi l r
vi da
CAUS
cr a
q
pera
En l
I cl L tL
LCIU I (
CPU
par
Fi1
3:
PARA SABEB MAS
El rel oj y l a potenci a del mi crocontrol ador
En todos los microcontroladores Motorola, la oo-
tencia consumida depende directamente de lafre-
cuencia de operacin a la
que
haya sido configu-
rado el mdulo del oscilador,
para un voltaje de
alimentacin definido;
y
aunque los microcontrla-
dores de lafamilia 68HC08, a mximafrecuencia,
slo consumen 1SmA, es importante considerarlo
ya que
en muchas ocasiones el microcontrolador
puede
ser
pafte
de un gran
sistema,
que
habitual-
mente en la industria
puede
contener ms de un
centenar de microcontroladores
y poseer limita-
cines en su disponibilidad de energa.
La eleccin de la frecuencia adecuada de opera-
cin, siempre debe ser un compromiso entre el
consumo de
potencia y los requerimientos en
tiempo de respuesta de la tarea
por
ejecutar, sta
se debe evaluar
para
calcular la frecuencia de
operacin mnima
y
luego configurar el oscila-
dor del microcontrolador a tal valor. Otro factor
importante
que
se debe considerar y que
est
directamente relacionado con la frecuencia del
oscilador, es el desgaste o la disminucin de la
vida tily la confiabilidad del microcontrolador, a
causa de un aumento en el consumo de
poten-
cia
que
se traduce en un incremento de la tem-
peratura
del circuito integrado.
En la figura se han dibujado las curvas
que re-
l aci onan el consumo de l a coni ente de al i men-
tacin (loo) y la frecuencia del bus interno de la
CPU (F'p) en los microcontroladores 68HC08,
para
los dos voltajes de alimentacin tpicos.
Figura 19,5 Comportamiento de la corriente de alimentacin
del mcrocontrolador con todos sus mdulos internos activos
(lr), frente a Ia frecuencia de operacin del reloi del bus interno
de la CPU (F")
I r t ' - '
LL- Lt t
di ci ones i ni ci al es son i ndependi entes del modo
de operaci n, y al gunas estn desti nadas a per-
mi ti r el arranque apropi ado de al gunos mdul os
i nternos fundamental es para l a CPU; mi entras
que otras, definen puntos de referencia entre el
programador y l a CPU que deben consi derarse
para ej ecutar correctamente el cdi go de opera-
ci n de l os programas.
Las pri nci pal es acci ones que se desarrol l an,
una vez que el mi crocontrol ador es i ni ci al i zado a
travs del reset, se describen a continuacin.
Despus de la ejecucin del ciclo de reset, el
regi stro PC es grabado con l as posi ci ones de
memori a
$FFFE y $FFFF, defi ni das para el
respectivo vector (un vector representa el con-
teni do de una l ocal i dad de memori a defi ni da
y asi gnada a un evento externo o i nterno), y
l a CPU i ni ci a el ci cl o de ej ecuci n o decodi fi -
cacin de las instrucciones all contenidas, que
por l o general son i nstrucci ones de sal to.
tmbi n el regi stro SP se graba con el dato
$00FF, ubi cando l a pi l a en l a pri merapgi -
na de l a memori a de datos, mi entras que el
regi stro ndi ce H es borrado a cero l gi co
con el obj eti vo de hacer compati bl e l a mi -
graci n del cdi go de programa entre l as fa-
mi l i as HC05 y HC08.
Todos los dems registros de Ia CPU asumen
un estado indeterminado luego del reset. Sin em-
bargo, algunos bits de control del registro del
cdigo de condiciones CCR, tales como la ms-
cara de interrupciones I, y las banderas de los
modos de operacin STOP y'Sfi\IT, son pues-
tos en uno y cero lgico respectivamente, para
inhabilitar todas las fi;entes de interrupcin y
llevar la CPU al modo normal de trabajo.
En l os mi cr ocont r ol ador es Mot or ol a, l a
CPU08 cuent a con dos modos de operaci n
; ,l\
curso prctico sobre Microcontrotadores E-frdf,T';.
(fgf
)
\ Z
v
*=ff
Sel ecci n del modo usuari o Seleccin del modo monitor
Pi n l R01
Puerto X Puerto Y Modo
< VDD
2 xVpp
X
0
X
0
Usuario
Monitor
Figura 19,6 Condiciones
para la seleccin del modo de operacin
de la CPU08
Todas las fuentes de interrupcin del reset de-
t i enen i nmedi at ament e l a ej ecuci n de cual -
qui er i nstrucci n en curso dentro del mi cro-
cont rol ador, vect ori zan haci a l as posi ci nes
$FFFE y $FFFF, i ni ci an un ci cl o de reset i n-
terno que graba todos l os regi stros de l a CPU
con sus val ores por defecto, y restabl ecen l as
condi ci ones i ni ci al es en todos l os mdul os pe-
ri fri cos i nternos.
El ci cl o de reset se puede acti var desde di -
versas fuentes i nternas y externas al mi crocon-
trol ador, como son: el reset exteno
(pi n
I),
el reset a l a conexi n (power-on reset POR), el
reset del temporizador watchdog CO\ el reset
por cdi go de operaci n i l egal , eI reset por di -
recci n i l egal y l a i nterrupci n de i nhi bi ci n
por baj o vol taj e LVL
PARA SABER MS
Validacin del resef externo e interno
Para que
el ciclo de resef sea activado, las se-
ales
que
lo inician deben cumplir ciertas ca-
ractersticas de tiempo que dependen del ori-
gen
de lafuente de interrupcin. Cuando lafuen-
te es externa, en el
pin
de resef (R-ST) se debe
aplicar un nivel lgico cero (Vrr) durante un tiem-
po mnimo de 750ns, cuando Voo es 5V de
1,SUs, cuando Voo es 3V
para que
el mdulo
interno del rest lo reconozca, valide e inicie
las acciones propias de dicho ciclo.
En el caso de las fuentes internas, su reconoci-
miento y
validacin se inicia cuando la CPU co-
loca desde el interior y durante 16
periodos
del
reloj del bus, la entrada externa RTT en nivel
cero,
y
otros 16 periodos
despus se inicia el
ciclo interno de reset. Esta caracterstica del
resef activo por fuente interna,
permite que los
microcontroladores de la familia 68HC08
pue-
dan inicializar simultneamente,
y
a travs de
dicha entrada, otros circuitos integrados,
peri-
fricos externos, y micr0c0ntroladores esclavos,
inmersos en un sistema complejo.
EL osciLad.ur v L'[ tL:sL:; rrn [0s nlicroc'0ni]'oLad.uru's Lt00ti ri.c' L(tutot'ola
di sponi bl es para el programador: el modo
usuari o y el modo moni tor; en el modo mo-
ni tor l a CPU ti ene el mi smo com' portami en-
to que en el modo usuari o, excepto que Ia
direccin definida para el vector del reset se
cambi a por l as posi ci ones reservadas $FEFE
y $FEFF.
Con este despl azami ento l a CPU i ni ci a l os
ci cl os de bsqueda y ej ecuci n del cdi go
desde el
fi rmware
i nterno del mdul o mo-
ni tor y no di rectamente en el cdi go del
programador.
El modo de operaci n se def i ne y es me-
mori zado por l a CPU durante el fl anco de
subi da del vol t aj e present e en el pi n de re-
set
(durante l a transi ci n de V., a Voo); el
modo usuari o es el modo de t rabaj o def i -
ni do por def ect o t ras l a i ni ci al i zaci n del
mi crocont rol ador, pero l a sel ecci n del
modo moni tor se efecta l l evando dos de
sus l neas de puert os I / O de propsi t o ge-
neral a Vr,
/
apl i cando en l a ent rada de
i nt errupci n I RQ1 un sobrevol t aj e i gual
al dobl e de Voo; en l a f i gura 19. 6 se mues-
tran grfi camente y se resumen en un cua-
dr o l as condi ci ones par a sel ecci onar el
modo de operaci n.
M
PuertoX
PuertoY
'-*[r,y,T
Ent
mi cr
Ene
ble
' '
ri a c
mer
Una
esta
grar
tacil
del
&tn:
l-_
Curco prctico sobre Microcontroladores
En esta ocasin se estudiar el mapa de memoria de los
microcontroladores Motorola de la familia 68H(R)C08.
En 1, se muestra la distribucin de la memoria disponi-
ble y direccionable la cual est conformada por la memo-
ria de datos RAM, la de programacin ROM, y el rea de
memoria ROM del programa monitor.
Una caracterstica particular de los microcontroladores de
esta familia, es la disponibilidad para el usuario de un pro-
grama monitor residente en la memoria (firmware), que
facilita la ejecucin y depuracin de programas a travs
del puerto serial de una PC.
Curso prctico sobre Microcontrotadores
@
k f n)
$0000
,l
$003F
$0040
t
$007F
$0080
+
$OOFF
$0r 00
Registros l/0
.
64 bytes
Reservados por l a CPU
64 bytes
RAM
128 bytes
Sin establecer
60160 /es
ROM del usuari o
MC68H(R)C08JL3/JK3
4096 bytes
ROM del monitor
512 bytes
Registro de estado del break(BSR)
Registro de estado del resef(RSR)
Reservado OBAR)
Registro de banderas de control del reak (BFCR
Timer registro de estados de la interrupcin (lNT1
iegundo registro de eshdos de la interrupcin (lNT2
fercer registro de estados de la intenupcin (lNT3
Reservado por la CPU
Reservado oor la CPU
Reservado oor la CPU
Reservado por la CPU
Reservado
por l a CPU
Registro de direccin del rekalto (BRKH)
Registro de direccin del break bajo (BRKL)
Registro de estado y control del break (BRKSCR)
Reservado oor la CPU
ROM del monitor
448 bytes
Vectores del usuario
48 bytes
MAPA DE LA MEMORIA
Sin establecer
60720 bytes
usuan0
MC68H(R)C08JK1
' 1536
Figura 20,1 Distribucin del rea de la memoria en los
m i c rocontrol ad o re s 6 I H
(
R) C 0 8J K 1 /J K3 /J L3
controladores 68H(R)C0 8JL3
13,
y de 1.536
bltes enlos microcontroladores 68H
(R)C08JK L
2. Ellugar para los I28 bytes de memoria de da-
tos RAM disponible en las dos subfamilias de
microcontroladores
lK V IL.
3. El rea de memoria asignada parala tabla de
vectores definidos por el programador, la cual
se compone de 48 bytes.
4. El espacio de memoriade solo lecnra (ROM), dis
tribuidos en dos reas de 512v 448 httes czdavn
El conocimiento del propsito, la ubicacin exac-
ta, la disposicin y la funcin definida para cada
uno de los bits que conforman los registros de da-
tos, control o estado del microcontrolador, se de-
ben tener presentes para controlar y supervisar co-
rrectarnente todas las funciones programadas en 1.
En la figura 20.2 se muestra en detalle la distri-
bucin y asignacin que se le ha dado al espacio de
memoria direccionable por el microcontroladot con-
tenido entre las direcciones $0000 y $003F; en l se
encuentran contenidos la gran mayora de registros
de control, de estado y de datos. Adicionalmente.
algunos registros reservados por la CPU y de prop-
sito especial, se han ubicado en las ultimasl6 posi-
ciones de memoria localizadas entre $FE00 y $FEOE
y l a l ti ma posi ci n $FFFF que corresponde al
resi stro de control del COP
(COPCTL).
$EBFF
$EC00
t
$FBFF
$FC00
+
$FDFF
$FEOO
$FEOl
$FEO2
$FEO3
$FEO4
$FE05
$FEO6
$FEO7
$FEO8
$FEOg
$FEOA
$FEOB
$FEOC
$FEOD
$FEOE
$FEOF
$Fq1 o
i
$FECF
$FFDO
i
$FFFF
$01 00
'l
$F5FF
$F600
,f
$FBFF
La CPU08 de esta familia de microcontrolado-
res posee un bus de direcciones de 16 bits con el
que se pueden acceder haxa64Kbytes del rea de
la memoria. El mapa de la memoria que se pue-
de apreciar en la figura 20.1, muestra su organi-
zacin, y en l se incluyen las siguientes reas:
1. El espacio de memoria ROM disponible para el
usuario, que es de 4.096 bytes para los micro-
r A\ z(
dta.g &,<ff,.i.
curco prctico sobre Microcontrotadores
\iZ
S:'
>_l
>,1
Direccin Nombre del registro
$0000 Registro de datos del puertoA
(PTA)
$0001 Registro de datos del puerto B
(PTB)
$0002 Sin establecer
REGISTROS DE PROPSITO ESPECIAL
Bi tT
#ct nr r r nT
SLOWDT PTDPUT PTDPU6
PTA6Ef\ FTAPUE( PTAPUES PTAPUE4 PTAPUE3
)TAPUEl
'TAPUEC
Lectura:
Escritura
Reset:
Lectura:
Escritura
Reset:
$0004
$0005
$0003
$0006
$0007
$010E
$001 I
$001A
Registro de datos del puerto D
-t':lu"'
(PTD
Escritura:
R6et:
Registro de direccin oe oamr n
.illl.".l'
-
(DDM)
tscnlura:
Reset:
Registro de direccin de datos B
Lectura:
(DDRB) Escritura:
Reset:
sinestantecer
rlu'.ll''
Resistro de direccin de datos o
.lllii'.l.
(DDRD)
Escrrlura:
Beset:
Sin establecer
#ffi,
Resistro de contror der puerro o
.iilil'.i.
(PDc
mcntura
Reset:
sin estanrecer,iiiii',]
Registro habilitador de entradas
Lectura:
pull-updelpuortoA Escritura:
(PTAPUE)
Reset:
sin estaorecer,iiiii',1'
Registro de control y estado del
Lectura:
teclado Escrtura:
(KBSCR)
Reset:
Registro habilitador de
interrupcionesdelteclado Escritura
(KBIER)
Beset:
$o?08
$0009
$000A
$otoB
$000c
$000D
t -
0
PTA6 PTA5 PTA4 PTA3 PTM PTAl PTAO
No se afecta por el resel
PTBT PTB6 PTBS PTB4 PTB3 w82 PTBl PTBO
No se afecta 0or el resef
PTDT PTD6 PTDs PTD4 PTD3 PTD2 PTDl PTDO
No se afecta oor el reset
,!
oonnsDDM5 DDM4 DDM3 DDM2 DDMl DDMO
DDRBTDDR86 DDRBsDDRB4DDR83DDR82DDRBl DDRBO
DDRDTDDRD6DDRDsDDRD4DDRD3DDRD2DDRDl DDRDO
l r ar eo
KBIE5 KBIE4 KBIE3 JGIE2 KBIEl KBIE()
$001 B
curn prctico sobre Microcontrotadores
icn.t
#
---J
3-'-.7J-J-'- :
- --;---'-
-'-
--S ---J-''J--'-----i:--rS ----,J
:,
-----,-'--
Direccin
$001 c
$001 D
$001 E
$001 F
Nombre del registro
si nestabl ecer
-Lecl ura
tscntura:
Registro de estado y
control de lRO
(INTSCR)
Registro de configuracin,|
r|,1iH
Reset
Registro de configuracin 1
,
-_. --
(C0NFl G l * ' "u"' u' o
s0021Reoi st r oa| t ode| cont ado, ! . e1- I ] y=. 11] :
Reset:
0
$0022 RegistrobajodetcontadotBirt+,i::,T:,
Reset:
0
Bit15 Bt14 Bit13 Bt12 Bt11 Bt1O Bt9 Bt8
git7
Bt6 Bt5 Bt4 BT3 Bt2 Bt1 BtO
Reset : o0000000
t
Despus de cada reset s10 se puede escribir una vez.
.*
Solamente por medio del reset a la conexin (P0R) las interrupciones LVIT1 y LVIT0 se colocan en 0 lgco
TOF
TOIE TSTOP
0
#Ps2
PS1 PSO
U TRST
Reset: 0
$0020 Resistrodeestadoycontroltr|r|!
r;1il;
$0023
$0025
$0024
$0026
$0027
$0028
$0029
$0024
Registro alto del mdulo del
contador del TIM
0M0DH)
Registro bajo del mdulo del
contador del TIM
[|M0DL)
Registro de estado y control del
canal 0 del TIM
[Isco)
Registro alto del canal 0 delTlM
|IcH0H)
Registro bajo del canal 0 del TIM
Escritura:
Reset:
Escri tura:
Reset:
IICH0L)
Escritura:
Beset:
ICH1L)
Escritura:
Beset:
Indeterminado desous del resef
Indeterrninado desous del resef
Indeterminado desous del resef
Registro de estado y control del
canal 1 del TIM
(Iscl)
Registro alto del canal 1 del TIM
0cH1
H)
Registro bajo del canal 1 del TIM
COPRS R R LVID R SSREC STOP COPD
Bt15 Bi t 14 Bt13 Bt12 Bi t 11 8, f 10 Bit9 Bt8
BitT Bt6 BT5 Bt4 Bt3 Bt2 Bt1 BtO
Bt15 Bt14 Bi t13 BT12 Bt11 Bt1O Bt9 Bt8
Bt7 Bt6 BitS Bt 4 Bt3 Bit2 Bt1 Bit0
t (
&Klf,:.
Curco prctico sobre Microcontroladores
Indeterminado desous del rese
Direccin
$092B
i
$0038
Nombre del registro
I
l
Sin establecer
tscfura:
$003C Registro de estado y control del ADC
(ADSCR)
$003D
.
Registro de datos o.',fo%!
$003E
Registro de entrada de reloj dglADC
(ADTCLK)
$003F
Sin establecer
Reset:
Lectura:
Escritura:
Reset:
Reset:
0
Lectura
j!!Ll menADCO cH4 cH3 cHz cH1 cH0
AD7 AD6 AD5 AD4 AD3 AD2 AD1 ADO
Indeterminado desous del reset
$FEO4
$FEOO Registro de estado del break
(BSR)
Registro de estado del resef
(RSR)
Reservado
$FEO1
$FEO2
$FE03 Regiso de las banderas de control
$FEOs
del break
(BFCR)
Primer registro de eshdo de las
interrupciones
(rNT1)
Segundo registro de estado de las
interrupciones
(rNT2)
Tercer registro de estado de las
interrupciones
(rNT3)
$FEO6
Reservado
$FE0C
Regisfo de direccin del breakallo
(BRKH)
0
NoTA: Escribiendo un 0 lgico se borra el DSBSW
Bt15 BT14 Bt13 Bt12 Bt11 BI10 BT9 Bt8
Reset:
Escritura:
Reset:
Lectura
Escritura:
Reset:
Lectura
Escritura:
Reset:
Lectura
Escri tura:
Reset:
Lectura:
Escritura:
Leclura
Escritura:
Beset:
Lectura:
Escritura:
Reset:
$FFo7
V
$FEOB
$FE0D Registro de direccin del breakbato
.-^-,,
-^
(BRKL)
Escnrura
Reset

t
LCCIUfA
R R R R R R
SBSW
R
Ver nota
POR PIN c0P ILOP II.AD vluutfl LVI 0
R R R R R R R
Lefiura
BCFE R R R R R B R
0 tF5 tF4 rF3 0 tFl 0 0
R R R R R R R H
l F14 0 0 0 0 0 0 0
R H
R R R R R R
0 0 0 0 0 0 tF t5
R. R R R R R R R
R n R R R R R
BitT Bit6 BitS Bt4 Bt3 Bt2 Bt1 BtO
curco prctico sobre Microcontrotadores
&kl,:.#
Que
t
rrect
terFa
RS2:
dispr
ricas
l . M
nl
co
2. Lr:
fTli
Direccin
$FEOE
Nombre del registro
Registro de estado y coml oel
break
(BRKSCR)
Beset:
0
$FFFF
Registro de control del COP
(c0PcrL)
No es afectado
por
el resef
lt'.
estabtecer
W
Reservado
Figun 20.2 Localhacin y asignacin de los registros y bits de control, estado y datos, que conforman el mapa de la memoria de los
microcotroladores 68H(R)C08JK1 /JK9/JL?
Tabla de vectores
En la tabla 20.1 se muestran los 16 vectores de-
finidos para las interrupciones en'los microcon-
troladores de esta familia; su funcin, su direc-
cin exacta, y su nivel de prioridad son de gran
importancia a la hora de atender los llamados de
interrupcin internos y externos solicitados por
la CPU; estos vectores se encuentran en 48 posi-
ciones de memoria de 16 bits cada una. En la
tabla se puede ver tambin la prioridad de cada
vector la cual es el parmetro que define el orden
de atencin que la CPU le dar a cada una de
ellas en los casos cuando su activacin pueda lle-
gar a ser simultnea ante cualquier evento inter-
no o externo.
Memoria de datos de lectura
y
escrtura RAM
Las direcciones $0080 y
$OOff definen el espa-
cio de memoria RAM con una longitud de pala-
bra de 8 bits; en ella se albergan todos los datos
temporales que sean requeridos por el programa-
dot
)r
que requieran ser leldos y modificados en
cualquier momento.
Dentro de esta rea se debe ubicar el espa-
cio para la pila de datos
(stack), y aunque su
ubicacin puede ser programada y posea un re-
gistro SP de 16 bits que le da movilidad dentro
de los 64 Kbyte del rea de memoria, su ubica-
cin siempre debeestar dentro del espacio RAM,
y especialmente en la p'gina cero para almace-
nar y recuperar eftctzmente los registros de la
CPU durante los llamados, saltos, e interrup-
ciones. La pgina cero de la RAM est confor-
mada por los primeros I28 bytes; sta provee al
usuario de un espacio ideal para el acceso fre-
cuente de variables globales del programa y un
acceso rpido a las instrucciones por medio de
direccionamiento directo.
Memoria de
programa
de solo lectura
ROM
En esta rea de memoria de 8 bits definida entre
las direcciones
$EC00 y $FBFF
(4096
bytes) para
los microcontroladores 68H(R)C08JK3|JL3, o
entre las direcciones $F600 y $FBFF
(1536
bas)
para los 68H(R)C08JK1, el usuario puede guar-
da los datos que hacen pane del cdigo del pro-
grama, as como las constantes, asignaciones y eti-
quetas que se deben preservar dentro de la memo-
ria por tiempo indefinido y sin modificacin.
En esta rea tambin estn contenidas la ta-
bla de vectores de las interrupciones y el vector
del reset del microcontrolador, entre las direccio-
nes
$FFDO y
$FFFF, tal como se aprecia en la
t abl a 20. 1.
Memoria ROM del
programa
montor
(M0N)
El programa monitor, inalterable y residente
en la memoria ROM dentro del microconrro-
lador, se ha incluido en su arquitectura para
#
<n*
cutso prctico sobre Microcontotadores
c
L\:gL L\:.
Tabla 20.1 Tabla de vectlres de las intenupciones en los microcontroladores 68H(R)C08JK!/JK3/JL3
que el usuari o pueda probar l a ej ecuci n co-
rrecta de un programa por medi o de una i n-
t erf az de comuni caci n seri al de dos hi l os
RS232 y el puerto de una computadora como
di sposi ti vo maestro. Las pri nci pal es caracters-
ri cas del modo moni t or son:
1. Mantiene la funcionabilidad de todos los pi-
nes, feserva vn
Pin
(PTB0) para establecer la
comunicacin serial entre el monitor y la PC.
2. Usa un protocolo de comunicacin estndar
marca-espacio sin retorno a cero (NRZ).
3. Ef ect a l a comuni caci n a una vel oci dad
programabl e ent re 4. 800 baudi os y 28, 8
Kbaudi os, y puede ej ecutar cdi gos de pro-
grama desde l as memori as RAM o ROM.
En l a f i gura 20. 3 se muest ra el ci rcui t o
t pi co que se requi ere para t rabaj ar con el
mi crocont rol ador en el modo moni t or, en l
se han usado un dr i uer de comuni caci n
R5232 (MC145407) y ,tn bffir de tres es-
t ados (74125)
para cont rol ar l a di recci n de
l os dat os.
Vector alto de fin de conversin delADC
l F13 a l F6
tF5
Vector bajo de fin de conversin delADC
Vector alto del teclado
Vector bajo del teclado
Espacio sin uso
Vector alto de sobreflujo delTlM
Vector bajo de sobreflujo del TIM
Vector alto del canal 1 delTlM
Vector bajo del canal 1 del TIM
Vector alto del canal 0 delTlM
Vector bajo del canal 0 del TIM
Espacio sin uso
Vector alto de la lRO
Vector bajo de la IRQ
Vector alto de SWI
Vector bajo de SWI
Vector alto del resef
curco
prctico
sobre Microcontrotadores
&UOO: Sb
Rd
10
rF
' 10
rF
10
r F
NOTAS:
1. Con SW1 en posicin A, el reloj del bus es igual
al rel oj del osci l ador di vi ddo por cuafo.
Con SW1 en posi ci n B, el rel oj del bus es
i gual al rel oj del oscl ador di vi di d0 por dos.
2. VHI es aproxi madamente i gual a VDD.
3. El osci l ador externo debe tener un ci cl o de
servi ci o gual al 50%.
La tabl a 20.2 resume l as condi ci ones que se
deben cumpl i r para entrar al modo moni tor.
Para entrar a di cho modo de trabaj o, de acuer-
do con l a fi gura 20.3, el mi crocontrol ador re-
qui ere l a apl i caci n de un reset e l a conexi n
(pourer-on resetPOR
),
l uego de haber cum-
pl i do con uno de l os dos conj untos de condi -
ci ones que a conti nuaci n se resumen.
1. Col ocar l a pri nci pal entrada externa de i nte-
rrupcin IRQI, localizada en el pin I del
mi crocontrol ador, en un ni vel de vol taj e
(Nota 2) V + V
Interruptor de
reset
0. 1 pF
Figura 20.3 Circuito tpico para establecer el uso del modo monitor
i gual a Voo *Vr, (V* puede esrar enrre
0,7xVoo como val or mni mo, y Voo como
mximo), excitar la entrada de reloj externa
a travs de OSCl con una frecuencia igual a
4,9125 MHz, y l l evar el pi n de entrada PTB3
a un ni vel baj o (0 l gi co).
2. Col ocar l a entrada externa de i nterrupci n
iilqt en un nivel de voltaje igual a Voo
+Vr,, exci tar l a entrada de rel oj externo a
travs de OSCI con un generador de fre-
cuenci a ext erno aj ust ado en 9, 8304 MHz,
y l l evar el pi n de entrada PTB3 a un ni vel
al t o (1
l gi co).
I
I
--

Voo ''.ll
#
&krr"L
curso prctico sobre Microcontrotadores
IR
El \ r ,
en el
t erru
son
(
SFE.
cuci i
n| t ' , 1
Pr ogr
La r-,
PC.
md
IRQl
(ft

G
N

F
r

E
o
E
l-
o-
Fuenb del reloi
y frecuencia
Frecuencia del
bus
Gomentarios
Vgp + V 0 0 1 1 0SC1 a
4, 9152 MHz
2,4576MH2
Entra al modo monitor:
El reloj externo llega directamente a
0SC1. La comunicacin se establece
a 9,600 baudios. El temporizador
COP permanece deshabilitado.
voo X X X X iecuencia definida er
los mdulos
sciladores XIAL R(
XIALCLK
+
4
RCCLK *
4
Entra al modo usuario
Vectorizacin en el modo monitor
El MCU cambia algunas direccionei definidas
en el modo usuario para los vectores de las in-
terrupciones del reset, el S'S7I, y el breah; stos
son definidos alternativamente en la pgina
$FE,
y permiten que la CPU inicialice la eje-
cucin del cdigo del programa desde el
fir-
rnuare del monitor, y no desde la memoria de
programa del modo usuario.
Vel oci dad de comuni caci n del modo
monitor
La velocidad con la que se efecta la transfe-
rencia de datos entre el microcontrolador y la
PC, se define en funcin de la frecuencia del
mdulo oscilador activo, y depende tambin
Tabla 4).2 Requerimientos y opciones pan entar al modo monitor
del estado de la entrada PTB3, una vez se ha
entrado al modo monitor. Cuando el PTB3
est en estado alto se divide por 1.024, mien-
tras que cuando su nivel es un cero lgico se
divide por 512 el resumen pare la seleccin
de la rata de transmisin del modo monitor,
de acuerdo con el circuito de la figura 20.3.
Formatos bsicos de comunicacin del
modo montor
En la figura 20.4a, se puede apreciar que la co-
municacin con el programa monitor se efecta
en un formato de datos estndar de marca-espa-
cio sin retorno de cero (NZR). La velocidad de
transmisin puede ser cudquier valor estndar
entre 4.800 baudios y 28,8 Kbaudios.
(a)
z FORMATO DE DATOS DEL MONITOR paxuo
ATDE
FORIIAS DE ONDA DE iIUESTREO DEL MON]TOR
pnre
$A5
aTE r--
-
mc|o t Bfro \ sTt t Nf 2 ! sfr / rfr \ ErO , rf7
--a
STDC
E70E t t.c|o
BREAK
Figura 20.4 furmato de datos y eco durante el ciclo de lectura desde el modo nonitor
-a
curco pctico sobrc Microcontotadorcs
rrrt#
Para garantizar la transferencia limpia de da-
tos por medio del driuer de comunicacin, el pro-
grama monitor hace eco de cualquier dato recibi-
do, envindolo de vuelta hacia el terminal PTBO
para efectuar el chequeo de error respectivo. Esto
se puede apreciar en la figura 20.4b, all se ve que
cualquier resultado de un comando slo ser trans-
ferido luego del eco del ltimo bltte del mismo.
ENVIAR AL
MONITOR
ENVIAR AL
MONITOR
ENVIAR AL
MONITOR
ENVI AR AL
MONI TOR
Figura 20.5d Comando de escritura indexada del
rea de memoria IWRITE
ECO
En las figuras 20.5 se describen grficamente
las secuencias de los seis comandos que se usan
en el modo moni t or : l ect ur a de memor i a
READ, escritura en memoria WRITE, lectu-
ra indexada IREAD. escritura indexada IWRI-
TE,lectura del puntero de la pila READSP, v
ejecucin del programa RUN.
RESULTADO
Figura 20.5a Clmandl de lectura del rea de memoria BEAD
Figura 20.5b Comando de escritura del rea de memoria WRITE
Figura 20,5c Conando de lectura indexada
del rea de memoria IREAD
RESULTADO
IIIRITE
OAIA
Figura 20,5e Comando de lectura del
registro apuntador de la pila SP (Stack
Pointe) desde el monitor BEADSP
RESULTADO
ENVIAR AL
MONITOR
Los
ade
ti er
ri a
de
de,
La,
cro
dor
see
ren
Figura 20.5f Comando para la ejecucn del cdigo de
programacin del usuario desde el monitor BUN
ECO
/A , I
Figura 20.5 Formato de datos y eco durante el ciclo de lectura desde el modo mlnitor
(-zoib
&-rcln:. curco prctico sobre Microcontrotadores
\..Z
Los mi crocontrol adores Motorol a de l a fami l i a 68HCO8,
adems de poseer dieciseis modos de direccionamiento,
tienen un mdulo especial para el acceso directo a memo-
ri a (DMA);
q,t., tal como en l os grandes si stemas abi ertos
de cmputo, se usa para transferir rpidamente bloques
de datos entre reas y registros de memoria.
La caracterstica ms importante con que cuentan los mi-
crocontroladores, desde el punto de vista del programa-
dor y en cuanto al manejo y al procesamiento de los datos,
se encuentra en l a di sponi bi l i dad de vari os modos de di -
reccionamiento e instrucciones que soportan la transfe-
renci a de datos entre l os regi stros
y
l a memori a.
Curso prctico
sobre Microcontroladores
@frffiT")
( ZOS
)
\-/
Ll nrtiulu,ll
Annesn riire*to a mentrria f{ift'lAl
El acceso directo a memoria DMA (Direct Me-
mory Acces), es un mtodo rpido y eficaz que
permite guardar y retirar grandes volmenes de
datos de la memoria y algunos registros de datos
especiales, sin la intervencin de la CPU. El
DMA es un mtodo que nace con los sistemas
de cmputo grandes y complejos y los micro-
procesadores de alto rango; afortunadamente el
desarrollo de la tecnologay las exigencias de los
sistemas embebidos de control en un solo chip
(circuito integrado) cadavez mayores y m:s fre-
cuentes, han impulsado la integracin dentro de
la estructura de los MCU (Microcontroller Unit)
de funciones y mdulos perifericos de alto des-
empeo, tal como el DMA.
Los microcontroladores de 8 bits, de la fa-
milia 68HC08, son un ejemplo de la evolucin
en el manejo de la memoria; stos poseen un m-
dulo que permite el coprocesamiento de datos
por medio del acceso directo, que se conoce como
el mdulo DMA08.
En la figura 21.1 se muestra un diagrama de
bloques simplificado de un sistema general con
DMA; en este caso es claro que la arquitectura
de los buses de datos, direcciones y control, son
un soporte fundamental para los movimientos
de datos que se apoyan en el DMA. Para que la
BUS DE DIRECCIONES Y DATOS
ansferencia con el DMA se efecte, este mdu-
lo debe tomar el control maestro de todo el siste-
ma de buses y asumir temporalmente las funcio-
nes de control de la CPU; en trminos generales,
el DMA opera de dos maneras diferentes: en ci-
clo compartido y con la CPU detenida.
Para transferir pequeos volmenes de datos
el mtodo de acceso directo a memoria que ms
se usa es con la CPU detenida; ella le otorga tem-
pordmente al DMA el control total del sistema
de buses y le permite hacer la transferencia en el
menor tiempo posible; mientras que cuando se va
a transferir un gran bloque de informacin, el m-
todo que se usa slo toma el control de una parte
del sistema de buses y lo comparte con la CPU,
permitiendo as que desde sta se desarrollen las
tareas y el procesamiento continuo de los cdigos
de programa sin interrupcin durante la transfe-
rencia. Bajo esta condicin la velocidad del movi-
miento de datos se reduce, pero la CPU no detie-
ne la ejecucin de sus tareas.
' El
mdul o 0MA{}8
El uso del DMA es importante durante el movi-
miento de datos, porque libera de funciones a la
CPU, reduce el cdigo ejecutable necesario, in-
crementa la velocidad de respuesta, y permite usar
con mejor eficiencia el espacio de memoria de
programa disponible. En los MCU de la familia
Espacio de
direcciones
Figun 21,1 Diagrama de bloques de un sistema simple con DMA
BUS DE CONTROL Y ESTADO
$lb <n*
curco prctico sobre Microcontrotadores
&
68HCO
dor que
direccid
bus, y e
cia de d
puedan
El r
una anr
na del I
desde f
canales
tre uno
La
plifica<
bloque
Progra
habilit
gistros
neja el
base a
destin,
datos I
-
68HC08, el DMA08 es un mdulo coprocesa-
dor que puede tomar el control de los buses de
direccin y datos al concluir cualquier ciclo de
bus, y est diseado para permitir la transferen-
cia de datos entre dos posiciones cualesquiera que
puedan ser direccionadas por la CPU.
El acceso al mdulo DMA08 est basado en
una caracterstica modular de la estructura inter-
na del MCU de la familia 68HC08, que permite
desde fbrica, habilitar y expandir el nmero de
canales de acceso directo a memoria DMA. en-
tre uno y siete canales independientes.
La figura 21.2 es una representacin sim-
plificada del mdulo DMA08 que muestra sus
bloques funcionales desde el punto de vista del
programador; en 1, el sistema de control lgico
habilita el DMA y selecciona el conjunto de re-
gistros que se requieren por el canal activo, ma-
neja el incremento o decremento del registro
base apuntador de direcciones de la fuente y el
destino, y controla el movimiento seguro de
datos
(ver figura 2I.3).
{"}per act On i i f : r i ' r ' : r , ' '
r : r l i "*i r i '
En la figura 21.3 serepresenta claramente en blo-
ques el modo de operacin del DMA; los bloques
que representan las direcciones bases de las posi-
ciones fuente y destino, estn conformados por
dos registros de 16 bits cada uno, en donde la CPU
coloca la direccin base antes de iniciar la transfe-
rencia con el DMA; mientras que el bloque con-
tador de bytes estconstituido por un registro que
lleva la cuenta del nmero de transferencias he-
chas. En condiciones normales, IaALU del DMA
aumentar en uno el contenido del contador cada
vez que un byte complete su transferencia, y tras el
ciclo de reset se borrar.
El bloque de longitud define, por medio
del registro de longitud de bloque, el nmero
de bytes que van a ser transferidos en una ope-
racin particular del DMA, y su contenido se
usa para ser comparado con el del contador de
bytes y as determinar el fin de la transferencia.
En el DMA, la ALU es un subsistema de 16
bits que se usa para calcular rpidamente las
----+
Busde 16 b/s
+ Bus de 8 lfs
+
Lneasdecontrol
MULTIPLES REGISTROS, UNO
POR CADA CANAL DMA
Figura 21.2 Diagrama en bloques del mdulo DMA08
curco prctico
sobre Microcontrotadores
&<t,.t
#
{
[:[ uruulu lJt(A
'
lus lnudus tie. tiltr.u,'luLrutuir.ulo e=ir [us tuletrucuuladcrr.s blitit'tll]
CONTROL DE LA CPU
H
PAI
Al g
OU,
Par
VS
t e
qur
me
Pas
Pa
Pas
Pas
di recci ones act ual es de l a f uent e y el dest i no
(en un sl o ci cl o), y para i ncrement ar el con-
tador de bytes con cada transferenci a. Baj o l a
di recci n del mdul o DMA, l a ALU guarda l a
di recci n de l a prxi ma t ransf erenci a en un
regi stro temporal de di recci ones, y, en el mo-
ment o pr eci so, deposi t a en el bus i nt er no
(I BUS)
su cont eni do.
Las caractersticas principales con que cuenta el
mdul o DMA08 son:
1. Ar qui t ect ur a modul ar y expansi bl e por el
f abr i cant e, hast a si et e canal es i ndepen-
di ent es.
2. Rata mxima de transferencia de datos igual
a 4 Mbytes/sec. Con la frecuencia del bus in-
terno igual a 8 MHz, se transfiere un byte
cada dos ci cl os de bus.
3. Registros separados de direcciones base para
la fuente y el destino, de 16 bits cada uno.
4. Capacidad de transferencia de un byte
(B bits),
o una pal abra
(16 bi ts).
BUS INTERNO DE
LA CPU
7.
5
Figura 21.3 )peracin del mdulo DMA08
Opci n de t r ansf er enci a de un sl o bl o-
que, o de bl oques r epet i dos en l azo de
segur i dad.
Longi tud del bl oque de datos programabl e
hasta256 bytes.
Interrupci n para l a CPU del fi n de transfe-
renci a de datos del DMA.
Ni vel de pri ori dad de l a transferenci a con
DMA, programabl e.
Para describir el conjunto de registros de control y
estado que hacen parte de la configuracin y el
control del mdulo DMA, se har referencia slo
al canal 0, ya que las funciones y el modo de ope-
racin de todos los canales son iguales e indepen-
di entes. Estos son:
Est e regi st ro se usa para habi l i t ar i ndi vi dual -
ment e cada canal , l a i nt errupci n del DMA
para l a CPU, y el porcent aj e del bus i nt erno
que se va a compart i r ent re el DMA y l a CPU.
(Figura
21.4)
6.
8.
Escr : - .
Bi rf
del c
I
Bit I
ci n
1:
Bits
//.,' \
^
|
(rU
) &,rctn;.
Curco prctico sobre Microcontrotadores
\ , /
PARA SABER MAS:
Algoritmo bsico para la transferencia con el m-
dul o DMAOB
Para programar la transferencia de datos, a tra-
vs del mdulo DMA08, se
puede
usar el siguien-
te
procedimiento
como una gua, y
en vista de
que todos los canales del DMA operan idntica-
mente, ste se describir slo
para
el canal 0.
Paso 1: l nhabi l i te el canal 0 del DMA.
Paso 2: Escriba en el registro de direccin base
de l a fuente, l a di recci n del
pri mer
dato
que
debe ser ledo desde lafuente (D0SH
y D0SL).
Paso 3: Escriba en el registro de direccin base
del desti no, l a di recci n de l a
posi ci n
en donde se debe escri bi r el
pri mer
dato
destino (D0DH y D0DL).
Paso 4: Acceda el registro de control del canal 0
(D0C) para habilitarlo, y seleccionar las
fuentes del i ncremento y decremento,
y
l a l ongi tud del dato.
DC1 $xxxx
B t 1 6
LSUL L
Paso 5: Defina en el registro de longitud del blo-
que
del canal 0 (D0BL), el nmero de
bytes por transferir.
Paso 6: Use el registro de estado y confol del DMA
(DSG) para
asignar el nivel de
prioridad
de
la transferencia, activar la transferencia
cclica, y habilitar o no el DMA durante el
modo de espera del MCU
WAII).
Paso 7: Para controlar desde el software la trans-
ferencia de datos, coloque en 1 lgico el
ffSWl0 del registro 2 de control del DMA
(DG2).
La transferencia comenzar dos ci-
clos desous de la habilitacin del canal 0.
Paso 8: Finalmente,
para
habilitar la transferen-
ci a y manej arl a desde un
peri fri co por
medi o de una i nterrupci n, se debe ha-
bilitar la interrupcin de fin de transfe-
rencia, seleccionar el
porcentaje
de ocu-
paci n
del bus
y habi l i tar el canal DMA.
Todo esto, desde el registrol de control
del DMA
(DCl ).
y I a operaci n del DMA, cuando l a CPU est
en espera (o
en modo \ AI T); y en uno de
sus bi t s est l a bandera cue i ndi ca cuando l a
t ransf erenci a se ha . o-pi . t rdo.
(Fi gura
21. 5).
BitDM'\P (selector
de prioridad del DMA y la CPU)
1: El DMA ti ene l a pri ori dad, y
0: La CPU ti ene l a ori ori dad
$xxxx
6 5 4 3 2 1 B t j
Reservado
BBl
0
0
I
0: Inhabilita la interruocin del canal0
Fi gura 21.4 Regi stro 1 de control del DMA (DC1)
Con este regi stro' se
Programan:
l a
pri ori dad, el modo de t ransf erenci a,
L e 0I I f i l
Escf tura
8e.se
Reservado
Bits BB0 (sel ectores del ancho de banda
para el DMA)
0 : Ocupa el 25o/ o del I BUS
de l a CPU
1 : Ocupa el 50o/o del IBUS
de l a CPU
0 : Ocupa el 670/o del IBUS
de l a CPU
1 : Ocupael l00o/odel IBUS
de l a CPU
B i t TECD
(habi l i tador
de transferenci a
del canal o)
Lfrr*a
l : Habi l i tado, y 0; Inhabi l i tado
,,,,,u,,0
Bit lEC} (habilitador de la interrup-
Bscl
ci n del DMA para l a CPU)
1: Habilita Ia interrupcin del canal0,
y
DSC
Bt 7
DMAP LO DMAWE I FCO
000000
Figura 21.5 Registro de estado y control del
DMA (DSC)

BBl BBO TECO IECO


-
:
, / \
curso prctico sobre Microcontrotadores
@rcf
n).
(ZOz \
\
"./
BitL0
(bithebilirador
del modo de transferencia
cclica del canal0)
1: Habilita el modo cfclico, y
0: Habiliael modo bloque (inhabiael modo
clclico)
87 DMA\IE (habilitador
del DMA durante el
modo \AIT)
1 : Tlansferencia habilitada, y
0 : Tlansferencia suspendida
BitlFC0
(bandera
de interrupcin del canal 0)
1: Thansferencia completa, y
0 : Tlansferencia incompleta
3. Registro 2 de control del DMA
(DC2)
Este registro se usa para configurar las
D'c
fuentes y el comienzo de la transferen-
cia
(Figura
21.6)
bits SYIT a S'S7I0
(habilitadores por
software del inicio de transferencia
neset
del DMA)
1: Inicia la transferencia, y
0: Bloquea la transferencia
$xxxx
0
4. Registro de control del canal 0 del DMA (D0C)
Por medio de los cuatro bix SDC3 a SDCO de este
registro, se elculan las direcciones base de la fuente y
del datino para el canal 0. Por medio de 1, tambin se
configura w
btc
o una palabra para la uansferencia
de datos, se definen las fuentes para l soliciud del
DMA, y se controla el desplazamiento del registro de
dircciones temporal que el DMAusa como apuna-
dor del bloque.
Wr.a
21.7 y Tabh 2l.I y 21.2)
BitB\IC (bit
de control de la longitud del dato
transferido)
1: El DMA transfiere datos de 16 blits,v
0: El DMA transfiere datos de 8 bits
nffi
65{32l Bt t O
Ftgun 21.7 Registo de contoldel canal0 (IfrC)
5. Registros fuente del DMA con la direccin
base, del canal 0
(DOSH
y DOSL)
Por medio de estos registros, el canal
0 del DMA ubica la posicin base del
dato de la fuente antes de iniciar la
transferencia. Ledireccin base de I 6
bits se graba en dos registros de 8 bits,
llamados DOSH y DOSL (parte akay
parte baja). (Figura 21.8)
DC2
BITT
00000
Fryun 21,6 Registo 2 de contoldel DMA (n2)
Tabla 2l.l Seleccin de tuentes
paalaslicifrnl
de Ia
tansferencia desle el DtlA
Estado indefinido despus del reset'
.
Fuentes de solicitud de
transferencia delDMA
Solicitud del DMA por lq entrada 0
Solicitud del DMA por la entrada 2
Solicitud del DMA por la entrada 4
Solicitud del DMA
por la entrada 6
#
&ln
cwso preco sobc Mtcocontotador,
$t
D

Jfr:I
n6st
I
#:I
nosf,t
6. R
base
Teni
tenir
alta
crih
tran
LecN
Escrlr
Fesrt
Locta
Escrln
w
SDG[3:Ql Direccin fuente Dircccindetino
1010 lncremento lncremento
1000 Incremento Estco
0101 Decremenb Decremento
001 0 Estico Incremento
0000 Estico Esttico
Taila 21.2 BiE de cmtol de direcciones.bas del DtllA
7. Registro de control de longitud del bloque,
del canal0 (D0BL)
El nmero CIe byns que sern transferidos en un
bloque por el canal 0 del DMA, se controlan
desde este registro. Al escribir el valor $00 en el
registro D0BL se define la mayor longitud para
el bloque, que es de256 bytes.
DOBL tffi
8, t 765 1 321&i l O
flgun 21.10 Registro de longitud del blque del DliM (D0BL)
8. Registro contador de bytes transferidos, del
canal 0
(DOBC)
Durante el proceso de transferencia del DMA,
en el contenido del registro contador de 8 bits
D0BC se lleva la cuenta del nmero de da-
Bito
tos de un blte que se han transferido a tra-
vs del cand 0.
Bffit: S0 bornd regfrto dospus del rw
Este registro contador se puede borrar por
tres causas, que son: por un ciclo de reset
interno o externo, cuando alcanza la lon-
gitud definida para el bloque de datos, y
cuando se escribe una nueva direccin base
Hgun 2t.E negistt{ de direccin base fuenb (Dils y D[sL)
fuente o destino.
6. Registros destino del DMA con la direccin
base, del canal 0
(DODH
y D0DL)
Teniendo en cuenta la direccin de 16 bits con-
tenida en los registros D0DH y DODL (parte
B'oet
alta y parte baja respectivamente), el cand 0 es-
Hgnn,ll
Wo@nffieW^og66AfA@
cribe en la posicin destino base el primer dato
transferido por el DMA.
DODH $xm
BI t 765 1 521
ga n.9 Registos de direccin base deslino (nDH y MDL)
Se borael rgistodosfl& delrBst
D0SL $mx + 1
af f i 654g2
D0BC $mq
8n7 6
Los modos de direccionamiento
en la familia HC08
En los microcontroladores 68HC08 de
Motorola hay disponibles diecisis modos
de direccionamiento que le otorgan una
gran flexibilidad y eficiencia al manejo de
datos que el programador puede efecnrar
@n estos dispositivos. En trminos de la
CPU,los modos de direccionamiento del
MCU son las opciones con que ella cuena
paralocalizarlos datos que se requieren para
ejecutar cualquiera de sus instrucciones.
So bora el cgbo d6spu& dol rasaf
56 bona el rgiso dosprsdel ,osrf
DODI $m+1
Bt t 765f 32
Se bona el regiso despus del rasaf
cutgo proo sorre Mtcrwnwadorog
err-"
E[ urriukl l-]1,(/l
t'
lus tLLuuus tit'tillr+'uloLru.LrLle.LLtc e'tr lus LrLlct'uuctrr.llutj.ures 05LiL'Ui]
Los diecisis modos de direccio-
nami ento son:
.
Inherente
.
Inmediato
.
Directo
.
Extendido
.
Indexado sin desplazamien-
to u ofiet
. CODIGO DE
MAQUINA
4657
AB45
7Z
A614
8C
AEO3
5Z
A630
87
ETIQUETA
EX-1
EX_2
EX-3
MNEMONICO DE
u opeRncl
LDA
ADD
DAA
LDA
CLRH
LDX
DI V
l
OPEBANDO
#$57
#$45
#20
#3
COMENTARIOS
; A
=
$57
; A
=
$9C
; A
=
$02 w/ ocorreo
; col oco
el bi t en $102
; LS
di vi dendo de A
;Borro
el l'6 del dividendo
; Di vi sor
de X
;
(H : A),zX +=@6
,H=02
; A
=
$30
; Guordo
el dot o $30 en
; 1o
pi t o y decrement o
; el
opunt odon SP en 1
CO:
LDA
PSHA
5F
8C
35t
351
75
2e
a
a
a
a
a
a
Indexado con ofret de 8 bits
Indexado conoffsetde 16 bits
Del SP con
ffiet
de 8 bits
Del SP con ofret de 16 bits
Relativo
Memoria a memoria. inme-
diato a directo
Memoria a memoria, direc-
to a directo
Memoria a memoria, indexa-
do a directo con incremento
Memoria a memoria, directo
a indexado con incremento
Indexado con incremento
posterior
Indexado con
ffiet
de I bits
e incremento posterior
En los MCU HC08 hay 54 ins-
trucciones inherentes. Todas las
instrucciones que soportan este
modo de direccionamiento se de-
nominan instrucciones inherentes
y se caracterizan porque no requie-
ren un ciclo de busqueda
fetch)
para el operando, trabajan sobre
registros internos de Ia CPU, tales
como el acumuladorA, el registro
ndice H:X, el apuntador de la pila
SB y el registro del cdigo de con-
diciones CCR. t principal ven-
taja de las instrucciones inheren-
tes, es que no requieren de un di-
reccionamiento a memoria y, por
lo tanto, su tiempo de captura y
eiecucin es el menor.
Figura 21.12 Ejemplos de instrucciones del modo de direccionaniento inherente
zar
CO:
) ^.
uc-
CP
b' *
c10
ces
Lo,
I t I
I CL
eS,
ye
l ^
l d \
rar
- t ^
uc
cor
l a
ma
ES:
di r
da
dir
cor
cal
$0t
t ^
uc
En la figura 21J2 se mues-
tran tres pequeos segmentos de
programas en lenguaje ensambla-
dor que son ejemplos del modo
de direccionamiento inherente;
en sta se destacan con color os-
curo las lneas de programa que
contienen instrucciones inheren-
tes. Las instrucciones son: DAA
(ajuste decimal al registro acumu-
lador), CLRH (borrar el byteako
H del registro ndice), y PSFIA
(guarda el contenido del acumu-
lador en la pila).
Nota:
En steyen todos los dems pro-
gramas escritos en lenguaje en-
samblador, se usar el smbolo (#)
antes de cualquier nmero, para
indicar que es un operando in-
mediato; de acuerdo con la sin-
taxis definida por los ensambla-
dores de Motorola, tambin se
usar el smbolo
($)
antes de cada
nmero para representarlo en
notacin hexadecimal.
Las i nst rucci ones de di recci o-
nami ent o i nmedi at o en l os
MCU HC08 son 18. Son t o-
das aquel l as que cont i enen el
operando en l os bytes quevan
i nmedi at ament e despus del
cdi go de l a oper aci n; l os
dat os i nmedi at os pueden ser
de uno o dos bytes de acuer-
do con el t amao del regi st ro
i nvol ucr ado en l a i nst r uc-
ci n, y pueden represent ar
un val or o apunt ar a l a di rec-
ci n de un val or.
El programa ej empl o que
se muest ra en l a f i gura 21. 13
cont i ene dos i nst r ucci ones
i nmedi at as: AI X
( suma
un
val or i nmedi at o con si gno al
r egi st r o ndi ce) , y CPHX
( compar a
el r egi st r o ndi ce
con un val or i nmedi at o) : en
st e, pri mero se borra el re-
gi st ro ndi ce (H: X)
y l uego se
cODIGO DE
MQUINA
5F
8C
AF01,
65FF FF
26F9
20F5
MNEMONICO DE
Ln opRncr
CLRX
CLRH
AI X
CPHX
OPERANDO
#L
#$FFFF
TAG
START
ETIQUETA
START
TAG
COMENTARIOS
; X=0
; H=0
; ( H: X) =( H: X) +1
; Comporo
(H: X) con
; $FFFF
;
Ej ecuci n c cl i co
; host o
su i guol dod
; So1t o o i ni ci o
BNE
BRA
Figura 21,13 Ejemplos de instrucciones del modo de direccionamierta
,nmediato
, t \ |
{r
d5
&/il<trT").
curso prctico sobre Microcontrotadores
\., z
CODIGO DE
MAOUINA
5F
8C
3550
ETIQUETA
RAM
ROM
TEMP
START
BAD-PART
MNEMONICO DE
LA OPERACION
EQU
EQU
ORG
RT4B
ORG
CLRX
CLRH
STHX
LDHX
STHX
CPHX
BNE
BRA
OPERANDO
$s0.
$6E00
$RAM
z
$ROM
TEMP
#5) ) ) )
TEMP
RAM
BAD-PART
START
|
4sssss
|
3sso
| 7550
COMENTARIOS
; Asi gnoci n
o 10 RAM :
; Asi gnoci n
o 1o ROM
; Comi enzo
de t o RAl t 4
; Reser vo
2 byt es
; Comi enzo
de 1o ROM
; x=0 :
; H=0 l
; H: X=O
> TEMP
; Cor go
H: X con $5555
;
TEMP=$5555
;
RAM=TEMP
;
RAM=TEMP o menos que
; ocur r o
ol gn er r or
;Inicio
de ruevo el ciclo
. . 1
. t r .
L\]gL Lr].
ci ones que son l a base del di -
recci onami ento extendi do.
Las i nst rucci ones l l ama-
das extendi das, pueden acce-
der a cual qui er di recci n del
mapa de memori a de 64 Kb-
yres con que cuentan esros mi -
cr ocont r ol ador es; t odas l as
i nstrucci ones son de 3 bytes de
l ongi tud y en el l as el pri mer
byte es el cdi go de operaci n;
mi ent ras que l os dos si gui en-
tes son l os bytes ms y menos
si gni fi cati vos de l a di recci n
efecti va del operando.
En t odos l os ensambl ado-
res efi ci entes, el programador
puede ol vi darse de def i ni r si
I a i nst rucci n es di rect a o ex-
t endi da, ya que el programa
ensambl ador aut om t i ca-
ment e deci di r l a f orma ms
cor t a de l a i nst r ucci n de
acuerdo con el l mi t e que est
def i ni do para l a pgi na cero
( $00FF) .
En l a f i gur a 2l . 15 se
muestran dos ejemplos de este
modo de di r ecci onami ent o
usando l a i nst r ucci n LDX
(carga el byte bajo X del regis-
tro ndice con el contenido de
una l ocal i dad de memori a).
z0F7
aument a en uno hast a al can-
zar el val or $FFFF. Cuando l a
condi ci n de compar aci n
def i ni da por l a i nst r ucci n
CPHX es verdadera, el pro-
grama sal t a a l a l nea de i ni -
ci o
(START) y repi t e el pro-
ceso i ndef i ni dament e.
Los MCU HC08 de Mot or o-
l a poseen 37 i nst rucci ones di -
rect as. En est e modo de di -
recci onami ento el pri mer byte
es el cdi go de I a operaci n,
y el segundo es el byt ebaj o de
l a di recci n ef ect i va del ope-
rando; ya que eI byte ms al to
de l a di r ecci n se asume
como $00 y no se i ncl uye en
l a i nst rucci n como un byt e
ms, el t i empo de ej ecuci n
es sl o de un ci cl o.
Por lo anterior, el uso del
direccionamiento directo que-
da limitado a la pigina cero o
directa del rea de memoria que
comprende las primeras 2561o-
cal i dades (entre l as posi ci ones
$0000 y $00FF) .
En el programa ej empl o,
de l a fi gura 21.14, se pueden
Figura 21.14 Ejemplos de instrucciones del modo de direccionamiento directo
reconocer oos rnsrrucci ones
propi as del modo de di recci o-
nami ent o di r ect o, que son:
STHX
(guardar el regi stro n-
di ce en l a memori a), y CPHX
( compar a el r egi st r o ndi ce
con un val or en memori a).
La pr i mer a i nst r ucci n
STHX I ocal i za l a et i quet a
TEMP en l a posi ci n cero de
l a RAM, y l a segunda carga en
di cha posi ci n el dat o $5555;
mi ent r as que l a i nst r ucci n
CPHX compara el val or con-
t eni do en H: X con el de l a po-
si ci n RAM + 1
(en
est e caso,
RAM +1=TEMP=posi ci ones
$50 v $51=$5555) .
El programador de l os MCU
HCO8 di spone de 16 i nst ruc-
Figura 21.15 Ejenplos de instrucciones del modo de direccionamienb ertendido
tffllt?,fit
ETTouETA
T|t#Pill%?dr'
oeERANDo coMENTARros
oRG $50
FCB $FF
C LRX
LDX $00s0
; I ni ci o
en $50
; 550
=
$FF
; Car go
di r ect o
; de1
r egi st r o X
;con
el doto $0050
; I ni ci o
en $6E00
; $6E00
=
$FF
; Corgo
ext endi do
; de1
r egi st r o X
5F
BE50
5F
cE6E00
ORG
FCB
CLRX
LDX
s6EO0
$FF
$6E00
curso prctico sobre Microcontrotadores
&ktf"; \
\\.Z
v

E[ Luuula l]tA
,
lus LrLutius tj.r. rilu,-ccluLriiLu[.'Lri.o e'Lr lus tulctuc'uLrLiulutiou..s GSl"iCUi]
En l a f ami l i a HC08 hay 29
i nstrucci ones para el di recci o-
nami ento i ndexado si n despl a-
zami ento u offset. Todas l as
i nst r ucci ones que sopor t an
este modo son de un byte y se
usan para acceder a datos con
di recci n vari abl e, tal como en
el caso de l as tabl as. Las i ns-
trucciones indexadas sin
ffiet
se usan gener al ment e par a
mover apuntadores a travs de
una.tabl a de datos l ocal i zada
en memori a.
En esta fami l i a se han di s-
puest o dos regi st ros (H
y X),
de un byte cada uno, que con-
t i enen l as di recci ones condi -
ci onal es al na y baj a del ope-
rando,

graci as al regi stro H,
est e modo de di r ecci ona-
mi ent o no queda l i mi t ado a
l as pr i mer as 256 posi ci ones
de memori a, t al como sucede
en l a f ami l i a HC05.
Para mantener l a compa-
ti bi l i dad absol uta entre l as i ns-
trucciones de los MCU de Mo-
torol a de l as fami l i as HCO5 y
HC08, el regi stro H se man-
ti ene en cero cuando no se usa
ni nguna i nst r ucci n que l o
afecte por parte del HC08.
En l a fi gura 2I.16 se mues-
tra como ejemplo una lnea de
cdigo de programa que ilustra
el modo de di recci onami ent o
indexado sin ofiet, por medio
de la instruccin de salto incon-
di ci onal
JMP.
tiitl^l^,
ETTQUETA
FC
MNEMNtco DE
LA opERActN
JMP
Las i nstrucci ones para el di rec-
ci onami ento i ndexado con off
set de 8 bi x son 29. Todas l as
i nst rucci ones de est e modo de
di recci onami ent o son de dos
bytes, y al igual que las que no
usan despl azami ent o; st as
t ambi n se usan para acceder
a datos con di recci n vari abl e.
Para determi nar l a di rec-
ci n efecti va del operando, l a
CPU usa el resul tado que se ob-
tiene al sumar los bytes sin sig-
no del regi st ro ndi ce (H: X),
con el byte sin signo que prece-
de al cdi go de operaci n de l a
i nst rucci n.
Estas i nstrucci ones se usan
a menudo para sel ecci onar el
dato o el emento n-esi mo den-
tro de una tabl a de k el emen-
t os, en est e caso el n-esi mo va-
l or deber est ar t pi cament e
en el regi st ro H: X y l a di rec-
ci n de i ni ci o de l a t abl a de-
ber est ar en el byt e si gui ent e
al cdi go de operaci n de l a
i nst rucci n.
OPERANDO
, X
t;;
l :
1""
t __
F
l abra
que s
ci n
ci n
i
i nde
l as i n
mi sn
ci on
caliz
tro d
caso.
l os 6
I
mues
nea ci
i l ust r
mi en
16 b;
de sa
H")'
bytes
COMENTARIOS
; SI N
OFFSET
; sol t o
o l o
;
di recci n
; opunt odo
por el
; r egi st r o
H: X
Figura 2l,16 Ejemplo del modo de direccionamiento indexado sin offset
Por l o anteri or, este di rec-
ci onami ent o quedar l i mi t a-
do a l as pri meras 256 posi ci o-
nes de memor i a, per o, si n
embargo, l a t abl a puede l oca-
l i zarse en cual qui er l ugar dei
mapa de memori a al usar el
regi st ro ndi ce como di rec-
ci n base, y el si gui ent e byt e
como despl azami ent o.
En l a f i gur a 21. 17 se
muest ra como ej empl o una l -
nea de cdi go de programa
que i l ustra el modo de di rec-
ci onami ento i ndexado con off
set de 8 bi ts, por medi o de l a
i nst rucci n de sal t o i ncondi -
ci onal
JMP.
El MCU HC08 t i ene l 6 i ns-
trucci ones de di recci onami en-
to i ndexado con offset de 16
bi ts. En este modo de di recci o-
nami ento todas l as i nstrucci o-
nes son de tres bytes y pueden
acceder a cual qui er dato con
di recci n vari abl e en toda el
rea de memori a; l a CPU suma
el conteni do de H:X con l a pa-
'.iil?,?^e'
ETTQUETA
TX'#P$l%!|t
oeERANDo coMENTARros
E.FF rMP $FF'x
l35fi5tr3'rtt;tt1tu"
;opuntado
por el
; regi st ro
H: X + $FF
Figura 21.17 Ejemplo del modo de direccionamiento indexado con offset de I bits
A" .
{
$rdb ftKt,.i.
curso prctico sobre Microcontrotadores
\rz
sicin $10, el SP se hace igual
a $1O+$FF=$10F, y se
ta el decremento de la
cin hasta cero.
Direccionamiento del $B
con desplazamento de
16 ifs
La milia del MCU 68HC08
tiene disponibles l4 instruccio-
nes para el direccionamiento del
SP con ofiet de 16 bits.
Todas las instrucciones en
este modo son de cuatro bytesy
se usan para acceder a datos de
la pila ubicados en cualquier
rea de memoria; en este caso
la CPU suma el contenido del
SP con los dos bytes que prece-
den d cdigo de operacin, para
determinar la direccin efecti-
va del operando.
En l a f i gura 21. 20 se
muestra un programa de ejem-
plo que ilustra el modo de di-
reccionamiento del SP con off
set de 16 bits, usando la ins-
truccin LDA (carga
del acu-
mulador desde memoria); en
este programa el acumulador
se carga con el contenido de
la posicin de memoria
$250
(SP=5259*$FF=$34F).
Direccionamento
relativo
El modo de direccionamien-
to relativo, en esta familia de
microcontroladores, se mane-
ja
con 27 instrucciones. En
todas las instrucciones de sal-
to condicional, la CPU usa el
di r ecci onami ent o r el at i vo
para determinar la direccin
Ftgun 21.18 Ejemplo del modo de direccionamiento indendo con offset de 16 bib
labra formada por los dos bytes
que siguen al cdigo de opera-
cin para encontrar la direc-
cin efectiva del operando.
En este direccionamiento
indexado con ofiet de 16 bits,
las instrucciones se usan de la
misma forma que en el direc-
cionamiento anterior, para lo-
calizar y capturar datos den-
tro de una tabla, pero, en este
caso, con movilidad en todos
los 64 Kbytes de memoria.
En l a f i gur a 21. 18 se
muestra como ejemplo una ll-
nea de cdigo de programa que
ilustra el modo de direcciona-
miento indexado con offet de
16 bits, usando la instruccin
de salto incondicional
JMP.
Direccionamiento del SP
(stack pointef,
con
desplazamiento de I ifs
Hay 24 instrucciones de tres
bytes que manejan el apunta-
dor de la pila con ofiet de 8
bits. Esre modo de direcciona-
miento sobre el SP nos permi-
te movimientos giles dentro
de 256 posiciones de la pila,
la CPU encuentra la direccin
efectiva del operando al sumar
el registro SP de 16 bits con el
byte que sigue al operando.
En est e modo el SP se
puede usar como otro registro
fndice de la CPU, siempre y
cuando las interrupciones es-
tn inhabilitadas.
En l a f i gur a 21. 19 se
muestra un ejemplo de cdi-
go de programa que ilustra el
modo de direccionamiento
del SP con offet de 8 bits, por
medi o de l as i nst rucci ones
STA
(guardar
el acumulador
en memoria) y DBNZ (decre-
mento de la posicin de me-
moria y salto, si no es igual a
cero); en est e programa se
guarda el valor $20 en la po-
Hgun 21.19 Ejemplo del modo de direccionamiento delSP con offset de I b'tb
*i[$|,tr
mqrEil
tl#dtrfiF
opEnAmro GorEnAnros
#so1:0f,
;Rei.nicio
el quntador
; de 1o pi t o
cwso prctico sbe Miqountotadorcs
rr*r#
-1
[:[ urtiulu l]ttA
t,
lrs urotios de tj.lt'cculuuuurlc'tri.a u'tr las tuleluu-cutrulutiorcs Gtiti00li
efecti va (ffi cti ue addres s; EA)
del sal t o, st a encuent ra el
dest i no del sal t o condi ci onal
al sumar eI byte si gnado (en
compl ement o a dos ent re -
128 a +127) que si gue al c-
di go de oper aci n, con el
cont eni do del cont ador de
programa (PC).
Si l a condi ci n del sal to
se cumpl e, el PC se carga con
l a EA, de l o contrari o, l a CPU
conti na con Ia ei ecuci n nor-
mal de l a prxi ma i nstrucci n
apunt ada por el PC.
En la figura 21.21 se mues-
tra un programa de ejemplo que
usa dos instrucciones del modo
de di recci onami ento rel ati vo:
BLI (salto si es menor que, ope-
racin signada), y BRA (salto
in-
condicional); en ste, el conte-
nido del acumulador se compa-
ra con -2, y y^ que el nmero
#1 es mayor que -2, el salto a
TAG nunca ocurrir.
En este modo de di recci ona-
miento. el movimiento de un
operando inmediato (inmd) a
una posicin directa en memo-
ria se hace por medio de la ins-
truccin de tres bytes y cuatro
ciclos de eiecucin MOVinmd;
este modo se usa con frecuencia
para inicializar registros y varia-
bles en la pgina cero. La CPU
guarda el primer byte que sigue
al cdigo de operacin, en la di-
reccin de la pgina directa que
est indicada por el segundo byte
de la instruccin.
En la figura 21.22 se mues-
tran dos segmentos de programa
que ilustran la disminucin signi-
ficativa, de9 a4ciclos, que resulta
cuando no se usa el acumulador;
sto se ilustra con dos operaciones
similares de transferencia inmedia-
ta a directa de este modo.
En este modo de direccionamien-
to, el movimiento de un operan-
do directo en memoria a una po-
sicin directa en memoria, se hace
por medio de la instruccin de tres
Aat
y cinco ciclos de ejecucin
MOV dd; este modo se usa para
efectuar transferencias de datos
dentro de la pagina cero. Ei ope-
rando que se encuentra en la posi-
cin de la p:gina cero, indicada
por el primer byte que sigue al c-
digo de operacin, se guarda en la
posicin de la pgina cero indica-
dapor elsegundo byte.
4EF
I
L
cQ
MA-
BTSi
86 F.
87t
86,q,
mue
PTOS
ma(
dec
yco
mi n
el nr
ci n
(de
Figura 21.21 Ejemplos de instrucciones del nodo de direccionamiento relativo
Figura 21.22 Ejemplo del modo de direccionaniento inmediato a directo
cDl
Nc
( E
65
23;
45i
El n
men
con
35:
80
Figt
tflRlt?,JDo'
ETTouETA
T}t#Pill%?|.u'
oeERANDo coMENTARros
I
450t00 LDHX #$OIOO
94 TXS :Reinicio el
qcuntodor
I
i de
1o pi l o
I
; en $00FF I
9ED6O25O LDA $OZ5O,SP ;Offset
de 16-bits
I
;Corgo
el registro A
I
; con el cont eni do I
_''" :11__ _* I
Figura 21 .20 Ejemplo del modo de direccionamiento del SP con offset de 16 bits
tfRt?,JXt
ETTQUETA
TXt#PHl%9rtt
oIERANDo coMENTARros
A6OL TAG
Al FE
91FA
ZOFE HERE
LDA #L : A=1
CMP #-2
; Comporo
con -2
BLT TAG :Solto si el volor del
l regi st ro
A
; es
menor que -2
BRA HERE
; Sal t o
si empre
'"B[t|,fi' [j?ts3,8[ tlt#g$l%!|t
opERANDo coMENTARr's
*
l ,l ovi mi ento de dotos con el reoi stro ocumul ador
B75O ( 2 ci cl os) PSHA
A6?2 ( 2 ci cl os) LDA #SZZ
BTFO ( 3 ci cl os) STA $F0
S650 ( 2 ci ct os) PULA
-a
ei cl os
; Guor do
el vol or
;octuol
dl registro A
; A
=
$22
; Guor do
e1 dot o $22
; dent r o
de 10
; posi ci n $F0
; Recuper o
el vol or
;previomente
guo"dado
; de1
r egi st r o A
*
Movi mi ent o de dot os si n el r egi st r o ocumul odor
dEZZFO ( 4 ci cl os) MoV #SZZ, $FO
; Ubi coci n
det dot o
; $ZZ
dent r o de 10
;posi ci n
de memori o
' $F0
#
&*r*L
curso prctico sobre Microcontrotadores
,illl,
:!
lr
m-
r
En l a f i gur a 21. 23 se
muest ran dos segment os de
programa que efectan l a mi s-
ma operaci n de transferenci a
de datos di recto a di recto si n
y con el acumul ador, y l a di s-
mi nuci n correspondi ent e en
el nmero de ci cl os de ej ecu-
ci n que resul ta en cada caso
( del 0a5ci cl os) .
El movi mi ento de memori a a
memoria indexado a directo y
con i ncrement o
post eri or,
se
efecta con la instruccin de dos
bytesy cuatro ciclos de ejecucin
MOV ix+d, y se destina gene-
ralmente para transferir tablas de
datos apuntadas por el registro
ndice, hasta los registros de la
pgina directa
(la tabla puede
tener cualquier tamao y estar
localizada en cualquier rea den-
tro de Ios 64 Kbytes de memo-
ria). La CPU guarda el operan-
do apuntado por el registro H:X
en la pgina cero, en la direccin
que se indica en el byte que si-
gue al cdigo de operacin de la
instruccin, e incrementa el re-
gi stro ndi ce despus de cada
movimiento.
' l l .
r r - i -
Lg\ ] L L.
Este modo de direcciona-
mi ento es bastante ti l para
transferir un bffir de datos de
la memoria RAM a un regis-
tro de transmi si n seri al , tal
como se muestra en la figura
21.24, en donde aparece un
segment o de una rut i na de
atenci n a l a i nterrupci n de
transmi si n seri al SCI.
El movimiento de memoria a
memoria, indexado a directo y
con i ncrement o post eri or se
efecta con la instruccin de dos
bytesy cuatro ciclos de ejecucin
MOV di x+, y se usa comn-
mente para llenar tablas con re-
gistros de la pgina cero. El ope-
rando apuntado en l a pgi na
cero, por el byte siguiente al c-
digo de operacin, se guarda en
la direccin apuntada por el re-
gi stro H:X; y l a CPU i ncremen-
ta el registro ndice despus del
movimiento. Como un ejemplo
de este modo de di recci ona-
miento se muestra el programa
de servicio a la interrupcin SCI
en l a fi gura 2I.25.
Las i nst r ucci ones CBEQ y
MOV son l as dos i nst rucci o-
nes de dos bytes en las que se
soporta el modo de di recci o-
nami ento i ndexado si n offset
y con i ncrement o post eri or.
En el registro H se guarda el
byte de la parte alta de la direc-
:r
llf "
rul[
EN

r
lfot
l*
l
;itrF
Figura 21.24 Ejemplo del modo de direccionamiento indexado a directo con incremento
'^lR[t',-T I]iT3,85 Tl'j[gill%?&'
oeERANDo coMENTAR,os
*
Movi mi ent o de dot os con el ocumul odor
8750 (2 ci cl os) PSHA
B6F0 (3 ci ct os) LDA $F0
STFI (3 ci cl os) STA $F1
8650 (2 ci cl os) PULA
10 ci cl os
*
f 4ovi mi ent o de dot os si n el ocumul odor
4EFOFL (5 ciclos) MOV $F0,$F1 ;Mueve
e1 contenido
; de
l o posi ci n de
; memori o $F0 o 1o
; posi ci n $F1
Figura 21.23 Ejemplo del modo de direccionamiento directo a directo
I
t'fRt?'JX'
ETTQUETA
tl'#Pill%irPr'
'PERAND'
c'MENTARr's
I zt n MOV X+,
;lvt:we
ur ruo,o
grte
j
SCOn
; ol
regi st ro de
; dot os SCI ,
t iBorro
o TDRE y
I ; Post eri orment e
; i . ncrement o
el
I ;registr"o
rdice H:X.
I
|
65 0O 64 CPHX #TX-B +
;l-h
sido fimlizodo
I
SfZf
;el
buffer circulon?
I
23 03 BLS N0L00P
; Si
no, cont i nue
|
45 00 54 LDHX #TX-B
; de
l o cont rori o
| ;
r ei ni ci e por o
;onroncor
el buffer
|
35 50 N0L00P STHX PTR-OUT
; Guordo
el nuevo
| ;volor
de1 qartodor
|
80 RTI
; Ret orno
de
;
i nt er r upci n
Curso prctico
sobre Mcrocontrotadores
&kr*.,
b
EQU
EqJ
ORG
ma
$6E@
PTR-IN
SC5R1
SCDR
,X+
55 72
86 16
5E 18
CODIGO DE
MAOUII'A
35 52
p
ETIQUETA
SI ZE
SCSRl
SCDR
PIR_JI
MNEMONICO DE
LA OPEBACION
EQU
STHX
RTI
PTR-IN MA
RLB MA
*
Rut i no de i nt er r upci n del
RLITT
6swu
regi st ro recept or de dot os SCI
16'
;Tomoo
del buffer
;
ci r cul or
$16 ;RE.1
de estodo SCI
$18 ;Rsrstro
rqbor SO
570
2
;Muntodor
de dotos
;de
solido de1
;buffer
circulor
Z
;Apuntodor
de dotos
;de
entrodo del
;buffer
circulor
SIZE
;Buffer
circulor
#RLB + SIZE
;Corgo
el opuntodor
;Lecturo
de SCSR1
;corD
porte de1 rset
;l'l.re/e
m ruevo brte
;o
SC1, borro o RDRF
;e
incremento H:X
;Ho
finolizodo el
;buffer
circulor?
;Si
no, continue
;De
10 controrio
;iniciolico
desde el
;ccmienzo
del hffer
;Guordo
el nuevo
;volor
del
euntodor
;Retorno
de 1o
;
interrupcin
P]R-IN
NOLMP
#RLB
?3 03
45Wv
ORG
LDI.fr
LDA
l(}v
cPf
BL5
L}IX
Et nrduto lltA
t,
los tuudas tic. tiltrlc"*lannrlr.tlt0 r=tr [0s tuictCIr.ouulution's G5tiGtli!
Figura 21,25 Ejemplo del modo de direccionamiento directo a ndexado con incremento
Figura 21.26 Ejempll del modo de direccionamiento indexado con ncremento
t^fl[t?,.ff'
ETTQUETA
TXSPHI%?P'E
oIERANDo coMENTARros
A6FF LDA #$FF
; A
=
$FF
B7r0 STA $10 ; L0C $1-0
=
$FF
4EL060 MoV $10, $60 ;LOC $60
=
$FF
5F CLRX ; X
=
cero
+
Comporo el cont eni do del regi st ro A con el cont eni do de 1o
*
posi ci n de memoni o opunt odo por el regi st ro H: X + $50 y sol t o
*
o TGI - cuondo son i guol es
675002 L00PZ CBEQ $50, X+, TG1 ; 0FFSET
DE 8-BI TS
20FB BRA 100P2
; Evol o. l o
prxi mo
;
posrcron
?OFE TG1 BM TG1 rFinolizo
Figura 21.27 Ejenplo del modo de direccionamiento indexado cln offset e ncrementl
ci n del operando, mi entras
que el byte ms bajo se guarda
en X,

l a suma, es l a di rec-
cin condicional del operando.
Este modo de direcciona-
miento se usa con frecuencia para
buscar datos dentro de tablas; la
figura 2I.26 es un segmento de
programa que usa la instruccin
CBEQ (compare y sal te si es
igual, indexada) para ilustrar este
tipo de direccionamiento.
Con l as mi smas i nst rucci o-
nes, CBEQ y MOV, per o
usando el of f i et , se puede
manej ar el modo de di recci o-
nami ent o i ndexado con des-
pl azami ento de 8 bi ts e i ncre-
ment o post eri or. Por medi o
de est as i nst rucci ones de t res
bytes se puede acceder a cual -
qui er operando con posi ci n
vari abl e, e i ncrement ar el re-
gi stro ndi ce despus de cada
operaci n, y de l a mi sma f or-
ma que en el di recci onami en-
to si n offi et,l a di recci n con-
di ci onal del operando se ob-
t i ene de l a suma de l os regi s-
t r os ndi ceHyX.
Este modo de di recci ona-
mi ent o se usa t ambi n para
localzar datos dentro de ta-
bl as; l a fi gura 21.27 es un seg-
mento de programa que usa
l a i nstrucci n CBEQ (compa-
re y sal te si es i gual , i ndexada
y con ofrtt) para i l ustrar este
ti po de di recci onami ento.
L
l
t .
f r
h
P
o
n
e
tf|lt?,ff'
ETTouETA
T|to$P$l%?ott
oeERANDo coMENTARros
A6FF LDA #$FF
; A
=
$FF
8770 STA $10 ; L0C $10
=
$FF
4E7060 MOV $r0, 560 ;LOC $60
=
$FF
5F CLRX ; X
= cer o
*
Compara el cont eni do del negi st ro A con el cont eni do de l o
+
posi ci n de memori o opunt odo por el regi st ro H: X y sol t o o TAG
*
cuondo son i guol es
L00P CBEQ X+, TAG'
; SI N
OFFSET
BRA L00P
; Evol uo_l o
prxi mo
;
posrcl on
TAG CLRX :X
= cero
7r0?
20FC
5F
#
klr"i.
curco prctico sobre Mictocontrotadores
La conexin y comunicacin de un microcontro-
lador con microprocesadores, con dispositivos elec-
trnicos, y con otros microcontroladores de dife-
rente tecnologa y velocidad de procesamiento, se
t . l '
nace gracras a las lnterrupclones.
Por medio de cualquier solicitud de interrupcin, de
origen interno o externo, la CPU detiene temporal-
mente la ejecucin del programa principal mientras
ejecuta el programa de servicio a la interrupcin.
curco prctico sobre Microcontrotadores
&kr
=t
#
LIna caracterstica importante de los micro-
controladores, debida a las interrupciones, es la
flexibilidad en la conexin con dispositivos ex-
ternos de cualquier tecnologla y rango, as como
tambin la facilidad para integrarse con otros sis-
temas de caractersticas diferentes.
Bajo condiciones de operacin normal, la
CPU08 de los microconuoladores ejecuta secuen-
cialmente cada una de las instrucciones del pro-
grama principd; pero, con frecuencia, es necesa-
rio abandonar el programa principal y ejecutar,
un conjunto de instrucciones determinadas y lo-
calizadas en un rea de memoria conocida, en
respuesta a la solicitud de interrupcin hecha
desde uno o varios dispositivos perifricos exter-
nos e internos. Generalmente, la solicitud para
la ejecucin del programa, o rutina de servicio a
la interrupcin,llegar al MCU fuera de sincro-
nizrcin con los tiempos de procesamiento del
cdigo de operacin de la CPU, y su solicitud
deber atenderse en el menor tiempo posible.
En los microcontroladores Motorola con
CPU08 se pueden procesar hasta 128 interrup-
ciones de manera independiente; dentro de stas
se incluyen: las fuentes externas como el RST y
Ia interrupcin IRQI; y las fuentes internas como
las interrupciones por sofiware il.
Casi todas las interrupciones pueden ser en-
mascarables, y solo algunas pocas no, como por
ejemplo el reset. Las enmascarables se manejan
desde el sistema perifrico interno destinado
para tal propsito, por medio del bit que con-
trola la mscara global de las interrupciones
(Bitl), el cual est localizado en la tercera posi-
cin del registro del cdigo de condiciones
(CCR). Todas las interrupciones se habilitan
cuando exe bit est en cero lgico.
Procesamiento de interrupcones en la
CPUOS
Ie solicitud efecruada de parte de cualquier fuente
de interrupcin, excepto el reset, se atiende de
acuerdo con los resultados que se obtienen tras
la ejecucin de una secuencia de cuatro tareas
por parte del mdulo de interrupciones del
MCU; ellas son:
.
Reconocimiento de la fuente de interrupcin
.
Evaluacin del nivel de prioridad
(arbiuaje)
.
Almacenamiento del estado actual del micro-
controlador
.
Bsqueda del vector de la interrupcin
En la figura 22.1 se muestran las tareas que
la CPU08 ejecuta durante el procesamiento de
una interrupcin; en ella se incluyen, adems de
la secuencia de operaciones, los tiempos del bus
interno en que cada una se desarrolla.
ilota:
El reset externo o interno, es la interrupcin prin-
cipal del microcontrolador y se usa para iniciali-
zar los registros principdes; no es enmascarable,
goza del ms alto nivel de prioridad y por este
motivo la atencin a su solicitud de interrupcin
es la ms rpida. Esto se logra porque el mdulo
de interrupciones, al procesar el reset, slo efec-
ta dos de las cuatro tareas que se requieren tfpi-
camente para el procesamiento de las interrup-
ciones generales, que son: el reconocimiento de
la fuente de interrupcin y la bsqueda del vec-
tor correspondiente.
Reconocimiento de la fuente de
interrupcin
En el caso del reset, el reconocimiento no es sin-
crnico con el procesamiento de la CPU, y es
inmediato; mientras que la sdida de este estado
de interrupcin siempre estar sincronizada con
los ciclos de ejecucin del bus interno.
Las dems interrupciones siempre sern re-
conocidas por la CPU08 solamente durante el
ltimo ciclo, de ejecucin de cada instruccin, y
cualquier solicitud de interrupcin que se haga
en este ciclo, ser ignorada, y slo se volver a
considerar hasta el ltimo ciclo de la prxima
instruccin; con lo que queda claro que la CPU08
nunca detiene la ejecucin de una instruccin
!
:
t
t
I
I
I
+
l
#
<tz,
curco prctico sohre,icrocontotadores
rrl
cf,
BIE
NI'MERO DE
ctcLos DEt
BUS ll'lTERt'|O
' Las inlnuocionos
oue odlmn anbs de
eS nb se rcdwl
Figura 2.1 Secuencia de operaciones del procesamento
de una interrupcin
para atender una rutina de interrupcin normal
(solamente
cuando se est usando el mdulo
DMA, ste puede suspender la operacin de una
instruccin en la CPU para atender a un dispo-
sitivo perifrico).
Al reconocer una interrupcin, la CPU08
carga el registro decodificador de instruccio-
nes con el cdigo de operacin asignado por
sortware que le corresponde a dicha interrup-
cin
(SWIx),
en lugar de cargar el cdigo de
operacin de la que debi haber sido la siguien-
te instruccin en el programa. El contador del
programa (PC)
es el otro registro que se altera
cuando se reconoce una interrupcin, a ste se
le resta uno antes de ser guardado en la pila,
ya que, debido al mecanismo de prebsqueda
del cdigo de operacin de la CPU, siempre
est apuntando a la direccin de la prxima
instruccin ms uno.
Evaluacin del nivel de
prioridad
(arbitraje)
Todas las interrupciones de reset por defecto tie-
nen la misma y la ms alta prioridad, por lo tan-
to para ellas la CPU08 no efecta la operacin
de evaluacin del nivel de prioridad, que se lleva
a cabo durante el procesamiento normal de las
otras interrupciones.
Todas las interrupciones que llegan al mi-
crocontrolador simultnearnente, son sometidas
al proceso de evaluacin del nivel de prioridad
en el mdulo del sistema de integracin (SIM),
y ste, se basa en el orden de prioridades de los
vectores que se muestran en la tabla 22.1. Como
resulmdo, el mdulo SIM obtiene un valor cons-
tante que en su momento utiliza para localizar la
direccin efectiva del vector de interrupcin que
debe ser buscado, para poder atender la rutina
de servicio.
Cuando la CPU reconoce una fuente de in-
terrupcin, el correspondiente bit de sealiza-
cin (flag o bandera) del registro de estado lo
indica al ponerse en uno lgico;

el diseador
r Z
+
6

E
EU
=
u
ef i

7
=
F
E
=
r H
=
u
E-
eE
F
6
curco prctico sobre Microcontotadorcs
rr*#
Las I utettu I t :[u ues en lu s Lulu'La ua ntu latiu Lr,.s 0l] tiL'U
del programa es el responsabl e de borrar (o co-
l ocar en cero l gi co) el seal i zador, l uego de ej e-
cutar apropi adamente l a ruti na de servi ci o sol i -
ci tada por l a i nterrupci n.
salir de ella. El orden de apilamiento de los regis-
tros es: primero el contador PC, luego el ndice X,
el acumulador A, y el registro CCR; mientras que
el orden de recuperacin de los registros de la pila,
de acuerdo con su estructura LIFO
(Lcut
In First
Out), es al contrario: primero el CCR, y despus,en
orden, los registros A, X, y PC.
En la figura 22.2 se muestran las secuencias
de apilamiento y descarga de los registros de la
pila, tal como la CPU08 las ejecuta antes y des-
pus de atender cual qui er i nterrupci n.
La nica interrupcin que no es enmascarable
es el reset, las dems interrupciones pueden ser
habilitadas e inhabilitadas por medio deI bit que
controla la mscara global de las interrupciones
(Bi tl ),l ocal i zado
en el regi stro CCR; o por me-
dio de los bits de las mscaras individuales de los
registros de control de los perifricos.
I
i nt er
bi t I
l t i n
COl i i
defi n
ci n.
t r an,
ci n
FFFE
FFFC
FFFA
:
FFOz
FFOO
Reset
SWI
rRE0[0]
rREo[124]
rREO[125]
1;
2
3;
:
:
127
128
Tahla 22.1 Tabla de niveles de prioridad de los vectores de las
interrupciones de la CPU08
Para preservar el estado del MCU despus de retor-
nar de una rutina de servicio de interrupcin, la
CPU08 almacena en la pila los principales registros
antes de atender la interrupcin, y los descarga al
Orden de
descarga
I
I
I

1
2
3
4
5
a
a
REGISIRO DEL CDIGO DE CONDICIONES CCR
REGISTRO ACUMULADOR A
REGISTRO ITIOIC X
(
BYTE BAJO)-
REGISTRO C0N[AD0R DE PROGMVIA
AT0
PCtl
REGISIRO CONIADOR DE PROGMVIA, BAJO PCL
PARr
Apilr
Para
HCO{
nes.
sal i r
Usan
el co
se i l r
5
4
3
2
1
Orden de
;
api l ami ent oi
l i
L
--_- -*i
$OOFF
, .o
(
Figura 22.2 )rden de apilamiento y descarga de los registros principele en la pila
rdb @<t"}.
curso prctico sobre Microcontrotadores
\ \ . , /
Direccin por
defecto del reset
-
El byte alto del registro ndice H no se apila
Para permi ti r l a ej ecuci n ani dada de l as
i nterrupci ones en espera, l a modi fi caci n del
bi t I se efecta al menos un ci cl o ntes del
l t i mo ci cl o de l a i nst rucci n u operaci n,
con esto se garanti za que su estado est ya
defi ni do antes de ej ecutar l a prxi ma i nstruc-
ci n. En l os t res ej empl os si gui ent es se i l us-
tran casos tpi cos de reconoci mi ento y ej ecu-
ci n de i nt errupci ones.
: :,,:.:r.nr..:
TOfi.,;,
;,.,,'it$,;t}-$$._..W.
i:.
Como pri mer ej empl o, en l a fi gura 22.3
se muestra que, si l a i nterrupci n se reconoce
durante l a ej ecuci n de l a i nstrucci n CLI, l a
CPU08 sal tar a ej ecutar l a ruti na de servi ci o
de la interrupcin, y al terminar, regresar al
programa pri nci pal a ej ecutar l a si gui ente i ns-
trucci n LDA.
En el segundo ejemplo, de la figura 22.4, se
muestra la eiecucin anidada de dos
rutinas de servicio de interrupciones
INT1 e INT2; en este caso las solici-
tudes de interrupcin pueden llegar
al mi smo t i empo, o l a segunda
(INT2) llegar durante la ejecucin de
la primera
(INTI). En cualquier caso
la interrupcin INT2 ser atendida
solamente al terminar la rutina de ser-
vicio de la primera.
,l
l
l
Programa
principal
I NT1:
Rutina de servicio
de la interrupcin
Tambin es importanre ano-
tar que, durante cada i nstrucci n
Figura22.SEiecucindeintenupciones
de retorno RTI, la CPUQ8 busca
PARA SABER MS:
Apilamiento compatble
Para mantener la compatibilidad de los
programas
con lafamilia de MCU 68HC05, la CPU de lafamilia
HC08 no apila el contenido del registro ndice alto H durante el
proceso
de atencin a las interrupcio-
nes, y por lo tanto, el
programador no debe olvidarse de
guardar y recuperar este registro al entrar y
salir respectivamente de la rutina de servicio de la
interrupcin.
Usando las instrucciones PSHH y PULH
para
el manejo del rea de la pila,
se
puede
apilar
y
descargar
el contenido del registro H para preservarlo durante el acceso a una rutina de interrupcin, tal como
se ilustra en el siguiente segmento de cdigo,
IRQINT
;
Se guarda en la pila el contenido del registro H
RUTINA DE SERVICIO
A LA INTERRUPCIN
PSHH
puLH
RTI
;
Se descarga de la pila
el contenido del registro H
;
Retorna al
programa principal
curso prctico sobre Microcontrotadores
&rtr'r.#
I
Las I n,'ttu
r
ulu nc's utr lo s t r t:t u uru nil u latiu t r,.s GU ttt'0 ii
Figura 22.4 Ejecucin anidada de intenupciones en espera
l a di recci n de l a si gui ente i nstrucci n del
programa pri nci pal
(LDA), aunque en el caso
del ret orno de l a I NTI . sl o es una acci n
redundante.
El tercer ej empl o, de l a fi gura 22.5, nos
muestra que, si una fuente de interrupcin se
detecta durante la ejecucin de la instruccin
CLI, sta ser atendida antes de colocar en uno
lgico el bitl del registro CCR, e inhabilitar o
poner la mscara sobre todas las interrupciones.
-l
I
Al terminar la ejecucin de la ru-
l-
erogrura
tina de servicio de la interrupcir:
'
I
prNtpi
y an dentro de sta, se debe ubr-
I
car la instruccin de rerorno de in-
I
terrupcin RTI; sta se encarga de
finalizar la ejecucin de la rutin
de servi ci o y devol ver el apunta-
! Ml . ^, ^
dor de programa al progran: "
HUna 0e
i rui o"i e l u
pri nci pal , para conti nuar con 1",
i ntenupci n
tareas i nterrumpi das.
Est a i nst rucci n t ambi n se
encarga de ordenar las operaciones
de apilamiento y descarga de todos
S]3'^ ,^
los registros funamental"es para que
Hul l naoe
, , , un
servio e la
el MCU reanude la ejecucin de-
PSHH
PULH
RTI
(
I
cLl
sEl
i ntenupci n programapri nci pal ,exactamentee:
el lugar interrumpido, y con las con-
diciones que traa Ia CPU. Adicio-
nalmente borra el bit de control de
todas las interrupciones, y las habilita cada vez
que descarga el registro CCR de la pila.
El mdulo de interrupcin externa IRQ, mane-
ja y nos permite controlar la operacin de sta
por medio de sus registros. Este mdulo com-
pleto se muestra en el diagrama de bloques de la
frgara22.6;y las caractersticas con las que cuen-
ta en l os MCU de l a fami l i a HC08, son:
.
l Jn pi n de entrada externa para l a i nterrup-
ci n IRQl
.
Bits de control para la entrada IRQI
.
lJn b"ffi, de entrada con histresis
.
Entrada con sensibilidad programable por
flanco, o por flanco y nivel
.
Reconocimiento automtico
.
Selector programable de resistencia interna
de pull-up
Al aplicar una seal con nivel bajo (un
cero
lgico) en el pin IRQ1 del microconrrolador, se
activa la solicitud de servicio de la interrupcin
externa en la CPU y se almacena en el ltch IRQ1.
PSHH
:
PULH
RTI
I NT1:
Rutina de
servicio de la
intenupcin
q
Figura 22.5 Ejecucin y reconociniento de la intenupcin durante la
ejecucin de una instruccin
$r:fu&kr*LcurcoprcticosobreMicrocontrotadores
\d
Figura 22,6 Diagrama de bloques del mdulo de intenupcin externa lRl
L| : UL L.
LJna vez reconocida la interrup-
cin, el htch permanecer en
uno hasta que ocurra alguna de
las siguientes operaciones:
1. La bsqueda de un vector: el
reconocimiento de otra so-
licitud de interrupcin ori-
' t l l , i
ginar Ia bsqueda del vec-
tor correspondiente, y du-
rante este ciclo, el ktchIRQ
ser borrado.
Un borrado por sofiutare ste
puede usarse para borrar el
estado memorizado de la in-
terrupcin, si se accede el bit
de reconocimiento (ACKI)
que hace parte del registro de
estado y control de la inte-
rrupcin INTSCR. Al escri-
bir un uno lgico en ste, se
borrael htch IRQI.
La ejecucin deun resef, esta
operaci n ti ene dentro de
sus tareas el borrado del la-
tch de la interrupcin ex-
terna IRQI.
El pin de entrada tnqt r.
inactiva si se coloca en nivel
lgico uno, y si previamente
se ha configurado su sensi-
bi l i dad por ni vel ; baj o esta
condicin, el latchlPtQl ser
borrado.
La entrada de la interrupcin ex-
t.r.r"IilQl es activa en nivel bajo,
y por defecto responde a los flan-
cos de bajada. Sin embargo, por
medio del bit de control del modo
de disparo MODEI, propio del
7i Y
@o
xe
. ! o
O
E
- Q
( - ) O
. =o
o' -
6
E
2.
3.
4.
="3
; d!
- F=
3Eq
c' -
l0 stNotccluto t0 oNUlrNt sn8
curso pretico sobre Microconttotadorcs
&iUrr't
#
registro INTSCR se puede programar la sensibili-
dad del disparo'en dicha entrada; este modo puede
configurarse en una de dos formas: pra el disparo
por flanco de bajada solamente, o para el disparo
por flanco de bajada y nivel bajo.
Cuando el disparo del pin de interrupcin se
configura por flanco de bajada solamente, la solici-
tud de interrupcin en la CPU se mantiene activa
hasta que ocurre la busqueda de un vector, o un
borrado por softutare, , la ejecucin de vn reset.
Pero, cuando se haya configurado el disparo de
la interrupcin por flanco de bajada y nivel bajo,
la solicitud de interrupcin en la CPU se man-
tendr activa hasta que ocurra la bsqueda de un
vector, o un borrado por sortware, o la ejecucin
de un reset, , el pin de la interrupcin regrese a
su condicin inactiva (uno lgico).
Registro de estado
y
control de la
interrupcin lR0 (lNT$tR)
En la figura 22.7 se muestra el registro de estado
y control de la interrupcin IRQ, llamado INTS-
CR. Por medio de este registro se controla y su-
pervisa la operacin del mdulo de interrupcin
externa IRQ; a travs de l se pueden desarrollar
las siguientes funciones:
1. Se vigila la bandera de estado de la interrup-
cin IRQFI
2. Se borra el ktch IRQI de la interrupcin
3. Se enmascara o se inhibe el servicio a la
interrupcin
4. Se controla la sensibilidad del disparo del pin
de interrupcin FQt
Los bitsde control y estado .., .l ,.girt-
INTSCR estn definidos como sigue:
Direccin
$0010
Nombre de regstro
Lectra:
Regiso de eshdo y corrfol
de la interrupcin lRO Escritura:
(ITSCR)
Beset
IR(J['i . es el bit de la bandera de esado de la inte-
rrupcin IRQI, es de slo lecrra, y nos informa el
esado de las socitudes de intemrpcin pendientes.
Con l, indica que la solicitud de interrupcin
IRQ1 est pendiente.
Con 0, indica que no hay solicitud de interru
cin IRQI pendiente.
A(-K I : es el bit de reconocimiento de solicitud
de la interrupcin IRQI, es de slo escrirura, y
nos permite borrar el latch de la interrupcin.
Este bitinterruptor se usa con frecuencia en eje-
cuciones anidadas que requieren borrar el latch
IRQ por sortware. El ciclo de reset siempre lo
POne
en cero.
Con 1, se borra ,t toirt de IRQ.
IMASKI : a el bitde mscara de la interrupcin
IRQ 1; es de lectura y escritura, y nos permite habi-
litarla o inhabiliarla. Luego del resa se borra.
Con l, se inhabilita o enmascarala solicitud
de interrupcin de IRQ1.
Con 0, se habilita la solicitud de interrupcin
de IRQI.
\'lODEl : es el bit de modo de disparo
que
ma-
neja la sensibilidad de la interrupcin IRQI, es
de lectura y escritura, y nos permite configurar
la sensibilidad del pin de interrupcin tRQi. nl
reset lo borra.
Con 1, se activa la solicitud de interrupcin por
medio de un flanco de bajada y un nivel bajo.
Con 0, se activa la solicitud de
jnterrupcin
so-
lamente por medio del flanco de bajada.
BitT 6
00
Sn establecer
Figura 2L7 Registro de estado y control de la intenupcin nA
WTSCR)
0
I
,
l
#
rr
curso prctico sobre *icroconfrotadores
rf
Los
dad
te la
tale
yL\
la ar
la c<
El r
maf
ded
rrul
d"t
Los mdulos especiales, que vigilan la ejecucin apropia-
da del sofiware del microcontrolador y lo protegen duran-
te las condiciones anormales del voltaje de alimentacin,
tales como los mdulos COP
(computer
operating properly)
y LVI (low
uobage inhibit), se han incorporado dentro de
la arquitectura de los microcontroladores para aumentar
la confiabilidad de estos circuitos integrados.
El mdulo que maneja las interrupciones dedicadas al
manejo de teclados, y que facilita para el usuario la tarea
de decodificar matrices de teclas, es el KBI
(keyboard
inte-
rrupt module); y es otra herramienta de mucho uso, ofreci-
da por esta familia de microcontroladores.
Curco prctico sobre Miuocontrotadores
&kt": #
\fl
Lus urriutus es1:eelule.s tiel b't!ti00i!: C0tr, LVt, tGt
Bajo el mismo concepto operativo del perro guar-
din (watchdog)
que se ha venido incorporando
en todas las arquitecturas modernas de los mi-
croprocesadores (MPU)
y los microconrrolado-
res
(MCU)
de ot ros f abri cant es, l a f ami l i a
68HC08 de Motorola nos ofrece un mdulo que
forma parte de la arquitectura de estos MCU, y
que es el encargado de facilitar al programador
la tarea de vigilar que la ejecucin del programa
residente en la memoria del dispositivo sea efec-
tuada en forma cclica y sin interrupciones.
El mdulo de operacin apropiado de la com-
putadora (COP), ha sido diseado con un conra-
dor de carrera libre que se encarga de generar una
seal de resetinterna en la CPU08, cada que se
desborda su capacidad de conteo. EL COP ayuda
aJ, sortware a recuperar su flujo normal cada vez
SI M
2OSCOUT
que el registro conrador del programa PC se altera
y el orden de ejecucin del programa se pierde.
ocasionando un comportamiento errado o ines-
perado del MCU. Dentro de las principales y mrs
frecuentes causas que pueden hacer que la secuen-
cia de ejecucin de una rutina o programa se salga
de su curso, se encuentran las siguientes:
.
Diseo de algoritmos incorrecros
.
Vectorizacin inapropiada
.
Ejecucin de instrucciones de salto fuera de rango
.
Alteracin de registros y banderas por ruido
elctrico inducido
.
Modificacin de registros durante la conexin
y desconexin de la alimentacin
Para evitar que el temporizador asociado al
mdulo COP, genere un ciclo de reset, se debe
borrar peridicamenre y antes de su desborda-
mi ento; esto se debe hacer en uno o vari os l u-
FUENTES INTERNAS
DE RESET
BSOUEDA DE UN
VECTOR DE RESET
ESCRITURA
DEL COPCTL
MDULO cOP
COPEN (Desde SIM)
C0PD (Desde CONF|G1)
RESET
Escritura del C0PCTL
Selector de rango del
COP (COPRS del
c0NFrGl
)
RELOJ DEL COP
J
U
z.
U
o
co
u
o
gares
t ruca
este i
rizad
su bc
ti ca :
En I:
ques
en el
UfI ti
cont
i ntes
rra p
dar
zact(
2a ct
depe
rem
regis
oPCr
del r
ri od
Por
mc
i ni ci
i -P
rrar
bi ts'
vari i
ma.
borc
Enl
i nt e
CPI
20
CO
PO
dac
l i t a<
l ect
CONTADOR DEL COP DE 6 8/IS
U
J- '
.
co
J
a
o
F
.
cc
co
CONTADOR DEL COP
#
&kn.i.
curco prctico
sobre Microcontroradorcs
Figura 23.1 Diagrama de bloques del mdulo COP
gares estratgicol del programa insertando ins-
trucciones que coloquen en ceros el registro de
este temporizador. La caracterlstica del rempo-
rizador de carrera libre garantiza que, luego de
su borrado, la temporizacin de forma autom-
tica se inicia nuevamenre.
En la figura 23.I semuesrra la estrucrura en blo-
ques simplificada del mdulo de vigilancia COB
en ella se puede observar que su contador posee
un registro de 6 bits, y que esta precedido por el
contador de 12 bits del mdulo del sistema de
integracin (SIM).
Si el programador no lo bo-
rra por sofiware, el contador del COP se desbor-
dary activarun ciclo de reset fuera de sincroni-
zacin despus de haber ejecutado 2r, - 24, o 2t3 -
2a ciclos de reloj de la seal 2OSCOUT y esro
depende del estado del bit selecror de rango del
temporizador (COPRS),
que se encuentra en el
registro de configuracin nmero uno.
Cuando el programador ha seleccionado la
opcin de desbordamiento a los 21s - 2a ciclos
del reloj 2OSCOUT se obtendr el miximo pe-
riodo de temporizacin, lo cual significa que,
por ejemplo, si usamos un cristal de 8MHz, el
mdulo generar un reset cada 32,766ms. Para
inicializar de nuevo el temporizador del COP e
impedir la ejecucin del reset, es necesario bo-
rrar los registros de los contadores del COP (6
bits) y del SIM (12
bits) por medio de una o
varias instrucciones ubicadas dentro del progra-
ma, antes de que se cump.la el tiempo de des-
bordamiento programado.
t -
. r: i l ' t l *i , : : ;
, -! i ' , :
r' dr, i t ' , ' ; i , ""'
En la figura 23.1pueden verse las seales que
intervienen en el mdulo COP de la
CPU08; stas son: la entrada de reloj
2OSCOUT, l a ent r ada de escr i t ur a
COPCTL, la seal de reset a la conexin
POR, el resetinterno, la seal de bsque-
da del vector de reset,la seal de inhabi-
litacin del COP (COPD),
y la seal se-
lectora del rango del COP.
Esta seal es la salida del mdulo oscilador del
MCU, y su frecuencia es igual a la del cristal de
cuarzn elegido, o a la de la red RC establecida.
Por medio de este registro se pueden borrar los
contadores de los mdulos COP y SIM que
intervienen en el temporizador devigilanciadel
programa; para ello solamente se requiere escri-
bir un valor cualquiera en el regisuo COPCTL,
usando alguna de las instrucciones de escritura
que forman parte del conjunto de instruccio-
nes del microcontrolador.
En la figura 23.2 semuestra el registro de con-
trol del mdulo COP (COPCTL);
sre se en-
cuentra localizado en la posicin de memoria
$FFFF, y se sobreescribe en la parte baja del
vector del reset. La escritura de un nuevo va-
lor en esre regisrro determina el inicio de un
nuevo periodo de vigilancia por parre del tem-
porizador del COP.
En cualquier caso, la lecna del regisrro COPCTL
obligar a la CPU a devolver al programador el
contenido de la parte ms baja (el
hyte menos
significativo) del vector del res, que tambin
est ubicado en la posicin
$FEFF
| . t i . t . "
' , t .
i , i l r ! , i , , ; ,
i {
"; i t
Dentro del mdulo SIM se encuentra el cir-
cuito que sopofta el reset alaconexin (Power-
On Reset, POR); en este caso, l se ocupa de
generar una seal que borra el contador del
SIM al anscurrir 4.096 periodos de la seal
2OSCOUT )uego de haber conecado )a dj-
mentacin del MCU.
Direccin:
$FFFF
BitT
Lectura:
Escritura:
Beset
No es afectado
Figun 23,2 Registo de controtdet moduto Clp (CI?CTL)
curco prctico
sobre Miuocontotadores
&tn#
Lus nrtiulus eqlcciales delb't!liG0ti: G0P, LUty lGt
Los dos contadores que intervienen en el tiem-
po de vigilancia del COB son borrados tras el
reconocimiento y la ejecucin de cualquier ci-
clo de resetinterno.
Cuando la direccin de un vector de reset se
coloca en el bus de direcciones, se inicia un
ciclo de bsqueda del vector y con ste se bo-
rrar el contador del SIM.
La entrada COPD es un reflejo del estado del
bit0 delregistro de configuracin nmero uno
(CONFIG I
),
llamado tambin COPD, y por
medio del cual se inhabilita la operacin del
temporizador del COP.
Por medio de esta entrada del mdulo COP
se determina el rango de los contadores, lo
cual, de la mano con la frecuencia de ope-
racin, nos permite definir el mximo pe-
riodo para el temporizador vigilanrc. El bit
7 del registro CONFIGI es el selector de
rango del COB llamado COPRS; y su esta-
do se informa al mdulo COP a travs de
esta entrada.
En la figura 23.3 se presenta el registro
de conf i gur aci n nmer o uno
( CON-
FI GI ) de l a CPU08, y se descr i ben l as
funciones de los dos bits que se involu-
cran en el f unci onami ent o del mdul o
COP, COPRS y COPD.
Direccin: $ffilF
B t 7654321
Lectura:
Escritura:
Beset
00
Reservad
Figura 23.3 Primer registro de configuracin (C1NFlGl)
0
E
es el bit selector del rango del periodo
del temporizador, y tras la ejecucin de un ciclo
de reset ser borrado.
Conl lgico: el periodo programado ser(213 - 2a)
X 2OSCOUT ciclos.
Con 0 lgico: el periodo programado ser
(218
- 2a)
X 2OSCOUT ciclos.
es el bit que nos permite habilitar o inha-
bilitar el mdulo COB y su estado ser colocado
en cero luego de la ejecucin de un ciclo de reset.
Con 1 lgico: el mdulo COP ser inhabilitado.
Con 0lgico: el mdulo COP ser habilitado.
Finalmente, vale la pena anotar el compor-
tamiento del mdulo COP durante algunos de
los estados de operacin ms importantes del
microcontrolador. En el modo monitor y en el
modo de interrupcin (BREAK), el COP es au-
tomticamente inhabilitado cuando el pin IRQ1
RS-T es puesto en un nivel de voltaje igual a
Voo * V",. Sin embargo, no ocurre lo mismo
durante el estado de espera del MCU (modo
\IAIT); en este estado el COP no se detiene y
debe usarse una rutina de interrupcin para bo-
rrar peridicarnente su contador.
En el otro modo de operacin de bajo con-
sumo, conocido como estado de paro del MCU
(modo
STOP), el contador del SIM se borra y la
seal de entrada de reloj del mdulo COP (2OS-
COUD se desconecta.
Cuando elvoltaje de alimenacin cae abrup-
tarnente, o el microcontrolador se somete a
conexiones y desconexiones rpidas, es pro-
bable que los datos de registros y banderas
de estado resulten alterados; esto sucede
cuando la CPU08 pierde la alimentacin
durante el transcurso del proceso de ejecu-
cin de cienas instrucciones, que involucran
el movimiento de datos dentro del MCU.
BtO
#
irrrn
curco prctico sobre Microcontotadores
(
conu
mon
sente
Iador
volta
el inl
pued
rio,
-
ser ta
I
bloqu
este n
de ref
pales,
puedr
voltaj
1l
I
inhib
micrc
d cu
mien
dulo
direcl
Toda
ciont
voo
V>LVI Tp=0
V 93LVl T p=1
Con el propsito de evitar esto, los micro-
controladores 68HC08 poseen un mdulo que
monitorea continuamente el nivel devoltaje pre-
sente en el pin de alimentacin del microconrro-
lador Voo, y genera un ciclo de reset cuando el
voltaje cre por debajo del umbrd definido para
el inhibidor (LW
tip uobag). El circuito LVI
puede ser habilitado o inhabilitado por el usua-
rio, y el umbral de voltaje del inhibidor puede
ser tambin seleccionado por el programador.
En la figura 23.4 se muesrra el diagrama en
bloques de la estrucnua del circuito del mdulo LM,
este modulo contiene un circuito especid (bandgap)
de referencia y un comparador, como partes princi-
pdes, y por medio de el bit de conuol LMD se
puede habiliar o inhabiliar el circuito detector de
volaje de dimenacin bajo, cuando se coloca en 0
I lgico, respectivamente.
Por medio delos bit deseleccin del volaje de
inhibicin el programador le define a la CPU del
microcontrolador cual ser el nivel de volaje
al cual se proteger, y generar la senl de rcset,
mientras que para acrivar el cido de tesa el m-
dulo LM tiene la salida LVI resd qtrc afecra
direcamente ala CPU.
Hgun Zl,4 Diagnmade blques del
mdulo inhibidor por voltrje bajo LW
Con I lgico: el mdulo LM se inhabilita.
Con 0lgico: el mdulo LVI se habilita.
LVI REsEr
FIGl, se encuentraen laposicin del bit4,y
es el interruptor de habilitacin del inhibi-
dor por voltaje bajo. Su condicin siempre
ser cero luego del reset.
estos dos bits pertenecen al re-
gistro CONFIG2, y por medio de ellos se puede
programar el umbral de disparo del voltaje del
mdulo inhibidor (LW
trip aobag). Por medio
de un ciclo normal de resetsuestado no ser afec-
tado; sin embargo, cuando el reset es generado
por el PO& ambos bits son bonados.
En la tabla 23.I se muesrran las opciones
de seleccin que pueden elegirse por medio de
estos dos irs.
i ' ! i . t
Como una heramiena de gran utidad para el pro-
gramador, y teniendo en cuenta el uso frecuente de
los microcontroladores en las interFaces de teclados
mauicides, los MCU de CIta familia induyen un
conjunto de siete intemrpciones ercemas que pue-
den ser enmascarables y esdn accesibles a uav6 de
los siete primeros pines del pueno A (PIAO
a PIA@.
los registros CONFIG 1 y CONFIG 2; a con-
tinuacin se describirn los bits que intervie-
nen en 1. En la figura 23.3 se muestra el re-
gistro CONFIGI, mientras que en la figura
23.5 sepuede apreciar el registro CONFIG2.
I
esre bit penenece d registro CON-
oof ooo
0 0 0
""-6
:i,r*fi..;
:' ;r$i{l"T;,S.1-
Direccin: $ffilE
Bt7
Lectura:
Escritura:
Beset 0
POR: 0
. . :
i . I
Todas las acciones de control sobre las fun-
ciones del mdulo LVI se efectan desde
Inurrr.oo
Flgun 23,5 Segundo registro de configuracin (C1N1G2)
cutso prco
sobre Mtcocottbotadorcs
&t;#
Lus urtlulus esreeiales detGtiG0l!: C0tr, LVt' tiBl
i
I
LVrTl
Voltaje de
di sparo
-T
LV|T0
|
Comentarios
ners(
l i ci t t
t erru
st a
ot ras
C2fI
l ecci
Pues
recoi
sus
F
El re
nes
I
habi.
to d,
tipo
sus
inter
CR.
de Ic
solic
dien
l o bc
Con
cin
Con
rruP
rruP
Di recc
Lect
Escri' l
Bt
Las pri nci pal es caractersti cas del mdul o
KBI son :
1. Posee siete interrupciones activas en nivel bajo,
con entradas enmascarables independiente-
mente y tambin de manera global.
2. Ti ene confi guraci n por sofi ware de l as re-
si stenci as de pul l -up en cada entrada de i n-
terrupci n.
3. El nivel de sensibilidad del disparo de la inte-
rrupcin puede ser seleccionado por flanco
solamente, o por flanco y nivel.
Figura 23,6 Diagrama en bloques del mdulo de intenupciones
para teclado KBI
AL HABILITADOR PULL UP
KB16
ALHABILITADOR PULLUP
En la figura 23.6 se ha representado de
manera simple el circuito que consrituye
el mdulo KBI; all se muesrra que por
medio de los bitsKBIExdel registro habi-
litador de las interrupciones para teclado
(KBIER),
se habilitan o inhabilitan inde-
pendientemente cada una de las entradas
del puerto A disponibles como interrup-
ciones para teclado. Al habilitar alguna de
estas entradas de interrupcin, tambin se
habilita la resistenci a pull-up que le corresponde
independientemente del estado delos bits del re-
gistro de control de las resistencias del puerto A
(PTAPUEx).
Cuando una entrada de interrupcin para
teclado es habilitada, y recibe un cero lgico por
el correspondiente pin, inmediatamente se me-
moriza e inicia un proceso de reconocimiento y
solicitud de interrupcin, y el modo de funcio-
namiento del KBI define que cada vez que uno o
ms de sus pines de entrada se ponen en cero,
luego de haber estado todos en nivel alto, se me-
morizar una interrupcin por teclado.
0
1
0
1
0
0
1
1
Vy6 (2,aV)
Vyp3 (2,4V)
Vyq5 (4,0V)
Reservado
Para
Para
Para
vDD
=
3v
4. Todas l as entradas de i nterrupci n para te-
cl ado represenran un medi o i ftr rp"r" r"-
.
L? sensi bi l i dad al di sparo de l a i nterrup-
.",
"l
-i crocontrol ador
de cual qui ei a de l os
ci n del tecl ado que se haya programado en el
estados de bai o consumo STOp
v
\WAIT.
respecti vo bi t de control (MODEK)
debe te-
BUS II'ITERNO
Tabla 8.1 Tabla de seleccin del umbnlde volbie de inhibicin del mdulo LW
. &' ^{
St& &rctf;.
curco prctico sobre Microcontrotadores
&d
nerse en cuenta para evitar perder algunas so-
licitudes de interrupcin, ya que cuando la in-
terrupcin solo obedece al flanco de bajada,
sta puede ser bloqueada por cualquiera de las
otras entradas de interrupcin que permanez-
can en cero. Esto no sucede cuando se ha se-
leccionado el disparo por flanco y nivel bajo,
pues bajo esta condicin la interrupcin ser
reconocida tan pronto como cualesquiera de
sus pines se coloque en cero.
Registro de estado
y
control del
mdulo KBI
{KBSCB}
El registro de estado y control de las interrupcio-
nes para teclado llamado KBSCR" se usa para
habilitar el reconocimiento y el enmascaramien-
to de tales interrupciones, y para configurar el
tipo de sensibilidad al disparo. Tambin uno de
sus i se usa como sealizador de la solicitud de
interrupciones.
En la figura 23.7 semuestra el registro KBS-
CR, y a continuacin se describen las funciones
de los bits que hacen parte del mdulo KBI.
K l.\'l): Es el bitbartdera que sediza el estado de
solicitud de una interrupcin por teclado pen-
diente en el puerto A. Es de slo lectura,y el reset
lo borra.
Con I lgico: el bitindica,que hay una interup-
cin por teclado pendiente.
Con 0lgico: el bitindica, que no hay una inte-
rrupcin por teclado pendiente.
r\(,KK: es el bit de reconocimiento de la inte-
rrupcin por teclado y es de slo escritura.
Dlroccln 001A
Bt7 6
Locfura:
Escrlra:
Beset
Al escribir un I lgico en este ise borran todas
las solicitudes de interrupcin por teclado pen-
dientes en el puerto A, y por medio del ciclo de
reset es puesto en cero lgico.
ll\{ASIIK: es el bit de enmascaramiento de to-
das las interrupciones del mdulo KBI, puede
ser escrito o ledo, y por medio del ciclo de reset
ser borrado.
Con I lgico: se enmascaran o inhabilitan todas
las interrupciones del mdulo KBI.
Con 0 lgico: se habilitan todas las interrupcio-
nes para teclado del KBI.
MOt)lrK: es el bit que conuola la sensibilidad
del disparo de las intenupciones del KBI en los
pines del puerto A, por medio del ciclo de reset se
coloc en cero, y puede ser de lectura y escritura.
Con I lgico: se actira la sensibidad de tas intemrp
ciones por flanco de bajada y nivel de volaje bajo.
Con 0 lgico: se sensibiliza la solicitud de interrup-
ciones por medio del flanco de bajada solamente.
Registro habilitador de las
interrupciones del mdulo KBI (KBlEn)
Este registro se usa para habilitar o inhabilitar de
manera individual cada una de las interrupcio-
nes en los pines dgl puerto A, que forman parte
del mdulo KBI. En lagura23.8 se muestra el
registro de habilitacin KBIER y enseguida se
describen las funciones de los bits quehacen par-
te del mdulo KBI.
KBI[,(r a KBIEOT con cada uno de estos i se
pueden habilitar o no los pines del puerto A, que
se asocian con cada una de las entradas de
interrupcin para teclado. Todos son de lec-
Bo
tura y escritura, y por medio de un ciclo
de reset sern borrados para inhabilitar las
entradas KBI, y habilitar el registro del
-
Puerto
A.
Con 1 lgico: cada uno de los bits de con-
trol KBIx habilitan el correspondiente pin
lsin
estabtecer
frgun 23.7 Registo de eshdo y control del modulo KBI (KBSCR)
cur", prcm sbrc Mlctwttfrotadoes
&n;#
-1
0000000
Sn establecer
Hgun 23.8 Registo habilibdor de las intenupciones del nodulo KBI (KBIER)
en el puerto A como una entrada de interrup-
cin para teclado.
Con 0 lgico: cada uno de los bits de control
KBIx inhabilitan el correspondiente pin en el
puerto A como una entrada de interrupcin para
teclado, y lo definen como un puerto de prop-
sito general
(puerto A).
Nota:
La programacin
de una entrada de in-
terrupcin para
teclado, no evta
que
deba ser configurada como una entrada.
Cuando el programador pone en uno
lgico cualesquiera de los bits de habi-
litacin de la interrupcin para teclado
KBIEx, obliga a que el pin del puerto
de la interrupcin correspondiente sea
configurado por la CPU08 como una
entrada; sin embargo, es importante re-
cordarle al usuario que para leer dicho
pin no debe olvidar poner en cero l-
gico, por medio de sortware, el corres-
pondiente bit del registro de direccin
de datos del puerto A (DDRA).
PARA SABER MS:
lnicializacin de las entradas del mdulo KBI
Cuando se habilita un pin de interrupcin
para
teclado, le toma algo de tiempo alcanzar el uno
lgico en virtud de la conexin de su resistencia internade pull-up, y
durante este breve
periodo
de tiempo, la CPU08
puede recibir falsas seales de intenupcin. Para evitar
que
se produzcan
interrupciones falsas durante la inicializacin del mdulo KBl, los intenuptores de los registros de
estado
y
control KBSCR y KBIER se deben activar de acuerdo con los siguientes
pasos:
PAS0 1. Use el ffIMASKK
para
enmascarar todas las intenupciones de teclado,
colquelo en uno lgico.
PASO 2. Use los lfs adecuados KBIEx para habilitar de manera independiente los
pines
de las entradas de interrupcin elegidas para
teclado.
PASO 3. Bone cualquier solicitud de interrupcin falsa
y pendiente por
medio del bit
ACKK, alcolocarlo en uno lgico
PASO 4. Bone el ffIMASKK
para habilitar todas las intenupciones por teclado
que hayan sido elegidas.
Una vez habilitadas las intenupciones, aquella
que se presente
en un
pin
sensible al flanco de
bajada solamente ser reconocida de inmediato;
pero,
cuando llege a una entrada sensible al
flanco
y
al nivel bajo, el reconocimiento de la interrupcin se har luego de un tiempo de retraso
que ser funcin del tipo de carga externa all presente.
Otra forma de evitar intenupciones falsas, consiste en configurar los pines
del teclado como
salidas,
por medio de los ifs adecuados del registro de direccin de datos del
puerto
A (DDRA),
antes de habilitar las entradas de interrupcin
para
el teclado por medio de los fs KBlEx.
e
$t
't* ;
\;
q
i
-_
;
La
sar
en
tar
vo!
do
de
EI
M,
be
reI
Lus urtiulus esllcclalcs tlet0t![i0Ut!: C0ti LVtt' tGt
Direccin: $0018
Bn7 6 5 4 3 2 1 Bt t j
Lectura:
Escritura:
neset
-
,t lrx
-
a
st& &lKt'.L
curco prcco sobre Microcontroladores
&d
"'
J
fci
n
' I
H
i#
. s
i:r-:
J:*i
,isl.i
-w
ffi
&
La capacidad del microcontrolador para recibir y proce-
sar seales anlogas, que pueden asumir cualquier valor
en el tiempo a travs de los ADC, ha sido muy impor-
tante porque ampli la gama de usos de estos dispositi-
vos dentro de la industria y la investigacin, permitin-
doles introducirse con granfuerza en el delicado campo
de la instrumentacin electrnica.
El SIM es un mdulo que en los microcontroladores de
Motorola coordina y vigila todas las actividades que de-
ben llevarse a cabo desde la CPu, as como el ingreso y
retorno adecuado de los modos de operacin especiales.
curco prctico sobre Microcontrotadores
&ktZt
#
El. nrculo cuuveulduL'rl.l] r,LD) t, eL SLLtt
qel
GLt0
Para todos aquellos usos del microcontrolador,
en el campo de las medidas, la supervisin, y la
instrumentacin de variables fsicas con compor-
tamiento analgico (seales que pueden asumir
infinitos valores en el tiempo), que son muy fre-
cuentes, los MCU de la familia HC08 de Moto-
rola han incluido dentro de su arquitectura una
herramienta fundamental para convertirlas en
seales digitales (seales
que slo asumen valores
discretos en el tiempo): el mdulo de conversin
anloga a digital (ADC).
La conversi n de una seal anl oga en di -
gi tal es un trabaj o que se debe hacer previ a-
mente, si se qui ere reci bi r y procesar por me-
di o de cual qui er si stema di gi tal como el mi -
crocontrol ador. La tarea de conversi n A/D se
lleva a cabo a travs de diversas tcnicas, y cuen-
ta con una ampl i a gama de ci rcui tos i ntegra-
dos AD de vari os fabri cantes que l a soporran;
si n embargo, con el mdul o ADC dentro del
MCU se obti enen ventaj as propi as de l a tecno-
l oga de i ntegraci n, como son l a reducci n de
espaci o, el consumo de potenci a y el costo; ade-
ms, se mi ni mi zan l os ri esgos de efectuar y l eer
conversi ones fal sas o al teradas, debi das a i nade-
cuados si stemas de ti erra y cabl eado.
El mdul o ADC, dentro del MCU, l e per-
mite al usuario un control total sobre las con-
versiones de cada uno de sus canales por medio
del cdi go de programaci n, y se comuni ca di -
rectamente con l a CPU por medi o de seal es de
interrupcin que se generan al final de cada ci,
cl o c
resu.
el t i ,
ract(
dul
de
do,.
enI
I og
go.
ma
of
t :
ol
a
r !
oI
r l
i
o- {
I
EI n
sev
m<
ci ta
cue
del
pro
PT]
trol
doc
con
ni t
oi s
D- -
de
t ac
da
ls
ol
ct
o
k
c
t
o
o
z,
E,
t
F
z,
(n
co
Canal x del ADC
CH1 CH12
ilililljjil
4-eHl4'01
ADIV[2:0] ADICLK
, . *
&rKt
'.i. Curco prctico sobre Microcontroladores
Figura 24.1 Dagrama de bloques del mdulo ADC
clo de conversin; de esta manera, la CPU no
resulta desviada de su rutina principal durante
el tiempo de conversin de cada canal. Las ca-
racterlsticas de este mdulo son:
.
lJn convertidor A./D con doce canales de en-
trada de 8 bits, multiplexados.
.
Tcnica de conversin anloga a digital por
aproximaciones sucesivas.
.
Resolucin de 8 bits por canal.
.
Dos modos de conversin, continuao por cidos.
.
Dos indicadores de fin de conversin, por se-
alizador o por interrupcin.
.
Selector de la fuente del reloj de mues-
treo del ADC.
tlnscripeinn dnl md*ln,At)
El mdulo ADC se muestra en la figura 24.L, all
se ve el diagrama del circuito electrnico de este
mdulo representado en sus principales bloques.
Todos los canales de entrada anlogos capa-
citados para muestrear sedes externas, se en-
cuentran disponibles a travs de los terminales
del MCU que corresponden con los puertos de
propsito generd PTBO a PTB7, y PTD0 a
PTD3; y por medio del registro de estado y con-
uol delADC
(ADSCR)
se definen cuales de los
doce canales estarn activos y se comportarn
como entradas anlogas.
Para resumir el comportamiento del m-
dulo ADC, se puede anotar, que, por medio
de un multiplexor anlogo se elige uno de los
doce canales A/D como la fuente dq voltaje de
entrada
(ADCVIN)
del nico convertidor an-
logo a digital disponible en el mdulo, y lue-
go, este voltaje anlogo, por medio de aproxi-
maciones sucesivas, se convierte en una mag-
nitud discreta representada en 8 bits en el re-
gistro de datos del ADC. Al finalizar un ciclo
de conversin el mdulo ADC graba el resul-
tado con resolucin de 8 bits en el registro de
datos del ADC, llamado ADR; y pone en uno
lgico su correspondiente bitbanderacoco,
o bien, genera una solicitud de interrupcin.
Vm$tmie de conversin ADCVIN
Los lmites para el voltaje de conversin siempre
estn definidos por la magnitud de la fuente de
dimentacin del microcontrolador; de esta for-
ma, para un voltaje de entrada igual o mayor a
Voo, el ADC entregar como resultado de la con-
versin un dato igual a $FF, mientras que para
VSS o menos, el dato ser $00. Todos los otros
valores del voltaje de entrada que se encuentren
entre
\, )r
Voo, obtendrn una conversin li-
neal y podrn ser representados por una lfnea es-
calonada con pendiente constante, y dividida en
256 valores discretos
($00
a $FF).
Tiempo de conversin
Para completar un ciclo de conversin, el mdu-
lo ADC usa 16 estados de su reloj interno, y se
inicia con el primer flanco creciente de dicho
reloj. Por medio de la siguiente ecuacin se pue-
de calcular el tiempo que toma una conversin:
Por ejemplo, para una frecuencia de reloj del
ADC definida en lMHz, el tiempo de un ciclo
de conversin completo ser del6s y la mxima
frecuencia de muestreo ser igud a62,5kflz.
Modo de conversin continua
I-Ina vez se activa el modo de conversin conti-
nua, el mdulo ADC efectria ciclos consecutivos
de conversin A/D sobre el canal de entrada se-
leccionado, y sobrescribey actualiza el conteni-
do del registro de datos ADR al concluir cada
tiempo de conversin. Para interrumpir el pro-
ceso de conversin continua, se requiere borrar
ilota:
Para evitar daos permanentes en los pueftos que
se comparten con los canales A/D, la magnitud
i
del volaje de entrada anlogo ADCVIN nunca
idebe
estar por encima ni por debajo de los
I
umbrales de alimentacin Voo
)r
\r,
respec-
Iuvamente.
L_-.___
16 perfodos del reloj delADC
Frecuencia del reloj delADC
cutso prcco
sbe ttcrocototadores
arr"#
EL nrqulu couvu.ttitiut'li D tl*ll) t, eL SLL(I uel GLi0
el bit de control ADCO que hace parte de-
registro de estado y control del ADC.
En este modo, el bi t de conversi n
completa COCO se coloca en uno despus
de cada conversin exitosa; y el usuario
podr borrarlo pr sofiware escribiendo di-
rectamente sobre el registro ADSCR, o, le-
yendo el registro de datos ADR.
En la figura 24.2 se muestra el
registro ADSCR que nos per-
mite configurar los canales de
conversin activos, habilitar la
i nterrupci n, sel ecci onar su
modo de trabajo, y conocer el
estado de la conversin.
es el bitbandera que
sealiza cuando una conver-
0
-
Bn7 6 5 4 3 2 1 Bt t j
001. 11. 11
Sin establecer
Figura 24.2 Registro de estado y control del ADC (ADSCR)
sin se completa, es de slo lectura; y puede
ser automticamente borrado al escribir di-
rectamente en el registro ADSCR, o, al leer el
registro ADR. El reset lo borra.
Cuando AIEN
=
0:
Con I lgico, indica conversin completa
Con 0 lgico, indica conversin incompleta
Al colocar un uno lgico en el bithabtador de la
interrupcin del converddor A"/D, llamado AIEN,
el mdulo es capazde generar una solicitud de inte-
rrupcin a la CPU08 al cabo de cada ciclo de con-
versi6n. Cuando la interrupcin delADC est acti-
va, el bitCOCO no se usa como bandera del fin de
conversin, sino que se usa para dis-
parar la solicitud de intenupcin
cuando su estado es cero lgico.
[,os registros especiales del microcon-
uolador que se usarr para definir los
parmeuos del mdulo convenidor
ADC, son res:.el regisuo de esado
y conuol ADSCR" el regisuo de da-
tos ADR y el regisuo de configura-
cin del relojADICLK En los si-
guientes prafos se hace la descrip-
cin de cada uno de los bits que o:ln-
formar estos registros.
Dieccin: $003C
Lectura:
Escritura:
Beset
Di r e
Lt
Es(
1
1
1
'l
1
1
0
0
0
0
1
'l
1
1
0
0
0
0
1
0
0
1
'l
1
1
l a
de
l o,
pl,
di
so
C
i n
C
t ^
l d
II
n'

P,
A
C
A
Cr
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
1
1
0
0
1
'l
0
0
1
'l
0
1
1
0
0
1
I
0
1
0
1
0
1
0
1
0
1
0
1
0
0
1
0
1
0
1
ADCO
ADCl
ADC2
ADC3
ADC4
ADC5
ADC6
ADCT
ADCs
ADC9
ADCIO
ADCI 1
PTBO
PTBl
PTB2
PTB3
PTB4
PTBS
PTB6
PTBT
PTD3
PTD2
PTDl
PTDO
No usado
Reservado
No usado
V994 (Nota 1)
Vgg (Nota 1)
Apagado del ADC
Nota 1:
Los voltajes internos de referencia se usan para verificar la operacin del con-
vertidor ADC.
Tabla 24.1 Tabla de seleccin de canales del mdulo ADC
$t& &lct":.
curco prctico sobre Microcontrotadores
&d
Direccin: $0030
BitT
Lectura:
Escritura:
Reset Indeterminado desous de reset
L\,-\_l L Lq
lo ADC, llamado ADR; es
de slo lectura, y su conte-
nido es inmediatamenre ac-
tualizado cada vez que una
conversi n termi na. Des-
pus de un reset su estado
puede ser cualquiera.
En l a fi gura24.4 se mues-
tra el regi stro ADICLK que
nos permi te sel ecci onar l a
frecuenci a del rel oi i nterno
para el muestreo de l as se-
al es con el ADC, por me-
di o de l os bi ts ADIV0 a
ADI V2 se puede sel ecci o-
nar el di vi sor usado por
est e mdul o para generar
el rel oj i nt erno del ADC.
La tabl a 24.2 muestra l as
opci ones par a l os bi t s
ADI Vx.
El mdulo del sistema de in-
tegracin SIM se representa
en bl oques en l a f i gura 24. 5;
el SIM es el controlador del
estado del sistema y se encar-
ga de coordinar todas las ac-
t i vi dades ent re l a CPU y el
si st ema de buses. El SI M es
responsabl e de:
lsin
estabtecer
Direccin: $003E
Bt7 6 5
Lectura:
Escritura:
Reset
es el bit de control de
la interrupcin del ADC, es
de escritura, y cuando se co-
loca, el mdulo ADC gene-
ra una interrupcin al com-
pletar la conversin. Las con-
diciones que borran exe bit
son iguales a las del COCO.
Con 1 lgico, se habilita la
interrupcin.
Con 0 lgico, se inhabilita
la interrupcin.
es el bit selector del
modo de conversin conti-
nua o por ciclos del mdulo
ADC, es de escritura, y nos
permite elegir entre el modo
de conversin continua y la
conversin de un slo ciclo.
Con I lgico, se acriva el modo
de conversin continua.
Con 0 lgico, se inactiva la con-
versin continua
i/
se activa la
conversin de un slo ciclo.
00
Sin establecer
Figura 24.4 Registro de configuracin del reloj delADC (ADrcLn
Figura 24.3 Registro de datos del ADC (ADR)
son los bits del
selector de canales ADC,
con los bits CF{'} a CH3 se
elige uno de los doce cana-
les disponibles, ycon el CH4
se les asignan algunas funcio-
nes especial es. La tabla 24.1
resume las condiciones de
estos bits.
En la figura 24.3 se muestra
el registro de un byte que
contiene en todo momenro
el resultado de la ltima con-
versin hecha por el mdu-
ADIV2 ADIVl ADIV() Divisor del reloj del ADC
0
0
0
0
1
0
0
1
1
X
0
1
0
1
X
Relojde entradaADC+1
Rel oj de entradaADG+2
Relojde entradaADC+4
Reloj de entrada ADC+8
Relojde entradaADC+16
Tabla 24.2 Tabla de preescaladores del reloj del ADC (ADIVx)
0
-
curco prctico
sobre Micrrcontrctadores
&irr
r.t
#
1Rl
F
20scol
u
l . Se
2. El
3. In
SC
2(
cil
4. F)
du
5. El
ST
a
sol
El rer
al i mr
Cuan,
taci
reset)
i
esto h
accior
El e
EI SI]
la CI
cualq
el bit
citud
El re
Cuar
ha ir
cdi
ilega
ria d
un/
colo,
ILAI
anter
Mdulo ST0P
Mdulo WAIT
CPU ST0P (Desde CPU)
CPU WAIT (Desde CPU)
SIM0SCEN (hacia el oscilador)
RELOJ DEL COP
20SC0UT (Desde el oscilador)
0SC0UT (Desde el oscilador)
+>Relojes
internos
Cdigo de operacin ilegal (Desde la CPU)
Direccin ilegal (Desde los decodificadores
del mapa de direcciones
)
Desbordamiento del temporizador del C0P
Reset del USB
<-
Fuentes de interrupcin
<->lnterfaz
de ta cPU08
Figun 24.5 Diagnna de bloques del modulo SIM
.
Controlar la CPU08 y los perifricos.
.
controlar la entrada y r"li" de los modos es-
^^^,^^ ^-o^':tcclN
ILEGAL
peciales de funcionamiento: sroB wnn,
CDIG0DE0PEMO|[t#
RESET
Y
BREAK.
POR
.
Controlar el reloj interno del bus.
LVI
.
Controlar el reset maestro, el de la conexin
(POR), y el desbordamiento del coP.
Hgun 24'6 Fuentes de intenupcin internas de la cPU08
.
Controlar el procesamiento de todas las inte- Todas las interrupciones internas de reset que
rrupciones externas e internas. afectan a la CPU08 se muestran enlagura,24.6,
.
Controlar la arquitectura modular expansible estas son: direccin ilegal, cdigo de operacin ile-
de las fuentes de interrupcin. gal, desbordamiento del temporizador del COB
el reset a la cono<in
(POR),
y el inhibidor por
Fuentes internas de interrupcin del reset bajo voltaje (Lu).Todas ellas fuerzan el pin de
Para completar nuestro estudio de la interrup- entrada externa del RST a un nivel bajo durante
cin principal del MCU, el reset, en esta oca-
32 periodos del reloj 2OSCOUI para permitir la
sin se har nfasis slo en las cinco fuentes inicializacin de los perifricos exrernos conecta-
internas que lo originan, ya que su estructura dos alrededor del miciocontrolador. En la figura
y las fuentes externas fueron ampliamente tra- 24.7 semuesrra el diagrama de tiempos de lavec-
tadas en otra ocasin. torizacin de una interrupcin de este tipo.
xra.
rex
--, 2t*3
AJr<rf; Curco prcco nbrc Mtctocontotadorcs
&
nsr
. m
E UCU loporFen
RST
F__gl ddc
__+_ gA
ctdc
____-r
El reset de los mdulos
COF
y
LVI
De estos dos mdulos, ya estudia-
dos en detdle en laleccin anterior,
solo se dir que ambos generan un
reset interno cada que se desborda
el contador del COB o cuandoVoo
cae por debajo del umbral
ftTTRIP)
definido en el mdulo LM. En cual-
quier caso, el proceso de la interrupcin slo se
iniciar alos64periodos del reloj 2OSCOLJ-II y
despus la estabilidad del oscilador.
Los registros de estado del mdulo SIM
los registros del SIM son tres y estn localizados
en la memoria enue las posiciones
$FE00
y
$FE03,
por medio de sus bit el progamador puede co-
nocer el estado de la CPU08 en todo momenro.
l. El registro de estado del rnodo RREAK (BSR).
En la gura 24.8 se muestra el registro BSR,
este registro de estado posee un bitbandera
que indica cuando la salida de los modos
STOP y\7AIT se ocasiona por un breah,y se
le conoce como SBS'W; para borrarlo se re-
quiere de un reset, o, escribir un cero en 1.
Con 1 lgico, indica que la CPU sali de los
modos STOP o\7rLlT debido aunaintenup-
cin breah.
Con 0lgico, indica que la CPU no sali de
los modos STOP o'\7\IT debido a una inte-
rrupcin break.
2. El registro de estado del reset (RSR).
En la figura 24.9 se mustra el registro RSR,
este registro posee los bitsbandera, que infor-
zoscour
fLfL__+
F_J-]+ Ffl_f_l_i
IAB
Figun 247 Diagnma de enpos de un reset intemo
El reset a la conexin de la
alimentacin POH
Cuando se conecta por primera vez la alimen-
tacin al MCU, el mdulo del POR
Qtower-on
reset) gener^un pulso para indicar a la CPU que
esto ha sucedido, y se da inicio a la secuencia de
acciones propias del POR, que son:
1. Se reconoce la fuente de reset interna.
2. El SIM habilita la salida de reloj 2OSCOUT.
3. Los relojes internos de la CPU y los mdulos
se detienen durante 4.096 periodos del reloj
2OSCOUI mientras que el mdulo del os-
cilador se estabiliza.
4. El pin de enuada ffiT se coloca en nivel bajo
durante el tiempo de esabilizacin del oscilador.
5. El bitPOR del registro de estado del reset del
SIM (RSR), se graba con uno lgico, mien-
tras que todos los otros bits de este registro
son borrados.
El reset
por
cdigo de operacin ilegal
El SIM decodifica las seales que se originan en
la CPU08 para detectar instrucciones ilegales,
cualquier instruccin ilegal pone en uno lgico
el bitlLOP del registro RSR, y genera una soli-
citud de interrupcin por reset interno.
El reset
por
dreccin ilegal
Cuando el SIM se da cuenta que la CPU
ha iniciado el ciclo de bsqueda de un
cdigo de operacin desde una direccin
ilegal (fuera
del rea del mapa de memo-
ria definido para la CPU08), se genera
vn rtset por direccin ilegal, y el SIM
coloca en uno lgico el bit de estado
ILAD del registro RSR, inmediatamente
antes de reiniciar el MCU.
Dirccn: $FE00
Bt7
Lecra:
Escrltura:
Reset
l{ot:
Al escribir un cero lgco se bona sl SBSW
Flgun 24.8 Registo de esdo del nodo break (BSR)
lsinestabtecer
Cursl
prdico
nbrc Muoa n*adors
rrr#
-a
EL nrdulo convs+tkiot'/VD
U{l-))
y
eL SLLVI deL 6LtC0
Direccin: $FE01
B t 76543218 t 0
Lectura:
Escritura:
POR: 0000000
Sin establecer
Figura 24.9 Registro de estado del reset (RSR)
man al usuario sobre la procedencia del lti-
mo reset eyecutado. Para borrar todas sus ban-
deras automticamente (excepto la del POR),
basta leerlo.
es el bit de estado que sealiza aI reset a
la conexin (Power-On
Reset).
Con I lgico, indica que el ltimo reset fue
causado por el circuito POR.
Con0lgico, indicaqueel regisuo RSRfue ledo.
es el bit de estado que sealiza d. reset
externo RST.
Con 1 lgico, indica que el ltimo reset fue
causado por el pin de entrada externo RST
Con 0 lgico, indica que el RSR fue leldo, o
se gener un POR.
s el bit de estado que seal iza el desborda-
miento del temporizador de gilancia del COP
Con 1 lgico, indica que el ltimo reset fue
causado por el COP.
Con 0 lgico, indica que el RSR fue ledo, o
se gener un POR.
es el bit de estado que sealiza al reset
causado por una operacin ilegal.
Con 1 lgico, indica que el himo reset
fue causado por una operacin ilegal.
Con 0lgico, indica que el RSRfue le-
do, o se gener un POR.
es el bit de estado que sealiza al
reset debido a una direccin ilegal du-
Lectura:
Escritura:
-
rante el ciclo de bsqueda de cualquier c-
digo de operacin.
Con 1 lgico, indica que el ltimo resetfue
causado por el ciclo de bsqueda de un c-
digo de operacin en una direccin ilegal.
Con 0 lgico, indica que el RSR fue ledo,
o se gener un POR.
es el bit de estado que sealiza el
reset del modo monitor.
Con 1 lgico, indica que el ltimo reset fue
causado por la entrada al modo monitor.
Con 0 lgico, indica que el RSR fue leldo, o
se gener un POR.
es el bit de estado que sealiza el reset
causado por el mdulo LVI.
Con 1 lgico, indica que el ltimo reset firc
causado desde el circuito LVI.
Con 0 lgico, indica que el RSR fue ledo, o
se gener un POR.
En la figura 24.L0 se muestra el registro
BFCR este registro contiene un bit de lectu-
ra y escritura que habilita al programador des-
de el sofiware pafa borrar los bits de estado
mientras que la CPU est en esrado de breah,
se llama BCFE. Con el reset se pone en cero.
Con I lgico, se habilita el borrado de todos
los bits de estado durante el break.
Con 0 lgico, se inhabilita el borrado durante
el estado de breah.
Direccin: $FE03
B t 76543218 t 0
Beset 0
Inrr.".oo
Figura 24.10 Registro de control de la bandera del break (BFCR)
#
&tr,,
curco prctico sobre Microcontotadocs
I
(
/
)
\
\
\
\
t
tl
e
r
C
I
(
I
I
\
*' \
F
) \
\}
La cuenta del tiempo es la tarea ms comn den-
tro de las aplicaciones de los microcontroladores
en cualesquiera de sus campos, y, por ello, el pri-
mer circuito periferico interno de propsito espe-
cial que se incorpor a la arquitectura de estos dis-
positivos fue el mdulo temporizador.
Gracias a los mdulos temporizadores, el progra-
mador puede contar cualquier periodo de tiempo
usando como base el ci cl o del rel oj i nterno del
microcontrolador,

sin ocupar a la CPU.
curso prctico
sobre Miuocontrotadores AEK<IT":
Sb
&d
-a
La temporizacin de los eventos, por medio
de los lazos de sofiware, fue la primera forma de
contar el tiempo en los microconuoladores; sta es
una tarer simple, pero, no obstante, puede ocupar
durante mucho tiempo a la CPU e impedir que
ella desarrolle ouas actividades reduciendo consi-
derablemente la eficiencia del dispositivo. Este tipo
de temporizacin est adems limiada por el a-
mao y el n.mero de registros de propsito general
disponibles, y, por lo anto, slo se recomienda para
contar pequeos periodos de tiempo.
Gracias a la integracin de circuitos rempo-
rizadores como dispositivos perifricos dentro de
la arquitectura de los microcontroladores, se le
ha facilitado esta tarea al programador, y se ha
aumentado la eficiencia de los MCU considera-
blemente, permitindonos, adems de contar pe-
riodos largos de tiempo, llevar a cabo otras fun-
ciones que se basan en la cuenta del tiempo, ta-
les como la transmisin y recepcin de datos, la
vigilancia de procesos, y el manejo y control de
otros dispositivos por medio de las tcnicas cl-
sicas de modulacin de pulsos.
El TIM rl el 68HCi l B
En la figura 25.1 se muesrra el diagrama de blo-
ques delTIM (rno
intetfrce rnodab). En estalec-
cin estudiaremos la segunda versin del TIM de
los microcontroladores Motorola de la familia
HC08 (TIM2,
versin B); ste es el mdulo de la
interfaz de temporizacin, y est compuesto por
RELOJ DEL
BUS II{TERI{O
ffi
o
=
E
t
=
u)
=
6
,dx
,,x\A. t-
-
$Zb Qtrt;
Cwso prcnco
sobe Micrwontotadores
&d
Figura E.l Diagnma de bloques delTlM del68HC08
un
tuf
lac
les
a
a
a
a
a
EI
de
PI
es
Pa
dc
P
co
m,
la
un temporizador de dos canales con entradede ca
tura, salida de comparacin, y funciones de modu-
lacin por ancho de pulsos (PV /t).
Las principa-
les caracterlsticas que posee este mdulo son:
.
Dos canales independientes con entrada de
captura y salida de comparacin
.
GeneradordesalidPV&f con hufuo sn bufu
.
Preescalador programable para el reloj delTIM
.
Contador de carrera-libre, o en mdulo con-
tador ascendente
.
Bits de paro y reset del contador del TIM
o
Arquitectura modular (expansible
hasta
ocho canales)
Funciones del TIM
EITIM comparte sus dos canales de entradaysdi-
da conlos dos puertos I/O de propsito general,
PTD4y PTD5; el principal componente delTIM
es el conador de I 6 bit, de l proiene la referencia
para las funciones de captura y comparacin. Usan-
do los regisuos de 8 hiTTMODH yTMODL el
programador puede conuolar el valor del mdulo
conador del TIM, y puede leerlo en cualquier
momento sin afecm la secuencia de la cuenta.
En la estructura del TIM que se muestra en
la figura 25.1 se destacan las siguientes partes:
Los canales cero y uno
(CHO
y CHI), tam-
'
L,l preescalador del contador del TIN{ bin pueden enlazarse para configurar una salida
El bloque preescdador usa los bix PS2:01, decomparacihcon buffersponible atravsde
localizados en el registro de estado y control la salida del canal cero (pin PTD4/TCH0).
del TIM (TSC),
para se-
leccionar la fuente del re-
loj, y la salida de reloj pue-
de ser elegida entre siete
opciones de frecuencia
que se obtienen al dividir
el reloj interno del bus.
o
L,r entrada de captura
Por medio de las funcio-
TCHx
nes de este bloque eITIM
puede caprurar el tiempo
durante el cual ocurre al-
gnwentoentemo. Cuan-
do un flanco activo programado se detecapor
el pin de un canal configurado como una en-
trada de crpnra, el TIM guarda el contenido
del contador en los registros del canal corres-
pondiente, TCHxH y TCHxL,

adicional-
mente, puede generar una solicitud de interrup-
cin en la CPU08.
'
[ . a . sai i i l a de cor np: r r aci r r
Usando las funciones definidas para el circui-
to de comparacin del TIM, el MCU puede
generar pulsos peridicos, con polaridad, du-
racin, y frecuencia programables. Cuando el
contador iguala el valor guardado en los re-
gistros de un canal configurado como salida
de comparacin, eITIM puede poner, borrar,
o cambiar el estado del pin asociado a dicho
canal;

adicionalmente, puede generar una
solicitud de interrupcin en la CPU08.
Cualesquiera de los dos canales programados
como salidas de comparacin pueden generar pulsos
diectamente sin la intervencin de un bufzr,y ex;ro
quiere decir, que para cambiar el
yalor
de compara-
cin de la salida, que est guadado en los regisuos
del canal delTIM correspondientes, solo se requiere
sobreacribir el nuevo valor en ales rqisuos.
I
SALIDA DE
COMPARACIN
DESBORDAMIENTO
oft[3oo'-
VALOR DEL
REGIS]RO DEt
TCANALDELTI M r ^L
- l
1
SALIDA DE
COMPARACIN
SALIDA DE
COMPARACIN
frgun %.2 Seal PlltlM genenda por
el TIM del 68HC08
DESBORDAMIENTO DESBORDAMIENTO
carso pcw
re tiawn*adues
rrrt#
El mOdulador PWM Direccin: $0rr20
La caracterstica que le permite al TIM BitT
cambiar el estado de la salida de compara-
Lectura:
cin de cudquier cand al desbordar el con- Escritura:
tador (toggle-on-
oaerflow), se usa para ge-
neset
nerar una seal de salida modulada por
ancho de pulsos
(P\7M).
Con el valor de
los registros del mdulo contador se de-
termina el periodo de la seal P'!M, y el
esado del pin del canal cambia cuando el contador I
alcanzael vdor del registro del mdulo contador.
En la figura 25.2 semuestra una seal P\[M,
el periodo, y el ancho del pulso de modulacin;
alll podemos ver que el periodo de la seal P\7M
est determinado por dos desbordamigntos suce-
sivos del registro del mdulo contador, mientras
que el valor guardado en los registros del canal
del TIM define el ancho del pulso de la seal
modulada a travs de la salida de comparacin.
El tiempo que transcurre entre un desbordamien-
to y una salida de comparacin, es el ancho del
pulso modulado.
Por medio de los valores de los registros
del mdulo contador y de la salida del preesca-
lador se define la frecuencia de la seal de sali-
da P'WM, de forma tal que, silos bits del pre-
escalador se ponen en 000, y al registro del m-
dulo contador se le escribe $00FF, se generar
una salida P\fM con un periodo igual a 256
veces el estado del reloj del bus interno. El an-
cho del pulso tambin puede variarse en 256
pasos por medio de los registros del canal del
TIM; por ejemplo, si en ellos se escribe el dato-
$0080
(128dec),
el ciclo de servicio de la sali-
da P!7M ser 1281256 el50o/o.
La salida de P\lrM tambin puede configu-
rarse con un bufer o sin 1, de la misma forma
que la salida de comparacin.
Regi strns rl e entradi i
V
snl i l l ";
;i ,' l TIM
Por medio de cinco registros del microcontrola-
dor se pueden monitorear y controla la opera-
cin y el estado del TIM; los registros son:
01
Sin establecer
Figura 25.3 Registo de estado y control del TIM (TSC)
l l egi st r o i l e r : , ; f ; r l o, r ' r ' l i r t r o! , l ci
' l ' l l \ 4
i - i
t :
' i
En la figura 25.3 se muestra el contenido del
registro TSC; por medio de este registro se
pueden habilitar las interrupciones, consultar
las banderas de estado, detener e inicializar el
contador, y seleccionar la frecuencia del reloj.
A continuacin se describen sus bits:
f
'OIr:
este bit de lectura y escritura es la ban-.
dera que se pone cuando el contador del TIM
se inicializa en $0000, despus de alcanzar el
valor programado en los registros del mdulo
contador. Al leer el registro TSC se borra la
bandera automticamente, tambin, al escri-
bir directamente en TOF un cero lgico, u,
ocasionando un reset.
Con 1 lgico, indica que el contador delTIM
ha alcanzado el valor del mdulo.
Con 0 lgico, indica que el contador delTIM
no ha alcanzadgel valor del mdulo.
l
(
)l L:: exe bit de lectura y escritura nos per-
mite activar la solicitud de las interrupciones
por desbordamiento del contador del TIM,
cada que la banderaTOF se pone en uno. Con
el reset exe bit se borra.
Con 1 l6gico, se habilitan las interrupciones.
Con 0lgico, se inhabitan las interrupciones.
'l
5 l't-tl'r con este bit delecturay escritura en
uno lgico se puede detener el contador del
TIM, y tambin permitir que el conreo se re-
anude cuando se pone en cero lgico. Por me-
dio del reset este bit se pone en uno, y el pro-
gramador siempre debe borrarlo por softutare.
0
I
#
rr*
curso prctico sobre Mtcocontrotadorcs
t
Con I lgico, se dedene el conador del TIM. Ressrro: TcilTH
C-on 0 lgico, se activa el contador delTIM. Direccin: 9021
BitT 6
0
I
rl 'r
l"
este bit de escritura solamente,
se puede grabar con uno lgico para
inicializar el contador y el preescalador
del TIM, sin afectar a los dems regis-
tros. Cuando el bit TRST se pone, el
contador inicia desde
$0000, y tras la
accin de reset, siempre ser borrado.
Con 1 lgico, se borran el contador y el
preescdador del TIM.
Con 0lgico, no se produce ningrln efec-
to sobre el TIM o la CPU08.
LeGra:
Escritura:
Beset
Registro: TGI{TL
Direccin: $0(122
Bt7 6
Lectra:
Escritura:
Beset
0000000
Sn establecer
PS[2:0]: estos bits pueden ser leldos o escri-
tos, y son los selectores del preescalador del
reloj del contador del TIM, nos sirven para
definir en la sdida del circuito preescalador
una de siete frecuencias configurables. Todos
los bits son borrado s por el reset.
En la tabla 25.1 se resumen las opciones de
seleccin disponibles para el preescalador del
reloj del cbntador del TIM.
i
[ . . . , 1, ; , . ; : 1- , : ;
. , , t r :
. ] ( ( r r , 1, 1 |
En la figura 25.4 semuestran los contenidos
de los dos registros de 8 bits que conforman
el contador del TIM, TCNTH y TCNTL;
stos se ubican en las posiciones $0021 y
Figun 25,4 Registros del contador del TIM (TCNTH:TCNTL)
$0OZz del mapa de memoria y en ellos se
guarda el byte alto y bajo del contador; am-
bos son registros de slo lectura. Al leer por
primeravez el ualor dd bytenr,s significativo
GCN-
TH) autonr:ticamente se guada el contenido del
de menor peso (TCNTL)
enun hufertemporal,
mientras que al poner el ziTRST en uno lgico,
o, d generar un cido de raet,los dos rqistros del
conador del TIM sern borrados.
1. ' r
^: i : 1r . . _.
. i . . , , ! , , . r , i , , . , . , . , , . i - l
l , . l ! ' l '
. : : r : i : ,
' . : .
I
En la figura 25.5 se muestran los contenidos
de los dos registros de 8 bits que hacen parte
del mdulo contador del TIM, TMODH y
TMODL, los cuales se encuenrran localiza-
dos en las posiciones
$0023
y
$0024 del rea
de memoria.
'
En estos registros se guarda el valor del mdu-
lo contador del TIM, y su vdor puede ser leldo
o escrito por el usuario en cualquier momento.
Cuando el contador del TIM aJcanza el valor
del mdulo, la bandera de desbordamiento
(TOF)
se pone en uno, y el contador inicia
nuevamente su cuenta desde $0000 con el
prximo periodo de reloj. En cualquier caso,
la accin de resetpondr en unos ($FFFF)
los
registros del mdulo contador del TIM.
PS2 PSl PS0 Fuente de reloj delTlM
0
0
0
0
i , '
1
1
1
0
0
1
1
0:
0
1
1
o
1
0
1
1
0
1
RelojdelBus intemo+l
Rel oj del BUS i nterno+2
Reloi delBuS intemo+4
Relojdel BUS interno+8
MrfffiBtBtmrntl+ro
Reloj del BUS interno=. 32
RelojdelBus i 64
No disoonible
labla 25.1 Tabla de seleccin del preescalador del reloj del TIM
T
curso prcco
sobe Micmcontotadores
&n;#
Et nrduto de [a luturiaz tie teurrorizacin (l'ttUt) detGt!|'tC0
Registro: TM0DH
Direccin: $)23
Bt7 6
Lectura:
Escritura:
Eeset
Registro: TMODL
Direccin: $fl)24
B t 7654321
Lectura:
Escrtura:
neset
Figura 8.5 Registros del ndulo contador delTlM (TM0DH:TM0DL)
En la gura 25.6 se muestra la distribucin
de los registrosTSC0 y TSCl, y la accin del
reset sobre todos sus bits. A continuacin se
describen sus bits:
exe bit de lectura y escritura es la ban-
dera de cada canal; cuando el canal est con-
figurado como entrada de captura, el bit se
Reset 0
Regstro: TSC1
Direccin: $0028
Bt7
Lectura:
Escritura:
Beset
Con 0 lgico, se inhabilita la solicitud de
interrupcin del canal x.
es eI bit selector de modo B, con
este bit de lectura y escritura se selec-
ciona el bffir en la salida de compara-
cin, o en la del P\fM. Este bit slo est
en el registro de estado y control del ca-
nal 0 (TSCO), y cuando el MSOB se pone
en uno, se bloquean las funciones del re-
gistro TSCl convirtiendo nuevamente al
canal I en un puerto I/O de propsito
general (PTD5).
Con I lgico, se habilita la salida con bffir
Con 0 lgico, se inhabilia la sdida con b"fu.
es el bit selector de modo A, con
este bit de lectura y escritura se selecciona
la operacin de la salida de comparacin y
P\fM sin bffir, o la entrada de captura,
o, el nivel de voltaje presente inicialmente
en la salida.
Cuando ELSxB:A es diferente de 00:
0000000
Sin establecer
Figura 25.6 Registros de estado y
control de los canales del TIM
(TSC0:TSCI)
F
Btt0
pone en uno para indicar la deteccin de un Con 1 lgico, se habilita la salida de compa-
flanco activo; mientras que cuando el canal racin o P'!7M sin bffir.
estconfiguradocomosalidadecomparacin, Con 0lgico, se habilita como entrada de
la bandera se pone cuando el valor del regis- captura.
tro contador del TIM se iguala con el
valor del registro del respectivo canal.
ffi::.:fi,H*
Con 1 lgico, seala la deteccin de la
entrada de captura o la salida de compa-
Lecrura:
racin en el respectivo canal.
Escritura:
B t 76543218f t 0
Con 0 lgico, seala que no ha detecta-
do la entrada de captura o la salida de
comparacin en el respectivo canal.
este bit de lectura y escritura nos
permite habilitar la solicitud del servicio
de interrupcin de la CPU08 asociada
con cada canal del TIM.
Con I lgico, se habilita la solicitud de
interrupcin del canal x.
0
-
Cr
C,
n
C(
/
fl
cr
d
P
(
x
c
L
I
(
#
&irrr"
cutso prcco sobre Microcontoradores
,r
MSxB MSxA ELSxBELSXA MODO CONFIGURACION
-x-
0 0 0
Salida
estndar
Pin bajo el control del
puerto;
Inicialmente con la salida qn niyg!-altg
X 1 0 0 Pin bajo el control del puerto;
Inicialmente con la salida en nivel
0 0 0 1
Entrada de
captura
Captura en flanco creciente solamente
0 0 1 0 Salida en flanco decreciente solamente
0 0 1 1 en flanco creciente o decreciente
0 1 0 1 Salida de
comparacin
PWM
Cambia el estado de la salida baio comparacin
0 1 1 0 Bona la salida bajo comparacin
0 1 1 1 Coloca la salida
1 X 0 1 Salidas de
comparacin
PWM con
buffer
Cambia el estado de la salida bajo comparacin
1
1
X
X
1
1
0
1
Bona la salida bajo comparacin
.
Coloca la salida bajo comparacin
Cuando ELSxB:A es igual a 00:
Con I lgico, se activa la salida inicial del ca-
nal x en nivel bajo.
Con 0 lgico, se activa la salida inicial del ca-
nal x en nivel alto.
son los is selectores de
flanco y nivel, con ellos se selecciona el flan-
co activo de la entrada de captura, o el nivel
de la salida de comparacin del canal corres-
pondi ente.
Cuando estos dos bits son borrados, el canal
x se desconecta del puerto, y l i bera el pi n del
canal (TCHx) para que se comporte como
un puerto I/O de propsi to general .
En l a tabl a 25.2 se muestran l as opci ones de
configuracin que estos bits nos ofrecen.
este bit de lectura y escritura con-
trola el comportamiento de la salida de com-
paraci n de cual qui er canal cuando el con-
tador del TIM se desborda.
L\--\j L L
Tabla 25,2 Tabla de seleccin del modo de operacin, flanco y nivel del TIM
Con I l gi co, el pi n de sal i da del canal x
cambi a de est ado cuando el cont ador se
desborda.
Con 0 l gi co, el pi n de sal i da del canal x
no cambi a de estado cuando el contador
se desborda.
este bit de control le permite al
usuario determinar el mximo ciclo de ser-
vicio (igual al l00o/0, o equivalente al nivel
VDD) para la seal de salida modulada por
ancho de pulsos (P\M).
Cuando el bi tTOYx est en cero, un uno
l gi co en CHxMAX obl i ga a que l a sal i da
P\fM tenga un ci cl o de servi ci o del 100o/o;
en l a fi gura 25.7 se muestra el comporta-
mi ento de l a sal i da P\7M de cual qui er ca-
nal de acuerdo con el estado de este bit, en
ella se aprecia que, al poner a CHxMAX en
cero lgico, la seal de salida P\fM recupera
su condi ci n normal , y tambi n que l a sal i -
da del canal siempre responde a un ciclo des-
pus de haberl o borrado.
curco prctico
sobre Microconotadores
&kr
r'.t
#
Et nrdul.o de la lnteuaz rie lumrorlzacin
l-Ltt)
detGLtC0
DESBORDAMIENTO DESBORDAMIENTO DESBORDAMIENTO DESBORDAMIENTO DESBORDAMIENTO
I
/ .
A
I
SALIDA DE
ColrPRnRcltt
CHxMAX
En la figura 25.8 se muestra la distribu-
cin de los registros altos y bajos del los
dos canal es del TI M, TCHOH/ L v
TCHl H/ L.
Estos registros de lectura y escritura es-
tn destinados a almacenar el valor cap-
turado del contador del TIM cuando el
canal x est funcionando como entrada
de captura, o el valor comparado en la
salida cuando funciona como salida de
comparacin.
En el modo de ent rada de capt ura
(con MSxB:MSxA
=
00), l a l ectura del
byt e al t o del regi st ro del canal x
(TCHxH) bl oquea l a entrada de cap-
tura hasta que l a parte baj a (TCHxL)
sea l eda;

de forma si mi l ar, en el
modo de sal i da de comparaci n (con
MSxB: MSxA 00), al escri bi r el byt e
al to del regi stro del canal x (TCHxH)
se bl oquea l a sal i da de comparaci n
hasta que l a parte baj a (TCHxL) sea
tambi n escri ta. En cual esqui era de l os
registros, la accin de un ciclo de reset
siempre pondr un dato indeterminado .
Figura 25.7 Caractersticas y
efectos del bit de control CHxMM en la salida PWM
Registro: TCH0H
Dieccin: $ffi26
Bt7 6
Lectura:
Escritura:
Reset
Registro: TCH0L
Direccin: $0027
Lectura:
Escritura:
Reset
Regstro: TCHIH
Direccin: $ffi29
Lectura:
Escritura:
Beset
Registro: TCH1L
Direccin: $0024
Lectura:
Escritura:
Eeset Indeterminado desous del resef
Figura 25.8 Registros de los canales delTlM (CH0H/L:TCHIH/L)
1
SALIDA DE
COMPARACIN
T
SALIDA DE
COMPARACIN
snLrJn oe
COMPAMCIN
Li
lo
el
IT
^)
S
C
r(
Sl
ir
tl
Indeterminado despus del resef
Indetorminado desous del resef
Indeterminado desous del resef
MA-
$tb &lcn:.
curco prctico sobre Microcontrotadores
&
La industria Parallax Inc. ha tomado como base a
los microcontroladores PIC y ha desarrollado para
ellos una versin simple del lenguaje BASIC, lla-
mada PBASIC, para construir una pequeray ver-
stil computadora denominada BASIC Stamp.
Gracias a estos dispositivos, los microcontrolado-
res han venido siendo utilizados inclusive por per-
sonas que conocen poco o nada de su arquitectura
interna, y que no poseen experiencia en el desarro-
llo de programas en lenguaje ensamblador.
curco prctico sohre Microcontrotadores
&kl
,:#
Lcs urietucunilalatiures D/lStG Stuurlr
En esta leccin estudiaremos el microcontrola-
dor BASIC Stamp I (BS1-IC)
desarrol l ado por
Parallax Inc. Esta versin de microcontrolado-
res usa la tecnologa de montaje superficial y la
popularidad del lenguaje de programacin BA-
SIC para construir un dispositivo de bajo cos-
to, reducido tamao, y alta eficiencia, que se
puede utilizar como una pequea computado-
ra de fcil manejo y mucha versatilidad en la
gran mayora de tareas para la industria, el co-
mercio, la educacin y el entretenimiento.
El BASIC Stamp I se compone, en cual-
quiera de sus versiones, de un lenguaje de pro-
gramacin y una estructura de circuitos que lo
soporta. El lenguaje de programacin se deno-
mina PBASIC,y ha sido desarrollado por Para-
llax segn algunas instrucciones tpicas de la
versin simple del lenguaje BASIC, rales como:
GOTO, FOR...NEXT, IF...THEN, GOSUB,
y OUTPUT, complementado con algunas otras
instrucciones especiales creadas para facilitar la
comprensin y el manejo de las tareas de con-
trol y de monitoreo desde el microcontrolador,
como por ejemplo: SERIN, P\fM, BUTTON,
COUNT, DTMFOUT, y PULSIN.
El hardtaare se instala sobre un pequeo cir-
cuito impreso de monraje superficial y en l se
incluyen: un microcontrolador PIC de Micro-
chip con el programa residente (firmutare) del
intrprete de las instrucciones, una memoria de
acceso serial tipo EEPROM, un regulador de
+5V un oscilador, y un circuito de reset auto-
mtico a la desconexin (Brownout).
Para programar el BASIC Stamp I el usuario
slo debe tener conocimientos del lenguaje de pro-
gramacin BASIC y disponer de algunos requeri-
mientos mnimos en su equipo; sros son: el sofi-
ware adecuado, una computadora con sistema ope-
rativo MS-DOS 2.0 superior, 128Kbpes dispo-
nibles en memoria RAM, y el puerto paralelo libre.
La
BS]
gur
ceF
SI P
fila
esPi
vor
tos
nex
cir
los
dor
rra
ne(
( a'
PAI
t an
cor
tra
(oc
l al
ne(
fer,
est
be
volr
tr t
sir
mer
PAI
dor
es
exu
BA
me
Figura 26.1 Aspecto fsico, distribucin de los componentes y de los pines del BAStc stanp t
PWR
GND
PCO
PCI
+5V
nes
PO
Pl
BSl - lC
P2
P3
P4
P5
P6
P7
..S{6, a
Su& &Kt,.i.
curco prctico sohre Miuocontrotadores
&fl
Di stri buci n de
pi nes
r!*l
SASIC $tamp I
La versin del BASIC Stamp
BSI-IC, que se muestra en la fi-
gun26.l,se compone de cator-
ce pines yse fabrica en estnrcnra
SIP
(empaquetado de una sola
fila) para disminuir an ms el
espacio ocupado por el dispositi-
vo y faciliar su acople en circui-
tos impresos y tableros de co-
ner<iones
(pro
n b o ards). l^a asigna-
cinylas funciones definidas para
los pines de este microconuola-
dor se describen a continuacin:
l' in I VIN (PWR):pormediode
este pin el microcontrolador reci-
be la fuente de alimenacin de
volaje no regulada que puede es-
tar entre 6 y I 5VCC para estaver-
sin, y la regula a +5VCC por
medio de un regulador interno,
para alimenar al microconuola-
dor y d resto del circuito. Cuando
esa enuada se alimena se pueden
ntraer +5VCC por el pin 5 del
BASIC Samp con el objeto de di-
menar algunos circuitos ortemos.
Pin 2, GND: este pin es la tie-
rra del sistema y debe estar co-
nectado con la tierra de la PC
(a
travs del pin 25 del puerto
paralelo) para programar correc-
tamente el microcontrolador.
Pin :1, llC Out {PO( )): este pin
conecta la seal de control de
transferencia de datos, BUSY
(ocupado), del puerto paalelo de
la PC con el microcontrolador.
llin +, I)C I rr
( I' ( )l i: este pin co-
necta el terminal para la ans-
ferencia de datos DO del puer-
to paralelo de la PC con el mi-
crocontrolador para programar
el dispositivo.
l'in "i. r r\
esaentradasehadis-
puesto en el BASIC Samp I para
conectar una fuente devolaje re-
$da
entre 4.5VCC y 5,5VCC
para alimenar el sistema- Si el cir-
cuito se dimenapor este pin, no
se debe utiliza la entrada de ali-
menacin V^
P\f/$.
l' r {, lf I \,
el circuito del mi-
crocontrolador usa este pin
como la entrada de reset activa
en nivel bajo de todo el siste-
ma, sta puede ser colocada en
. . . . . r . . . . r . . .
e
L
g
r
Figun fr.2 Arquitectura del microcontrolador BASIC Sbmp I
Ea
+) Z
9CA( 5
: o
o
l g6) o
*EE
H 8. 8.
Go
o
AEE
E( D( D
o==
=cl cl
o- -
_oo
( | ) ! t E
Er ! o
- F
rt
+
o
tt
.E
tt
g
=
ED
E
g
c

t
cEE

t t =
9E
E-
ee
i5ro
curso prclico sotue Microcotttotadotes
<l*#
Las nrict'ccun'olutiutrs D/LStG Staurlr
cero lgico para activarlo; pero no se debe poner
en nivel alto, porque afecta el comportamiento
del circuito de broutnoutque se encarga de gene-
rar un resetcuando la alimentacin cae por deba-
jo de 4Y, con el objeto de proteger el sortware
del dispositivo.
estos ocho pines son los
puertos de entrada o salida del microcontrolador;
cada uno de ellos puede manejar en ronfiguracin
drenadero
(snhing) hasta 25mA, y en configura-
cin sumidero
(sourcing) hasta 20mA. No obstan-
te las limitaciones en disipacin de potencia debi-
do al tamao reducido del dispositivo, establecen
en 50mA la mxima corriente que puede obte-
nerse en forma simultnea por todos sus puertos.
En l a fi gura26.2 se muestra el di agrama el ec-
trni co esquemti co del si stema que confor-
ma al mi crocontrol ador BASIC Stamp I, en
el l a se pueden ver: el mi crocontrol ador de
Mi crochi p PIC16C56 que es l a base del si ste-
ma y en el cual est grabado el programa in-
trprete de l as i nstrucci ones PBASIC, l a me-
moria serial EEPROM de Microchip 93LC56
que recibe y guarda el programa transferido
desde l a PC para que pueda ser ej ecutado pos-
teriormente por el microcontrolador, el circuito
de proteccin brownout del reset, el regulador
RlEl{IE DE PODER (votts)
CORRIENTE TOTAL (mA)
5- 9 50
12 40
25 10
40 : - 3
Ta b t a 26. I C a
p
ac i d a d d e I r e
s
u t a *,,
ir:::frtil, :; #::r::,n
de voltaje integrado de +5V que alimenta todo
el sistema, y el circuito de oscilacin de 4MHz.
En la figure 26.3 se muestra la tarjeta para el
desarrollo de prototip os (carrier board) diseada
por Paral l ax para el mi crocontrl ador BASIC
Stamp I; sta cuenta con terminales para la co-
nexin de una batera de 9VCC, el conector
(socka)
parala conexin del BASIC Stamp I, un conec-
tor paralelo al microcontrolador que deja dispo-
nibles todos sus pines, un pulsador de reset,los
terminales para la conexin del cable de comu-
nicacin, y la tarjeta muldusos, sobre la cual se
pueden montar pequeos circuitos prototipo, lo
que resulta bastante til en la etapa de experi-
mentacin y desarrollo de algn proyecto.
Los circuitos que se construyan sobre la tar-
jeta de prototipos, pueden ser alimentados tam-
bin con el regulador interno de +5V pero esto
slo se puede hacer si se tiene en
cuenta que ste tambin alimenta al
microcontroladot y, que su capaci-
dad est en funcin de la magnitud
de la fuente de alimentacin en la
entrada
(VIN).
En la tabla 26.I se
muestra la relacin que hay entre el
voltaje de la fuente de alimentacin
y la corriente mxima que puede en-
tregar el regulador interno del BA-
SIC Stamp I.
l -
IIPAI.ABF
lP-'t'
I
l *o
in-
5
t.' _
t.'
l *u
5
Ftgm
El BASIC Stamp tiene
ciones de memoria de
256 posi-
Programa
EEP]
usuar
ltin
de er
En l
des d
el pr,
y fur
I
las n
defir
las r'
figur
aDi
(Pin
dos
lor
l
cede
es dr
Sbit
del r
bits <
se
Pr
Puei
ledr
mie
en li
es el
Figura 26,3 Tarjeta de prototipos y cable de programacin del nicrocontrolador
BASIC Stamp I
#
&irr*.L
curco prctico sobre Microcontrotadores
PALABRA BYTE BIT NOTAS
Puerto Pins
Dim
Pin0-Pin7
Dir0-Di17
Pines V0; direccionables bit a bit
Pines de ndde direccin l/0:
dirminnahlpc hit a hif
WO BO
B1
Bito-Bt7
BitS-Bit15
Direccionables bit a bit
Direcnionables bit a bit
W1 82
R?
w2 B4
B5
W3 B6
87
W4 B8
BS
W5 810
R1 1
W6 812
813
Umdo por la instuccin G0SUB
Usado
por
la insuccin G0SUB
' l l . , r t - i . .
LU- UL LT1
Con el registro Dirs, y a travs de sus zrs (DirO
aDirT), que son \os bits que controlan la direccin
de los puertos del microcontrolador, se define la
condicin del pin del pueno como una entrada o
como una salida. Con un
"0"
puesto en cualquiera
de estos bits, sedefine el mismo como una entrada;
mientras que con un
"
1" se configura cualquiera de
los pines del puerto como una salida.
Normalmente, el algoritmo ms lgico para
acceder correctarnente a los pines de los puertos
consiste en definir primero la direccin de stos,
y luego leer o escribir cualquier dato en ellos.
Figun fr.4 Mapa de la memoria MM pan etusuario del BAStc stamp t
Como un ejemplo, por medio de las dos instruc-
EEpRoM y 16
futesde
memoria RAM para el #:il:ifil'fi:'''il,*ffih:S,1:f:::.l
usuari o, y, por medi o de l os regi stros de esta tromsal toscomoentradasyl atransferenci apos-
ltima, se tiene acceso a los pines de los
Puertos
terior de un uno lgico al puerto 0 (P0= 1):
de entrada o salida y a las variables disponibles.
En la figura 26.4 se describen las 16 localida-
dirs
=
$0F
'Formato
hexadecimal
des del mapa de memoria RAM disponibles para pins
=
%00000001
'Formato
binario
el programador, y los pines, registros, nombres
y funciones definidas para cada una. Adicionalmente, un slo pin del puerto pue-
de ser ledo individualmente por medio de algu-
En este microcontrolador, y dependiendo de na instruccin como Bitl
=
Pin3; sta, por ejem-
las necesidades del programa, el usuario puede plo, guarda el estado lgico del pin 3 del puerto,
definir el formato del espacio en memoria para previamente definido como enrrada, en la varia-
las variables y los puertos I/O, stos pueden con- ble Bitl. Tambin, todos los 8 pines del puerto
figurarse y accederse bit a bit (PinO a Pin7, DirO pueden ser ledos y guardados fcilmente en cual-
a Dir7, y BitO a Bitl5), en formato de un byte quiera de las variables de un byte; la instruccin
(Pins, Dirs, y B0 a B13), o como una palabra de siguiente es un ejemplo en el que se transfiere el
dos bytes (Port, y\70 a\l 6). estadodel puertodel mi crocontrol ador(todossus
Sbits) a la posicin en RAM de la variableBT:
[,os puenos de este microcontrolador se pueden ac- f,/
=
pins
ceder y controlar por medio del registro Port, que
es de l6bits y est compuesto por dos registros de
8bits cada uno, llamados Pins y Dirs. Por medio En lo que a la programadny al buen uso de este
del registro Pins que se compone a su vez de los 8 microcontrolador se refiere, adems de conocer bien
bits de enuada o salida de los puenos (Pin0 a PinT), las 32 instrucciones del PBASIC y la estructura de
se pueden leer o escribir datos en los pines de cada
progamacin brsica de cualquier lenguaje de pro-
puerto independientemente; cuando un puerto es
gamacin de alto nivel, el usuario debe conocer el
ledo, el pin correspondiente se lee directamente; programa de sopone que suministra el fabricante
mientras que cuando es escrito, el dato guardado Parallax; este es similar a un editor de texto sencillo,
en la RAM, en el espacio definido para tal variable, ejecuable en el entorno DOS de la PC, y, por medio
es el que se transfiere al pin del puerto. de los comandos de ste, se puede editar, compilar,
curco
prctico
sobre Microcontrotadores
&k
t "t
#
o
o
a
o
a
o
o
o
o
o
a
a
o
o
o
o
o
a
o
o
o
1 VIN
2 VSS
3 PCO
4 PCI
5 VDD
6 RES
7P0
8P1
9P2
10 P3
11 P4
12 P5
13 P6
14 P7
P
u
E
R
T
0
P
A
R
A
L
E
L
0
P
c
Lcs uricrucanrlutiurrs E/l,StG Stunqt
BSl -l C
Figura 26.5 Cable de comunicacin para el BASIC Stamp I
medi o de l as i nst rucci ones SERI N y
SERUOT, tambin operan a +5V este ni-
vel es suficientemente seguro para comuni-
car eftcazmente el microcontrolador con
otros dispositivos a distancias cortas (me-
nos de 3m), pero, cuando la comunicacin
se hace a ms de 3m, los datos transmitidos
pueden sufrir alteraciones, y por esto se re-
comienda elevar los niveles de comunica-
cin por medio de una interfaz serial RS-
232 esrndar tal como el MAX232, el
LIl l8IACN, o alguna otra similar.
Esto tambin puede ser necesario en algunas
tareas que requieren comunicar el BASIC Stamp
I, a travs de sus puertos, con el puerto serial de
otro dispositivo o equipo, ya que muchas PC cuan-
do operan como equipo receptor no aceptan ni-
veles TTL a travs del puerto serial; en la figura
26. 6 se muest ra un ci rcui t o t l pi co con el
II1181ACN que sirve para cambiar los niveles
TTL por niveles de comunicacin RS-232.
El lenguaje de programacin del BASIC Stamp I
est compuesto por un conjunto reducido de ins-
trucciones (32 instrucciones) de alto nivel, y se
denomina PBASIC; ste ha sido diseado por
Parallax segn una versin simple del popular
programa BASIC. Con este programa el disea-
dor cuenta don muchas herramientas que son di-
fciles d
dor trar
son de
disposir
rutinas
tivan p<
este len
directa
DB-25
depurar y transferir el progama hacia la memoria
EEPROM del sistema BASIC Samp I, para su pos-
terior ejecucin.
Para programar el microcontrolador se usa el
puerto paralelo de la computadora, pero para ello
se debe usar el cable DB-25 a 3 pines que se sumi-
nistra especialmente para este propsito por el fa-
bricante; en la figura 26.5 se muestra la configura-
cin que tiene el cable de comunicacin que debe
usarse entre la PC y el BASIC Stamp I. Este cable
slo usa tres pines del pueno paralelo de la PC para
comunicarse con el microcontrolador, tal como
puede verse en el diagrama esquemtico de la figu-
ra26.2, y ellos son: el terminal de datos
(DO), la
seal de control del bus (BUSY), y la tiera
(GND).
El BASIC Stamp I opera con niveles TTL,y
por lo tanto la salida y entrada de comunicacin
serial a travs de sus puertos, y que se controla por
Sal i da de datos (RS-232; DB9 pi n 2)
Entrada de datos (RS-232; DB9 pin 3)
Salida de datos (BASIC Stamp; cualquier pin l/0)
Entrada de datos (BASIC Stamp; cualquier pin l/0)
Figura 26.6 lnte-faz serial RS-232 tpica con
el driver LTI 181ACN
#
&kt'L
curco pnctico sobre Microcontotadores
fciles de construir usando el lenguaje ensambla-
dor tradicional de los microcontroladores y que
son de frecuente uso en las aplicaciones de estos
dispositivos en cualquier campo; algunas de estas
rutinas diseadas como herramientas y que se ac-
tivan por medio de las instrucciones especiales de
este lenguaje, son: generacin de sonidos, lectura
directa y sin rebote de pulsadores e interruptores,
l r , 1l n! r
LL- UL L
lectura de resistencias variables, comunicacin
serial RS-232, generacin y medicin de tiem-
pos,
I
salida P'WM, enrre orras.
En la tabla 26.2 se muestra el conjunto de32
instrucciones del lenguaje PBASIC que sopona
al microcontrolador BSI-IC y se hace una des-
cripcin breve de la o las funciones de cada una.
sA[-]t0s
I F. . . . THEN
BRANCH
GOTO
GOSUB
RETURN
crcL0s
FOR. . . . NEXT
{LET}
LOOKUP
LOOKDOWN
RANDOM
OUTPUT
L0t{
HIGH
TOGGLE
PULSOUT
INPUT
PULSIN
REVERSE
BUTTON
EEPROM
READ
WRITE
TIEMPO
PAUSE
CONTROL DE
NAP
SLEEP
END
DEPURACIN
DEBUG
Bi f urcoci n condi ci onol
Sol t o o l a di r ecci n
especi f i codo por el of f set
Sol t o o uno di recci n
Sol t a o l o subrut i no di recci onodo.
5e permi t en host o 16 G0SUB
Ret orno desde subrut i no
Est obl ece un ci cl o de est e t i po Numri cos
Permi t e moni pul oci n de vori obl es como A=5, B=A+2, et c.
Posi bi t i t o operoci ones como sumo, rest o, mul t i pl i coci n,
di vi si n, l mi t e mxi mo, l mi t e m ni mo y operoci ones
l gi cas como AND, 0R, XOR, NAND, NOR y XN0T.
I nst r ucci n por o monej o de t obl os. Per mi t e el monei o de dot os
medi ont e of f set y su ol mocenomi ent o en vor i obl es
- espec f i cos
Busca nmer os i guol es ( de 0 o N) y 1o ol moceno en vor i obl es
Genero un nmero seudool eot oni o
ENTRADAS Y SALIDAS DIGITATES
Configuro un pin como soli.do
Pone un oi n de sol i do en ni vel boi o
Pone un bin de solido en nivel ollo
Configuro un pin como solido e invierte su estodo lgico
Gener o un. pu. l so de sol i do i nvi r t i endo el est odo 1gi co de un
pl n por orgun t l empo
Configuro un pin como entrodo
Mide un
pulso
de entrodo
Si un pi.n est configurodo cono solido,
1o
pone
como entrodo v viceverso.
Hocb el ontirebote de-un botn y puede hocer un
sol t o o uno di recci n si os se deseo.
EITRADAS Y SALIDAS DIGITALES SERIALES
SERI N Ent r odo ser i ol de dot os. Posee col i f i codor es y vor i obl es que,
si se cumpl en, permi t en el al mocenomi ent o de 1os dat os
reci bi dos. Los vel oci dodes
penmi t i dos son 300, 600, 7. 200 y 2. 40O bps. Los dot os
deben cumpl i r con 1o especi f i coci n de no pori dod, dot os
de8bi t syl st opbi t .
SEROUT Env o dot os seri ol ment e o 30O, 600, . I . . 200 6 2. 406 bps,
con
91
mi smo f ormot o que se ocobo de descri bi r.
EITTRADAS Y SALIDAS AMLOGAS
PftI.I
POT
SONIDO
SOUND
ACCES0 A LA EEPRO.I
Ent r ego uno seol PJVM y despus conf i gur o el pi n como uno ent nodo.
Se uso poro generor voltojes (de 0 o 5) con un
condensodor y uno resi st enci o.
Lee un potencimetro de 5 o 50 Kohm y escolo el resultodo.
Genero ol gunos not os. Lo not o 0 es si . t enci o, not os I o t 27 son t onos
oscendentes, y notos 128 a 255 son ruidos bloncos.
Al moceno dot os en EEPRoM ont es de descor gor el p?ogr ona BASI C.
Lee un byt e de EEPR0M y l o ol moceno en uno vori obl e
Escri be un byt e en EEPR0M
_^__- - _Det i ene
1o ej ecuci n pon un per odo de 0 a 65. 536 mi l i segundos
POTENCIA
Entro en modo de bojo consumo por un corto perodo
Ent ra en modo sl eep. o de_boj o consumo por un t i empo
de 0 o 65. 536 segundos. El consumo de pot enci o se
reduce oproximodomente o 20
ttA,
Entro en nodo sleep hosto que combio el ciclo de controt
de potencio o se conecte 1o conputodoro
Envi o vori obl es o l o comput odoro poro que
seon vi st os
Tabla 26,2 Resumen del clnjunto de instrucciones del lenguaje PBASIC para
el microcontrolador BASIC Stamp I
curco prctico
sobre M crocontrotadores gk nt
#

Lus nr[cr'or,'u uil'a latiu r'as E/{St0 Stuurll


PARA SABER MS:
Ejemplo de programacin
con PBASIC
Por medio de este programa
diseado a
propsito
para
exhibir la fortaleza y
el uso apropiado de dos
de las instrucciones especiales de este lenguaje,
tambin se ilustra la eficiencia y
facilidad de uso
del mismo. En este caso se
pretende
construir un
circuito que
detecte la intensidad de la luz y lo in-
forme por
medio de un tono audible variable; esto
se har por medio de un
pequeo parlante piezo-
elctrico (con alta impedancia, ms de 40 A) co-
nectado al pin
del puerto
uno, y la intensidad de la
luz recibida se detectar a travs de una fotocelda
(con resistencia entre 5k y
S0k) conectada en el
puerto
cero.
Para esto se leer en todo momento el valor de la
resistencia en los terminales de la fotocelda por me-
dio del puerto
P0, y,
de acuerdo con su magnitud, se
cambiar la frecuencia del tono y
se entregar al
parlante por
el
puerto
P1. En este caso se usarn las
instrucciones especiales POT y
S0UND, que
estn
diseas para
leer resistencias variables y generar
tonos, respectivamente.
El programa que
nos permite
este desarrollo se mues-
tra y
comenta a continuacin:
repetir: 'Define la etiqueta,,repetir".
pot
0,1fi1,b2 'Lee la resistencia de la fo-
'tocelda en elpin del
puerto
'0, y guarda la lectura en la
'variable b2.
b2=122 'Divide el resultado de la
'lectura por
2, de forma tal
'que
no exceda nunca de 1 28.
'Genera un tono por
el pin
' del puerto
1, y en 1, la
'frecuencia depende del
'valor en b2 y el tiempo de
' duracin deltono es 5 x
' 12ms =
60ms.
sound 1,(b2,5)
gob
rcpelir 'Salta incondicionalmente a
'repetir
el ciclo.
0bservando este programa
resultan claros los be-
neficios que
se obtienen al trabajar con un len-
guaje
de alto nively un programa
interprete (firmwarel,
dedicados a la programacin
de microcontrolado-
res; el reducido nmero de instrucciones usadas y
un cdigo de programa
amigable, poderoso y
com-
pacto,
son su principal
ventaja.
En la figura 26.7 se muestra el diagrama esque-
mtico simple que
se requiere para
montar este
proyecto
en la tarjeta de prototipos
0 en un tablero
para
el montaje de circuitos electrnicos
@rotoboar.
Para dar inicio la ejecucin de las tareas de este pro-
grama,
solamente se require que
ste sea grabado
por medio delcable de programacin
en la memo-
ria EEPR0M, y posteriormente,
conectar la fuente de
alimentacin al microcontrolador.
PARLANTE
PIEZOELECTRICO
#
&kt;.
curco prctico
sobre Microcontrotadorcs
Figura 26.7 Diagrama esquemtico det medidor audible de tuz
En esta leccin se estudiar el conjunto de
instrucciones del lenguaje PBASIC de Para-
llax, Inc. que est dedicado a la progfama-
cin desde alto nivel de los microcontrolado-
res BASIC Stamp I, este conjunto de instruc-
ciones lo integran 32 de ellas, muy compac-
tas, poderosas y con funciones especializadas
en el manejo de las tareas ms frecuentes en-
comendadas a los microcontroladores.
Curco prctico
sobre Microcontrotadores
&kr-t
#
-l
ot4uulc e [nslrucclones se Ls nrlcr-ccurrLerlcrcs ti-l.Sl Suanrl L
El reducido conjunto de 32 instrucciones del len-
guaje PBASIC est compuesto por algunas instruc-
ciones tpicas del lenguaje BASIC y de otras especia-
lizadas que poseen multiples funciones. En esta lec-
cin las estudiaremos con todos sus interruptores, y
para facilitar la ubicacin rrpida de cualquiera de ellas,
se har en orden alfabtico: las instrucciones son:
Nota:
De acuerdo con la nomenclatura para la repre-
sentacin de las instrucciones, se escribirn en-
tre parntesis los trminos obligatorios, entre
corchetes los trminos opcionales, y los comen-
tarios empezarn con una comilla simple.
Con esta instruccin se salta a la direccin es-
pecificada por el desplazamiento (ofrtt), si est
dentro del rango.
ofrtt el desplazamiento es una variable o una
constante que especifica la direccin del salto
ent r e0yNl ugar es.
addressX: las direcciones son nombradas por
etiquetas que definen hacia donde se debe
hacer el salto, se separan por coma y su n-
mero define el alcance del desplazamiento.
Esta instruccin es unavariacin de IE..THEN,
as por ejemplo, si se escribe la siguiente lnea de
comando:
BRANCH b3,(caso-0,caso_1,caso 2)
se podr obtener el mismo resultado que al
escribir las tres siguientes lneas de comando:
IF b3=0 THEN caso 0
IF b3=l THEN caso 1
lFb3=2 THEN caso 2
' si
b3=0 sal ta a l a
etiqueta
"caso_O"
'si
b3= 1 salta a la
etiqueta
"caso_l"
'sib3=2
salta a la
etiqueta
"caso_2"
En cualquier c:rso, cuando el
ffiet
este fuera de
rango (en este ejemplo, si b3 es mayor que 2),la
instruccin BRANCH no ser eiecutada.
Con esta i nstrucci n se habi l i ta l a ruti na
de l a entrada anti rrebores para i nterrupto-
res y pul sadores, con autorrepeti ci n, y sal -
to a una di recci n cuando el estado l edo es
el esperado. El ci rcui to externo para el pul -
sador o i nterruptor puede ser acti vo en ni -
vel baj o o en ni vel al to, tal como se mues-
tra en l a gara 27.L
pin: es una variable o una constante que es-
pecifica el pin I/O que se va a usar como en-
trada de interruptor o pulsado entre 0 y 7.
dounstate: es una variable o una constanre
que especifica el estado lgico acrivo, y que
ser ledo al accionar el interruptor o pulsa-
dor, ste puede ser 1 0.
delay: es una variable o una constante en-
tre 0 y 255 que especifica cuanto tiempo
(en
ci cl os de esta ruti na) debe mantenerse
acti vado el i nterruptor o el pul sado antes
de i ni ci ar l a autorrepeti ci n o l ecrura suce-
si va del pi n defi ni do. Lor d.os val ores exrre-
mos 0 y 255 son especi al es; cuando se pone
0 Ia ruti na devuel ve el estado de l a entrada,
pero no ej ecuta el anti rrebote ni l a aurorre-
pet i ci n; mi ent ras que con 255, si se ej ecu-
ta el anti rrebote.
Haca el pin l/0
Haca el
pi n
l /0
Activi'alto
(presi onado = 1)
Figura 27.1 Conexin externa de los interruptores o
pulsadores
en sus dos estados posibles activo-alto y activo-bajo
tr^+
hHac a
r/o
r
F
=
Activo bajo
(presionado =
0)
$UtF &fn").
Curco prctico
sobe Microcontrotadores
&g
rate: es una variable o una constante que de-
fine la velocidad de las lecturas sucesivas y se
expresa entre 0 y 255 ciclos de esta rutina.
byteuariable: es el rea de trabajo (cualquier
registro de trabajo de un byte) de esta ruti-
na. La vari abl e el egi da debe ser borrada con
0 lgico antes de usarla por primera vez des-
de l a ruti na de BUTTON.
targetstate: es una variable o una constante
que especi fi ca el estado l gi co en que debe
est ar el pul sador o i nt errupt or (O=l i bre,
1=presi onado) para que el sal to ocurra.
address: es una eti queta con l a que se i n-
di ca a donde se debe sal tar si el targetstate
se cumpl e.
Con esta instruccin se puede monitorear el
curso del programa en cualquier momento,
por medio de ella se puede visualizar en la
pantalla de cualquier PC conectada con el
BASIC Stamp I el estado de un bit, un byte,
o una palabra. Con las siguientes lneas de
comando, a manera de ejemplo, se ilustran
las opciones de esta instruccin:
DEBUG b4
DEBUG #b4
'muestra "b4=",
'seguido
por el
valor de b4
'muestra
el valor
' deb4
DEBUG "lalectraes",M'muestra"lalectu-
'ra
es", seguido
por el valor de b4
'muestra
el valor
'deb4
en binario
'muestra
el carc-
'ter
ASCII que es
'equivalente
al
valor de b4
DEBuG'entnadas=",b3,M,'muesta los carac-
'racteres "entra-
'das =",
seguidos
por los valores de
' b3
yb4, y retor-
'na
el cursor
l , r 11- 15.
L\.:UL LU.
Esta instruccin tambin acepta algunos co-
mandos propios del manejo de la pantalla de
la PC, tal como se muestra en la ltima lnea
de comando del ejemplo anterior, stos son:
CR (carriage
return) para el retorno del cur-
sor al comienzo de la lnea, y CLS (clear screen)
para borrar la
yentana
de visualizacin. Aqu
tambin se puede ver que lo que se escriba
entre comillas ser mostrado sin cambio y que
por medio de comas se deben separar las va-
riables diferentes en una lnea de comandos.
Con esta instruccin se pueden guardar va-
rios datos en la memoria EEPROM del siste-
ma que luego sern utilizados por el progra-
ma, o que no deban ser modificados.
Iocation: la ubicacin es una variable o una
constante opcional entre 0 y 255 que nos in-
dica la posicin inicial de la EEPROM a par-
tir de la cual sern guardados los datos que
sean enviados. Si no se escribe una ubicacin
inicial, la posicin inicial panla escritura de
l os datos ser l a prxi ma di sponi bl e en l a
memori a.
data: los datos son las variables o consranres
expresadas enSbits, y que sern guardadas en
localidades consecutivas de la memoria apar-
ti r de l a posi ci n de i ni ci o.
Con esta instruccin el microcontrolador en-
tra en adormecimiento (modo
sleep) y slo des-
pierta al conectar la PC, o durante los ciclos
de potencia. En este estado, y asumiendo que
el BASIC Stamp I no est manejando carga
por sus puertos, la corriente consumida se re-
duce a cerca de 20UA.
Es importante considerar el caso en el cual se
ejecuta la instruccin END mientras algn
puerto configurado como salida est activo en
cualquier nivel (1
0) y est manejando una
carga; en esta situacin el sistema continuar
suministrando la corriente de lacargadesde la
DEBUG #o/ob4
DEBUG #@b4
Curco prcco
sobre Microcontrotadores ek n":
&
&c
)
fuente interna regulada, pero cada 2,3s inte-
rrumpir la corriente a travs de todos los puer-
tos por cerca de 18ms. Esto se debe a que el
temporizador del watchdog propio del chip
intrprete y que es inalterable, genera un reset
cadaZ,3s que despierta al microprocesador de
su adormecimiento y configura a todos sus pi-
nes como entrada; esta condicin se mantiene
por cercr de l8ms que es el tiempo que tarda
elf.rmware del PBASIC en tomar el control,
resablecer el estado de los pines, y poner a dor-
mir nuevamente el BASIC Stamp I.
Por lo anterior, y si se va a usar esta instruc-
cin, asegrirese de ejecutarla en el momento
apropiado, o de conectar cugas que puedan
soportar estas desconexiones, o que tengan
una interfaz que las admita.
(r.
FOR virriable
=
strt T0 end
ISTEP l-l
increnrent]...NEXT
{variable}
Con esta instruccin se implanta un lazo del
tipo FOR...NEXT limitado a ocho anida-
mientos como mximo.
uariabl: es una variable que se usa como
contador interno para limitar el comienzo y
el final del ciclo. Con variables tipo lr se
puede contar de 0 a 1, con tipo byte desde 0
a255, y con tipo word desde 0 hasta 65 .535.
start: es una variable o una constante que
especifica el valor inicial de la variable del
contador.
end: es una variable o una constante que
especifica el valor final de la variable del
contador.
increment: es una variable o una constante
opcional que determina el incremento o de-
cremento del contador del ciclo; si no se defi-
ne un valor particular para el paso
(step) la
variable incrementar en uno, mientras que
si se pone el signo
(-)
decrementar en uno.
aariabh
(deEals
d NHff): es opciond y se
usa para aclarar a cual ciclo FOR..NEXT se
refiere el NEXT en cuestin, cuando hay va-
rios de estos ciclos anidados.
7. COSUB aclclress
Esta instruccin es para un salto incondicio-
nal a una subrutina, al ejecutarla, el curso del
programa se dewla hacia a la direccin espe-
cificada y continua desarrollandose a partir
de alll hasta que encuentra la instruccin de
RETURN. Antes de saltar el sistema guarda
la direccin de la prxima instruccin para
continuar la ejecucin del programa desde el
mismo punto, al retornar de la subrutina.
address:es la etiqueta con la que se nombra
la direccin para el salto. Slo se aceptan
hasta 16 llamados a subrutinas, y hasta 4
anidamientos.
8. GOTC) address
Esta instruccin es un salto incondicional a
cualquier pane del programa, al ejecutarla, el
curso del programa se dewla hacia a la direc-
cin especificada y continua su ejecucin a
partir de alll.
address: es la etiqueta con la que se nombra la
direccin para el salto.
9. HI GH pi n
Con esta instruccin se pone en nivel alto el
pin CIpecificado, y adems, si ste ha sido con-
figurado previamente como una entrada, ser
reconfigurado omo una salida.
pin: s lavariable o la constante con la que se
especifica el pin de salida aha, y de acuerdo
con el nmero de puertos disponibles puede
estarentre 0y7.
10. IF variatrle ?? value
{AND/OR
variable ??
value"..i T' HEN address
Con esta instruccin de sdto condicionado
se comparan una o varias variables con un
valor o valores y se salta a una direccin defi-
nida si el resultado es verdadero.
ii.'es uno de los siguientes operadores mate-
mticos: = (igual), <> (diferente), >.(mayor
#
ort
cut", pcco sbre t*cro^,ador,
qr
v'
aa
va
lra
Pr
ar
la
ta
v(
I l . t
c
ci
st
t(
vl
P
e
d
(
v
I
q
c
t
@
r-
. , . ' l
I '
I
i , l
I
"I
l r r
a-l
I
: - {
I
1t
I
:l
l l
que), < (menor que), >= (mayor igual que),
y <= (menor igual que).
aariabh: es la variable que se compara con el
valor o valores.
ualue: es una variable o una constante que re-
presenta el valor para comparacin.
address: es una etiqueta con la que se nombra
la direccin a donde se debe saltar si el resul-
tado de la comparacin o comparaciones es
verdadero.
Con esta instruccin se convierte el pin espe-
cificado en una entrada, sin importar cual sea
su condicin previa o el estado en que se es-
tn poniendo los puertos debido a dispositi-
vos externos.
pin: es la variable o la constante con la que se
especifica el pin que se va a usar como entra-
da, y puede estar entre 0 y 7.
Con esta instruccin se asigna un valor a una
variable y tambin se pueden efectua operacio-
nes lgicas entre los valores para definir el valor
que se asignar. El mnemnico de la instruc-
cin (LET)
puede omitirse; por ejemplo, la ins-
truccin
"I=7"
,s equivalente a"LEif
J=/".
OPERADORES DE LA INSTRUCCIN LET
Suma
Resta
Multiplicacin (devuelve la palabra baja del resultado)
, Multiplicacin (devuelve la palabra alta del resultado)
Divisin (devuelve el cociente)
Divisin (devuelve el residuo)
Mantiene una variable mayor o igual que un valor
.
Mantiene una variable menor o igual que un valor
AND lgica
0R lgica
XOR lgica
MND logica
N0R lgica
XN0R lgica
Tabla 27.1 Tabla de opendores acephdos por la instuccin
de Ngnacin L
| , . 11- l r .
t \ : UL L*
ii.'puede ser alguno de los operadores que se
muestran en la tabla 27.1.
uariable: es la variable a la que se le asigna el
valor directo, o el que resulta de la operacin
definida en la propia instruccin.
ualue(s): es la variable o la constante que se
tiene en cuenta para calcular el valor que ser
asignado a la variable.
En cualquier caso se debe tener en cuenta que
las operaciones llevadas a cabo por esta ins-
truccin entre los valores estn limitadas por
el manejo que el PBASIC le da a las variables
y a las operaciones matemticas.
Esta instruccin se utiliza para buscar uno o
varios valores dentro de una lista, en funcin
de un val or obj eti vo. Cuando el val or obj eti -
vo coi nci de con al guno de l os val ores de l a
l i sta, se guarda l a posi ci n que di cho val or
ti ene dentro de Ia l i sta
(0
a N) en l a vari abl e.
target: es el valor de la variable o la constante
que est siendo explorada (el valor objetivo).
aalue0 a ualueN: es una lista de valores con la
que se compara el valor objetivo.
uariable: es la variable en la que se guarda el
resultado de la bsqueda.
Como ejemplo para aclarar la estructura y la
funcin de esta instruccin se escribe la si-
guiente lnea de comando con comentarios, y
se supone que la variable b3 se carga en cual-
quier momento con la letra que representa a
uno de los tres comandos siguientes: giro
(G),
avance (A)
y paro (P).
LOOKDOV/N b3, (..G",..1t'"
*P'),b4
' si
b3="G" entonces b4=0
'si
b3='.A" entonces b4=1
'si
b3="P" entonces b4=2
r
I
il
mi n
max
&
I
u
v
curco prctico
sohre Microcontrotadores
&kt
&
/z:w)
or4unlo rj.e insr.rucciones d.e los nr[croconu'oladores B.].SLC Srinrr L
Esta irstruccin se utiliza para busca un valor es-
pecificado por un ofradentro de los datos de una
lisayguardarlo en unavariable. Esto quiere decir
quesi los elementos de unaabla son:3,5,7 y9;y el
ofrn o 2, la vanable contendr el nmero 7.
offet: es un nmero entre 0 y 255 que se usa
como ndice para buscar el valor.
ualue0 a ualueN: es una tabla de haxa 256
datos de 8 bits.
uariabh: es la variable en la que se guarda el
resultado de la bsqueda.
Con esta instruccin se pone en nivel bajo un
pin especificado. Si el pin ha sido previamente
definido como una entrada, esta instruccin lo
reconfigurar como una salida.
pin: es una variable o una constante entre 0 y 7
con la cual se especifica el pin I/O del puerto
que se va a utilizar.
Con esta instruccin se pone a dormir el mi-
croprocesador por un periodo corto de tiem-
po y se reduce el consumo de potencia hasta
en el 90olo. En la tabla 27.2 se resumen los
ocho periodos que pueden configurarse.
period: es una variable o una constante con la
que se determina la duracin del tiempo de bajo
consumo o de adormecimiento NAP El perio-
do puede definirse entre 0 y 7, y el tiempo de
NAP est determinado por la siguiente ecuacin:
Tiempo de NAP
=
18 x (2edoao
Cuando se usa esta instruccin to-
das las cargas conectadas en los pi-
nes de los puertos configurados como
sdidas continan siendo alimentadas
PinT del
por el BASIC Stamp I, pero es im-
stamp
portante recordar que al final de cada
periodo de NAP el microcontrolador
despierta debido aun reset, y que ste
Tabla 27.2 Tabla de seleccin de los periodos
de duncin del MP
configura todos los pines como entrada du-
rante 18ms; lo que ocasiona una interrupcin
de la corriente a travs de dichas cargas. Con
el siguiente programa, observando la salida en
el osciloscopio o el parpadeo en un diodo
LED, tal como se muestra enlagura27.2,
se puede demostrar dicho comportamiento.
'pone
en cero lasalidadel
'pin7
poneador mi r dmi -
'crocontrolador duranre
/ ms
GOTO Repetir
'salta
a ejecutar nueva-
'mente
la instruccin
.NAP
2
Por medio de esta instruccin se configura
como una salida cualquier pin del puerto que
se especifique.
pin: es la variable o la constante con la que se
especifica el pin que se va a configurar como
Figura 27,2 Circuitos que
se
pueden
usar
para
observar el efecto del
despeftar del periodo de NAE de acuerdo con el anterior programa
E
ei
r t
l c
er
P
s:
Perodo
0
1
2
3
4
5
6
7
n
la
d
ci
0
LI
n
r
2
Perodo
Duracin
-
del NAP
1 18ms
2 36ms
4 72ms
I 144 ms
16 288 ms
32 576 ms
64 1. 152 ms
128 2.304 ms
S
t(
A
o
D
cl
d
n
r
I
T
cl
l i
LO\r 7
Repetir:
NAP 2
L
q
t
t l
S
I
F
c
c
0sci l oscopi o
{ZeZp r<rl::.
Curco prctico sobre Microcontrotadores
&f,
salida, y de acuerdo con el nmero de puer-
tos disponibles puede estar entre 0 y 7.
Es importante recordar que, al comenzar a
ejecutar un programa o luego del reset, todos
los pines del puerto son configurados como
entradas por el sistema automticamente, y,
por lo tanto, el usuario debe configurar como
salidas aquellos que necesite.
Usando esta instruccin se detiene la ejecu-
cin del programa durante el nmero de mi-
lisegundos especifi cados.
milliseconds: es la variable o la constante con
la que se determina la cantidad de milisegun-
dos durante los cuales se va a detener la eiecu-
cin del programa. La pausa puede estar entre
0 y 65.535ms, y, puesto que usa el circuito os-
cilador del BASIC Stamp I como base de tiem-
po, su precisin es la misma,
*lo/o.
Al usar l a pausa tenga en cuenta que el pro-
grama i ntrprete del si stema sl o puede ej e-
cutar hasta 2.000 i nstrucci ones por segun-
do y que esta velocidad relativamente baja
puede ocasi onar probl emas si se deti ene l a
ej ecuci n en momentos crti cos, y en ci er-
tas tareas que dependen consi derabl emen-
te del ti empo.
Usando esta instruccin se puede leer cual-
quier tipo de resistencia variable entre 5 y
50k\7, como por ejemplo, un potencime-
tro, un restato, un termistot o una fotorre-
sistencia
(LVR), entre otras. LJn extremo de
la resistencia se debe conectar con el pin del
puerto, mientras que el otro lado se conecta
con un condensador a tierra, tal como se apre-
cia en el circuito tpico delafigara27.3.
Esta instruccin configura el pin especificado
como una salida y calcula indirectamente el
valor de la resistencia variable en un instante.
L\ : UL Li A
Haci a el
pi n l /0
Resi stenci a
vari abl e
(5-50ko)
0, 1 "r F
Figura 27,3 Circuito tpico para la adecuada conexin y lectura
de una resistencia variable desde el BASIC Stamp I
para esto el microcontrolador mide el tiempo
que tarda la descarga del condensador a travs
de dicha resistencia.
pin: es la variable o la constante (de 0 a7) en
la que se especifica el pin I/O en donde se ha
conectado la resistencia.
scalz: esla variable o la constante (de 0 a 255) que
se usa para definir el factor de escala del resultado
de la conversin, el cual internamente siempre
tiene una resolucin de Ibits.la lectura siempre
es multiplicada por la siguiente relacin:
Resultado = (lectura 16 bits xscale) 1255
uariable: es la variable que se usa para alma-
cenar el resultado final de la lectura escalada a
un valor de 8bits.
Con el siguiente programa, a manera de ejem-
plo, se lee continuamente el valor de un poten-
cimetro conectado en P3 y el resultado se en-
va al exterior
por
medio de la salida serial P4.
Leerpot:
POT 3,L70,b7
SEROUT 4,N3oo,(b7)
GOTO Leerpot
'lee
el potenci-
'metro
del pin 3
a l -
en D/
'enva
la lectura
'serialmente
por
'el
pin 4
va a leer nueva-
'mente
Por medio de esta instruccin se conviene el pin
especificado en una entrada y se mide un pulso
T
I
curco prctico
sobre M icrocontrotadores
&k
t ".:
#
\d
-
G
ur
le:
ot
P(
c:l
te
P
li(
m
cc
d
la
CI
ca
sir
s
u
Pr
el
sl
U
n
t
P
g
Salid
del
de entrada en unidades de 10ms. Esa insrruc-
cin siempre usa el contador interrlo del siste-
ma que es de l6bit, y por lo tanto la mxima
medida ser igual a0,65534 segundos.
pin: es la variable o la constante
(de
0 a7) en
la que se especifica el pin I/O que se va a usar.
state: es una variable o una constante que
puede ser 0 1 y con la cual se define tipo de
flanco a partir del cual se va a iniciar la medi-
cin del pulso, ste puede ser descendente o
ascendente respectivamente.
aariabh: es la variable que se usa para deposi-
ar el resultado de la medicin. Esta debe ser
una palabra de 16 bits
N0
a \16) para que
pueda albergar el contenido completo del con-
tador interno que puede contar entre 1 y
65.534unidades de tiempo
(10ms),
o de8 bits
(B0 a B13) para que pueda contener el registro
ms bajo del contador, con el que puede con-
tar entre I y 255 unidades de tiempo.
. i L I ' l
I L5( ) t I ' l '
l , i r , r i r r e
Por medio de esta instruccin se puede gene-
rar un pulso durante un tiempo especificado.
Este pulso se produce invirtiendo el estado
lgico previo del pin que se haya definido
como salida del pulso.
pin: esla variable o la constante
(de 0 t7) en
la que se especifica el nmero del pin I/O del
microcontrolador por el cual se va a generar
el pulso.
titne: es la variable o la constante en la que se
especifica la longitud del pulso en unidades
de tiempo de 10ms. Puede estar entre 0 y
65.535 unidades de tiempo,lo que le permi-
te al usuario generar un pulso de hasta
0,65535 segundos.
. l - l . l ' Wi l l
r i n, r l ut v, c1r l cs
Usando estainstruccin se puede producir una
seal modulada por ancho de pulsos
(P\f/M)
sobre cualquiera de los pines I/O del puerto.
Cuando lasalida.P\7M termina, el microcon-
trolador retorna automticamente dicho pin
Ftgun 2T.4 Circuito rr,tt
rt" ntri#[i:;:,f,;;l:,Ht#i
a la condicin de entrada, y esto nos permite
usar esta modulacin para generar un voltaje
anlogo entre 0 y 5V usando un circuito con
una resistencia y un condensador a tierra co-
nectados al pin de salida, tal como se muestra
en la figura 27.4; en este circuito el voltaje
anlogo se obtiene en terminales del conden-
sador, y la seal P\7M debe ser generada con-
tinuamente para actualizar o refrescar el nivel
de la carga del condensador.
pin: es la variable o la constante
(de
0 a7) en
la que se especifica el nmero del pin I/O del
microcontrolador por el cual se va a generar
la modulacin P'!7M.
duty: es una variable o una constante entre 0
y 255 con la cual se especifica el nivel de vol-
taje esperado, entre 0 y 5V respectivamente.
Ecl6:
es una variable o rna constante entre 0 y
255 cnlaodse determina la cantidad de cidos
de salid Caddcido de salida se tarda 5ms y el
nmero de ellos que se requieren est en funcin
del amao del condensador, los condensadores
ms grandes necesian de un mayor nmero de
cidos para alcanzar su plena caga (5V).
l sdida PVM emite una r:faga de ceros y unos
con una relacin determinad por el valor de la
variable daty, si sta es 255, entonces la sdida
ser un nivel alto continuo, pero si es 0, la salida
ser un nivel bajo pennanente. Para todos los
valores del cido de servicio (d"tl),que estn entre
0 y 255,1a relacin de los pulsos esar dada por
la expresin dutyl255; por ejemplo, si daty es
50 la relacin de unos a ceros ser aproximada-
mente deI19,60/o(501255
=
0,190.
Desde el +l
pin
l/0
I
1oKa
f
sarida de
l+
voltaje
1guF*
antogo
I
(0a5v)
=
#
rrn,
curco prcco sohe Microcon*adores
Cuando la salida P\M se utiliza para cargaf
un condensador y obtener entre sus termina-
les un voltaje anlogo, la magnitud de ste se
obtiene a partir de la expresi6n J*(dutyl255);
por ejemplo, si duty es 200 el voltaje que al-
canzarel condensador ser aproximadamen-
te igual a3,92Y
(5*(2001255)).
Para obtener los mejores resultados de esta sa-
lida, no afectar la modulacin y reducir el n-
mero de ciclos de actualizacin necesarios, la
corriente que de tal pin se extraiga debe ser mu-
cho menor que 1lA; para esto se recomienda
la conexin de un b"ffi, de alta impedancia
entre el pin de salida del microcontrolador y la
carga, vJ como el seguidor de voltaje de preci-
sin construido con el operacional CA5160 que
se muestra en la figara 27.5.
Usando esta instruccin se puede generar un n-
mero seudo-aleatorio en una variable tipo word.
taordaariablz: es una variable de l6bts que
puede estar entre 0 y 65.535, y en la cual se
encuentra el nmero seudo-aleatorio que re-
sulta de la ejecucin de esta instruccin.
Utilizando esta instruccin se puede leer cualquier
paictn de)a memoia EEPROM dd $stema y
guardar el valor en una variable determinada.
l-eorLa
location: es una variable o una constante en-
tre 0 y 255 en la que se especifica la posicin
de memoria que debe ser leda.
uariable: es la variable de Sbix que recibe
el dato l edo de l a posi ci n de memori a es-
pecificada.
Esta instruccin se usa para retornar el flujo
del programa al cuerpo principal, al finalizar
la ejecucin de la subrutina de salto ms in-
medi ata
(GOSUB).
Con esta instruccin el usuario puede inver-
tir la configuracin actual de un pin del puerto
del microcontrolador en todo momento, si el
pin es una entrada se convierte en una salida,
y viceversa.
pin: es la variable o la constante entre 0 y 7
con la que se especifica el pin que se va a in-
vertir.
Por medio de esta instruccin, que se puede
escribir en los tres formatos aqu indicados,
se babl)u un ptn de) puerto comD una e)ztra-
da serial y se entra en un estado de espera para
las restricciones y las variables opcionales.
Esta instruccin recibe un byte alavezylo
compara con la o las restricciones, si sta o
stas se satisfacen, se guarda en la variable
correspondiente.
pin: es la variable o la constante entre 0 y 7
con la que se especifica el pin que va a ser
usado como puerto de entrada serial.
baudmod: es una variable o una constante
entre 0 y 7 con la que se define el modo de
trabajo y la velocidad de recepcin serial; en
la tabla 27.3 se muestran los ocho posibles
modos de configuracin de la entrada serial,
@carsa
4,7K
Sal i da de
voltaje
para ra
Salida PWM
del Stamp
I
Figura 27.5 Seguidor de voltaje de precisin con el amplificador
operacional C45160
curco prctico sobre Microcontroladores
&k
t '.:
#
&fr
cnlunlc ce lnsuucclcues ce Ls urlcrccnuc,La.ctcs E-{SL Sranrl L
# Smbolo Velocidad Polaridad
0 T2400 2.400 No invertida
1 T1200 1.200 No i nverti da
2 T600 600 No invertida
3 T300 300 No invertida
4 N2400 2.400 lnvertida
5 Nl 200
' 1.200
Inverti da
6 N600 600 Invertida
7 N300 300 Inveftida
Tabta 27.3 Tabta de opciones det nodo ot **,n!ffi!!i,li,
stos pueden escribirse usando los nmeros del
0 d,7, o los smbolos equivalentes para cada
modo. En esta tabla aparecen los parmetros
que se pueden cambiar, los otros son los usa-
dos por el formato serial estndar, denomina-
do a menudo N81, y que son: sin bit de pari-
dad,Sbi ts de datosycon un bi tdeparada.
Enffiers:
son las variables o las constantes op-
cionales (entre 0 y 255) que representan las res-
tricciones que se deben recibir en el orden espe-
cificado en el formato de la instruccin, antes
de continuar con la ejecucin del programa.
uariabbs: son las variables opcionales que se usan
para almacenar los datos recibidos (pueden ser
hasta 255). Si estn precedidas por el smbolo #
la instruccin convierte el texto numrico en
un valor antes de guardarlo en la variable.
Como un ejemplo, la siguiente instruccin de-
tiene la ejecucin del programa hasta que se
reciben serialmente por P0, a2.400baudsy con
polaridad invertida, los bytes que conforman la
cadena de caracteres CONTINUAR.
(Jna
vez
que la restriccin se cumple, se guarda el byte
siguiente en la variable b3.
SERIN o,N24oo, (CONTINUAR),b3
Por medio de esta instruccin se habilita un
pin del puerto del microcontrolador como una
salida serial apta para la transmisin de datos.
pin: es la variable o la constante entre 0 y 7
con la que se especifica el pin que va a ser
usado como puerto de salida serial.
baudmode: es una variable o una constanre
entre 0 y 15 con l a que se defi ne el modo de
trabajo y la velocidad de transmisin serial;
en la tabla 27.4 se muestran los posibles mo-
dos de configuracin de la salida serial, stos
pueden escribirse usando los nmeros del 0
al 15, o l os smbol os equi val entes para cada
modo. En esta tabla aparecen los parme-
tros que se pueden cambiar, los otros son los
usados por el formato serial estndar que se
denomi na N81.
data: son las variables o las constantes op-
cionales (entre 0 y 255) de Sbix cada una,
que contienen el dato que se va a enviar se-
rialmente. Cuando el dato est precedido por
el smbol o # se transmi te como una cadena
de caracteres de texto (con longitud entre
uno y ci nco caracteres); pero cuando no, l os
datos se transmiten como un simple byte.
Como un ejemplo se escriben las dos siguien-
t es i nst rucci ones de t ransmi si n seri al a
I.200bauds y con polaridad invertida: con la
primera se enva el valor 65 que equivale y se
recibe como la letra
"A"
de acuerdo con el
cdigo ASCII; mientras que con la segunda
se enva la cadena de texto de caracteres nu-
mri cos
"65".
# Smbolo Velocidad Polaridad y modo de salida
0 T2400 2.400 No invertida
1 T1200 1 .200 No invertida
2 T600 600 No invertida
3 T300 300 No invertida
4 N2400 2.400 Invertida
5 N1200 1.200 Inverti da
6 N600 600 lnvertida
7 N300 300 Invertida
8 0T2400 2.400 No invertida (drenador
abierto)
9 0T1 200 1.200 No invertida (drenador
abierto)
10 0T600 600 No invertida (drenador
abierto)
1 1 0T300 300 No invertida (drenador abierto)
12 0N2400 2.400 Invertida (fuente abierta)
13 0N1200 1.200 Invertida (fuente abierta)
14 0N600 600 Invertida (fuente abierta)
15 0N300 300 Invertida (fuente abierta)
Tabla 27.4 Tabla de opciones del nodo de configuracin de la
salida serial
JI b' - :
*ttp
dfiXln.i. Curco prctico sobre Microcontrotadores
\f,
DB-9 hembra (PC/AT)
(Lado de soldadura)
Ti ena (GND)
Pi n l /0 (SERIN)
Pin l/0 (SEROUT)
DB-25 macho (PC/XT)
(Lado de soldadura)
Pi n l /0 (SERIN)
Pin l/0 (SEROUT)
Ti erra (GND)
Figura 27.6 Estructura de los conectores DB de I y 25 pines para
transmir datos entre la PC y el BASIC Stamp I
L\ ; gL t
Si el microcontrolador est manejando car-
gas y entra en el modo sleep, es importante
que el usuario siempre recuerde que la co-
rriente a travs de estas ser interrumpida
durante 18ms cada vez que ste despierta,
debido a la ejecucin del reset del tempori-
zador del watchdng lo cual se genera cada
2,304 segundos.
Esta instruccin convierte el pin especifi-
cado en una salida y genera por l un tren
de pulsos de onda cuadrada con una fre-
cuencia determinada (una nota), y con una
duracin determinada. Para conectar di-
rectamente el parlante a la salida de tono,
se pueden usar los dos circuitos que se
muestran en la figura 27 .7 .
SEROUT l,Nl2oo,
(65)
SEROUT 1N12oo, (#65)
'se
recibe la letra
(.(At
'se
recibe la cade-
'na
de texto
"65"
Para enviar o recibir datos seriales hacia y des-
de la PC, el BASIC Stamp I requiere de una
resistencia de 22kQ y alguna de las dos es-
tructuras para los conectores de los puertos
DB de 9 y 25 pines que se muestran en la
gan 27.6.
Esta instruccin hace que el microcontrola-
dor entre en modo de adormecimiento o de
bajo consumo (modo sleep) durante un n-
mero especificado de segundos. En este modo
el consumo del microcontrolador se reduce
de 1mA a cerca de 209A.
seconds: es la variable o la constante en la que
se especifica la duracin del modo de ador-
mecimiento en segundos, y puede estar entre
I y 65.535 con una resolucin de 2,304s; esto
quiere decir que su duracin puede estar en-
tre 2,3s y 18h.
1 0uF
tiitfio'J-r
-
%1','0fi0'
#f,''ff1
I\
=
Figura 27.7 Circuitos tpicos para
conectar directamente un
parlante
de alta impedancia al puerto del BASIC Stamp I
pin: es la variable o la constante por medio de
la cual se especifica el pin I/O que se va a usar
como salida de sonido, puede estar entre 0 y 7.
note(s): son variables o constantes que pue-
den estar entre 0 y 255 y por medio de las
cuales se define la frecuencia del tono de sali-
da. Con la nota 0 se produce silencio (OHz),
con las notas I a I27 se producen tonos de
f r ecuenci a ascendent e ent r e 94, 8H2 v
NoTA= 127
- 95X10-6
Frecuencia (Hz)
ffix10-6
1
FRECUENCIA (Hz) =
95X10- 6 + ( ( 27 - Not a) X83X10- 6)
Figura 27.8 Ecuaciones para determinar la frecuencia y la nota
del tono de salida
220el
curcoprcticosobreMicrocontrotadores
&kl
&
7z:%)
t
orlunlc rj.e lirsuuccloues d.e Los nricroccnr-r'ola.oi'ss E-{SL Slanrl L
10.550H2, y con las notas 128 a255 se gene-
ran ruidos blancos ascendentes.
duration(s).'son las variables o las constan-
tes por medi o de l as cual es se especi fi ca l a
duraci n de l a emi si n de cada nota. Pue-
den estar entre 1 y 255, y l a uni dad de ti em-
po es l 2ms.
En l as ecuaci ones de l a fi gura 27.8 se mues-
tran l as dos rel aci ones que hay entre l a fre-
cuenci a de sal i da y l a nota, cual esqui era
de stas puede ser de mucha uti l i dad para
el usuari o a l a hora de cal cul ar el tono de
sal i da.
Esta instruccin se utiliza para convertir el pin
I/O especificado en una salida y cambiar su
estado lgico de I a 0, yviceversa, cadaque se
ej ecuta.
pin: es una variable o una constante que est
entre 0 y 7 y siwe para especificar el pin al
que se le cambiar el estado.
A manera de ej empl o se escri be el si gui en-
te programa: en l se confi gura como sal i -
da el pi n 7 y se cambi a su est ado l gi co 10
veces.
FORbI =
1TO 10
TOGGLE 7 secambiaelaadodePT
NEXT
PARA SABER MAS:
Redes de comuncacn con BASIC STAMP I
En el diagrama que
se muestra en la fgura
27.9 se indica,
por
medio de un circuito sim-
ple, la forma de usar la tecnologa de dre-
nador abiefto (open drain), para
conectar dos
0 ms microcontroladores BASIC Stamp I
con una PC, o cualquier terminal, a travs
de una lnea de comunicacin serial de una
red de datos.
Por medio de esta instruccin se guarda o escri-
be un dato deSbits enla localidad de la memo-
ria EEPROM del sistema que se especifique.
location: es una variable o una constanre en-
tre 0 y 255 por medio de la cual se especifica
la posicin de la memoria en la cual se va a
guardar el dato.
data: es la variable o la constanre que va a ser
escrita en la EEPROM en la localidad defini-
da, por ser de Sbits puede esrar enrre 0 y 255,
y debe estar expresada en cualquier formato
compatible y aceptado por el programa edi-
tor del BASIC Stamp I.
Con el siguiente programa se aclara el uso
de esta instruccin, con esta pequea rutina se
reciben datos en serie y se almacenan en posicio-
nes consecutivas de la EEPROM.
READ 255,b2'captura la posicin de la ultima
'irutruccin
del programa
Repetir:
b2=52-1 'decrementa hasta la prxi-
'ma
posicin de la EEPROM
disponible
SERIN 0,N300,b3 'recibe
un byte en serie en
'b3
WRITE b2,b3 'guarda el be recibido en
.
'la
siguiente posicin de la
.EEPROM
IF b2>0 THEN Repetir 'salta a caprurar otro byte
Figura 27.9 Circuito para
conectar mltiples sistemas BASIC Stamp I
en red
PC
Terminal
Ge
un
cic
tib
mi
gu
Par
8u'
gu
uri
tec
$ttb &lct,L
curco prcco sobre Microcontrotadores
&d
i ?r ; : ' : : ! : : . , -
Generalmente los productos tecnolgicos poseen
un sucesor que es una nueva versin con otras fun-
ciones y caractersticas innovadoras, pero compa-
tible 100o/o con sus antecesores; tal es el caso del
microcontrolador BASIC Stamp II, que es la si-
guiente versin del BASIC Stamp I.
Para el BASIC Stamp II se ha desarrollado un len-
guaje denominado PBASIC2, y se han agregado al-
gunas herramientas de harduare y sofiutare de gran
utilidad pafael programador, adems de una arqui-
tectura y un soporte de programacin mejorados.
curco prctico
sobre Miuocontrotadores
&kn.t
#
Los nrler'oconaladoti:s B/l,StC Stunrn [[
En esta leccin estudiaremos el microcontrola-
dor BASIC Stamp II (BS2-IC), desarrollado por
Parallax, Inc. Este microcontrolador se constru-
y usando la tecnologa de montaje superficial
para obtener un dispositivo de bajo costo, redu-
cido tamao, alta eficiencia y gran capacidad, que
puede ser usado como una pequea computa-
dora en trabajos paralaindustria, el comercio, la
educacin, el entretenimiento y el hogar.
El BASIC Stamp II se compone de un entor-
no de programacin amigable, un lenguaje de pro-
gramacin propio y una estructura de circuitos
extendida como soporte. El lenguaje de progra-
macin se denomina PBASIC2 y ha sido desarro-
llado por Parallax a partir del lenguaje PBASIC
con un reducido nmero de instrucciones
(36
ins-
trucciones), todas muy compactas, verstiles, po-
derosas y de f;cil manejo; entre las nuevas ins-
trucciones se pueden enunciar: COLTNT (rutina
para contar ciclos), RCTIME (rutina para medir
las constantes de tiempo RC), FREQOUT (ruti-
na para generar seales seno), y DTMFOUT (ru-
tina para generar tonos telefonicos), entre otras.
El hardware del microcontrolador BASIC
Stamp II se construye sobre un pequeo circuito
impreso de montaje superficial, y en el cual se
incluyen: un microcontrolador PIC de Micro-
chip con el programa residente (firmutar) del
intrprete de las instrucciones, una memoria de
acceso serial tipo EEPROM, un regulador de
+5V un oscilador, un circuito de reset automti-
co, y una interfaz de comunicacin serial.
Para programar el BASIC Stamp II el usuario
slo debe contar con algunos requerimientos m-
nimos en su equipo, que son: el programa ade-
cuado, una computadora con sistema operativo
MS-DOS 2.0 superior, l28Kbytes disponibles
en memoria RAM, y un puerto serial libre.
La versin del BASIC Stamp BS2-IC que se
muestra en la figura 28.I, tal como se aprecia, se
desarrolla en una estructura DIP
(de
doble fila)
de2.
Pl e :
otro:
ros d
Laa
defir
micr
a cor
mid
8g: PS=Po. o
>o- 0- o- o- o- o- o. e.
En lr
diagr
Stan
unn
flS r
( u1l
tem
Prog
tfUCt
men
2. 0,
24Lt
guaf
por r
Figura 28.1 Aspecto fsico y distribucin de los componentes y pines del BASIC Stamp ll
PI N

4
6
8
T
10
11
i
13
n
-
t c
:;
t o
aa
]E
t0
n
21
24
#
&krr*
curco prctico sobre Microcontroradores
PI N NOMBRE DESCRIPCION COMENTARIOS
1 TX Salida serial Conectar al
pin
2 del
puerto
serial DB9 (M)
2 RX Entrada serial Conector al
pn
3 del
puerto seral DBg
[IX)
3 ATN AHrcin,rsddirron anDuoneclar ar
prn 4 oer
pueno senar ubg
[u
I H)
4 GND Terra serial uonecrar ar
prn
b oer
pueno senar ub9 (uNu)
b P() Pin Y0 0 Cada pin puede manejar 20 mA en modo
source y 25 mA en modo sink
P0-P7 y P8-P1 5 como grupos, pueden manejar
un total de 40 mA en modo source v 50 mA en
modo snk
Para seleccin automtica del puerto seral, por parte
del software del BASIC StamD ll,se deben unir los 0ines
DSR (pin6) y RTS (pin
4
del puerto serial DBg. Esta conexion
esu hecha en la h4eta de prototipos del BASIC Stamp ll
(carier board), pero s se desea lEcer una hrjeta especnca,
se debe tener Dresente hacer dicha conexn.
Durante la operacin normal el Stamp ll consume cerca
de 8mA, sn embargo en los modos de operacin de bajo
consumo se puede reducr a cerca de 50U4.
6 P1 Pin l/0 1
YZ ?NVU
8 P3 Pin l/0 3
I P4 Pin l/0 4
I U Pb f l nvuc
11 P6 Pin l/0 6
12 P7 Pinll0T
13 P8 Pin l/0 8
14 P9 Pin l/0 I
15 P10 Pin l/0 10
16 P I Pin l/0 11
P 2 Pin l/0 12
18 P 3 Pn l/0 13
19 P 4 Pin Y0 14
20 P 5 Pn l/0 15
21 +5V Fuente de +5V Entrada re0ulada de + 5V v salida requlada
22 RES Reset actlvo en baio Llevar a 0 Dara resetear
(se
Done en 0 durante el reset)
23 GND Terra del sstema
24 PWR Entrada al requlador Entrada al requlador de voltaie de +5V
(6-
l 5 voltios)
Tabla 28.1 Distribucin y descripcin de pines del BASIC Stamp ll
de 24 pines para facilitar su aco-
ple y compatibilidad con los
otros circuitos impresos y table-
ros de conexiones
(protoboards).
La asignacin y las funciones
definidas para los pines de este
microcontrolador se describen
a continuacin en forma resu-
mida en la tabla 28.1.
En la figura 28.2 se muestra el
diagama elecrnico del BASIC
Stamp II, en ella pueden verse:
un microcontrolador de 28 pi-
nes de Microchip PICI6C57
(Ul) que es el
"corazn'del
sis-
tema y en el cual est grabado el
programa intrprete de las ins-
trucciones del PBASIC2, una
memoria serial EEPROM de
2. 048byrcs de Mi crochi p
24LCI6B (U2) que recibe y
guarda el programa diseado
por el usuario, un circuito au-
tomtico de reset a la conexin y
desconexin
(U3), un regulador
de voltaje integrado de +5V (U4)
que alimenta a todo el sistema,
LL- UL L
un ci rcui to de osci l aci n de
2}MHz,y una interfaz de comu-
nicacin serial RS232 para nive-
les de comunicacin de +l2Y y -
12V (Q1,
Qz
y
Q3).
En la figura 28.3 se muestra la ta-
jeta para desarrollo de prototipos
(carcier board) diseada por Para-
llax para el microcontrolador BA-
SIC Stamp II, sta cuenta con ter-
minales para la conexin con una
batera de 9VCC, un conector
Gocka)
tipo DIP para la conen
del BASIC Stamp II, dos conec-
tores en lnea paralelos al micro-
controlador que dejan disponibles
todos sus pines, un pulsador para
elreset, un conector BD9 hembra
para la comunicacin serial con
la PC, y la tarjeta multiusos sobre
la cual se pueden desarrollar pe-
t22)
voo
vril
vss
Ul PBASIC2
-
Resonador
i
ceramt co I
0e;
20 MHz
+5V
47k
6@F60
ooaeo
{#
PttEs r/0
Como salidas:
En conl gr r ci f sour ce pueden
manei ar 20mA y en sr nk 25mA
Coo entradas:
Cons! ' nen me osde l I Ay I enen
u vo l ai e dMbr al de I 4V
Figura 28.2 Diagrama electrnico del BASIC Stamp ll
c u rc o p r cti c o s o b re M i c r o c o nt r o t a d o re s
&k
t *.:
Stb
\d
Lus nrlct'uco utro latiu res E/{S[C Stiiiur r [ [
Figun 2t).3 Tarjeta de
prntntWs del nicrocontolador MSIC Sbmp ll
queos circuitos prototipo, lo que resulta bastante
til en la etapa de experimentacin y desarrollo de
cualquier proyecto.
Los ci rcui tos que se
construyan sobre l a tarj e-
ta de prototi pos, pueden
ser al i mentados con el re-
gul ador i nterno de +5V
de todo el si stema; pero,
en vi sta de que el regul a-
dor ti ene una capaci dad
mxi ma de 50mA, y el
mi crocontrol ador consu-
me 8mA, stos no deben
consumi r ms de 42mA.
criben las localidades del mapa de memoria RAM
disponibles para el programador, y los registros,
nombres, y funciones definidas para cada una.
Las primeras tres posiciones del rea de memoria
son palabras de 16 bits (word) y se asocian con el
control de los puertos; la primera palabra, la va-
riable INS, es de slo lectura y contiene el reflejo
del estado lgico presente en los 16 pines I/O
del puerto (P0 a Pl 5), mi entras que l a segunda
variable OUT es de lectura y escritura, y contie-
ne el estado binario de las salidas.
entrada; palabra, byte,
nibble v bit direccionables i
0L-
Di :
Pi n
Ci r c u
exte' '
c10r
1A -
I
OUTS OUTL
OUTH
i
OUTA,OUTB, I 0UT0 - 0UT7, j Pines de salida; palabra, byte,
I
i_qqr!_qura__Lqulq
-- 0ur1 5
lrlE
r !!!qtre9s9!ab_!qs_ _ ___l
i DlM, DIRB,
i
D|RO - DlR7, i Pines l/0 de control de
i
i
DlRc, DIRD I olna - DlR15 idireccin;
palabra,
byte, nibble
I
ma.
cofl'
var:
En
t f O, .
c1(] : -
con
coI ]
Dr o
t r o.
-
v bit
$_4q9q!lg_____.r
, De propsito general; palabra,
i
i De propsito general; palabra,
i
j.!re,!Lb_uq"Lq!!-8ue9g_orgug!_i
'
De propsito general; palabra,
,
_.*._."-Qy!g_U!_bl9J_qf l$,ecq9!$j9s_*r
De propsito general; palabra,
:
_!r!9.!D!.e_y._qi!irrqg1g&U-e_9___
W4
i
88
, i I
De propsito general; palabra,
I i Bg i , byte, nibble v bit direccionables i
+i#
I h{^ n^
- - ^- l ^; ^
BO
DIRS
WO
DIRL
DIRH
82
Este microcontrolador tie-
ne 2.048 posiciones de 8
bits disponlbles en la me-
mori a de programa ti po
EEPROM y 32 bytes de
memori a RAM para el
usuario; en sta ltima, los
primeros 6 estn reservados
para configurar los pines de
entrada o salida y controlar
la direccin de los mismos,
mientras que los restantes
26 estn disponibles como
variables de propsito gene-
ral. En la figt:ra 28.4 se des-
w5
i
810 i
i 811 :
w6
i af l

De propsito general; palabra, ,,
i"!Sg,ni_b.U_ernit_Qugca!9lalLqg_r
I De propsito general; palabra,
i
nibble v bit direccionables i
; bvte, nibble v bit direccionables i
I De propsito general; palabra,
i
__-_l_byte,
nibble y bit direccionables
.
j
i De propsito general; palabra,
I
byte, nibble y bit direccionables
.
Figura 28.4 Mapa de Ia memoria MM disponible delBAS\C Stamp ll
l *
&,Xln:.
Curco prctico sobre Microcontroladores
Entrada de +9VCC
Mapa de memori a RAM del BASIC Stamp l l
tNA, rNB,
i rNo - rN7,
i_
j 813
-._"
_j_Uyte,ni8.U!9J-!il_Ore-q9r9[4_b,!9!__r
W7 i Sl ' i De propsito general; palabra, I
I i
815
i _ , _ ; byt e, ni bbl eyQi t di recci onabl es
,
WB
i
816
i i
i De propsito general; palabra,
.
W9
i
818
: I
j
De propsito general; palabra,
)
I r 819 byte, nibble y
bit direccionables
:
'w--**l.-----
DIRS:
Pin l/0:
Circuito
externo:
El registro DIRS controla cul de
los pines U0 son enfadas y cules
salidas. Cuando se pone la enfada
en 0, el bit conespondiente en el
registro outs se desconech
y se
ignora.
Cuando se
pone la salda en 1, el
bit conespondiente en el registro
oUS se conecta.
l{ota:
"X" indica cualquier eshdo, un 0
un 1 lgicos y no afecta otros
elementos.
"?" indica un eshdo desconocido
que puede cambiar en cualquier
momento.
Fisura2s'5nasnma**'"rli,'J:f::iif!:fr{f
3,j?3
Con la palabra DIRS se configura la direc-
cin
(como entrada o salida) de cada uno de los
16 pines del puerto.
En la figura 28.5, por medio de un diagra-
ma, se resumen los resultados de las relaciones y
combinaciones de los estados lgicos entre las
variables de control DIRS, OUTS e INS.
Programacin del BASIC Stemp ll
En lo que a la programacin de este microcon-
trolador se refiere, adems de conocer las instruc-
ciones del lenguaje PBASIC2, el usuario debe
conocer el programa de desarrollo que suminis-
tra el fabricante, desde el cual, se puede editar,
compila depurar y transferir el programa. Para
programar y depurar el sofiware del microcon-
trolador se utiliza el puerto serial de la computa-
BS2 Pin (f)
s0ur (1)
') sttl
lz
)nrN
(s)
Vss (a)
89
RTS
frgura 28,6 Configuncin del conector de comunicaciones del
BASIC S;hmp ll
dora y el cable DB-9 a DB-9 que el fabricante
suministra especialmente para este propsito, o
uno similar; en la figura 28.6 se muestra la con-
figuracin que tiene el conector que se incluye
en la tarjeta de prototipos del BASIC Stamp II.
Instruccione$ del lenguaje PBASICZ
El lenguaje de programacin del BASIC Stamp
II est compuesto por un conjunto reducido de
instrucciones (36 instrucciones) de alto nivel y
se denomina PBASIC2; ste ha sido diseado por
Parallax teniendo en cuenta las instrucciones de
la versin anterior
(PBASIC) y agregando algu-
nas otras con funciones especiales.
En esta seccin se estudiarn las nuevas ins-
trucciones de este lenguaje y las modificaciones
que se han hecho sobre las de l versin ante-
rior
(PBASIC),
estudiadas antes. Se presenta-
rn en orden alfabtico para facilitar su bsque-
da y omitiendo las instrucciones que existen y
operan igual en las dos versiones del lenguaje,
asl como tambin, aquellas que slo sufren una
extensin en la variable o constante llamada pin,
que en el Stamp II puede estar entre 0 y 15 y
que se refiere al nmero del pin sobre el cud se
est trabajando.
l . {,Ot-lNT pin,periorl,virriablc
Con esta instruccin se cuenta el nrimero de ci-
clos
(cambios
d estado de 0 a 1 a 0, , de 1 a 0
a l) que lleguen por un pin especificado duran-
te un periodo de tiempo definido en milisegun-
dos y se guarda el valor de la cuenta en una va-
riable. Para on.las recangulares el conador pue-
de responder hasa una frecuendade l25VJIz.
pin: es una variable o una constante
9\re
es-
pecifica el pin I/O que se va a usar como en-
trada del contador, puede estar entre 0 y 15.
period: es una variable o una constante entre
0 y 65.535 con la cual se especifica el tiempo
(en
ms) que va a durar la cuenta de los ciclos.
variable: es la variable, generalmente una pa-
labra, en la cuse debe guardar el resultado
del contador de ciclos.
01?01
l t t l
01? x x
Rx
Tx
DTR
cuso
prcco sobrc Microcontotadocs
<mt
#
ti
:. l J -,11 L;{, {ni rpu f d;rta i ,ou trutdata...
}
Con esta instruccin se puede mgnitorear el
curso del programa en cualquier momento y
por medio de ella se puede visuelizar cualquier 5.
variable o mensaje en la pantalla de una PC
conectada con el BASIC Stamp II.
outputdata: puede ser una o varias de las si-
guientes opciones: cadenas de texto, variables,
constantes, expresiones, modificadores de for-
mato, o caracteres de control.
.i . l ]' f n { F{-} L}' f
ri
n,
{onti nrer,c{l i i
nrc,
I t,
tonc.
", I
Utilizando esta instruccin se pueden gene-
rar tonos duales de multiples frecuencias (Dual
Tbne MubiFrecuenc!, DTMF), compatibles
con el sistema de comunicacin por tonos de
las redes telefonicas.
pin: es una variable o una constante que es- {'}.
pecifica el pin I/O que se va a usar como sali-
da, est entre 0 y 15.
ontime: es una variable o una constante opcio-
nal ene 0y 65.535 con la cud se especifica el
tiempo
(en ms) que va a durar el tono. Por de-
fecto, si no se especifica, es 200ms.
oftime es una variable o una constante op-
:.
cional entre 0 y 65.535 con la cual se especifica
el tiempo (en ms) que va a durar el espacio de
silencio entre los tonos, o al final del tono. Por
defecto, si no se especifica es igual a 50ms.
tone: es una variable o una constante (en-
tre 0 y 15) que especi fi ca el tono DTMF
que debe ser enviado. Entre 0 y 9 corres-
ponde con los tonos de los dgitos 0 a 9,
con l 0 equi val e al carcter star (*), con 1i
tl carcter nmero (#), y entre 12 y 15 co-
rresponde con la cuarta columna de tonos,
A a D, usados en equi pos de prueba tel ef-
ni cos v de radi o.
, *"
FOI { r , r r i l r bl e
=
st r l r - r
' 1. ( )
cnd i S' t ' t i P
str' prrali...hiEXT'
\
Con esta instruccin se implanta un lazo del 8.
tipo FOR...NEXT tal como en la instruccin
de la versin anterior, pero, en este caso, el in-
cremento se ha cambiado por el valor del paso
(stEaal)
que tambin puede ser negativo.
Ii Il [:Q{ ) L.]'l' p i n, tl u ratio rr, freq I
i.
f req2
i
Utilizando esta instruccin se pueden gene-
rar uno o dos tonos con ondas seno durante
un tiempo determinado.
pin: es una variable o una constante que es-
pecifica el pin I/O que se va a usar como sali-
da, est entre 0 y 15.
duration: es una variable o una constante en-
tre 1 y 65.535 con la cual se especifica el tiem-
po (en
ms) que van a durar los tonos.
freql y freq2: son las variables o las constanres,
la segunda opcional, por medio de las cuales se
especifica la frecuencia del tono en Heru; puede
est arent re 0y32. 767.
Pt
r
t . SOt -J' l ' pi rr, t i nrt '
Por medio de esta instruccin se puede generar
un pulso por uno de los pines del pueno (0 al
15) durante un tiempo que puede estar entre
2msy l3lms, con resolucin de 2ms. lavaria-
ble o constante rne puedeestar enrre I y 65.535.
l)V/i\'{
ri
n,du tr.,cl'clt-s
Usando esta instruccin se puede producir una
seal modulada por ancho de pulsos (P\fM)
en cualquiera de los pines I/O del puerto, y
convertir un vilor digital en uno anlogo (un
voltaje entre 0 y 5V desarrollado sobre los ter-
minales de un condensador). Con la variable
o la constante pin (entre
0 y 15) se especifica
el nmero del pin I/O del microcontrolador
por el cual se va a generar la modulacin
PWM, mientras que con cycles, quepuede ser
una variable o una constanre entre 0 y 65.535,
se determina la cantidad de ciclos de salida de
lms cada uno. Con duty se define la relacin
de ceros y unos, que es conocida como el ci-
clo de servicio de la seal modulada.
l{(If Il\4 []r.
rin,stale
,resultv:rrirbIc
Utilizando esta instruccin se cuenta el tiempo
durante el cual un determinado pin permanece
L
I
t
#
&irr*i
curco praico sobre Microcontotadores
nC
e
t
(
I
+c
|
220r)
-1F
-1AA >
pin
t/0
I I
Usado con
Ll r
estadorsrco
I
=
+5V
f r a-l
I
0",0,=-,,1,"l#FJ]
220a
Pin U0
usado con
estado lgico 0
F
t
*
B
>
>
B

l
Figura2B.TRedessuseridasparartrrf
i::r:r;r;:r::::l:,#;
en un estado. Esta instruccin
se ha diseado
para.medir los tiempos de carga y descarga de
condensadores
en redes con resistenclas (RC).
pin: es una variable o una consrante que
es_
peci fi ca el pi n I/O que se va a ,r"r.oo .r-
trada, esr enrre 0 y 15.
state: es una variable o una constante
que
puede ser I 0,

por medio de ella, se dedn.
el estado que se debe alcanz ar parafinalizar la
medicin del periodo RC.
resulwaiable:
es la variable en la cual se guarda
el tiempo que ha resultado
de la medidal el al-
cance esr enrre 0 y 65.535 en unidades de 2s.
En_ la figura 28.7 se muesrran dos tipos de
redes que pueden ser utilizadas para medir el
periodo RC, y la ecuacin que se usa para ello.
Por medio de esta instruccin
se habilita un
pin del puerro como una entrada serial de da-
tos no si ncrni ca (tal
como l a RS-232).
pin:
es la variable o la constanre enrre 0 y 16
con la que se especifica el pin que,r"
"
r.r rrr"do
como puerro de entrada serial. Con 16 se espe_
cifica la entrada serial dedicada del sistema (SIN.
fri n:
es una vari abl e o una consranre opci o-
nal (entre
0 y 15) con la que se define ..rl
.r,"
a ser el pin de control de fluio de datos.
baudmode:
es la variabl. o .orr.t".rte de 16
bits con la que se define el tiempo y la confi-
guracin de datos. Los bits del0 al i3 definen
el tiempo para un bit recilido menos 20s, el
bit 13 controla la longirud del dato y la pari-
dad (0=
8 bix sin paridad,
f
l= 7 biti con
leorla
paridad par), y el bit l4 controla la polaridad
(0=
di recra, y l =i nverri da).
plabel: es la etiqueta opcional con la que se
nombra l a posi ci n a l a que
se debe sai tar si
se detecta un error d. p"ri drd.
timeout es una variable o constante opcional
(de
0 a 65.535) que sirve para definir.liiempo
(en
ms) que se debe esperar para recibir un dato.
tlabel: es una eriquera opcional que hace re-
ferenci a a l a posi ci n a l a cual se debe sal tar si
se detecta que un dato no ha entrado en el
tiempo especificado
por timeout.
inputdata:
es una lista de variables
v modifi_
cadores que le informan
al micro.ontrolador
lo que se debe hacer con los datos que van
l l egando en seri e.
Por medio de los dos formatos
de esta ins_
trucci n,
que aqu se muestran, se habi l i ta un
pin del puerro como una salida serial de da_
tos no si ncrni ca (tal
como l a RS232).
tpi n: es l a vari abl e o l a constanre entre 0 v t6
con.l a que se especi fi ca el pi n qr.
,n"
,.,
usado como un puerto de salida serial. Con
l 6 se el i ge l a sal i da seri al dedi cada del si ste_
ma (SOUT).
baudmode: es la variable o consranre de l1bits
con la que se define el tiempo y la configura_
cin de datos. La funcin asignada p" ,,r,
bi ts es si mi l ar a l a de l a i nstrucci n
SERIN.
pace: es una variable o consranre
opcional (en_
t re 0 y 65. 535) cue si rve para dedni r el t i em-
po (en
ms) que se debe esperar para transmi-
ti r un nuevo dato.
outputdata:
es una lista de variables, cons_
tantes y modificadores
que le informan
al mi_
croconrrolador
cul es el formato de los da_
tos que se van a enviar.
frin:
es la variable o la consrante opcional entre
0 y 15 con la que se define cul va a ser el
pin
pasa el conrol del flujo de datos durate la ru_
tina de transmisin
bya a byte (handshahing).
r
' t
t
L
F
G:
{
, ' 1
lr-
:r-
r
k
Or_-
t r
E:
r
t:
Curco prctico
sobre Microcontroladores
@Efr(f T".:.
-
Ir
ha
ta
dc
D
51
ge
nr
d
l
l , , : . 1
l t l
I
Tahla %2 Modos de recepcin sincrnica con la instruccin SHF4N
timeouc es una variable o constante opcional
(de 0 a 65.535) que se usa para definir el tiem-
po
(en
ms) que se debe esperar para recibir el
permiso para enviar un dato.
tlabel: es una etiqueta opiional que hace refe-
rencia a la posicin a la cual se debe saltar, al
detectar que no se ha dado el permiso de trans-
misin dentro del tiempo definido entimeout.
I I
^
. \ l l l F' i ' l l l r l r i n, , ' ' ' i n r r r , i . i - ' , 1r l r r , i i l \ [ r i 1: , 1 1. . t r . . , r j l
1\bitsf...li
Con esta instruccin se reciben datos en for-
mato serie y con desplazamiento sincrnico.
dpin: es la variable o la constanre entre 0 y 16
con la que se especifica el pin receptor del dis-
positivo de transmisin serial sincrnica.
cpin: es la variable o la constante enrre 0 y 16
con la que se especifica el pin que va a ser
usado como el reloj de sincronizacin.
modq hay cuatro modos que pueden definirse
con sus slmbolos o con los nmeros entre 0 y 3.
En la abla 28.2 sedescriben dichos modos
result: puede ser una variable tipo bit, nibbh,
btt,
word.Ensa se guardan los r del dato.
bits: es una entrada opcional que define el n-
mero de bits que deben ser recibidos (entre
1
y 16). Si no se especifica, se asume como 8.,
I l . S t-{l t-"I{}L
I
I- dPi n.eri r.tr-:tl i :. i i l ;rt.r {
\
bi ' .,
I
"
j rr,:
I \ l ' ' i t s i .
".
i l
Con esta instruccin se envan datos en for-
mato serie y con desplazamiento sincrnico.
Tabla fr.3 Modos de transmisin sincrnica con la instruccin SHF\0UT
En este caso los interruptores operan
tal como en SHIFTIN, excepto que
dataes lavariable o constanre que con-
tiene el dato que se va a enviar y slo
tiene dos modos; tal como se muesrra
en la tabla 28.3.
t "1. 5f
( ) l '
Cn esa instruccin se detiene la ejecucin en
curso del programa (se "congeld'), pero el micro-
controlador no reduce el consumo de potencia-
i I " t i , '
j ) , 1' ' i
. u l t l r css. hv{t :
Con esta instruccin se escribe directamente
un hyte en la memoria EEPROM del sistema.
address: es la variable o la constante con la
que se especifica la localidad de la memoria
que va a ser escrita con un dato de 8bits.Prc-
de estar entre las posiciones 0 y 2.047.
be: es el dato con formato de un byte qure se
va a guardar en la memoria.
i
{.
}:( }i iirrpin"?in-ilxnrse"k:onuuruurtl
b,t*ri". ]
Con esta instruccin se pueden enviar hasta
10 comandos a travs de un pin del puerto,
el cual es usado como lfnea de control. stos
se envan modulados y deben recibirse por
medio de la interfaz apropiada.
mpin: especifica el pin I/O del puerro (entre
0 y 15) que se usar como sdida mltiple de
comandos (todos
modulados).
zpin: especifica el pin I/O (entre
0 y 15) que
se usar como entrada de cruce por cero des-
de la interfaz.
house: especifica el cdigo de los comandos
enviados, con valores entre 0 y 15 se repre-
sentan los comandos equivalentes para las
letras entre la A y la P.
keyorcommand: especifica la tecla o
el comando de control equivalente.
cycles: es un interruptor opcional y
por defecto permanece en 2. Se usa
para especificar el nmero de veces que
se debe transmitir el comando.
j
#
&<t;
curco prcrico sobe Micrrconotadoes
I

r
E
?

t
Los microcontroladores desarrollados por Intel,
han sido los pioneros en el manejo y desarrollo de
tareas que involucran sistemas de control embebi-
dos de pequea y mediana envergadura.
Dentro de la amplia gama de stos, la familia MCS-
51, que se empezar a estudiar en esta leccin, es la
generaci n avartzada de 8 b its que posee una arquitec-
tura optimizarpara la ejecucin de las tareas orienta-
das al control digital de procesos en tiempo real.
curco prce,o
sobre Microcontrotadores
&kl
f't
#
Lus nr[cLoconutrlarlctlrs 05i d.e Lur.cL
Intel ha sido una de las empresas pioneras en
el desarrollo de microcontroladores compa-
tibles l00o/o con la arquitectura de las PC.
Estos microcontroladores han evoluciona-
do a travs de las familias MCS-48
(primera
generaci n de 8bi t s), MCS-5 I (generaci n
avanzada de Sbits), y MCS-96
(generacin de
l6bits y aka velocidad de procesamiento);

tambin, han sido fabricados en versiones par-


ticulares por muchas otras empresas que los
distribuyen y utilizan en sus propios disposi-
tivos y sistemas, tal es el caso de los microcon-
troladores PHILIPS serie 87CXX, de los Da-
l l as DS5000 y l os Si emens SAB 8051, t odos
equivalentes a los Intel 8051.
La familia MCS-51, cuyo estudio se em-
pezar en esta leccin, es la que ms popula-
ridad tiene por sus excelentes caractersticas
de compatibilidad, velocidad, bajo costo, dis-
ponibilidad y facilidad de programacin; ade-
ms, hay muchos fabricantes de sistemas de
desarrol l o y entrenadores para esta tecnol o-
ga que nos facilitan su apren dizaje.
Entre l os si stemas de desarrol l o ms co-
noci dos se pueden nombrar: el EV80C5l de
I nt el , el CEI BO DS-750 de Phi l i ps Semi -
conduct ors y el DS 5000TK de Dal l as Semi -
conductors; tambi n se ofrecen otras herra-
mi entas, como el emul ador avanzado ICE-
5100 de Dal l as y ci rcui t os para ent renami en-
to, tal como el entrendor para 87C752 con
referenci a K- 144 de CEKIT S.A..
En la tabla 29.1 se muestran las caractersti-
cas principales de los microcontroladores de la
fami l i a MCS-51.
En la figura 29.1 se muestra la arquitectura in-
terna bsica de los microcontroladores 8051, en
ella se destacan las principales partes que los con-
forman. Dentro de las caractersticas generales
se destacan las siguientes:
.CPU
de Sbits
.Procesador
booleano (con
operacin \grca sobr e b i ts)
.4
puertos de Sbits cada
uno
.I28bltes
de RAM interna
para datos
'4KbtesdememoriaROM
de EPROM par a el
Programa
.64Kb!tes
de espacio direc-
ci onabl e ext ernamenre
para datos o programa
.2
temporizadores-conta-
dores (timer 0 y timer l)
.
Comunicacin no sincrni-
cafull-duplrx
.5
fuentes de interrupcin
.Oscilador
interno
En
pin,
eml
crip
tiva
bi d
carf
do
cor
usa
nes
esl
l ar
de
me
el r
- l
terr
labla E.l Caractersticas resumidas de los microcontroladores de la familia MCS-51
4KB IKB EPROM 4KB TKB EPROM8KB 8KB EPROM
128 128 128 128 256 256
64KB 64KB 64KB 64KB 64KB 64KB
64KB 64KB 64KB 64KB 64KB 64KB
12 12 16 12 12 12
'l
1 75 75 1 1
2 2 2 2 3 3
UART UART UART UART UART UART
32 32 32 32 32 32
b 5 5 5 6 6
125 250 20 25 175 175
1, 7 1, 3
5 3
#
&t:.
curco prctico sobre Microcontotadores
D irecciones/Datos
PO P2 .P1
I i l
P3
I
LU- UL L
Interrupcones
externas
Figura 29.1 Arqutectura nterna de los microcontroladores 8051
TXD RXD
En Ia figura 29.2 se muestra la distribucin de los
pines del microcontrolador 8051 en su formato de
empaque tipo DIP A continuacin se har una des-
cripcin breve de todos sus pines y sus funciones.
es la entrada de alimentacin regulada posi-
ti va de +5V
es Ia tierra del sistema, 0V.
son cuatro puertos de Sbits
bidireccionales. Todos tienen una capacidad de
carga (fan-out) de 4 cargas TTL-LS, exceptuan-
do el P0 que soporta hasta 8 cargas.
ALE (address
latch enable) se emite
con una frecuenci a i gual a 116 de l a del rel oj y se
usa para capturar el byte bajo del bus de direccio-
nes durante el acceso a memoria externa. PROG
es la entradaparalos pulsos de programacin de
l a memori a EPROM i nt erna.
PSEN
Qtrogram
store enable) es la seal
de control que se utiliza para habilitar y leer la
memoria de programa externa.
EA(externalaccess) esel pin que controla
el modo de trabajo del dispositivo; cuando es igual
a 1, slo se ejecuta el programa desde la ROM in-
terna (opera
como microcontrolador); y cuando es
Figura 29.2 Asignacin de
pines
en los microcontroladores 8051
(RXD)
(TXD)
ll' lT0
htIl
(r0)
(T1)
(WR)
(RD)
P1 . 0
Pl . 1
P1. 2
P1 3
P] . 4
P1 . 5
P1 . 6
P1 . 7
RESET
P3. 0
P3. 1
P3.2
P3. 3
P34
P3. 5
P3. 6
P3.7
XTAL2
XTALl
vss
VCC
P0.0 (A/DO)
P0 1 ( / D1)
pO
z \NDz)
P0.3 (/D3)
P0 4
(/D4)
P0.5 (/Ds)
P0.6 (/D6)
P0.7 (ND7)
EA/VPP
ALE/PROG
Psrr
P2 7 ( 41 5)
P2. 6 ( 414)
P2. 5 ( 413)
P2 4 ( 412)
P2. 3 ( 41 1)
P2. 2 ( 410)
P2.1 (Ae)
P2 0 {AB)
curso prctico sobre Microcontrotadores
&kt
"&
/n:%F)
-l
Lc,s nricr'\:,ca,nrr'L.d.cLrs !5r ue LnLeL
Cl y C2 = 30pF11opF pila crishles
C1 y C2 = 40pF!1opF pm resador6 cermcG
Figura 29.3 Circuitos tpicos para el oscilador interno y externo
0, se ejecuta el programa desde la memoria externa
(opera como microprocesador). Por VPP se recibe
la tensin de programacin necesaria para
"quemar"
el programa en Ia EPROM (tpicamente est entre
12,75V y2llfl.
.
es l a entrada del puerto de comuni ca-
ci n seri al .
es la salida del pueno de comunicacin seriai.
es la entrada de la seal de interrupcin
externa 0.
es la entrada de la seal de interrupcin
externa l .
es la entrada externa del temporizador-con-
tador 0
(timer
0).
es la entrada externa del temporizador-con-
tador 1
(ti mer
l ).
es la seal que se usa para habilitar la escri-
tura en dispositivos externos.
MEMORIA DE PROGRAMA
(Slo de lectura)
es la seal que se usa para habilitar la lectu-
ra de dispositivos externos.
son la entrada y la salida respec-
tivamente, del amplificador inversor interno del
oscilador, ste puede configurarse para generar el
reloj internamente o para usarse como un circuito
de acoplamiento para una seal de reloj generada
externarnente. En la figura 29.3 se muestran dos
circuitos tpicos para configurar el oscilador.
es la entrada de inicializacin del siste-
ma. Su estado activo es dto (al
ponerla en 1 lgico
durante cierto tiempo se genera el ciclo de reset).
En l a fi gura29.4 se muestra l a di stri buci n de
las reas de memoria de datos y programa de
l os mi crocontrol adores de l a fami l i a MCS-51;
aqu puede verse que estos microcontroladores
tienen espacios de direcciones separados para
las memorias de programa y de datos. La me-
mori a de programa sl o puede ser l eda, y pue-
de ser direccionada externamente hasta 64Kb-
ltes,
o internamente hasta 4Kbytes; mientras que
la memoria de datos puede ser leda o escrita, y
tambin puede ser interna o externa con capa-
ci dad de di recci onami ento haxa 256bytes
y
64Kby te s, respectivamente.
MEMORIA DE DATOS
(Lectura/Escritura)
INTERNA
de
cu
cu
PU
l i
PS
rat
de
l i r
ter
T.
de
i l r
\-a
PC
Cr
S:
J
S:
$FFFF
tOF
@ffl.i.
curco prctico sobre Microcontrotadores
&d'
Si
L. , t t - t ! .
L\:UL Ll 1
nable de 64Kfutes en Kbytes
de memoria internay 60Kb-
MEMORIA SEGREGADA MEMORIA COMBINADA
PROGRAMAY DATOS
. La memoria de programay Ia de datos pue-
den coexistir en el mismo espacio de direcciones
cuando es combinada, o en espacios diferentes
cuando es segregada; la memoria combinada se
puede configurar por medio de una compuerta
lgica AND conectada con las salidas RD y
PSEN, las cuales son generadas por la CPU du-
rante el acceso a la memoria externa. Por medio
cle la salida de dicha compuerta se pueden habi-
litar las salidas de datos del cbip de memoria ex-
terna, tal como se aprecia enlafigtra29.5.
La memoria de programa puede ser dividida, y
de acuerdo con el programador, ser usada como
una memoria mixta o externa; la seleccin se lle-
va a cabo por medio de la seal de control EA,
poniendo el pin a +5Y a 0V respectivamente.
Cuando es mixta, se divide el espacio direccio-
$FFFF
$1 000
0+
Vss
en la parte baja de la memo-
WR BAM ria interna se encuentran las
posiciones asignadas para los
Yectores de interrupcin; tal
como el vector del reset que
ocupa l a posi ci n $0000.
Cuando es externa, el usua-
rio define todo el mapa de la
memoria de programa den-
Figura 29.b Harclware para ta configuracin de reas de nemora combinada y segregada
tro de los 64Kbytes accesibles
externamente; en la figura
E
PROGRAMA
E
DATOS
$FFFF
$0000
Figura 29,6 Configuracin de la memoria de programa
29.6 se muestran las dos configuraciones posi-
bles de la memoria de programa.
La memori a de datos se puede usar como una
memori a i nterna o externa con capaci dad de
direccionamiento de 256bytes 64Kbytes, res-
pectivamente; y, para acceder a los datos de la
memor i a ext er na se ut i l i za l a i nst r ucci n
MOVX. La memori a de datos, cuando es i n-
terna, se compone de dos reas que son: l os
l 2Sbytes baj os ocupados por l os regi stros de
propsi to general y l os l 28byts al tos en don-
de se encuentra el espaci o reservado para l os
registros de funcin especial (special
function
regi ster, SFR); en l a fi gura29.7 se muestra el
mapa de l a memori a de datos.
En la figura 29.7 se muestra que el direccio-
nami ento de l a memori a i nterna puede ser
directo indirecto. El bloque de los I2Sbytes
ms bajos puede accederse en los dos modos
de direccionamiento, y posee algunas caac-
tersticas y asignaciones especiales, tales como
son: l os bancos de regi stros, el rea di recci o-
nable bit a bit y el rea de anotaciones de
acceso rpido (scratch pad). En la figura 29.8
se muestra l a segmentaci n de l a memori a
de datos interna,

a continuacin, se estu-
diarn sus caractersticas.
c u rc o p r cti c o so b r e M i c r o c o n tro t a d o r e s gk rc:
Stb
&fl
t
Lus nrlctaconttulatiotes t!051 tie tntet
Figun H.7 Mapa de la memoria de datos
Area de
anotaciones
(scratch pad)
Segmento
di recci onabl e bi t a bi t
Figun 8.8 Segmentacin de Ia memoria de datos intema
1.1. Bancos de registros
Los bancos de registros son cuatro (banco 0 a
banco 3) y cadauno se compone de 8 registros
de 8bits
(R0 a R7); stos se encuentran entre
las posiciones $00
y
$lF y ocupan 32fu,ns.El
banco 0 es el seleccionado por defecto luego
de un reset, mientras que la seleccin de los
otros bancos debe hacers e por softwar desde el
registro de estado PSI/ (prograTn stdtus wor),
que hace parte de los SFR.
Nota:
Por defecto, el resethace que el registro punte-
ro de la pila
(SP)
seale a la posicin que co-
rresponde con el registro R0 del banco 2 ($08).
Si se quieren usar ms bancos de registros, el
SP se puede inicializar despus del reset en otra
posicin de memori.
I.2. ftea direccionable bit a bit
Esta rea ocupa I2Sbits en total
(l6byte)
ubicados entre las posicio-
nes $20 y $2F,
y todos ellos direccio-
nables directamente bit a bh. stos
pueden adems agruparse en hytes y
direccionarse como tal, y, para referir-
se a ellos directamente como bits o
como bytes, se deben usar las direccio-
nes asignadas para cada uno; as, por
ejemplo, el bi del byte $20 dene la
direccin 20.0, mientras que la direc-
cin del bit7 del hyte $2F esla2F.7.
1.3. Aea de anotaciones (scratch pad)
Esta rea de acceso directo e indirec-
to es la memoria RAM de trabajo del progra-
mador, es un bloque de memoria de acceso
rpido pero de baja capacidad, y en este mi-
crocontrolador se encuentra entre las locali-
dades de memoria $30 v $7F.
En el bloque delos l2Sbytes ms altos de la me-
moria de datos se encuentran los registros de
funcin especial (SFR) de esta familia de mi-
crocontroladores, y en la tabla 29.2 se mues-
tran los SFR del MCU 8051, en ella se nom-
bran y se definen sus smbolos y direcciones. A
continuacin se explican brevemente las fun-
ciones de los SFR, y los ms importantes de ellos
se vern en detalle en su debido momento.
Registro acumulado r (Accumuhtor register)
(ACC
A): es el ms utilizado durante el mo-
vimiento de datos, es deSbitsy es de propsi-
to general.
Registro B (B register): este registro est dise-
ado especialmente para las operaciones ma-
temticas de multiplicacin y divisin, y pue-
de ser de propsito general.
Palabra de estado del programa
(Program
Status'W'ord PS't7): es el registro que con-
tiene la informacin del estado de la CPU.
$80
$7F
i D
I
t -
t
I
I
I
I
+H
t
i '
I
: r
r l
;;
*=l
lancos de
registros
l s
i ]
T]
i - r
I '
+
I
I
i
l
i
l
l +R
#
rrr*
curso prctico sobre Microconfrotadores
sMB0r0
.ACC
Accumulator
*B
B register
"PSW Program status word
SP Stack oointer
DPTR Data pointer (2 bytes)
DPL Low byte data pointer
DPH High byte data pointer
*P0
Port 0
*P1
Port 1
"P2 Port 2
*P3
Port 3
*lP
Interrupt priority control
*lE
Intenupt enable control
TMOD Timer/Counter mode control
"TC0N Timer/Countercontrol
*+T2C0N
Timer/Counter 2 control
THO Timer/Counter 0 high byte
TLO Timer/Counter 0 low byte
THl Timer/Counter t high byte
TL1 Timer/Counter 1 low byte
+TH2
Timer/Counter 2 high byte
+TLz
Timer/Counter 2 low byte
+RCAP2H
T/C 2 capture reg. high byte
+RCAP2L
T/C 2 capture reg. low byte
-SCON
Serial control
SBUF Seria data buffer
PCON Power control
NOMBRE
Acumul ador
Registro B
Palabra de estado del programa
Puntero de la memoria de oila
Puntero de datos
Byte bajo del puntero de datos
Byte alto del puntero de datos
Puerto 0
Puerto 1
Puerto 2
Puerto 3
Contol de
prioridad
de las intenupciones
Control de autorizacin de las intenupciones
Control de modo del temoorizador/contador
Control del tem0orizador/contad0r
Control del temporizador/contador 2
Byte alto del temporizadoricontador 0
Byte bajo del temporizador/contador 0
Byte alto del temporizador/contador 1
Byte bajo del temporizador/contador 1
Byte alto del temporizador/contador 2
Byte bajo del temporizador/contador 2
Byte alto del registro de captura T/C 2
Byte bajo del registro de capturaT/C 2
Control de comunicaciones seriales
Buffer de datos de comunicaciones seriales
Control del modo de consumo de ootencia
el modo POlf/ER
1or[a
DfR
Bffir de datos seriales
tr^
(SerildaubufferSBUF):
Qt r Ur .
sFo
es eI reSl stro que oPera
$Do
como i mpul sador de da-
$81 tos de recepci n o trans-
$82
$83
$80
$e0
$Ao
$80
$BB
$A8
$89
$88
$c8
r,
$8A
$8D
$88
$cD
$cc
$CB
$cA
$e8
$9e
$87
mi si n dur ant e l a co-
muni caci n seri al .
Registros temporizadores
(Timer register TH/LO,
TH/L1): son registros de
l6bits que operan como
contadores o temporizado-
res y se comPonen a su vez
de una parte baja (L) y otra
alta
(H),
ambas deSbits.
Registro de control de po-
tencia (Power control rtp-
r PCON): es el registro
que controla el modo de
consumo de potencia. En
laversin del microcontro-
lador 8051 con tecnologa
CHMOS se encuentran
disponibles dos modos de
trabajo de bajo consumo:
DOWN y el modo IDLE.
+
= Resistros que se ulilizan slo en el Mcu 80s2
Tabta 2g.2 Registros de funcin especial del MCIJ
g0s1
*
= Direccionable bit a bit
y se actual i za con cada ci cl o de i nstrucci n.
En el cuadro 29.1 se muestra su formato.
Registro apuntador de la pila (Stach pointer):
es el registro apuntador del rea de la pila (que
es de 256 posiciones), es de Sbits y seala a la
posicin $07 cada vez que un ciclo de res es
activado. Luego de ejecutar la primera instruc-
cin de apilamiento o llamado (PUSH o
()4LL),
queda sealando a la primera posicin disponi-
ble de Ia pila ($OS). En la figura 29.9 se mues-
ta el rea de la pila.
Apuntador o puntero de datos
(Data poin-
ter): es el registro que contiene en todo mo-
mento la direccin del puntero de datos, pue-
de ser de 16 de 8i s
(DPTR, DPH DPL).
Puertos 0,1,2,3
(Pom P0, Pl , P2,P3): son l os
cuato ltcbs delos puertos y son de 8 zs cada uno.
Adicionalmente, se usa para controlar la veloci-
dad de comunicacin por el canal serial.
Regisuo de control del temporizador/contador
(TimerlCounter
control register TCON): es el
registro que controla el funcionamiento de las
interrupciones y los flancos de activacin asig-
nados para \os trimer 0 y l.
S"l i J
S[ ] ;
-
r l : ai
: : t i t ' r . : l [ )
Figura 29.9 La pila del
ir'r
MCU 8051
s80
57:
. ^s\
curso prctico
sobre Microcontroladores
&Xln.:
*tt)
\d/
PAI.ABRA DE ESTADO DEL PROGRAMA PSW
BITS I{OMBRES Y COMEI{TARIOS
BtO
ljl
Bandera de paridad
del acumutador (ACC)
.
Si P = 1 entonces el nmero de unos del ACC es imoar
o
Si P = 0 entonces el nmero de unos del ACC es oar
Bitl Bandera disponible y definible por el usuario
Bit2
l0Vl
AanOera Oe sobrepasamiento (overftow)
Bt3 - Bit4 Selectores de los bancos de registros
Bits
lHl I
Eandera 0 de propsito general, definible por el usuaric
Bit6
[l
Bandera oe acaneo auxlar, para operaciones en BcD
BitT
fE
Bandera de acaneo
Los nrleruecutr'ukidurrs t!U51 de tnts{
Cuadro 29.1 Formatl del registro de estado det MCIJ
g0l
Registro de control de modo del temporiza-
dor/contad or
(Timer/Counter
modc control re-
gisterTMOD): es el registro con el cual se se-
lecciona el modo de operacin del timer 0 I
(como
temporizador como contador).
Regisuo habilitador de direcciones (Internrpt
enable registerlE): es el registro dedicado al con-
trol de las interrupciones; le permite al progra-
mador habilita nicamente las interrupciones
que necesite.
Registro de prioridad de intemrpirones (Ina-
rn?tpriority rcgisterlP): es el registro que con-
trola la prioridad de cada fuente de interrupcin
habiliada, al poner en I en 0 sus bits. Cada
fuente de interrupcin podr ser programada en
nivel de prioridad | 2,y toda interrupcin con
prioridad superior puede bloquear la ejecucin de
otf,a con prioridad inferio y no lo contrario.
Registro de control del puerro seial (Snialport
conilol register (SCON):
por medio de este re-
gistro se definen los parmetros de la comunica-
cin serial, tales como la velocidad, el formato
de la palabra y la direccin de la transmisin.
En el MCU 8051 con encapsul ado DI B el
pi n 9 es el reset; este pi n se acri va cuando re-
ci be un ni vel l gi co al t o (+5V)
durant e al
menos dos ci cl os de mqui na (24
peri odos del
rel oj del osci l ador). Durant e t al est ado, l a
CPU escri be l os parmetros i ni ci al es en ro-
dos l os regi stros que dependan de ste, e i ni -
cializa el hardware de todos los mdulos pe-
ri fri cos i nrernos; en l a tabl a 29.3 se mues-
tran l os regi stros que son afectados por el ci -
clo de reset.
vcc
Figura 20,10 Circuito tpico de reset automtico para
et
g05l
El circuito que se
muestra en la figura
29.10 es til para ge-
nerar un reset auto-
mtico a la conexin
Qtower
on reset),'ste
se produce al poner
en el pin de RESET
el voltaje de alimen-
tacin (Vcc)
durante
el ti empo defi ni do
por la red de carga
RC, que est forma-
da tpi camente con
una resi st enci a de
lOkCl y un conden-
sador delOpF. Estos
valores pueden ajus.
tarse de acuerdo con
el reloj aplicado al mi-
croconuolador.
ACC
l a
PSW
l sp
DPTR
I
P0-P3
tP (8051)
I
rP (8052)
rE (8051)
I
rE (8052)
TMOD
I
rcon
THO
I rLo
TH1
I
rLr
TH2 (8052)
I
TL2 (8052)
RCAP2H (8052)
I
ncnezl
leosz
scoN
I
saur
PCoN (HMoS)
PCoN (CHMoS)
Tabla 29.3 Estado inicial de los
registros despus del reset
$00
$oo
$00
$07
$0000
$FF
)00(000008
xxo000008
oxx000008
0x0000008
$oo
$00
$oo
$00
$00
$oo
$00
$00
$oo
$00 '
$oo
Indeterminado
0)000000G
0xxx0000B
lnfa
^dv' ( b, .
.
{2e43
qr<ti.:.
curco prcco
sobre Microcontrotadores
&d
Los mi crocontrol adores 8051 poseen puertos
mul ti funci onal es, stos pueden operar como
driuers para manejar directa o indirectamen-
te cargas, u operar como buses bi di recci ona-
l es de datos y di recci ones durante el acceso a
di sposi ti vos externos.
Los mdulos temporizadores y los contadores
son los perifericos internos de mayor impor-
tancia, ya que se constituyen en la herramien-
ta ms til con que cuenta el programador para
l os proyectos con el 8051.
' /t"\
Curso prctico
sobre Microcontroladores @Efr(f,E) (ZeS
;)
\\
/,/
l]uertcs y
reritGr'[cos
lrrtrlrrus tiel urlcrucuutrsladur t!05r
pnRn
snen rs:
El ciclo de mquina del 8051
En esta familia de microcontroladores, un ciclo de mquina que es la unidad bsica de tiempo en la que se cuenta
la duracin de la ejecucin de una instruccin u operacin, consta de una secuencia de seis estados que se nombran
entre 51
y
56;
y, a su vez, cada estado se compone de dos periodos de la seal de reloj del oscilador llamados fases
(fase 1, Pl y fase 2,P2l;tal como se
puede ver en la figura 30.1. De lo anterior se deduce que cada ciclo de mquina
tiene
'1
2 fases y que su duracin se
puede determinar por medio de esta expresin: CM = l ZFrecuencia; esto quiere
decir que, por ejemplo,
para
un reloj de 12MHz se obtendr un ciclo de mquina de 1ms de duracin.
l sl l s2l s3
I P, l P2 I Pl P2 I P1 P2
l s4 l
l Pl P2 t Pl
s5l s6l
P2 t P1 P2 |
:
I N; :
E: .
e
1)u
En la figura 30.2 se muestra la arquitectura interna
de los puertos multifuncionales de esta milia de
microcontroladores. El 8051 posee 4 puertos bidi-
reccionales (de entrada o salida) e independientes,
de Sbits cadauno y que se denominan P0, Pl, P2 y
P3. Como salidas, elfan-outdel P0 es de ocho car-
gas TTL-LS, mientras que los otros puertos Pl a
P3 solo pueden manejar cuatro cargas.
Para programar l os puertos como sal i das,
es necesari o escri bi r un 0 l gi co en el l atch
correspondi ente, mi entras que si se escri be un
1 l gi co se programan como ent radas. Por su
arqui tectura totem-pol e, sol amente el P0 pue-
de adoptar el estado de al ta i mpedanci a o ter-
cer estado (tristate) cuando se programa como
entrada. l os otros asumi rn un estado al to de-
bi do a l a resi stenci a pul l -up i ntegrada en su
estructura de drenador abi erto (open-drai n);
en cual qui er caso, para l eer un dato el l atch
correspondi ente al puerto debe cargarse con
I l gi co para que el transi stor MOS i nferi or
permanezca en estado de ci rcui to abi erto, y
l a resi stenci a de pul l -up sea l a i mpedanci a vi sta
por l a ent rada.
Las funciones compartidas y las caractersti-
cas particulares de cada uno de los puertos se es-
tudian a continuacin:
Figura 30.1 Representacin en el tiempo de un ciclo de mquina del 8051
opera como un puerto de
8bi ts, pero tambi n mul ti pl exa en el ti em-
po l a parte baj a del bus de di recci ones y todo
el bus de datos durante el acceso a l a me-
mori a externa de programa o datos. Este
puerto tambi n se usa como bus de datos
durante l a programaci n y veri fi caci n de
l a memori a i nterna EPROM en al gunas ver-
si ones del mi crocontrol ador.
opera como un puerto deSbits,
pero tambin recibe la parte baja del bus de
direcciones durante la programacin y verifi-
cacin de la EPROM interna, en la versin
8751 de esta familia de microcontroladores.
opera como un puerto deSbi ts,
pero tambin se usa como la parte alta del bus
de direcciones durante el acceso a la memoria
externa de programa o datos. Thmbin recibe
PIilES FUilCINALTERNA
P3.0 RXD (Entrada del puerto serial)
P3.1 TXD (Salida del puerto serial)
P3.2 iN-tO
ltnterrupcin
externa 0)
P3.3 iNTl
llnterrupcin
externa 1)
P3.4 T0 (Entradaexternadel Timer0\
P3.5 T1 (Entrada externa del Timerl)
P3.6 WR (Autorizacin de escritura en memoria de datos extema)
P3J FD (Autorizacin de lectura en memoria de datos extema)
2) l
I
r
r
F
I
r
ci
escri
t o. c
te se
di o t
MC
se pt
. &' . . r
d*3 &Jrct,.L
curco prctico sobre Microcontrotadores
&d
Tabla 30.1 Funciones alternas del nuerto 3
2) Un pin del puerto 1 (Pl,X)
la parte alta de la direccin durante la progra-
macin y verificacin de los datos de la me-
moria EPROM.
opera como un puerto de Sbits de
propsito general, pero adems comparte otras
funciones importantes; en la tabla 30.1 se resu-
men las otras funciones de cada uno de los pines
de este puerto.
h- /
L,TLA
DIRECCIONES
Lectura en
eI LATCH
Escribe en
eI LATCH
Pi n de
lectura
3) Un pin
del puerto 2 (P2.Xl
Funcin alterna de
SALIDA
Lectura en
el LATCH
Escribe en
el LATCH
Funcin alterna de
ENTRADA
4) Un pin
del puerto 3 (P3.X)
Figura 30,2 Arquitectura de los puertos del MCU 8051
el diagrama de tiempos de la figura 30.3, sta
se usa habitualmente para cafgar en el puerto
Px el DATO por medio de cualquier modo de
di recci onami ento.
Para la lectura slo basta con invertir el orden
de los operandos de la instruccin usada anterior-
mente para la escritura, as: MOV (DAIO),Px.
Figura fi.3 Diagrama de tiempos de la instruccin MOV PX, (DATO)
La operacin de
escritura en un puer-
to, que generalmen-
te se efecta por me-
dio de la instruccin
MOV Px,(DAIO),
se puede apreciar en
DIF/DATOS CONTROL
vcc
Mov Px, (DATo)
Lectura en el
LATCH
BUS
INTERNO
BUS .
INTERNO
Escribe en
el LATCH
Lectura en
eI LATCH
BUS
INTERNO
BUS
INTERNO
Escribe en
el LATCH
Pi n de
teclura
Pi n de
lectura
I
Estado4
|
Estado5
|
Estado6
|
Estadol
I
Estado2
|
I
pr
I
pzl pl
I
pzl pr l pzl p1l p2l pl l pzl
curco prctico sobre Microcontrotadores
&kt
,.t
#
l:uertgs
y
tlet'it't'icus
lttitiutus del tttlctucunuutauut' t!05r
Figura 30,4 lnterfaces
para leer y escribir en los
puertos
del 8051
detecte por los pines 14
(T0) y 15 (T1) para l os
contadores de los timers 0
y 1, respectivamente.
En la figura 30.6 se
muestra la arquitectura ge-
neral de los timers del
8051, all pueden verse: el
selector
(C/T)
de la seal
F
t_
I
err
t'
I
t'
I
L^
| : .
|
"'
I
L
Figu
EnouErA coreootpnocRrun
I ni ci o MOV A, P0
CPL A
MOV P]., A
AJMP I ni ci o
En Iafirura30.5
Figun 30.5 Diagrana de fluio del
r.
-.r.rrr"-.1
diasra_
programa ejemplo, para el uso de los
"- '^;*;":^*
,-,
o
pueftos maCeilurooelprogra-
ma y el segmento de
cdigodelmismo. En
el programa se ilustra el uso adecuado de los puer-
tos como entrada y salida de manera sencilla; en l se
lee un dato por los Sbits del puerto 0, se comple-
menta su estado y se enva por los pines del pueno 1 .
Esta familia de microcontroladores posee dos
temporizadores-contadores
(timer 0 y timer l).
Cuando opera como temporizador, el contador
se incrementa con cada ciclo de mquina hasta
sobrepasar el valor prefi-
jado; por este motivo, se
puede decir que la cuenta
se hace con ll12 de la fre-
cuencia del reloi; mientras
que cuando opera como
contador, el registro es in-
crementado en uno con
cada flanco descendente
de la seal externa que se
de reloj del contador, con el cual se elige la fuen-
te del reloj a partir del oscilador interno o desde
una fi.rente externa; la lgica de habilitacin por
sofiutarey por harduare, qve se usa para habilitar
la cuenta de pulsos a travs del interruptor de
CONTROL, cuando los estados de las entradas
TRx, GAIE e iM* son 1, 0 1, respectiva-
mente; los registros del contador, que llevan la
cuenta en todo momento y que pueden ser de
8,13 lbits segn el modo de trabajo; y, elflip-
flop
dr la bandera de estado TFx, que se utiliza
para indicar el sobrepasamiento y generar la in-
terrupcin del timer.
La funcin como temporizador
(timer), o como
contador (counter), se selecciona desde el bit de
control llamado CIT;y los cuatro modos de ope-
racin de estos dos temporizadores-contadores se
definen con los bits M0 y Ml. Todos estos tres
bits, pertenecen al registro de control de modo
TMOD (Timer/counter Modz Connol Register) que
hace parte de los SFR. En las figuras 30.7 y 30.8
se muestran los registros de control y de modo
TMOD y TCON (timer/counter control register),
asociados con el comportamiento de los dos i-
En la figura 30.4 se
muestran dos circui-
t os recomendados
que pueden ser uti-
lizados para leer da-
tos apropiadamente,
sin rebote, y mane-
j ar cargas de hasta
600mA.
Pi n Tx
GATE
Pin tilfx
Seal de
Interrupcn
. {
&lct.i.
curco prctico sobre Microcontrotadores
mers,
Figura 30.6 Arquitectura general de los timers del
MCU 8051
TMOD
Bt1 Bi 6 Bn 5 Btt 4 Bt3 Bt2 Bt 1
BIT NOMBRE Y COMENTARIO
BO- 81 MODO MI MO MODO DE OPERACIN
0 0 0 Iemponzador de 13 b/8
za00rL0nla00f 0e tb Dls
0 Iemp0LzadoilContdor de 8 bls c0n auto-TerrQ
onladofes mu lrples espec trcos
82 Sel ecci 0na t em00r i zador o cont ad0l
.
Si CiI = 0 entonces temporiza con los pulsos del reloj interno
.
Si C/T = 1 entonces cuenta los pulsos que llegan porT0 (pin1
B3
l CeTEl Hani ti ta
l a entrada exteri 0r l NTO (pi n 12)
.
Si GATE
-
1 entonces habilita |NTO s TRO = 1 {control oor hardwar
.
Si GATE - 0 entonces deshabilita lNTO v deoende exclusrvamente
de TRO (conlrol por softvvare\
(IRO es un bdel Reg. TCON y se actva 0 desactiva por software)
84 - 85-
BOyBT
Configuracin del Timer 1
lgual que para fmer0, susttuyendo
T0 porTl (pi n 15)
l NTo por l NTl (pi n 1 3)
TRO por TRl
Figura 30,7 Registro de control de modo (TM1D) de los timers 0 y
1 del 8051
Al poner los bits M0 y M I en 0 lgico en el
regi stroTMOD (que
no es di recci ona6l e bi t
a bit), se configura el modo 0; en ste el re-
gi stro contador es de 13bi ts, reparri dos l os
Sbits de mayor peso en THx y los 5bits ms
baj os en TLx. Cuando l a cuenta en el regi s-
tro del contador (THx,TLx)
se desborda
(pasa
de $FFF I a
$0000) l a bandera de i nte-
rrupci n correspondi ente se acri va, sta pue-
de ser TFO TF I
, y est ubi cada en l as posi -
ciones de los bits 5 7 del registro de con-
trol TCON, que hace parte de l os SFR y que
es direccionable bit a bit.
Como puede observarse en la figura 30.6, cual-
quier seal de interrupcin externa (lNTx)
puede utilizarse para habilitar y
"congelar"
el
valor de la cuenta del timer, al ponerse en 1 y 0
lgico respectivamente; y, siempre y cuando,
los isTRx y GATE permanezcan en l.
EI modo 1 se configura con los bits M0 y Ml
en 1 y 0 respecti vamente, ysu comportami en-
t L_UL L
Figura 30.8 Registro de control (TC0N) de los timers 0 y I del B0Sl
to es idntico al del modo 0, exceptuando que
el registro contador del timer ahora es de lbits
y est ubicado en dos grupos de Sbits que r-
siden en los registros THx y TLx. En este
modo, el desbordamiento se da cuando pasa
de $FFFF a $0000.
El modo 2 se confi gura con l os bi ts M0 y
M 1 en 0 y 1 respecti vamente; en este modo,
Ios mers se comportan como contadores
de Sbi ts y operan sobre l a parte baj a del re-
gi stro contador (TLx).
Cuando el registro TLx se desborda (pasa
de
$FF a $00), se acriva la bandera de interrup-
cin adecuada (TF0
TFl) y el registro TLx
se recarga o actualiza automticamente con
una copia del contenido de THx, previamente
almacenado por el programador.
En la figura 30.9 se muesrra la arquitectura
que adoptanl os ti mers en modo 2.
TCON
BN1 816 BN 5 BI 4 BI 3 BI 2 BT 1 BI O
r F1
| r R1 |
TFO
I TRof l
l i l
| l T1 | l eo I r o
BIT NOMBRE Y COMENTARIO
BO
hTOl
Controt interrupcin externa 0 (tNTO)
o
Si lT0 = 0 enlonces es activa por nivel bajo
o
Si lT0
-
I entonces es activa por flanc0 de bajada
B1
@
naq Oe interrupcin para la intenupcin externa 0 (INTO)
.
Se pone a uno cuando se detecta interrupcin externa
.
Se repone aut0mticamente al atender la interupcin porfanc(
82
lliil
Control intenupcin externa 1 (tNTt)
B3
ltEil
futg Or interupcin para ta interrupcin externa i(tNT1)
B4
ffi
Hrnitit, trrporizador/contador0
o
Si TRO
-
1 enlonces habilita temporizador/contador 0
.
Si TRO = 0 ent0nces deshabilita temporizador/contador 0
B5
Fl
Flag overflow (s0brepasamiento) del Timer0
Se repone aut0mticamente al atender la interrupcin
B6
F-ll
Huoitit. r.rporizad0r/contad0r 1
87
FFtl
Fl ag Oe overfl ow (sobrepasamento) del Ti mer 1
Curco prctico
sobre Microcontrotadores
&iUrO,
@
Lus urlcr'ueuntralatiur'es t!05r tie tutel
Pin T1
Con el modo 3 se extiende a tres el nmero
de timers disponibles en el microcontrolador
8051, ste se confi gura con l os bi tsM0 yMI
en 1 y ha sido diseado para las tareas que
requieran otro temporizador-contador adicio-
nal; en este caso, se asocian los timers 0 y I
para conformar dos contadores independien-
tes de Sbits que utilizan como registros a las
partes aka y baja del timer 0 (THO y TLO).
En l a f i gura 30. 10 se muest ra l a arqui t ec-
tura que asumen l os nuevos ti mers i nde-
pendi entes en modo 3, en el l a puede verse
que el t i mer I cede su bandera (TF1) y su
bi t de control (TRl ) para conformar el
cont ador adi ci onal .
@1--E1-1/12rosc
1/1 2 fosc
1/1 2 fosc
Figura 30.9 Arquitectura equivalente de los timers del MCll,8051 en modo 2
Con el regi stro TLO se puede confi gurar
un tempori zador o contador i nterno o ex-
terno de Sbi ts con l a l gi ca de control , tal
como se ha consi derado hasta ahora, pro,
cuando se usa el regi stro THO (del conra-
dor adi ci onal y tambi n de Sbi ts), sl o se
puede tempori zar o contar tomando como
base a Il 12 de l a frecuenci a del osci l ador
i nt erno de l a CPU.
El modo de operacin de esros dos nuevos
temporizadores-conradores es idntico al de
los anteriores, stos activan sus correspondien-
tes banderas de interrupcin cuando sobre
cualesquiera de los registros de los contadores
(TL0
THO) se produce un sobrepasamien-
to del valor $FF.
Figura 30,10 Arquitectura equivalente de los timers del MCU 8051 en modo 3
#
&ooor.
curco prctico sobre Microcontrotadorcs
Las interrupciones en los procesos con microcon-
troladores son las herramientas que establecen un
servicio directo entre la CPU y cualquier sistema o
dispositivo periferico externo e interno, lo que nos
permite desarrollar un modo de trabajo que es in-
herente al control de procesos en tiempo real.
Los microcontroladores 8051 son diseados con
mdulos perifericos internos especiales que pue-
den ser programados, y que reciben y evalan to-
das las fuentes de interrupcin internas y externas.
curso prctico
sobre Microcontrotadores
&<ff"t
<j>
luteu'ut relu ues del uriet'a eu nttulaua r tiltll
Tiadicionalmente el servicio bidireccional no sin-
crnico y sincrnico entre la CPU del microcon-
trolador y los dispositivos y sistemas perifericos,
se ha desarrollado por medio de tcnicas de con-
sulta conocidas comopollingy el uso de proto-
colos de comunicacin construidos con algunas
l neas de di l ogo, tambi n conoci dos como
handshahe. En este caso se hacen consultas c-
clicas de los registros o bits de estado que repre-
sentan a cada uno de los perifericos, por medio
de instrucciones del programa, para determinar
cuando se ha solicitado una interrupcin.
No obstante, este mtodo presenta proble-
mas cuando los perifericos consultados son nu-
merosos, porque, en cada ciclo de programa se
deben interrogar y acttalizar los registros o irs
de consulta, y, porque al dispositivo slo se le
atiende al terminar la ejecucin de la rutina de
consulta y no en el momento de la solicitud de
atencin. Por lo anterior. este mtodo slo se
usa con eficiencia en grandes sistemas de cm-
puto que poseen alta velocidad de procesamien-
to y alta capacidad de memoria.
Sin embargo, las interrupciones son otra
tcnica que viene siendo utilizada por todos los
fabricantes de microcontroladores como una he-
rramienta poderosa para establecer un servicio
no sincrnico, directo e inmediato, entre la CPU
y los sistemas o dispositivos perifricos externos
e internos. Con esta tcnica se evita la ejecucin
de las rutinas de consulta y se atienden los proce-
sos en tiempo real, ya que el periferico genera
una seal de interrupcin (lNTx) propia, cada
vez que requiere atencin. Este mtodo nos per-
mite ejecutar las rutinas de servicio de las inte-
rrupciones en el momento preciso y sin desviar
la atencin de la CPU del cuerpo principal del
programa, lo cual se hace necesario en muchas
de las tareas de los microcontroladores.
Los microcontroladores 8051 cuentan con cin-
co fuentes de interrupcin, dos externas y tres
NOMBRE MNEMNICO BANDERA
Externa 0
Timer 0 (lnterna)
Externa I
Timer 1 (lnterna)
Puerto serial (lnterna)
Puerto serial (lnterna)
INTO
TIMERO
INTl
TIMERl
RI
TI
tE0
TFO
tEl
TF1
RI
TI
Tabla 3l.l Las intenupciones del MCU 8051
internas. En la tabla 31.1 se muesrran las inte-
rrupciones, sus nombres y los mnemnicos que
se usan para cada una de ellas; y, en la columna
de la derecha se muestran tambin las banderas
que estn asociadas a cada interrupcin.
Todas las interrupciones pueden ser habili-
tadas e inhabilitadas independienremenre y glo-
balmente por el usuario, usando el registro ha-
bilitador de interrupciones IE (interrupt
enable
register) que hace parte de los registros de fun-
ci n especi al SFR; en el cuadro 31.1 se muestra
este registro con todas las condiciones de sus
bix de control.
Cuadro 3l,l Registro habilitador de las interrupciones
lE del 8051
det
CS:
na5
PCI
esti
ma
rru
tru
en
SC
aut
do
nal
flar
de
l as
cu:
eSt i
tar
de
vi c
bar
por
ser
ust
se
ys
tE (REGTSTRo HABTLTTADoR DE tNTERRUpctoNES)
B17 8'16 Bts Bt4 Bt3 B2 Bt1 BtO
EAI X I X I ESI I FT1 I i l 1 I ETOI EXO
BIT NOMBRE Y COMENTARIO
BO
lEXOl
.
Si EXO = t habilita intenupcin externa |NTO
.
Si EXO = 0 la inhabilita
B1
lETOl.
Si EIO = l habilta interrupcin del Tmer\

Si ETO = 0 la inhabilita
82
lEXl l.
Si EXl = I hablita interrupcin externa lNTl
o
Si EXI = 0 la inhabilita
B3
lEfl |
.
Si ETl = t habilita interrupcin del Tinerl
.
Si ET1 = 0 la inhablita
B4
l-!!l'
s ES = l habilita intenupcin del puerto seral
.
Si ES = 0 la inhabilta
B5 Reservado
B6 Reservado
87
I
m
|
.
S f = I hablta individualmente a todas las intenupciones
que en este registro estn a uno
.
Si EA = 0 no reconoce ninouna interruocin
$t& &,fmn:.
Curco prctico sobre Microcontrotadores
&fl
ES
Cada una de las interrupciones afecta a un
determinado bitbandera
Vkg
bit) cada vez que
es solicitada,
/
urr vez se han atendido las ruti-
nas de interrupcin el programador deber estar
pendiente del estado de stas y retornarlas a su
estado lgico inicial para poder aceptar la prxi-
ma interrupcin. Todas las banderas de las inte-
rrupciones pueden borrarse por medio de ins-
trucciones (borrado por softwar) directamente
en l os regi stros que l as conti enen TCON y
SCON, aunque algunas se borran de manera
automtica al retornar de la interrupcin (borra-
do por bardware).
En el caso de las dos interrupciones exter-
nas INT0 e INTI, que se pueden activar por
flanco o por nivel a travs de los bits de control
de interrupcin IT0 e ITI del registro TCON,
l as banderas son borradas automti camente
cuando estn activas por flanco; pero, cuando
estn activas por nivel bajo, se deben inhabili-
tar (poner en uno lgico el correspondiente pin
de entrada INTx) para salir de la rutina de ser-
vicio de atencin a la interrupcin y borrar la
bandera. Las interrupciones internas de los tem-
porizadores-contadores (timers) y las del puerto
seri al , sol amente pueden ser borradas por el
usuario a travs del software. En la figura 31.1
se aprecian las fuentes de interrupcin del 8051
y sus selectores de entrada.
i L
Hgun 31.1 Fuentes de intenupcin del 8051
,
selectores y bandens
Cadavezque se acepta una interrupcin, la CPU
guarda el contenido del registro contador del pro-
grama PC en el rea de la pila (stach)
antes de
que ste sea cargado con el vector correspondiente
(direccin
fija en memoria de programa asocia-
da con la interrupcin); de esta forma, unavez
atendida la interrupcin, la CPU puede conri-
nuar con la ejecucin del programa principal
desde el punto en el cual fue interrumpido.
$OFFF
interna)
ctt
E
t
o
z,
o
Rl yTl
TF1
tE1
TFO
rE0
+
+
$0023
$0018
$0013
$0008
$0003
$0000
an
tJ
z,
I
o
CJ
t
9E
o
=

CJ
A
u
F
=
RESET+
Figura 31.2 Vectores de las interrupciones del 8051
En la figura 31.2 se muestra la vectorizacin
de todas las interrupciones del 8051, esra rea se
ubica al comienzo de la memoria de prograrnay
all puede verse que se han reservado espacios de
8 bytes para cada una de ellas; estos intervalos de
8
futes
entre cada vector de interrupcin pueden
utilizarse para contener directamente los progra-
mas cortos de atencin a las interrupciones, o,
como es habitual cuando la rutina de servicio de
interrupcin es extensa, para albergar la instruc-
cin de salto
JMP(dir)
necesaria para cargar el
registro PC con la direccin de memoria inicial
de la rutina.
En este ltimo caso y a manera de ejemplo,
si suponemos que la rutina de atencin a la inte-
rrupcin se encuentra ubicada a partir de la po-
sicin $0777 de la memoria de programa, y que
adems, la interrupcin externa INTI se ha ha-
bilitado poniendo el
Qit
EXI en uno lgico, el
vector correspondiente, que est ubicado en la
posicin $0013, debe contener el cdigo de ope-
curco prctico
sobre Microcontrotadores
&O
t O.l'
&
&d
lntenulrelones tiel nuracuntuluuur' ti05r
racin de la instruccin de salto

enlos dos bytes
de memoria siguientes $0014 y $0015, deben
guardarse los bytes de la direccin de salto ms y
menos significativos respectivamenre. En la fi-
gura 31.3 se representa este ejemplo.
$FFFF
l ni ci o
$0777+
^tt
$001 5
$f)014
$0013
$,OOOO
Figura 31.3 Salto a una rutina de intenupcin * ,t;:;;l:
Para comprender el proceso de interrupcin
en los microcontroladores 8051, se ha incluido
el diagrama de tiempos simplificado bajo con-
diciones ideales que se muesrra enlafigara3l.4,
ste est representado en trminos de los esta-
dos (S) y de las fases (P)
de cada ciclo de m-
quina
(C).
En el diagrama puede verse que las
banderas de interrupcin se consulran en la fase
2 del estado 5
(S5P2)
de cada ciclo de mquina
y que los resultados son evaluados durante el
siguiente ciclo; y tambin, que luego de la eva-
luacin y si hay alguna solicitud de interrup-
cin activa se genera un llamado (LCALL)
al
vector correspondiente.
Evaluacin de
interrupciones
El proceso de interrupcin siempre se consi-
dera urgente y, una vez iniciada su vectorizacin,
slo podr ser inrerrumpida o bloqueada cuan-
do una instruccin o una inrerrupcin de mayor
o igual prioridad se est ejecutando, o cuando se
est accediendo a los registros de control IP IE,
, cuando se esr ejecutando una instruccin de
retorno de interrupcin RETI.
Nota:
Toda rutina de atencin a una interrupcin debe
terminar con la instruccin de retorno de inte-
rrupcin RETI; con sta se informa a la CPU
que la rutina ha concluido para que descargue
de la pila la direccin de dos bytes apartir de la
cual debe continuar la ejecucin del programa
principal, y la cargue en el registro contador de
programa (PC). Las rurinas de servicio de las
interrupcines deben hacerse breves, para ga-
rantizar que slo se experimentar una prdida
de tiempo relativamente pequea durante la eje-
cucin del programa principal al momento de
atender la interrupcin.
En el cuadro 3L.2 se muesrra el tegistro para el
control de prioridad de las interrupciones IP
(interruptpriority
register) que tambin hace par-
te de los SFR; cpn l se pueden programar dos
niveles de prioridad (alta y baja) de manera in-
dependiente paracada una de las fuentes de in-
terrupcin. Al poner en uno lgico el corres-
pondiente bit de la interrupcin se habilita la
prioridad alta,y al ponerlo en cero lgico se ha-
bilita la prioridad baja.
da:
tan
rru
der
sr
cor
ha:
el n
SOS
el n
pri r
vez.
dad
ni,r'r
pi d:
mo
C1
i .
c2
t l .
c3
t l .
c4
r l .
c5
- - - -
t ' t
-
Intenupcin Consultade
activada intenupcin
Vectorizacin
de la intenupcin
Rutina de
servicio de la
interrupcin
Figura 31,4 Diagrama de tiempos de un ciclo ideat del proceso
de intenupcin
#
&<n;
curso prctico
sobre Microcontrotadores
IP IREGISTRO DE PRIORIDAD DE LAS INTERRUPCIONES)
Bt7 Bt6 B15 Bt4 B13 Bt2
.B11
BIO
X X X I PS I I PTl I PX1 I PTOI PXO
BIT IOMBRE Y COMENTARIO
BO lPXOl.
Si PXO = 1 define alta prioridad a la interupcin lNT0
B1
lpfOl
.
S
pfO = I define alta prioridad a la interupcin del ImerO
82
l$ll '
Si PX1 = 1 define alta priordad a la interrupcin lNTl
B3
lprr-l
.
si PTI = 1 define alta proridad a la interupcindelTimer
B4 lTll
.
Si
pS = I define alh priondad a la intenupcin del puer serial
B5 Reservado
B6 Reservado
87 Reservado
cuadrosl.2Resistroparari:i:::;:;:::,,TJ;;',
En cual qui er caso en el cual sean sol i ci ta-
das ms de dos i nterrupci ones en el mi smo i ns-
tante, l a CPU atender l as sol i ci tudes de i nte-
rrupci n y eval uar su ni vel de pri ori dad para
determi nar cul deber ser atendi da pri mero,
sta ser l a que tenga mayor pri ori dad o l a que
corresponda, de acuerdo con l a tabl a 31.2, que
ha si do predetermi nada para ser consul tada por
el mi crocontrol ador 8051 en todos aquel l os ca-
sos en l os cual es l as i nterrupci ones presenten
el mi smo ni vel de pri ori dad.
Cuando una i nterrupci n ti ene ni vel de
pri ori dad baj o puede ser i nterrumpi da, a su
vez, ni camente por otra con ni vel de pri ori -
dad al to; mi entras que una i nterrupci n con
ni vel de pri ori dad al to sl o podr ser i nterrum-
pi da por el RESET, que goza del ni vel mxi -
mo de pri ori dad.
NIVELES DE PRIORIDAD PREDETERMINADOS
PRIORIDAD BANDERA INTERRUPCIN
i-m
TIMERO
itrTi
TIMERl
Rl yTl
EXTERNA O
TIMERO
ENERNA 1
TIMERl
PUERTO SERIAL
t r . , 1t t r .
PARA SABER MS:
Simulacin por
software de un tercer
nivel de
prioridad
En aquellas tareas
que
utlizan varas fuentes de in-
tenupcin con diferentes niveles de
jerarqua,
es con-
veniente contar con ms de dos niveles de
prioridad,
en estos casos, se
puede
crear virtualmente un ter-
cer nivel y simular su compoftamiento. El
proceso
necesario para
crear el tercer nivel de
prioridad
se
describe a continuacin.
Primero, se deben elegir las interrupciones que van a
tener el nivel ms alto de
prioridad,
superior a 1 (prio-
ridad alta), y
se les debe asignar la prioridad 1 a tra-
vs del registro lP. Las rutinas de servicio de las inte-
rrupciones con
prioridad 1, que se supone que deben
ser interrumpibles por interrupciones con nivel de
prioridad
2, se acompaan por los siguientes seg-
mentos de cdigo de
programa
al inicio y antes de la
instruccin RETI:
PUSH IE
MOV IE,#MASCARA
---....911!-...--.--I-EJ.9III***********************
.I;uJlll.?-E.:.E.Tyi.cl.gt.E..Tllll.Ell!1.c.'.911.......
POP IE
RET
RETORNO: RETI
Este programa
adicional se utiliza
para que,
una vez
sea reconocida cualquier solicitud de interrupcin
prioritaria,
el registro habilitador de intenupciones lE
se defina nuevamente con el valor de la MASCARA.
de forma tal, que inhabilite todas las interrupciones
menos las de
prioridad 2;y luego, por medio del lla-
mado a la etiqueta RET0RN0 finalice ejecutando la
instruccin RETI (lo cual borrar la intenupcin con
prioridad
1 en
progreso). En este
punto
cualquier in-
tenupcin con
prioridad 1 que
est habilitada podr
ser atendida.
Con la instruccin de descarga de la pila (P0P) se
recupera el contenido original del byte del registro
habilitador lE, y finalmente, con una instruccin de
retorno de subrutina (RET) se termina la rutina de
servicios de la interrupcin. Este software adcional
que
se requiere no retarda considerablemente la eje-
cucin de la rutina de servicio de la intenupcin con
prioridad
1, puede
calcularse un retardo de apenas
1Oms cuando el oscilador del microcontrolador tiene
una frecuenci a de 12MHz.
Tabla 31.2 Niveles de prioridad predeterminados para
el 8051
curso prctico sobre Microcontrotadores
&kmt
#
ltrte'L.t.ul I clu ncs de.[ nrlcra u'u ntLu lauu t tiU S 1
Puest o que l os t i mers y sus i nt errupci ones ya
se est udi aron en l a l ecci n ant eri or, aqu sl o
recordaremos brevement e que l as banderas
TFO y TF I de st os, son l as encargadas de
generar l a sol i ci t ud de i nt errupci n respect i -
va a l a CPU y que se ponen en I l gi co, cuan-
do se desbordan l os correspondi ent es regi s-
tros de conteo.
En l a fi gura 31.5 se muestra un resumen de
los registros contadores de los timers en los cua-
tro modos de operacin, y las banderas de inte-
rrupcin que se afectan en cada caso.
Como un resumen de l os pri nci pal es as-
pect os que se han est udi ado de l as i nt errup-
ci ones t ant o i nt ernas como ext ernas, a cont i -
nuaci n, en l a f i gura 31. 6, se muest ra un es-
quema si mpl i f i cado de l a arqui t ect ura del si s-
t ema de i nt errupci ones del mi crocont rol ador
8051; al l se represent an eI harduare y I a l -
gi ca asoci ada con cada una de l as fuentes de
INTERRUPCION
lreRRupclH
TEMPOBIZADOR/CONTADOR O EN MODO 1:
IHrrnRupcl H
TEMPORIZADOB/CONTADOR f EN MOOO 1:
tr,neRRupcl
TEMPORIZADOR/CONTADOR
()
EN MODO 2:
@TNTEBRUPcTN
TEMPORIZADOR/CONTADOR 1 EN MODO 2:
@TNTERBUPcTN
TEMP0RIZADOH/CONTAD0R 0 y 1 EN M0D0 3:
@TNTERRUPcTN
INTERRUPCION
Figura 31.5 Banderas de interrupcin de los timers del 8051
i nt errupci n, y con l gi ca si mpl e, l a f unci n
de l os regi st ros de cont rol de l as i nt errupci o-
nes
( l P
e I E) .
TEMPORIZADOB/CONTADOR O EN MOOO O:
TEMPORIZADOR/CONTADOB 1 EN MODO O:
REGISTRO IE REGISTRO IP
INHIBIDOR
GLOBAL
INTERRUPCIONES
DE PRIORIDAD
ALTA
SECUENCIA DE
EVALUACIN
PREDETERMINADA
INTERRUPCIONES
DE PRIORIDAD
BAJA
L
CI
f
d
el
T
L
d
SELECTOBES
INDIVIDUALES
C
I
CI
Figura 31.6 Arquitectura simplificada del sistena de intenupciones
,4q\ . I
-*D &rcfn.i.
curso prctico sobre Miuocontrotadores
t:,//
Los mdulos de comunicacin internos en los mi-
croconrroladores
mejoran su flexibilidad
porque
facilitan la compatibilidad
y el intercambio
^de
datos enrre ellos y orros dispositivos o sisremas
electrnicos.
Los mi crocontrol adores
8051 poseen un puerro
de comunicacin serial programable y flixible,
que nos permite configurar la transmisin
y re-
cepcin simultnea y no sincrnica de datos, en
cuatro modos.
c u rc o p r c ti c o s o b r e M i c r o c o nt ro t a d o r e s
&k
n.:
dtb
\,fl
i
Cunrunleauluues serlales eun e[ nrietucuulraladur t!05r
Los microcontroladores 8051 cuentan con un
puerto de comunicaciones serial no sincrnico y
full-duplex
(que puede recibir y transmitir simul-
tneamente datos), que generalmente es conoci-
do como un receptor y transmisor universal no
sincrnico, o UARI
(uniuersal asyncltronous re-
ceiuer and nansmiter). ste es programable en uno
de cuatro modos de comuni caci n posi bl es
(MODOO a 3) por medi o de l os bi ts7 y 6, SMO
y SMl, del registro de control y de estado del
puerto serial SCON
(serial port control register)
que hace parte de los SFR, tal como se muestra
en el cuadro 32.1.
Para recibir y transmitir los datos el UART
cuenta con el registro especial SBUF que se de-
SCON (REGISTRO DE ESTADO Y CONTROT DEL PUERTO SERIAL
BttT Bt6 8i15 Btt4 B/t3 Bt2 Bt1 Btl
SMO I SMl I SM2 IREN IITB8 TI
BII NOMBRE Y COMENTARIO
BO
I
Rl
I
Bandera de interrupcin de la recepcin
Se acliuapot haware al finalizar la recepcin del 8o bf
en el Modo 0 o haci a l a mi tad del i nterval o de ti empo del
bl tde Stop en l Os 0tr0s Modos (excepto ver SM2)
Debe ser desactivado pot softuvarc
B1
[Tl-]
ganera
de interrupcin de Ia transmisin
Se aclivaoor hardware al final de la transmisin del 8o bfen
el Modo 0 o al comienzo del bde Sfopen los otros M0d0s
Debe ser desactvado Dor software
82
lRBSI En los Modos 2 y 3 es el 90 bque se recibe
-
En Modo 1, si Sil2 = 0, RBB es el bitde Slop
En Modo 0 no se utiliza
B3
lIB8l
Conesponde al 90 bllde datos en los Modos 2 y 3
Es programable por el usuario . Habitualmente es el lf
de Daridad
B4
Fq'l
.
S REN = 1 (por soffware) hablita la recepcrn
.
Si REN = 0 no recibe
B5
lStnl
.
fn Modo 2 y 3, si Si/2 = 1 entonces Rl no se activar
si el 9o blfde datos (RB8) es igual a cero
.
En lVlodo 1, si SM2 = 1 entonces Rl n0 se activar si el
bde Sfop no se ha recibido
.
En Modo 0. Si/12 debe estar en cero
86- 87
ls\m -
S[41 I
Especifica el Modo segn la tabla
Cuadro 32,1 Registro de control y de estado del puerto serial
nomina el buffer de datos serial, y que se locali-
zaenlaposicin de memoria
$9q de los SFR. Al
escribir en este registro, se carga el dato que se va
a transmitir (un byte), y leyndolo, se accede al
dato de un byte recibido (en la figura 32.1 se ha
representado el SBUF). En cualquiera de los
modos la transmisin se inicia cuando se usa el
registro SBUF como destino por medio de cual-
quier instruccin, mientras que la recepcin se
inicia en MODO0 cuando se ponen los bitsRly
REN en 0 y 1 respectivamente; y en los MO-
DOS1,2 y 3, cuando REN est en I y se recibe
el bit de inicio ktart bit\.
SBUF
Figura 32.1 Buffer de datos serial del puerto de comunicaciones
del 8051
La velocidad de la comunicacin, en bits por
segundo o baudios, est en funcin del modo
de comunicacin activo, as: en MODOO, la
velocidad se derermina simplemente por la
ecuacin 32.1 que divide la frecuencia del os-
cilador de la CPU entre 12; en MODO2 est
en funcin del valor del bit 7, SMOD, del re-
gistro de control de potencia PCON (power
control register) que pertenece a los SFR. Cuan-
do el bit duplicador de baudios (SMOD) est
en cero, la velocidad es Il64 de la frecuencia
del oscilador, y cuando est en uno, es | 132 de
la frecuencia del oscilador; sto se expresa en
la ecuacin 32.2. En el cuadro 32.2 se mues-
tra el registro PCON.
BAuDtos en Modo o
= -Etun*tflr*q
l ^
bt
m
ct
dr
2
re
e(
UI
m
la
D
cil
el
SC0N del 8051
#
&orr,.i.
curco prctico sobre Microcontrotadores
Ecuacin 32.1 Velocidad de comunicacin en M0D00
L\ J\ Jt LE
BAUDI0S en Modo 2
= (Frecuencia del oscilador) BAUDl 0SenModosl y3=
Ecuacin 32,2 Velocidad de comunicacin en M0D02 Ecuacin 32.3 Velocidad de comunicacin en los M)DIS| y 3
con elTlMERl
Con l os bi tsSM} y SM1 puestos en cero, se acri -
va el MODOO de comuni caci n seri al , en sre
la entrada y salida de los datos se hace a travs
del pin 10 (RXD)
del microcontrolador, mien-
tras que por el pinl l (TXD)
se generan los pul-
sos de desplazamienro (sbifi cloch); la transmi-
sin o recepcin del dato de 8 bits se hace empe-
zando por el bit menos significativo (LSB) y a
una velocidad fija e igual a I l12 de la frecuencia
del oscilador. En la figura 32.2 se muesrra la ar-
quitectura simplificada que adopta el puerto se-
rial cuando se activa el MODO0, y en la figura
32.3 se muestra el diagrama de tiempos (o cro-
nograma) que le corresponde yBle adems des-
cribe detalladamente el proceso de transmisin y
recepcin en dicho modo.
En el diagrama de tiempos se puede apreciar
que la transmisin se inicia cuando se usa el regis-
tro SBUF como destino, y que adems la seal de
control interna SEND habilita la salida en serie
del dato del bffiry la salida de la seal de despla-
zamiento (SHIFT).
Cadavez que se envaun bit
del dato del bffir, ingresa un cero, y de esta for-
ma, al transmitir el bit ms significativo (MSB)
el
bffir serial queda cargado con ceros.
2SM0D
32
25M0D
D4
Frecuencia del oscilador
12x(256-TH1)
Cuadro 32.2 Registro de control de potencia PC0N del 8051
En MODO1 y MODO3 l a vel oci dad de
la comunicacin est en funcin del estado del
bit SMOD y del valor de recarga y sobrepasa-
miento del registro contador del TIMER1, el
cual debe estar configurado como temporiza-
dor de 8 bits con recarga automtica (en modo
2) para opti mi zar su uso, y ex-
tenderl o a l a mayora de l as ta-
reas; tal como se muestra en l a
ecurcin 32.3
En la tabla 32.L se muesrra
una lista con las velocidades de co-
municacin serial estand arizadas y
la manera de obtenerlas en los MO-
DOS1 y 3, en sta se relaciona la
velocidad con la frecuencia del os-
cilador del microcontrolador. con
el estado del bit SMOD y con la
configuracin del TIMER1.
Tabla 32,1 Velocidades de comunicacin estndar en los MjD1S| v 3 con elTlMERl
PCON (REGISTRO DE CONTROL DE POTENCIA)
Bttl Bn6 tsn 5 Bt 4 Bt3 B12 Bn1 Bt 0
SMODI I I I I GF1 I GFOI PD
BIT NOMBRE Y COMENTARIO
BO
Iolls/
[,tooo tdte (ratentizado)
Si I DL
-
1 se act i va
ol
FdBt
Power Down {baja potencia)
Si PD = 1 se activa
82
lFol
gtanoera
de propsito general
B3
lcFt-l
gt
nanoera de propsito general
84 - 85-86 Reservados
87
fsl tl oD I
atoupti caoor cte baudi os
Si SI\OD = 1 se dupl ca l a frecuenci a de rel 0j del fi nrerl
cuand0 ste se uti l i za c0m0 generador de baudi os en l os
modos de comuni caci n
' 1.
2 y 3
o
S se acti van si mul tneamente PD e IDL el mi crocntrol ad0r asume el l vl odo
P1wer Dj wn.0ue ti ene 0ri 0ri dad sobre el l \40d0 l dl e
.
Despus de l a operaci n Beset PCON t0ma el si gui ente val or 0XXX0000
.
En l os di so0si ti vos Hl \40S, PCON conti ene sol amente el bl tSl t/0D
VELOGIDAD
(BAUDT0S)
REqrE'ClA
TIMER\
DE-
flsclt aftflR
SMOD
c/f MODOVAL0R DE RECARGA (THl)
Modo 0, Max 1 MHz
Modo 2, Mu:375 K
Modosl y3: 62, 5K
19, 2 K
9,6 K
4,8 K
2, 4K
1, 2K
137, 5 K
110 K
110 K
12 MHz
12MHz
12 MHz
11, 059 MHz
11, 059 MHz
11, 059 MHz
11, 059 MHz
11, 059 MHz
11, 986 MHz
6 MHz
12 MHz
X
1
1
'l
0
0
0
0
0
0
0
X
X
0
0
0
0
0
0
0
0
0
X
X

2
1
X
X
$FF
$FD
$FD
$FA
$F4
$F8
$1D
$72
$FEEB
Curso prctico
sobre Microcontrotadores
&k,
*:
Sb
\d
i
I
t
Cuuruulr,:uelunes serlales cun el nrletueuutralutior t!05r
LEE EL SBUF
TXD (P3,1)
Figura 32,2 Arquitectura del puerto serial en M0D00
la seal RECEIVE se borra y
la bandera de interrupcin de
recepcin RI es puesta en 1.
En la figura 32.4 se muestra
el esquema simplificado de la
comunicacin y el formato de
pal abra en MODOO.
t---+
SHIFI

ry
+
+
El proceso de recepcin se
inicia cuando REN vale 1 y RI
val e 0, baj o esta condi ci n se
cargan unos en el buffer recep-
tor y, un ti empo despus, se
acti va l a seal de control i n-
terna RECEIVE que habi l i ta
l a seal de despl azami ent o
(SHIFT) y cargaen seri e l os 8
bits del dato que van siendo
muest r eados por el pi n 10
(RXD).
En el dci mo ci cl o de
mqui na, tras haber puesto en
0 el bi t RI, automti camenre
C
\';
SE
pr
1o
)
u(
( - i
pi
LI
CS
pl
"db.
a
I
$OO} &lcl*.I.
Curso prctico sohre Microcontrotadores
\/
. . . . s6l sr . . . . s6 s1. . . . t . i s1. . . . s6i sl . . . . t . l sr . . . . s6 sr . . . . s6 sr s6s1 s5sl sas'
-
!
"n, nnnnnn
ALE
)
I

I
TRANSMISOR/
RECEPTOB
B|IO 8N B2 BiA BA
Figura 32.4 Esquema de comunicacin y formato de palabra
en M0000
Con los bts SMl y SMI en cero y uno respect-
vamente, se activa el MODOI de comunicacin
serial, en ste se transmiten 10 bits a travs del
pin 11 (TXD) o se reciben por el pin 10 (RXD);
los 10 bits que conforman la trama del formato
de palabra estn integrados por: I bit de inicio
(start bit
=
0 lgico), 8 bits de datos y I bit de
parada (stop bit
=
I lgico). En este caso la velo-
cidad de la comunicacin, como ya se estudi,
est expresada en funcin del TIMER1.
La figura 32.5 muestra la arquitectura sim-
plificada que adopta el puerto serial cuando se
Figura 32.3 Cronograma del proceso de comunicacin en M0D00
activa el MODOl, y en la figura 32.6 se mues-
tra el diagrama de tiempos que le corresponde y
que adems, describe detalladamente el proceso
de transmisin yrecepcin en dicho modo. Igual-
mente que en el MODOO,l a transmi si n se i ni -
cia cuando cualquier instruccin utiliza el regis-
tro SBUF como destino, sin embargo, el proceso
de recepcin se activa cuando se detecta un flan-
co descendente en el pin RXD, que permanen-
temente es muestreado a razn de 16 veces.
Al final de la recepcin, cuando el bit deini-
cio llega a la novena posicin a la izquierda del
registro de desplazamiento, se carga el dato reci-
bido en SBUE se carga el bit de parada en RB8,
y se activa en 1 lgico la bandera de interrupcin
de recepcn RL En Iafrgara,32.7 se muestra el
esquema simplificado de la comunicacin y el
formato de pal abra en MODO1.
Con los bits SM}y SMI se activa uno de los MO-
DOS 2 3 decomunicacin serial, estos modos se
comportan de l a mi sma manera, pero, en el
MODO3 el programador puede ajustar la veloci-
dad dentro de una amplia gama, como ya se estu-
di. En cualquiera de estos modos se transmiten I I
bits a travs del pin 11 (TXD)
o se reciben por el
pin 10 (RXD), la trama de los 1l bits se conforma
t
MSB
i
tSB
,
T
e
a
z
c
RxD (Dal8 ln)
curco prcco
sobre Microcontrotadores
&kn.t
#
I
Gunrunlsaclones settalus eutt el netucuttutedgr
t!05r
DESBORDA
TIMER 1
DESBORDA
TIMER 2
t-
+l
Ld
ol
srrtoo=o\
sM0D=1
|
"0,
. l u
""r
f
I
' I
EN SBUF
rHrrnRupclru orl
PUERTO SERIAL
MUESTREO
r
_f
q
Ir
c
r
-+
sHrFI
F
----+
+
RCLK. . .
- - - . .
l'lota:
TCLf, RCI.'K y el Timer 2 estn presentes
solo en el microcontrolador 8052
Flgura 32.5 Arquitectura del
puefto serialen M0D01
por I bit de inicio
(sart bit
=
0
lgico), 8 bin de datos, I noveno
bit programable por el usuario
almo bit de paridad y I bit de
parada
(xop bit
=
I lg,co).
ESCRIBE EN SBUF
LEE E[ SBUF
La velocidad de la comu-
nicacin depender del modo
de comunicacin activo, en
MODO2 la velocidad es fiia
e i gual a1164 l l 32 de l a f re-
ESCRIBE EN SBUF
cuenci a, mi ent ras que en el
MODO3 es variable, configu-
rable y est en funcin del TI-
MER1, tal como ya se ha ex-
presado en la ecuacin 32.3'
#
&icmL
curco
prctico sobre Microcontrotadores
TX
cr@kll
l| fl |l f| JLN
fl
wrrre ro sBuF
f l f | l | | | | l nf |
T
a
a

a
m
I
I
RX
Clock
* 16 Re8t
n nl n
II
, I
3:',ffi"Tl*" n n
LSB DATO
Figura 32.7 Esquema de comunicacin y formato de palabra
en M0001
En l a fi gura 32.8 se muestra el cronograma
que l e corresponde y que adems descri be de-
tal l adamente el proceso de transmi si n y re-
cepci n en el MODO2 de comuni caci n,
mi entras que en l a fi gura 32.9 se apreci a el
Figura 32,6 Cronograma del proceso de comunicacin en M0D01
esquema si mpl i fi cado de l a comuni caci n y el
formato de pal abra en l os MODOS 2 y 3.
La fi gura 32.10 muestra l a arqui tectura
si mpl i fi cada que adopta el puerto seri al cuan-
do se acti va el MODO2 (l os MODOS 1 y 3
poseen l a mi sma arqui tectura, ver fi gura32.4)
De l a mi sma forma que en l os otros mo-
dos, l a transmi si n se i ni ci a cuando cual qui er
i nstrucci n uti l i za al regi stro SBUF como des-
ti no, tras esta acci n se carga el bi t 3
(TB8)
del regi stro SCON en l a posi ci n del noveno
bi t del regi sto de despl azami ento
(como un
bi t de pari dad) y l uego, se da paso a l a trans-
mi si n en seri e.
Figura 32,8 Cronograma del proceso de comunicacin en M0D02
Bt
l -
rronr",S,n,rarqael l l TBsdescoN
-J
Drooramabl e | |
' de-pari dad
I
BECEPCI0fl : Es l a rmaqen del bi l RBB de ScoN
J
Figura 32.9 Esquema de comunicacin
y formato de
palabra
en los M0D0S 2 y 3
Staft
gfr
8f' BiA BB Bt4 86 86 Bt| Ptog Stop
curco prctico
sobre Miuocontrotadores
&,
t r'.t
#
L'uuruulcaulunes ser{ales cuu e[ urler'cr,.untraladur' tltJSt
FASE 2 DEI RELOJ
(1/2 fosc)
rtruRnupcrru ol
PUERTO SERIAL
SM0D=0
Nota:
TCLK, RCLK y el Timer 2 estn presentes
solo en el mcrocontrolador 8052
Figura 32.10
Arquitectura del pueo
serial en M0D02
ESCRIBE EN SBUF
SBUF, se carga el bit de parada
en la posicin de RB8, y se ac-
tiva en 1 lgico la bandera de
interrupcin de recepcin RI.
ESCRIBE EN SBUF_'
. ffi

lt{i'l'r
rEE EL
'BUF
--
r-
+
La recepcin sin embargo,
se i ni ci a cuando se detecta un
flanco o transicin de nivel de
voltaje descendente por el pin
RXD, que es conti nuamente
muestreado;

al final del pro-
ceso de recepcin se transfieren
los 8 bits recibidos al registro
; wA4a
). Y . r"
gOF
@@fr(flT".i. Curso prctico
sobre Microcontrotadores
&
Los microcontroladores AVR fabricados por ATMEL
tienen arquitectura RISC y una estructura que so-
porta instrucciones compactas y poderosas de un
sol o ci cl o.
Estos microcontroladores cuentan con una estruc-
tura para los perifricos internos
(los
puertos I/O,
el oscilador interno, los timers,la UARI, el SPI, los
canales ADC y los comparadores anlogos), q.t.
reduce la necesidad de usar componentes externos.
curso prctico
sobre Microcontrotadores
&i<rc"i,
(,1l}
ATMEL
Es una compala que desde 1984 es llder y pio-
nera en el diseo y desarrollo de semiconducto-
res avanzados con alta escala de integracin; en-
tre los principales productos de esta empresa se
incluyen los microcontroladores y microproce-
sadores AVR, los conjuntos lgicos y analgicos
programables de alta densidad
(PAL y PAA), las
memorias no voltiles, los mezcladores y ampli-
ficadores de seal, y los circuitos integrados de
comunicacin RF. Por su tecnologla de fabrica-
cin de circuitos integrados con alta densidad
(wafer processe), ATMEL es tambin considera-
da como una empresa de vanguardia; sus tcni-
cas se orientan a las estructuras CMOS, BiC-
MOS y SiGe
(Silicon Gerrnaniurn).
En esta leccin estudiaremos el microcontro-
lador AVR de 8 bits de AIMEL que cuenta con
las caracterlsticas ms representativas de los mi-
crocontroladores de nivel medio: el 4T9052313,
que es un miembro de la familiaAI90.
El microcontrolador AT90S2313 de la
familia AT90
Este microcontrolador se considera de nivel me-
dio y cuenta con una arquitecturaavanzadapro-
pia de la familia 4190,. la que posee muchas
caractersticas importantes y tiles para el usua-
rio a la hora de efectuar cualquier tarea. El
4T90S2313 es un microcontrolador CMOS de
8 bits que cuenta con 2Kbytes de memoria
FLASH programable, y su estructura de empa-
que es tipo PDIP o SOIC de20 pines. Sus prin-
cipales caracterlsticas son:
.
Arquitectura RISC de bajo consumo, propia
de los MCU AVR
.
118 instrucciones compactas y poderosas
.
32 rcgistros de 8 bits de propsito general
.
Mxi ma vel oci dad de ej ecuci n l 0MHz
(l oMrPS)
.
Memorias de datos y programa no voltiles
.
2Kbtes de memoria programable FIASH
.
128 bytes de memoria RAM esttica SRAM
.
128 bytes de memoria programable EEPROM
.
Seguro de programacin parr las memorias
FLASH y EEPROM
.
15 lneas I/O programables
.
Tirner/Coanters de 8 y L6 bix con preescalador
individual
.
Comparador anlogo
.
IVatc t h do g pro gramable
.lnterfaz
serial SPI
.
UARTpll-duplex
.
Dos modos de baj o consumo: I DLE y
POTITER-DOIVN
.
Interrupciones externas e internas
.
Voltaje de alimentacin entre 2,7 y 6,0Y
Descripcin de
pines
del AT90S2313
U
ta
n(
RESET vcc
PB7 (SCK)
PB6 (MSo)
PBs (MoSD
P84
PB3 (0C1)
PBz
PBl (Arr{1)
PBO (Alltl0)
PD6 (rCP)
(RXD) PDo
(fxD) PDl
XTAU
XTALl
(rNT0) PD2
(rNTl) PD3
(r0) PD4
(f1) PD5
Gf'lD
P,
d'
nl
n(
ul
itr
R
al
fI
C
lc
t(
n
c
E
u
n
P
tl

I
P
tr
l
F,gw 8,1 hnfrguncin de pins del nicwtfrolarATffims
En la figura 33.1 se muestra la distribucin
y el nombre principal y alterno, entre parntesis,
de cada uno de svs pines. Muchos de sus pines
tienen funciones ya bastante conocidas, y, por lo
tanto, slo se explicarn a continuacin aquellos
que poseen caracterlsticas particulares y nuevas
que deban conocerse.
Port B
(
PB7- PBO) : estos pines conforman el puer-
to B, que es de 8 bits,bireccional
(operan como
entrada o salida), y todas sus llneas tienen adems
resistencias internas pull-up progfamables; todas
sus llneas pueden manejar directamente diodos
I
f

#
rrn,
curso prctico sobe Micrmontotadorcs
HC EUFFER
.
SEAL DEL
OSCII-ADOR
EXTERNO
Figura 33.2 Configuracin del oscilador
LED y cargas hasta de 20m4. PBO y PBI operan
tambin como las entradas positiva (AIN0) y
negativa
(AINI)
del comparador anlogo.
Al activar el reset todas sus llneas se ponen
en tercer estado
(alta impedancia).
, ,.
:
:
.
'
''
'
,'1., -.
estos pines son el puerto D
de 7 bits, bidireccionales, y todas sus lneas tie-
nen resistencias internas de pull-up; adems, tie-
nen capacidad para manejar hasta 20mApor cada
una y su estado, despus del reset, es el de alta
impedancia.
-'r
;1"
el reset en estos microcontroladores se
activa por medio de este pin, si se pone externa-
mente en nivel lgico bajo al menos durante 50ns.
," ,':,,i1:rl*n
en este mdulo, XTAI1 yXTAL2 son
los pines de la entrada y la salida, respectivamen-
te, del amplificador inversor del oscilador inter-
no. Thl como se muestra en la figura 33.2, el os-
cilador puede excitarse usando un resonador ce-
rmico o un cristal de cuarzo,

adems, pede
usarse para sincronizar otros dispositivos si se co-
necta un b"ffi, en el pin YfAL2; all tambin
puede verse que la entrada para el oscilador ex-
terno, cuando se utiliza, debe ser el pinYfALl.
l+""i a st*cti ril d*'eT{}*Sfi :i ?
.,f
La arquitectura AVR es Haruard (con buses se-
parados para las memorias de datos y progra-
ma) y del tipo RISC. Las operaciones con la
ALU, que pueden ser de tipo lgico, aritmti-
co o de bi ts, se desarrol l an (se ej e-
cutan y se devuelve el resultado) en
un sl o ci cl o de i nstrucci n y ope-
ran di rectamente sobre l os 32 re-
gi stros de trabaj o. Por su estructu-
ra RISC, cuenta con un reduci do
nmero de i nstrucci ones fl exi bl es
y poderosas,

adi ci onal mente, su
tecnol oga para el manej o de dos
operandos si mul t neament e l es
otorga l a posi bi l i dad de acceder r-
pi damente a l os datos a travs del
banco formado por l os 32 regi stros de trabaj o
de 8 bits cada uno.
En la figura 33.3 se muestra el diagrama es-
quemti co en bl oques de l a arqui tectura del
N190523r3.
{}rganixa*i*s'r ri* }* m*n:r:rin
En la figura 33.4 semuestra la distribucin de la
memoria en los microcontroladores AI90S2313
y las direcciones asignadas para cada rea. El es-
pacio de memoria en la arquitectura AVR es li-
neal y est conformado por: 2Kbytes de memoria
de programa tipo FLASH,128 bytes de memoria
de datos EEPROM, 128 bytes de. memoria de
datos RAM esttica (SRAM), 15 registros I/O
de I byte,32 registros de trabajo o propsito ge-
neral, y los registros especiales que soportan las
comunicaciones y los perifricos internos.
t
i,r. - ir]:,": f t 1,t,, : ii i.: i, ::'.t i-r .i t,'
Los 32 registros de trabajo de 8 bits de la CPU
se encuentran localizados en las primeras posi-
ciones del rea de la memoria de datos
(entre
las posiciones $00 y $1F), y poseen la estructu-
ra que se muestra en la figura 33.5.Talcomo se
muestra, cada registro posee un nombre, una
direccin especfica,

adicionalmente, los re-
gistros que hay entre el R26 y el R3l se pueden
agrupar en tres registros de 16 bits:los registros
X, Y y Z, que sirven como apuntadores en los
modos de direccionamiento indirecto del espa-
cio de memoria de datos; en la figura 33.6 se
muestran los registrosX,Y y Z.
NC
curco prctico
sobre Microcontrotadores
trr
*.t
#
PBO - P87
PDO - PD7
Figura 3|.3 Arquitectura del AT905231 3
xr?x
Stdb &tt:Z
curco pnctico
sobre Microcontrotadores
&
Figura 31.4 Mapa de memoria delAT90S2313
$1A Eyte bajo del registro X
$1B Eyte alto del registro X
$1 C Eyte bajo del registro Y
$1D Eyte alto del registro Y
$1 E Eyfe bajo del registro Z
$1F Bytealto del registro Z
frgun 33,5 Registros de trabajo de la CPU23|3
Registro X
Registro Y
R27 ($18) R26 ($1A)
R29 ($1D)
R28 ($1C)
Registro Z
R31 ($10 R30 ($1E)
Figura 33.6 Registros de direccionamiento indirecto X,Y y Z
l
.
El espacio de menroria I/O (el conjunto de
|
]
registros especiales)
I
Lx 64 direcciones I/O que conforman el espa-
!
cio de memoria de datos de lectura y escritura, y
a travs de las cuales se controlan las funciones
generales, especiales y el estado de los perifericos
internos, tales como los timers, los contadores,
los convertidores A"/D, la UART y otros; se en-
cuentran localizados entre las posiciones $ZO y
$5F. En la tabla 33.1 se muestran las direccio-
nes, los nombres y las funciones de todos los re-
gistros del espacio de memoria I/O.
Aunque todos los registros del espcio I/O son
imponantes y de manera particular cumplen fun-
ciones especficas y propias del control de cada uno
de los mdulos periftricos, hay dos registros que
poseen caractersticas tiles y necesarias para el fun-
cionamiento general del microconuolador y que
deben conocerse bien, stos son: el registro de esta-.
do SREG y el de control de la CPU MCUCR
l. Registro tlc cstado SREG
Bt
3F
($5F)
Lectura/Escritura
Valor inicial
Figura 33.7 Registro de estado SREG
En la figura 33.7 se muestra el registro de estado
SREG con su
direccin
y el valor inicial que asu-
me despus del reset, en ste se encuentran los
siguientes bits de control:
AitT (I): es el habilitador global de interrup-
ciones, su estado debe ser uno lgico para ha-
bilitarlas y es borrado automticamente por
el hardware despus de haber atendido la in-
terrupcin.
Bit 6 (T):
es el bit de almacenamiento y copia
que se considera como fuente o destino para
las instrucciones que operan sobre un bit, ales
como BLD (carga
de un bit) yBST (almacena-
miento deun bit).
Bit 5
(H)z
es el bit bandera que seala la ocu-
rrencia del acarreo intermedio en las opera-
ciones aritmticas.
Memorh de
programa (FLASH)
Memoria de
datos
G
o
c
o
ED
o
a
.o
EL
e
EI

It
o
G
E
6
o
It
o
o
o
E)
o
E
$oo
$01
$02
$oo
$oE
$or
$10
$11
uw R/w R/w R/w Rr Mfv MfV Ml
00000000
0
15
Curco prctico
sobre Miuocontoladores
&rrrf.#
DIRECCIN HEX. NOMBRE FUNCION
$3F
($50
$3D
($5D)
$38
($58)
$3A
($5A)
$39
($sg)
$38
($58)
$35
($s5)
$33
($53)
$32
($52)
$2F
($+
$2E
($4E)
$2D
($4D)
$2C
($4C)
$28
($48)
$24
($4A)
$25
($45)
$2a 6aa
$21
($41)
$1E
($3E)
$1D
($3D)
$1c
($3c)
$18
($s3
$17
($34
$16
($36)
$12
($32)
$11
($31)
$10
($30)
$0c
($2c)
$08
($2B)
$0A($2A)
$0e
($2e)
$08
($28)
SREG
SPL
GIMSK
GIFR
TIMSK
TIFR
MCUCR
TCCRO
TCNTO
TCCRIA
TCCR1 B
TCNT1H
TCNT1 L
OCRlAH
OCRl AL
I CR1H
ICRl L
WDTCR
EEAR
EEDR
EECR
PORTB
DDRB
PINB
PORTD
DDRD
PIND
UDR
USR
UCR
UBRR
ACSR
Registro de estado
Puntero bajo de la pila
Registro general de intenupcin MASK
Registro general de interrupcin FI-AG
Registro de intenupcin del TIMER/C0UNTER
Registro de bandera del TIMEF/COUNTER
Registro de control general del MCU
Registro de control del TIMER/C0UNTER 0
TIMEF/COUNTER O (8
b,fs)
Registro de control A del TIMEF/COUNTER 1
Registro de control B del TIMER/C0UNTER 1
Byte allo del TIMEF/C0UNTER 1
Byte bao del TIMER/COUNTER 1
Byteallo delregistro de salida de comparacin 1
Bytebalo del registro de salida de comparacin 1
Byte alto del registro de entrada de captura 1
Bytebqo del registro de entrada de captura l
Registro de control del temporizador del watchdog
Registro de direcciones de la EEPROM
Registro de memoria de la EEPR0M
Registro de control de la EEPROM
Registro de datos del puerto B
Registro de direccin de datos del puerto B
Pines de entrada del
puerto
B
Registro de datos del puerto D
Registro de direccin de datos del puerto D
Pines de entrada del ouerto D
Registro de datos l/0 de la UART
Registro de estado de la UART
Registro de control de la UART
Registro de velocidad de la UART
Registro de estado y control del comparador anlogo
Lus urict'ut'uuttu[dutcs /{Vti tie t! ltis tie /fll(tEL
Tabla 33.1 Regstros especiales del espacio de memoria l/0
En l a fi gura 33.8 se muestra el
registro de control MCUCR con
su direccin y el valor inicial que
adoptg despus del rese en ste
se encuentran los siguientes irs
de control :
BitT y 6 (R): estos bits estn re-
servados para otros MCU de la
familia AT90 y siempre se leen
en cero lgico.
Bit5 (SE):
es el irque se utilizapara
habilitar cualquier modo de adorme-
cimiento
(SLEEn,con
su estado en
uno lgico est habilitado.
Bit 4 (SM):
es el bit que se usa
como interruptor de control para
activar uno de los dos modos dis-
ponibles de bajo consumo. Cuan-
do SM val e cero, se sel ecci ona el
modo IDLE, y cuando vale uno,
el modo POWER-DO\X/N.
Bi t 3y 2 ( I SCI l e I SC10) : con
est os dos bi t s se cont rol a y de-
f i ne l a sensi bi l i dad asoci ada
con l a ent rada de l a i nt errup-
ci n ext er na 1 ( pi n I NTl ) . En
l a t abl a 33. 2 se r esumen l as
opci ones de sel ecci n del ni vel
y el f l anco paral a seal de exci t aci n de est a
i nt e r r upci n.
I
L_
l-
I
I
r-
L
Bit 4 (S): el bit de signo seala con su estado, en
uno lgico, cuando el resultado de una operacin
aritmtica, en complemento a dos, es negativo.
Bit 3 ff):
la bandera de sobreflujo o desborda-
miento se genera cuando ocurre un sobrepaso en
el alcance del resultado de una operacin en com-
pl emento a dos.
Bit2 (N): la bandera de resultado negativo sea-
la cuando una operacin aritmtica cualquiera,
o lgica, arroja un resultado negativo.
Bit | (Z): exe bit es la bandera que nos indica
cuando el resultado de una operacin lgica o
aritmtica es nulo o cero.
Bit0
(C):
este bit es la bandera de acarreo final
propia de las operaciones aritmticas y lgicas.
Figura 33.8 Registro de control del microcontrolador MCUCR
Bit 1 y 0 (ISC01
e ISC00): con esros dos bits se
controla y define la sensibilidad asociada para la
entrada de la interrupcin externa 0 (pin INTO).
En l a tabl a 33.3 se muestran l as opci ones para
l a sel ecci n del ni vel y el fl anco de l a seal de
exci taci n de tal i nterrupci n.
Btl
$35 ($55)
Lecl !ral Escrtura
Val of r f r c al
R R R,ryV B,!V R,ryV R,ryV RAV R,ryV
00000000
,&^ . {
$tOb &rctn.2.
Curco prctico sobre Microcontrotadores
&fl
rscl l
rsc10
DESCBIPCION
0
0
1
1
0
1
0
1
Se genera una interrupcih por nivel bajo en el pin lNTl
Reservado
Se genera una interrupcin por un flanco descendente en el
pin
lNTl
Se
genera
una intenupcin
por
un flanco ascendente en el
pin
lNTl
Tabla 3!1.2 Control de sensibilidad de la intenupcin 1 (lNTl)
Este microcontrolador ofrece 2Kbytes de me-
moria FLASH programable por el usuario en
donde se debe almacenar el programa, y est
organizada en una estructura de 1K X16 para
facilitar las operaciones con las instrucciones
de 16 32 bits. Por medio del registro conta-
dor del programa
(PC),
que es de 10 bits, se
pueden direccionar hasta 1 .024 posiciones de
la memoria de programa.
Ll ]ti L L\:-
El rea de l a memori a de da-
tos es del ti po RAM estti ca
(SRAM) y est compuest a
por 128 bytes de 8 bits loca-
l i zados ent re l as posi ci ones
$60 y $DF; en t oda est a rea,
l os regi stros se pueden acce-
der di rect ament e por medi o
de cual qui er modo de di rec-
ci onami ent o. En l a f i gura
33.9 se muestra l a organi za-
ci n de l a SRAM.
Durante las interrupciones y los saltos a su-
brutinas; la direccin de retorno del PC es alma-
cenada en el rea de la pila
(stach),
que puede
estar localizada en cualquier lugar de la memo-
ria SRAM, y, por lo tanto, se puede afirmar que
su tamao slo est limitado por el espacio dis-
ponible en la memoria de datos esttica. El re-
gistro apuntador de la pila SP
(stack pointer) es
un registro de 8 bits que se usa para direccionar
todos los 128 bytes de,la SRAM; sre se decre-
menta en uno cada vez que se apila un nuevo
dato por medio de la instruccin PUSH, y, por
el contrario, se incremenra en uno cuando un
dato es descargado de la pila por medio de la
instruccin POP; en la figura 33.10 se puede
apreciar la parte baja del registro SB llamada SPL.
RAV BA'V RAA/ RA,4] RAV
00000
Figura 33.10 Registro apuntadnr de la pila SPL
El MCU tiene internamenre una memoria de
datos de lectura y escritura de 128 bytes del tipo
EEPROM y est localizadaen un espacio sepa-
rado dentro del rea de datos. A continuacin,
en la figura 33.LL, se muestran los registros pro-
pios del manejo de datos de esta memoria, all
se pueden ver: el registro de direccin EEAR
(EEPROM
address register) que contiene la di-
reccin de la localidad de memoria que va a ser
Bt
$30 ($50)
Lectura./Escri tura
Val or i ni cl al
BAV BAV R^/V
ooo
tsc0l
tsc00
DESCRIPCIN
0
0
1
'l
0
1
0
1
3e genera una interrupcin por nivel bajo en el pin lNT0
leservado
3e genera una interrupcin por un flanco descendente en el pin
lNT()
ie genera una intenupcin por un flanco ascendente en el pin
INTO
Tabla 3i1.3 Control de.sensibilidad de la intenupcin 0 (NT1)
Banco de registros
Registros l/0
Direcciones de datos
SRAM interna
Figura 33.9 Area de memoria SMM
Gurco
prctico
sobre Microcontrotadores
&ictf,r.#
accedida, el registro de datos EEDR (EEPROM
data register) que contiene el dato de 8 bits que
va a ser escrito o ledo de la memoria, y el regis-
tro de control EECR (EEPROM
connol regis-
ter); ste a su vez tiene tres bits de control: el
EEMITE, el EE\7E y el EERE, los cuales son
utilizados como el habilitador maestro de la es-
critura, el habilitador de escritura y el habilita-
dor de lectura, respectivamente.
Figura 33.1 2 Direccionamiento directo
de registro simple
j .
l ) ' r r
- i , r , . , i l t : r : : i . ) ' . , r ' , ,
1, i : r : . . ' . i : l i ( 8it
31 E (3E)
Lectura/Escritura
Valor inicial
8it
1D
($3D)
Lectura/Escritura
Valor ncial
8t
$1c ($3c)
Lecfura/Escritura
Valor inicial
Figun 33.11 Registros de controly estado de la memoria EEPROM
Nota:
la memoria FLASH interna de programa del
AT90S23 l3 soporta hasta I .000 ciclos de lec-
tura y escritur& lo cual es dpico para esta tec-
nologla. Sin embargo,las memorias EEPROM
tienen una mayor duracin, pueden soportar
hasta 100.000 ciclos.
Modos de direccionamiento de d*tcs
y
programas
El microcontrolador 419052313, con arquitec-
tura AVR RISC, cuenta con un poderoso con-
junto de once modos de direccionamiento que
nos permiten acceder a cualquiera de sus memo-
rias y registros internos eficientemente. A conti-
nuacin se hace la descripcin y el anlisis sim-
plificado de cada uno de estos modos.
l. Direccicnamiento directo <ie registrr, iirirpt,-
En la figura 33.12, OP representa al cdigo
de operacin de la instruccin y el registro d
representa al operando.
En la figura 33.13, OP representa al cdigo
de operacin de la instruccin y ls registros
r y d representan a los operandos. El resulta-
do se guarda en el registro d.
Figura 31.13 Direccionamiento directo de registro doble
[ ] i r , : cci , - t : ' r ' l t i t ' ,
.
. i , : i l t s . " t "*! . = 9.
j .
I . '
En lafigura 33.I4,OP representaal cdigo de
operacin de la instruccin y la direccin del
operando est contenida en los 6 bits msbajos
de la instruccin P; mientras que en n se ubica
el destino o ldfuente del registro direccionado.
Figura 31,14 Direccionamiento directo de registros l/0
i i j , . . . i . ; 11 , t j , . 1, . , : , i ' ' , . , ' .
:
: . ! . :
En la figura33.15, OP representa al cdi-
go de operacin de la instruccin y la di-
reccin de 16 bits del dato se localiza en la
parte baja de la instruccin. Rr o Rd espe-
cifican el registro destino o fuente.
R R/W
00
76
R/W
0
RBRBBP. / WR/ WW
00000000
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
R/W R/W R/W R/W R/W R/W R/W R/W
00000000
76543210
Banco de
Memoria l/0
#
&<ln
curco prcco sobre Microcontotadores
$DF
Figura 33.15 Direccananentl directo de datos
En la figura 33.16, OP representa al cdigo
de operacin de la instruccin y la direccin
del operando se obtiene al sumar el conteni-
do del registro Y o Z, con la direccin de 6
bits (desplazamiento) contenida en la parte a
de la instruccin. En n se ubica el destino o la
fuente del registro direccionado.
Espacio de
datos
Figura 33,16 Direccionamiento indirecto de datos con
desplazamiento
En la figura 33.17,Ia direccin del operando
se encuentra en cualquiera de los registros
apuntadoresX,Y, oZ.
Espaco de
datos
Figura 33,17 Direccionamiento indirecto de datos
L\ JgL L
En la figura 33.18, el contenido del registro
X, Y, o Z se disminuye en uno, antes de la
operacin para apuntar a la direccin efectiva
del operando.
Figura 33.18 Direccionamiento indirecto de datos con
pre-decremento
En la figura 33.19, el contenido del registro X,
Y, oZse incrementa en uno despus de la ope-
racin; de esta forma el contenido de cualquiera
de estos registros, antes del incremento, apun-
ta a la direccin efectiva del operando.
Espacio de
datos
Figura 3!1.19 Direcconamento ndirecto de datos con
post-incremento
En l a fi gura33.2O, el conteni do del regi s-
tro Z se usa como un byte constante de di -
recci n. En l os 15 bi x ms si gni fi cati vos se
encuentra la direccin efectiva (entre las po-
si ci ones 0 y 1k) y con eI b' i t menos si gni fi -
cati vo (bi ) se sel ecci ona l a opci n de cap-
tura de la parte baja o la alta de| byte del
cdi go de memori a, al ponerse en 0 y 1
respecti vamente.
Espacio de
datos
$DF
$DF
$DF
curco prctico
sobre Microcontrotadores
&kn"t
#
Lus urlet'oeuutrulutiatrs /l,Vti tie t! fts tic /1ll(tEl
Figun 33,20 Direccionamiento de cdigo de memoria cln clnstante
En la figura 33.21, el contenido del registro
Z se usa para definir la direccin a partir de la
cual continuarIaejecucin del programa. Se
usa con las instrucciones de salto y llamado
(IJMP e ICALL),

en cualquier caso, el re-
gistro contador del programa PC se carga con
el cont eni do deZ.
Figura 33,21 Direccionamiento indirecto de memoria de programa
En la figura 33.22, OP representa al cdigo
de operacin de la instruccin, y la direccin
relativa en complemento a dos k puede estar
entre -2.048 y 2.047. Al ejecutarse el progra-
ma salta y contina corriendo a partir de la
direccin efectiva que resulta de sumar el con-
tenido del registro PC con la direccin relati-
va ms uno
(direccin
efectiva=PC+k+l).
Figura 33.22 Direccionamiento relativo de memoria de programa
El AVR 4T90S2313 ti ene di sponi bl es 15 l neas
de puertos bidireccionales y totalmente progra-
mables, que se agrupan en las 8 lneas del puerto
B (PBO
a PB7) y en las 7 lneas del puerto D
(PDO
a PD6).
PB es un puert o I i O bi di recci onal de 8 bi t s,
t odos t i enen resi st enci a i nt erna de pul l -up
pr ogr amabl e i ndi vi dual ment e,

adems,
cuent an con bf f i rs con corri ent e l i mi t ada
capaces de manej ar di rect ament e di odos LED
y cargas de hasta 20mA en confi guraci n si nk.
En I a f i gur a 33. 23 se muest ra l a arqui t ect ura
del pi n PBO, mi ent ras que en l a t abl a 33. 4 se
resumen l as f unci ones al t ernas de al gunos de
svs pines.
El registro de datos PORTB, el de direccio-
nes de datos DDRB, y el de los pines de entrada
PINB conforman l os tres regi srros que nos per-
miten el acceso y la configuracin del puerto B;
todos hacen parte de los registros especiales I/O
y estn representados en l a fi gura 33.24.Lata-
bla33.5 muestra las opciones de configuracin
del puerto por medio de los bits del registro de
direccin DDRB (bits DDBx)
PD es un puert o I i O bi di recci onal de 7 bi t s,
t odos t i enen resi st enci a i nt erna de pul l -up
pr ogr amabl e i ndi vi dual ment e

adems,
cuent an con bf f i rs que t i enen l a capaci dad
de i mpul sar hast a 20mA en conf i guraci n
si nk. En I a f i gura 33. 25 se muest ra l a arqui -
t ect ura del pi n PDO, mi ent ras que en l a t a-
bl a33. 6 se resumen l as f unci ones al t ernas de
t odos sus pi nes.
El registro de datos PORTD, el de direccio-
nes de datos DDRD, y el de los pines de entrada
PIND conforman los tres registros que nos per-
miten el acceso y la configuracin del puerto D.
stos estn representados en la figura 33.26.
#
&kr*t.
curso prctico sobre Microcontrotadores
0s
PULL- UP
( Resi st enci a i nt er na)
HACIA EL COMPARADOR
Figura 33.23 Arquitectura simplificada de un pin
del puefto B
PARA SABER MAS:
Dos aspectos importantes de
los puertos
.
l
- :
- - :
. .
: ' - S ar OU t eCt u-
. - :
- -
: : : : - ' ; - ' : -
- - - - -
^^+, ^; ^^
Yl l t l ducl r : -
- - : : . , :
: . : -
nament e en cer 0.
puec: -
s- -
mi ni strar corfl ente a traves oe
l as r esi st enci as i nt er nas de
pull-up
cuando stas
perma-
necen act i vas.
No
ol vi de
desconectarl as!.
.
Por medi o de l os regi stros
de l os pi nes
de entrada PINB
y PI ND, se
puede
l eer di r ect a-
mente el val or l gi co presen-
te en todo momento en cua-
l esqui er a de l os pi nes de es-
tos puertos,
si estn confi gu-
rados como entradas. Mi en-
tras que
cuando se l een l os re-
gistros PORTB o P0RTD, se ac-
cede a los latchs de datos de
cada uno de los prnes.
Las opci ones de confi gura-
ci n del puerto se programan
por medio de los bits del regis-
tro de di recci n DDRD (i s
DDDx), de l a mi sma f orma
que se hace para el puerto B
(ver
l a tabl a 33.5).
El AVR AI90S23|3 nos ofrece
1l fuentes de i nterrupci n, i n-
cluyendo al reset. Todos los vec-
t or es de l as i nt er r upci ones
apuntan, como en todos l os mi -
crocontrol adores, a l as pri meras
posi ci ones de l a memori a de
.t)
o
o
t
o
cn
WPr Escritfa en pler1o B
V/ D: Escf l f t e D0l l B
qL
Le. Ua c TCf e
pr edo B
f P l Ei l r i . "n el ! r l e
l i LeCr r : r ! r r e( l r DDn3
AINO
BN
$18 ($38)
Lectrral Escfi tura
Val or n c a
Et f
$1 7 ($37)
Lectl rra/Escr tura
Va or n cr
Bi t
$1 6 ($36)
L"octura' Escf tura
Va of nrci
00
R'W
rt.l/
RlV
000 00 0
0
7
00
R,'W RrW R,'!V
011 0 0 0
R
X
B R
X
R
X
Figura 3!1.24 Registros de acceso y configuracin del puerlo B
PIN FUNCIONES ALTERNAS
PBO
PB1
PB3,
PB5
P86
PB7
Entrada positiva del comparador anlogo AlN0
Entrada negativa del comparador anlogo AlNl
Sal i da de comparaci n e i gual aci n del TIMER/C0UNTER 1, 0C1
Lnea de entrada de datos para descarga de la memoria, MOS|
Lnea de salida de datos oara la caroa de la memoria. MlS0
Entrada serial de reloj SCK
Tabla 33.4 Funciones alternas de algunls pnes del puerfo
B
curso prctico
sobre Miuocontrotadores AgiUOO;
dt)
v/
DDBx P0RTBx v0 Pul l - up Comentari os
0
0
1
1
0
1
0
1
Entrada
Enfada
Salida
Salida
No
Si
No
No
Estado de alta impedancia (tercer estado Hi-Q
Con un cero lgico extemo suministrar coniente
Salida en cero (toggle)
Salida en uno (toggle)
Nota: x puede ser uno de l os pi nes entre el 0 y 7
Lus urlet'ocun[r'o[d0lcs /lVti de ti Ltis de /{lltEl
Tabla 33.5 Configuracin de los pines del puefto B
Figura 33,25 Arquitectura simplificada de un pin del puerfo D
76543210
**
B RW R,W R,V/ R' W R W R' \1J B' \
00000000
00
b
0 0 0 0 il 0
RF
1] X
B R
X
R R
X
Figura 33.26 Registros de acceso y configuracin del puefto
D
Programa
que en este caso es-
tn localizados entre las posicio-
nes $000(0) y
$00A(10).
En l a tabl a 33.7 se descri -
ben todas las fuentes de inte-
rrupcin acompaadas por sus
direcciones y niveles de priori-
dad. Como es l gi co, eI reset
siempre tiene reservada la posi-
ci n i ni ci al ($OOO de l a memo-
ria de programas

adems, es
l a i nterrupci n con mayor pri o-
ri dad para l a CPU; en este mi -
crocontrolador, la prioridad a la
atenci n de l as i nterrupci ones
est organizada linealmente en
orden descendente dentro del
rea de vectorizacin

por lo
tanto, el vector 1 1 (el de l a i n-
terrupcin del comparador an-
logo ANA-COMP), que es el
ms alto, es el que goza de la
menor pri ori dad.
Todas las fuentes de inte-
rrupci n de l a CPU pueden ser
individualmente habilitadas o
no por medio de los bits de Ios
registros de control adecuados
para cada una de ellas; pero, en
cualquier caso, no se debe olvi-
dar poner un uno lgico en el
bit habilitador global de inte-
rrupci ones (l ) que se encuentra
en el registro de estado SREG.
Las fuentes de interrupcin
que generan un ciclo de reset
en elAVRAI90S23L3 son in-
ternas y externas, y son tres:
.
El reset a la conexin
Qt
oruer- o n- re s et). ste ocutr.
cuando la fuente de alimen-
I
I
:
Btt
$12 ($32)
LecturarEscr tura
Val or n c a
Btt
$11 ( $31)
Lecl ura/Escri trra
Val or Ini c al
Btt
$10 ($30)
Lectural Escri l !ra
Val or i ni ci al
WP Escritura en puerlo D
WDr Escrlura er DDFD
RL Leclura en del LATCH del puedo 0
RPr Leclura del prr del puerto D
B0: Leclura del registo DDRD
FXD: Receptor de dalos de la UART
nXEN Habiltador de recepcin de 1a [-IARI
^db.
.
(
(ft6)
&Kr".i.
curso prctico sohre Microcontrotadores
\,"r/
Entrada de recepcin de datos de la UART, RXD
Salida de transmisin de datos de la UART, TXD
Entrada de i nterrupci n externa cero, l NT0
Entrada de interrupcin externa uno. lNTl
Entrada externa de
' l t' ' ' !?
' n!rl -EC
J
r0
Entrada extema del IIMERTCOUNTER 1. T1
Pi n de entrada de capi ura ::
-
\' i i . ::
-' ,-:r
'
taci n Vcc cae por debaj o del umbrai de se-
guri dad del mi crocontrol ador, el cual est de-
finido como Vpot, y pere el que se muestran
l os val ores tpi cos en l a tabl a 33.8.

El reset externo. rt. o.l.ttt cuando se apli-
ca un nivel lgico bajo en el pin de entrada
deI reset
(RESET),
durante al menos 5Ons.
.
El. reset del temporizador del perro-guardin
(uatchdog). ste se da cuando el temporizador
del perro-guardin est habilitado y su tiempo
se cumple; el usuario puede seleccionar el uso
de este temporizador si lo programa utilizando
el fusible lgico de programacin de la memo-
ria FIASH, llamado FSTRT.
Nota: despus del reset, todos los registros
especiales I/O son puestos en su valor ini-
cial, y el contador del programa (PC) se
carga con la direccin de origen
($OOO.
Las i nt errupci ones ext ernas son dos v sr
reci ben a t ravs del os pi nes I NTI e I NT0,
l as dos se habi l i t an por medi o de un f l an-
co ext erno creci ent e o decreci ent e, , por
medi o de un ni vel l gi co baj o; est as con-
Ci i i , ne s 5r - pr ogr i r man por medi o del r e-
S: . - : :
; -
- .
: : . : . . i - l : : i cr ocont r c- , l , r dor
\ f CL CR : . , : : i . : ' , : : ' . . . . . . -
I '
f l : i 11 " 1r .
Como va sc ha i l ; : . . . . i . . . . . - . : , - . . .
- .
bal de l as i nt er r upci onc. : r . : - - :
- ,
,
I
.
bi t del r egi st r o de est ado. pcr o . . : . i r . . . -
t aci n de cada i nt er r upci n ext er n . i ;
manera i ndi vi dual se l ogra por medi o de
l os regi st ros GI MSK y GI FR, que reci ben
l os nombres de: mscara de i nt errupci o-
nes general es y banderas de i nt errupci ones
general es. A cont i nuaci n se descri ben es-
t os dos regi st ros.
En este regi stro se encuentran habi l i tados para
el usuari o sol amente l os bi ts 6 y 7, denomi na-
dos I NTO e I NTI , y, por medi o de el l os, se
habi l i tan l as i nterrupci ones externas 0 y I res-
pecti vamente (asoci adas
con l as entradas INTO
e INTI), cuando se col ocan en uno l gi co. En
l a fi gura 33.27 se muestra el regi stro GIMSK.
Tabla 33.7 Tabla de vectorizacin del AVR AT905231 3
PDO
PDl
PD2
PD3
PD4
PD5
PD6
Tabla 33,6 Functones a E'.as ii i-. : -i-( :: :-::--
j
Vector No
Di recci ones
de Memori a
de programa
Fuente de
i nterrupci n
Defi ni ci n de l as i nterrupci ones Pri ori dad
'1
2
4
5
b
7
8
q
10
' 11
$000
$oo1
$oo2
$003
$o04
$005
$006
$007
$008
$oog
$ooA
RESEI
INTO
INTl
TIMERI CAPT1
TIMER1 COMP1
TIMER1 OVF1
TIMERO OVFO
UART, M
UARI UDRE
UARITX
ANA COMP
Pin extemo de reset, del reset a la conexin (POR) y del watchdog
Solicitud de intenupcin externa cero (pin lNT0)
Solicitud de interrupcin externa uno (pin lNTl)
Evento de captuna del TIMER/C0UNTER 1
Evento de igualacin con elTIMER/COUNTER I
Sobrepasamiento del regisfo del TIMER/C0UNTER 1
Sobrepasamiento del registro del TIMER/C0UNTER 0
Recepcin compleh (RX)de la UART
Registro de datos de la UART vaco
Transmisin completa
0-E
de la UART
Comparacin anloga Baja
L* , \
Curso prctico
sobre Microcontroladores
@/fr(flT".,
1.317 7
V
ascendente del umbral del reset a la conexin
Umbral de volbie del
pin
externo de reset
retraso en el tiempo de salida del reset, cuando el fusible FSTRT se programa
Los urletceuntrul.dcrts /tVti de ristie AUIEL
ioh: Todas las caractreisticas conesponden con un voltaje de alimentacin V". = 5,6y
Bt
$38 ($58)
Lectura./Escritura
Val or i ni ci al
Hgun 33.27 EI registro mscan de intenupciones genenles GIMSK
En este registro se encuentran habilitados para el
usuario nicamente los bits 6 y 7, que se deno-
minan las banderas de las interrupciones exter-
nas INTFO e INTFI, y, por medio de ellos, se
informa el estado de las solicitudes de las inte-
rrupciones externas 0 y 1, respectivamente. Es-
tos dos bits se borran automticamente cada vez
que la rutina de la interrupcin adecuada se eje-
cuta
(luego
de la instruccin de retorno de una
interrupcin RETI); y, alternativamente, pueden
ser borrados por medio del sofiutare al escribir di-
rectarnente un cero en ellos. En la figura 33.28 se
muestra el registro GIFR y sus bits bandera.
Tahla 33.8 Niveles de seguridad del reset a la conexin y
parmetros
del reset
Sesefinicial del microcontrolador cuando est sueto a Vcc
B/ WRAA/ RRBRRR
00000000
RES
TilEOI'I
MM
RSff
Sesetni cal del mcrocontrol ador control ado exl ernamente
Figura 33.8 Diagrama de tiempos del reset a la conexin
(sta-up) del 4T905231 3
Besefexterno del mcrocontrolador durante la operacin
re
tmM
RESET
Bt
$34
($54)
Lectura/Escritura
Val or i ni ci al
tfttil L
RE8T FI/W FYW
00
B
0
B
0
R
0
R
0
Figun 33,28 El registro bandera de intenupciones genenles GIFR
En las figuras 33.29 y 33.30 se muestran las con-
diciones propias de los dos estados de reset a la
conexin POP.(pou.,er -on-reset), que se dan cuan-
do se inicia el microcontrolador por medio de la
fuente de alimentacin Vcc (start -up- condition)
y tambin se muestra el diagrama de dempos pro-
po del resetextetno cuando ste se ejecuta duran-
te la operacin normal delaCPU23l3.
Figuras!t.s,Diasramadetiempos*l;3i::r:#T:'^i{;{;gitr
En la tabla 33.8 se resumen los parme-
tros ms importantes y que conducen a un re-
Jct seguro; all se muestran los valores tpicos,
mnimo y mximo del umbral del voltaje de
disparo y los tiempos de respuesta que defi-
nen las condiciones del reset, tanto interno
como externo. En el caso del reset externo, no
se debe olvidar que el nivel VRsr debe ser apli-
cado por 50ns como mnimo para que la CPU
pueda validar su condicin.
stb $irr*r.
curco prctico sobre Microcontrctadores
&
$ru[}*gH
*'t
;l'
:i
r - . i
I
i
2 Losmi croproc$sai l orfs
El BASIC Stmp I.. ....................... 6l
El BASIC Stmp II .......................62
El oscl ador y el crcu10 de rei ni ci s{zaci n (res60 en l 0s
mcr0conl rol adores PIC ........,.,,............."... ................ . .. 65
El ci cui to ori fado ...................... 66
Osci l adocsbsadosenci stel oenrsonedorescermi cos...............,....,......,.67
Ci rcui to dc rei ni ci al i aci (nsa\ .................................. 68
Reinicialiacin al encetdido (Pouct On Rcvx POR) .................................... 69
Temporizador d encendido (Poua Up Tiza PVRT) .................................. 70
Tempori zador de osci l aci n al encendi do (OST) ........................................... 70
Secucnci a segui da a.l a.l i menta el si stema... .................... 7l
fuinicialiacin por eida cn la alimcnracin (Bmu,-Ou Raa. BOR) ......... -l
Registro dc control de potencia (Pow Coml: PCON)
12
Curco prctico
sobre Microcontotadores
&l?r#
Jr=
I
I
Esreifiqcionq dcl bu I2C ...............-........
23 Los mdul os esFecai es del 68HC0B: CoR LVI y KBI ?25
El mdulo inhibidor por volatie bajo LM (lou wluge hbibitor) ................ 228
Rcqistrcs de onrcl dcl mdulo LM (CONFIG2
v CONFIGI) ................ 229 )...............
Rcgistrcs de onrcl dcl mdulo LM (CONFIG2 y
El mdul o dc i ntcupci oncs paa tedado KBI .............................,,............. 229
Deai pci n del mdul o KBL................. ....................230
Rcgistro de eado y onuol dcl mdulo KBI (KBSCR) .............................. 231
Registro habilitador de lc interrupcioncs del
mdul o KBI (KBIER) .................23r
24 El mdul o converfi dor Ai D {ADC)
y el SIM def 68HC0B I rl
El mdul o de convcrsi n ul oga a di gi td ADC ............................ ............. 234
Dcri pci n del mdul o ADC................. .................... 235
Voltaje de convenin ADCVIN ........
r49
r 50
150
150
150
l 5l
Eltnporlador uarhdog NDD .....
ta pal a' bn de onfi gu"i ; .......:.......:::::::..::.::::.:.:.:::::.::::.::::.:::..::.:::.::::..::
Opetecit del warhdog
Modo sl ca .........,.---
Depenardo dcl modo sbcp ,,,..,,...,,...,,..
Arqui tectura de l 0s mcroconl r0l adores M0t0r0l a .,.........,........
La famili 68HC08 .
fuquitcctura dc los mimonuoladoe MotorcIa...,.....,............
El ndo dc prcmi cnto..............-..-...
El si stcma de mcmori a .,,..........................
Los mdulos ocrifios internos ....,......,
Asignacin di pinc o los micrmntroladoe 68HC08 .............................
. . 2
162
r63
r64
l o)
r o)
169
t7l
173
t / )
174
| / o
r / o
35
35
I I Los 0uertos de l 0s crocontrol ad0res HGoB de Motorol a ............,.............. 1 77
Decripcin de los piia y su funcrones. ....,.......,........ 178
los pucnos dc cnuada y salida (l/O) .......... ................. 180
El pueno A ........................... t80
237
238
239
El m0dxl 0 de l a nterl az de temp0:zaci n (Tl M) dei 68HC08 ,.......,.........
El TIM del 68HC08
Fucione del TIM
El modulado PVM .....
Rcgistros de enrada y salida dcl
Prcgmacin del BASIC Smp II
Instruccions del lcnguafe PBASIC
Los mi crocntrol adores805l de l nte1 ...................
Los micrconuoldoe Intel ...................
Ordcn dc prioridad de lo intcrrupciona
Interrupciono interno de los nza0 y I ..............,..............
32 C0muncacione$ seriaes con el mcrocontroladorS0Sl
El UART dcl microontrclador 8051
Configuncin de la veloci&d de comuiecin ..........................................
MODO0 de comuni eci n ....................
MODOl dc omui qci n......--..,.........
MODOS2y3decommi qci n
33 Los mcrocontrol adores AVR de Lfs de 4TM81.....,......,...,....
ATMEL .................
El miqoonrolado4I90S2313 de la fmilia 4190...................
Decrpcin de pincs del AT90S2313....,..
)q
296
257
298
298
299
301
30t
305
306
306
306
307 tuquitaua del AI90S23I3
Orgmiacin de la mcmoia .....-.............. ,,.,............... 3O7
Modos de dieccionmiento de datos y progrms,...,,....,....,......
-..-..--.....
312
Esuumn de los puenos dc cnuada y salida VO ..................-.-........-.......... 314
El zrayl oi nterupci ons..................... .....................315
El regisrc msaa dc interrupcione genemle GIMSK .......,,.-..-.....,....,... 317
El rcgistro bmdcn dc intcrrupcioncs generala GIFR ...................--............ 318
Diagmo de tiempo de los aados de roa ..,-...,,..... 318
El oucto B ................................. l 8t
El pucno D .........-.. ..................... 1 82
El 0sci l adof y el rese, en l 0s mi cr0c0ntr0l adoes HC08 de Motorol a ..........185
El mdul o i nterno del osci l ado (OSC) ............:.......................................... 186
El mdulo oscilador on
qisel
XIi{L (subfmilia 68HC08)OO0 ............... 186
Mdulo orcilado con rcd RC (subfamilia 68HRC08)OO0......................... 187
Sede de rcl oj i ntero6.......................... ..................... I 88
Cucrcrfstiq clcrie de los mdulos orcilslore ...........,....,....,.,,....,....,. 189
El zcn los micrentrcldos Motoola 68HC08 ................................. 189
Condicione iniciale eeblaido por mcdio dd ciclo de mr..................... t90
Fuentc de i ntcrrupci n dcl m4.............. ......-...........-- 192
organi zaci n de l a mem0ri a en os mcroconl rol adores
HCoB de Motorol a ...
Organiacin dc la mcmoi .,,..,,....,....,...,,.,..
.Acignacin dc rcgisro dcnm dcl p de mcmoria.........,....,..........,,....,...,.
Thbla dc vemrq ....
Memoia de detos de lma y mritua RAM
Memoria dc progmde rclo lru'ROM
Mcmoria ROM del prcgma monitor (MON) .......................
Arco d modo moni tor ...,....,,...,,........,..
Vatoiacin cn cl modo monito
Velocidad de omuiqcin dcl modo monito .,,..,,...,.........,..
Fomatos bsios de omuiecin del modo monito
Comudos dcl monito ..........................
El mdul o 0MA y l os modos de di recci onami ento en
los microcontroladoes 68llC08
Are dimo a mcmoia (DMA)
El mdulo DMA08
Opcncin del mdu.lo DMA08 .........
cmcrlstic suid* d"l
-d"b
i;;;;.::::.::::.::::.::::.:::..:::.:...::...::.::
Regism de control y etado dcl mdulo DMA08 .....................
ls modos de direionmimto cn la familia HC08 ...............
Direiomicnto inhcrntc
Direionmicnto imcdieto,...,,...,,...
Di rei omi cnt o di , *, o. . . . . . . . . . . . . . . . . . . . . . . : : : . . . . : : : . : : : : : . : : : . . : : . : : : : . : : : . . : : : . : : . . : : : : : : : : . .
Direiomicnto *endido ....,,....,........,.
Direionmicnto indmdo, sin deplmiento .,,....,,...,........,.
Diraionmicnto indedo, on doplmicnto de 8 jt
Direiomicnto idmdo, on dsplmiento de 16 bit ........................
Direionairicnto dclSP (wL poinn), con daplmiento de 8 his ........
Diercionmicnto del SB con doplmiento de 16 bit ..........
Direionmicnto reltivo
Direionmicnto de mcmoia e memoia, imcdiato a rcco
Dircccionmicnto de memoia a mcmoria, directo a diecto .,..
Dircaionmicnto de mcmoia a mcmoia, indqdo a
ffio cod rncrcmento
Direccionuicnto dc mcmoia a mmoia. recto a
indqdo on inemento ........,....,.....
Dcccionuiento ind*do
-n
in".-"'. ;;;t;; ::.:::..::::::::.:::::::.::::.::
Dicccionmiento in dxdo con offct e 8 bin e
inwmcnto rcsrcio
22 l as i nterru0cones en l os mi cr0c0ntrol ad0res 68HC08 .....................-.........-217
Prorui ento de i nterupci ona en l a CPU08 ............................................ 218
Rmncimioto dc la fucnte dc intemxin ................,......................,....,. 218
Evaluacin dd nivel dc priorided (ubimjc) ................ 219
Almeanoiento del
qado
acrual del micro@nrclador ......... .................... 220
Enmoroicnto y uimiento de lo intempcione ...,....,....................... 220
Retomo de l a i ntcrupci n (RII) ................. ...............222
Mdulo de inrcrupcin *tana (IRQ) ,..--..-.....,.-....... 222
Pin dc interupcin *erna (IRQI)
Rcgism de cudo y onuol dc la intcrrupcin IRQ GNTSCR) .................. 224
26 Los mcroconlroiadores BASI Stam!
El BASIC Smp I... ....................250
Distribucin dc pincs del BASIC Smp L.................. 251
252
Conjuto dc irotrucciono rcsumido dcl lengujc PBASIC ........................ 254
C0ni unt0 de i nstrucci ofl es de l os mi crocontrol adores BASIC Stamp i ,... .
-rl
Coniunto de insmcione del lengufe PBASIC del
BASIC Stmp I ........................... 258
Los fi i crocofl trol adores BASIC Sl amo l l . .l r:-
El BASIC Stup II .....................270
La mfa dc prototipos del BASIC
Mapa de mcmoria dcl BASIC Stu
Stup II ............................,..,............... 27 |
Mapa de mcmoria dcl BASIC Stmp II ..... .................. 272
Configuracin de los puertos I/O del BASIC Stmp II ............................. 272
242
243
2M
44
20
28
193
194
t94
198
198
198
198
200
20r
201
201
202
203
204
204
205
206
206
209
2t0
210
2t1
211
212
212
2t2
2t3
213
213
214
214
?l <
215
215
216
278
Arquitcmn bsie dc los miqocontrcladoa 8051 ....................----........ 278
Docri pci n de pi no del mi coconml ador 8051 .....-...-...............,............279
Orgmiacin de la mcmoia cn el 8051 ...................... 280
Mcmoria de prcgma ....,....,......,.............. 281
Introduain 292

#
rot
curso prctico sobrc Micoconfrotadores

También podría gustarte