Vous êtes sur la page 1sur 329

Curso prctico sobre

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

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


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

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

CEKIT S.A. 2001


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

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

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

E eos, los fundamentos de su programacin,


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

Las personas con buenos conocim ientos de


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

Como est estructurado el curso

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

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


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

Fotografas

Nmero de
pgina

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

S 3E n de proyectos Tpicos avanzados de programacin

En esta im portante seccin del curso, se entrega


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

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

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

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

A utodidactas o aficionados con conocim ientos en:


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

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

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


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

Los microcontroladores, que pueden considerarse como una microcomputadora


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

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


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

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


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

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


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

Curso prctico sobre Microcontroladores < B IIK IIT il


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

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

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

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


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

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


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

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


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

Felipe G onz lez G.


Editor General

Curso prctico sobre Microcontroladores


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

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

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

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


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

7 1 Curso prctico sobre Microcontroladores


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

RESET OUT HLDA

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

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

Los aparatos electrnicos que utilizan m i


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

presa, Shockley Sem iconductor L abora


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

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

De los tres inventores del tran sisto r (W.


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

6 Curso prctico sobre Microcontroladores


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

El diseo del m icroprocesador se inici


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

Curso prctico sobre Microcontroladores


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

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

LOS MICROPROCESADORES

Son los circuitos integrados que


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

El microprocesador, corazn de las Unidad de Microprocesador Unidad de


computadoras Entrada/Salida o CPU Memoria

U na computadora digital es un equipo especiali


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

Una computadora digital se compone de tres


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

T como el del sistema de arranque de una com pu


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

M T \ . Curso prctico sobre Microcontroladores


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

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

Registro de
10 1 1 1 0 0 1 8 bits

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

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

Curso prctico sobre Microcontroladores g M C IT ,


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

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

Bus interno de datos de 8 Bits

X1- Bloque de control y tiempos

X2- A 1 5 -A 8
Bus de direcciones

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

HOLD RESET IN

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

' Curso prctico sobre Microcontroladores


Teora

Organizacin interna de un pretar y ejecutar las instrucciones del progra


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

Un registro es una posicin de memoria co


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

en conjunto, pueden almacenar nmeros binarios


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

Esto no im plica que se deba conocer con de


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

Por ejemplo, el reloj o circuito de oscilacin


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

Curso prctico sobre Microcontroladores


microprocesadores

La unidad de instruccin lleva la


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

Para llevar la cuenta de las d i


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

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


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

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


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

M T .1 Curso prctico sobre Microcontroladores


Teora

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


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

DBOUT

Data OUT
-
> - BDB
Data IN

DBIN BDB: Lnea de bus direccional de datos


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

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


(b) Lnea de bus bidireccional.

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


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

Curso prctico sobre Microcontroladores


Teora

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

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

Curso prctico sobre Microcontroladores


L e s ; m icroprocesadores

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

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

Direcciones Direcciones Instrucciones, datos


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

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


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

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

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


Teora

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

Curso prctico sobre Microcontroladores C 19


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

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

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

ff 0100 0000 Lectura/escritura

k
Bus de direcciones

Memoria Unidad de control

RDI DI RD
Be 3

T
Registro
auxiliar
1
Acumulador ALU

Registro de

estado
a
Perifricos del Unidad operativa
mundo exterior

Unidad operativa

Acumulador
Bus de datos

Seleccin
de operacin

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

W l . Curso prctico sobre Microcontroladores


Teora

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

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

curso prctico sobre Microcontroladores m n B T s


microprocesadores

Unidad de control Memoria principal Unidad de control

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

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

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

Bus de direcciones

Memoria Unidad de control

Bus de control

Registro
auxiliar

Acumulador ALU

Perifricos del
mundo exterior

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

22 ^ Curso prctico sobre Microcontroladores


Teora

Bus de direcciones

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

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

Seales de control a los


elementos del sistema

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

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

Curso prctico sobre Microcontroladores


Teora

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


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

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


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

Curso prctico sobre Microcontroladores <m /K <B Ts


microprocesadores

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

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


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

cm f tr ,: Curso prctico sobre Microcontroladores


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

El 8155 puede dem ultiplexar internamen


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

Para efectos de la interfaz se utilizan 22 lneas


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

La memoria RAM del 8155 tiene asignadas


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

La capacidad de memoria RAM del 8155


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

Curso prctico sobre Microcontroiadores


icroprocesadores

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

Visualizador Visualizador
binario hexadecimal

Temporizador

Entrada Yn t Salida

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

Figura 2 .2 3 Sistema mnimo

Curso prctico sobre Microcontroladores


T1 T O
Temponzador

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

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

Curso prctico sobre Microcontroladores


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

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

la ejecucin de las instrucciones a partir de la AD2 AD2

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

m ente el condensador cuando se desconecta m o AD4

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

Curso prctico sobre Microcontroladores


Teora

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


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

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


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

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

Curso prctico sobre Microcontroiadores


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

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

Figura 2.2 7 Conexin de la tarjeta programadora


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

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

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

S.i. Curso prctico sobre Microcontroladores


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

A partir de esta leccin, iniciamos un estu


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

Curso prctico sobre Microcontroladores m m iK < u m


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

Microcontrolador
Dispositivos
de entrada

Programa

Interruptores - Microcontrolador Diodos LED

Teclados
Programa
Sensores Rels

Transductores Parlantes

Dispositivos de entrada] Dispositivos de salida

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

# V i l . Curso prctico sobre Microcontroladores


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

In te rru p to r

P a rla n te

I I M o to r

S a lid a s d ig ita le s

Cristal

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

Curso prctico sobre Microcontroladores


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

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


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

~U En este caso tenemos un m icrocontrola


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

H ay innum erables ejem plos de aplicacin


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

'M T .1 Curso prctico sobre Microcontroladores


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

1. La CPU del microcontrolador es ms simple


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

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


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

Los dispositivos EEPROM, que han hecho


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

Curso prctico sobre Microcontroladores < M iK < iim


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

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


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

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


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

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

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

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

dos con los m icroprocesadores para escri 1/0

bir, ensam blar y depurar program as en len


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

Curso prctico sobre Microcontroladores


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

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

Interrupciones
externas

TXD RXD

Direcciones/Datos
Figura 3 .8 Ncleo del 8051

Curso prctico sobre Microcontroladores


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

i. Curso prctico sobre Microcontroladores


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

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


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

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

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

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


32K FLASH

Tabla 3.2 Microcontroiadores Motorola

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

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

Curso prctico sobre Microcontroiadores m tZ B T s .


TIEMPO MEMORIA PE R IF E R IC O S FUENTES

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

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

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

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

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

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

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

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

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

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

Tabla 3 .3 Algunos modelos de microcontroladores PIC

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


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

ir ; Curso prctico sobre Microcontroladores


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

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

MT,1 Curso prctico sobre Microcontroladores


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

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


30 06 cdigo operativo

Curso prctico sobre Microcontroladores


La2 Lll rocontroladores PIC

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

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


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

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


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

Curso prctico sobre Microcontroladores


Teora

B us de d a tos 8

PUERTO A

PUERTO n

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

MCLR Vd d .V ss

Figura 4.1 Diagrama de bloques general


Mdulos perifricos
de un microcontrolador PIC de rango medio

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

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


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

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

IT 1 Curso prctico sobre Microcontroladores


Teora

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


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

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

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

Curso prctico sobre Microcontroladores ( m k t :


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

b. Programacin serial rpida para produccin


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

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

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


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

Figura 4.6 Entrenador para microcontroladores PIC, referencia


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

50 ff TP. Curso prctico sobre Microcontroladores


0 El 0

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

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


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

Las familias de microcontroladores Motorola


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

s .a . Curso prctico sobre Microcontroladores


Teora

comparacin. Adems, ofrece tamaos de me


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

Curso prctico sobre Microcontroladores


Les LiucLuca ntrolado res M otorola A

canales y 16 bits, cuatro canales de conversin VDD


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

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


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

La familia HC11 RESET


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

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


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

Curso prctico sobre Microcontroladores


Teora

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


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

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


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

La familia NCLEO M (M CORE)


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

La fam ilia MPC5XX


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

Curso prctico sobre Microcontroladores


Les LULdLTCd ntrolado res M otorola

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

M 6 8 H C 7 0 5 J IC S

, Figura 5.6 Sistema de desarrollo CEKIT para e l microcontrolador


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

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

Curso prctico sobre Microcontroladores


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

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

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


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

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

VERSIN

8031 8051 4K 128 2 3.5 a 12 Versin NM0S

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


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

83C451 80C451 4K 2 7 pue rto s

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

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


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

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

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


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

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

Tabla 6.1 Gama de microcontroladores 8051 y algunos derivados

a. Curso prctico sobre Microcontroladores


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

P3.0 RXD entrada de interfaz serie


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

En una leccin posterior explicaremos en de


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

Curso prctico sobre Microcontroladores


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

tan con osciladores internos, temporizadores, UART,


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

Microcontroladores BASIC Stamp


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

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


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

La serie AT91 cuenta con un amplio con


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

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

60 ( E IK IIW ^ Curso prctico sobre Microcontroladores


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

Los BASIC Stamp han evolucionado rpida


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

Una alternativa m uy prctica para montar


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

Curso prctico sobre Microcontroladores


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

Otro aspecto importante de la programacin


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

.a. Curso prctico sobre Microcontroiadores


1
Teora

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

Figura 6.11 Distribucin de pines y cable de conexin del BASIC


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

U n aspecto m uy im portante que se debe te


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

Curso prctico sobre Microcontroladores


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

Figura 6.12 Tarjeta para Desarrollos con BASIC Stamp II

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

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


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

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

.4. Curso prctico sobre Microcontroladores


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

Curso prctico sobre Microcontroladores


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

Todos los microcontroladores requieren de un


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

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


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

Los tipos de oscilador ms utilizados son: -i

LP (baja potencia): cristal a baja


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

opciones de trabajo con cristal.


Figura 7.2 Conexin del oscilador basado en cristal o resonador cermico

(C m M fT ,: Curso prctico sobre Microcontroladores


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

La seleccin de los elementos que compo


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

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

Cuando se hace uso de cristales, estos se pueden


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

74AS04 74AS04 74AS04


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

bilizacin. El tiem po requerido para que el


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

Curso prctico sobre Microcontroladores


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

Mximo VDD ...


del sistema Alimentacin del

R e x t. 74AS04

0SC1 Fose

R eloj intern o
Cext

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

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

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

Curso prctico sobre Microcontroladores


Teora

+5VDC
,+5V

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

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

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

o Reinicializacin al encendido (Power


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

ms del estado lgico bajo en el pin


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

Curso prctico sobre Microcontroiadores


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

mentacin de baja rampa de crecimiento.


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

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

VDD VDD

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

. Curso prctico sobre Microcontroladores


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

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

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


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

Curso prctico sobre Microcontroladores


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

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

S 0

Reset del
R Q
Oscilador
RC PWRT
interno

Figura 7.15 Esquema general de los tipos de RESET en los


microcontroladores PIC

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


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

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

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

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


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

TCY1 TCY2 TCY3

Figura 8 .2 Flujo de ejecucin de una instruccin


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

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

TCYO TCY1 TCY2 TCY3 TCY4 TCY5


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

Operaciones de registro orientadas a Byte


13 8 7 6 0

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

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

CALL y GOTO nicam ente


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

Figura 8.3 Formato general de una instruccin

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

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


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

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

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

Figura 8.4 Ciclos Q

Curso prctico sobre Microcontroladores


Arquitectura de los microcontroladores PIC

Operaciones orientadas a registros

Nemotcnico Operacin Ciclos Cd. de operacinEstados


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

Operaciones orientadas a bits

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


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

Operaciones literales y de control

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


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

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

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


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

El registro W es un registro no direcciona-


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

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

Registro: STATUS

IRP RP1 RPO T0 PD Z DC C

bit 7 bitO

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

IRP: Selector de pgina para direccionamiento indirecto


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

Figura 8 .6 Registro de estado

Curso prctico sobre Microcontroiadores m m iK H W s .


Arquitectura de los microcontroladores PIC

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

Registro: OPTION (OPCIN)

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

bit 7 bitO

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

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


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

Figura 8 . 7 Registro OPCIN

M IK < IIW Curso prctico sobre Microcontroladores


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

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

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

;.a. Curso prctico sobre Microcontroladores


Teora

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

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

7FF

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

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

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

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

Curso prctico sobre Microcontroladores


La memoria en los microcontroladores PIC

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

Memoria de programa

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

Figura 9.4 Direccionamiento usado p o r llamado a subrutinas

.a. Curso prctico sobre Microcontroladores


Teora

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


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

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


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

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


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

Curso prctico sobre Microcontroladores m u tu T s


La memoria en los microcontroiadores PIC

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

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

Curso prctico sobre Microcontroiadores


Teora

La Memoria de Datos Los registros de propsito general representan


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

INDF OOh INDF 80h INDF 10Oh INDF 180h


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

Figura 9 .8 Estructura general de la RAM

Curso prctico sobre Microcontroladores m iK <H Ts


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

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


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

caractersticas de cada disposi


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

m a z u T s . Curso prctico sobre Microcontroladores


Teora

inform acin del cdigo


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

Curso prctico sobre Microcontroladores


Direccin
he*. Contenidos
00

Instruccin orientada a b it o a byte

nos dice que el


se usa como aputador
7F
80

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

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

Fig ura 9.11 Modo de direccionamiento indirecto

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

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

la direccin (en 8 bits) del registro que se


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

cualquier punto del mapa de m em oria


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

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

Curso prctico sobre Microcontroladores


24LC01

Ctodo comn

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

2N 3906

LA EEPROM DE DATOS EN LOS


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

Curso prctico sobre Microcontroladores


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

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


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

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


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

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


Teora

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

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


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

Los bits de control RD y W R inician la lec


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

estos bits slo pueden ser colocados en uno (no


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

Una operacin de escritura es vlida cuan


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

Curso prctico sobre Microcontroiadores m t:


La EEPROM de datos en los microcontroladores PIC

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


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

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

viene escrituras accidentales en la memoria EE


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

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

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

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

<.A. Curso prctico sobre Microcontroladores


Teora

Bufter 5V perm ite ahorrar pines del microcon


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

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

Curso prctico sobre Microcontroladores


FOTR!
ROM de datos en los microcontroladores PIC

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

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

MCLR 4

0SC 1

0SC2
VSS

1 20pF

Figura 10.6 Ejemplo del manejo de una memoria serial

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

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

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

m jK fV s . Curso prctico sobre Microcontroladores


LECCIN 11

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

Curso prctico sobre Microcontroladores d c E J C lT .


Interrupciones en los microcontroladores PIC

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

Las fuentes de interrupcin ms utilizadas GOTO M A IN


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

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

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

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


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

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


Teora

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


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

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


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

BCF IN TCO N , INTE; int. externa


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

Cuando ocurre un estado de reset todos es


tos bits toman un valor de cero (limpiados).

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


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

Curso prctico sobre Microcontroladores


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

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


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

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

Va. Curso prctico sobre Microcontroladores


Teora

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


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

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

Curso prctico sobre Microcontroiadores m M B T


Interrupciones en los microcontroladores PIC

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

Curso prctico sobre Microcontroladores


Teora

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

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


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

Curso prctico sobre Microcontroladores (103


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

m u H T s . Curso prctico sobre Microcontroladores


LECCIN 12

LOS TEMPORIZADORES El\l LOS


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

Curso prctico sobre Microcontroladores


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

i. Curso prctico sobre Microcontroladores


Teora

Divisor de la
Entradas entrada Salidas

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

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

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

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

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


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

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

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

El prescalador !. C onfigurando el TIMERO.


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

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


Teora

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


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

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


Los tem porizadores en los microcontroiadores PIC

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


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

Figura 12.5 Registros asociados con e l manejo del TMR2

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

<-*. Curso prctico sobre Microcontroiadores


Teora

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

-T~L Entrada .TI J~ L Entrada


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

16 - B its
Figura 12.7 Modos de funcionamiento del TIMER1

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

B it 1 del re g is tr n CON

ito de
Twia
aUCl

Evento especial disparado desde


el mdulo CCP Figura 12.8 Diagrama de bloques del TIMERI

Curso prctico sobre Microcontroladores


Los temporiza dores en los microcontroladores H E f

fico cuyo nom bre dentro del encapsulado es


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

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


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

La seleccin de la fuen te de seal para el


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

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


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

-*. Curso prctico sobre Microcontroladores


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

captura permite hacer mediciones muy precisas b7 bit 0


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

bajan prcticamente de la misma manera.


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

Modo CCP Funcin Nombre genrico CCP1 CCP2 Comentario


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

i. Curso prctico sobre Microcontroladores


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

Modo CCPx Modo CCPy Interaccin


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

Curso prctico sobre Microcontroladores


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

t e prctico sobre Microcontroladores


Teora

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

operacin consiste en 0 0 tiempo de cada flanco de bajada


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

Curso prctico sobre Microcontroladores < M IK < IIT s .


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

do a la aparicin del flan 0SC /4

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

CCPx posee una funcin alterna como pin


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

truccin TRIS para que trabaje como sali


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

Curso prctico sobre Microcontroladores


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

Curso prctico sobre Microcontroiadores


Mdulos CGP (captura/comparaci

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


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

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

10
Pin CCP1 bajo

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

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

PR2 Borrar el temporizador y


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

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


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

Curso prctico sobre Microcontroladores , ( 121


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

Figura 14.1 Comunicacin en paralelo

En trminos generales, hay dos maneras de


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

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

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


Teora

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

Reloj

Datos

Bits de carcter
Figura 14.5 Carcter serial sincrnico

Curso prctico sobre Microcontroladores


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

Curso prctico sobre Microcontroladores


Teora

Tiempo
Estructura del carcter-

Tiempo d e u n M

P-5 o < Estado desocupado

4 Estado ocupado
I " I
B it de datos

Bit de B it de final del


sincronizacin paquete

Figura 1 4.7 Estructura del carcter

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

Bits de datos y
bits de paridad {opcionales)

j Marca (1 lgico)

re Espacio (0 lgico)


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

Curso prctico sobre Microcontroladores


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

Interfaz Interfaz
RS-232 RS-232

Figura 14.11 Canal de comunicacin serial

i. Curso prctico sobre Microcontroiadores


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

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


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

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

Curso prctico sobre Microcontroladores


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

C uando u tilizam o s comunicaciones seria


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

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


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

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

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

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

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

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

Vdd

v ss +5V

MCLR
0SC1
10K
0SC2

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

Figura 14.14 Esquema del circuito para comunicacin serial

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

Curso prctico sobre Microcontroladores


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

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


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

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

Curso prctico sobre Microcontroladores


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

Desde el punto de vista del receptor se pue


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

Los mdulos de softw a re mostrados en la Si


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

i
contador de bits

1 2 3

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

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

Curso p r c tic o sobre M icrocontroladores


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

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

El registro de recepcin toma el dato de la


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

La subrutina de retardo la podemos apre


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

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


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

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


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

Curso prctico sobre Microcontroladores


Teora

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


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

La instruccin RRF: rote el contenido del regis


tro f a la derecha, usando el carry

Sintaxis: RRF f,d


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

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

Curso prctico sobre Microcontroladores m /K tMT


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

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

Curso prctico sobre Microcontroiadores


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

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

Recepcin

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

Transmisin

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

Figura 14.24 Temporizacin de las tareas

Curso prctico sobre Microcontroladores < s m iK iim


Introduccin a las comunicaciones seriales

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


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

Para controlar los distintos estados de la co


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

En la figura 14.26 podemos apreciar el c


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

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

Curso prctico sobre Microcontroladores


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

Figura 14.26 Subrutinas de recepcin y transmisin

Curso prctico sobre Microcontroladores E tC B Y ,l 137


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

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

Figura 14.27 Cdigo fuente del ejercicio

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


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

Curso prctico sobre Microcontroladores


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

Cristal Rata de Ciclos por lazo Ciclos de las tareas


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

8 9600 52 10 Retardo B Retardo C Retardo A

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

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

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

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

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

No
Bit listo? X
Inicializar contador
de bits

Inicializar contador
de lazos de
recepcin

No
stop?

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

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

Figura 14.29 Tarea de recepcin


TXON

140 Curso prctico sobre Microcontroladores


O I1 S

TXON

U suario Figura 14.30 Tarea de transmisin

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


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

Curso prctico sobre Microcontroladores m K lT l


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

Existen nueve registros especiales asociados


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

DTE

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

142 & C IT s l Curso prctico sobre Microcontroladores


le u L t

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

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

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


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

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

1 0 7 6 2 1 0
TRISC
T RCSTA

I___I___ Deben estar en uno para OPDD Error por


la operacinde de la UART sobrepaso

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

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

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

Curso prctico sobre Microcontroladores < S lE K tT s .


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

\
i
Guardar contexto

No Registro de
Tx vaco?
Leer los
carcteres de
receptor

1
J
r

Carcter al registro
deTx Restaurar contexto

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

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

El registro de recepcin que m aneja


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

Los microcontroiadores PIC ofrecen


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

Curso prctico sobre Microcontroiadores 145


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

BIT BANDERA FUNCIN

0 byte recibido (NUBYTE) activada al recibir un byte


borrable por el usuario

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


borrable por el usuario

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


borrable por el usuario

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


borrable por el usuario

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


borrable por el usuario

Tabla 14.3 Registro de banderas

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

Tgm uznm . Curso prctico sobre Microcontroladores


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

MODULO DE T R A N S M IS IO N

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

MODULO DE R EC EPC IO N

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


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

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


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

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

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

S A L IN T R E T F IE

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

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

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

Figura 14.40 Cdigo ejemplo de comunicacin Full-Duplex

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

Datos

Datos vlidos

Figura 14.41 Protocolo serial sincrnico

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

Curso prctico sobre Microcontroladores


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

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

Emplea tres lneas: entrada de datos, salida de


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

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


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

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


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

En un bus PC todos los dispositivos pueden


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

D entro del bus I2C el dispositivo m aes


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

W K M T .: Curso prctico sobre Microcontroladores


o+5V

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

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

Curso prctico sobre Microcontroladores


lllULiuTriHQll Ci lag CULllLLLCaCULlljt SlHtfeUiS

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


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

Despus del INICIO, el pri


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

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

ry
Seal de reconocimiento
desde el receptor ACK

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

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

Desde el esclavo Desde el esclavo


1010 para EPROM Indica lectura

Figura 14.47 Transmisin PC

PARA SABER MS sus productos, logrando una reduccin en cos


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

Curso prctico sobre Microcontroladores


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

TV Radio Audio Telfono Industria Autom vil


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

Tabla 14.4 Cobertura de componentes con bus l2C

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


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

Integrado Funcin D ireccin


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

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

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


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

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


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

Salida d igital

Analicemos el caso de la conversin


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

La seal anloga de entrada al


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

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

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

-S.

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

Figura 15.2 Entradas anlogas con Z = Zn.

Resumamos las principales caractersticas


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

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


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

Curso prctico sobre Microcontroladores M IK < IIT s


LOS CULlVLHiliL-lrS CiLldLU/lLULtdLei

R e g is tro : ADCONO R egistro: ADC0N1

ADSC1 ADSC0 Res. CHS1 CHS0 Go/Done ADIF ADON


u u u u u u PCFG1 PCFGO

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

D ireccin: 08h D ireccin: 88h


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

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

00 canal 0 (AIN0| Figura 15.4 Registro ADCON1


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

s.4. Curso prctico sobre Microcontroladores


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

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

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

No establecidos

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

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


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

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

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

No e s ta b le c id o s

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

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

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

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

Curso prctico sobre Microcontroladores


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

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

Dividir por: Ose. Para obtener un periodo


del reloj del ADC de:

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

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

7 6 5 4 3 2 1 0

Figura 15.6 Consideraciones sobre e l tiempo de muestreo ADCONO


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

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


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

;.4. Curso prctico sobre Microcontroladores


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

Curso p rctico sobre M icrocontroiadores M T,


El w atch d o g y el m odo sleep

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


(WDT) reloj del TM RO

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


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

m entalm ente su vigilancia consis t Al TM RO


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

gram a in icialice nuevam ente su


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

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


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

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


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

M T . l . Curso prctico sobre M icrocontroladores


Teora

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

F ig u ra 16.4 Palabra de configuracin

Curso p rctico sobre M icrocontroladores c i6 3


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

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

m encionado an teriorm ente, m uchos program a-


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

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

IRP: Selector de pgina para direccionamiento indirecto


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

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


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

Registro U n aspecto im portante que se debe tener en


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

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


El w atch d o g y el modo sleep

l i l i

F ig u ra 1 6.7 Despertando m ediante interrupciones

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


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

it :. Curso p rctico sobre M icrocontroiadores


Teora

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

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


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

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


+V
+V

14
VDD RBO

6 80 2 MCLR
17
RAO

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

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

Curso p rctico sobre M icrocontroladores # r


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

TO PD RB1 RB2 Descripcin


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

Tabla 16.2 B its P D y T0

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


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

< M IK < IIT Curso prctico sobre M icrocontroladores


LECCIN 17

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

Curso p rctico sobre M icrocontroladores


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

28-pn PDIP 68HC908JL3CP


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

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


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

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

Curso p r ctico sobre M icrocontroladores


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

s

s

i
gdS =2 g*
5 o U

t
PTB (0:7)

O.
o

o
se
$
E
o 1= 1
3 i p
PTD (0:7)

UJ =
==
3a:
(u;


I 1 so
DORA MODULO DE CANALES
o
CONVERTIDORES A/D o
PUERTO A (PTA) a . 1 T - - " 3'- DE 8 BIT
s< -
en
o

f n i =
P T A /K B I(0 :6 ) o g| : z t/5 S
i

figura 77.2 Diagram a en bloques que m uestra la arqu itectura de los m icrocontroiadores de la fam ilia 68HC08

rs.A. Curso prctico sobre Microcontroiadores


Teora

U na entrada de interrupcin maestra no sincr , que est


nica IRQ activa en nivel bajo, con resistencia de representada por un conjun to de registros de
sujecin y tecnologa schm itt-trigger, programables. propsito p articu lar e instrucciones especia
lizadas d isponibles para el usuario; est cons
La fig u ra 17.1 m uestra de m anera sim p lifi titu id a por un m d u lo sum ador com pleto
cada las principales caractersticas de la fam ilia (con acarreo in term ed io y final) de 8 bits, un
de m icrocontroladores 6 8 H C 0 8 , y los princip a m u ltip licad o r de 8 bits por 8 bits, y u n m
les subsistem as en los que se divide. d ulo de divisin binario de 16 b its e n 8 bits.
La tarea de la A L U , com o su nom bre lo in
A rquitectura de los m icrocontroladores d ic a, consiste en procesar todas las op era
M otorola cio n es aritm ticas o lgicas que debe hacer
En el diagram a en bloques q ue se m uestra en la la C P U , tales com o las su m as, d ivisio n es,
figu ra 1 7.2 vemos la estructura, disposicin in m u ltip licacio n es, rotaciones y d esplazam ien
terna e interconexin que hay entre las diferen tos, en tre otras.
tes partes que conform an un m icrocontrolador
M o toro la tpico de rango m edio, tal com o los Sin em b argo, cu m p le tam b in un pap el fun
de la fam ilia 6 8 H C 0 8 . d am en tal para p o d er acced er a los datos dis
p o n ib les en m em o ria d irec ta, o in d irecta
En la figura se puede apreciar con claridad m en te a travs del registro co n tad o r del pro
la m anera com o estn interconectados los prin g ram a (P C ), cuan d o se ejecu tan in stru ccio
cipales bloques del m icrocontrolador; a ll puede nes de salto, llam ados y retornos de otras fun
verse que entre todas sus partes hay un flujo de cion es o de su b ru tin as e in terru p cio n es.
inform acin bidireccional que se hace por m e
dio de un sistem a de bus nico, tal com o en la D e su velocidad d e ejecucin y buenas carac
arqu itectu ra Von N eum ann , y que est contro tersticas tcnicas se desprende la d isp o n ib ili
lado y sincronizado desde la C P U . dad q ue ofrece el m icrocontrolador para efec
tu ar clculos con grandes volm enes de d a
Todo m icrocontrolador puede dividirse en ros, de u n a m anera gil y segura, tal com o se
tres grandes subsistem as, que en el caso de los requiere en las aplicaciones de m an ejo y re
M o toro la se puede ap reciar claram ente en el conocim iento de voz y vdeo.
diagram a de bloques y son: el ncleo de proce
sam ien to, el sistem a de m em oria y los m dulos I I registro tic control d e la C P U , q ue est,
perifricos internos. conform ado por un gru p o de b its que gene
ran las seales de sincro nizacin y control
El ncleo de procesam iento necesarias para que el flujo de datos a travs
Es el corazn del m icrocontrolador, tam bin del bus se efecte sin contratiem pos y en la
se le conoce com o la U nidad C entral de Proce direccin correcta entre los diferentes bloques
sam iento (C P U ); cuenta con un bus de datos del m icrocontrolador.
in terno y propio con un an ch o de b an d a de
8M H z (rango de frecuencia dentro del cual el , figu ra 17.3, es un
bus tiene gan an cia u n itaria) y co n tien e los m registro de propsito general de lectura y es
dulos y registros fundam entales para el buen des critu ra con una lo n gitu d de 8 bits , q ue es u ti
em peo del m icrocontrolador (los registros de lizado por la C P U para alm acenar tem poral
la C P U son cinco y son independientes del m apa m ente los operandos y resultados obtenidos
de m em oria d el m icrocontrolador). Las partes en las operaciones aritm ticas y lgicas reali
que conform an la C P U son: zadas por la ALU.

Curso prctico sobre M icrocontroladores < ^ m /K < /T T


A c u m u la d o r (A ) La d irecci n c o n te n id a en el SP d ism in u y e
Bit 7 6 5 4 3 2 1 BitO en uno con c ad a d ato q u e en tra a la p ila, y
Lectura: I
a u m e n ta en uno cad a que un d ato es e x tra
Escritura: 1
d o d e la m ism a; de esta m an era el SP siem
Reset X X X X X X X X
pre a p u n ta a la p r x im a p o sici n d isp o n i
X: valor indeterminado, no es afectado por el reset ble en la p ila.
F ig u ra 17.3 Registro acu m ula do r de la CPU08
Es im po rtan te recordar que luego de la ejecu
cin d el ciclo de reset m aestro, en el SP se gra
, fig u ra 1 7 .4 , es un
ba la direccin hexadecim al OFF, para pro
registro de 16 b its que p erm ite d irec c io n ar
veer co m p atib ilid ad con la pila de la fam ilia
h asta 6 4 k b ytes de espacio en m em o ria en
M C 6 8 0 5 ; m ien tras que con la in struccin
fo rm a in d ex a d a. El b y te m s alto d el reg is
RSP (reset sta ck p o in ter), se restablece el regis
tro n d ic e es H , m ien tras q u e el b y te m s
tro SP colocando su b y te m s bajo en FF y no
b ajo es X ; de esta fo rm a se c o n stru ye el re
se afecta el b y te ms significativo.
g istro co n c ate n ad o de 2 b y tes H :X q u e es el
n d ic e para el rea de m em o ria d el u su ario , A p u n ta d o r d e la p ila (SP)
y con el c u a l se p u ed e a p u n ta r a c u a lq u ie ra Lectuta:
a n s 14 13 12 ii m

d e las 6 4 .0 0 0 po sicion es.


Escritura

Reset o o o o a o o
Este registro ta m b in se p u ede u sar com o RSP: X X X X X X X X I I 1 1 1 1 I I
uno de pro p sito gen eral para el a lm a c e n a
X: valor indeterminado
m ien to tem p o ral de d ato s; sin em b arg o se
F ig u ra 1 7.5 Registro ap u ntad or de la p ila de la CPU08
d eb e reco rdar q u e la C P U u sa su c o n ten id o
p a ra d e te rm in a r la d ire c c i n e fectiv a del
o p eran d o , y ad em s, te n e r p resen te que la
PARA SABER M S
p a rte a lta del registro se b o rra tras la acci n
M o v ilid a d d e la p ila (s ta c k )
d e restab lecim ien to o de r eset en el m ic ro
c o n tro lad o r (H = 0). En la a rq u ite c tu ra de los m ic ro c o n tro la d o re s
M o to ro la de las fa m ilia s 6 8 H C 0 8 y su p e rio re s,
Registro ndice (H:X)
la u b ic a c i n d e la pila no e s fija , e s a rb itra ria ,
815 14 13 12 11 10 9 8 ? 6 5 4 3 2 1 BitO
Lectura: |
y p u e d e re lo c a liz a rs e en c u a lq u ie r e s p a c io
Escritura:
d e n tro de la m e m o ria RAM . P ara e sto , solo
Reset. o o o o o o d o x x x x x x x x
b a sta g ra b a r el re g is tro a p u n ta d o r de la pila
X: valor indeterminado, no es afectado por el resel
SP co n una d ire c c i n de m e m o ria d ife re n te a
F ig u ra 17.4 Registro ndice de la CPU08 la de la p g in a 0 (0 0 0 0 a 00FF), q u e es el lu
g a r p o r d e fe c to en el q u e re s id e la p ila .
5. El reg istro a p u n ta d o r d e la p ila S P (sta ck
, fig u ra 1 7 .5 , es un reg istro d e 16
A u n q u e el d e s p la z a m ie n to y la u b ic a c i n de la
b its q u e c o n tien e en c u a lq u ie r in stan te la
p ila sea lib re p a ra el p ro g ra m a d o r, y a pesar
d irec c i n de la p r x im a p o sici n de 8 b its
d en tro de la p ila d el m icro co n tro lad o r. En de q u e el re g is tro SP e s de 16 b its, p a ra un
los m icro co n tro lad o res M o to ro la el reg is a d e cu a d o fu n c io n a m ie n to n u n c a se d e b e o l
tro SP se p u e d e u sar co m o e l n d ic e p ara v id a r qu e el a p u n ta d o r d e la p ila d e b e p e rm a
acced er a los d ato s tem p o rales d e n tro de la n e c e r d e n tro del rea de la m e m o ria RAM.
p ila , en dos m odos de d irec c io n am ie n to .

Curso prctico sobre M icrocontroladores


Teora

El r e g is tr o c o n ta d o r d e l p r o g r a m a PC, tener el cdigo del program a con todas sus varia


, fig u ra 1 7 .6 , es tam bin bles y constantes. La flexibilidad, confiabilidad,
un registro de 16 b its q ue co n tien e en todo vida til y facilidad de m anejo, son factores im
m om ento la direccin de la prxim a in stru c portantes para el usuario de esta tecnologa y que
cin o el operando que se debe buscar, a tra estn ligados con el tipo de m em oria disponible
vs de un ciclo de b sq u eda de la C P U . La para el usuario en el m icrocontrolador.
C P U siem pre au m en ta el valor del P C en
R e g is tro d e l c d ig o d e c o n d ic i n (C C R )
form a secuencia! hacia la sig u ie n te posicin
d e m em o ria, cada vez que una in stru cci n
o u n o p eran do sea b u scado ; excepto cu an
do se ejecu tan op eraciones de salto, lla m a
d o, retorno e in terru p cio n es, q u e grab an d i
L e c tu ra :

E s c ritu ra :

R eset
aB it 7

x
6

1
5

1
B its fijo s
4 3 2 1 B it 0

recciones p articu lares en el PC . X: indeterminado

V - Bit indicador de sobreflujo (overflotv fla g).


D urante el ciclo de restablecim iento, el re
Es colocado en 1 lgico cuando se presenta
gistro P C es grabado con el contenido del un sobreflujo o desbordamiento en el rango
vector del reset ubicado en las posiciones de de una operacin aritmtica, en complemen
m em oria FFFE y FFFF; de esta form a que to a dos.
d a cargado con un nm ero de 16 bits , que H - B it indicador de acarreo interm edio ( h a lf-
representa la direccin de la prim era in struc c a r r y fla g ) . Es colocado en 1 lgico cuando
cin del program a que debe ser ejecu tad a al ocurre un acarreo entre los bits 3 y 4 del
term in ar este ciclo. registro acumulador, durante una operacin
aritm tica.
C o n ta d o r d e l p ro g ra m a (PC) I - B it habilitador de interrupciones ( in terru p t
mask). Cuando este bit es colocado en 1 lgi
Lectora
co, todas las interrupciones enmascarables de
la CPU se inhabilitan; mientras que cuando
Carga el registro co n los datos contenidos en las posiciones de m em oria
asignadas al ve cto r de l re s e l (posiciones FFFE y FFFF) este b it se borra (en 0 lgico) se habilitan. Este
b it es automticamente colocado en 1 luego
F ig u ra 1 7.6 Registro contador del program a de la CPU08 de la accin de r e s e t y la atencin a una seal
de interrupcin.
7. El recistro
o del c d igo
o de co n d ici n C C R N - B it indicador negativo (n eg a tiv e fla g ). Este
, figura 17.7, es tam b it es colocado en 1 lgico cuando el resulta
bin llam ado por otros fabricantes de microcon do de una operacin aritmtica o lgica, o del
troladores como registro de estado o registro de procesamiento de datos, es negativo.
banderas de estado; su longitud es de 8 bits y Z - B it indicador de cero (z ero fla g ) . Cuando
contiene el /Vhabilitador de interrupciones y 5 el resultado de una operacin lgica, arit
bits ms que indican el resultado de la instruc m tica o entre datos es 00, este b it es colo
cado en 1 lgico; de lo contrario se m antie
cin que est siendo decodificada. 'Eras la ejecu
ne en 0 lgico.
cin del ciclo de reset el contenido del registro
C - B it indicador de acarreo (carry/borroiv fla g).
C C R solo se afecta en el b it 3 , que es el habilita- La CPU coloca este bit en 1 lgico cuando se
dor de interrupciones del m icrocontrolador (I); presenta un acarreo hacia afuera o hacia aden
ste se coloca en 1 lgico y las inhabilita. tro del sptimo b it del acumulador, durante
la ejecucin de las operaciones de adicin y
El sistem a de m em oria sustraccin, y algunas operaciones lgicas.
El sistem a de m em oria en un m icrocontrolador es
de gran im portancia y a que est destinado a con Figura 17.7 R egistro d e l cd igo de condicin de la CPU08

Curso prctico sobre M icrocontroladores t M IK IT T .


En el caso de los m icrocontroladores M o to Las caractersticas y luncio n es d e los m d u
rola, el usario cuenta opcional m ente con tres ti los perifricos de m ayor im p o rtan cia para el m i
pos de m em orias que pueden ser borradas o gra crocontrolador y el usuario, sern tratadas am
badas en cualquier instante (P LA SH , EEPROM pliam ente en las prxim as lecciones.
y E P R O M ), y otros dos tipos que so lam ente se
pueden g rab ar una vez (O T P y R O M ). Asignacin de pines en los
m icrocontroladores 68H C 08
La organizacin de la m em o ria, sus carac Los m ic ro c o n tro la d o re s M o to ro la d e rango
tersticas y sus m odos de d ireccio n am ien to , por m ed io d e la fam ilia 6 8 H C 0 8 estn d is p o n i
ser de g ran im p o rtan cia, se tratarn con ms bles en en cap su lad o s tip o D1P de 0 y 28 p i
d etalle en u n a fu tu ra lecci n , sin em bargo ah o nes. En la fig u ra 1 7.8 se m u estra la d is trib u
ra se puede d ecir q ue, a l ig u al que en m uchos ci n y asig n ac i n de los p ines de los m icro
otros m icrocontroladores, sta se en cu en tra d i co n tro lad o res JK 1 , JK 3 y JL 3 .
v id id a en dos gran des bloques, que son: la m e
m oria de p ro gram a y la m em o ria d e dato s, y su Los m icrocontroladores JL 3 poseen, a dife
conexin con la C P U se hace a travs d el m is rencia de los JK1 y JK 3 , un m ayor grupo de l
m o sistem a de bus. neas d isponibles(puertos PTAO a PTA5 y puer
tos PTDO y P T D l).
Los m dulos perifricos internos
Los m dulos perifricos internos desem pean
funciones bsicas para el buen funcionam iento
de la C P U , com o en el caso de los m dulos de
reloj, las interrupciones, el reset, la regulacin y
proteccin a la alim en taci n ; ellos facilitan la
operacin de todo el sistem a y la conexin con
otros dispositivos o sistem as del m un do exterior.
A dem s, desarrollan tareas especficas dentro de
la a rq u ite c tu ra de un m icro co n tro lad o r y los
orientan hacia aplicaciones particulares dentro del
cam po de la in d u stria y la experim entacin con
esta tecnologa.

Los m icrocontroladores M otorola, dentro de


la fam ilia 6 8 H C 0 8 , cuentan con m dulos peri
fricos verstiles de m ucho uso y fcil m anejo,
que agilizan las tareas de control y procesam ien
to de daros que se pueden desarrollar. Los m
dulos perifricos o interfaces que ofrece una fa
m ilia de rango m edio com o la 6 8 H C 0 8 , son:
d r iv ers digitales para diodos LED , d r iv ers de dre-
nador abierto para cargas de alto consum o, in te
rrupciones para teclado, contadores y com para
dores de cap tu ra (IC A P/O C A P), tem porizado-
res program ables (T IM X ), puertos de co m u n i
cacin serial (S C I, SPI y C A N ), canales de con
versin A/D, y salidas de control P W M . Figura 17.8 Asignacin de pines de los microcontroladores 68HC08

Curso p r ctico sobre M icrocontroladores


LOS PUERTOS DE LOS
MICROCONTROLADRES HC08 DE
MOTOROLA
Dentro de los m dulos con los que cuentan los m icro
controladores de esta familia, los puertos de entrada y
salida (I/O) son de gran im portancia para la interco
nexin y el manejo de las cargas y dispositivos externos
a ellos. En la actualidad los microcontroladores de ran
go y velocidad m edia, evolucionan en torno a la espe-
cializacin de las tareas que son capaces de desarrollar, y
esto depende de las funciones y caractersticas que los
diseadores h ayan in c lu id o en los puertos.
. *
Curso prctico sobre M icrocontroladores
Las- Liua-Ltas d e l a s LiucL-ucaLiualciduL-aa LiCQ L da1 U 'iim ufe.

La a lim e n ta c i n d el m ic ro c o n tro la d o re s
u no de los facto res m s im p o rta n te s p a ra que
Para continuar conociendo la estructura interna y el c irc u ito in te g ra d o y to d o s su s m d u lo s in
los m dulos que rigen el funcionam iento de los tern o s tra b a je n a d e c u a d a m e n te , y a u n q u e la
microcontroladores M otorola de la fam ilia H C 08, te c n o lo g a u sa d a p o r M o to ro la , po see filtro s
se debe conocer la distribucin y asignacin defini y re g u la d o re s de v o lta je in te rn o s q u e p e r
da para cada uno de los p in es que ofrece el m icro m ite n a lim e n ta r lo s con fu e n te s m o n o p o la -
controlador para la interconexin del usuario con res q u e v a re n e n tre 3 y 5 V C C , es n e c esa rio
el m undo externo. q u e la fu e n te d e a lim e n ta c i n est p r o te g i
d a c o n tr a se a le s tr a n s ito r ia s d e v o lta je y
En la tab la 18.1 se describen de m anera re c o rr ie n te , y q u e la e n tra d a de a lim e n ta c i n
su m ida las principales caractersticas de cada uno d e l m ic ro c o n tro la d o r (e n tre los te rm in a le s
de los p in es de los m icrocontroladores 6 8 H C 9 0 8 , V D D y V S S ) sea p ro te g id a por m ed io de uno
en sus versiones JK 1 , JK 3 y JL 3 , y encapsulados o v a rio s c o n d e n sa d o re s no p o la riz a d o s para
en estructuras D IP de 2 0 y 28 p in es. a lta fre c u e n c ia .

N o m b re N ivel de
Pin D escripcin d el pin D ireccin
del pin voltaje
VDD E ntrad a d e a lim e n ta c i n p o s itiv a . E ntrad a 3V 5V

VSS S alid a d e c e ro v o ltio s, u sa d o c o m o re fe re n cia p ara la fu e n te de a lim e n ta c i n S a lid a OV


(s is te m a de tie rra GND).

RST E ntrad a e x te rn a d e in ic ia liz a c i n de n ive l a c tiv o b a jo e n c e ro l g ic o . Tiene E n tra d a VDD


re s is te n c ia d e p u ll- u p y e n tra d a c o n fo rm a d o ra d e s e a l a tra v s de

c o m p u e rta s s c h m it t t r ig g e r .

IRQ1 E n tra d a e x te rn a a c tiv a en n iv e l b a jo , d e fin id a p a ra la p e tic i n d e l s e rv ic io E n tra d a VDD a


d e in te rru p c i n . P ose e u n a re s is te n c ia d e p u ll- u p y u n a c o m p u e rta de V D D + V HI
e n tra d a s c h m it t t r ig g e r o p c io n a le s y p ro g ra m a b le s p o r m e d io d e l c d ig o

d e l p ro g ra m a [s o ftw a re ). E ste p in c u m p le ta m b i n u n a fu n c i n a lte rn a

c o m o e n tra d a d e l s e le c to r d e m o d o del m ic ro c o n tro la d o r.

0SC1 E n tra d a d e l m d u lo o s c ila d o r co n b ase en c ris ta l de c u a rz o XTAL, re s o n a d o r E n tra d a A n lo g o


u o s c ila d o r p a s iv o RC.

0SC2 E ste p in p u e d e o p e ra r c o m o u n a e n tra d a o c o m o u n a s a lid a , d e p e n d ie n d o E n tra d a / A n lo g o /


d e l tip o de o s c ila d o r c o n fig u ra d o . C ua nd o s e u s a el c ris ta l d e c u a rz o o el S a lid a VDD
re s o n a d o r, el p in s e c o m p o rta c o m o s a lid a y la s e a l q u e se o b tie n e en l,

e s la s e a l In v e rtid a q u e e n tra al m d u lo o s c ila d o r 0 S C 1 . C ua nd o s e e lig e

la o p c i n de la re d p a s iva RC en el o s c ila d o r e l p in p u e d e s e r u n a e n tra d a

o u n a s a lid a , y p o r d e fe c to , se c o m p o rta r c o m o la s a lid a d e l re lo j RCCLK.

A d ic io n a lm e n te e s ta e n tra d a s e c o m p a rte c o n la s fu n c io n e s del p u e rto A .6

y d e la s e x ta in te rru p c i n p a ra el te c la d o K B I6, y tie n e u n a re s is te n c ia de

p u ll- u p p ro g ra m a b le .

r.4. Curso p r ctico sobre M icrocontroladores


N om bre D ireccin N ivel de
Pin D escripcin del pin
del pin voltaje

P T A [0 :6 ] J K :4 L a s lin e a s d e e s te c o n ju n t o d e 7 bits, q u e c o n fo rm a n e l p u e rto A , p u e d e n E n tra d a / VDD

J L :2 ,5 , s e r d e e n t r a d a s o s a lid a s d e p r o p s it o g e n e r a l y t a m b i n p u e d e n u s a r s e S a lid a

6 ,8 ,9 , c o m o s ie t e e n tr a d a s d e in t e r r u p c i n , y p a r a e l m a n e jo d e te c la d o s K B I[0 :6 ].

2 3 ,2 7 E n e s t e p u e r t o t o d o s lo s pines p u e d e n s e r p r o g r a m a d o s in d iv id u a lm e n t e

c o n r e s is t e n c ia in t e r n a d e pull-up.
P T B [0 :7 ] J K :6 a L a s l n e a s d e e s te c o n ju n t o d e 8 bits q u e c o n fo rm a n e l p u e rto B , se E n tra d a / VDD/

8 ,1 1 a c o m p o r t a n c o m o e n tr a d a s o s a lid a s d e p r o p s it o g e n e r a l, y t a m b i n S a lid a A n lo g o

15 c o m p a r t e n s u f u n c i n c o n o c h o c a n a le s d e lo s c o n v e r t id o r e s A /D c o n q u e

J L :1 0 a c u e n t a e l m ic r o c o n t r o la d o r , A D C [0 :7 ],

1 2 ,1 5 ,

1 7 ,1 8 ,

2 0 ,2 1

P T D [0 :7 ] J K :9 , E s te c o n ju n t o d e 8 bits b id ir e c c io n a le s d e p r o p s it o g e n e r a l, c o n s t it u y e e l E n tra d a / VDD/

1 0 , 1 6 a p u e r t o D . S u f u n c i n e s t c o m p a r t id a c o n c u a t r o c a n a le s A /D (A D C 8 a S a lid a A n lo g o

19 A D C 1 1 ) d e l m ic r o c o n t r o la d o r , a t r a v s d e lo s p u e r t o s P T D [0 :3 j; y c o n lo s

J L :1 3 , d o s c a n a le s b id ir e c c io n a le s d e l m d u lo d e la in t e r f a z d e t e m p o r iz a c i n

1 4 ,1 6 , T IM ,T C H 0 y T C H 1 . A d ic io n a lm e n t e , lo s pines d e lo s p u e r t o s D .6 y D .7

1 9 ,2 2 , p o d r n s e r c o n f ig u r a d o s c o m o e n tr a d a s y s a lid a s d ig it a le s , c o n c a p a c id a d

2 4 a 2 6 d e 2 5 m A , in t e r f a z t i p o d r e n a d o r a b ie r t o , y r e s is t e n c ia pull-up in te r n a .

Nota:
E n lo s m ic r o c o n t r o la d o r e s c o n e n c a p s u la d o t i p o D IP d e 2 0 pines J K , lo s t e r m in a le s P TA O , P T A 1 , P T A 2 , P T A 3 , P T A 4 ,

P T A 5 , P T D O y P T D 1 n o s e e n c u e n t r a n d is p o n ib le s .

l a b ia l8.1 D escripcin general de la s caractersticas, funciones y niveles de voltaje de lo s pines en los m icrocontroladores
M otorola de la fam ilia 68HC08.

VDD o
D urante la energizacin in icial, debido a la
C2 C1 - L excitacin de grandes cargas a travs de sus p uer
1-1 OjaF 0 ,1 |iF '
tos, al reset, o a la en trad a de seales transitorias
d e alta frecuencia (ru id o elctrico) provenientes
GND _ [ J
de fuentes externas, el m icrocontrolador d em an
d a u n a gran cantid ad de corriente de la fuente en
form a transitoria, que pueden daarlo u ocasio
N ota: (Los valores de los condensadores son tpicos)
C1 debe s e r un condensador no polarizado y para nar su m al funcionam iento.
alta frecuencia (cerm ico o de poliester).
C2 es un condensador opcional electroltico que se C olocando el conjunto de condensadores C 1
requiere cuando los puertos del m icrocontrolador
entregan toda su carga. y C 2 tal com o se m uestra en la fig u ra 1 8 .1 ,y lo
m s cerca posible de los p in e s de alim en tacin ,
F ig u ra 18.1 Filtrado externo de la entrada de alim entacin del
m icrocontrolador se crea un filtro pasa bajos sim ple q u e puede pro-

C urso prctico sobre M icrocontroladores


L u s lio r n a s d a la s lu lc l u i l il L e d a f a s L iC U c d a L d a t a iu la

teger efectivam ente al m icrocontrolador, su p ri PARA SABER M S


m iendo las seales de alta frecuencia antes de que
D e s tin o d e lo s p u e rto s no usados
pu ed an afectarlo.
Cuando se usa un m icrocontrolador en el desarrollo
de un sistem a, dispositivo o experim ento, es posible
Los puertos de en trada y salida 1/0, perm iten que la tarea no requiera de todos sus term inales dis
que el m icrocontrolador se conecte de m anera ponibles com o puertos; en estos casos, stos deben
segura, y m aneje con niveles de corriente y vol ser term inados, es decir, conectados a un nivel lgi
taje adecuados todos los dispositivos y sistem as co apropiado tal com o OV (VSS) 5VCC (VDD).
perifricos externos.

A unque los puertos de los m icrocontroiadores M o


Los m icrocontroiadores M otorola de 8 bits
que pertenecen a la fam ilia H C 0 8 , poseen 23 torola pueden dejarse en circu ito abierto cuando
puertos bidireccionales de en trada y salida m u y no se usan (puertos no term inados), y no se re
verstiles. Todos los puertos pueden ser progra quiere cerrar el circu ito para su buen desem peo,
m ados en varios m odos y efectuar diferentes fun es recom endable, por su tecnologa basada en in
ciones, tal com o se estudia a continuacin . terru p tore s electrnicos tip o FET {fele/ e ffe c t tra n
sistor), que sean te rm ina d o s para e vita r el consu
m o excesivo de co rriente y la posibilidad de que se
A este puerto se puede acceder a travs del re
gistro de datos A (P T A ), y est com puesto por daen pe rm a n e nte m en te por efecto de las cargas
7 bits de lectu ra y escritu ra que poseen fu n cio electrostticas.
nes especiales de en trada y salida d igitales. Tam
bin puede ser configurado com o 7 entradas ex En cualquier m om ento, la accin del reset afec
ternas de in terru p ci n para el m an ejo de tecla tar al registro D D RA , borrando rodos sus bits de
dos (K B I [6 :0 j). lo d o s los term in ales del pu er control, y program ando todo el puerto A como
to poseen u n a resisten cia in tern a d e p u ll- u p que entrada. En la fig u ra 18.2 se resum en las direccio
pu ed e ser co n ectada o desconectada por m edio nes, las caractersticas y las funciones alternas pro
del cdigo del p ro gram a, cu an d o se configuran pias del registro de datos del puerto A (PTA ) y del
com o entrada. registro de direccin de datos A (D D R A ).

E n este p u e rto los te rm in a le s entre D ire c c i n del re g is tro PTA: $ 0 0 0 0


PTAO y PTA 5 d el registro de datos po B it 7 6 5 4 3 2 1 B itO
seen fuentes lim itad as de co rrien te o rien L e c tu ra :
PTA6 PTA5 PTA4 PTA3 PTA2 PTA1 PTAO
tadas al m anejo de diodos LED d irecta E scritura:

m en te, o sea que no es necesaria la resis R eset Noes afectado


ten cia lim itad o ra en serie con l. F u nciones LED LED LED LED LED LED
a d ic io n a le s : [s m (Sink} (s m (s m ts m <s m
3CkpuH-up 3Ckpu-up 3M.put-up 30k pul-up XkpuH-up 3 0 k p u -ip X kpuhp
Por m edio del registro de direccin de Internacin Interropon Intenupdn Intenupcin tntenupcin In te m p a n IcitemipdCfi
d e le d a d o detectada delectado detectado detectado detectado detectado
datos d el puerto A (D D R A ), se program a la
condicin de entrada o salida sobre cada ter D ireccin del registro DDRA: $ 0 0 0 4

m inal o p i n del puerto; con un uno lgico


Lectura:
en cualquiera de sus bits se program a el puer
E sc ritu ra :
to correspondiente como salida, m ientras que
con un cero lgico, se deshabilita el b u jfer de R eset:

salida y se program a com o entrada. Figura 18.2 D efinicin de lo s re gistro s PTA y DDRA
/-A\ * *
180 ^ M IK IIT sa C urso p r c tic o s o b re M ic ro c o n tro ia d o re s
le e Lia

D ireccin d e l registro PTAPUE: SOOOD


En la fig u ra 1 8 .4 se ha d ib u jad o la
B it 7 6 5 4 3 2 1 B it 0
Lectura:
co n figu raci n in tern a en bloques del c ir
PTA6EN PTAPUE6 PTAPUE5 PTAPUE4 PTAPUE3 PTAPUE2 PTAPUE1 PTAPUE0 cu ito del puerto A , a ll se p u ed e ver que,
E sc ritu ra :
h.______ cu an d o el registro D D R A x est en uno l
Reset: 0 0
K K gico , la lectu ra de la d irecci n $ 0 0 0 0 se
PTA6EN: b it h a b ilita d o r d e l p in PTA6 (v lid o so lo c o n o s c ila d o r RC) efect a sobre el registro de datos PTAx;
B it e n 1 : c o n fig u r a e l s e g u n d o p in d e l o s c ila d o r (O S C 2 )c o m o
u n p u e rto d e e n tr a d a y s a lid a d e p r o p s ito g e n e ra l. pero cuand o el registro D D R A x est en
B it e n 0 : c o n fig u r a c i n p o r d e fe c to d e l p in 0 S C 2 c o m o la cero l gico , la lectu ra de d ich a posicin es
s a lid a d e l re lo j d e l o s c ila d o r RC (R C C LK ).
P TA PU E [6:0]: b its h a b ilita d o re s d e la s re s is te n c ia s p u ll-u p d e l PTA
el n ivel de voltaje presente en el term in al.
B it en 1: c o n fig u r a la r e s is te n c ia p u ll- u p d e 3 0 k
B it e n 0: d e s c o n e c ta la r e s is te n c ia p u ll- u p

F ig u ra 18.3 D efinicin d el registro PTAPUE E ste p u erto posee 8 te rm in ale s b id irec-


cio n ales, p ro gram ab les, y accesib les a tra
El p u e rto A c u e n ta ad e m s con el re g is vs del registro de datos d el p u erto B (P T B ), y
tro h a b ilita d o r d e las re siste n c ias p u l l - u p in todos co m p arten su fu n ci n con ocho e n tra
te rn as, lla m a d o P T A P U E , con el c u a l se p u e d as o canales del m d u lo de co n vertid o res an-
d en c o n e c ta r o d e sc o n e cta r d ic h a s re siste n lo g o -d ig ita le s (A D C ).
cias. En cad a b i t d el p u e rto p u e d e c o n fig u
rarse u n a re siste n c ia d e p u l l - u p in d e p e n d ie n Por m edio del registro de direccin de d a
te m e n te , sie m p re y c u a n d o stos estn p ro tos del p uerto B (D D R B ), se podr pro gram ar
g ra m a d o s c o m o e n tra d a s ; m ie n tra s q u e la la co n d ici n de en trad a o sa lid a sobre cad a ter
C P U a u to m tic a m e n te la d e sc o n e cta r cad a m in al del p u erto ; con un uno l gico en c u a l
vez q u e u n te rm in a l d el p u erto sea p ro g ra q u ie ra de sus b its se p ro gram a el puerto corres
m ad o com o s a lid a , p o r m ed io d el resp ectiv o p o n d ien te com o salid a, m ien tras que con un
h i t e n el reg istro D D R A x. cero l gico, se d esh ab ilita el b u jfe r de salid a y
q u ed a p ro gram ad o com o en trad a.
L a f ig u r a 1 8 .3 m u e stra el reg istro h a b ili
ta d o r de las re siste n c ias p u l l - u p d el p u e rto A Tras la accin del reset s e afectar al registro
(P T A P U E ). D D R B . bo rrando todos sus b its de control, y

PTAx

A l c irc u ito d e in te rru p c io n e s


p a r a te c la d o

Figura 18.4 C onfiguracin interna en bloques de l c ircu ito dei pue rto A

Curso prctico sobre M icrocontroladores ( M lK ffT . 181


L o s u u e i-U is lie Las L i U u lE l i i j L a L ir s KQ d e E'l u h u U

D ire c c i n d e l re g is tro PTB: $ 0 0 0 1


El p u e rto D e st c o m p u esto p o r 8 b its
Lectura: de le c tu ra y e sc ritu ra q u e se p u e d en ac
PTB7 PTB6 PTB5 PTB4 PTB3 PTB2 FTB1 PTBO
E sc ritu ra : c ed er a travs d el reg istro de d ato s del
Reset: j No e s afectado l p u e rto D (P T D ), y q u e ad em s poseen
F u n c io n e s fu n c io n e s esp e ciales de e n tra d a y s a li
ADC7 ADC6 ADC5 ADC4 ADC3 ADC2 ADC1 ADC0
a d ic io n a le s :
d a d ig it a le s . D os d e su s te r m in a le s
D ire c c i n d e l re g is tro DDRB: $ 0 0 0 5 co m p arte n su fu n c i n con la in terfaz
B it 7 6 5 B it 0 d e l m d u lo te m p o riz a d o r (T C H 1 y
L e c tu ra :
DDRB7 DDRB6 DDRB5 DDRB4 DDRB3 DDRB2 DDRB1 D DR B0 T C H 0 ), m ie n tra s q u e o tro s c u atro se
E sc ritu ra : co m p arte n con las e n tra d as d el m d u
Reset: 0 0 0 0 0 H S D H H 3 H lo de c o n v e rtid o re s A/D.
F ig u ra 18.5 D efinicin d e los registros PTB y DDRB
En este p uerto, ad icio n alm en te, los
pro gram an do todo el puerto B corno en trad a. term in ales P T D 6 y P T D 7 estn dise ados para
En la fig u ra 18.5 se resum en las d ireccio n es, las m an ejar corrientes de hasta 25m A en co n figu
caractersticas y las funcion es altern as propias raci n su m id ero ( sin k in g ), y poseen resistencia
del registro de datos del puerto B (PT B ) y del p u ll- u p p ro gram ab le. T am b in los term in ales
registro de direcci n de datos B (D D R B ). P T D 2 , P T D 3 , P T D 6 y P T D 7 estn cap acita
dos p ara m an ejar d irectam en te diodos LED.
En la fig u ra 1 8 .6 se ha d ib u ja d o la c o n fi
gu raci n in tern a en b loques q u e co rrespon d e Por m ed io d el reg istro de d irec c i n de d a
con el p u erto B; a ll se pu ede ver q u e cu an d o to s d e l p u e rto D (D D R D ), se c o n fig u ra la
el registro D D R B x est en uno l g ico , la lec d ire c c i n d el d ato so bre c a d a te rm in a l d el
tu ra del c o n ten id o de la d irecci n $ 0 0 0 1 se p u e rto ; con un u n o l g ic o en c u a lq u ie ra de
e fe c t a so bre el la tc h d e l re g istro de d ato s su s b its se p ro g ram a e l p u erto c o rre sp o n d ie n
P T B x; pero cu an d o el reg istro D D R B x est te co m o s a lid a , m ie n tra s q u e con un cero l
en cero l gico , la le c tu ra de d ic h a p o sici n es g ic o se d e s h a b ilita el b u ffe r d e sa lid a y se p ro
el n ivel de v o ltaje p resen te en el te rm in a l. g ra m a com o e n tra d a .

PTBx

Hacia el mdulo de
convertidores A/D

Figura 18.6 C onfiguracin interna en bloques del circu ito d e l puerto B

1*. Curso p rctico sobre M icrocontroladores


Direccin del registro PTD: S0003 U na vez se ejecute la accin del reset,
B it 7 6 5 Bit 0 el registro D D R D ser m odificado por la
L ectura:
PTD7 PTD6 PTD5 PTD4
C P U borrando todos sus b its de control y
PTD3 PTD2 PTD1 PTD0
E scritura: configurando todo el puerto D com o en
Reset: No es afectado trada. En la fig u ra 1 8.7 se resum en las d i
F u nciones
ad ic io n a le s :
LED LED LED

ADC8
LED

ADC9
A D C 10
,: 4.;-
A D C 1'
recciones, las caractersticas y las funcio
nes alternas propias del registro de datos
del puerto D (PT D ) y del registro de d i
TCH1 TCHO n reccin de datos D (D D R D ).
4 - 1 El puerto D tiene adem s otro regis
D ire c c i n d e l re g is tro D D R D: SOOQ 7 tro que nos perm ite h ab ilitar las resisten
B it 7 6 5 4 3 2 1 BitO cias p u ll-u p internas y los am plificadores
L e c tu ra :
DDRD7 DDRD6 DDRD5i DDRD4 DDRD3 DDRD2 DDRD1 D D R D o j de corriente de drenador abierto, asocia
E scritura:
dos con los term inales P T D 6 y P T D 7; es
Reset: a o 0 0 0 0 0 conocido com o el registro de control del
F ig u ra 1 8 .7 D efinicin de los registros PTD y DDRD puerto D (P D C R ). En la f i g u r a 18.8 se
m uestra este registro.
D ire c c i n del re g is tro PDC R:S0O0A
Bit 7 6 5 4 3 2 1 Bit 0
L e c tu ra :
En la fig u ra 1 8 .9 se ha d ib u jad o la
0 0 0
0 uo L l/ Ww U / auL U Wn U b nr l U wr l i r f I m
I U r u oJ co n figu raci n in tern a en b loq ues del c ir
E s c ritu ra : |
I 1 I cuito que corresponde al puerto D , a ll se
Reset: puede ver q ue, cu an d o el registro D D R -
b its h a b ilita d o re s del a m p lific a d o r d e c o rrie n te d e 2 5 m A
S LO W D x: D x est en uno l gico, la lectu ra de la d i
Bit en 1: habilita el amplificador reccin $ 0 0 0 3 se efecta sobre el registro
Bit en 0: desconecta el amplificador
PTD PU x: bits habilitadores de las resistencias pull-u p de PTD 6 y PTD7 de datos P T D x; pero cuando el registro
B it e n 1 : conecta la resistencia pult-up de 5k D D R D x est en cero l gico, la le c tu ra de
B it en 0: desconecta la resistencia pull-up
d ich a p o sici n corresponde con el nivel
F ig u ra 1 8 .8 D efinicin d e l registro de c o n tro l de pue rto D (PDCf) de v o ltaje presente en el term in al.

PTDx

PTD [0:3] al m dulo convertidor A/D


P T D [4:5]a l m dulo tem porizador

F ig u r a 1 8 .9 C onfiguracin interna en bloques deI circu ito d e l p u e rto D

Curso p rctico sobre M icrocontroladores (S tM IK in n . 183


L e s R e l i e s e L a s n u c a c u u tra L a ia L -a s LiJ|JLi lu Id u ia ia L c i

PARA SABER MS
Programacin de puertos bidireccionales
Ya que todos los p in e s de los puertos de los m icrocontroladores M otorola pueden tra b a ja r com o entradas o
salidas program ables, es im portante saber que el registro de datos, de cu a lq u ie r puerto PTA, PTB o PTD,
puede se r e scrito o grabado con un nuevo dato en cu a lq u ie r m om ento y sin im p o rta r el estado de los bits de
co n tro l de los registros que definen la direccin de los datos en el puerto DDRA, DDRB y DDRD.

Por lo anterior, es im po rta n te que a la hora de d e sarro lla r la ru tin a de program acin de una ta re a que
involucre los puertos, el p ro g ra m a d or no olvide u b ica r p rim e ro las instrucciones o ru tinas que se escriben
sobre el registro de datos del puerto, antes de ca m b ia r los b its de control del registro de direccin de datos
de 0 a 1 {de en tra da a salida). De esta form a, se e vita que el puerto arroje datos no esperados durante el
ca m b io de direccin de en tra da a salida que puedan a fe c ta r el co m p o rta m ien to de los dispositivos p e rif ri
co s externos con a lta velocidad de respuesta.

El su m ario de to d as las c a ra c te rstic a s y P T D , de los m ic ro c o n tro lad o re s d e la fam i-


fu n cio n es p rin c ip ale s y c o m p artid as de los tres lia 6 8 H C 0 8 d e M o to ro la, se m u e stra en la
reg istro s d e d ato s de los p u e rto s P T A ,P T B y fig u ra 1 8 .1 0 .

Puerto A
PTAPUE DDRA PTA Configuracin Acceso al DDRA Acceso al PTA
(B it) (B it) (B it) del pin l/O Lectura o escritura Lectura Escritura
1 0 X Entrada de Vd q O) DDRA6a DDRAO Pin PTA6 a PTAO
0 0 X Entrada de Hi-Z DDRA6a DDRAO Pin PTA6 a PTAO'2'
X 1 X Salida DDRA6a DDRAO PTA6a PTAO PTA6a PTAO
( 1): el pin de en trada o salida se sujeta a V D D por m edio de la resistencia
interna de p u ll- u p
Puerto B
DDRB PTB Configuracin del Acceso al DDRB Acceso al PTB
(B it) (B it) pin l/O Lectura o escritura Lectura Escritura
0 X Entrada de Hi-Z DDRB7 a DDRBO Pin PTB [7:0](2>
1 X Salida DDRB7 a DDRBO Pin PTB[7:0]

Puerto D
DDRD PTD Configuracin Acceso al DDRD Acceso al PTD
(B it) (B it) del pin l/O Lectura o escritura Lectura Escritura
0 X Entrada de Hi-Z DDRD[7:0] Pin PTD[7:0]
1 X Salida DDRD[7:0] Pin PTD[7:0]

X: valor indefinido
Hi-Z: pin en alta im pedancia
(2): la escritura afecta al registro de datos, pero no afecta la entrada
F ig u ra 18.10 Resum en de todas las caractersticas y funciones definidas para lo s p uertos A, B y D

*
< M IK < IIT s . Curso prctico sobre M icrocontroladores
'/
/

EL OSCILADOR Y EL R E S E T , EN LOS
MICROCONTROLADORES HC08 DE
__________MOTOROLA ___
La ejecu ci n d e la secu en cia correcta d e las tareas p ro gram ad as
y la m a y o ra d e fu n cio n es q u e se llevan a cab o en los m d u lo s
in tern o s d el m icro co n tro lad o r, se d esarro llan d e acu erd o a cad a
u n o d e los p erio d o s d e la se al d e reloj g e n e rad a desde el m
d u lo del oscilador, a p a rtir d e co m p o n en tes externos.

El r e s e t es la se al q u e g o z a d e la m a y o r je ra rq u a d e n tro d el
c o n ju n to de in te rru p c io n e s d isp o n ib le s e n los m ic ro c o n tro
lad o res d e c u a lq u ie r fa m ilia , e lla le d e fin e al p ro g ra m a d o r u n
lu g a r p a ra e l in ic io d e la e je c u c i n d el c d ig o d el p ro g ram a.
*
Curso p rctico sobre M icrocontroladores e j i l O TTs*. 185
E l e s d l& ia i* y aL lv& L a i Las lu L a m e u L itiu L c i a la s UCQc d a W k t a u la

elctrico; m ientras que el otro lo hace por m edio de


Si lu gar a dudas, uno de los m dulos perifricos una red conform ada por una resistencia y un con
internos de m ayor im p o rtan cia es el oscilador, densador R C ; y los dos sistemas com parten las m is
ste genera las seales de reloj que definen la ve mas entradas externas {pines O S C l y O SC 2) asig
lo cid ad de ejecucin del program a por p arte del nadas en el m icrocontrolador para la conexin ex
dispositivo, y en ellas se basan todas las cuentas terna del cristal, el resonador, o la red RC.
de tiem po que se hacen dentro del m icrocontro
lador. Segn el periodo de oscilacin (o fase) de
esta seal, se sincronizan, ejecu tan, y evalan to
das las tareas que en el in terior de ste se desarro El circu ito tpico de este m dulo es un oscilador
llan ; tales com o: los ciclos bsicos de bsqueda y con com puertas en configuracin P ie r c e , el cual
cap tu ra, de ejecucin o decodificacin de la ins ofrece m u y buenas caractersticas de estabilidad
truccin, de lectura, y de escritura. dentro de la am p lia gam a d isp o n ib le de oscila
dores d igitales para cristal piezoelctrico. En la
El m dulo del oscilador est construido inter fig u ra 19.1 se m uestra el circuito in tern o sim p li
nam ente con los circuitos, registros y compuertas ficado del m dulo del oscilador con cristal exter
necesarias para generar las seales de reloj requeri no, y la conexin l gica entre sus partes.
das por la C P U con gran estabilidad, y con el ade
cuado nivel de voltaje y frecuencia. Los m icrocon Para la co n figu raci n del o scilad o r a la fre
troladores M otorola en funcin de su referencia, c u en cia necesaria y con la estab ilid ad ap ro p ia
poseen uno de los dos sistemas de oscilador activo, d a, se requieren cinco com ponentes externos,
uno de ellos genera la seal de reloj a partir de un tal com o se m uestra en el c ircu ito tp ico de la
cristal de cuarzo XTAL o de un resonador piezo- fig u ra 1 9 .1 , y stos son:

MDULO DEL
Desde el SIM OSCLADOR

186 H e H I T , ,. Curso p rctico sobre M icrocontroladores


, ste puede tener una frecuencia de reso puede ten er u n a to leran cia de hasta el 10%
nancia m xim a de 32M H z, y una capacitancia y su valo r tp ico es 10M Q ; su fu n ci n con
equivalente C L entre 5 y 40pF. Su conexin con siste en fac ilita r el arran q u e de la oscilacin
el mdulo interno del microcontrolador se hace con cu alq u ier cristal o resonador, u n a vez que
a travs de los terminales O S C l y O SC2. el c ircu ito es alim en tad o y h ab ilitad o desde
la C P U . Su u b icaci n es en el lazo de reali
, ste debe tener una m en taci n , entre la en trad a y la salid a del
estrecha tolerancia (m enor al 5% ), y su valor m d u lo oscilador, o sea en tre los term in ales
tpico debe ser alrededor de dos veces la capa O S C l y O SC 2.
citancia equivalente del cristal o del resonador.
Su conexin con el m icrocontrolador se hace ILalMCULla 1 ti. f ( ( 11LUilu IICI.l IVSj
por m edio de la entrada O S C l, que es la en sta puede tener una tolerancia de hasta el 10%
trada del oscilador interno. y slo se requiere cuando el oscilador va a traba
jar a una frecuencia baja (inferior a 1M H z); tal
, ste como se requiere en los diseos estndar de los
debe tener una estrecha tolerancia (m enor al osciladores digitales en configuracin Pierce. Si
5% ), y de la m ism a forma que para C l , su valor no se utiliza, se sustituye por un corto circuito.
tpico debe ser alrededor de dos veces la capaci
tancia equivalente del cristal o del resonador. M dulo oscilador con red RC
Usando un condensador ajustable de baja tole
rancia en el lugar de C 2 , se podr sintonizar El circuito oscilador de este m dulo usa una red
cualquier frecuencia no estndar de trabajo in externa conform ada por u n condensador y una
ferior a la de resonancia del cristal, para los desa resistencia, y circuitos internos q ue controlan y
rrollos que as lo requieran; el condensador de convierten la seal de carga y descarga del con
sintona se debe conectar al circuito del oscila densador en un tren de pulsos rectangulares, sin
dor en su salida, o sea a travs del terminal O SC 2. distorsin, y relativam ente estables.

Desde el SIM Hacia el SIM Hacia el SIM

20SC0UT OSCOUT t
I RCCLK
------- ' - J f l

MCU

COMPONENTES f ig u r a 19.2 C ircuito interno sim p lifica d o de l


EXTERNOS m dulo deJ o scilad or con re d RC externa

Curso prctico sobre M icrocontroladores


LEI u s d U m L - v eL f i i a ; e n L ee l u t ^ i ^ L i i i u L j s m L i S L C Q c l i e LvciL-aLe

En trm inos de estab ilidad y precisin, los R C ); por m edio de ella el m dulo del sistema
osciladores cu ya frecuencia de salida depende de de integracin SIM del m icrocontrolador, ha
una red con una resistencia y un condensador bilita o in hab ilita com pletam ente el funciona
(R C ), siem pre estarn sujetos a la calid ad de d i m iento de cualquiera de los osciladores.
cha red; en el m dulo del oscilador R C de esta
subfam ilia de m icrocontroladores se requiere que
los com ponentes externos sean de precisin (con Esta seal es la salid a de reloj del
tolerancia inferior o igual a 1% ) para obtener una m dulo oscilador con cristal y su periodo est
seal de reloj con una to leran cia del 10% o m e dado tp icam en te por la frecuencia nom inal
nos. La conexin de la red R C , con el m dulo del cristal de cuarzo (FV f.IV);
ALL K el ciclo de servi-
interno del oscilador, se hace a travs del term i ci de la seal depender de la calid ad y los
nal O S C l; m ientras que en el term in al O SC 2 parm etros de fabricacin del cristal, y no se
queda h ab ilitad o el puerto b id ireccio n al PTA6 o debe olvidar q ue su frecuencia y am p litu d se
d isponible la seal de salida de reloj del oscilador rn in estables d u ran te el breve periodo de
R CC LK . tiem po que dura el ciclo de arran q u e (sta rt-
up) del m icrocontrolador, a p artir de la co
En la fig u ra 1 9.2 se m uestra el circuito in nexin a la alim en tacin .
terno sim p lificado del m dulo del oscilador con
red R C externa, y la conexin l gica entre sus
partes. Esta es la se a l de sa lid a d el m
d u lo o sc ila d o r R C y su fre c u e n c ia y e sta
En la tabla 19.1 se resume el com portam iento b ilid a d son d ire c ta m e n te p ro p o rcio n a le s a
de los term inales disponibles en el m icrocontrola la c o n stan te de tiem p o d e la red e x tern a
dor para la configuracin del m dulo del oscilador. R C , y a la p rec isi n y c a lid a d de sus co m
p o n en tes re sp ec tiv a m e n te .
S eales de reloj internas
En las figuras 19.1 y 19.2 se pueden ver tam bin sta es la
las princip ales seales que intervienen y se o rig i m ism a seal de salid a X T A L C L K R C C L K
nan en cada m dulo oscilador, y que son usadas de los m d u lo s oscilad o res co rresp o n d ien
por la C P U , el bus interno, el S IM (system in te tes, y es en viad a a travs de un b u ffe r h acia el
g r a r o n m o d u le ), y otros m dulos internos du m d u lo in tern o d el sistem a de in tegraci n
rante su operacin; stas son: (S IM ), a ll se usa p ara c alc u la r los ciclos de
tiem po que d eterm in an el co m p o rtam ien to
d el m d u lo de v ig ila n c ia C O P (C om pu ter
Esta seal cum ple la m ism a fun o p e r a tin g p r o p e r ly ) .
cin en los dos m dulos osciladores (XTAL y
Esta se
al se obtiene a p artir d e un bloque que re
Tipo de
F uncin del pin 0SC2 cibe y d ivid e por dos la frecuencia de la se
o scila d o r al 2 0 S C 0 U T , y se enva al m dulo SIM
Oscilador con XTAL Seal 0SC1 invertida para que ste la d istrib u ya entre los dem s
Oscilador con RC Controlado por el b it PTAEN del registro m dulos internos que la requieran dentro
PTAPUER ($0D) del m icrocontrolador. Para obtener la seal
PTA6EN = 0: salida RCCLK
del reloj, usada por el bus interno de la C P U ,
PTA6EN = 1: Lnea de puerto PTA6
el m dulo SIM divide nuevam ente por dos
Tabla 19.1 C onfiguracin y funciones asignadas a lo s pines d e l
o scilador en los m icrocontroladores 68HC08 esta seal, con lo que se d eterm in a que la
* *
188 < iM ib z in r Curso p rctico sobre M icrocontroladores
Teora .y

frecuencia del reloj del bus interno de la C P U La tabla 19.2 es un sum ario de las m agnitu
(Fop) sea siem pre la cuarta parte de la fre des tpicas q ue se deben considerar a la hora de
cuencia de la seal del oscilador R C o XTAL configurar los mdulos de oscilacin de los m i
(X TA LCLK R C C L K ). crocontroladores M otorola 6 8 H C 0 8 y 68H RC08;
la tabla se m uestra para los dos voltajes nom inales
C a ra c te rs tic a s e l c tric a s d e lo s d e alim entacin estandarizados: 5 y 3 V C C .
m d u lo s o s c ila d o re s
A unque los m icrocontroladores M otorola cuen Para calcu lar los com ponentes externos de
tan con una am plia tolerancia para el voltaje de la red R C , se recom ienda usar un condensador
alim entacin (entre 3 y 5V ), esto no quiere decir externo de lOpF con b aja tolerancia, elegir una
q ue m uchas de sus caractersticas elctricas fun frecuencia, y calcular la resistencia por m edio de
dam entales para su operacin no sean afectadas u n a de las dos curvas que se m uestran en la figu
con ios cam bios, tal com o sucede con la frecuen ra 1 9 .3 : en la figura se m uestran las curvas de
cia en el m dulo oscilador. resistencia contra frecuencia, q ue corresponden
con dos niveles de alim en taci n tpicos, a ll se
La frecuencia de op eracin de todas las seales puede ver con claridad la influencia del voltaje
d e reloj m an ejad as por el m icrocontrolador, es de alim en taci n en la frecuencia del reloj.
esp ecialm en te afectada p o r los cam bios en la
m agnitud de la tensin de alim en taci n , e ig u al El f E S E T e n lo s m ic ro c o n tro la d o re s
m en te, el consum o total de co rrien te de ste M o to ro la 6 8 H C 0 8
do) es funcin d irecta de la frecuencia de ope D entro de la gam a de interrupciones internas y
raci n que se elija. externas, el r e s e to in terrupcin de in icializacin
M nim o Tpico M xim o
C aractersticas S m bolo Unidad
3V 5V 3V 5V 3V 5V

Frecuencia de operacin interna F0P - - - - 4 8 MHz

Pulso bajo de reset mnimo (RST) t IRL 1.5 750 - - - | s , ns

Frecuencia del cristal, XTALCLK f 0SCXCLK - - 8 10 16 32 MHz

Frecuencia del oscilador, RCCLK f RCCLK 2 2 8 10 12 12 MHz

Frecuencia de referencia externa f 0SCXCLK de de - - 16 32 MHz

Capacidad de carga del cristal Cl


Segn el fabricante PF
Condensador fijo del cristal C1 - - 2xCL 2 x CL - - PF
Condensador de sintona del cristal C2 - - 2xC|_ 2 x C[_ - PF

Resistencia de realimentacin rb - - 10 10 - MQ

Resistencia en serie del oscilador Rs Segn la impedancia del cristal kQ

Resistencia extema del oscilador RC Calcular segn a figura 1 9.3 kQ


r ext

Condensador extemo del oscilador RC CEXT - - 10 10 - PF

Tabla 19.2 C aractersticas y especificaciones de com ponentes externos para lo s m dulos osciladores de los m icrocontroladores
68HC08 y 68HRC08.
*
Curso p rctico sobre M icrocontroladores < J M IK I/W .a. 189
Lil c s c O d iu - y e l lh i Lat LiiLaLaaal i a L a a L a a l i L d ll- li'u m u -u l'

w 14'
12
10 \ Tem peratura 25C

O
cc
cc .\
CEXT = 10 PF
------------ Con Vnn = 5V
o
O
3 6
=i

\ Co i V dd = 3V ; rext MCU

0SC1

a CEXT
<
o

10 20 30 40 50
R e s is te n c ia , R ^ x t ( k i* )

F ig u ra 19.3 Curvas d e resistencia externa contra frecuencia d e l oscilador RC, p ara e l clculo de fe x t

d el m icrocontrolador es la fuente de m ayor je to la in terrupcin ser atend id a en cualquier mo


rarq u a, esto significa que su peticin ser aten m en to , in m ed iatam en te despus de recibir un
d id a in m ed iatam en te luego de su reconocim ien nivel de voltaje en nivel bajo por el p i n de reset-,
to y validacin. en la figura 1 9 .4 se aprecia el d iagram a de tiem
pos que representa la ejecucin de un ciclo de
C ada vez que la C P U del m icrocontrolador reset al in terior del m icrocontrolador.
recibe y valida una seal de interrupcin de reset, el
m icrocontrolador es obligado a asum ir un conjun Condiciones iniciales establecidas por
to de condiciones iniciales para sus mdulos inter m edio del ciclo de reset
nos, y a iniciar la bsqueda y ejecucin de las ins U n a vez la condicin de reset externa o in terna
trucciones en un lugar predeterm inado por los fa se reconoce, in m ed iatam en te m uchos registros
bricantes para el inicio {starting address). y bits de control son grabados con los datos ne
cesarios para in iciar la ru tin a de trabajo con el
La en trada de reset no es sincrnica con el m icrocontrolador, a p artir d e una posicin y con
ciclo de ejecucin de instrucciones, y por lo tan unos parm etros definidos; m uchas de estas con-

BUS DE
D IR E C C IO N E S IN D E T E R M IN A D O SFFFE X$FFFF
D E LA C P U

BUS DE DATOS
D E LA C P U
IN D E T E R M IN A D O PCH

P IN D E R E S E T
M U E S T R E O D E L P IN D E R E S E T

F ig u ra 19.4 Diagram a de tiem pos de un ciclo de reset activado externam ente p o r m edio de la correspondiente entrada

a . Curso prctico sobre M icrocontroladores


PARA SABER MS ediciones in iciales son in d ependientes del m odo
El r e lo j y la p o te n c ia d e l m ic r o c o n tr o la d o r de operacin, y algunas estn destinadas a per
En todos los m icrocontroladores M otorola, la po m itir el arran q u e apropiado de algunos m dulos
te ncia consum ida depende directam ente de la fre internos fundam entales para la C P U ; m ientras
cu encia de operacin a la que haya sido co n fig u q u e otras, d efinen puntos de referencia entre el
rado el m dulo del oscilador, para un voltaje de program ador y la C P U q ue deben considerarse
alim entacin definido; y aunque los m icro co n trla - para ejecu tar correctam ente el cdigo de opera
dores de la fa m ilia 68HC08, a m xim a frecuencia, cin de los program as.
slo consum en 15m A, es im portante considerarlo
ya que en m uchas ocasiones el m icro co n tro la do r
Las principales acciones que se desarrollan,
puede ser parte de un gran sistem a, que h a bitu a l
u na vez que el m icrocontrolador es in icializado a
m ente en la in d u stria puede co n tener m s de un
travs del reset, se describen a continuacin .
ce ntenar de m icrocontroladores y poseer lim ita
ciones en su d isponibilidad de energa.

D espus de la ejecucin del ciclo de reset, el


La e leccin de la fre c u e n c ia ad ecu a d a de o p e ra
registro P C es grabado con las posiciones de
ci n , s ie m p re debe se r un c o m p ro m is o e n tre el
co n su m o de p o te n cia y lo s re q u e rim ie n to s en m em oria $FFFE y $FFFF, definidas para el
tie m p o de respuesta de la ta re a po r ejecutar, sta respectivo vector (u n vector representa el con
se debe e va lu a r para c a lc u la r la fre c u e n c ia de tenido de una lo calid ad de m em oria d efinid a
o p eraci n m n im a y luego c o n fig u ra r el o s c ila y asignada a u n evento externo o in terno), y
d o r del m ic ro c o n tro la d o r a ta l valor. O tro fa c to r la C P U in icia el ciclo de ejecucin o decodifi-
im p o rta n te que se debe co n sid e ra r y que est cacin de las instrucciones all contenidas, que
d ire c ta m e n te re la cio n a d o con la fre c u e n c ia del por lo general son instrucciones de salto.
oscilador, e s el d e sga ste o Ja d ism in u c i n de la
vid a til y la co n fia b ilid a d del m icro co n tro la do r, a T am bin el registro SP se g rab a con el dato
c a u sa de un a u m e n to en el co n su m o de p o te n $ 0 0 F F , u b ican d o la p ila en la p rim era p g i
c ia que se tra d u c e en un in cre m e n to de la te m na de la m em o ria d e d atos, m ien tras q u e el
p e ra tu ra del c irc u ito integrado. registro n d ice H es bo rrado a cero lgico
con el ob jetivo de h acer co m p atib le la m i
En la fig u ra se h a n d ib u ja d o las c u rv a s q u e re g raci n del cdigo de p ro gram a en tre las fa
la cio n a n el c o n s u m o de la c o rrie n te de a lim e n m ilias H C 0 5 y H C 0 8 .
ta c i n (lDD) y la fre c u e n c ia del b u s in te rn o de la
CPU (F0P) en lo s m ic ro c o n tro la d o re s 68H C 08, Todos los dems registros de la C P U asumen
p a ra los d o s v o lta je s de a lim e n ta c i n tp ic o s . un estado indeterm inado luego del reset. Sin em
bargo, algunos bits de control del registro del
cdigo de condiciones C C R , tales como la ms
cara de interrupciones I, y las banderas de los
modos de operacin ST O P y "WAIT, son pues
>
MC60HRC08jX* tos en uno y cero lgico respectivamente, para
5V inhabilitar todas las fuentes de interrupcin y
I I llevar la C P U al modo normal de trabajo.
0 7 8 9
fop0 'bus MHz;

F ig u ra 19.5 C om portam iento de la corriente de alim entacin


del m icrocontrolador con todos sus m dulos internos activos
(lDD), frente a la frecuencia de operacin del re lo j d e l bus interno En los m ic ro c o n tro la d o re s M o to ro la , la
de la CPU ( F J C P U 0 8 cu en ta con dos m odos de operacin
I *
Curso prctico sobre M icrocontroladores < E i d f # TT* . ( 191
1=1 a s c B k d i- v e l i i s M z t u Las lu a t ia iL im iliiiia L ic S LiC U c da- [ J u t e im k

d isp o n ib les para el program ador: el m odo


u su ario y el m odo m o n ito r; en el m odo m o Todas las fu en tes de in terru p c i n d el r e s e t de
n ito r la C P U tien e el m ism o co m p o rtam ien tien en in m e d ia ta m e n te la eje cu c i n de c u a l
to q ue en el m odo u su ario , excepto q ue la q u ie r in stru c c i n en curso d en tro d el m ic ro
d irecci n d efin id a para el vector d el r e s e t se c o n tro la d o r, v e cto riz an h a c ia las p o sicio n es
c am b ia p o r las posiciones reservadas $FEFE SFFFE y SFFFF, in ic ian un cic lo de r e s e t in
ySF E F F . terno q u e g rab a todos los registros de la C P U
con sus valores p o r d efecto , y restablecen las
C o n este d e sp lazam ien to la C P U in ic ia los co n d icio n es in ic ia le s en todos los m d u lo s pe
ciclo s de b sq u ed a y eje cu c i n d el c d igo rifrico s in tern o s.
desde el f i r m w a r e in tern o del m d u lo m o
n ito r y no d ire c ta m e n te en el c d ig o del El cic lo d e r e s e t se p u ed e activ ar desde d i
p ro gram ad o r. versas fu en tes in tern as y extern as a l m ic ro c o n
tro lad o r, com o son: el r e s e t externo (p i n R S T ),
El m odo de o p e ra c i n se d e fin e y es m e- el r e s e t a la co n ex i n { p o w e r -o n r e s e t P O R ), el
m o riz ad o p o r la C P U d u ra n te el fla n c o de r e s e t del tem p o rizad o r w a t c h d o g CO P, el r e s e t
su b id a d e l v o ltaje p resen te en el p i n de r e por c d ig o de o p erac i n ile g a l, el r e s e t por d i
s e t (d u ra n te la tra n sic i n d e V ss a V QD); el reccin ileg al y la in te rru p c i n de in h ib ic i n
m o d o u su ario es el m odo d e trab a jo d e fi por bajo v o ltaje LV1.
n id o por d e fec to tras la in ic ia liz a c i n del
m ic ro c o n tro la d o r, p e ro la se le c c i n d el
PARA SABER MS
m o d o m o n ito r se e fec t a lle v a n d o dos de
Validacin del reset externo e interno
su s ln e a s de p u erto s I/O de p ro p sito g e
Para q u e e l c ic lo de re s e t se a a c tiv a d o , la s se
n eral a V ss y a p lic a n d o en la e n tra d a de
ales q u e lo in ic ia n d e b e n c u m p lir c ie rta s c a
in te rru p c i n 1RQ1 un so b re v o lta je ig u al
ra c te rs tic a s de tie m p o que d e p e n d e n del o ri
a l d o b le d e V DD; en la f i g u r a 1 9 .6 se m u e s
gen de la fu e n te de in te rru p ci n . C uando la fu e n
tran g r fic a m e n te y se resu m en en u n c u a
te es e xte rn a , en el p in de r e s e t(RST) se debe
d ro la s c o n d ic io n e s p a ra s e le c c io n a r el
a p lica r un nivel l g ico cero (Vgg) d u ra n te un tie m
m o d o de o p e rac i n .
po m n im o de 7 5 0 n s , c u a n d o VDD es 5V, de
1 ,5ps, c u a n d o VDD es 3V, p a ra q u e el m d u lo
in te rn o del re s e t lo reco n o zca , v a lid e e in icie
Puertox i m u i a j y la s a cc io n e s p ro p ia s de d ic h o ciclo .
PuertoY 777777/7 \
2VDD .......................................r -
En el ca so de las fu e n te s in te rn a s, su re c o n o c i
IRQ1
Vdd ------------------------------- ' m ie n to y v a lid a c i n se in ic ia c u a n d o la CPU co
RST _____ lo c a d e sde el in te rio r y d u ra n te 1 6 p e rio d o s del
S e le c ci n d e l m o d o usuario S eleccin de l m o d o m o n ito r re lo j del bus, la e n tra d a e x te rn a RST en nivel
cero, y o tro s 16 p e rio d o s d e sp u s se in ic ia el
c ic lo in te rn o de re se t. E sta c a ra c te rs tic a del
Pin RQ1 Puerto X Puerto Y M odo
re s e t a c tiv o p o r fu e n te in te rn a , p e rm ite q u e los
- ^DD X X Usuario m ic ro c o n tro ia d o re s de la fa m ilia 6 8 H C 08 pu e
dan in ic ia liz a r s im u lt n e a m e n te , y a tra v s de
2 x V DD 0 0 Monitor
d ic h a e n tra d a , o tro s c irc u ito s in te g ra d o s , p e ri
f ric o s e xte rn os, y m icro co n tro ia d o re s esclavos,
F ig u ra 19.6 Condiciones para la seleccin d e l m odo de operacin in m e rs o s en un s is te m a c o m p le jo .
de la CPU08

Curso prctico sobre M icrocontroiadores


LECCIN 20

ORGANIZACIN DE LA MEMORIA EN
LOS MICROCONTROLADORES HC08
________ DE MOTOROLA
E n e s ta o c a si n se e s tu d ia r e l m a p a d e m e m o r ia d e los
m ic r o c o n tr o la d o r e s M o to r o la d e la f a m ilia 6 8 H ( R ) C 0 8 .
E n l, se m u e s tr a la d is t r ib u c i n d e la m e m o r ia d is p o n i
b le y d ir e c c io n a b le la c u a l e s t c o n f o r m a d a p o r la m e m o
r ia d e d a to s R A M , la d e p r o g r a m a c i n R O M , y e l re a d e
m e m o r ia R O M d e l p r o g r a m a m o n ito r.

U n a c a r a c te r s tic a p a r tic u la r d e los m ic r o c o n tr o la d o r e s d e


e sta f a m ilia , es la d is p o n ib ilid a d p a r a el u s u a r io d e u n p ro
g r a m a m o n ito r re s id e n te e n la m e m o r ia (f i r m w a r e ), q u e
f a c ilit a la e je c u c i n y d e p u r a c i n d e p ro g r a m a s a trav s
d e l p u e r to s e ria l d e u n a P C .

Curso p rctico sobre M icrocontroladores ( g M / K J f T T s . 193


la m em o ria en ios m icroco ntrolad ores HC08 de v

MAPA DE LA MEMORIA
$0000 Registros l/O
64 bytes
S003F
$0040 Reservados por la CPU
f 64 bytes
S007F
$00 80 RAM
128 bytes
SOOFF
$0100 Sin establecer $0100
601 60 bytes Sin establecer
I 607 20 bytes
SEBFF SF5FF
SECOO ROM del usuario ROM del usuario SF600
MC68H(R)C08JL3/JK3 MC68H(R)C08JK1
4 09 6 bytes I
SFBFF 1536 bytes SFBFF
SFCOO ROM del m onitor F ig u ra 20.1 D istribucin d e l rea de la m em oria en los
512 bytes m icrocontroladores 68H(R)C08JK 1/JK3/JL3
SFDFF
SFEOO Registro de estado del break (BSR)
SFE01 Registro de estado del re s e t{RSR) controladores 68H (R)C 08JL3/JK 3, y de 1.536
SFE02 Reservado (UBAR) b ytese n los microcontroladores 68H (R )C 08JK 1.
Registro de banderas de control del >re,a/c (BFCR)
2. El lugar para los 128 b ytes de m em oria de d a
SFE03
tos R A M disponible en las dos subfam ilias de
SFE04 Primer registro de estados de la interrupcin (INT1)
m icrocontroladores JK y JL .
SFE05 Segundo registro de estados de la interrupcin (INT2)
3. El rea de m em oria asignada para la tabla de
SFE06 Tercer registro de estados de la interrupcin (INT3)
vectores definidos por el program ador, la cual
SFE07 Reservado por la CPU
se com pone de 4 8 bytes.
SFE08 Reservado por la CPU
Reservado por la CPU
4. El espacio de memoria de solo lectura (RO M ), dis
SFE09
tribuidos en dos reas de 512 y 448 bytes cada una.
SFEOA Reservado por la CPU
SFEOB Reservado por la CPU
Asignacin de registros dentro del rea
SFEOC Registro de direccin del break alto (BRKH)
de m em oria
SFEOD Registro de direccin del break bajo <RRKL)
El conocim iento del propsito, la ubicacin exac
SFEOE Registro de estado y control del break (BRKSCR)
ta, la disposicin y la funcin definida para cada
SFEOF Reservado por la CPU uno de los bits que conforman los registros de da
SFE10 ROM del monitor tos, control o estado del microcontrolador, se de
44 8 bytes
SFECF ben tener presentes para controlar y supervisar co
SFFDO Vectores del usuario rrectamente todas las funciones programadas en l.
i 48 bytes
SFFFF
En la figura 2 0 .2 se muestra en detalle la distri
O rganizacin de la m em oria bucin y asignacin que se le ha dado al espacio de
La C P U 0 8 de esta fam ilia de m icrocontrolado memoria direccionable por el microcontrolador, con
res posee un bus de direcciones de 16 bits con el tenido entre las direcciones $0000 y $003F; en l se
que se pueden acceder basta 6 4 K b ytes del rea de encuentran contenidos la gran m ayora de registros
la m em oria. El m apa de la m em oria que se pue de control, de estado y de datos. Adicionalmente,
de apreciar en la fig u ra 2 0 .1 , m uestra su o rgan i algunos registros reservados por la C P U y de prop
zacin, y en l se in cluyen las siguientes reas: sito especial, se han ubicado en las ltimas 16 posi
ciones de memoria localizadas entre SFEOO y $FEOE
1. El espacio de m em oria R O M disponible para el y la ltim a posicin SFFFF que corresponde al
usuario, que es de 4.0 9 6 bytes para los micro- registro de control del C O P (C O P C T L ).

< m M u ir s \ Curso prctico sobre M icrocontroladores


REGISTROS DE PROPSITO ESPECIAL

O ireccin N o m b re del reg istro B it 7 6 5 4 3 2 1 B it 0

Lectura:
$0000 Registro de datos del puerto A PTA6 PTA5 PTA4 PTA3 PTA2 PTA1 PTAO
Escritura: I
(PTA)
Reset: N o s e a fe c ta p o r e l r e s e t

Lectura:
$0001 Registro de datos del puerto B PTB7 PTB6 PTB5 PTB4 PTB3 PTB2 PTB1 PTBO
Escritura:
(PTB)
Reset: N o s e a fe c ta p o r e l re s e t

$0002 Sin establecer

$ 00 03 Registro de datos del puerto D 1erlura PTD 7 PTD6 PTD 5 PTD4 PTD3 PTD2 PTD1 PTDO
(P T D ) Esentura:
Reset: N o s e a fe c ta p o r e l re s e t

Lectura: I n I
$0004 Registro de direccin de datos A r ---------------- D D R A 6 DDRA5 DDRA4 DDRA3 DDRA2 DDRA1 DDRAO
(D O R A ) Escn1ura: H d
Reset: 0

$0005 Registro de direccin de datos B Lec,ura: DDRB7 DDRB6 DDRB5 DDRB4 DDRB3 DDRB2 DD R B1 DDRBO
(DDRB) Escritura:

Reset: o

$0006 Sin establecer

Lectura:
$0007 Registro de direccin de datos D DDRD7 D0R D 6 DDRD5 DDRD4 D 0R D 3 DDRD2 DDRD1 DDRDO
Esentura:
(DDRD)
Reset:

$0008
I Sin establecer
$0009

Lectura: 0 I 0
SOOOA Registro de control del puerto D _ SL0W D 7 S L0W D 6 PTDPU7 P TD P U 6
(PDCR) Escrrtura:l
Reset: 0 O

S000B Lectura:
Sin establecer
Escritura:
SOOOC

Registro hbilitador de entradas Lectura: PTA6EN PTAPU E6 PTAPUE5 PTAPU E4


$000D PTAPUE3 P TA P U E 2 PTAPUE1 PTAPUEO
p u ll-u p d el p uerto A Escritura:

Reset: 0

S000E Lectura:
i Sin establecer
Escritura:
$0019

Registro de control y estado del Lectura: | 0


1 0 0 0 KEYF 0 IM A S K K M ODEK
$001A
teclado Escritura: ACKK
(KBSCR)
Reset: 0 0 0 0 0 0 0 0

Registro habilitador de Lectura: 0


S001B interrupciones del teclado Escritura:
_| K B IE 6 K B IE 5 K B IE 4 K B IE 3 K B IE 2 KBIE1 KBIEO

Reset: 0

Curso p rctico sobre M icrocontroladores


_
w*
^
la m em o ria en los m icrocontroladores
m ------ i

D ire c c i n N o m b re d e l re g is tro B it 7 B it O

L e c tu ra :!
$001 c Sin establecer
E scritu ra :!

I 0 I 0 I 0 I 0 I IRQF1 0 IMASK1 M0DE1


S001D ACK1
control de IRQ Escritura:
(INTSCR)
feset: 0

Lectura:
$001E Registro de configuracin 2 IRQPUD R R LVIT1 LVITO R R R
Escritura:
(C0NFIG2)*
Reset: 0 0 0 0** 0 '* 0 0 0
Lectura
$001F Registro de configuracin 1 COPRS R R LVID R SSREC STOP COPD
Escritura:
(CONFIG1)*
0 0 0 0 0 0 0 0
por medio del reset a la conexin (POR) las interrupciones LVITI y LVtTO se colocan en 0 lgico
Lectura: TOF 0
$0020 Registro de estado y control del TIM TOIE TSTOP PS2 PS1 PSO
(TSC)
Escritura: 0 TRST
0 0 1 0 0 0 0 0
| B it 15 | Bit 13 j Bit A2 | B ittO | Bit 9 | Bit 8 |
$0021 Registro alto del contador del TIM Escritura:
(TCNTH) i s y
0 0 0 0 0 0 0 0

^ B i,3 j B it 2 j r j o _ |
$00 22 Registro bajo del contador del TIM Escritura: g g
(TCNTL) E S
0 0 0 0 0 0 0 0

Registro alto del m dufo del Lectura


| Bit 15 | S/f14 | B it 13 B it 12 S /M 1 Bit 10 Bit 9 B it 8
$0023 contador del TIM Escritura:
(TMODH)
1 1 1 1 1 1 1 1

Registro bajo del m dulo del Lectura:


| B it 7 BitS Bit 5 B it A B it 3 Bit 2 B it\ BitO
$0024
contador del TIM Escritura

< D L> Reset: 1 1 1 1 1 1 1 1

Registro de estado y control del Lectura I CHOF ELSOA TOVO CHOMAX


$0025 CHOIE MSOB MSOA ELSOB
canal 0 del TIM Escritura 0
<T S C 0 > ***,: 0 0 0 0 0 0 0 0
Lectura
$0026 Registro alto de! canal 0 del TIM F it B it 15 Bit 14 B it 13 Bit 12 Bit 11 e /n o BitS B it8
(TCHOH)
Reset: Indeterminado despus del reset

$00 27 Registro bajo del canal 0 del TIM Lectura: Bit 7 B it 6 BitS Bit 4 Bit 3 Bit 2 B it 1 Bit O
(TCHOL) Escritura:

Reset: Indeterminado despus del reset

Registro de estado y control del Lectura CH1F CH1IE 1 ~ l MS1A ELS1B ELS1A TOV1 CH1MAX
$0028
canal 1 del TIM Escritura: 0
(TSC1)
Reset: 0 0 0 0
Lectura:
$0029 Registro alto del canal 1 del TIM Escntura: B it 1 5 B it 14 Bit 13 Bit 12 S/11 Bit 10 Bit 9 Bit 8
(IL-rt Irt)
Reset: Indeterminado despus del reset

Registro bajo del canal 1 del TIM Lectura


Bit 7 Bit& Bit 5 B it 4 B it 3 B it 2 Bit 1 B it O
S002A (TCH1L) Escritura:

Reset: Indeterminado despus del reset

Curso prctico sobre M icrocontroladores


Teora

D ire c c i n N om bre del re g is tro BilT B itO

S002B
Sin establecer
i
S003B

Lectura:! COCO
S003C Registro de estado y control del ADC AIEN ADCO CH 4 CH3 CH2 CH1 CHO
Escritura: [
(ADSCR)
R eset: 0

Lectura: I AD7
S003D Registro de datos del ADC E sc ritu ra :!
(ADR)
Reset: In d e te rm in a d o d e s p u s d e l re s e t

Lectura
$0Q3E Registro de entrada de reloj del ADC
(ADICLK) Escritura

R eset o

Lectura:
S003F Sin establecer
Escritura:

Lectura: SB S W
SFEOO Registro de estado del break R R R R R R R
Escritura: V e r n o ta
(BSR)
Reset: 0
NOTA: E scribiendo un 0 lgico se borra e l b it SBSW

Lectura: POR PIN I COP ILOP ILAD M ODRST LVI


SFE01 Registro de estado del reset
Escritura _____ _____
(RSR) I I
R eset: 1

Lectura:
$FE02 Reservado c R R R R R R R R
Escritura:

Lectura:
BCFE
Ll_
LU
o
co

Registro de las banderas de control R R R R R R R


Escritura:
del break
(BFCR) R eset: 0

Lectura: IF 5 IF4 IF3 IF1 0 0


SFE04 Primer registro de estado de las 0 0
interrupciones Escritura: R R R R R R R R
(INT1) Reset: 1 0 0 0 0 0 0 0

Segundo registro de estado de las Lectura: IF 1 4 0 0 0 0 0 0 0


SFE05
interrupciones Escritura: R R R R R R R R
(INT2) R eset: 0 0 0 0 0 0 0 0

Lectura: 0 0 0 0 0 0 0 IF1 5
SFE06 Tercer registro de estado de las Escritura: R R R R R R R R
interrupciones
(INT3) Reset: 0 0 0 0 0 0 0 0

SFE07 Lectura:
Reservado R R R R R R R R
1 Escritura:
SFEOB

Lectura:
$FE0C Registro de direccin del b rea k alto Bit 15 B it 1 4 Bit 1 3 Bit 1 2 Bit 11 B it 1 0 Bit 9 Bit 8
Escritura:
\RDRnKi\Hn1;
Reset: 0 0 0 0 0 0 0 0

Lectura:
B it 7 Bit 6 B it 5 Bit 4 Bit 3 Bit 2 B itt BitO
c/>

Registro de direccin del brea k bajo


TI
m
O
o

Escritura:
(BRKL)
Reset: 0 0 0 0 0 0 0 0

Curso p r ctico sobre M icrocontroladores M IK < IIT > 197


D ire c c i n N o m b re d e l re g is tro B it 7 B it 0

SFEOE Registro de estado y control del Lectura:


break Escritura:
(BRKSCR) Reset: o

SFFFF Registro de control del COP Lectura: B y te b a jo d e l v e c to r d e l re s e t


(COPCTL) Escritura: L a e s c ritu r a d e c u a lq u ie r v a lo r b o rra el c o n ta d o r d e l CO P

Reset: N o e s a fe c ta d o p o r e l re s e t

Sin establecer Reservado

F ig u ra 2 0 .2 Localizacin y asignacin de los registros y bits de control, estado y datos, que conform an e l m apa d e la m em oria de los
m icrocontroladores 68H(R)C08JK 1/JK3/JL3

T a b la d e v e c to re s n a r y recup erar eficazm ente los registros de la


En la ta b la 2 0.1 se m uestran los 16 vectores de C P U d u ran te los llam ad o s, saltos, e in terru p
finidos para las in terrupcion es en los m icrocon ciones. La p g in a cero de la R A M est confor
troladores de esta fam ilia; su funcin, su direc m ada por los prim eros 128 bytes-, sta provee al
cin exacta, y su nivel de prioridad son de gran u su ario de un espacio id eal para el acceso fre
im p o rtan cia a la hora de atender los llam ados de cuen te de v ariab les globales d el p ro gram a y un
in terrupcin internos y externos solicitados por acceso rp id o a las in stru ccio n es por m edio de
la C P U ; estos vectores se encuentran en 48 posi d ireccio n am ien to directo.
ciones de m em oria de 16 bits cada una. En la
tabla se puede ver tam bin la p rioridad de cada M e m o ria d e p ro g ra m a d e so lo le c tu ra
vector la cual es el parm etro q u e define el orden RO M
de atencin que la C P U le dar a cada una de En esta rea de m em oria de 8 bits definida entre
ellas en los casos cuando su activacin pueda lle las direcciones SE C 00 y SFBFF (4 09 6 bytes) para
gar a ser sim u ltn ea ante cu alq u ier evento in ter los m icrocontroladores 6 8H (R )C 08JK 3/ JL 3, o
no o externo. entre las direcciones SF 600 y $FBFF (13 3 6 bytes)
para los 68F 1(R )C 08JK 1, el usuario puede guar
M e m o ria d e d a to s d e le c tu ra y dar los datos que hacen parte del cdigo del pro
e s c ritu ra R A M gram a, as com o las constantes, asignaciones y eti
Las direcciones $ 0 0 8 0 y $00F F definen el espa quetas que se deben preservar dentro de la m em o
cio de m em oria R A M con una lo n gitu d de pala ria por tiem po indefinido y sin m odificacin.
bra de 8 b its ; en ella se albergan todos los datos
tem porales q ue sean requeridos por el program a En esta rea tam bin estn contenidas la ta
dor, y que requieran ser ledos y m odificados en b la de vectores de las interrupciones y el vector
cu alq u ier m om ento. del reset d e 1 m icrocontrolador, entre las direccio
nes $F F D 0 y $FFFF, tal com o se aprecia en la
D entro de esta rea se debe u b ic ar e l espa tab la 20.1.
cio para la p ila de datos (stack ), y a u n q u e su
u b icaci n pu ede ser p ro gram ad a y posea un re M e m o ria R O M del p ro g ra m a m o n ito r
gistro SP de 16 b its que le da m ovilidad dentro (M 0 N )
de los 64 K b y te del rea de m em o ria, su u b ica El p ro g ram a m o n iro r, in a lte ra b le y resid en te
cin siem pre debe estar dentro del espacio R A M , en la m em o ria R O M d en tro del m icro co n tro
y esp ecialm en te en la p g in a cero para alm ace lad o r, se ha in c lu id o en su a rq u ite c tu ra para

< M 0W t : Curso p rctico sobre M icrocontroladores


Teora

P rioridad Sm bolo D ireccin V ector

Ms baja IF15 SFFDE Vector alto de fin de conversin del ADC

SFFDF Vector bajo de fin de conversin del ADC

IF14 $FFE0 Vector alto del teclado

$FFE1 Vector bajo del teclado

IF13 a IF6 Espacio sin uso

IF5 $FFF2 Vector alto de sobreflujo del TIM

$FFF3 Vector bajo de sobreflujo del TIM

IF4 SFFF4 Vector alto del canal 1 del TIM

SFFF5 Vector bajo del canal 1 del TIM

IF3 SFFF6 Vector alto del canal 0 del TIM

SFFF7 Vector bajo del canal 0 del TIM

IF2 Espacio sin uso

IF1 SFFFA Vector aito de la RQ

$FFFB Vector bajo de la IRQ

SFFFC Vector alto de SWI

SFFFD Vector bajo de SWI

SFFFE Vector alto del reset

SFFFF Vector abajo del reset

Tabla 20.1 Tabla d e vectores de las interrupciones en los m icrocontroladores 68H(R)C08JK1/JK3/JL3

q u e el u su ario p u e d a p ro b ar la eje cu c i n co 3 . E fect a la c o m u n ic a c i n a u n a v e lo c id a d


rrecta de un p ro g ram a p o r m edio de u n a in p ro g ra m a b le e n tre 4 .8 0 0 b a u d io s y 2 8 ,8
te rfa z de c o m u n ic a c i n s e ria l d e dos h ilo s K b au d io s, y p u ed e e je c u ta r c d igo s de p ro
R S 2 3 2 y el p u erto de u n a c o m p u tad o ra com o g ra m a d esd e las m e m o rias R A M o R O M .
d isp o sitivo m aestro. Las p rin cip ales c ara cters
ticas d el m odo m o n ito r son: En la f ig u r a 2 0 .3 se m u e stra el c irc u ito
tp ic o q u e se re q u ie re p a ra tr a b a ja r con el
1. M an tien e la funcion abilidad de todos los /ri m ic ro c o n tro la d o r en el m o d o m o n ito r, en l
es, reserva un p i n (PTBO) para establecer la se h a n u s a d o u n d r i v e r de c o m u n ic a c i n
com un icaci n serial entre el m onitor y la PC . R S 2 3 2 (M C I 4 3 4 0 7 ) y u n b u ffe r d e tres e s
2 . U sa un protocolo de com un icaci n estndar tad o s (7 4 1 2 5 ) p a ra c o n tr o la r la d ir e c c i n de
m arca-espacio sin retorno a cero (N R Z ). lo s d ato s.

Curso prctico sobre M icrocontroladores < M IK < IIT s >


>,- 1 W
-- 1 1^ la m em o ria en los m icrocontroiadores

Interruptor de
(Nota 2) V d d + v HI reset
-
RST

RQ

VDD

VSS

0SC1

0SC2

HC08JL3

HC08JK1
HC8JK3
PTB3

PTB0

NOTAS:
1. Con SW1 en posicin A. el reloj del bus es igual
al reloj del oscila dor d ividido por cuatro. PTB1
Con SW1 en p o sicin B, e l re lo j de l bus es
igual al reloj del oscilador d ividido por dos. PT82
2. VH| es aproxim adam ente igual a VDD.

3. El os cila d o r externo debe tene r un ciclo de


se rvicio igua l al 50% .

F ig u ra 2 0 .3 C ircuito tpico para e stablecer e l uso d e l m odo m o nitor

Acceso al m odo m onitor ig u a l a V DD +VHr (V H) p u ed e e sta r en tre


La ta b la 2 0 .2 resum e las c o n d icio n es q u e se 0 ,7 x V dd com o valor m n im o , y V DD com o
deben c u m p lir p ara e n tra r al m odo m o n ito r. m x im o ), excitar la en trad a de reloj externa
Para e n tra r a d ich o m o d o d e trab ajo , de acu er a travs de O S C l con una frecuencia igu al a
do con la fig u ra 2 0 .3 , el m icro co n tro lad o r re 4 ,9 1 2 3 M H z , y llevar el p in de en trad a PT B 3
q u ie re la a p lic ac i n de un r eset a la co n ex i n a un nivel bajo (0 lgico).
(p o w e r -o n r eset P O R ), lu ego de h ab er c u m C o lo ca r la e n tra d a ex tern a de in terru p c i n
p lid o con uno d e los dos c o n ju n to s d e c o n d i IR Q l en un n iv el de v o ltaje ig u a l a V DD
cion es q u e a c o n tin u ac i n se resu m en . +V H|, ex citar la e n tra d a de relo j extern o a
travs de O S C l con u n g en e rad o r de fre
1. C olo car la p rin cip al en trad a externa de in te c u e n c ia ex tern o aju stad o en 9 ,8 3 0 4 M H z ,
rrup ci n I R Q l, lo calizad a en el p in 1 del y llev ar el p in de e n tra d a P T B 3 a un nivel
m ic ro c o n tro lad o r, en un n iv el d e v o ltaje alto (1 l g ic o ).

Curso prctico sobre M icrocontroiadores


Teora

Fuente del reloj

PTB3

PTBO
PTB2
Frecuencia del

PTB1
IRQ1 Comentarios
y frecuencia bus

V DD + V H | 0 0 1 1 OSCl a 2 ,4 5 7 6 M H z E n tra a l m o d o m o n ito r:

4 ,9 1 5 2 M H z El re lo j e x te rn o lle g a d ir e c ta m e n te a
O S C L La c o m u n ic a c i n se e sta b le ce
VDD + Vhi 1 0 1 1 0SC1 a 2,4576 MHz a 9 ,6 0 0 b a u d io s . El te m p o riz a d o r
9,8304 MHz OOP p e rm a n e c e d e s h a b ilita d o .

V DD X X X X F re c u e n c ia d e fin id a en XTALCLK* 4

lo s m d u lo s R CC LK 4 E n tra a l m o d o u s u a rio

o s c ila d o r e s X T A L RC

Tabla 2 0 .2 Requerim ientos y opciones para e n tra r a l modo m o nitor

V ectorizacin en el m odo m onitor d e l estad o d e la e n tra d a P T B 3 , u n a vez se ha


El M C U c am b ia alg u n a s d ireccio n es d efin id as en trad o al m o d o m o n ito r. C u an d o el P T B 3
en el m odo u su ario p ara los vectores d e las in est en estad o a lto se d iv id e por 1 .0 2 4 , m ie n
terru p cio n es d el reset, el S W I, y el b rea k ; stos tras q u e c u a n d o su n iv el es un cero l gico se
son d e fin id o s a lte rn a tiv a m e n te en la p g in a d iv id e p o r 3 1 2 ; el resu m en para la seleccin
$FE , y p erm iten q u e la C P U in ic ia lic e la e je de la rata de tran sm isi n del m odo m o n ito r,
c u ci n d el c digo d el p ro gram a d esde el f i r - de acu erd o con el c irc u ito de la fig u ra 2 0 .3 .
m w a r e d el m o n ito r, y no d esde la m em o ria de
p ro g ram a d el m odo u su ario . Form atos bsicos de com unicacin del
modo m onitor
Velocidad de com unicacin del m odo En la fig u ra 2 0 .4 a , se p u ed e ap reciar que la co
m onitor m un icaci n con el p ro gram a m o n ito r se efecta
L a v e lo c id a d con la que se e fect a la tran sfe en un form ato de datos estndar de m arca-espa
re n c ia d e datos e n tre el m ic ro c o n tro lad o r y la cio sin retorno de cero (N Z R ). La velocidad de
P C , se d e fin e en fu n c i n de la frecu en cia del transm isin puede ser cu alq u ier valor estndar
m d u lo o scilad o r ac tiv o , y d ep en d e tam b in entre 4 .8 0 0 baudios y 2 8 ,8 Kbaudios.

(a) FO R M A T O DE D A TO S D E L M O N ITO R prxim

~\ M a o j ( BITO X BIT 1 )( BIT 2 X BIT 3 j BIT 4 jU r T l BIT 6 j BIT F ^ r D E ^ a o

F O R M A S DE O N D A DE M U E S TR E O D E L M O N ITO R PROXIMO
\ B I T DE i------------- v i------------- 1 i------------- 1 i----------------------------- 1 0B,I1T DE
ufc
SA5 \INICIO / BITO \ BIT 1 / BIT 2 \ BIT3 BIT4 / BIT 5 \ BIT6 / BIT7 rD E ^ INICIO

B R E A K ~ \aNBCio BITO BIT 1 BIT2 BIT3 BIT4 BIT 6 BIT6 BIT7 p a ra d a /p ^ m o '

F O R M A T O D E O N D A S D E L E C T U R A D E L M O N IT O R
E N V IA R A L
M O N IT O R

ECO DEL DATO


( D E V U E L T O A L M O N IT O R )

F ig u ra 2 0 .4 Form ato d e datos y eco durante e l ciclo de lectura desde e l m odo m o nitor

Curso prctico sobre M icrocontroladores C f e


los m icrocontroladores HC08 de M otorola

Para garantizar la transferencia lim p ia de da Com andos del m onitor


tos por m edio del d r iv e r e com unicacin, el pro En las fig u ra s 2 0 .5 se d escrib en g rficam en te
gram a m onitor hace eco de cualquier dato recibi las secuen cias de los seis co m an d o s que se usan
do, envindolo de vuelta hacia el term inal PTBO en e l m o d o m o n ito r : le c tu r a d e m e m o ria
para efectuar el chequeo de error respectivo. Esto R E A D , e sc ritu ra en m em o ria W R IT E , le c tu
se puede apreciar en la fig u ra 2 0 .4 b , all se ve que ra in d ex ad a IR E A D , e sc ritu ra in d ex ad a IW R I-
cualquier resultado de un com ando slo ser trans TE , le c tu ra d el p u n tero de la p ila R E A D S P , y
ferido luego del eco del ltim o byte del m ism o. eje cu c i n del p ro gram a R U N .

E N V IA R A L
M O N IT O R

X READ )( REA D \ A D P R . H IG H \ ADOR. MK3H j["~A D D R -LO W \ ADCTL PATA X

ECO
RESULTADO
F ig u ra 2 0 .5 a Comando de lectura del rea d e m em oria READ
E N V IA R A L
M O N IT O R

X
T
W R ITE ~ ~ X W R IT E X
I
ADOR- H IGH \ A D O R . H IG H LO W ) ^ A P D R LO W ~)( DATA )( DATA )(

ECO I
F ig u ra 2 0 .5 b Com ando d e escritura d e l rea de m em oria WRITE

E N V IA R A L
M O N IT O R '

F ig u ra 2 0 .5 c Comando de lectu ra indexada


X 'READ X X P * 1* X PATA )( d e l rea de m em oria IREAD

ECO RESULTADO

E N V IA R A L
M O N IT O R

F ig u ra 2 0 .5 d Comando de escritura indexada del \ l


rea de m em oria IW RITE X IW R ITE IW R ITE X D A IA
L 0ATA )
ECO . f
E N V IA R A L
M O N IT O R
F ig u ra 2 0 .5e Com ando de lectu ra de l
re g istro apuntador de la p ila SP (Stack
)( READSP WEAPSP X SPW 6W \ SPLO W X Pointer) desde e l m o n ito r READSP

ECO RESULTADO

E N V IA R A L
M O N IT O R

F ig u ra 2 0 .5 f Comando para la ejecucn d e l cd igo de X R UN f~ RUH j


program acin del usuario desde e l m o n ito r RUN

ECO

Figura 2 0 .5 Form ato de datos y eco durante e l ciclo de lectu ra desde e l m odo m o n ito r

i. Curso prctico sobre M icrocontroladores


EL MDULO DMA Y LOS MODOS DE
DIRECCIONAMIENTO EN LOS
MICROCONTROLADORES 68HC08
L os m ic r o c o n tr o la d o r e s M o to r o la d e la f a m ilia 6 8 H C 0 8 ,
a d e m s d e p o s e e r d ie c is e is m o d o s d e d ir e c c io n a m ie n to ,
t ie n e n u n m d u lo e s p e c ia l p a ra el a c c e so d ire c to a m e m o
r ia (D M A ); q u e , ta l c o m o e n lo s g r a n d e s s iste m a s a b ie r to s
d e c m p u to , se u sa p a r a tr a n s f e r ir r p id a m e n te b lo q u e s
d e d a to s e n tre re as y re g is tro s d e m e m o r ia .

L a c a r a c te r s tic a m s im p o r ta n te c o n q u e c u e n ta n los m i
c r o c o n tr o la d o r e s , d e s d e el p u n to d e v is ta d e l p r o g r a m a
d o r y e n c u a n to a l m a n e jo y a l p r o c e s a m ie n to d e los d a to s,
se e n c u e n tr a e n la d is p o n ib ilid a d d e v a rio s m o d o s d e d i
r e c c io n a m ie n to e in s tr u c c io n e s q u e s o p o rta n la tra n sfe
r e n c ia d e d a to s e n tr e los re g is tro s y la m e m o r ia .

Curso p rctico sobre M icrocontroladores


BH ,t..t
El uiiiulu U l A y Le m u t i u e l- d a m l i i u a i i L L m u d i Le luinudiiiiiuliiiui^UtiKt

Acceso directo a m em oria (DMA) transferencia con el D M A se efecte, este m d u


El acceso directo a m em oria D M A (D irect M e lo debe tom ar el control m aestro de todo el siste
m o r y A ccess), es un m todo rpido y eficaz que m a de buses y asu m ir tem poralm ente las fu n cio
perm ite guard ar y retirar grandes volm enes de nes de control d e la C P U ; en trm inos generales,
datos de la m em oria y alguno s registros de datos el D M A op era de dos m aneras diferentes: en ci
especiales, sin la in terven ci n de la C P U . El clo com partid o y con la C P U detenida.
D M A es un m todo que nace con los sistem as
de cm puto grandes y com plejos y los m icro- Para transferir pequeos volm enes de datos
procesadores de alro rango; afo rtunadam ente el el m todo de acceso directo a m em oria que ms
desarrollo de la tecnologa y las exigencias de los se usa es con la C P U detenida; ella le otorga tem
sistem as em bebidos de control en un solo ch ip poralm ente al D M A el control total del sistem a
(circu ito integrado) cada vez m ayores y m s fre de buses y le perm ite hacer la transferencia en el
cuentes, han im pulsado la in tegraci n dentro de m enor tiem po posible; m ientras que cuando se va
la estructura de los M C U (M icro co n tro ller Unit) a transferir un gran bloque de inform acin, el m
de funciones y m dulos perifricos de alto des todo que se usa slo roma el control de u n a parte
em peo, tal com o el D M A . del sistem a de buses y lo com parte con la C P U ,
perm itiendo as que desde sta se desarrollen las
Los m icrocontroladores de 8 bits, de la fa tareas y el procesam iento continuo de los cdigos
m ilia 6 8 H C 0 8 , son un ejem plo de la evolucin de program a sin interrupcin durante la transfe
en el m anejo de la m em oria; stos poseen un m rencia. Bajo esta condicin la velocidad del m ovi
dulo que p erm ite el coprocesam iento de datos m iento de datos se reduce, pero la C P U no detie
por m edio del acceso directo, que se conoce como ne la ejecucin de sus tareas.
el m dulo D M A 08.
El m dulo DM A08
En la fig u ra 2 1 .1 se m uestra un d iagram a de El uso del D M A es im p o rtan te d u ran te el m ovi
bloques sim p lificado de un sistem a general con m iento de datos, porque libera de funciones a la
D M A ; en este caso es claro que la arquitectu ra C P U , reduce el cdigo ejecutable necesario, in
de los buses de datos, direcciones y control, son crem enta la velocidad de respuesta, y perm ite usar
un soporte fundam ental para los m ovim ientos con m ejor eficien cia el espacio de m em oria de
de datos que se apoyan en el D M A . Para que la program a disponible. En los M C U de la fam ilia

BUS DE DIRECCIONES Y DATOS

Espacio de
d ire c c io n e s

BUS DE CONTROL Y ESTADO

Figura 21.1 D iagram a de bloques d e un sistem a sim p le con DMA

te m M in n .4. Curso prctico sobre M icrocontroladores


6 8 H C 0 S , el D M A 08 es un m dulo coprocesa- Operacin del m dulo DM A08
d o r q u e puede tom ar el control de los buses de En la figura 2 1 .3 se representa claram ente en blo
direccin y datos al co n clu ir cu alq u ier ciclo de ques el m odo de operacin del D M A ; los bloques
bus, y est diseado para p erm itir la transferen que representan las direcciones bases de las posi
cia de datos entre dos posiciones cualesquiera que ciones fuente y destino, estn conformados por
puedan ser direccionadas por la C P U . dos registros de 16 bits cada uno, en donde la C P U
coloca la direccin base antes de in iciar la transfe
El acceso al m dulo D M A 08 est basado en rencia con el D M A ; m ientras que el bloque con
una caracterstica m odular de la estru ctu ra in ter tador de b ytes est constituido por un registro que
na del M C U de la fam ilia 6 8 H C 0 8 , que perm ite lleva la cuenta del nm ero de transferencias he
desde fbrica, h ab ilitar y expandir el nm ero de chas. En condiciones norm ales, la A L U del D M A
canales de acceso directo a m em oria D M A , en aum entar en uno el contenido del contador cada
tre uno y siete canales independientes. vez que un byte com plete su transferencia, y tras el
ciclo de reset se borrar.
L a figura 2 1 .2 es u n a representacin sim
p lificad a d el m du lo D M A 0 8 q ue m uestra sus El b loq u e de lo n g itu d d e fin e , p o r m ed io
bloq ues fu ncion ales desde el p u n to de vista del d el registro d e lo n g itu d de b lo q u e, el n m ero
program ador; en l, el sistem a de control lgico de b ytes q u e van a ser tran sferid o s en u n a op e
h a b ilita el D M A y seleccio n a el co n ju n to d e re raci n p a rtic u la r del D M A , y su c o n te n id o se
gistros que se req uieren por el canal activo , m a usa p ara ser co m p arad o con el d el co n tad o r de
neja el in crem ento o d ecrem ento del registro b y tes y as d e te rm in a r el fin de la tran sferen cia.
base ap u n tad o r de d ireccion es de la fuen te y el En el D M A , la A L U es un su b sistem a de 16
d estin o , y co n tro la el m o vim ien to seguro de b its q u e se u sa p ara c a lc u la r r p id a m e n te las
datos (ver figura 2 1 .3 ).

DIRECCION DE PARA
TRANSFERENCIA ii

DIRECCIN I DIRECCIN
o n m u ta d o re s
d e l bus
r
FUENTE BASE I DESTINO BASE

r
BUS INTERNO DE L A CPU DE DATOS Y DIRECCIONES
*
Bus de 16 bits REGISTROS MULTIPLES REGISTROS, UNO
Bus de 8 b its POR CANAL POR CADA CANAL DMA
Lneas de control

F ig u ra 2 1 .2 Diagram a en bloques de l m dulo DMA08

Curso prctico sobre M icrocontroiadores (gM IK Z IIT


LzLluiiiilu Iv'l/a v lus luudus El1 (iLLiKtmillUliI^lilq cu lus lutciucuiiiiijI lllulcc lUliP

DIRECCIN BASE
DE LA FUENTE

DIRECCIN BASE
DEL DESTINO

DIRECCIN DE
TRANSFERENCIA

BUS INTERNO DE
LA CPU

F ig u ra 2 1 .3 Operacin d e l m dulo DM A08

d irec c io n es ac tu ales de la fu en te y el d estin o 5. O p c i n d e tra n sfe re n c ia d e un s lo b lo


(en un slo c ic lo ), y p ara in crem e n tar el co n q u e , o de b lo q u e s re p e tid o s en lazo de
tad o r de b y tes con cad a tran sferen cia. Bajo la s e g u rid a d .
d irecci n d el m d u lo D M A , la A L U g u a rd a la 6. L o n gitud del bloque de datos program able
d irec c i n d e la p r x im a tran sferen cia en un hasta 2 3 6 bytes.
registro tem p o ral de d ireccio n es, y, en el m o 7. Interrupcin para la C P U del fin de transfe
m en to p re c iso , d e p o s ita en el bus in te rn o rencia de datos del D M A .
(IB U S ) su co n ten id o . 8. N ivel de p rio rid ad de la transferencia con
D M A , program able.

)l ado del
Las caractersticas principales con que cuen ta el
m dulo D M A 08 son: Para describir el conjunto de registros de control y
estado que hacen parte de la configuracin y el
1. A rq u ite c tu ra m o d u la r y e x p a n s ib le p o r el control del m dulo D M A , se har referencia slo
fa b ric a n te , h a sta sie te c a n a le s in d e p e n al canal 0, ya que las funciones y el m odo de ope
d ie n te s. racin de todos los canales son iguales e indepen
2. R ata m xim a de transferencia de datos igual dientes. Estos son:
a 4 M bytes/sec. C o n la frecuencia del bus in
terno igual a 8 M H z, se transfiere un byte
cada dos ciclos de bus. Este registro se usa p ara h a b ilita r in d iv id tia l-
3. Registros separados de direcciones base para m en te c ad a c an a l, la in te rru p c i n d el D M A
la fuente y el destino, de 16 bits cada uno. p ara la C P U , y el p o rc en taje d el bu s in tern o
4. C apacidad de transferencia de un b yte (8 bits), que se va a c o m p a rtir en tre el D M A y la C P U .
o una palabra (1 6 bits). (F ig u ra 2 1 .4 )

206 C l M M U IT s ,. Curso prctico sobre Microcontroladores


PARA SABER MS:
A lg o ritm o b sico p a ra la tra n s fe re n c ia co n el m Paso 5: D efina en el re g is tro de lo n g itu d del b lo
d u lo D M A 08 que del canal 0 (DOBL), el n m e ro de
Para p ro g ra m a r la tra n s fe re n c ia de d a to s , a tra b y te s p o r tra n s fe rir.
vs del m d u lo D M A 08, se p u ede u sar el sig u ie n Paso 6: Use el registro de estado y co n tro l del DMA
te p ro c e d im ie n to co m o u n a gua, y en v is ta de (DSC) para a signar el nivel de prioridad de
que to d o s lo s ca n a le s del D M A o p eran id n tic a la tra n sfe re n c ia , a ctiva r la tra n sfe re n cia
m e n te , ste se d e s c rib ir s lo para el c a n a l 0. cclica, y h abilitar o no el DMA durante el
m odo de espera del MCU (WAIT).
Paso 1: In h a b ilite el ca n a l 0 del DMA. Paso 7: Para co n tro la r desde el so ftw a re la tra n s
Paso 2: E scriba en el re g is tro de d ire c c i n base fe re n cia de datos, coloque en 1 lgico el
de la fu e n te , la d ire c c i n del p rim e r dato /fSWIO del registro 2 de co n tro l del DMA
que debe se r ledo desde la fu e n te (DOSH (DC2). La tra n sfe re ncia com e n za r dos c i
y DOSL). clos despus de la habilitacin del canal 0.
Paso 3: E scriba en el re g is tro de d ire c c i n base Paso 8: F in a lm e n te , p a ra h a b ilita r la tra n s fe re n
del d e s tin o , la d ire c c i n de la p o sicin c ia y m a n e ja rla d e sde un p e rif ric o p o r
en d o nde se de b e e s c rib ir el p rim e r dato m e d io de una in te rru p c i n , se d e b e h a
d e s tin o (DODH y DODL). b ilita r la in te rru p c i n de fin de tra n s fe
Paso 4: A c c e d a el re g is tro de c o n tro l del ca n a l 0 re n cia , s e le c c io n a r el p o rc e n ta je de o c u
(DOC) para h a b ilita rlo , y s e le c c io n a r las pa ci n del bus y h a b ilita r el ca n a l DM A.
fu e n te s del in c re m e n to y d e c re m e n to , y Todo esto, d e s d e el re g is tro l de c o n tro l
la lo n g itu d del d a to . del D M A (DC1).

DC1 $ xx x x
B it 7 6 B it O
0: Inhabilita la interrupcin del canal O
Lectura:
BB1 BBO TECO IEC0
Escritura:
R eset: 0 0 0 0 0 0 0

Reservado Figura 21.4 R egistro 1 de con trol d e l D M A (D C I) C o n este re g istro , se p ro g ra m a n : la


p rio r id a d , el m o d o d e tra n sfe re n c ia ,
Bits BB1 BBO (selectores del ancho de banda y la o p erac i n d el D M A , cu an d o la C P U est
para el DMA) en esp era (o en m odo W A IT ); y en uno de
0 0 : Ocupa el 25% del IBUS sus b its e st la b a n d e ra q u e in d ic a c u a n d o la
de la CPU tra n sfe re n c ia se ha c o m p le tad o . (F ig u ra 2 1 .5 ).
0 1 : Ocupa el 50% del IBUS
de la CPU f/hDMAP (selector de prioridad del D M A y la CPU)
1 0 : Ocupa el 67% del IBUS 1: El D M A tiene la p rio rid ad , y
de la CPU
0: La C P U tiene la prioridad
1 I : Ocupa el 100% del IBUS
de la CPU
DSC $XXXX
5/VTECO (h ab ilitad o r de transferencia
B it7 6 B it 0
del canal 0) Lectura:
1: H ab ilitad o , y 0: Inhabilitado DMAP LO DM AW E IFCO
Escritura:
B it IECO (habilitador de la in terru p Reset:
cin del D M A para la C P U ) Figura 21.5 Registro d e estado y c o n tro l del
R e s e rv a d o DMA (DSC)
1: Habilita la interrupcin del canal 0, y

Curso p rctico sobre M icrocontroladores


EL l l l l i l i l u D LEl/L y l a U U U f e I # L L lr iIC U lU L L L llr L l.U L H l l a L U L n U L 'U L l L L U U l i u i t r S E U l i i n j

B it LO (b it h ab ilitad o r del m odo de transferencia 4. Registro de control del canal 0 del D M A (DOC)
cclica del canal 0) Por medio de los cuatro bits SD C 3 a SD C 0 de este
1: H ab ilita el m odo cclico, y registro, se calculan las direcciones base de la fuente y
0: H abilita el modo bloque (inhabilita el modo del destino para el canal 0. Por medio de l, tambin se
cclico) configura un b yte o una palabra para la transferencia
B it D M A W E (habilitador del D M A d u ran te el de datos, se definen las fuentes para la solicitud del
m odo W A IT) DM A, y se controla el desplazamiento del registro de
1: Transferencia h ab ilitada, y direcciones temporal que el D M A usa como apunta
0: Transferencia suspendida dor del bloque. (Figura 2 1.7 y Tabla 21.1 y 21.2)
B it IFCO (bandera de interrupcin d el canal 0)
1: Transferencia com pleta, y B it B W C ( b it d e control de la lo n gitu d del dato
0: Transferencia incom pleta transferido)
1: El D M A transfiere datos de 16 bits, y
0 : El D M A transfiere datos de 8 bits
Este registro se usa para configurar las DOC $ xx x x
fuentes y el com ienzo de la transferen
cia (F igu ra 2 1 .6 ) B it 7 6 5 4 3 2 1 B it 0
Lectura:
b its S W I 7 a S W I 0 (h a b ilita d o re s por Escritura:
SDC3 SDC2 SDC1 SDC0 BW C DTS2 DTS1 DTSO

s o f t w a r e d e l in ic io d e tra n sfe re n c ia Reset: E s ta d o in d e fin id o d e s p u s d e l r e s e t


d el D M A )
F ig u ra 2 1 .7 R egistro de c o n tro l d e l can al 0 (DOC)
1: Inicia la transferencia, y
0 : Bloquea la transferencia

DC2 S xxxx Por m ed io de estos registro s, el canal


B it 7 6 5 4 3 2 1 B it 0 0 d e l D M A u b ica la p o sici n base del
Lectura:
S W I7 S W I6 S W I5 S W I4 S W I3 S W I2 SW I1 SWIO
d ato de la fu en te antes de in ic ia r la
Escritura:
tran sferen cia. La d irecci n base de 16
Reset:
b i t s se g rab a en dos registros d e 8 b it s ,
F ig u ra 2 1 .6 Registro 2 de con trol de l DMA (DC2) llam ad o s D 0 S H y DOSL (p arte alta y
p arte b a ja ). (F ig u ra 2 1 .8 )

Fuentes de s o lic itu d de In icia iiza d o re s


DTS[2:0]
tra n s fe re n c ia del DMA p o r s o ftw a re
000 Solicitud del DMA por la entrada 0 SWIO

001 Solicitud def DMA por la entrada 1 SWI1

010 Solicitud del DMA por la entrada 2 SWI2

011 Solicitud del DMA por la entrada 3 SWI3

100 Solicitud del DMA por la entrada 4 SWI4

101 Solicitud del DMA por la entrada 5 SWI5


Tabla 21.1 S eleccin de fuentes
110 Solicitud del DMA por la entrada 6 SWI6
para la solicitud de la
111 Solicitud del DMA por la entrada 7 SW7 transferencia desde e l DMA

Curso prctico sobre M icrocontroiadores


tu d d el bloqi
S D C [3 :0 ] D ir e c c i n fu e n t e D ir e c c i n d e s t in o
El nm ero de bytes que sern transferidos en un
1010 In c r e m e n to In c r e m e n to bloque por el canal 0 del D M A , se controlan
desde este registro. A l escribir el valor $ 0 0 en el
1001 In c r e m e n to D e c re m e n to
registro DOBL se define la m ayor lo n gitu d para
1000 In c r e m e n to E s t t ic o el bloque, que es de 2 5 6 bytes.
0110 D e c re m e n to In c r e m e n to DOBL S xxxx
Bit 7 6 5 4 3 2 1 Bit 0
0101 D e c re m e n to D e c re m e n to Lectura:
B L7 B L6 B L5 B L4 B L3 BL2 BL1 B L0
Escritura:

0100 D e c re m e n to E s t t ic o feset: Se b o rra e l re g is tro d e s p u s d e l resel

0010 E s t tic o In c r e m e n to F ig u ra 2 1 .1 0 Registro de longitud del bloque del DMA (DOBL)

0001 E s t tic o D e c re m e n to
8. Registro con tad or de bytes transferidos, del
0000 E s t tic o E s t t ic o canal 0 (DOBC)
T abla 2 1 .2 B its de co n tro l de direcciones base d e l DMA D uran te el proceso de transferencia del D M A ,
en el contenido del registro contador de 8 bits
DOSH Sxxxx DOBC se lleva la cuenta de nm ero de da
Bit 7 6 5 4 3 2 1 B /0 tos de un b y te q ue se han transferido a tra
Lectura:
AD15 AD14 A D13 AD12 AD11 AD10 AD9 AD8
vs del canal 0.
Escritura:

feset: Se borra el registro despus del reset


Este registro co n tad o r se p u e d e b o rrar por
DOSL S xxxx + 1 rres cau sas, q u e so n : p o r un cic lo de reset
Bit 7 6 5 4 3 2 1 Bit 0 in tern o o extern o , cu an d o alcan z a la lo n
Lectura:
Escritura:
AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 g itu d d e fin id a p ara el b lo q u e de d ato s, y
feset: Se borra el registro despus del reset cuand o se escribe u n a nueva d irecci n base
F ig u ra 2 1 .8 R egistros de direccin base fuente (DOSH y DOSL) fu en te o d estin o.
DOBC S xxxx
6. Registros destino del D M A con la direccin
Bit 7 6 5 4 3 2 1 Bit 0
base, del canal 0 (DODH y DO DI Lectura:
BC7 BC6 BC5 BC4 BC3 BC2 BC1 BC0
Teniendo en cu en ta la direccin de 16 bits con- Escrttura
feset: Se b o rra e l r e g is tro d e s p u s d e l reset
ten id a en los registros DODH y DODL (parte
alta y parte baja respectivam ente), el canal 0 es F ig u ra 2 1.11 Registro contador de bytes transferidos del DMA (DOBC)

cribe en la posicin destino base el prim er dato


transferido por el D M A . Los m odos de direccionam iento
en la fa m ilia HC08
DODH Sxxxx En los m icrocontroladores 6 8 H C 0 8 de
B it 7 6 5 4 3 2 1 Bit 0
M otorola, hay disponibles diecisis modos
L ectu ra:
Escritura:
AD15 AD14 AD13 AD12 AD11 A D IO AD9 AD8 de direccionam iento que le otorgan una
feset: Se borra e registro despus del reset gran flexibilidad y eficiencia al m anejo de
daros que el program ador puede efectuar
DODL S xxxx + 1
con estos dispositivos. En trm inos de la
B it 7 6 5 4 3 2 1 BitO
L ectura:
C P U , los m odos de direccionam iento del
AD7 AD 6 AD5 AD4 AD3 AD2 ADt ADD
Escritura: M C U son las opciones con que ella cuenta
feset: Se borra el registro despus del reset para localizar los datos que se requieren para
F ig u ra 2 1 .9 R egistros de direccin base destino (DODHy DODL) ejecutar cualquiera de sus instrucciones.

Curso p rctico sobre M icrocontroladores


Los diecisis modos de direccio CDIGO DE
ETIQUETA
M NEMNICO DE
OPERANDO COMENTARIOS
M QUINA LA OPERACIN
nam ien to son: A657 E X_1 LDA #$57 A = $57
Inherente AB45 ADD #$45 A = $9C
72 DAA A = $02 w /a c a rre o
Inm ediato c o lo c a e l b it en $102
Directo A614 E X_2 LD A #20 LS d iv id e n d o d e A
8C C LR H B o r r a e l MS d e l d i v i d e n d o
Extendido AE03 LD X #3 D iv is o r de X
Indexado sin desplazamien 52 D IV C H : A ) / X A = 0 6 , H = 0 2

to u o ffse t A630 EX_3 LD A #$30 A = $30


87 PSHA G u a rd a e l d a to $ 3 0 en
Indexado con o ffs e t de 8 b its l a p i l a y d e c re m e n ta
e l a p u n t a d o r SP e n 1
Indexado con offset de 16 bits
F ig u ra 2 1 .1 2 Ejem plos de instrucciones de l m odo d e direccionam iento inherente
Del SP con o f f s e t de 8 b its
D el SP con o ffset d e 16 bits En la figura 2 1 .1 2 se m ues D ireccionam iento
Relativo tran tres pequeos segmentos de inm ediato
M em oria a m em oria, inm e programas en lenguaje ensambla Las in stru c cio n e s de d ire c c io
diato a directo dor que son ejemplos del modo n a m ie n to in m e d ia to en los
M em oria a m em oria, direc de direccionam iento inherente; M C U H C 0 8 son 18. So n to
to a directo en sta se destacan con color os d as a q u e lla s que c o n tie n e n el
Memoria a memoria, indexa curo las lneas de program a que o p eran d o en los b y tes que van
do a directo con incremento contienen instrucciones inheren in m e d ia ta m e n te d esp u s del
M emoria a memoria, directo tes. Las instrucciones son: DAA c d ig o d e la o p e ra c i n ; los
a indexado con incremento (ajuste decimal al registro acum u d ato s in m e d ia to s p u e d e n ser
Indexado con in crem en to lador), C L R H (borrar el byte alto de u n o o dos b y tes d e a c u e r
posterior H del registro ndice), y P SH A do con el ta m a o d el registro
Indexado con o ffset de 8 bits (guarda el contenido del acum u in v o lu c r a d o en la in s t r u c
e increm ento posterior lador en la pila). c i n , y p u e d e n rep resen tar
u n v a lo r o a p u n ta r a la d ire c
D ireccionam iento Nota: ci n de u n valor.
inherente En ste y en todos los dems pro
En los M C U H C 0 8 hay 54 ins gramas escritos en lenguaje en El p ro g ram a e je m p lo que
trucciones inherentes. Todas las samblador, se usar el smbolo (#) se m u e stra en la fig u ra 2 1 .1 3
instrucciones que soportan este antes de cualquier nm ero, para c o n tie n e d o s in s tr u c c io n e s
modo de direccionamiento se de indicar que es un operando in in m e d ia ta s : A IX (s u m a un
nominan instrucciones inherentes m ediato; y, de acuerdo con la sin v a lo r in m e d ia to co n sig n o al
y se caracterizan porque no requie taxis definida por los ensam bla r e g is t r o n d ic e ) , y C P H X
ren un ciclo de bsqueda {fitcb ) dores de M otorola, tam bin se (c o m p a ra el re g istro n d ic e
para el operando, trabajan sobre usar el smbolo ($) antes de cada con u n v a lo r in m e d ia to ); en
registros internos de la C P U , tales nm ero para representarlo en ste, p rim ero se b o rra el re
como el acum ulador A, el registro notacin hexadecimal. g istro n d ic e (H :X ) y lu ego se
ndice H:X, el apuntador de la pila
CDIGO DE MNEMNICO DE
ETIQUETA OPERANDO COMENTARIOS
SP, y el registro del cdigo de con MQUINA LA OPERACIN

diciones C C R . La principal ven 5F START CLR X ;X = 0


8C C LR H ;H = 0
taja de las instrucciones inheren AF01 TAG A IX #1 ;C H :X ) = C H :X ) + 1
65FFFF CPHX #$FFFF ; C o m p a ra ( H : X ) c o n
tes, es que no requieren de un d i $ F F F F
26F9 BNE TAG ; E je c u c i n c c l i c a
reccionamiento a m em oria y, por h a s t a s u ig u a ld a d
20F5 BR A START S a lto a i n i c i o
lo tanto, su tiempo de captura y
ejecucin es el menor.
F ig u ra 2 1 .1 3 Ejem plos de instrucciones d e l m odo de direccionam iento inm ediato

< 0 fM Y ,l Curso prctico sobre M icrocontroladores


Teora

CDIGO DE F T ln U cT . MNEMNICO DE n p c R .u n n cio n es q u e son la base d el d i


M Q U IN A ETIQUETA u OPERACIN OPERANDO COMENTARIOS
reccio n am ien to exten d id o .
R AM EQ U $50 A s i g n a c i n a l a RAM
ROM EQ U $6E00 A s i g n a c i n a l a ROM
ORG $R AM C o m i e n z o d e l a RAM
TEM P RMB Z R e s e rv a 2 b y te s Las in stru c c io n e s lla m a
ORG $R0M C o m i e n z o d e l a ROM
5F START CLR X X = 0
das ex ten d id as, p u ed en acce
8C C LR H H = 0 d er a c u a lq u ie r d irecci n del
3550 STHX TEMP H :X = 0 > TEMP
455555 LD H X #$5555 C a rg a H :X c o n $ 5 5 5 5 m ap a d e m em o ria de 6 4 K b
3550 STHX TEM P TEM P=$5555
7550 BAD _P AR T CPHX RAM R A M =T E M P ytes con q u e cu en tan estos m i
26FC BN E B AD _P AR T R A M =T E M P a m e n o s q u e
o c u r r a a lg n e r r o r c r o c o n tr o la d o r e s ; to d a s las
20F1 BRA START I n ic ia de nuevo e l c ic lo
in stru ccio n es son de 3 b ytes de
lo n g itu d y en ellas el p rim er
Figura 2 1 .1 4 Ejem plos de instru ccio ne s d e l m odo de direccionam iento directo
b y te es el c d igo de o p eraci n ;
a u m e n ta en u n o h asta a lc a n re c o n o c e r d o s in stru c c io n e s m ien tras q u e los dos s ig u ie n
zar el v alo r SFFFF. C u an d o la p ro p ias d el m o d o de d irec c io tes son los b y tes m s y m enos
c o n d ic i n de c o m p a r a c i n n a m ie n to d ir e c to , q u e so n : sig n ific ativ o s de la d irecci n
d e f in id a p o r la in s tru c c i n S T H X (g u a rd a r el registro n efectiva d el op eran d o .
C P F IX es v e rd a d e ra , e l p ro d ice en la m e m o ria ), y C P H X
g ra m a salta a la ln e a de in i (c o m p a ra el re g is tro n d ic e En todos los en sam b lad o
cio (S T A R T ) y re p ite el p ro con u n v alo r en m em o ria). res e fic ie n te s, e l p ro g ram ad o r
ceso in d e fin id a m e n te . p u ed e o lv id a rse de d e f in ir si
La p r im e r a in s tr u c c i n la in stru c c i n es d ire c ta o e x
D ireccionam iento directo S T H X lo c a liz a la e t iq u e t a te n d id a , y a q u e el p ro g ram a
Los M C U H C 0 8 de M o to ro T E M P en la p o sici n cero de e n s a m b la d o r a u t o m t i c a
la poseen 3 7 in stru c cio n e s d i la R A M , y la se g u n d a carga en m en te d e c id ir la fo rm a m s
re c tas. En este m odo d e d i d ic h a p o sici n el d ato $ 5 5 5 5 ; c o r ta d e la in s t r u c c i n de
re c cio n am ien to el p rim e r b y te m ie n tra s q u e la in s tru c c i n acu erd o con el lm ite q u e est
es el c d ig o d e la o p erac i n , C P H X co m p ara el v alo r co n d e fin id o p ara la p g in a cero
y el se g u n d o es el b y te b a jo de ten id o en H :X co n el de la po ($ 0 0 F F ).
la d ire c c i n e fec tiv a d el o p e sici n R A M +1 (en este caso,
ra n d o ; ya q u e el b y te m s alto R A M + l= T E M P = p o sicio n es En la f i g u r a 2 1 . 1 5 se
d e l a d ir e c c i n se a s u m e $ 5 0 y $ 5 1 = $ 5 5 5 5 ). m u estran dos ejem p lo s de este
com o $ 0 0 y no se in c lu y e en m o d o d e d ir e c c io n a m ie n to
la in stru c c i n com o un b y te D ireccionam iento u san d o la in s tru c c i n L D X
m s, el tiem p o de e je c u c i n extendido (carga el b y te bajo X d el reg is
es s lo de un c ic lo . El p ro g ram ad o r de los M C U tro n d ic e con el c o n ten id o de
H C 0 8 d isp o n e d e 16 in stru c una lo c a lid a d de m em o ria).
Por lo anterior, el uso del
CDIGO DE M NEM N IC 0 DE
direccion am iento directo que ETIQUETA OPERANDO COMENTARIOS
M AQ UINA LA OPERACIN

d a lim itad o a la p g in a cero o ORG $50 In ic io en $50


FCB $FF ;$ 5 0 = $FF
directa del rea de m em oria que 5F CLR X
BE50 LDX $0050 C a rg a d ir e c ta
com prende las prim eras 2 3 6 lo d e l r e g is tr o X
c o n e l d a to $0050
calidades (entre las posiciones ORG $6E00 In ic io en S6E00
$ 0 0 0 0 y S00F F ). FCB $FF ;$ 6 E 0 0 = SFF
5F CLR X
C E6E00 LDX S6E00 C a rg a e x te n d id a
d e l r e g is tr o X
En el p ro g ram a e je m p lo ,
de la fig u ra 2 1 .1 4 , se p u ed en Figura 2 1 .1 5 Ejem plos de instrucciones del m o do de direccionam iento extendido

A * .
Curso p r ctico sobre M icrocontroladores iM ,IfK H T T s . ? 211
D ireccionam iento CDIGO DE
ETIQUETA M NEM NICO DE OPERANDO
indexado, sin M Q UINA LA OPERACIN OPERANDO COMENTARIOS

desp lazam iento FC JM P ,X ;S IN O FFSET


s a lta a la
En la fa m ilia H C 0 8 h a y 29 ; d i r e c c i n
a p u n ta d a p o r e l
in stru c cio n e s p ara el d ire c c io r e g i s t r o H :X

n am ien to in dexado sin despla


F ig u ra 2 1 .1 6 Ejem plo del m odo de direccionam iento indexado sin o ffset
z a m ie n to u o ffs e t. T o d as las
in s tr u c c io n e s q u e so p o rta n D ireccionam iento Por lo an terio r, este d irec
este m odo son d e u n b y te y se indexado, con c io n a m ie n to q u e d a r lim ita
u san p a ra acced er a datos con desp lazam iento de 8 bits d o a las p rim eras 2 5 6 p o sicio
d irecci n variable, tal com o en Las in stru ccio n es para el d irec n es d e m e m o r ia , p e ro , sin
el caso de las tab las. L as in s c io n am ien to in d exad o con o ff e m b arg o , la ta b la p u ed e lo c a
tru ccio n es in d ex ad as sin o ffset s e t de 8 b its son 29- T odas las liz arse en c u a lq u ie r lu g a r del
se u sa n g e n e r a lm e n te p a ra in stru ccio n es de este m odo de m ap a de m e m o ria al u sar el
m over ap u n tad o res a travs de d ire c c io n a m ie n to son de dos re g istro n d ic e c o m o d ir e c
u n a ta b la de d ato s lo calizad a bytes, y a l ig u a l q u e las q u e no ci n base, y el s ig u ie n te b y te
en m em o ria. u sa n d e s p la z a m ie n to ; stas com o d e sp laz am ie n to .
ta m b i n se usan p ara acced er
En esta fa m ilia se h an d is a datos con d irec c i n variab le. E n la f ig u r a 2 1 . 1 7 se
p u e sto dos re g istro s (H y X ), m u estra com o ejem p lo una l
d e un b y te c a d a u n o , q u e c o n Para d e term in ar la d irec nea d e c d ig o d e p ro g ram a
tie n e n las d irec c io n es c o n d i ci n efectiva del op erand o, la que ilu s tra el m odo de d ire c
c io n ale s a lta y b a ja d el o p e C P U usa el resultado q ue se ob cio n am ien to indexado con o ff
ran d o , y, g racias al registro H , tien e al su m ar los b ytes sin sig s e t de 8 b its, p o r m ed io de la
e s te m o d o d e d ir e c c io n a no del registro n d ic e (H :X ), in stru c c i n de salto in c o n d i
m ie n to no q u e d a lim ita d o a con el b y te sin signo que prece cio n al JM P.
las p rim e ra s 2 5 6 p o sic io n es de al c d igo de op eracin de la
d e m e m o ria, tal com o su ced e in stru cci n . Direccionamiento
en la fa m ilia H C 0 5 . indexado, con
Estas in stru ccio n es se usan desplazam iento de 16 bits
P ara m an te n e r la co m p a a m en udo para seleccio n ar el El M C U H C 0 8 tiene 16 in s
tib ilid a d ab so luta entre las in s dato o elem en to n -esim o d en truccion es de d ireccio n am ien
trucciones de los M C U de M o tro de una tab la de k elem en to in d ex ad o con o ffs e t de 16
torola de las fam ilias H C 0 5 y tos, en este caso el n-esim o v a bits. En este m odo de d ireccio
H C 0 8 , el registro H se m an lo r d e b e r e sta r tp ic a m e n te nam ien to todas las in stru ccio
tien e en cero cu an d o no se usa en el re g istro H :X y la d ire c nes son de tres b ytes y pueden
n in g u n a in s tru c c i n q u e lo c i n de in ic io d e la ta b la d e acced er a c u a lq u ie r d ato con
afecte p o r p arte del H C 0 8 . b e r e sta r en el b y te s ig u ie n te d irecci n variab le en to d a el
al c d ig o d e o p erac i n de la rea de m em o ria; la C P U sum a
En la fig u ra 2 1 .1 6 se m ues in stru c c i n . el co n ten id o d e H :X con la pa-
tra com o ejem p lo u n a ln ea de
CDIGO DE M NEM NICO DE
cdigo de program a que ilustra MQ UINA ETIQUETA LA OPERACIN OPERANDO COMENTARIOS

el m odo de d ireccio n am ien to ECFF JM P $ F F ,X O F F S E T D E 8 - B I T S


; S a lta l a d ir e c c i n
indexado sin o ffset , por m edio ; a p u n ta d a p o r e l
r e g i s t r o H :X + SFF
de la instruccin de salto incon
d icio n al JM P. F ig u ra 2 1 .1 7 E jem plo d e l modo de direccionam iento indexado con o ffset d e 8 bits

m m / rz H T s. Curso prctico sobre M icrocontroladores


Teora

CDIGO DE M NEMNICO DE sici n $ 1 0 , el SP se h ace ig u al


M AQ U IN A ETIQUETA OPERANDO COMENTARIOS
LA OPERACIN
a $ 1 0 +$ F F = $ l0 F , y se efec
D C 10FF JM P $ 1 0 F F ,X O F F S E T DE 1 6 - B I T S
s a lta a l a d ir e c c i n t a el d e crem e n to de la p o si
a p u n ta d a p o r e l
r e g i s t r o H :X + S10FF ci n h a sta cero.

F ig u ra 2 1 .1 8 Ejem plo d e l m odo de direccin am iento indexado con o ffset de 16 bits D ireccio n am ien to del SP,
con d e sp la za m ien to de
lab ra form ada por los dos bytes dor de la p ila con o ffs e t de 8
16 b its
q ue sigu en al c digo de o p era bits. Este m odo de d ire c c io n a
La fam ilia del M C U 6 8 H C 0 8
ci n para en co n trar la d irec m ien to sobre el SP nos p e rm i
tiene disponibles 14 instruccio
ci n efectiva d e l operando. te m o v im ien to s g ile s d entro
nes para el direccionam iento del
de 2 5 6 p o sicio n es de la p ila,
SP con o ffset de 16 bits.
En este d irec c io n am ie n to la C P U e n c u e n tra la d irecci n
in d ex ad o con o ffs e t de 1 6 bits, efectiva del o p eran d o al sum ar
Todas las instrucciones en
las in stru c cio n e s se usan de la el registro SP de 16 b its co n el
este m odo son de cuatro b ytes y
m ism a fo rm a q u e en el d ire c b y te q u e sigu e al o p erand o.
se usan para acceder a datos de
c io n am ie n to an terio r, p ara lo
la p ila u bicad o s en c u a lq u ie r
c aliz ar y c ap tu rar datos d e n En e ste m o d o e l SP se
rea de m em oria; en este caso
tro de u n a ta b la , pero, en este pu ede u sar com o otro registro
la C P U sum a el contenido del
caso, con m o v ilid a d en todos n d ic e de la C P U , siem p re y
SP con los dos bytes que prece
los 6 4 K bytes de m em o ria. cu an d o las in terru p c io n es es
den al cdigo de operacin, para
tn in h ab ilitad a s.
d eterm in ar la direccin efecti
E n la f ig u r a 2 1 .1 8 se
va del operando.
m uestra com o ejem p lo u n a l En la f i g u r a 2 1 . 1 9 se
nea de cdigo de program a que m u e stra u n e je m p lo d e c d i
En la f i g u r a 2 1 . 2 0 se
ilu stra el m odo de d ireccio n a go de p ro g ram a q u e ilu stra el
m uestra un program a de ejem
m ien to in dexado con o ffs e t de m o d o d e d ir e c c io n a m ie n to
plo que ilu stra el m odo d e d i
16 b its , usando la in stru ccin d el SP con o ffs e t de 8 b its, por
reccionam iento d el SP con o ff
d e salto in co n d icio n al JM P . m e d io d e la s in s tr u c c io n e s
s e t de 16 bits, u san d o la in s
ST A (g u a rd a r el a c u m u la d o r
tru c c i n L D A (carga d e l a c u
D ireccionam iento del SP en m em o ria) y D B N Z (d ecre
m u lad o r d esd e m e m o ria ); en
(s ta c k pointer), con m en to d e la p o sic i n de m e
este p ro g ram a e l ac u m u la d o r
d esp lazam iento de 8 bits m o ria y sa lto , si no es ig u a l a
se carg a con el co n te n id o de
H a y 2 4 in stru ccio n es de tres c e r o ); en e ste p r o g r a m a se
la p o sici n de m em o ria $ 2 5 0
b y tes q u e m an ejan el a p u n ta g u a rd a e l v a lo r $ 2 0 en la p o
(S P = $2 5 0 +$ F F = $34F ).

CDIGO DE M NEM NICO DE


D ireccionam iento
ETIQUETA OPERANDO COMENTARIOS
M AQ UINA LA OPERACIN relativo
450100 LD H X #$0100
94 TXS ; R e in ic ia e l a p u n ta d o r
El m odo d e d ire c c io n a m ie n
;d e l a p i l a to re la tiv o , en esta fa m ilia de
; en $00FF
A620 LD A #$20 ;A = $ 2 0 m icro co n tro lad o res, se m an e
9EE710 STA $ 1 0 , SP ; $10F = $20
9E6B10FC LP DBNZ $10,SP,L O ffs e t de 8 - b it s ja con T I in stru c c io n e s. En
P ;d e c re m e n ta e l
; c o n te n id o d e la to das las in stru c cio n e s de sa l
p o s ic i n $10F
h a s ta lle g a r a c e ro to c o n d ic io n a l, la C P U u sa el
d ir e c c io n a m ie n t o r e la t iv o
F ig u ra 2 1 .1 9 Ejem plo del m odo de direccionam iento d e l SP con o ffs e t de 8 bits p a ra d e te rm in a r la d ire c c i n

Curso p rctico sobre M icrocontroladores f M J K H T ,:


CDIGO DE
MQUINA
cTinricTA
ETIQUETA
MNEMNICO OE
OPERANDO COMENTARIOS
D ireccionam iento de
LA OPERACIN
450100 LDHX #$0100
m em oria a m em oria,
94 TXS Reinicia el apuntador in m ediato a directo
de la pila
en S00FF En este m odo de d ireccio n a
9ED60250 LDA $0250,SP Offset de 16-bits
Carga el registro A m iento, el m ovim iento de un
con el contenido operando inm ediato (inm d ) a
de $34F
una posicin directa en m em o
Figura 2 1 .2 0 Ejem plo d e l m odo de direccionam iento del SP con o ffs e t de 16 bits ria se hace por m edio de la ins
truccin de tres bytes y cuatro
efectiv a (e f f e c t i v e a d d r ess ; EA) m al de la p r xim a in stru ccin ciclos de ejecucin M O V inm d;
d e l s a lto , sta e n c u e n tr a el a p u n ta d a p o r el P C . este m odo se usa con frecuencia
d e stin o d e l salto c o n d ic io n a l para inicializar registros y varia
a l su m a r el b y te sig n a d o (en En la figura 21.21 se m ues bles en a pgina cero. La C PU
c o m p le m e n to a dos e n tre - tra un program a de ejem plo que guarda el prim er b yte que sigue
1 2 8 a + 127) q u e sig u e a l c usa dos instrucciones del m odo al cdigo de operacin, en la d i
d ig o d e o p e r a c i n , c o n el de d ireccio n am ien to relativo: reccin de la pgina directa que
c o n te n id o d e l c o n ta d o r de BLT (salto si es m enor que, ope est indicada por el segundo byte
p ro g ra m a (P C ). racin signada), y BR A (salto in de la instruccin.
condicional); en ste, el conte
S i la co n d ici n d el salto nido del acum ulador se com pa En la figura 2 1 .2 2 se mues
se c u m p le, el P C se carg a con ra con -2, y y a que el nm ero tran dos segmentos de programa
la EA, de lo c o n trario , la C P U #1 es m ayor que -2, el salto a que ilustran la disminucin signi
c o n tin a con la ejecuci n nor TAG nunca ocurrir. ficativa, de 9 a 4 ciclos, que resulta
cuando no se usa el acumulador;
C DIG O OE M N E M N IC O DE sto se ilustra con dos operaciones
ETIQ UETA OPERANDO C O M E N TA R IO S
M A Q U IN A L A O PE RACI N
similares de transferencia inmedia
A601 TAG LDA #1 ;A = i
Al FE CMP # -2 Compara c o n - 2 ta a directa de este modo.
91FA B LT TAG Salta si el valor del
registro A

20 FE HERE BRA HERE


;es menor que -2
Salta siempre
D ireccionam iento de
m em oria a m em oria,
Figura 21.21 Ejem plos de instrucciones del m odo de direccionam iento relativo directo a directo
En este modo de direccionamien-
CDIGO DE TIEMPO DE MNEMNICO DE
to, el movimiento de un operan
MAQUINA EJECUCIN LA OPERACIN OPERANDO COMENTARIOS
do directo en memoria a una po
* M o v im ie n to d e d a t o s c o n e l r e g i s t r o a c u m u la d o r
B 750 C2 c i c l o s ) PSHA ; G u ard a e l v a lo r
sicin directa en memoria, se hace
A 622 CZ C i c l o s ) LDA #$22
; a c tu a l d e l r e g is t r o A
;A = $22 por medio de la instruccin de tres
$F0
B7F0 C3 c i c l o s ) STA G u a r d a e l d a t o $ 2 2
d e n t r o d e l a
bytes y cinco ciclos de ejecucin
p o s ic i n $F 0
B 650 C2 c i c l o s ) PULA R e c u p e r a e l v a l o r M O V dd; este modo se usa para
p r e v ia m e n t e g u a rd a d o
d e l r e g is t r o A efectuar transferencias de datos
9 c ic lo s
dentro de la pgina cero. El ope
* M o v im ie n t o d e d a t o s s i n el r e g i s t r o a c u m u la d o r
rando que se encuentra en la posi
6E 22F0 C4 c i c l o s ) MOV # $ 2 2 ,$ F 0 U b ic a c i n d e l d a to
$22 d e n t r o d e l a cin de la pgina cero, indicada
p o s i c i n d e m e m o r ia
$F0 por el prim er byte que sigue al c
digo de operacin, se guarda en la
posicin de la pgina cero indica
Figura 2 1 .2 2 Ejem plo de l m odo de d ireccionam iento inm ediato a directo da por el segundo byte.

s.a. Curso prctico sobre Microcontroiadores


Teora

CDIGO DE TIEMPO DE MNEMNICO DE


OPERANDO COMENTARIOS
Este m odo de d ireccio n a
MAQUINA EJECUCIN LA OPERACIN
* M o v im ie n to d e d a to s c o n e l a c u m u la d o r
m ien to es b astan te til p ara
B750 PSHA
tran sferir un b u jfe r de datos de
(2 c ic lo s ) G u a rd a e l v a l o r d e A
en la p ila la m em o ria R A M a un regis
B6F0 (3 c ic lo s ) LO A SF0 C a p tu r a e l c o n t e n id o
de l a p o s ic i n $F0 tro de tran sm isi n se rial, tal
B7F1 (3 c ic lo s ) STA SF1 S F l = $F0
B650 (2 c ic lo s ) P U LA R e c u p e ra e l v a lo r com o se m uestra en la fig u ra
d e l r e g is tr o A
g u a rd a d o e n l a p i l a
2 1 .2 4 , en d o n d e ap arece un
10 c ic lo s
se g m e n to de u n a r u tin a de
* M o v im ie n to d e d a to s s in e l a c u m u la d o r atenci n a la in terru p ci n de
4-EF0F1 (5 ciclos) MOV SF0,$F1 Mueve el contenido tran sm isi n serial SC I.
de la posicin de
memoria $F0 a la
posicin SF1
D ireccionam iento de
Figura 2 1 .2 3 Ejem plo d e l modo de direccionam iento directo a directo m em oria a m em oria,
directo a indexado con
En la f i g u r a 2 1 .2 3 se efecta con la instruccin de dos increm ento
m u e stra n dos se g m e n to s de b y tes y cuatro ciclos de ejecucin El m ovim iento de m em oria a
p ro gram a que efect an la m is M O V ix+d, y se destina gene m em oria, indexado a directo y
m a o p eraci n d e tran sferen cia ralm ente para transferir tablas de con in crem e n to p o ste rio r se
de d ato s d irecto a d irecto sin datos apuntadas por el registro efecta con la instruccin de dos
y con el ac u m u la d o r, y la d is ndice, hasta los registros de la bytes y cuatro ciclos de ejecucin
m in u c i n co rresp o n d ien te en pgina directa (la tabla puede M O V dix+, y se usa co m n
e l n m ero de c ic lo s de e je c u tener cualquier tam ao y estar m ente para llenar tablas con re
c i n q u e resu lta en cad a caso localizada en cualquier rea den gistros de la pgina cero. El ope
(d e 10 a 5 ciclo s). tro de los 64 Kbytes de m em o rando ap u n tad o en la p gin a
ria). La C P U guarda el operan cero, por el byte siguiente al c
D ireccionam iento de do apuntado por el registro H :X digo de operacin, se guarda en
m em oria a m em oria, en la pgina cero, en la direccin la direccin apuntada por el re
indexado a directo con que se indica en el b yte que si gistro H :X ; y la C P U increm en
increm ento gue al cdigo de operacin de la ta el registro ndice despus del
El m ovim iento de m em o ria a instruccin, e increm enta el re m ovim iento. Com o un ejemplo
m em oria indexado a directo y gistro n d ice despus de cada d e este m odo de d ire c c io n a
con in crem e n to po sterio r, se m ovim iento. m iento se m uestra el program a
de servicio a la interrupcin SCI
CDIGO DE MNEMNICO DE
MAQUINA ETIQUETA LA OPERACIN OPERANDO COMENTARIOS en la figura 21.23.
7E 1 8 MOV x+, ;Mieve un nuevo byte
SCDR ;al registro de
;datos S C I , D ireccionam iento
Borra a TDRE y
posteriormente
indexado con increm ento
incrementa el posterior
registro ndice H :X .
L as in s tr u c c io n e s C B E Q y
65 00 64 CPHX #TX_B + ; H a s i d o f i n a l i z a d o
S IZ E e l b u ffe r c ir c u la r ? M O V son las dos in stru c c io
23 03 BLS N O LO O P S i n o , c o n t in u
45 00 54 LD H X #TX_B d e l o c o n t r a r io nes de dos b y tes en las que se
r e in ic ie p a ra
a rra n c a r e l b u ffe r so p o rta el m odo d e d ire c c io
35 50 N 0L00P STHX PTR _0U T G u a rd a e l n u e v o n am ien to in d ex ad o sin o ffs e t
v a l o r d e l a p u n ta d o r
80 RTI R e to rn o d e y con in c re m e n to p o sterio r.
in te r r u p c i n
En el registro H se g u ard a el
Figura 21 .2 4 Ejem plo d e l modo de d ireccionam iento Indexado a d irecto con Increm ento b y te de la parte a lta d e la direc-

Curso p rctico sobre M icrocontroladores


LEI l l l l i l l l u U Lv'i/A. V l U S LU M (L- t U jC C l i a i u L H U LHl l S U l L L n U U llU llt iL iu llr i:' S L M

CDIGO DE
ETIQUETA
MNEMNICODE n p r H. Mnn COMENTARIOS
c i n d el o p eran d o , m ien tras
MAQUINA LA OPERACIN OPERANDO
q u e el b y te m s bajo se guard a
S IZ E EQU 16 T a m a o d e l b u f f e r
c ir c u la r en X , y, la su m a, es la direc
SCSR1 EQU $16 R e g . l d e e s ta d o SCI cin condicional del operando.
SCDR E(*J $18 R e g is tro re c e p to r S Q
ORG $70
PTR_0UT RMB 2 A p u n ta d o r d e d a to s
d e s a l i d a d e l
Este m odo de direcciona
b u ffe r c ir c u la r miento se usa con frecuencia para
PTR _IN RSE 2 A p u n ta d o r d e d a to s
d e e n t r a d a d e l buscar datos dentro de tablas; la
b u ffe r c ir c u la r
R X.B RMB S IZE B u ffe r c ir c u la r figura 2 1 .2 6 es un segmento de
R u tin a d e in t e r r u p c i n d e l r e g i s t r o r e c e p to r d e d a to s S C I
program a que usa la instruccin
C B E Q (com pare y salte si es
ORG S6E00
5 5 72 R X _IN T LDHX PTR _IN C a rg a e l a p u n ta d o r igual, indexada) para ilustrar este
B6 1 6 LDA SCSR1 L e c t u r a d e SCSR1
cerro p a r t e d e l re s e t tipo de direccionam iento.
5E 1 8 m i SCDR ,X + M ueve un n u e v o b y te
a S C I, b o r r a a RDRF

6 5 0 0 64 CPHX #RX_B + S IZE


; e in c r e m e n t a H :X
; H a f i n a l i z a d o e l
D ireccionam iento
23 03 BLS NOLOOP
b u ffe r c ir c u la r ?
S i n o , c o n t in u
indexado con o ffs e t de 8
4 5 0 0 54 LDHX #RX_B D e l o c o n t r a r i o
i n i c i a l i c a desde e l
b its e increm ento
c o m ie n z o d e l b u f f e r posterior
35 52 NOLOOP STHX PTR _IN G u a rd a e l n u e v o
v a l o r d e l a p u n ta d o r C o n las m ism as in s tru c c io
80 RTI R e to r n a d e l a
in t e r r u p c i n n e s, C B E Q y M O V , p ero
u s a n d o el o f f s e t , se p u e d e
Figura 2 1 .2 5 E jem plo de l m odo de direccionam iento directo a indexado con increm ento m a n e ja r el m o d o d e d ire c c io
n a m ie n to in d e x a d o con d e s
M NEMNICO DE
p laz am ie n to de 8 b its c in c re
CDIGO DE r r in n c T A OPERANDO COMENTARIOS
M AQ U IN A ETIQUETA LA OPERACIN m en to p o ste rio r. Por m ed io
A6FF LDA #$FF A = $FF de estas in stru c c io n e s de tres
B710 STA $10 L O C $10 = $FF
4E1060 MOV $10, $60 L O C $60 = $FF b y tes se p u e d e ac c ed e r a c u a l
5F C LR X X = c e ro
q u ie r o p e ran d o con p o sici n
* C o m p a ra e l c o n t e n id o d e l r e g i s t r o A c o n e l c o n t e n id o d e l a
* p o s i c i n d e m e m o r ia a p u n t a d a p o r e l r e g i s t r o H : X y s a l t a a T A G
v a ria b le , e in c re m e n ta r el re
* c u a n d o s o n ig u a le s g istro n d ic e d esp u s de cada
7102 LO O P CBEQ X + .T A G S IN O F F S E T o p erac i n , y de la m ism a fo r
20FC BR A LO O P E v a l a l a p r x im a
p o s ic i n
m a q u e en el d ire c c io n a m ie n
5F TAG C LR X X = c e ro to sin o ffs e t , la d ire c c i n c o n
d ic io n a l d el o p eran d o se ob
Figura 2 1 .2 6 Ejem plo d e l modo de direccionam iento indexado con increm ento
tien e de la su m a d e los re g is
tro s n d ic e H y X .
CDIGO DE M NEMNICO DE
ETIQUETA OPERANDO COMENTARIOS
M AQUINA LA OPERACIN
A6FF LDA #$FF A = $FF Este m odo de d ire c c io n a
B710 STA $10 ;L 0 C $10 = $FF
4E1060 MOV $10, $60 ; LO C $60 = $FF m ien to se u sa ta m b in para
5F CLR X ;X = c e ro
lo calizar datos d en tro de ta
C o m p a ra e l c o n t e n id o d e l r e g i s t r o A c o n e l c o n te n id o d e l a blas; la fig u ra 2 1 .2 7 es u n seg
p o s i c i n d e m e m o r ia a p u n t a d a p o r e l r e g i s t r o H :X + $ 5 0 y s a lt a
a TG 1 c u a n d o s o n ig u a le s m en to de p ro gram a q u e usa
615002 LO O P 2 CBEQ $ 5 0 ,X + ,T G 1 O F F S E T D E 8 - B I T S la in stru cci n C B E Q (com p a
20FB BRA LO O P2 E v a l a l a p r x im a
p o s ic i n re y salte si es ig u a l, in d ex ad a
20FE TG1 BRA TG1 F in a liz a
y con o f f s e t ) p ara ilu s tra r este
Figura 2 1 .2 7 Ejem plo d e l m odo de direccionam iento indexado con o ffs e t e increm ento tip o de d irec c io n am ie n to .

< M 0M T il Curso prctico sobre M icrocontroladores


US INTERRUPCIONES EN LOS
MICROCONTROUDORES 68HC08
La conexin y com unicacin de un m icrocontro
lador con microprocesadores, con dispositivos elec
trnicos, y con otros m icrocontroladores de dife
rente tecnologa y velocidad de procesam iento, se
hace gracias a las interrupciones.

Por medio de cualquier solicitud de interrupcin, de


origen interno o externo, la C P U detiene temporal
mente la ejecucin del programa principal mientras
ejecuta el programa de servicio a la interrupcin.
Lab' U l L < U l S y |u ll!S LlLLCLUL'ULltluUdLlri lUULd

U n a caracterstica im po rtan te de los m icro la ejecucin de una secuencia de cuatro tareas


controladores, debida a las interrupciones, es la por p a rte d el m d u lo d e in te rru p c io n e s del
flexib ilidad en la conexin con dispositivos ex M C U ; ellas son:
ternos de cu alq u ier tecnologa y rango, as como
tam bin la facilidad para integrarse con otros sis Reconocim iento de la fuente de interrupcin
tem as de caractersticas diferentes. Evaluacin del nivel de prioridad (arbitraje)
A lm acenam iento del estado actu al del m icro
Bajo condiciones de operacin norm al, la controlador
C P U 0 8 de los m icrocontroladores ejecuta secuen- B squeda del vector d e la in terrupcin
cialm en te cada una de las instrucciones d el pro
gram a p rin cip al; pero, con frecuencia, es necesa En la fig u ra 2 2 .1 se m uestran las tareas q ue
rio abandonar el program a princip al y ejecutar, la C P U 0 8 ejecuta d uran te el procesam iento de
un conjun to de instrucciones determ inadas y lo u na in terru p cin ; en ella se in cluyen , adem s de
calizadas en un rea de m em o ria conocida, en la secuencia de operaciones, los tiem pos del bus
respuesta a la so licitu d de in terru p ci n hecha interno en que cada una se desarrolla.
desde uno o varios dispositivos perifricos exter
nos e internos. G eneralm ente, la so licitud para N ota:
la ejecucin del program a, o ru tin a de servicio a El reset externo o interno, es la interrupcin prin
la in terrupcin , llegar al M C U fuera de sincro cipal del m icrocontrolador y se usa para in iciali-
nizacin con los tiem pos de procesam iento del zar los registros prin cip ales; no es enm ascarable,
cdigo de operacin de la C P U , y su solicitud goza del m s alto n ivel de p rio rid ad y por este
deber atenderse en el m enor tiem po posible. m otivo la atencin a su so licitud de interrupcin
es la m s rpida. Esto se logra porque el m dulo
En los m icro co n tro lad o res M o to ro la con de interrupciones, al procesar el reset, slo efec
C P U 0 8 se pueden procesar hasta 128 in terru p t a dos de las cuatro tareas q u e se requieren tp i
ciones de m anera in dep endien te; dentro de stas cam ente p ara el procesam iento de las in terru p
se in cluyen: las fu en tes externas com o el R S T y ciones generales, que son: el reconocim iento de
la interrupcin IR Q 1; y las fuentes internas como la fuen te de in terrupci n y la bsqueda del vec
las in terrupcion es por so ftw a re S W I. tor correspondiente.

C asi todas las in terru pcion es pueden ser en- R econocim iento de la fuente de
m ascarables, y solo alg u n as pocas no, com o por interrupcin
ejem p lo el reset. Las enm ascarables se m an ejan En el caso d el reset, el reconocim iento no es sin
desde el sistem a p erifrico in tern o d estin ad o crnico con el procesam iento de la C P U , y es
p ara tal p ro p sito , por m ed io del b it q u e co n in m ediato; m ientras que la salid a de este estado
tro la la m scara g lo b a l de las in terru p c io n es de in terru p ci n siem pre estar sincronizada con
( B i t I) , el cu al est lo calizad o en la tercera po si los ciclos de ejecucin del bus interno.
ci n d el reg istro d el c d ig o d e c o n d icio n e s
(C C R ). Todas las in terru p cio n es se h ab ilitan Las dem s in terrupcion es siem pre sern re
cuando este b it est en cero lgico. conocidas por la C P U 0 8 so lam ente d u ran te el
ltim o ciclo, de ejecucin de cada in struccin, y
Procesam iento de interrupciones en la cu alq u ier so licitud de in terru p ci n que se haga
CPU08 en este ciclo, ser ignorada, y slo se volver a
La solicitud efectuada de parte de cualquier fuente considerar hasta el ltim o ciclo de la prxim a
de in terru pcin , excepto el reset , se atien d e de instruccin; con lo que queda claro que la C P U 0 8
acuerdo con los resultados que se obtienen tras nunca detiene la ejecucin de un a instruccin

( J E M itm . Curso prctico sobre M icrocontroladores


Teora

NUMERO DE para atend er una ru tin a de in terru p ci n norm al


CICLOS DEL
BUS INTERNO ltim o c ic lo d e la
instru ccin e n curso
(so lam ente cuand o se est usando el m dulo
D M A , ste pu ed e suspender la operacin d e una
B sca la sig u ie n te instruccin en la C P U para atender a un dispo
in s tru c c i n (B)
(red unda nte) sitivo perifrico).

A l reco n o cer u n a in te rru p c i n , la C P U 0 8


c arg a el registro d e co d ific ad o r d e in stru c c io
nes con el c d ig o d e o p eraci n asig n ad o por
s o ftw a r e que le co rresp o n d e a d ic h a in te rru p
ci n (S W I x ), en lu g a r de c arg ar el c d igo de
op eracin de la que deb i h ab er sido la sig u ie n
te in stru cci n en el p ro gram a. El co n tad o r del
p ro g ram a (P C ) es el otro registro q u e se altera
cu an d o se reconoce u n a in te rru p c i n , a ste se
le resta u n o an tes de ser g u ard ad o en la p ila,
y a q u e, d eb id o al m ecan ism o de p reb squ ed a
d el c d ig o de o p eraci n de la C P U , siem p re
est ap u n tan d o a la d irec c i n d e la p r xim a
in stru c ci n m s uno.

Evaluacin del nivel de prioridad


Rutina de interrupcin
(a rb itra je )
Todas las interrupcion es de reset por defecto tie
B sca la sig u ie n te nen la m ism a y la m s alta prioridad, por lo tan
instruccin (redundante)
to para ellas la C P U 0 8 no efecta la operacin
de evaluacin del nivel de p rio rid ad , que se lleva
Descarga
a cabo d u ran te el procesam iento norm al de las
D escarga A
otras interrupciones.

D escarga X Todas las interrupciones que llegan al m i


crocontrolador sim u ltn eam en te, son som etidas
D escarga PCH al proceso de evaluacin del nivel de prioridad
en el m d u lo del sistem a de in tegracin (S IM ),
D escarga PCL
y ste, se basa en el orden de prioridades de los
vectores q ue se m uestran en la tabla 2 2 . 1 . Com o
B sca la prxim a
in s tru c c i n (B) resultado, el m dulo SIM obtiene un valor cons
tan te q ue en su m om ento u tiliza para localizar la
direccin efectiva del vector de interrupcin que
In ic ia e l proce so de
in te rru p c i n debe ser buscado, para poder atender la rutina
de servicio.
I No

Ejecuta el primer d d o de .as interrupciones C u an d o la C P U reconoce una fuen te de in


la prxima instruccin del e ocurren antes de
ptogam a principal (B) e puntose reconocen terru p ci n , el correspond ien te b it de se aliza
cin {flag o bandera) del registro de estado lo
Figura 22.1 S e c u e n c ia d e o p e ra c io n e s d e l p ro c e s a m ie n to in d ic a al ponerse en uno l gico; y, el dise ador
de u n a in te rru p c i n

Curso p rctico sobre M icrocontroladores < rC M T .l <^9^>


Ltifc' L&-HtfllLnULllS: LH1 l lllELnUUJllUuLtilL\S (g*UCUS

d el p ro gram a es el responsable de bo rrar (o co salir de ella. El orden de apilam iento de los regis
lo car en cero l gico) el sealizador, lu ego de eje tros es: primero el contador P C , luego el ndice X,
c u tar ap ro p iad am en te la ru tin a de servicio so li el acum ulador A , y el registro C C R ; m ientras que
c ita d a por la in terru p ci n . el orden de recuperacin de los registros de la pila,
de acuerdo con su estructura LIFO (Last In First
D ireccin In te rru p c i n P rioridad
Out), es al contrario: primero el C C R , y despus,en
FFFE Reset 1 orden, los registros A , X , y PC.
FFFC SWI 2
FFFA FREQ[0] 3 En la fig u ra 2 2 .2 se m uestran las secuencias

de ap ilam ien to y descarga de los registros de la
FF02 p ila, tal com o la C P U 0 8 las ejecuta antes y des
IREQ[124] 127
pus de atend er cu alq u ier in terrupcin .
FF00 IREQ[125] 128

T abla 2 2 .1 T a b la d e n i v e le s d e p r i o r i d a d d e l o s v e c t o r e s d e l a s Enm ascaram iento y anidam ien to de


i n t e r r u p c io n e s d e l a C P U 0 8 las interrupciones
La n ica in terrup cin que no es enm ascarable
A lm acen am iento dei estado actual del es e l reset, las dem s in terrup cion es pueden ser
m icrocontrolador h ab ilitad as e in hab ilitad as por m edio del b it que
Para preservar el estado del M C U despus de retor controla la m scara glo b al de las interrupciones
nar de una rutina de servicio de interrupcin, la { B i t I), localizado en el registro C C R ; o por m e
C P U 0 8 alm acena en la pila los principales registros dio de los b its de las m scaras in d ivid uales de los
antes de atender la interrupcin, y los descarga al registros de control de los perifricos.

PILA TIPO LIFO

Orden de
descarga

5 1 REGISTRO DEL CDIGO DE CONDICIONES CCR


4 2 REGISTRO ACUMULADOR A
3 3 REGISTRO NDICE X ( BYTE BAJO)*
2 4 REGISTRO CONTADOR DE PROGRAMA ALTO PCH
t 5 REGISTRO CONTADOR DE PROGRAMA BAJO PCL

Orden de
a p ila m ie n to

Direccin por defecto del reset $00 FF


* El b y te a lto d e l re g is tro n d ice H n o se a p ila

F ig u r a 2 2 . 2 O r d e n d e a p il a m i e n t o y d e s c a r g a d e l o s r e g i s t r o s p r i n c i p a l e e n ia p ila

<M M C1T.; Curso prctico sobre M icrocontroladores


P ara p e rm itir la e je c u c i n a n id a d a de las C o m o p rim e r e jem p lo , en la fig u ra 2 2 .3
in te rru p c io n e s en esp era, la m o d ific a c i n del se m u estra q u e, si la in te rru p c i n se reconoce
b i t I se e fec t a a l m en o s un c ic lo an tes d el d u ran te la ejecu ci n de la in stru c ci n C L I, la
ltim o cic lo de la in stru c c i n u o p erac i n , C P U 0 8 sa lta r a e je cu ta r la ru tin a de servicio
con esto se g a ra n tiz a q u e su estad o est ya de la in te rru p c i n , y a l term in ar, regresar al
d e fin id o an tes d e e je c u ta r la p r x im a in stru c p ro g ram a p rin c ip a l a e je c u ta r la sig u ie n te in s
ci n . En los tres e je m p lo s s ig u ie n te s se ilu s tru c c i n LD A .
tran casos tp ic o s de re c o n o c im ie n to y e je c u
ci n de in te rru p c io n e s. En el segundo ejem plo, de la figu ra 2 2 .4 , se
m uestra la ejecucin an idada de dos
CU-------------------- rutinas de servicio de interrupciones
IN T1 e IN T 2; en este caso las solici
Programa tudes de interrupcin pueden llegar
principal al m ism o tie m p o , o la s e g u n d a
(IN T 2) llegar durante la ejecucin de
la prim era (I N T l). En cualquier caso
la interrupcin IN T 2 ser atendida
solam ente al term inar la ru tin a de ser
INTl: vicio de la prim era.
Rutina de servicio
de la interrupcin T am b i n es im p o rta n te an o
tar q u e, d u ra n te c ad a in stru c c i n
F ig u ra 2 2 . 3 E je c u c i n e fe in t e r r u p c io n e s d e reto rn o R T I, la C P U 0 8 b u sca

PARA SABER MS:


Apilamiento compatible
Para m a n te n e r la c o m p a tib ilid a d de lo s p ro g ra m a s co n la fa m ilia de MCU 68H C 05, la CPU de la fa m ilia
HC 08 no a p ila el c o n te n id o del re g is tro n dice a lto H d u ra n te el p ro ce so de a te n c i n a las in te rru p c io
nes, y p o r lo ta n to , el p ro g ra m a d o r no debe o lv id a rs e de g u a rd a r y re c u p e ra r e ste re g is tro al e n tra r y
s a lir re s p e c tiv a m e n te de la ru tin a de s e rv ic io de la in te rru p c i n .

U sando la s in s tru c c io n e s PSHH y PULH p a ra el m a n e jo del re a de la p ila , se p u e d e a p ila r y d e s c a rg a r


el c o n te n id o del re g is tro H p a ra p re s e rv a rlo d u ra n te el a c c e s o a u n a ru tin a de in te rru p c i n , ta l com o
se ilu s tra en el s ig u ie n te se g m e n to de c d ig o.

IRQINT PSHH ; Se g u a rd a en la p ila el c o n te n id o del re g is tro H

RUTINA DE SERVICIO
A LA INTERRUPCIN

PULH ; Se d e sca rg a de la p ila el c o n te n id o del re g is tro H


RTI ; R etorna al p ro g ra m a p rin c ip a l

Curso p rctico sobre M icrocontroladores


v v p u iim iv ii M M Bi mmam
L as LiiuHtuicu'i Luura Li uL
ci
qHf
lLU

Retomo de la interrupcin (RTI)


A l te rm in a r la eje cu c i n d e la ru
tin a de servicio de la in terru p ci n ,
Programa
principal 7 a n d en tro de sta, se d eb e u b i
car la in stru ccin de retorno de in
te rru p ci n RTI; sta se en carga de
fin aliz ar la e je c u c i n de la ru tin a
de servicio y d ev o lv er el a p u n ta
INT1: dor de p ro g ram a al p ro gram a
Rutina de
servicio de la p rin c ip al, p ara c o n tin u a r con las
interrupcin tareas in te rru m p id a s.

E sta in stru c c i n ta m b i n se
encarga de ordenar las operaciones
de ap ilam ien to y descarga de todos
INT2: los registros fundam entales para que
Rutina de
servicio de la el M C U reanude la ejecucin del
interrupcin program a principal, exactam ente en
el lugar interrum pido, y con las con-
Figura 22.4 E je c u c i n a n id a d a d e i n t e r r u p c io n e s e n e s p e r a diciones que traa la C P U . A d icio
nalm en te borra el b it de control de
la d ire c c i n de la s ig u ie n te in s tru c c i n d el
todas las interrupciones, y las h a b ilita cada vez
p ro g ra m a p r in c ip a l (L D A ), a u n q u e en el caso
que descarga el registro CCR de la pila.
d el reto rn o de la IN T 1 , s lo es u n a acci n
re d u n d a n te .
M dulo de interrupcin externa (IRQ)
El m dulo de in terrupcin externa IRQ, m ane
El tercer ejem p lo , de la fig u ra 2 2 .5 , nos
ja y nos perm ite controlar la operacin de sta
m u estra que, si una fuen te de in terru p ci n se
por m edio de sus registros. Este m dulo com
d etecta d u ran te la ejecu ci n de la in stru cci n
pleto se m uestra en el diagram a de bloques de la
C L I, sta ser aten d id a an tes de colocar en uno
figu ra 2 2 . 6 ; y las caractersticas con las que cuen
l gico el b it Idel registro CCR, e in h a b ilita r o
ta en los M C U de la fam ilia H C 0 8 , son:
p o n er la m scara sobre todas las in terru p cio n es.
U n p in de e n tra d a ex tern a p ara la in te rru p
CLI-
ci n I R Q l ____
SEI
Bits de control para la entrada IR Q l
U n b u jfe r de entrada con histresis
E ntrada con sen sib ilid ad p rogram able por
flanco, o por flanco y nivel
R econocim iento autom tico
INT1 PSHH Selector program able de resistencia interna
INT1: de p u ll-u p
Rutina de
PLH servicio de la
interrupcin Al aplicar una seal con nivel bajo (un cero
RTI lgico) en el pin IR Q l del m icrocontrolador, se
activa la solicitud de servicio de la interrupcin
F ig u r a 2 2 .5 E je c u c i n y r e c o n o c i m ie n t o d e l a i n t e r r u p c i n d u r a n t e la
e j e c u c i n d e u n a in s t r u c c i n
externa en la C P U y se alm acena en el la tch I R Q l.

Curso prctico sobre M icrocontroiadores


Teora

U na vez reconocida la interrup


cin, el la tch perm anecer en
uno hasta que ocurra algu na de
las siguientes operaciones:

1. La bsqueda de un vector: el
reconocim iento de otra so
lic itu d de in terrupcin o ri
g in ar la bsqueda del vec
tor correspond ien te, y d u
rante este ciclo, el la tch IR Q
ser borrado.

2. U n borrado por software', ste


puede usarse para borrar el
estado m em orizado de la in
terrupcin, si se accede el b it
de reconocim iento (A C K l)
que hace parte del registro de
estado y control de la inte
rrupcin IN T S C R . Al escri
bir un uno lgico en ste, se
borra el la tch I R Q l.

3. La ejecucin de u n resetr. esta


o p eraci n tien e d en tro de
sus tareas el borrado del la
tch de la in terru p ci n ex
tern a I R Q l.

4. El pin de entrad a IR Q l se
in activa si se coloca en nivel
lgico uno, y si previam ente
se ha configurado su sensi
b ilid ad por nivel; bajo esta
condicin, el la tch IR Q l ser
borrado.

Pin de inte rru pcin


externa (IRQ1)
La entrada de la interrupcin ex
terna IR Q l es activa en nivel bajo,
y por defecto responde a los flan
ndo v i aa saNoiooaaia aa o n h i m sna cos de bajada. Sin embargo, por
medio del b it d e control del modo
Figura 22.6 D iagram a de bloques del m dulo de interrupcin externa IRQ de disparo M O D E 1, propio del

Curso prctico sobre M icrocontroladores


U s UllLH-lULdliet- LHl Lut- LlClUL^mUciLLUlUS LitiL-iLniii

registro IN T SC R , se puede program ar la sensibili es ei b it de la bandera de estado de la inte


dad del disparo en dicha entrada; este modo puede rrupcin IR Q l, es de slo lectura, y nos inform a el
configurarse en una de dos formas: para el disparo estado de las solicitudes de interrupcin pendientes.
por flanco de bajada solamente, o para el disparo
por flanco de bajada y nivel bajo. C on 1, indica q ue la so licitu d de interrupcin
IR Q l est pendiente.
C uando el disparo del pin de interrupcin se C o n 0, in d ica que no h ay so licitud de in terrup
configura por flanco de bajada solamente, la solici cin IR Q l pendiente.
tud de interrupcin en la C P U se m antiene activa
hasta que ocurre la bsqueda de un vector, o un es e l b it d e reco n o cim ien to de so licitu d
borrado por softw a re , , la ejecucin de un reset. de la in terru p ci n I R Q l, es de slo escritu ra, y
Pero, cuando se h aya configurado el disparo de nos p erm ite bo rrar el la tch de la in terru p ci n .
la in terrupcin por flanco de bajada y nivel bajo, Este b it in terru p to r se usa con frecuencia en eje
la so licitud de in terrupcin en la C P U se m an cucio nes an id ad as q u e req uieren borrar el la tch
ten d r activa hasta q ue ocurra la bsqueda de un IR Q por so ftw a re. El ciclo de reset siem pre lo
vector, o un borrado por softw a re, o la ejecucin pone en cero.
de un reset, , el p in de la in terru p ci n regrese a
su condicin in activa (uno lgico). C on 1, se borra el la tch de IRQ .

Registro de estado y control de la es el b it de mscara de la interrupcin


interrupcin IRQ (INTSCR) I R Q l; es de lectura y escritura, y nos perm ite habi
En la fig u ra 2 2 .7 se m uestra el registro de estado litarla o inhabilitarla. Luego del reset se borra.
y control de la interrupcin IRQ , llam ado IN T S-
C R . Por m edio de este registro se controla y su C o n 1, se in h a b ilita o en m ascara la so lic itu d
pervisa la operacin del m dulo de interrupcin d e in te rru p c i n de I R Q l.
externa IR Q ; a travs de l se pueden desarrollar C o n 0 , se h a b ilita la so lic itu d de in terru p c i n
las siguientes funciones: de I R Q l.

1. Se vigila la bandera de estado de la in terru p es el b it de m odo de disparo q ue m a


cin IRQ F1 neja la sen sib ilid ad de la in terrupcin I R Q l, es
2. Se borra el la tch IR Q l de la in terrupcin de lectu ra y escritura, y nos perm ite configurar
3 . S e e n m asc ara o se in h ib e el se rv ic io a la la sensibilid ad del p in de in terrupcin I R Q l. El
in te rru p c i n reset lo borra.
4 . Se controla la sensibilidad del disparo del pin
d e in terrupcin IR Q l C on 1, se activa la so licitud de in terrupcin por
m edio de un flanco de bajad a y un nivel bajo.
Los bits de control y estado en el registro C on 0, se activa la so licitud de in terrupcin so
IN T S C R estn definidos com o sigue: lam en te p o r m edio d el flanco de bajada.

D ir e c c i n N o m b r e d e r e g is t r o B it 7 6 5 4 3 2 1 B ita

L e c tu r a : 0 0 0 0 IRQF1 0
S001D R e g is tro d e e s ta d o y c o n tro l ac*i / i i n n c i
uira
v irc m i m uuLi
d e la in te rr u p c i n IRQ E s c r it u r a : ACK1
(IN T S C R )
R eset 0 0 0 0 0 0 0 0

Sin e s ta b le c e r

Figura 2 2 .7 R egistro de estado y con trol de la interrupcin IRQ (INTSCR)

224 S ) H W . a. Curso prctico sobre M icrocontroladores


LOS MDULOS ESPECIALES DEL
G8HC08: COP, LVIY KBI
L os m d u lo s e s p e c ia le s , q u e v ig ila n la e je c u c i n a p r o p ia
d a d e l softw a re d e l m ic r o c o n tr o la d o r y lo p r o te g e n d u r a n
te las c o n d ic io n e s a n o r m a le s d e l v o lta je d e a lim e n ta c i n ,
tale s c o m o los m d u lo s C O P (<Computer operatin gproperly)
y L V I ( low volta ge in hib it), se h a n in c o r p o r a d o d e n tr o d e
la a r q u it e c t u r a d e lo s m ic r o c o n tr o la d o r e s p a r a a u m e n ta r
la c o n f ia b ilid a d d e esto s c ir c u ito s in te g r a d o s .

E l m d u lo q u e m a n e ja la s in te r r u p c io n e s d e d ic a d a s al
m a n e jo d e te c la d o s , y q u e f a c ilit a p a r a e l u s u a rio la ta re a
d e d e c o d if ic a r m a tr ic e s d e te c la s , es e l K B I ( k eyboard in te-
rru p t module)-, y es o tr a h e r r a m ie n t a d e m u c h o u so , o fre c i
d a p o r e s ta f a m ilia d e m ic r o c o n tr o la d o r e s .
Lus luiiuLus e s i L-dtiL-s l i d lLL'd LUL:, LVI y Ivlil

El m dulo COP (C om puter operating que el registro contador del program a P C se altera
property) y el orden de ejecucin del program a se pierde,
Bajo el m ism o concepto operativo del perro guar ocasionando un com portam iento errado o ines
d in ( w a tch d o g ) que se ha venido incorporando perado del M C U . D entro de las principales y ms
en todas las arqu itectu ras m odernas de los m i frecuentes causas que pueden hacer que la secuen
croprocesadores (M P U ) y los m icrocontrolado cia de ejecucin de una rutina o program a se salga
res (M C U ) d e o tro s fa b ric a n te s , la fa m ilia de su curso, se encuentran las siguientes:
6 8 H C 0 8 de M o toro la nos ofrece un m dulo que
form a parte de la arq u itectu ra de estos M C U , y D iseo de algoritm os incorrectos
q u e es el encargado de facilitar al program ador V ectorizacin inapropiada
la tarea de v ig ilar q ue la ejecucin del program a Ejecucin de instrucciones de salto fuera de rango
residente en la m em oria del dispositivo sea efec A lteracin de registros y banderas por ruido
tu ad a en form a cclica y sin interrupciones. elctrico in d ucid o
M o d ificaci n de registros d u ran te la conexin
El m dulo de operacin apropiado de la com y desconexin de la alim en taci n
putadora (C O P ), ha sido diseado con un conta
dor de carrera libre que se encarga de generar una Para evitar q u e el tem p o rizad o r asociado al
seal de reset interna en la C P U 0 8 , cada que se m d u lo CO P, genere un ciclo de reset, se debe
desborda su capacidad de conteo. EL C O P ayuda bo rrar p eri d icam en te y an tes de su desbord a
al softw a re a recuperar su flujo norm al cada vez m ien to ; esto se debe h acer en uno o varios lu-
SIM
CIRCUITO DE RESET DEL SIM
20SC0UT
REGISTRO DE ESTADOS
DEL RESET

FUENTES INTERNAS
DE RESET

BSQUEDA DE UN
VECTOR DE RESET

ESCRITURA
DEL COPCTL

RELOJ DEL COP

MDULO COP

COPEN (Desde SIM)


COPD (Desde C0NF1G1)

RESET

Escritura del COPCTL

Selector de rango del


C0P(C0PRS del
C0NFIG1)
Figura 23.1 D iagram a de bloques del m dulo COP

(S M /te iT s Curso p r ctico sobre M icrocontroladores


gares estratgicos del p ro gram a in sertan d o in s
truccio n es que co lo qu en en ceros el registro de Esta seal es la salida del m dulo oscilador del
este tem p orizador. La caracterstica d el tem p o M C U , y su frecuencia es igual a la del cristal de
rizador de carrera lib re g aran tiza q u e, luego de cuarzo elegido, o a la de la red R C establecida.
su bo rrado, la tem p o rizaci n de form a au to m
tic a se in ic ia nuevam ente.
Por m edio de este registro se pueden borrar los
Funciones del m dulo COP contadores de los m dulos C O P y SIM que
En la fig u ra 2 3.1 se m uestra la estructura en blo intervienen en el tem porizador de vigilancia del
ques sim p lificad a del m du lo de v igilan cia COP, program a; para ello solam ente se requiere escri
en ella se puede observar q ue su contador posee bir un valor cualquiera en el registro C O P C T L ,
un registro de 6 bits, y que esta precedido por el usando alguna de las instrucciones de escritura
contador de 12 bits d el m dulo del sistem a de que form an parte d el conjunto de instruccio
in tegracin (S IM ). Si el program ador no lo bo nes del m icrocontrolador.
rra por so ftw a re , el contador del C O P se desbor
d ar y activar un ciclo de reset fuera de sin cro n i En la fig u ra 2 3 .2 se m uestra el registro de con
zacin despus de haber ejecutado 2 18 - 2 4, o 2 13 - trol del m d u lo C O P (C O P C T L ); ste se en
2 4 ciclos de reloj de la seal 2 0 S C 0 U T , y esto cuen tra localizado en la posicin de m em oria
depende del estado del b it selector de rango del $FFFF, y se sobreescribe en la parte baja del
tem porizador (C O P R S), que se en cuen tra en el vector del re se t. La escritu ra de un nuevo va
registro de configuracin nm ero uno. lor en este registro d eterm in a el in icio de un
nuevo periodo de vigilancia por parte del tem
C u an d o el p ro gram ad o r h a seleccio n ad o la porizador del COP.
opcin de desb o rd am ien to a los 2 18 - 2 4 ciclos
del reloj 2 0 S C 0 U T , se o b ten d r el m xim o pe En cualquier caso, la lectura del registro C O PC T L
riodo de tem p o rizaci n , lo cual sign ifica que, obligar a la C P U a devolver al program ador el
p o r ejem p lo , si usam os u n cristal de 8 M H z , el contenido de la parte m s baja (el b yte menos
m d u lo gen erar un reset cada 3 2 ,7 6 6 m s. Para significativo) del vector del reset, q ue tam bin
in ic ializ a r de nuevo el tem p o rizad o r d el C O P e est ubicado en la posicin $F CFF
im p e d ir la ejecu ci n del reset, es necesario bo
rrar los registros de los contadores d el C O P (6 El reset a la conexin PO R
bits) y del S IM (1 2 b its ) por m edio de u n a o D entro del m dulo S IM se encuentra el c ir
varias in stru ccio n es ub icad as dentro del p ro gra cuito que soporta el reset a la conexin (P o w er -
m a, antes de q ue se c u m p la el tiem p o de des O n R eset, P O R ); en este caso, l se ocupa de
b o rd am ien to program ado. generar u n a seal que borra el contador del
SIM al transcurrir 4 .0 9 6 periodos de la seal
Las seales del m dulo COP 2 0 S C 0 U T , luego de haber conectado la a li
En la fig u ra 2 3.1 p u ed en verse las se ales q u e m en taci n del M C U .
in te r v ie n e n en el m d u lo C O P de la
C P U 0 8 ; stas so n : la e n tra d a d e relo j
D ir e c c i n : SFFFF
2 0 S C 0 U T , la e n t r a d a d e e s c r it u r a
Bit 7 6 1 Bit 0
C O P C T L , la se al de r es et a la co n ex i n
L e c tu ra : BYTE B A JO D E L V EC TO R DE RESET
P O R , el r eset in te rn o , la se al de b sq u e
E s c r it u r a : BO R R A E L CO N TAD O R D E L C OP
d a d el v ecto r de reset, la se al de in h a b i
R eset No es afectado
lita c i n del C O P (C O P D ), y la se al se
le c to ra d el rango d el COP. F ig u ra 2 3 .2 Registro de con trol del m dulo COP (COPCTL)

Curso p r ctico sobre M icrocontroladores G & M in n :


L u s lu iiiiL u s L ^ i ird c il i t i g liliC U : GUI1, LV'l y LvLiL

es el b it selector del ran go del periodo


Los dos contadores que intervienen en el tiem del tem porizador, y tras la ejecucin de u n ciclo
po de v igilan cia del CO P, son borrados tras el de reset ser borrado.
reconocim iento y la ejecucin de cu alq u ier ci
clo de reset interno. C o n l lgico: el periodo program ado ser (213 - 24)
X 2 0 S C 0 U T ciclos.
C on 0 lgico: el periodo program ado ser (2 18 - 24)
C uando la direccin de u n vector de reset se X 2 0 S C 0 U T ciclos.
coloca en el bus de direcciones, se in ic ia un
ciclo de bsqueda del vector y con ste se bo es el b it que nos perm ite habilitar o inha
rrar el contador d el SIM . bilitar el m dulo COP, y su estado ser colocado
en cero luego de la ejecucin de un ciclo de reset.
ab ili on
La entrada C O P D es un reflejo del estado del C on 1 lgico: el m dulo C O P ser inhabilitado.
b it 0 del registro de configuracin nm ero uno C on 0 lgico: el m dulo C O P ser habilitado.
(C O N FIG 1), llam ado tam bin C O P D , y por
m edio del cual se in h ab ilita la operacin del F inalm en te, vale la pena an otar el com por
tem porizador del COP. tam ien to del m dulo C O P d u ran te alguno s de
los estados de op eraci n m s im p o rtan tes del
m icrocontrolador. En el m odo m onitor y en el
m odo de in terru p ci n (BREAK ), el C O P es a u
Por m edio de esta e n tra d a d e l m d u lo C O P to m ticam ente in h ab ilitad o cuando el p in IR Q l
se d e te rm in a el ran go de los co n tad o res, lo R S T es puesto en un nivel de voltaje igu al a
c u a l, de la m an o con la frecu en cia de o p e V DD + V H|. Sin em bargo, no ocurre lo m ism o
ra c i n , nos p e rm ite d e fin ir el m x im o p e d u ran te el estado de espera del M C U (m odo
rio d o p ara el te m p o rizad o r v ig ila n te . El b it W A IT ); en este estado el C O P no se detiene y
7 del registro C O N F IG 1 es el se le c to r de debe usarse una ru tin a de in terru p ci n para bo
ran go d el C O P, llam ad o C O P R S ; y su esta rrar perid icam ente su contador.
do se in fo rm a al m d u lo C O P a travs de
esta e n tra d a. En el otro m odo de operacin de bajo con
sum o, conocido com o estado de paro del M C U
En la f ig u r a 2 3 .3 se p re se n ta el reg istro (m odo S T O P ), el con tador del SIM se borra y la
d e c o n f ig u r a c i n n m e r o u n o (C O N seal de entrada de reloj del m dulo C O P (2 0 S -
FIG 1) d e la C P U 0 8 , y se d e sc rib e n las C O U T ) se desconecta.
fu n c io n e s d e los dos b it s q u e se in v o lu
c ra n en e l f u n c io n a m ie n to d e l m d u lo El m dulo inhibidor por voltaje bajo LVI
C O P, C O P R S y C O P D . (lo w voltage inhibtor)
C uando el voltaje de alim entacin cae abrup
Direccin: $001F tam ente, o el m icrocontrolador se som ete a
B it7 6 5 4 3 2 gt0 conexiones y desconexiones rpidas, es pro
Lectura: bable q ue los datos de registros y banderas
COPRS R R LVID R SSREC STOP COPD
E scritura: de estado resulten alterad o s; esto sucede
R eset
cuando la C P U 0 8 pierde la alim entacin
0 0 0 0 0 0 0 0
durante el transcurso del proceso de ejecu
I Reservado cin de ciertas instrucciones, que involucran
F ig u ra 2 3 .3 P rim e r registro de configuracin fCONFIG1) el m ovim iento de datos dentro del M C U .

G M B C B T ,: Curso p r ctico sobre M icrocontroladores


los registros C O N F IG 1 y C O N F IG 2 ; a con
tin u aci n se describirn los b its que in tervie
nen en l. En la figu ra 2 3 .3 se m uestra el re
gistro C O N F IG 1, m ientras que en la figu ra
2 3 .5 se puede apreciar el registro C O N F IG 2.
* 4 ~

este b it pertenece al registro C O N


DETECTOR DE V D D > LVIj r ip = o LVI RESET
FIG 1, se encuen tra en la posicin del b it A, y
VOLTAJE BAJO es el in terru p to r de habilitacin del in h ib i
e n v dd
VDD < lv ,TRIP = 1 dor por voltaje bajo. Su condicin siem pre
ser cero luego del reset.
F ig u ra 2 3 .4 Diagram a de bloques del
m dulo in h ib id o r p o r voltaje bajo LVI C o n 1 lgico: el m dulo LVI se in h ab ilita.
C on 0 lgico: el m dulo LVI se h ab ilita.
C o n el propsito de evitar esto, los m icro
controladores 6 8 H C 0 8 poseen un m dulo que estos dos bits pertenecen al re
m onitorea continu am en te el nivel d e voltaje pre gistro C O N F IG 2, y por m edio de ellos se puede
sente en el pin de alim en taci n del m icrocontro- program ar el um bral de disparo del voltaje del
lad o r V DD, y genera un ciclo de reset cuando el m dulo in h ib id o r (ZV7 trip volta ge). Por m edio
voltaje cae p o r debajo del u m b ral definido para de u n ciclo norm al de reset su estado no ser afec
el in h ib id o r (LVI trip volta ge). El circu ito LVI tado; sin em bargo, cuand o el reset es generado
puede ser h ab ilitad o o in h ab ilitad o por el usua por el P O R , am bos bits s o n borrados.
rio, y el u m b ral de voltaje del in h ib id o r puede
ser tam bin seleccionado por el program ador. En la ta b la 2 3 .1 se m uestran las opciones
de seleccin q u e p u ed en elegirse por m ed io de
En la figu ra 2 3 .4 se m uestra el diagram a en estos dos bits.
bloques de la estructura del circuito del m dulo LVI,
este modulo contiene un circuito especial (bandgap) El m dulo de interrupciones para
de referencia y un comparador, como partes princi teclado KBI
pales, y por medio de el b it de control LVID se Com o una herramienta de gran utilidad para el pro
puede habilitar o inhabilitar el circuito detector de gramador, y teniendo en cuenta el uso frecuente de
voltaje de alim entacin bajo, cuando se coloca en 0 los microcontroladores en las interfaces de teclados
1 lgico, respectivamente. matriciales, los M C U de esta fam ilia incluyen un
conjunto de siete interrupciones externas que pue
Por medio de los bits de seleccin del voltaje de den ser enmascarables y estn accesibles a travs de
inhibicin el programador le define a la C P U del los siete primeros pines del puerto A (PTAO a PTA6).
microcontrolador cual ser el nivel de voltaje
al cual se proteger, y generar la seal de reset-, Direccin: $001E
m ientras que para activar el ciclo de reset el m Bit 7 6 5 4 3 2 1 BitO
dulo LVI tiene la salida LVI reset que afecta Lectura:
IRQPUD R R LVIT1 LVITO R R R
directamente a la CPU . Escritura:
feset 0 0 0 Nosonfectactes 0 0 0
Registros de control del m dulo POR: 0 0 0 0 0 0 0 0
LVI (C0NFIG2 y C0NFIG 1)
W H Reservado
Todas las acciones de control sobre las fun
ciones del m du lo LVI se efectan desde F ig u ra 2 3 .5 Segundo registro d e configuracin (C0NFIG2)

Curso prctico sobre M icrocontroladores


Lus luiiulus iSiipLilei* el fitUjM: COL-, LVl y Idil

D escripcin del m dulo KBI


V o lta je de
LVIT1 LVITO C o m e n ta rio s En la fig u ra 2 3 .6 se h a representado de
d is p a ro
m anera sim p le el circuito que constituye
0 0 P a ra VD D = 3 V el m dulo KBI; a ll se m uestra que por
VLVR 3 <2 4 V >
0 1 Para VDD = 3V
m edio d e los bits KBIEx del registro habi-
% R 3 < 2 .4 V )
litad o r de las in terrupcion es para teclado
1 0 VLVR 5 (4 .0 V ) P a ra VD D = 5 V (K BIER), se h ab ilitan o in h ab ilitan inde
1 1 Reservado p en d ien tem en te cada una de las entradas
del puerto A disponibles com o in terru p
Tabla 23.1 Tabla de seleccin del umbral de voltaje de inhibicin del mdulo LVl
ciones para teclado. Al h ab ilitar algu n a de
Las p rin c ip ale s caractersticas d el m d u lo estas entradas de in terru pcin , tam bin se
KBI son : h ab ilita la resistencia p u ll-u p que le corresponde
in d ep end ien tem ente del estado de los b its del re
1. Posee siete interrupciones activas en nivel bajo, gistro de control de las resistencias del puerto A
con entradas enm ascarables in d ep en d ien te (PTA PU Ex).
m ente y tam b in de m anera global.
C u an d o u n a entrada de in terru p ci n para
2 . T ie n e c o n fig u ra ci n por s o ftw a r e de las re teclado es h ab ilitad a, y recibe un cero lgico por
sisten cias de p u ll- u p en c ad a e n tra d a de in el correspondiente pin, in m ed iatam en te se me-
terru p ci n . m oriza e in ic ia un proceso de reconocim iento y
so licitu d de in terru pci n , y el m odo de funcio
3 . El nivel de sensibilidad del disparo de la inte n am ien to del KBI define que cada vez q ue uno o
rrupcin puede ser seleccionado por flanco m s de sus pines de en trad a se ponen en cero,
solam ente, o por flanco y nivel. luego de haber estado todos en nivel alto, se me-
m orizar u n a in terrupcin por teclado.
4 . T odas las en trad as de in te rru p c i n p a ra te
clad o rep resen tan u n m ed io eficaz p ara sa L a se n sib ilid a d al d isp aro de la in te rru p
c ar a l m icro co n tro lad o r de c u a lq u ie ra de los ci n d el teclad o q u e se h a y a p ro gram ad o en el
estado s de b ajo co n su m o ST O P y W A IT . resp ectivo b it de co n tro l (M O D E K ) d eb e te-

BUS INTERNO
F ig u ra 2 3 .6 Diagram a en bloques d e l m dulo de interrupciones
p a ra teclado KBI

KBIO

AL HABILITADOR PU U UP

KBI6 SOLICITUD DE
INTERRUPCIN
DEL TECLADO

AL HABILITADOR PUU UP

230 d E M C J T i.4. Curso p rctico sobre M icrocontroladores


Teora

nerse en c u e n ta p a ra ev itar perd er alg u n as so A l escribir un 1 lgico en este b it se borran todas


lic itu d e s de in te rru p c i n , ya q u e cu an d o la in las solicitudes de in terrupcin por teclado pen
te rru p ci n so lo o b edece al flanco d e b ajad a, d ientes en el puerto A, y por m edio del ciclo de
sta p u ed e ser b lo q u e ad a p o r c u a lq u ie ra de las reset es puesto en cero lgico.
otras en trad as de in te rru p c i n que p erm an ez
can en cero. Esto no su ced e cu an d o se ha se es el b it de en m ascaram ien to de to
leccio n ad o el d isp aro p o r flan co y n ivel b ajo , d as las in terru p cio n es del m dulo K BI, puede
pues bajo esta c o n d ic i n la in te rru p c i n ser ser escrito o led o , y por m edio del ciclo de reset
reco n o cid a tan p ro n to com o c u a le sq u ie ra de ser borrado.
sus pines se c o lo q u e en cero.
C o n 1 lgico: se enm ascaran o in h ab ilitan todas
Registro de estado y control del las interrupciones del m dulo KBI.
m dulo KBI (KBSCR) C o n 0 lgico: se h ab ilitan todas las in terru pcio
El registro de estado y control de las in terru pcio nes para teclado del KBI.
nes para teclado llam ado K B SC R , se usa para
h ab ilitar el reconocim iento y el enm ascaram ien es el b it que controla la sensibilidad
to de tales interrupciones, y para configurar el del disparo de las interrupciones del KBI en los
tipo de sensibilidad al disparo. Tam bin uno de pines del puerto A, por m edio del ciclo de reset se
sus bits s e usa com o sealizador de la so licitu d de coloca en cero, y puede ser d e lectura y escritura.
interrupciones.
C on 1 lgico: se activa la sensibilidad de las interrup
En la fig u ra 2 3 .7 se m uestra el registro KBS ciones por flanco de bajada y nivel de voltaje bajo.
C R , y a continuacin se describen las funciones C on 0 lgico: se sensibiliza la solicitud de interrup
de los bits que hacen parte del m dulo KBI. ciones por m edio del flanco de bajada solamente.

Es el b it bandera q ue sealiza el estado de Registro h abilitad or de las


so licitu d de una in terru p ci n por teclado pen interrupciones del m dulo KBI (KBIER)
d iente en el puerto A. Es de slo lectu ra, y el reset Este registro se usa para h ab ilitar o in h ab ilitar de
lo borra. m an era in d iv id u al cada una de las in terru p cio
nes en los pines d e l puerto A , que form an parte
C on 1 lgico: el b it indica q ue h ay u n a in terru p del m dulo K BI. En la fig u ra 2 3 .8 se m uestra el
cin por teclado pendiente. registro de h ab ilitaci n K BIER y en segu id a se
C o n 0 lgico: el b it in d ica que no h ay u n a in te describen las funciones de los b its que hacen par
rrup cin por teclado pendiente. te del m dulo KBI.

es el b it de reconocim iento de la in te con cada uno de estos b its se


rrup cin por teclado y es de slo escritura. p ueden h ab ilitar o no los pines del puerto A, que
se asocian con cada una de las entradas de
D ir e c c i n : $ 0 0 1 A in terrupcin para teclado. Todos son de lec
B it 7 6 5 4 3 2 1 B it 0 tu ra y escritu ra, y por m edio de un ciclo
L e c tu ra : 0 0 0 0 KEYF 0 de reset sern borrados p ara in h a b ilita r las
ii\/iAQii
IIVIAolNft R /in n ri
IVIUUtlS
E s c r it u r a : | ACKK e n trad as K BI, y h a b ilita r el registro d el
R eset 0 0 0 0 0 0
puerto A.
o

|Sinestablecer
C on 1 lgico: cada uno de los bits de con
F ig u ra 2 3 .7 R egistro de estado y con trol de l m dulo KBI (KBSCR) trol KBIx h abilitan el correspondiente pin

Curso p rctico so b re M icrocontroiadores


Lus LiiiLlus esuiSaLes Ed litilC: CUfi LVL y Util

D ir e c c i n : $ 0 0 1 B
Nota:
3 2 1 B itO
B it 7 6 5 4 La programacin de una entrada de in
L e c tu ra : 0
K B IE 6 K B IE 5 KB IE 4 K B E 3 K B IE 2 KB IE 1 KBIEO terrupcin para teclado, no evita que
E s c r it u r a :
deba ser configurada como una entrada.
R e s e t. 0 0 0 0 0 0 0 0 C u an d o el p ro gram ad o r pone en uno
l gico c u a le sq u ie ra de los b its d e h a b i
lita c i n d e la in te rru p c i n p a ra teclad o
Figura 2 3 .8 Registro habilitador de las interrupciones del mdulo KBI (KBIER) KBIEx, o b lig a a q u e el p in d el puerto
de la in te rru p c i n co rresp o n d ien te sea
en el puerto A com o una entrada de in terru p c o n fig u rad o p o r la C P U 0 8 com o u n a
cin para teclado. e n tra d a; sin em b arg o , es im p o rtan te re
C on 0 lgico: cada uno de los b its de control co rd arle al u su ario q u e p ara leer d ich o
KBIx in h ab ilitan el correspondiente p in en el pin no d eb e o lv id ar p o n er en cero l
puerto A com o u n a entrada de in terru p ci n para gico, p o r m edio d e s o ftw a r e , el corres
teclado, y lo definen com o u n puerto de prop p o n d ie n te b i t d el registro de d irecci n
sito general (puerto A ). de d ato s d el p u erto A (D D R A ).

PARA SABER MS:


Inicializacin de las entradas del mdulo KBI
C uando se h a b ilita un p in de in te rru p c i n p a ra te c la d o , le to m a a lg o de tie m p o a lc a n z a r el uno
l g ic o en v irtu d de la c o n e x i n de su re s is te n c ia in te rn a de p u ll-u p , y d u ra n te e s te b re ve p e rio d o
de tie m p o , la CPU08 p u e d e re c ib ir fa ls a s se a le s d e in te rru p c i n . Para e v ita r q u e se p ro d u zca n
in te rru p c io n e s fa ls a s d u ra n te la in ic ia liz a c i n del m d u lo KBI, lo s in te rru p to re s de lo s re g is tro s de
e sta d o y c o n tro l KBSCR y KBIER se de be n a c tiv a r de a c u e rd o co n lo s s ig u ie n te s pasos:

PASO 1. Use el /lM A S K K p a ra e n m a s c a ra r to d a s la s in te rru p c io n e s de te c la d o ,


c o l q u e lo en uno lgico.

PASO 2. Use lo s b its ad e cu a d o s KBIEx p a ra h a b ilita r de m a n e ra in d e p e n d ie n te los


p in e s de la s e n tra d a s de in te rru p c i n e le g id a s p a ra te cla d o .

PASO 3. B o rre c u a lq u ie r s o lic itu d de in te rru p c i n fa ls a y p e n d ie n te p o r m e d io del b it


ACKK, al c o lo c a rlo en uno l g ico

PASO 4. B o rre el b it IM ASKK p a ra h a b ilita r to d a s la s in te rru p c io n e s p o r te c la d o


qu e h a yan s id o e le g id a s.

U na vez h a b ilita d a s la s in te rru p c io n e s , a q u e lla que se p re se n te en un p in s e n s ib le al fla n c o de


b a ja d a s o la m e n te s e r re c o n o c id a de in m e d ia to ; p e ro , c u a n d o lle g e a u n a e n tra d a s e n s ib le al
fla n c o y a l n ive l bajo, el re c o n o c im ie n to de la in te rru p c i n se h a r luego de un tie m p o de re tra so
qu e s e r fu n c i n del tip o de ca rg a e x te rn a a ll p re se n te .

O tra fo rm a de e v ita r in te rru p c io n e s fa ls a s , c o n s is te en c o n fig u ra r lo s p in e s del te c la d o co m o


sa lid a s , p o r m e d io d e lo s b its a d e cu a d o s del re g is tro de d ire c c i n de d a to s del p u e rto A (DDRA),
a n te s de h a b ilita r la s e n tra d a s de in te rru p c i n p a ra el te c la d o p o r m e d io de lo s b its KBIEx.

232 G M IK M T s . Curso p rctico sobre M icrocontroladores


EL MDULO CONVERTIDOR A/D
(ADC) Y EL SIM DEL 68HC08
L a c a p a c id a d d e l m ic r o c o n tr o la d o r p a ra r e c ib ir y p r o c e
sa r s e a le s a n lo g a s , q u e p u e d e n a s u m ir c u a lq u ie r v a lo r
en el tie m p o a trav s d e lo s A D C , h a s id o m u y im p o r
ta n te p o r q u e a m p li la g a m a d e u so s d e esto s d is p o s iti
v o s d e n tr o d e la in d u s t r ia y la in v e s tig a c i n , p e r m it i n
d o le s in tr o d u c ir s e c o n g r a n fu e rz a e n e l d e lic a d o c a m p o
d e la in s tr u m e n ta c i n e le c tr n ic a .

E l S I M es u n m d u lo q u e e n lo s m ic r o c o n tr o la d o r e s d e
M o to r o la c o o r d in a y v ig ila to d a s la s a c tiv id a d e s q u e d e
b e n lle v a rs e a c a b o d e s d e la C P U , a s c o m o el in g re s o y
r e to rn o a d e c u a d o d e lo s m o d o s d e o p e ra c i n e sp e c ia le s.
1
3. L
ui
iLi
lc
dLi
v.ltiql'.
-LQ ^AliC) vLSLLeLdlOI

El m dulo de conversin anloga a c ro co n tro lad o r. La tarea de co n versi n A/D se


d ig ital ADC lleva a cabo a travs de diversas tcn icas, y cu en
Para todos aquellos usos d el m icrocontrolador, ta con u n a a m p lia g am a de c irc u ito s in te g ra
en el cam po de las m edidas, la supervisin, y la d os A D de v ario s fab ric an tes q u e la so p o rtan ;
in strum en tacin de variables fsicas con com por sin em b arg o , con el m d u lo A D C d en tro del
tam iento an al gico (seales que pueden asum ir M C U se o b tie n e n v en tajas pro p ias de la tecn o
in finitos valores en el tiem p o ), q ue son m u y fre lo g a de in te g ra c i n , com o son la red u cci n de
cuentes, los M C U de la fam ilia H C 0 8 de M o to esp acio , el co n su m o de p o ten cia y el costo; ad e
ro la h an in cluido dentro de su arqu itectu ra una m s, se m in im iz a n los riesgos de e fec tu ar y leer
h erram ien ta fu n d am en tal p ara convertirlas en co n versio n es falsas o alterad as, d eb id as a in ad e
seales digitales (seales que slo asum en valores cu ad o s sistem as de tie rra y cablead o.
discretos en el tiem po): el m dulo de conversin
an lo ga a d ig ita l (A D C ). El m d u lo A D C , d en tro del M C U , le per
m ite al u su ario u n con trol total sobre las con
La conversin de u n a se al an lo g a en d i versiones de cad a uno de su s canales p o r m edio
g ita l es u n trab ajo q u e se d eb e h acer p rev ia del cdigo de p ro gram aci n , y se co m u n ica d i
m en te, si se q u ie re re c ib ir y p ro cesar p o r m e rectam en te con la C P U p o r m ed io de seales de
d io de c u a lq u ie r sistem a d ig ita l com o el m i in terru p ci n q u e se generan al fin al de cad a ci-

* Lee los DDRB/DDRD


Inhabilita

C/5
o Escribe en PTB/PTD
ADC x

o
o
z
ce
L
h-U
Z
c/5 Lee los PTB/PTD
=
co

R egistro de
riafn<:
lia iV J o ripf
U C I nADC
l/u II Inhabilita
Canal x del ADC

CH1 CH12

UUUUiiU
SELECTOR DE
CANALES -CH[4:0]
VOLTAJE DE (1 de 12 canales)
ENTRADA DEL ADC
(ADCVIN)
AIEN COCO

RELOJ DEL BUS'

A D IV [2 :0 ] A D IC L K Figura 24.1 D iagram a de bloques d e l m dulo ADC

O m x M T .: Curso p rctico sobre M icrocontroladores


co de conversin; de esta m an era, la C P U no Voltaje de conversin ADCVIN
resu lta desviada de su ru tin a p rin cip al d u ran te Los lm ites p ara el voltaje d e conversin siem pre
el tiem po de conversin de cada can al. Las ca estn definidos por la m ag n itu d de la fuente de
ractersticas de este m d u lo son: alim en taci n del m icrocontrolador; de esta for
m a, para un voltaje de entrada igual o m ayor a
U n convertidor A/D con doce canales de en V DD, el A D C entregar com o resultado de la con
trada de 8 bits, m ultiplexados. versin un dato igual a $FF, m ientras q ue para
T cn ica de conversin an lo ga a d ig ita l por V SS o m enos, el dato ser $ 0 0 . Todos los otros
aproxim aciones sucesivas. valores del voltaje de en trad a que se encuentren
R esolucin de 8 bits por canal. entre V ss y V DD, obtendrn una conversin li
Dos modos de conversin, continua o por ciclos. neal y podrn ser representados por una ln ea es
Dos indicadores de fin de conversin, por se calo n ad a con p en d ien te constante, y d iv id id a en
alizador o p o r interrupcin. 2 5 6 valores discretos ($ 0 0 a $FF).
S e le c to r d e la fu e n te d e l relo j d e m u e s-
treo d e l A D C . Nota;
Para evitar daos perm anentes en los puertos que
se com parten con los canales A/D, la m ag n itu d
El m dulo A D C se m uestra en la figu ra 2 4 .1 , all del voltaje de en trad a anlogo A D C V IN nunca
se ve el diagram a del circuito electrnico de este d e b e e sta r p o r e n c im a ni p o r d e b a jo d e los
m dulo representado en sus principales bloques. u m b rale s de a lim e n ta c i n V DD y V ss, resp ec
tiv a m e n te .
Todos los canales de en trad a anlogos capa
citados para m uestrear seales externas, se en Tiem po de conversin
cuen tran disponibles a travs de los term inales Para com pletar un ciclo de conversin, el m du
d el M C U q ue corresponden con los puertos de lo A D C usa 16 estados de su reloj in terno, y se
p ro p sito g en eral PTBO a P T B 7 , y PTDO a in icia con el prim er flanco creciente de dicho
P T D 3 ; y por m edio del registro de estado y con reloj. Por m edio de la sigu ien te ecuacin se p u e
trol del A D C (A D SC R ) se definen cuales de los de calcu lar el tiem po que tom a una conversin:
doce canales estarn activos y se com portarn
com o entradas anlogas. Tiempo de 1 6 perodos del reloj del A D C
conversin Frecuencia del reloj del A D C
Para resu m ir el co m p o rtam ie n to d el m
d u lo A D C , se p u ed e an o tar, q u e, por m edio
de u n m u ltip le x o r an lo go se e lig e uno de los Por ejem p lo, para una frecuencia de reloj del
doce can ales A/D com o la fu en te de v o ltaje de A D C d efin id a en 1M H z, el tiem po de un ciclo
en trad a (A D C V IN ) del n ico co n vertid o r an de conversin com pleto ser d e l s y la m xim a
logo a d ig ita l d isp o n ib le en el m d u lo , y lu e frecuencia de m uestreo ser ig u al a 6 2 ,5 k H z.
go, este v o ltaje an lo go , p o r m ed io de ap ro x i
m acio n es su cesivas, se c o n v ierte en u n a m ag M odo de conversin continua
n itu d d iscreta rep resen tad a en 8 b its en el re U na vez se activa el m odo de conversin co n ti
g istro de datos d el A D C . Al fin a liz a r u n ciclo nua, el m dulo A D C efecta ciclos consecutivos
de co n versi n el m d u lo A D C g rab a el resul de conversin A/D sobre e l canal de en trad a se
tad o con re so lu ci n de 8 b its en el reg istro de leccionado, y sobrescribe y actualiza el conteni
d ato s d el A D C , llam ad o A D R ; y p o n e en uno do del registro de datos A D R al co n clu ir cada
l gico su co rresp o n d ien te b it b an d era C O C O , tiem po de conversin. Para in terru m p ir el pro
o b ien , g en era u n a so lic itu d de in te rru p c i n . ceso de conversin co n tin u a, se requiere borrar
M *
Curso prctico sobre M icrocontroladores G M IK M T 1 235
13. L u d u la c a iiV L m ic i'A 1 2 ^12C ] y d . SLLvl e l E c lC d c

D ire c c i n : S 003C
el b it de control A D C O q u e hace p arte del
registro de estado y control del A D C . B it 7 6 5 4 3 2 1 B it 0
Lectura: COCO
AfEN ADCO CH4 CH3 CH2 CH1 CHO
E s c ritu ra : |
En este m o d o , el b it de conversin
co m pleta C O C O se coloca en uno despus Reset. 0 0 0 1 1 1 1 1

de cad a conversin exitosa; y el usuario e s ta b le c e r


podr borrarlo p o r so ftw a re escribiendo d i
rectam ente sobre el registro A D S C R , o, le F ig u ra 2 4 .2 Registro de estado y co n tro l d e i ADC (ADSCR)

yen d o el registro de datos A D R.


sin se com pleta, es de slo lectura; y puede
L a s in te rru p c io n e s d e i ADC ser au to m ticam en te borrado al escribir d i
A l colocar un uno lgico en el b it habilitador de la rectam ente en el registro A D S C R , o, al leer el
interrupcin del convertidor A/D, llamado AIEN, registro A D R . El reset lo borra.
el m dulo es capaz de generar una solicitud de inte
rrupcin a la C PU 08 al cabo de cada ciclo de con C u an d o AIEN = 0:
versin. C uando la interrupcin del A D C est acti C on 1 lgico, indica conversin com pleta
va, el b it C O C O no se usa como bandera del fin de C on 0 lgico, in d ica conversin inco m pleta
conversin, sino que se usa para dis
parar la solicitud de interrupcin CH4 CH3 CH2 CH1 CHO Canal ADC Selector de entradas
cuando su estado es cero lgico.
0 0 0 0 0 ADCO PTBO
R e g is tro s d e c o n fig u ra c i n 0 0 0 0 1 ADC1 PTB1
0 0 0 1 0 ADC2 PTB 2
Los registros especiales del microcon 0 0 0 1 1 ADC3 PTB 3
trolador que se usan para definir los 0 0 1 0 0 ADC4 PTB 4
parmetros del m dulo convertidor 0 0 1 0 1 ADC5 PTB 5
A D C, son tres: el registro de estado
0 0 1 1 0 ADC6 PTB6
y control AD SCR, el registro de da
tos A D R, y el registro de configura 0 0 1 1 1 ADC7 PTB 7
cin del reloj ADICLK. En los si 0 1 0 0 0 ADC8 PTD3
guientes prrafos se hace la descrip 0 1 0 0 1 ADC9 PTD2
cin de cada uno de los bits que con 0 1 0 1 0 ADC10 PTD1
forman estos registros. 0 1 0 1 1 ADC11 PTDO
0 1 1 0 0
- No usado
En la fig u ra 2 4 .2 se m uestra el 1 1 0 1 0
registro A D SC R que nos per 1 1 0 1 1 - Reservado
m ite configurar los canales de 1 1 1 0 0 - No usado
conversin activos, habilitar la 1 1 1 0 1 VDD A(N ota1)
in terru p c i n , seleccio n ar su
1 1 1 1 0 VSSA <Nota 1)
m odo de trabajo, y conocer el
1 1 1 1 1 Apagado del ADC
estado de la conversin. -------------------------------
N o ta 1:
es el b it bandera a u e ^S vo*ta)es in te rn o s d e re fe re n c ia se u san p a ra v e rific a r la o p e ra c i n d e l c o n -
* v e r t id o r A D C .
sealiza cu an d o una conver- ja b la 2 4 .1 Tabla de seleccin de canales d e l m dulo ADC

3 m tr.. Curso prctico sobre M icrocontroladores


Direccin: S003D lo A D C , llam ad o A D R ; es
Bit 7 6 5 4 3 2 1 BitO de slo lectura, y su conte
Lectura: AD7 AD6 AD5 AD4 AD3 AD2 AD1 ADO
nido es in m ed iatam en te ac
Escritura: tualizado cada vez que una
c o n versi n te rm in a . D es
R eset Indeterminado despus de reset
pus d e un re s e t su estado
Sin establecer puede ser cualquiera.
F ig u ra 2 4 .3 Registro de datos d e l ADC (ADR)

Direccin: S003E
E n la fig u ra 2 4 .4 se m ues
Bit 7 6 5 4 3 2 1 BitO
Lectura: 0 0 0
tra el registro A D IC L K que
0
ADIV2 ADIV1 nA r w*nu 0 nos p e rm ite seleccio n ar la
Escritura:
frecu en cia d el relo j in tern o
Reset. 0 0 0 0 0 0 0 0
p a ra el m uestreo de las se
Sin establecer ales con el A D C , p o r m e
d io d e lo s b it s AD IVO a
F ig u ra 2 4 .4 Registro de configuracin del re lo j de l ADC (ADICLK) A D IV 2 se p u e d e s e le c c io
n a r e l d iv is o r u sad o p o r
es el b it de control de son los bits del e ste m d u lo p a ra g e n e ra r
la in terru p ci n del A D C , es se le c to r d e c an ale s A D C , el re lo j in te rn o d e l A D C .
de escritura, y cuando se co con los b its CHO a C H 3 se L a ta b la 2 4 . 2 m u e stra las
loca, el m dulo A D C gene e lig e uno de los doce cana o p c io n e s p a r a lo s b i t s
ra u n a in terrupcin al com les disponibles, y con el C H 4 A D IV x .
pletar la conversin. Las con se les asignan algunas funcio
diciones q ue borran este b it nes especiales. La tabla 2 4 .1 El m dulo del sistem a de
son iguales a las del C O C O . resu m e las co n d icio n es de integracin SIM
estos bits. El m d u lo d e l siste m a de in
C on 1 lgico, se h ab ilita la te g ra c i n S IM se rep resen ta
in terrupcin . en b lo q u e s en la fig u ra 2 4 .5 ;
C o n 0 lgico, se in h ab ilita e l S I M es el c o n tro la d o r del
la interrupcin. En la figura 2 4 .3 se m uestra estad o d el siste m a y se e n c a r
el registro de u n b y te que g a de c o o rd in a r to d as las a c
es el b it selector del contien e en todo m om ento tiv id a d e s e n tre la C P U y el
m odo de conversin co n ti el resultado de la ltim a con siste m a de buses. El S IM es
n u a o por ciclos del m dulo versin hecha por el m du- resp o n sab le de:
A D C , es de escritura, y nos
p erm ite elegir entre el m odo
ADIV2 ADIV1 ADIVO D iviso r del re lo j del ADC
d e conversin co n tin u a y la
conversin de un slo ciclo. 0 0 0 Reloj de entrada ADC v1
0 0 1 Reloj de entrada ADC-r 2
Con 1 lgico, se activa el modo 0 1 0 Reloj de entrada ADC t 4
de conversin continua. 0 1 1 Reloj de entrada ADC-r 8
Con 0 lgico, se inactiva la con
1 X X Reloj de entrada ADC-r 16
versin continua y se activa la
conversin de un slo ciclo. Tabla 2 4 .2 Tabla de preescaladores d e l re lo j del ADC (ADIVx)
*
Curso prctico sobre M icrocontroladores G S B M T .l < 237
ELliiiilL
ucuLimitf.E/D (
A.D
.E)yelS
LLv
leLE
fiL
-LG
iif
i

M dulo STOP
M dulo WAIT

CPU STOP (Desde CPU)


CPU WAIT (Desde CPU)

SIMOSCEN (hacia el oscilador)

CONTADOR RELOJ DEL COP


DEL SIM

2OSC0UT (Desde el oscilador)


OSCOUT (Desde el oscilador)

VDD
T
Resistencia pull-up CONTROL DEL RELOJ GENERADOR DE RELOJ Relojes internos
interna

Cdigo de operacin ilegal (Desde la CPU)


CONTROL DEL POR
CONTROL Direccin ilegal (Desde los decodificadores
CONTROL DEL PIN DE RESET i ACCTDT
MAESTRU del m apa de d ire c c io n e s )
REGISTRO DE ESTADO DEL RESET Desbordam iento del tem porizador del COP
DEL RESET O
E Reset del USB

RESET

DECODIFICADOR Y
CONTROL DE LA Fuentes de interrupcin
PRIORIDAD Y DE LA
-Interfaz de la CPU08
INTERRUPCIN

F ig u ra 2 4 .5 Diagram a de bloques del m dulo SIM

C o n tro lar la C P U 0 8 y los perifricos.


DIRECCIN ILEGAL
C o n tro la r la en trad a y sa lid a de los m odos es
CDIGO DE OPERACIN ILEGAL
p eciales d e fu n c io n am ie n to : STO P, W A IT, RESET
RESET DEL COP
RESET, y BREAK. INTERNO
POR
C o n tro lar el reloj interno del bus. LVl
C o n tro lar el reset m aestro, el de la conexin
F ig u ra 2 4 .6 Fuentes de inte rrup ci n internas de la CPU08
(P O R ), y el desbordam iento del COP.
C o n tro lar el procesam iento de todas las in te Todas las interrupciones internas de reset que
rrupciones externas e internas. afectan a la C P U 0 8 se m uestran en la figu ra 2 4 .6 ,
C o n tro lar la arqu itectu ra m o d u lar expansible estas son: direccin ilegal, cdigo de operacin ile
de las fuentes de in terru pcin . gal, desbordam iento del tem porizador del COP,
el reset a la conexin (P O R ), y el inhib idor por
Fuentes internas de interrupcin del reset bajo voltaje (LV l). Todas ellas fuerzan el p in de
Para c o m p le tar n u estro e stu d io d e la in te rru p entrada externa del R S T a un nivel bajo durante
ci n p rin c ip a l d e l M C U , el r eset , en esta o ca 32 periodos del reloj 2 0 S C 0 U T , para perm itir la
sin se h ar n fasis s lo en las cin co fuentes inicializacin de los perifricos externos conecta
in tern as que lo o rig in a n , ya q u e su e stru c tu ra dos alrededor del m icrocontrolador. En la figura
y las fuen tes extern as fu ero n a m p liam e n te tra 2 4 .7 se m uestra el diagram a de tiem pos de la vec-
tad as en o tra o casi n . torizacin de una interrupcin de este tipo.

Curso prctico sobre M icrocontroladores


IR S T
El re s e t de los m dulos
_E1 M C U lo p o n e e n c e ro
COP y LVI
D e estos dos m dulos, y a estudia
20SC0U T dos en detalle en la leccin anterior,
solo se d ir q ue am bos generan un
IA B V e c to r a lto
1 reset interno cada que se desborda
F ig u ra 2 4 .7 Diagram a de tiem pos de un re s e t interno el contador del COP, o cuando V DD
cae por debajo del um bral (V TR IP)
El reset a la conexin de la definido en el m dulo LVI. En cual
alim entacin POR q u ier caso, el proceso de la in terru p ci n slo se
C u an d o se conecta por p rim era vez la alim en in iciar a los 6 4 periodos del reloj 2 0 S C 0 U T , y
taci n al M C U , el m d u lo d el PO R ( p o w er -o n despus la estab ilidad del oscilador.
reset) genera un pulso p ara in d icar a la C P U que
esto ha sucedido, y se d a in icio a la secuencia de Los registros de estado del m dulo SIM
acciones propias del P O R , q ue son: Los registros del SIM son tres y estn localizados
en la m em oria entre las posiciones SFE00 y $FE03,
1. Se reconoce la fuente de reset in terna. por m edio de sus bits el program ador puede co
2. El SIM h ab ilita la salida de reloj 2 0 S C 0 U T . nocer el estado de la C P U 0 8 en todo m om ento.
3. Los relojes internos de la C P U y los m dulos
se d etienen d u ran te 4 .0 9 6 periodos del reloj
2 0 S C 0 U T , m ientras que el m du lo d el os En la fig u ra 2 4 .8 se m uestra el registro B SR ,
cilador se estab iliza. este registro de estado posee un b it bandera
4. El pin de entrada RST, se coloca en nivel bajo q u e in d ic a cu an d o la sa lid a de los m odos
durante el tiempo de estabilizacin del oscilador. ST O P y W A IT se ocasiona por un break, y se
3. El b it PO R del registro de estado del reset del le conoce com o SB SW ; para borrarlo se re
SIM (R S R ), se grab a con uno lgico, m ien quiere de un reset, o, escribir un cero en l.
tras que todos los otros b its de este registro
son borrados. C on 1 lgico, indica que la C P U sali de los
m odos ST O P o W A IT debido a u n a in terru p
El re s e t por cdigo de operacin ilegal cin break.
El S IM deco difica las seales que se o rig in an en C on 0 lgico, in d ica que la C P U no sali de
la C P U 0 8 para d etectar in stru ccio n es ilegales, los m odos ST O P o W A IT debido a una in te
cu alq u ie r in stru cci n ilegal pone en uno lgico rrupcin break.
el b it ILO P del registro R S R , y gen era u n a so li
c itu d de in terru p ci n por r eset interno. El registro d e estad o del reset (R SR ).
En la figura 2 4 .9 se m uestra el registro R SR ,
El reset por direccin ilegal este registro posee los b its band era que infor-
C u an d o el S IM se d a c u e n ta que la C P U
D ire c c i n : S FE00
h a in ic ia d o el ciclo de b sq u ed a de un
c d ig o de o p eraci n desde u n a d irecci n B it 7 6 5 4 3 2 1 B itO

L e c tu ra : SBSW
ileg al (fu era d el rea d el m ap a de m em o R R R R R R R
E sc ritu ra : N o ta t
ria d e fin id o p a ra la C P U 0 8 ), se gen era
un r e set p o r d ire c c i n ile g a l, y el S IM R eset

c o lo c a en u n o l g ic o el b i t de estad o N ota:
|S n e s ta b le c e r Al es crib ir u n cero lgico se borra el SBSW
ILA D d el reg istro R S R , in m e d ia tam e n te
an tes de re in ic ia r el M C U . F ig u ra 2 4 .8 R egistro de estado del m odo brea k (BSR)

Curso prctico sobre M icrocontroiadores < M B C K T ,.


D ire c c i n : SFE01 rante el ciclo de bsqueda de cu alq u ier c
Bit 7 6 5 4 3 2 1 B it O digo de operacin.
L e c tu ra : POR PIN COP ILOP ILAD MODRST LVI O
E sc ritu ra : C on 1 lgico, in d ica que el ltim o reset fu e
POR: 1 0 0 0 0 0 0 0 causado por el ciclo de bsqueda de u n c
establecer digo de operacin en u n a direccin ilegal.
C on 0 lgico, in d ica que el R SR fue ledo,
F ig u ra 2 4 .9 R egistro de estado del reset (RSR')
o se gener un PO R.
m an al usuario sobre la procedencia del lti
mo reset ejecutado. Para borrar todas sus ban es el b it de estado que sealiza el
deras auto m ticam en te (excepto la del PO R), reset del m odo m onitor.
basta leerlo.
C on 1 lgico, in d ica que el ltim o reset fue
es el b it de estado que sealiza al reseta. causado por la entrada al m odo m onitor.
la conexin (P oiver-O n Reset). C on 0 lgico, in d ica q u e el R S R fue led o , o
se gener un PO R.
C on 1 lgico, in d ica q u e el ltim o reset fue
causado por el circuito PO R. es el b it de estado q ue sealiza el reset
C on 0 lgico, indica que el registro R SR fue ledo. causado por el m dulo LVI.

es el b it de estado que sealiza al reset C o n 1 lgico, in d ica que el ltim o reset fue
externo RST. causado desde el circu ito LVI.
C o n 0 lgico, in d ica q u e el R SR fue led o , o
C on 1 lgico, in d ica que el ltim o res e t fue se gener u n PO R.
causado por el pin de en trada externo RST.
C o n 0 lgico, in d ica q ue el R SR fue ledo, o
se gener un PO R.
En la fig u ra 2 4 .1 0 se m u estra el registro
es el b it d e estado que sealiza el desborda B F C R , este registro contien e un b it de lectu
m iento del temporizador de vigilancia del COP ra y escritura que h ab ilita al program ador des
de el so ftw a re para bo rrar los bits de estado
C on 1 lgico, indica que el ltim o reset fue m ientras que la C P U est en estado de break,
causado por el COP. se llam a BC FE. C on el reset se pone en cero.
C on 0 lgico, in d ica q ue el R SR fue ledo , o
se gener u n P O R . C on 1 l gico, se h a b ilita el borrado de todos
los bits de estado d u ran te el break.
es el b it d e estado que sealiza al reset C on 0 lgico, se in h ab ilita el borrado durante
causado por una op eracin ilegal. el estado de break.

C on 1 lgico, in d ica q ue el ltim o r e s e t D ire c c i n : SFE03

fue causado por una operacin ilegal. B it 7 6 5 4 3 2 1 Bit 0


C on 0 lgico, in d ica q u e el R SR fue le L e c tu ra :
BCFE R R R R R R R
do, o se gener un PO R . E sc ritu ra :

R eset. 0
es el b it de estado que sealiza al ^ R e s e rv a d o
reset debido a una direccin ilegal du-
F ig u ra 2 4 .1 0 Registro de co n tro l de la bandera d e l brea k (BFCR)

e m a c a r ,! Curso p rctico sobre M icrocontroladores


ELMDULO DE LA II
DE TEMPORIZACION ( T IM )
DEL 68HC08
La cuenta del tiem po es la tarea ms com n den
tro de las aplicaciones de los m icrocontroladores
en cualesquiera de sus cam pos, y, por ello, el p ri
m er circuito perifrico interno de propsito espe
cial que se incorpor a la arquitectura de estos dis
positivos fue el m dulo temporizador.

Gracias a los m dulos tem porizadores, el progra


m ador puede contar cualquier periodo de tiem po
usando como base el ciclo del reloj interno del
m icrocontrolador, y, sin ocupar a la C PU .

Curso p r ctico sobre M icrocontroladores C W J fC IT . <{{241


1=1mdula i i Le. u ieiid i de taii[ietiieetdn (HM1 del dcLiCdc

La tempo rizacin de los eventos, por m edio aum en tado la eficien cia de los M C U considera
de los lazos de softw a re , fue la prim era forma de blem ente, perm itindonos, adem s de contar pe
contar el tiem po en los microcontroladores; sta es riodos largos de tiem p o, llevar a cabo otras fu n
una tarea simple, pero, no obstante, puede ocupar ciones que se basan en la cuenta del tiem po, ta
durante m ucho tiem po a la C P U e im pedir que les com o la transm isin y recepcin de datos, la
e lla desarrolle otras actividades reduciendo consi v ig ilan c ia de procesos, y el m anejo y control de
derablem ente la eficiencia del dispositivo. Este tipo otros dispositivos por m edio de las tcnicas cl
de temporizacin est adem s lim itada por el ta sicas de m odulaci n de pulsos.
m ao y el nm ero de registros de propsito general
disponibles, y, por lo tanto, slo se recom ienda para El T IM del 68H C 08
contar pequeos periodos de tiempo. En la figura 2 5 .1 se m uestra el diagram a de blo
ques del T IM (tim er in terfa ce m od u le). En esta lec
G racias a la in tegracin de circu ito s tem po- cin estudiaremos la segunda versin del T IM de
rizadores com o dispositivos perifricos dentro de los m icrocontroladores M o to ro la de la fam ilia
la arq u itectu ra de los m icrocontroladores, se le H C 0 8 (T IM 2 , versin B); ste es el m dulo de la
ha facilitado esta tarea al program ador, y se ha interfaz de temporizacin, y est compuesto por

RELOJ DEL SELECTOR DEL


BUS INTERNO PREESCALADOR

TSTOP

LGICA DEL
P PUERT0

r LGICA DE
INTERRUPCIN

LGICA DEL
PUERTO

LGICA DE
INTERRUPCIN

Figura 2 5 .1 D iagram a de bloques d e l TIM de l 68HC08

242 Js- ^ B iT d .. Curso prctico sobre M icrocontroladores


la m a

un temporizador de dos canales con entrada de cap do un flanco activo program ado se detecta por
tura, salida de com paracin, y funciones de m odu el pin de un canal configurado com o una en
lacin por ancho de pulsos (P W M ). Las principa trada de captura, el T IM guarda el contenido
les caractersticas que posee este m dulo son: del contador en los registros del canal corres
pondiente, T C H x H y T C H xL , y, adicional
Dos canales in dep endien tes con en trad a de m ente, puede generar una solicitud de interrup
cap tu ra y salid a de com paracin cin en la C P U 08.
Generador de salida P W M con b u ffer o sin buffer
Preescalador program able para el reloj del T IM
C o n tado r de carrera-libre, o en m dulo con U sando las funciones definidas para el circu i
tador ascendente to de com paracin del T IM , el M C U puede
B its de paro y reset del contador del T IM generar pulsos peridicos, con po larid ad , d u
A r q u ite c tu r a m o d u la r (e x p a n s ib le h a sta racin, y frecuencia program ables. C u an d o el
ocho can ales) contador igu ala el valor guardado en los re
gistros de un canal configurado com o salida
F u n c io n e s d e l T IM de co m paracin, el T IM puede poner, borrar,
El T IM com parte sus dos canales de entrada y sali o cam b iar el estado del p in asociado a dicho
da con los dos puertos I/O de propsito general, canal; y, ad icio n alm en te, puede generar una
PTD 4 y P T D 5; el principal com ponente del T IM so licitu d de in terrupci n en la C P U 0 8.
es el contador de 16 bits, de l proviene la referencia
para las funciones de captura y comparacin. Usan Cualesquiera de los dos canales programados
do los registros de 8 t s T M O D H y T M O D L el como salidas de comparacin pueden generar pulsos
program ador puede controlar el valor del m dulo directamente sin la intervencin de un buffer, y esto
contador del T IM , y puede leerlo en cualquier quiere decir, que para cambiar el valor de compara
m om ento sin afectar la secuencia de la cuenta. cin de la salida, que est guardado en los registros
del canal del T IM correspondientes, solo se requiere
En la estructura del T IM que se m uestra en sobreescribir el nuevo valor en tales registros.
la figu ra 25.1 se destacan las siguientes partes:
Los canales cero y uno (CHO y C H l) , tam
El preescalador del contador del TIM bin pueden enlazarse para configurar una salida
El bloque preescalador usa los b its P S [2 :0 ], de com paracin con b u ffer disponible a travs de
localizados en el registro de estado y control la salid a del canal cero (pin P T D 4/ T C H 0).
del T IM (T S C ), para se
leccionar la fuente del re
loj, y la salida de reloj pue DESBORDAMIENTO DESBORDAMIENTO DESBORDAMIENTO
de ser elegida entre siete PERIODO -
o p cio n e s de fre c u e n c ia VALOR DEL REGISTRO DEL
que se obtienen al d iv id ir MDULO CONTADOR DEL TIM

el reloj in terno del bus. ANCHO DE


PULSO

La entrada de captura VALOR DEL


Por m edio de las funcio TCHx J REGISTRO DEL
CANAL DEL TIM
nes de este bloque el T IM
puede capturar el tiem po SALIDA DE SALIDA DE SALIDA DE
durante el cual ocurre a l COMPARACIN COMPARACIN COMPARACIN
gn evento externo. C uan- F ig u ra 2 5 .2 Seal PW M generada p o r e l TIM d e l 68HC08

Curso p r ctico sobre M icrocontroiadores S M C iT ,


1=1 i u i u L lie La iLitenai e e taiiiiL&duLi flllflj el ticLCUc

El m odulado r PW M Direccin: $0020


La caracterstica que le p erm ite al T IM B it 7 6 5 4 3 2 1 B it 0
cam b iar el estado de la sa lid a de com para- Lectura: TOF 0 0
TOIE TST0P PS2 PS1 PSO
cin de c u alq u ier canal al desbordar el con- Escritura: 0 TRST
tad o r ( t o g g le - o n - o v e r flo w ) , se usa p ara ge- Reset 0 0 1 0 0 0 0 0
n erar u n a seal de salid a m o d u lad a por |Sin establecer
an ch o de pulsos (P W M ). C o n el valor de
los registros del m d u lo co n tad o r se d e F ig u ra 2 5 .3 Registro de estado y c o n tro l de l TIM (TSC)

te rm in a el periodo de la seal P W M , y el
estado del pin del canal cam bia cuando el contador
alcanza el valor del registro del m dulo contador. En la fig u ra 2 5 .3 se m uestra el contenid o del
registro T S C ; por m edio de este registro se
En la figura 25 -2 se m uestra u n a seal P W M , pueden h ab ilitar las interrupciones, consultar
el periodo, y el ancho del pulso de m odulacin; las banderas de estado, deten er e in icializar el
a ll podem os ver que el periodo de la seal P W M contador, y seleccionar la frecuencia del reloj.
est d eterm in ado por dos desbordam ientos suce
sivos del registro del m dulo contador, m ientras A co n tin u aci n se describen sus bits:
q ue el valor guardado en los registros del canal este b it de lectu ra y escritura es la ban--
del T IM define el ancho del pulso de la seal dera que se pone cuando el contador d el T IM
m o d u lad a a travs de la salida de com paracin. se in icializa en $ 0 0 0 0 , despus de alcanzar el
El tiem po que transcurre entre un desbordam ien valo r program ado en los registros del m dulo
to y u n a salida de com paracin, es el ancho del contador. A l leer el registro T S C se borra la
pulso m odulado. bandera au to m ticam en te, tam b in , al escri
b ir d irectam ente en T O F un cero lgico, u,
Por m ed io de los valores de los registros ocasionando un reset.
del m d u lo co n tad o r y d e la sa lid a d el preesca-
la d o r se d efin e la frecu en cia d e la se al de sa li C o n 1 lgico, in d ica que el contador d el T IM
d a P W M , de form a ta l q u e , si los b its d el pre- ha alcanzado el valor d el m dulo.
escalad o r se po nen en 0 0 0 , y al registro del m C o n 0 lgico, in d ica que el contador del T IM
d u lo co n tad o r se le escrib e $00F F, se gen erar no h a alcanzado el valor del m dulo.
u n a sa lid a P W M con u n p erio d o ig u a l a 2 5 6
veces el estado d e l reloj d el bus in tern o . El an este b it de lectu ra y escritura nos per
cho d el pulso tam b in p u ede v ariarse en 2 5 6 m ite activar la so licitu d de las in terrupciones
pasos p o r m ed io de los registros d el c a n a l del por desbordam iento d e l contador del T IM ,
T I M ; p o r e jem p lo , si en ello s se escrib e el dato cada q ue la bandera TO F se pone en uno. C on
$ 0 0 8 0 (1 2 8 d e c ), el ciclo de servicio de la sa li el reset este b it se borra.
d a P W M ser 128/256 el 5 0 % .
C o n 1 lgico, se h ab ilitan las interrupciones.
La salida de P W M tam b in puede configu C on 0 lgico, se inhabilitan las interrupciones.
rarse con un b u ffe r o sin l, de la m ism a form a
q u e la salid a de com paracin. con este b it de lectura y escritura en
uno lgico se puede detener el contador del
R egistros de entrad a y salida del TIM T IM , y tam bin p erm itir que el conteo se re
Por m edio de cinco registros del m icrocontrola an ude cuando se pone en cero lgico. Por me
d or se pueden m onitorear y controlar, la opera dio del reset este b it se pone en uno, y el pro
ci n y e l estado d el T IM ; los registros son: gram ador siem pre debe borrarlo por softw are.

K ri , . Curso p rctico sobre M icrocontroladores


Con 1 IcSgico, se detiene el contador del T IM . Registro: tc nth

Con 0 lgico, se activa el contador del TI M . Direccin : $0021


Bit 7 6 5 4 3 2 1 BitO
este b it de escritura solam ente, Lectura: B it 15 B it 14 Bit 13 Bit 12 Bit 11 ano Bit 9 BitB
se pu ede g rab ar con uno l gico para Escritura:
in icializ ar el contador y el preescalador Reset 0 0 0 0 0 0 0 0
d el T IM , sin afectar a los dem s regis
Registro: TCNTL
tros. C u an d o el b it T R S T se pone, el
Direccin: $0022
contador in ic ia desde $ 0 0 0 0 , y tras la
Bit 7 6 5 4 3 2 1 B it 0
accin de reset, siem pre ser borrado. Lectura: Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 B it 2 B itt Bit 0
Escritura:
C o n 1 lgico, se borran el contador y el
Reset 0 0 0 0 0 0 0 0
preescalador del T IM .
C on 0 lgico, no se produce ningn efec establecer

to sobre el T IM o la C P U 0 8 . F ig u ra 2 5 .4 Registros del contador del TIM [TCNTHJCNTL)

P S [2 :0 ]: estos b its pueden ser ledos o escri $ 0 0 2 2 del m ap a de m em o ria y en ellos se


tos, y son los selectores del preescalador del g u ard a el b y te alto y bajo d el co n tad o r; am
reloj del co n tad o r del T IM , nos sirven para bos son registros de slo lectu ra. A l leer por
d efin ir en la salida del circuito preescalador primera vez el valor del byte ms significativo (TCN
u n a de siete frecuencias configurables. Todos TH ) automticamente se guarda el contenido del
los bits son borrados por el reset. de menor peso (TCN TL) en un bu ffer temporal,
mientras que al poner el t e T R ST en uno lgico,
En la ta b la 2 5 .1 se resum en las opciones de o, al generar un ciclo de reset, los dos registros del
seleccin disponibles para el preescalador del contador del T IM sern borrados.
reloj del contador del T IM .
R eg istro s del m d u lo c o n ta d o r d el T IM
(T M O D H rT M O D L )
En la fig u ra 2 5 .5 se m uestran los contenidos
En la fig u ra 2 5 .4 se m uestran los contenidos de los dos registros de 8 b its que hacen parte
de los dos registros de 8 bits que conform an del m dulo contador del T IM , T M O D H y
el contador d el T IM , T C N T H y T C N T L ; T M O D L , los cuales se encuentran localiza
stos se u b ican en las po siciones $ 0 0 2 1 y dos en las posiciones $ 0 0 2 3 y $ 0 0 2 4 del rea
de m em oria.

PS2 PS1 PS0 Fuente de re lo j del TIM En estos registros se guarda el valor del m du
0 0 0 Reloj del BUS interno+1 lo contador del T IM , y su valor puede ser ledo
0 0 1 Reloj del BUS interno-r2 o escrito por el usuario en cualquier m om ento.
0 1 0 Reloj del BUS interno-r4
0 1 1 Reloj del BUS interno-f 8 C u an d o el contador del T IM alcanza el valor
del m dulo, la band era de desbordam iento
1 0 0 Reloj del BUS interno-1-16
(T O F) se pone en uno, y el contador in icia
1 0 1 Reloj del BUS interno^-32
nuevam en te su cuen ta desde $ 0 0 0 0 con el
1 1 0 Reloj del BUS interno-r64 prxim o periodo de reloj. En cu alq u ier caso,
1 1 1 No disponible la accin de reset pondr en unos ($FFFF) los
Tabla 2 5.1 Tabla de seleccin d e l pree sca lad o r d e l re lo j del TIM registros d el m dulo contador del T IM .

Curso prctico sobre M icrocontroladores


liL LlULLlilU tiL- La LLlHaL 1= H U L 1L11 CLLI (TLll) rL lLiCQi

R e g is tr o : T M 0 D H
C on 0 lgico, se in h ab ilita la so licitu d de
D ir e c c i n : $ 0 0 2 3 in terru p ci n del canal x.
B it 7 6 5 4 3 2 1 B itO

L e c tu ra : 1 j es el b i t se le c to r de m o d o B, con
B it 1 4 a /13 B it 1 2 B it 11 a n o B it 9 B it 8 1
E s c r it u r a : I este b i t de le c tu ra y e sc ritu ra se se le c
R eset 1 1 1
c io n a e l b u ffe r en la s a lid a d e c o m p a ra
1 1 1 1 1
c i n , o en la d e l P W M . E ste b i t s lo est
R e g is t r o : T M 0 D L
en el re g istro de e stad o y c o n tro l d e l c a
D ir e c c i n : $ 0 0 2 4
n al 0 (T SC O ), y c u a n d o e l MSOB se pone
B it 7 6 5 4 3 2 1 B it 0
en u n o , se b lo q u e an las fu n c io n es d e l re
L e c tu ra : jf l
B it 6 B it 5 B it 4 B it 3 B it 2 B it 1 B itO 1 gistro T S C l c o n v irtien d o n u ev am en te al
E s c r it u r a : 1
c a n a l 1 en un p u e rto I/O de p ro p sito
R eset 1 1 1 1 1 1 1 1
g en e ra l (P T D 5 ).
F ig u ra 2 5 .5 Registros d e l m dulo contador d e l TIM (TMODH:TMODL)
C on 1 lgico, se habilita la salida con bu ffer
R egistros de estado y control de los canales Con 0 lgico, se inhabilita la salida con buffer.
del T IM (T S C 0 :T S C 1 )
En la fig u ra 2 5 .6 se m uestra la distrib u ci n es e l b i t se le c to r d e m odo A , con
de los registros TSCO y T S C l, y la accin del este b i t d e le c tu ra y e s c ritu r a se se le c cio n a
reset sobre todos sus bits. A contin u aci n se la o p erac i n d e la s a lid a d e c o m p a ra c i n y
describen sus bits : P W M sin b u ffe r , o la e n tra d a d e c a p tu ra ,
o, e l n iv e l d e v o lta je p re se n te in ic ia lm e n te
este b it d e lectura y escritura es la b an en la sa lid a .
dera de cada canal; cuando el canal est con
figurado com o en trada de cap tu ra, el b it se C u an d o E LSxB:A es d iferen te de 00:
pone en uno para in d icar la deteccin de un C o n 1 l gico, se h ab ilita la salid a de com pa
flanco activo; m ientras que cuando el canal racin o P W M sin b u ffer.
est configurado com o salida de com paracin, C o n 0 l g ic o , se h a b ilita com o e n tra d a de
la bandera se pone cuando el valor del regis c a p tu ra .
tro contador del T IM se ig u ala con el
valor del registro del respectivo canal.
R e g is tr o : T S C O
D ir e c c i n : $ 0 0 2 5
C o n 1 lgico, seala la deteccin de la B it 7 B itO
en trad a de cap tu ra o la sa lid a de com pa L e c tu ra : C H 0F
CHOIE M SO B M S0A ELS O B ELSO A T0V0 CH0M AX
racin en el respectivo canal. E s c r it u r a : 0
C o n 0 lgico, seala que no ha detecta R eset. 0
do la en trada de captura o la salida de
R e g is tr o : T S C 1
com paracin en el respectivo canal.
D ir e c c i n : $ 0 0 2 8

B it 7 B itO
este b i t de lectura y escritura nos
L e c tu r a : CH 1F 0
p erm ite h ab ilitar la so licitud del servicio C H 1IE M S1A ELS1B E LS 1 A T0V 1 CH1M AX
E s c r it u r a : 0
de in terrupcin de la C P U 0 8 asociada
0 0 0 0 0 0 0 0
con cada canal del T IM . R eset

I S in e s ta b le c e r

C o n 1 lgico, se h a b ilita la so licitu d de


Fig u ra 2 5 .6 R eg istros de estado y c o n tro l de los ca n a le s d e l TIM
in terru p ci n d el canal x. (TSC0.TSC1)

M T l Curso prctico sobre M icrocontroladores


MSxB MSxA ELSxB ELSxA MODO CONFIGURACIN

X 0 0 0 Pin bajo el control del puerto;


Salida Inicial mente con la salida en nivel alto
X 1 0 0 estndar Pin bajo el control del puerto;
Inicialmente con la salida en nivel baio
0 0 0 1 Captura en flanco creciente solamente
Entrada de
0 0 1 0 Salida en flanco decreciente solamente
captura
0 0 1 1 Captura en flanco creciente o decreciente
0 1 0 1 Salida de Cambia el estado de la salida bajo comparacin
0 1 1 0 comparacin Borra la salida bajo comparacin
0 1 1 1 PWM Coloca la salida bajo comparacin
1 X 0 1 Salidas de Cambia el estado de la salida bajo comparacin
1 X 1 0 comparacin Borra la salida bajo comparacin
1 X 1 1 PWM con Coloca la salida bajo comparacin
buffer

Tabla 2 5 .2 Tabla de seleccin del modo de operacin, flan co y n ive l de l TIM

C u an d o E LSxB :A es ig u a l a 00: C o n 1 l g ic o , el p in de s a lid a d e l c a n a l x


C on 1 l gico, se activa la salida in icial del ca c a m b ia d e estad o c u a n d o el c o n ta d o r se
nal x en nivel bajo. d esb o rd a.
C o n 0 lgico, se activa la salid a in ic ial d el ca C o n 0 l g ic o , el p in d e s a lid a d el c a n a l x
nal x en nivel alto. n o c a m b ia de estad o c u a n d o el c o n ta d o r
se d esb o rd a.
son los b its selectores de
flanco y n ivel, con ello s se seleccio n a el flan este b i t de control le p e rm ite al
co activo de la en trad a de cap tu ra, o el nivel u su ario d eterm in ar el m x im o cic lo d e ser
de la salid a de co m p araci n del can al corres v icio (igu al al 100% , o equivalen te al nivel
p o n d ien te. V D D ) para la seal de sa lid a m od u lad a por
ancho de pulsos (P W M ).
C u an d o estos dos b its son borrados, el canal
x se desconecta d el p u erto , y lib era el p in del C u an d o el t T O V x est en cero, un uno
can al (T C H x ) p ara que se com porte com o l gico en C H x M A X o b lig a a q u e la salid a
un p u erto I/O de propsito general. P W M te n g a un cic lo d e servicio d el 1 0 0% ;
en la f ig u r a 2 5 .7 se m u estra el co m p o rta
En la ta b la 2 5 .2 se m uestran las opciones de m ien to de la sa lid a P W M de c u a lq u ie r ca
co n figu raci n q u e estos b its nos ofrecen. n al de acu erd o con el estad o de este b i t y en
e lla se ap re cia q u e , al poner a C H x M A X en
este b i t de le c tu ra y e sc ritu ra c o n cero l gico, la seal de salid a P W M recu p era
tro la el co m p o rtam ien to de la salid a de co m su c o n d ic i n n o rm al, y tam bin que la s a li
p arac i n de c u a lq u ie r c a n a l cu an d o el co n d a del canal siem pre responde a u n ciclo des
tad o r d el T IM se d esb o rd a. pus de h ab erlo borrado.

Curso prctico sobre M icrocontroladores tg M U C M T ,


DESBORDAMIENTO DESBORDAMIENTO DESBORDAMIENTO DESBORDAMIENTO DESBORDAMIENTO

----------- PERIODO--------------

TCHx ------

t
SAU DAD E SAU DAD E SALIDA DE SAUDADE
COMPARACIN COMPARACIN COMPARACIN COMPARACIN

CHxMAX

F ig u ra 2 5 .7 Caractersticas y efectos del b it d e co n tro l CHxMAX en la salida PWM

R e g is tr o s d e lo s c a n a le s d e l T I M R e g is tr o : TC HO H

(T C H O H /L.T C H 1H /L) D ir e c c i n : $ 0 0 2 6
En la fig u ra 2 5 -8 se m uestra la d istrib u
B it 7 6 5 4 3 2 1 BitO
cin de los registros altos y bajos del los L e c tu ra : 1
d o s c a n a le s d el T I M , T C H O H /L y B it 1 4 B it 1 3 5 /1 1 2 8 /7 1 1 8 /7 1 0 B it 9 8 /7 8 |
E s c r it u r a : 9
T C H 1H /L .
R eset Indeterminado despus del reset

Estos registros de lectura y escritura es R e g is tr o : T C H 0 L


tn destinados a alm acenar el valor cap D ir e c c i n : $ 0 0 2 7
turado del co n tad o r del T IM cuando el
Bit 7 6 5 4 3 2 1 BitO
canal x est funcion ando com o entrada L e c tu ra : 1 1
d e captura, o el valor com parado en la E s c r it u r a :
B it 6 B it 5 B it A 8 /7 3 B it 2 8 /7 1 B itO

salida cuando funcion a com o salid a de


R eset Indeterminado despus del reset
com paracin.
R e g is tr o : T C H 1 H

En el m o d o d e e n tra d a d e c a p tu ra D ir e c c i n : $ 0 0 2 9

(co n M S x B :M S x A = 0 0 ), la le c tu ra del Bit 7 6 5 4 3 2 1 BitO


b y t e a lto d e l r e g is t r o d e l c a n a l x L e c tu ra : 1 1
B it 1 4 8 /7 1 3 B it 1 2 8 /7 1 1 8 /7 1 0 B it 9 B it 8
(T C H x H ) b lo q u e a la e n tra d a d e c a p E s c r it u r a : 1

tu ra h a sta q u e la p a rte b a ja (T C H x L ) R eset Indeterminado despus del reset


se a le d a ; y, de fo rm a s im ila r, en el
R e g is tr o : T C H 1 L
m o d o de sa lid a de c o m p arac i n (con
D ir e c c i n : $ 0 0 2 A
M S x B :M S x A 0 0 ), a l e sc rib ir el b y te
a lto d e l registro d el c an al x (T C H x H ) Bit 7 6 5 4 3 2 1 BitO
se b lo q u e a la s a lid a de co m p arac i n L e c tu ra : 1 1
B it 6 B it 5 B it A 8 /7 3 B it 2 8 /7 1 B itO
h asta q u e la p a rte b a ja (T C H x L ) sea E s c r it u r a :

ta m b i n e sc rita . En cualesq uiera de los R e s e t Indeterminado despus del reset


registros, la accin de un ciclo de reset
Figura 2 5 .8 R egistros de los canales del TIM (TCH0H/LTCH1H/L)
siem pre pondr un dato indeterm inado .
A. *
248 & G M C B T 1 Curso prctico sobre M icrocontroladores
'*101
; |w

Sooioioio
D 0 1 0 I0 0 1
A U O O IO

" , V i 1010
. ) l 01010
101011001
110001010
001110101

LOS MICROCONTROLADORES
BASIC Stamp
La industria Parallax Inc. h a tom ado como base a
los m icrocontroladores PIC y ha desarrollado para
ellos una versin sim ple del lenguaje BA SIC, lla
m ada PBASIC, para construir un a pequea y ver
stil com putadora denom inada BASIC Stam p.

Gracias a estos dispositivos, los m icrocontrolado


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 program as en lenguaje ensam blador.
, *
Curso prctico sobre M icrocontroladores 249
L.US IIICIIM J lili U lliliu llr l: L & S l Q SiLll[2

El BASIC Stam p I in stru ccio n es especiales creadas para fac ilita r la


En esta leccin estu d iarem o s el m icro co n tro la co m p ren si n y el m anejo de las tareas de co n
d or B A SIC Stam p I (B S 1 -IC ) d esarro llad o por trol y de m o n ito reo desde el m icrocontrolad or,
P arallax Inc. Esta versin de m icro co n tro lad o com o p o r ejem p lo : SE R IN , P W M , B U T T O N ,
res usa la tecn o lo ga de m o n taje su p erficial y la C O U N T , D T M F O U T , y P U L SIN .
p o p u larid ad del len g u aje de p rogram acin BA
S IC para co n stru ir u n dispositivo de bajo cos El h a r d w a re se instala sobre u n p eq ue o cir
to, red u cid o tam a o , y a lta eficien cia, q u e se cu ito im preso de m o n taje su p erficial y en l se
pu ed e u tiliz ar com o u n a p eq u e a co m p u tad o in clu y e n : un m icro co n tro lad o r P IC de M icro
ra de fcil m an ejo y m u ch a versatilid ad en la ch ip con el p ro gram a residente (ftr m w a r e) del
gran m ayo ra de tareas para la in d u stria, el co in trp rete de las in stru ccio n es, una m em o ria de
m ercio, la educaci n y el e n treten im ien to . acceso serial tipo E E P R O M , un regulad o r de
+5V, un oscilador, y un c ircu ito de reset au to
El B A SIC Stam p I se co m p o n e, en c u a l m tico a la d esconexin ( B r o w n o u t ).
q u ie ra de sus versiones, de un len g u aje de pro
gram aci n y u n a estru ctu ra de circu ito s q u e lo Para program ar el BASIC Stam p I el usuario
so porta. El le n g u aje de p ro gram aci n se d en o slo debe tener conocim ientos del lenguaje de pro
m in a P B A S IC ,y ha sido d esarro llado por Para gram acin BASIC y disponer de algunos requeri
lla x segn alg u n as in stru ccio n es tp ic as de la m ientos m nim os en su equipo; stos son: el soft
versin sim p le del le n g u aje B A SIC , tales com o: w a re a d ecu a d o , una com putadora con sistema ope
G O T O , F O R ...N E X T , IF ...T H E N , G O S U B , rativo M S-D O S 2 .0 superior, 128Kbytes dispo
y O U T P U T , co m p lem en tad o con algu n as otras nibles en m em oria R A M , y el puerto paralelo libre.

ZZfi " - f ff. f ^ ------- ------


r :. - r Ssr.5
* 93LCSA
9X C S6 .
'S N ~
ztil /SN
iiw yw? s 111 p i i = rn
- ,* Sa' U* S* y *5
C* y y y Ay
s

Figura 2 6 .1 Aspecto fsico, distribucin de lo s com ponentes y de lo s p in e s del BASIC S tam p I

250 M B tT , i. Curso prctico sobre M icrocontroladores


D istribucin de pines del to paralelo de la P C con el m i cuito se alim enta por este pin, no
BASIC Stam p I crocontrolador para program ar se debe utilizar la entrada de ali
La versin del B A SIC Stam p el dispositivo. m entacin V |N(PW R ).
B S l-IC , que se m uestra en la fi
gura 26.1, se com pone de cator esta entrada se ha dis el circuito del m i
ce pines y se fabrica en estructura puesto en el BASIC Stam p I para c ro c o n tro la d o r u sa e ste p in
SIP (em paquetado de una sola conectar una fuente de voltaje re com o la en trad a de reset activa
fila) para dism inuir an ms el gulada entre 4 .5 V C C y 5,5V C C en nivel bajo de todo el siste
espacio ocupado por el dispositi para alim entar el sistema. Si el cir m a, sta puede ser colocada en
vo y facilitar su acople en circui
tos im presos y tableros de co
nexiones {protoboards). La asigna
cin y las funciones definidas para
los pines de este m icrocontrola
dor se describen a continuacin:

por medio de
este pin el microcontrolador reci
be la fuente de alim entacin de
voltaje no regulada, que puede es
tar entre 6 y 15 V C C para esta ver
sin, y la regula a +5VCC por
m edio de un regulador interno,
para alim entar al microcontrola
dor y al resto del circuito. Cuando
esta entrada se alim enta se pueden
extraer +5V C C por el pin 5 del
BASIC Stamp con el objeto de ali
mentar algunos circuitos extemos.

Pin 2. ( .N I ): este p in es la tie


rra del sistem a y debe estar co
nectado con la tierra de la P C
(a travs del pin 25 d el puerto
paralelo) para program ar correc
tam en te el m icrocontrolador.

Pin ,PC Out (PCO): este pin


conecta la seal de control de
tran sferen cia de dato s, BU SY
(ocupado), del puerto paralelo de
la P C con el m icrocontrolador.

Pin i ,PC In ( P( I): este p in co


necta el term in al para la trans
ferencia de datos D O del pu er F igura 2 6 .2 A rquitectura d e l m icrocontrolador BASIC Stam p I

Curso p rctico sobre M icrocontroiadores e S K M T s 251


L u s lUL'l ^ULlUlldlL^ 11AEIC SLiLlL[)

cero lgico para activarlo; pero no se debe poner


FUENTE DE PODER (volts) CORRIENTE TOTAL (mA)
en nivel alto, porque afecta el com portam iento
del circu ito de b r o w n o u t que se encarga de gene 5 -9 50
rar u n reset cuando la alim en taci n cae por deba 12 40
25 10
jo de 4V, con el objeto de proteger el so ftw a re 40 2 -3
del dispositivo.
Tabla 26.1 C apacidad de l regulador interno e n funcin d e la
fuente d e alim entacin
estos ocho pines son los
puertos de entrada o salida del m icrocontrolador; d e v o ltaje in teg rad o de +5V que a lim e n ta todo
cada uno de ellos puede m anejar en configuracin el sistem a, y el c irc u ito de o scilaci n de 4 M H z .
drenadero (sin k in g ) hasta 25m A , y en configura
cin sum idero ( sou rcin g ) hasta 20m A . No obstan El reg ulador interno y la ta rje ta de
te las lim itaciones en disipacin de potencia debi prototipos del BASIC S tam p I
do al tam ao reducido del dispositivo, establecen En la fig u ra 2 6 .3 se m uestra la tarjeta para el
en 50m A la m xim a corriente que puede obte desarrollo de prototipos ( ca r r ie r board) diseada
nerse en forma sim ultnea por todos sus puertos. p o r P arallax p ara el m ic ro c o n trlad o r B A SIC
Stam p I; sta cuenta con term inales para la co
A rquitectura del BASIC Stam p I nexin de una batera de 9V C C , el conector (socket )
En la fig u ra 2 6 .2 se m u estra el d ia g ra m a elec para la conexin del B A SIC Stam p I, un conec
tr n ic o esq u em tico d el siste m a que co n fo r tor paralelo al m icrocontrolador que deja dispo
m a al m ic ro c o n tro lad o r B A S IC S tam p I, en nibles todos sus pines, un pulsador de reset, los
e lla se p u e d e n v er: el m ic ro c o n tro la d o r de term inales para la conexin d el cable de com u
M ic ro c h ip P I C 1 6 C 5 6 q u e es la base d el siste n icaci n , y la tarjeta m ultiuso s, sobre la cual se
m a y en el c u a l est g rab ad o el p ro gram a in pued en m o n tar pequeos circuitos prototipo, lo
t rp rete d e las in stru c cio n e s P B A SIC , la m e que resulta bastante til en la etapa de experi
m o ria serial E E P R O M de M ic ro c h ip 9 3 L C 5 6 m entacin y desarrollo de alg n proyecto.
q u e recib e y g u a rd a el p ro g ram a tran sferid o
d esd e la P C p ara que p u ed a ser ejecu tad o pos Los circuitos q ue se construyan sobre la tar
terio rm en te por el m icrocontrolador, el circu ito jeta de prototipos, pueden ser alim en tad os tam
de p ro tecci n b r o w n o u t d e l reset, el reg u lad o r bin con el regulador interno de +5V, pero esto
slo se puede hacer si se tiene en
cuen ta que ste tam bin alim en ta al
C able de p ro g ra m a c i n
m icrocontrolador, y, que su capaci
dad est en funcin de la m agnitud
de la fuente de alim en taci n en la
a rje ta de en trad a (V IN ). En la ta b la 2 6 .1 se
p ro to tip o s m uestra la relacin que h ay entre el
voltaje de la fuente de alim en taci n
y la corriente m xim a que puede en
tregar el regulador interno del BA
S IC Stam p I.

M ap a de m em o ria disponible
para el usuario
BASIC S tam p I
El B A SIC Stam p tien e 2 5 6 po si
F ig u ra 2 6 .3 Tarjeta de p roto tip o s y cable d e program acin d e l m icrocontrolador
BASIC Stam p I cio n es d e m em o ria de p ro g ram a

<gm aW T,. Curso p rctico sobre M icrocontroladores


Teora

PALABRA BYTE BIT NOTAS C on el registro Dirs, y a travs de sus bits (DirO
Puerto Pins Pin0-Pin7 Pines l/O; direccionables bit a bit a D ir7), que son los bits que controlan la direccin
Dirs Dir0-Dir7 Pines de control de direccin l/O; de los puertos del microcontrolador, se define la
direccionables bit a bit
WO BO Bit0-B it7 Direccionables bit a bit condicin del pin del puerto como una entrada o
B1 B it8-B it1 5 Direccionables bit a bit como una salida. Con un 0 puesto en cualquiera
W1 B2
B3 de estos bits, se define el mismo como una entrada;
W2 B4 mientras que con un 1 se configura cualquiera de
B5
W3 B6 los pines del puerto como una salida.
B7
W4 B8
B9 N orm alm ente, el algoritm o m s lgico para
W5 B10 acceder correctam ente a los pines de los puertos
B11
W6 B12 Usado por la instruccin GOSUB consiste en d efinir prim ero la direccin de stos,
B13 Usado por la instruccin GOSUB y luego leer o escribir cualquier dato en ellos.
F ig u ra 26.4 Mapa ce la memoria RAM para e l usuario d e l BASIC Stamp I C om o un ejem plo, por m edio de las dos in struc
ciones siguientes se ilustra la configuracin de
E E P R O M y 16 b ytes de m em o ria R A M p ara el los cuatro puertos ms bajos com o salidas, los cua
u su ario , y, p o r m edio de los registros de esta tro m s altos com o entradas y la transferencia pos
ltim a , se tien e acceso a los pines de los puertos terior de un uno lgico al puerto 0 (P0=1):
de en trada o sa lid a y a las variables disponibles.
En la fig u ra 2 6 .4 se describ en las 16 lo calid a d irs = $ 0 F Form ato hexadecim al
des d el m apa de m em oria R A M disponibles para p in s = % 0 0 0 0 0 0 0 1 Form ato binario
el program ador, y los p in es, registros, nom bres
y fu n cio n es d efin id as p ara cada una. A dicio nalm ente, un slo pin del puerto pue
de ser ledo in d ivid u alm en te por m edio de algu
En este m icrocontrolador, y dependiendo de n a in stru ccin com o B itl = P in 3; sta, por ejem
las necesidades d el program a, el usuario puede plo , guard a el estado lgico d el p in 3 del puerto,
d efin ir el form ato del espacio en m em oria para previam en te definido com o entrad a, en la varia
las variables y los puertos I/O, stos pueden con ble B it 1. T am b in, todos los 8 pines del puerto
figurarse y accederse b it a b it (PinO a P in 7 , DirO pueden ser ledos y guardados fcilm ente en c u al
a D ir7 , y BitO a Bi t \5), en form ato de un b yte q u iera de las variables de un byte\ la instruccin
(P in s, D irs, y BO a B 1 3 ), o com o una palabra de sigu ien te es un ejem plo en el que se transfiere el
dos bytes (P ort, y WO a W 6 ). estado d el puerto del m icrocontrolador (todos sus
8 bits) a la posicin en R A M de la variable B7:
Control de los puertos del BASIC Stam p I
Los puertos de este microcontrolador se pueden ac b 7 = pins
ceder y controlar por m edio del registro Port, que
es de 16 bits y est com puesto por dos registros de Program acin del BASIC S tam p I.
8 bits cada uno, llam ados Pins y D irs. Por medio En lo que a la programacin y al buen uso de este
del registro Pins que se com pone a su vez de los 8 microcontrolador se refiere, adems de conocer bien
bits de entrada o salida de los puertos (PinO a P in 7 ), las 32 instrucciones del PBASIC y la estructura de
se pueden leer o escribir datos en los pines de cada programacin bsica de cualquier lenguaje de pro
puerto independientem ente; cuando un puerto es gramacin de alto nivel, el usuario debe conocer el
ledo, el pin correspondiente se lee directam ente; programa de soporte que sum inistra el fabricante
m ientras que cuando es escrito, el dato guardado Parallax; ste es sim ilar a un editor de texto sencillo,
en la R A M , en el espacio definido para tal variable, ejecutable en el entorno D O S de la PC, y, por medio
es el que se transfiere al pin del puerto. de los comandos de ste, se puede editar, compilar,
I +
Curso p r ctico sobre M icrocontroladores 253
Lk tuiucuLili-uladuiVi: li/iSlG S -iu u

m e d io d e la s in s tru c c io n e s S E R IN y
25 GND 1 VIN
2 VSS SE R U O T , tam bin operan a +5V; este ni
11 BUS Y 3 PCO vel es suficientem ente seguro para com uni
4 PCI
v r 5 VDD car eficazm ente el m icrocontrolador con
6 RES otros dispositivos a distancias cortas (m e
7 P0
CONECTOR DE 8 P1 nos de 3m ), pero, cuando la com unicacin
3 PINES 9 P2
10 P3 se hace a ms de 3m , los datos transm itidos
11 P4 pueden sufrir alteraciones, y por esto se re
2 DO 12 P5
13 P6 com ienda elevar los niveles de com unica
14 P7 cin por m edio de una interfaz serial RS-
DB-25 BS1-IC
2 3 2 estn d ar ta l com o el M A X 2 3 2 , el
F ig u ra 2 6 .5 Cable de com unicacin para e l BASIC Stam p I
L T l 181A C N , o alguna otra similar.
depurar y transferir el programa hacia la memoria
Esto tam bin puede ser necesario en algunas
EEPROM del sistema BASIC Stamp I, para su pos
tareas que requieren com unicar el BA SIC Stam p
terior ejecucin.
I, a travs de sus puertos, con el puerto serial de
otro dispositivo o equipo, ya que m uchas P C cuan
Para program ar el m icrocontrolador se usa el
do operan com o equipo receptor no aceptan ni
puerto paralelo de la com putadora, pero para ello
veles T T L a travs del puerto serial; en la figura
se debe usar el cable D B-25 a 3 pines que se sum i
2 6 .6 se m u e s tr a u n c ir c u ito tp ic o c o n el
nistra especialm ente para este propsito por el fa
L T l 181A C N que sirve para cam biar los niveles
bricante; en la figura 2 6.5 se m uestra la configura
T T L por niveles de com unicacin R S-232.
cin que tiene el cable de com unicacin que debe
usarse entre la P C y el BASIC Stam p I. Este cable
slo usa tres pines del puerto paralelo de la P C para
Conjunto de instrucciones resum idas
com unicarse con el m icrocontrolador, tal como
del lenguaje PBASIC
El len gu aje de program acin del B A SIC Stam p I
puede verse en el diagram a esquem tico de la figu
est com puesto por u n conjunto reducido de ins
ra 26.2, y ellos son: el term inal de datos (D O ), la
trucciones (32 instrucciones) de alto nivel, y se
seal de control del bus (BUSY), y la tierra (G N D ).
d en o m in a P B A SIC ; ste ha sido diseado por
Parallax segn u n a versin sim ple del po pular
El BA SIC Stam p I opera con niveles T T L , y
por lo tanto la salida y entrada de com unicacin program a B A SIC . C on este program a el disea
dor cuenta tbn m uchas herram ientas q u e son d i-
serial a travs de sus puertos, y que se controla por

Salida de datos (RS-232; DB9 pin 2}

M Entrada de datos (RS-232; DB9 pin 3)

Salida de datos (BASIC Stamp; cualquier pin 1/0)

< Entrada de datos (BASIC Stamp; cualquier pin 1/0)

F ig u ra 2 6 .6 Interfaz s e ria l R S -232 tpica con


e l d rve rL T 1 181 ACN

d f A T I K i.a. Curso p r ctico sobre Microcontroladores


fciles de construir usando el lengu aje ensam b la lectu ra de resistencias variables, com unicacin
dor tradicio nal de los m icrocontroiadores y que serial R S -2 3 2 , generacin y m edicin de tiem
son de frecuente uso en las aplicacio nes de estos pos, y salid a P W M , entre otras.
dispositivos en cu alq u ier cam po; algunas de estas
ru tin as diseadas com o herram ien tas y que se ac En la tab la 2 6 .2 se m uestra el conjunto de 32
tivan por m edio de las instrucciones especiales de instrucciones del lenguaje PBA SIC que soporta
este lenguaje, son: generacin de sonidos, lectura al m icrocontrolador B S 1 -IC y se hace un a des
directa y sin rebote de pulsadores e interruptores, cripcin breve de la o las funciones de cada una.

C O N JU N TO DE IN S T R U C C IO N E S R E S U M ID A S D E L B A S IC S ta m p I
SALTOS
I F . . . . TH E N B ifu r c a c i n c o n d ic io n a l
BR AN C H S a lta a l a d ir e c c i n
e s p e c if ic a d a p o r e l o f f s e t
GOTO S a lta a u n a d ir e c c i n
GOSUB S a lt a a l a s u b r u tin a d ir e c c io n a d a .
S e p e r m i t e n h a s t a 1 6 G O SUB
R E TU R N R e to rn o d e s d e s u b r u tin a
C IC L O S
FO R NEXT E s t a b le c e u n c i c l o d e e s t e t i p o N u m r ic a s
L E T } P e r m it e m a n ip u la c i n d e v a r i a b l e s c o m o A = 5 , B = A + 2 , e t c .
P o s i b i l i t a o p e r a c io n e s com o s u m a , r e s t a , m u l t i p l i c a c i n ,
d i v i s i n , l m i t e m x im o , l m i t e m n im o y o p e r a c i o n e s
l g i c a s c o m o A N D , O R , X O R , N A N O , OR y X N O T .
LO O KU P In s tr u c c i n p a ra m a n e jo de ta b la s . P e r m it e e l m a n e jo de d a to s
m e d ia n te _ o ffs e t y su a lm a c e n a m ie n to en v a r ia b le s e s p e c f ic a s
LOOKDOW N B usca n m e ro s ig u a le s (d e 0 a N ) y lo a lm a c e n a en v a r ia b le s
RANDOM G e n e ra u n n m e ro s e u d o a le a t o r io
ENTRADAS S A L I D A S D I G IT A L E S
OUTPUT C o n fig u r a u n p in com o s a lid a
LOW Pone un p in d e s a li d a e n n i v e l b a jo
H IG H Pone u n p in d e s a lid a en n iv e l a lt o
TO G G LE C o n fig u r a u n p in com o s a lid a e i n v i e r t e s u e s ta d o l g ic o
PU LSO U T G e n e ra un p u ls o de s a lid a in v ir tie n d o e l e s ta d o l g ic o de un
p i n p o r a lg n t ie m p o
IN P U T C o n fig u r a u n p in com o e n tr a d a
P U L S IN M id e u n p u ls o d e e n t r a d a
REVERSE S i u n p in e s t c o n f ig u r a d o co m o s a lid a ,
l o p o n e com o e n tr a d a y v ic e v e r s a .
BUTTON H ace e l a n t ir e b o t e d e u n b o t n y p u e d e h a c e r u n
s a lt o a u n a d ir e c c i n s i a s s e d e s e a .
E N T R A D A S Y S A L ID A S D I G I T A L E S S E R IA L E S
S E R IN E n tra d a s e r ia l ded a to s . P o se e c a l ific a d o r e s y v a r ia b le s q u e ,
s i s e c u m p le n , p e r m i t e n e l a lm a c e n a m ie n t o d e l o s d a t o s
r e c i b i d o s . L a s v e lo c id a d e s
p e r m it id a s s o n 3 0 0 , 6 0 0 , 1 .2 0 0 y 2 .4 0 0 b p s . L o s d a to s
d e b e n c u m p lir c o n l a e s p e c if ic a c i n d e n o p a r id a d , d a to s
de 8 b it s y 1 s to p b it .
SEROUT E n v a d a to s s e r ia lm e n t e a 3 0 0 , 6 0 0 , 1 .2 0 0 2 .4 0 0 b p s ,
c o n e l m is m o f o r m a t o q u e s e a c a b a d e d e s c r i b i r .
E N T R A D A S Y S A L ID A S A N A L O G A S
PWM E n tre g a una s e a l PW M y despus c o n f ig u r a e l p in com o u n a e n tra d a .
Se u s a p a ra g e n e ra r v o lt a je s (d e 0 a 5 ) co n un
c o n d e n s a d o r y u n a r e s is t e n c ia .
PO T L e e u n p o te n c i m e tr o d e 5 a 5 0 K ohm y e s c a la e l r e s u lt a d o .
S O N ID O
SOUND G e n e ra a lg u n a s n o ta s . La n o ta 0 e s s ile n c io , n o ta s 1 a 1 2 7 s o n to n o s
a s c e n d e n te s , y n o ta s 1 2 8 a 2 5 5 s o n r u id o s b la n c o s .
A C C E S O A L A EEPR O M
EEPR O M A lm a c e n a d a to s en EEPROM a n te s de d e s c a rg a r e l p ro g ra m a B A S IC .
READ L e e u n b y t e d e EEPR O M y l o a l m a c e n a e n u n a v a r i a b l e
W R IT E E s c r i b e u n b y t e e n EEPR O M
T IE M P O
PAUSE D e tie n e la e je c u c i n p o r un p e ro d o de 0 a 6 5 .5 3 6 m ilis e g u n d o s
C O N T R O L DE P O T E N C IA
NAP E n tr a e n m odo d e b a jo co n su m o p o r u n c o r t o p e r o d o
SLEE P E n t r a e n m o d o s le e p o d e b a jo c o n s u m o p o r u n t ie m p o
d e 0 a 6 5 .5 3 6 s e g u n d o s .E l c o n s u m o d e p o te n c ia s e
r e d u c e a p r o x im a d a m e n t e a 2 0 p A .
END E n t r a e n m o d o s l e e p h a s t a q u e c a m b ia e l c i c l o d e c o n t r o l
d e p o te n c ia o s e c o n e c te l a c o m p u ta d o ra
D E P U R A C I N
DEBUG E n v a v a r ia b le s a l a c o m p u ta d o ra p a r a q u e s e a n v i s t a s

Tabla 2 6 .2 Resum en del conjunto de Instrucciones de l lenguaje PBASIC para e l m icrocontrolador BASIC Stam p I

Curso prctico sobre M icrocontroiadores 5 G J C IT :


L k micL'U u iiu Ltiiiu l is 1/A.SIC S ta uii I

PARA SABER MS:


Ejemplo de programacin con PBASIC
Por m edio de este program a diseado a propsito O bservando este program a resultan claros los be
para e xh ib ir la fo rta le za y el uso apropiado de dos n e ficio s que se obtienen al tra b a ja r con un len
de las in stru ccio n e s especiales de este lenguaje, guaje de alto nivel y un programa interprete (firmwar),
tam bin se ilu stra la e ficie n cia y fa cilid a d de uso dedicados a la p rogram acin de m icro co n tro la d o
del m ism o. En este caso se pretende c o n s tru ir un res; el re d u cid o nm ero de in stru ccio n e s usadas y
c irc u ito que detecte la in tensidad de la luz y lo in un cdigo de program a am igable, poderoso y co m
fo rm e por m edio de un tono a udible va ria b le ; esto pacto, son su p rin cip a l ventaja.
se har por m edio de un pequeo parlante piezo-
e l ctrico (con alta im pedancia, m s de 40 Q ) co En la f ig u r a 2 6 . 7 se m u e s tra el d ia g ra m a e sq ue
nectado al pin del p u e rto uno, y la in tensidad de la m tic o s im p le que se re q u ie re para m o n ta r este
luz re cib id a se d e te cta r a tra v s de una fo toce ld a p ro ye cto en la tarjeta de prototipos o en un tablero
(con re siste n cia entre 5 k y 50k) conectada en el para el montaje de circuitos electrnicos (protoboardj.
puerto cero.
Para dar inicio la ejecucin de las tareas de este pro
Para esto se leer en todo m om ento el valor de la gram a, solam ente se require que ste sea grabado
resistencia en los term inales de la fotocelda por m e por m edio del cable de program acin en la m em o
dio del puerto PO, y, de acuerdo con su m agnitud, se ria EEPROM, y posteriorm ente, conectar la fuente de
cam biar la frecuencia del tono y se entregar al alim entacin al microcontrolador.
parlante por el puerto P1. En este caso se usarn las PARLANTE
instrucciones especiales POT y SOUND, que estn PIEZ0ELECTRIC0
diseas para leer resistencias variables y generar
tonos, respectivam ente. ) h
40Q
C1
El programa que nos perm ite este desarrollo se mues 10|iF
r n k
tra y com enta a continuacin:

2 GND

1
repetir: D e fin e la e t iq u e ta r e p e tir " .

7 PCO
pot 0 ,1 00 ,b2 L e e la r e s is t e n c ia d e la f o -
t o c e ld a e n e l p in d e l p u e r to
0 , y g u a r d a la le c t u r a e n la
v a r ia b le b 2 . 7 PCI

5 +5V
b 2 = b 2 /2 D iv id e e l r e s u lt a d o d e la
le c t u r a p o r 2 , d e f o r m a ta l BS1 - IC
q u e n o e x c e d a n u n c a d e 1 2 8 .

s o u n d 1 ,( b 2 ,5 ) G e n e r a u n t o n o p o r e l p in
d e l p u e r t o 1 , y e n l, la
'f r e c u e n c ia d e p e n d e d e l
v a lo r e n b 2 y e l t ie m p o d e
'd u r a c i n d e l t o n o e s 5 x
12m s = 60m s.

goto repetir 'S a lt a in c o n d ic io n a lm e n t e a


r e p e t ir e l c ic lo .
Figura 2 6 .7 D iagram a esquem tico d e l m e d id o r audible de luz

E & C tT . Curso p r ctico sobre M icrocontroladores


LECCIN 27

CONJUNTO DE INSTRUCCIONES
DE LOS MICROCONTROLADORES
BASIC Stamp I
En esta leccin se estudiar el conjunto de
instrucciones del lenguaje PBA SIC de Para-
llax, Inc. que est dedicado a la program a
cin desde alto nivel de los m icrocontrolado
res BA SIC Stam p I, este conjunto de instruc
ciones lo integran 3 2 de ellas, m u y com pac
tas, poderosas y con funciones especializadas
en el m anejo de las tareas m s frecuentes en
com endadas a los m icrocontroladores.
Curso prctico sobre M icrocontroladores M K M T .l # 57
C cli[u .l112 c e E tu siu cd cL ie s c e Les LuEcL-cccnircLeccL-es LiASLC L

Conjunto de instrucciones del lenguaje En cualquier caso, cuando el offset e s t e fuera de


rango (en este ejemplo, si b3 es m ayor que 2), la
El reducido conjunto de 32 instrucciones del len instruccin B R A N C H no ser ejecutada.
guaje PBASIC est compuesto por algunas instruc
ciones tpicas del lenguaje BASIC y de otras especia
lizadas que poseen mltiples funciones. En esta lec
cin las estudiaremos con todos sus interruptores, y C o n esta in stru c c i n se h a b ilita la ru tin a
para facilitar la ubicacin rpida de cualquiera de ellas, de la e n tra d a an tirre b o te s p ara in te rru p to
se har en orden alfabtico; las instrucciones son: res y p u lsad o res, con au to rre p e tic i n , y sa l
to a u n a d irec c i n cu an d o el estad o le d o es
Nota: e l esperad o. El c irc u ito externo p ara el p u l
D e acuerdo con la n o m en clatura para la repre sa d o r o in te rru p to r p u e d e ser activo en n i
sentacin de las instrucciones, se escribirn en vel bajo o en n iv el a lto , tal com o se m ues
tre parn tesis los trm in o s o b lig ato rio s, entre tr a en la fig u ra 2 7 .1 .
corchetes los trm inos opcionales, y los com en
tarios em pezarn con una co m illa sim ple. p i n : es u n a variable o u n a constante que es
pecifica el p in I/O que se va a usar com o en
trad a de in terru p to r o pulsador, entre 0 y 7.
d o w n s ta te : es una variable o u n a constante
C o n esta in stru cci n se salta a la direccin es q u e especifica el estado lgico activo, y que
pecificada por el desplazam iento (offset), si est ser ledo al accion ar el in terru p to r o pulsa
dentro del rango. dor, ste puede ser 1 0 .
d e l a y : es u n a v a ria b le o u n a co n stan te en
o ffse t, el desplazam iento es u n a variable o una tre 0 y 2 5 5 q u e esp ecifica cu an to tiem p o
constante q ue especifica la direccin del salto (en c ic lo s d e esta ru tin a ) d eb e m an ten erse
entre 0 y N lugares. ac tiv ad o el in te rru p to r o el p u lsad o r, antes
addressA :. las direcciones son nom bradas por d e in ic ia r la au to rre p e tic i n o le c tu ra su ce
e tiq u etas que d efinen h acia donde se debe siva d el p in d e fin id o . Los dos valores ex tre
hacer el salto, se separan por com a y su n m os 0 y 2 5 5 son esp eciales; cu an d o se pone
m ero define el alcance del desplazam iento. 0 la ru tin a devuelve el estad o de la e n tra d a,
pero no e je c u ta el a n tirre b o te n i la a u to rre
Esta instruccin es una variacin de IF...THEN, p e tic i n ; m ien tras q u e con 2 5 5 , si se e je c u
as por ejemplo, si se escribe la siguiente lnea de ta el an tirre b o te .
com ando:

B R A N C H b 3,(caso_0,caso_l,caso _2)

se podr ob ten er el m ism o resultado que al


escrib ir las tres siguientes lneas de com ando:

IF b3=0 T H E N caso _0 si b3=0 salta a la


etiqueta caso_0
IF b 3= l TH EN c a so _ l si b 3= l salta a la
Activo alto A ctivo bajo
etiq u eta caso _ l (presionado = 1 ) (presionado = 0)
IF b3=2 TH E N caso_2 si 3= 2 salta a la
F ig u ra 2 7 .1 Conexin externa de io s inte rrup to re s o pulsadores
etiq u eta caso_2 en sus dos estados posibles activo-alto y activo-bajo

258 G Q E M C M W 1 *. Curso p r ctico s o b re M icrocontroladores


T a u s .

r a te : es una variable o una constante que de Esta in struccin tam b in acepta alguno s co
fine la velocidad de las lecturas sucesivas y se m andos propios del m anejo de la p an talla de
expresa entre 0 y 2 5 5 ciclos de esta ru tin a. la P C , tal com o se m uestra en la ltim a lnea
b y t e v a r ia b le : es el rea de trab ajo (c u alq u ie r de com ando del ejem plo anterior, stos son:
reg istro d e trab ajo de un b y te) de esta ru ti C R (ca rr ia g e retu rn ) p ara el retorno del cu r
na. L a v a ria b le e le g id a deb e ser b o rrad a con sor al com ienzo de la ln ea, y C L S {clear screeri)
0 l gico antes de u sarla por p rim era vez d es p ara borrar la ventana de visualizacin . A q u
d e la ru tin a de B U T T O N . tam b in se puede ver que lo que se escriba
t a r g e t s t a t e : es u n a v a ria b le o u n a co n stan te entre com illas ser m ostrado sin cam bio y que
q u e esp ecifica el estad o l gico en q u e debe por m edio de com as se deben separar las va
e sta r el p u ls a d o r o in te r ru p to r (0 = lib re , riables diferentes en u n a ln ea de com andos.
l= p resio n ad o ) p ara que el salto o cu rra.
a d d r e s s : es u n a e tiq u e ta con la q u e se in
d ic a a d o n d e se deb e s a lta r si el ta rg e tsta te C on esta in stru ccin se pueden guardar va
se c u m p le . rios datos en la m em o ria E E PRO M del siste
m a que luego sern utilizados por el progra
m a, o que no deban ser m odificados.
C o n esta in stru ccin se puede m onitorear el
curso del program a en cu alq u ier m om ento, lo c a tio n : la ubicacin es u n a variable o una
p o r m edio de e lla se puede visualizar en la constante opcional entre 0 y 2 5 5 que nos in
p an talla de cu alq u ie r P C co n ectada con el d ica la posicin in icial de la EE PRO M a par
B A SIC Stam p I el estado de un bit, un byte, tir de la cual sern guardados los datos que
o u n a p alab ra. C on las siguientes lneas de sean enviados. Si no se escribe una ubicacin
com ando, a m anera de ejem p lo, se ilustran in icial, la posicin in icial para la escritura de
las opciones de esta in struccin; los datos ser la p r x im a d isp o n ib le en la
m em oria.
DEBUG b 4 m uestra b4=, d a ta : los datos son las variables o constantes
seguido p o r el expresadas en 8 bits, y q ue sern guardadas en
valor de b4 localidades consecutivas d e la m em oria a p ar
DEBUG #b4 m uestra el valor tir de la posicin de inicio.
de b4
D EBUG la lectura es\b4 m uestra la lectu-
ra es, seguido C o n esta in stru ccin el m icrocontrolador en
por el valor de b4 tra en adorm ecim iento (m odo sleep) y slo des
D EBU G #% b4 m uestra el valor pierta al conectar la P C , o d u ran te los ciclos
de b4 en binario de po tencia. En este estado, y asum iendo que
D EBU G #<b4 m uestra e l carc el B A SIC Stam p I no est m anejando carga
t e r A SC II que es por sus puertos, la corriente con su m id a se re
equ ivalen te al d uce a cerca de 20(lA .
valor de b4
DEBUGentradas=,b3,b4,cr m uestra los carac- Es im portante considerar el caso en el cual se
rae teres entra- ejecu ta la instruccin EN D m ientras algn
ta s =, seguidos puerto configurado com o salida est activo en
por los valores de cualquier nivel (1 0) y est m anejando una
b3 y b 4 , y retor- carga; en esta situacin el sistem a continuar
na el cursor sum inistrando la corriente de la carga desde la
*
Curso prctico sobre M icrocontroladores < g /e jF C W T 2 5 9
CaiiiLLiivi fie E iisn u c d c L ie s e Lee Lm cu iceiuiuLaiei-es EA SLC S uilul : L

fuente in terna regulada, pero cada 2,3s inte


rrum pir la corriente a travs de todos los puer Esta in stru ccin es para un salto in co n d icio
tos por cerca de 18ms. Esto se debe a que el nal a u n a su b ru tin a, al ejecu tarla, el curso del
tem p orizador d el w a tcb d o g propio del ch ip program a se desva hacia a la direccin espe
intrprete y que es inalterable, genera un reset cificad a y c o n tin u a desarrolln d ose a p artir
cada 2,3s que despierta al m icroprocesador de de a ll h asta que en cu en tra la in stru cci n de
su adorm ecim iento y configura a todos sus pi R E T U R N . A ntes de saltar el sistem a guarda
nes com o entrada; esta condicin se m antiene la direccin de la prxim a in struccin para
por cerca de 18m s que es el tiem po que tarda co n tin u ar la ejecucin del program a desde el
el fir m w a r e del PBA SIC en tom ar el control, m ism o p u n to , a l retornar de la subrutina.
restablecer el estado de los pines, y poner a dor
m ir nuevam ente el BA SIC Stam p I. a d d ress: es la e tiq u e ta con la q u e se n o m b ra
la d irec c i n p ara el salto . S lo se aceptan
Por lo anterior, y si se va a usar esta in struc h asta 16 llam ad o s a su b ru tin a s, y h asta 4
cin, asegrese de ejecu tarla en el m om ento a n id am ie n to s.
apropiado, o de conectar cargas que puedan
soportar estas desconexiones, o q u e tengan G O T O address
una interfaz que las adm ita. Esta in struccin es u n salto in co n d icion al a
cu alq u ier parte del program a, a l ejecu tarla, el
6. FOR variable = start T O end {ST E P {-} curso del p rogram a se desva h acia a la direc
increm ent}...N E X T variable} cin especificada y co n tin u a su ejecucin a
C o n esta in stru ccin se im p lan ta u n lazo del p artir de all.
tipo F O R ...N E X T lim itad o a ocho an id a-
m ientos com o m xim o. a d d ress: es la etiq u eta con la q u e se nom bra la
direccin para el salto.
v a r ia b le: es u n a variab le q u e se usa com o
co n tad o r in tern o p ara lim ita r el com ienzo y
el fin al d el ciclo. C o n v ariab les tip o b it se C o n esta in stru ccin se pone en nivel alto el
p u ed e co n tar de 0 a 1, con tipo b yte desde 0 pin especificado, y adem s, si ste ha sido con
a 2 5 5 , y con tipo u r o r d desde 0 h asta 6 5 .5 3 5 . figurado previam ente com o u n a entrad a, ser
s t a r t : es u n a v a ria b le o u n a c o n sta n te que reconfigurado com o una salida.
e sp e c ific a el v a lo r in ic ia l de la v a ria b le del
co n tad o r. p in : es la variable o la constante con la que se
e n d : es u n a v a ria b le o u n a c o n stan te que especifica el pin de salid a alta, y de acuerdo
esp ecifica el valo r fin a l de la v a ria b le del con el nm ero de puertos disponibles puede
co n tad o r. estar entre 0 y 7.
in cr em e n t: es u n a variable o u n a constante
opcional q ue d eterm in a el increm ento o de . IF variable ?? valu AN D /O R variable ??
crem ento del contador d el ciclo; si no se d efi valu...} TH EN address
ne un valor p articu lar para el paso (step ) la C o n esta in stru ccin de salto condicionado
variable increm entar en uno, m ientras que se co m paran u n a o varias variables con un
si se pone el signo (-) decrem entar en uno. valor o valores y se salta a u n a direccin d efi
v a r ia b le (d esp u s le NEXT): es opcional y se n id a si el resultado es verdadero.
usa para aclarar a cual ciclo F O R ...N E X T se
refiere el N E X T en cuestin, cuando h ay va ??: es uno de los siguientes operadores m ate
rios de estos ciclos anidados. m ticos: = (igu al), o (diferente), > (m ayor

26o5) &EMCMT.: Curso prctico sobre M icrocontroladores


Teora

q u e ), < (m enor q u e), >= (m ayor igual que), ??: puede ser algu no de los operadores que se
y <= (m enor igu al que). m uestran en la tab la 2 7 .1 .
v a r ia b le : es la variable que se com para con el v a r ia b le : es la variable a la q u e se le asigna el
valor o valores. valor directo, o el que resulta de la operacin
v a lu : es u n a variab le o u n a constante q u e re d efinid a en la propia in struccin.
presenta el valor para com paracin. v a lu e (s ): es la variable o la constante que se
a d d r e ss: es u n a etiq u eta con la q ue se nom bra tiene en cuen ta para calcu lar el valo r q ue ser
la direccin a donde se debe saltar si el resul asignado a la variable.
tado de la com paracin o com paraciones es
verdadero. En cu alq u ier caso se debe tener en cu en ta que
las operaciones llevadas a cabo por esta ins
1 1 . 1N P U T pin truccin entre los valores estn lim itad as por
C o n esta in struccin se convierte el pin espe el m anejo que el P B A SIC le d a a las variables
cificado en u n a entrada, sin im p o rtar c u al sea y a las operaciones m atem ticas.
su co n d ici n previa o el estado en q u e se es
tn poniendo los puertos debido a d isp o siti 1 3 . L O O K D O W N ta rg e t,(v a lu e O ,v a lu 1,
vos externos. ...vaIueN ).variable
Esta in stru cci n se u tiliz a p ara buscar uno o
p i n : es la variab le o la constante con la que se varios valores d entro de u n a lista, en funcin
especifica el p in que se va a usar com o en tra de u n v alo r ob jetivo. C u an d o el valo r o b jeti
d a, y puede estar entre 0 y 7. vo co in cid e con algu n o de los valores de la
lista, se g u ard a la po sicin q u e dich o valor
12. jLETj variable = {-}valu ?? valu... tien e d en tro d e la lista (0 a N ) en la variable.
C on esta instruccin se asigna un valor a una
variable y tam bin se pueden efectuar operacio t a r g e t: es el valor de la variable o la constante
nes lgicas entre los valores para definir el valor que est siendo explorada (el valor objetivo).
q ue se asignar. El m nem nico de la instruc valueO a v a lu eN : es una lista de valores con la
cin (LET) puede om itirse; por ejem plo, la ins que se com para el valor objetivo.
truccin J =7 es equivalente a LET J=7. v a r ia b le : es la variable en la que se guard a el
resultado de la bsqueda.
OPERADORES DE LA INSTRUCCIN LET

S m bo lo N om bre C om o ejem p lo para aclarar la estru ctu ra y la


+ Suma funcin de esta in struccin se escribe la si
Resta guien te lnea d e com ando con com entarios, y
M ultiplicacin (devuelve la palabra baja del resultado) se supone que la variable b3 se carga en cual
: M ultiplicacin (devuelve la palabra alta del resultado) q uier m om ento con la letra que representa a
/ Divisin (devuelve el cociente)
uno de los tres com andos siguien tes: giro (G ),
// Divisin (devuelve el residuo)
m in M antiene una variable m ayor o igual que un valor avance (A) y paro (P ).
max M antiene una variable m enor o igual que un valor
& AND lgica L O O K D O W N b 3 ,(G , AY P ),b 4
1 0R lgica si b3=G entonces b4=0
A XOR lgica
si b3=A entonces b4= l
&/ NAND lgica
OR lgica si b3=P entonces b4=2
i/
A/ XNOR lgica
14. L O O K U P offset,{valueO ,valuel,...valueN ),
Tabla 2 7.1 Tabla de operadores aceptados p o r la instruccin
de asignacin LET variable

Curso prctico sobre M icrocontroladores


C c n J i i L iu i l i s l i l c c E i 1 l i s e L e s L I Q g c Q i i j p l ^ i j s s liA S L C S t s i u i ; L

Esta instruccin se utiliza para buscar un valor es D uracin


P eriodo 2 P eriodo
pecificado por un offset dentro de los datos de una d e l NAP
lista y guardarlo en una variable. Esto quiere decir 0 1 18 ms
1 2 3 6 ms
que si los elementos de una tabla son: 3,5,7 y 9 ; y el
2 4 7 2 ms
offset es 2, la variable contendr el nmero 7. 3 8 144 ms
4 16 2 8 8 ms
o ffs e t: es u n nm ero entre 0 y 2 5 5 que se usa 5 32 5 7 6 ms
com o n dice para buscar el valor. 6 64 1.152 m s
v a lu eO a v a lu eN : es u n a ta b la de h asta 2 5 6 7 128 2 .3 04 m s

datos de 8 bits. Tabla 2 7 .2 Tabla de seleccin de los periodos de duracin de l NAP


v a r ia b le : es la variab le en la que se guarda el
resultado de la bsqueda. co n figu ra todos los pines com o en trad a du
rante 18m s; lo que ocasiona un a interrupcin
15. LO W pin de la corriente a travs de dich as cargas. C on
C on esta instruccin se pone en nivel bajo un el siguiente program a, observando la salida en
pin especificado. Si el pin ha sido previam ente el osciloscopio o el parpadeo en u n diodo
definido com o una entrada, esta instruccin lo LED , tal com o se m uestra en la fig u ra 2 7 .2 ,
reconfigurar com o una salida. se puede dem ostrar dicho com portam iento.

p i n : es una variable o una constante entre 0 y 7 LO W 7 pone en cero la salida del


con la cual se especifica el pin I/O del puerto p in 7
q ue se va a utilizar. R ep etir:
NAP 2 pone a d o rm ir al m i
crocontrolador durante
C o n esta in stru ccin se pone a d o rm ir el m i 72m s
croprocesador p o r u n periodo corto de tiem G O TO Repetir salta a ejecu tar nueva
po y se reduce e l consum o de p o ten cia hasta m en te la in struccin
en el 90% . En la ta b la 2 7 .2 se resum en los N A P 2
ocho periodos q u e pueden configurarse.

p e r io d : es una variable o una constante con la Por m edio de esta in struccin se configura
que se determ ina la duracin del tiempo de bajo com o una salid a cu alq u ier pin del puerto que
consum o o de adorm ecim iento NAR El perio se especifique.
do puede definirse entre 0 y 7, y el tiem po de
N AP est determ inado por la siguiente ecuacin: p i n : es la variable o la constante con la que se
especifica el p in que se va a co nfigurar com o
T iem p o d e N A P = 18 x

C u an d o se usa esta in stru ccin to +5


das las cargas conectadas en los pi
nes de los puertos configurados como
salidas co n tin an siendo alim entadas Pin7 del Pin7 del AAA
Stam p Stamp
p o r el B A SIC Stam p I, pero es im LED
po rtan te recordar que al final de cada Osciloscopio
periodo de N AP el m icrocontrolador F ig u ra 2 7 .2 C ircuitos que se pueden u s a r p ara observar e l efe cto del
despierta debido a un reset, y que ste d espe rta r d e l periodo de NAP, de acuerdo con e a n te rio r program a

M T 1 Curso prctico sobre M icrocontroiadores


salida, y de acuerdo con el nm ero de pu er Hacia el o_
tos disponibles pu ede estar entre 0 y 7. pin 1/0
Resistencia
variable
(5 -5 0kQ )
Es im po rtan te recordar que, al com enzar a
ejecu tar un program a o luego del reset, todos 0,1 pF
los pines del puerto son configurados com o
entradas por e l sistem a au to m ticam en te, y,
por lo tan to , el usuario debe configurar com o Figura 27.3 C ircuito tpico p ara la adecuada conexin y lectura
de una resistencia variable desde e l BASIC S tam p I
salidas aquello s que necesite.
para esto el m icrocontrolador m ide el tiem po
que tarda la descarga del condensador a travs
U sando esta in stru ccin se d etien e la ejecu de dicha resistencia.
cin del program a d u ran te el nm ero de m i-
lisegundos especificados. p ir t: es la variable o la constante (de 0 a 7) en
la que se especifica el p in I/O en donde se ha
m illis eco n d s : es la variable o la constante con conectado la resistencia.
la que se d eterm in a la cantidad de m ilisegun- s co le : es la variable o la constante (de 0 a 255) que
dos duran te los cuales se va a detener la ejecu se usa para definir el factor de escala del resultado
cin del program a. La pausa puede estar entre de la conversin, el cual internamente siempre
0 y 6 5 .5 3 5 m s, y, puesto que usa el circuito os tiene una resolucin de 1Gbits. La lectura siempre
cilador del BA SIC Stam p I com o base de tiem es m ultiplicada por la siguiente relacin:
po, su precisin es la m ism a, 1 %.
Resultado = (lectura 1 6 bits x scale) /255
A l u sar la p au sa te n g a en c u e n ta q u e e l p ro
g ra m a in trp rete d el sistem a slo pu ede eje v a r ia b le : es la variab le q u e se usa para alm a
c u ta r h asta 2 .0 0 0 in stru c cio n e s p o r se g u n cenar el resultado fin al de la lectu ra escalada a
d o y q u e esta v e lo c id a d re la tiv a m e n te b aja u n valor de 8 bits.
p u e d e o casio n ar p ro b lem as si se d e tie n e la
e je c u c i n en m o m en to s crtic o s, y en c ie r C on el siguiente program a, a m anera de ejem
tas tareas q u e d ep en d en c o n sid erab lem e n plo, se lee continuam ente el valor de un poten
te d e l tiem p o . cimetro conectado en P3 y el resultado se en
va al exterior por m edio de la salida serial P4.
. P O T p in .scale,v ariab le
U sando esta in struccin se pu ede leer cu al
q u ie r tipo de resisten cia variable en tre 5 y PO T 3 ,1 7 0 ,b 7 lee el potenci
50kW , com o por ejem plo, u n po ten cim e m etro d el pin 3
tro, un restato, un term istor, o u n a fotorre- en b7
sisten cia (LV R ), entre otras. U n extrem o de SEROUT 4,N300,(b7) enva la lectura
la resistencia se debe conectar con el p in del serialm ente por
p uerto, m ientras que el otro lado se conecta el p in 4
con un condensador a tierra, tal com o se apre G O T O Leerpot va a leer nueva
cia en el circu ito tpico de la fig u ra 2 7 .3 . m ente

Esta instruccin configura el pin especificado


com o una salida y calcula indirectam ente el Por medio de esta instruccin se convierte el pin
valor de la resistencia variable en u n instante, especificado en u na entrada y se m ide un pulso

Curso p r ctico sobre M icrocontroladores mt,:


de entrada en unidades de lOms. Esta instruc D esde el o -
cin siem pre usa el contador interno del siste p in 1/0
m a que es de 16 bits, y por lo tanto la m xim a 10K-
m edida ser igual a 0,65 5 3 4 segundos. Salida de
voltaje
1OpF; : anlogo
p i n : es la variable o la constante (de 0 a 7 ) en (0 a 5V)
la que se especifica el pin I/O que se va a usar,
state: es u n a variab le o u n a co n stan te que
F ig u ra 2 7 .4 Circuito tpico para g en e ra r un voltaje anlogo p o r
puede ser 0 1 y con la cual se define tipo de m e dio de la salida de PWM
flanco a p artir del cual se va a in ic iar la m ed i
cin del pulso, ste puede ser descendente o a la con dicin de entrad a, y esto nos perm ite
ascendente respectivam ente. usar esta m odulaci n para generar un voltaje
v a r ia b le : es la variable que se usa para deposi anlogo entre 0 y 5V usando un circu ito con
tar el resultado de la m edicin. Esta debe ser u n a resistencia y un condensador a tierra co
u na palabra de 16 bits (W 0 a W 6 ) para que nectados al p in de salid a, tal com o se m uestra
pueda albergar el contenido com pleto del con en la fig u ra 2 7 .4 ; en este circuito el voltaje
tad o r in tern o q u e puede c o n tar en tre 1 y an lo go se obtiene en term inales del conden
6 5 .5 3 4 unidades de tiem po (lO m s), o de 8 bits sador, y la seal P W M debe ser generada con
(B 0 a B 13) para que pueda contener el registro tin u am en te para actu alizar o refrescar el nivel
m s bajo del contador, con el que puede con de la carga del condensador.
tar entre 1 y 2 5 5 unidades de tiempo.
p i n : es la variable o la constante (de 0 a 7) en
2 1 . PU LSO U T pin,tim e la que se especifica el nm ero del p in I/O del
Por m edio de esta in struccin se puede gene m icrocontrolador por el cual se va a generar
rar un pulso duran te un tiem po especificado. la m odulacin P W M .
Este pulso se produce in virtien do el estado d u ty : es u n a variable o u n a constante entre 0
lgico previo d el pin que se h aya definido y 2 5 5 con la cual se especifica el n ivel d e vo l
com o salida del pulso. taje esperado, entre 0 y 5V respectivam ente.
cycles: es una variable o una constante entre 0 y
p i n : es la variable o la constante (de 0 a 7) en 255 con la cual se determ ina la cantidad de ciclos
la q ue se especifica el nm ero del pin I/O del de salida. C ada ciclo de salida se tarda 5ms y el
m icrocontrolador por el cual se va a generar nmero de ellos que se requieren est en funcin
el pulso. del tamao del condensador, los condensadores
t i m e : es la variable o la constante en la q u e se ms grandes necesitan de un m ayor nmero de
especifica la lo n gitu d del pulso en unidades ciclos para alcanzar su plena carga (5V).
d e tiem po de lOms. Puede estar entre 0 y
6 5 .5 3 5 u n idades de tiem po, lo que le p erm i La salida P W M em ite una rfaga de ceros y unos
te al u s u a rio g e n e ra r un p u lso de h a sta con una relacin determ inada por el valor de la
0 ,6 5 5 3 5 segundos. variable d u ty , si sta es 255, entonces la salida
ser un nivel alto continuo, pero si es 0, la salida
22. P W M pin,duty,cycles ser un nivel bajo perm anente. Para todos los
U sando esta instruccin se puede producir una valores del ciclo de servicio {duty) , que estn entre
seal m o d u lad a por ancho de pulsos (P W M ) 0 y 2 55 , la relacin de los pulsos estar dada por
sobre cu alq u iera de los pines I/O del puerto. la expresin d u ty l 2 5 5 ; por ejem plo, si d u ty es
C uando la salida P W M term ina, e l m icrocon 50 la relacin de unos a ceros ser aproxim ada
trolador retorna au to m ticam en te dicho pin m ente del 19,6% (50/255 = 0,196).
Jm . a *
Curso p r ctico sobre Microcontroladores
si
T a irc.

C uando la salida P W M se u tiliza para cargar lo c a tio n : es u n a variable o u n a constante en


un condensador y obtener entre sus term in a tre 0 y 2 5 5 en la que se especifica la posicin
les un voltaje an lo go, la m agn itu d de ste se de m em oria q ue debe ser leda.
obtiene a p artir de la expresin 5*( d ut y l 255) ; v a r i a b le : es la v a ria b le de 8 b its q u e recibe
por ejem plo, si d u ty es 2 0 0 el voltaje q u e a l el d ato led o de la p o sici n de m em o ria es
canzar el condensador ser ap roxim adam en p ecificad a.
te igu al a 3 .9 2 V (5*(200/255)).

Para obtener los mejores resultados de esta sa Esta in struccin se usa para retornar el flujo
lida, no afectar la m odulacin y reducir el n del program a a l cuerpo p rin cip al, al finalizar
m ero de ciclos de actualizacin necesarios, la la ejecucin de la su b ru tin a de salto ms in
corriente que de tal pin se extraiga debe ser m u m ed iata (G O SU B ).
cho m enor que l|iA; para esto se recom ienda
la conexin de un b u ffer de alta im pedancia
entre el pin de salida del m icrocontrolador y la C on esta in stru ccin el usuario puede in ver
carga, tal com o el seguidor de voltaje de preci tir la configuracin actual de un pin del puerto
sin construido con el operacional C A 5 160 que del m icrocontrolador en todo m om ento, si el
se m uestra en la figu ra 27.5- pin es u n a en trad a se convierte en u n a salida,
y viceversa.

Usando esta instruccin se puede generar un n p i n : es la variable o la constante entre 0 y 7


m ero seudo-aleatorio en una variable tipo ivord. con la que se especifica el p in que se va a in
vertir.
iv o r d v a r ia b le : es una variable de 16 bits que
puede estar entre 0 y 6 5 .5 3 5 , y en la cual se
en cuen tra el nm ero seudo-aleatorio q u e re
su lta de la ejecucin de esta in struccin.

Por m edio de esta in struccin, que se puede


Utilizando esta instruccin se puede leer cualquier escrib ir en los tres form atos aq u indicados,
posicin de la m emoria EEPROM del sistema y se h a b ilita un p in del puerto com o una entra
guardar el valor en una variable determinada. d a serial y se en tra en un estado de espera para
las restricciones y las variables opcionales.
Esta in struccin recibe un b yte a la vez y lo
0,1 uF com para con la o las restricciones, si sta o
stas se satisfacen, se guard a en la variable
correspondiente.

p i n : es la variable o la constante entre 0 y 7


con la q ue se especifica el p in que va a ser
usado com o puerto de en trad a serial.
b a u d m o d e : es una variable o u n a constante
entre 0 y 7 con la que se define el m odo de
trabajo y la velocidad de recepcin serial; en
la tab la 2 7 .3 se m uestran los ocho posibles
F ig u ra 2 7 .5 S eguidor d e voltaje de precisin co n e l am plificad or
operacional CA5160
m odos de configuracin de la en trad a serial,

Curso p r ctico sobre M icrocontroladores


CCLlLLLltd < [L llltiC d L lc c lC S LULa\2Cy$@|lL>= AELC SLLULl L

# S m bolo V elo cida d P ola rid ad b a u d m o d e : es u n a variab le o u n a co nstante


0 T2400 2.400 No invertida entre 0 y 15 con la q u e se d efin e el m odo de
1 T1200 1.200 No invertida trab ajo y la velocid ad de tran sm isi n serial;
2 T600 600 No invertida en la ta b la 2 7 .4 se m uestran los posibles m o
3 T300 300 No invertida
dos de co n figu raci n de la sa lid a serial, stos
4 N 2400 2.400 Invertida
5 N 1200 1.200 Invertida
p u ed en escribirse usan do los nm eros del 0
6 N 600 600 Invertida a l 15, o los sm b o lo s eq u ivalen tes p ara cada
7 N300 300 Invertida m odo. En esta tab la ap arecen los p arm e
Tabla 27.3 Tabla de opciones d e l m odo de configu ra ci n de la tros que se pueden cam biar, los otros son los
entrada serial usados p o r el form ato serial estn d ar que se
sto s pueden escribirse usando los nm eros del d en o m in a N 8 1 .
0 al 7, o los sm bolos equivalentes para cada d a ta : son las variables o las co n stan tes op
m odo. En esra tabla aparecen los parm etros cion ales (entre 0 y 2 5 5 ) de 8 b its cada una,
que se pueden cam biar, los otros son los usa q ue co n tien en el d ato q u e se va a e n v iar se
dos por el form ato serial estndar, denom ina rialm en te. C u an d o el d ato est precedido por
do a m enudo N 8 1, y que son: sin b it de p ari el sm b o lo # se tran sm ite com o u n a cadena
dad, 8 b its de datos y con un b it de parada. de caracteres de texto (con lo n g itu d entre
q u a lifiers: son las variables o las constantes op uno y cin co caracteres); pero cu an d o no, los
cionales (entre 0 y 255) que representan las res datos se tran sm iten com o un sim p le byte.
tricciones que se deben recibir en el orden espe
cificado en el formato de la instruccin, antes C om o u n ejem plo se escriben las dos sig u ien
de continuar con la ejecucin del program a. tes in stru c c io n e s de tra n sm is i n se ria l a
variables: son las variables opcionales que se usan 1 .200ba u d s y c o n po laridad in vertid a: con la
para alm acenar los datos recibidos (pueden ser p rim era se en va el valor 65 que equivale y se
hasta 255). Si estn precedidas por el smbolo # recibe com o la letra A de acuerdo con el
la instruccin convierte el texto num rico en cdigo A SC II; m ientras que con la segunda
un valor antes de guardarlo en la variable. se enva la cadena de texto de caracteres nu-
/ t y- c
m eneos 65 .
C om o un ejem plo, la siguiente instruccin de
tiene la ejecucin del program a hasta que se '
# S m bolo
reciben serialm ente por PO, a 2A 00bauds y con ---- - V elo cida d P o la rid a d y m o d o d e s a lid a
I 0 T2400 2.400 No invertida
polaridad invertida, los bytes que conform an la 1 T1200 1.200 No invertida
cadena de caracteres C O N T IN U A R . U na vez 2 1600 600 No invertida
que la restriccin se cum ple, se guarda el byte 3 T300 300 No invertida
siguiente en la variable b3. 4 N2400 2.400 Invertida
5 N1200 1.200 Invertida
6 N600 600 Invertida
SE R IN 0 ,N 2 4 0 0 , (C O N T IN U A R ),b 3 7 N300 300 Invertida
8 OT2400 2.400 No invertida (drenador abierto)
9 0 T 1 200 1.200 No invertida (drenador abierto)
Por m edio de esta instruccin se h ab ilita un 10 OT600 600 No invertida (drenador abierto)
11 OT300 300 No invertida (drenador abierto)
pin del puerto del m icrocontrolador com o una
12 ON2400 2.400 Invertida (fuente abierta)
salida serial ap ta para la transm isin de datos. 13 ON1200 1.200 Invertida (fuente abierta)
14 0N6O0 600 Invertida (fuente abierta)
p i n : es la variable o la constante entre 0 y 7 15 ON300 300 Invertida (fuente abierta)
con la que se especifica el pin que va a ser
Tabla 2 7 .4 Tabla de opciones del m odo de configuracin de la
usado com o puerto de salida serial. salida serial
*
266 & M K G R V I.A . Curso p r ctico sobre M icrocontroladores
e u L t c i

DB-9 hem bra (PC/AT) Si el m icrocontrolador est m anejando car


(Lado de soldadura) gas y entra en el modo sleep , es im portante
que el usuario siem pre recuerde que la co
rriente a travs de estas ser interrum pida
durante 18ms cada vez que ste despierta,
debido a la ejecucin del reset del tem pori
.T ie rra (GND)
zador del w a tch d og, lo cual se genera cada
-52WV Pin 1/0<SERIN> 2,3 0 4 segundos.
Pin l/O (SEROUT)

DB-25 m acho (PC/XT)


(Lado de soldadura)

Esta in struccin convierte el p in especifi


cado en una salid a y genera por l un tren
de pulsos de on d a cuad rad a con una fre
Pin l/O (SERIN) cuencia determ inada (una nota), y con una
Pin l/O (SEROUT) d uracin d eterm inad a. Para conectar d i
Tierra (GND) rectam ente el parlan te a la salid a de tono,
F ig u ra 2 7 .6 Estructura de lo s conectores DB de 9 y 2 5 pin e s para se pued en usar los dos circu ito s que se
tra n s m itir datos entre la PC y e l BASIC Stam p I m uestran en la fig u ra 2 7 .7 .

10pF
S E R O U T 1,N I 2 0 0 , (6 5 ) se recibe la letra Desde el Desde el 220n
pin 1/0 pin l/O
A ~1IH n
40Q M
SE RO U T 1,N 1200, (#65) se recibe la cade- < 0 ,5 W W
na de texto 6 5

Para enviar o recibir datos seriales h acia y des F ig u ra 2 7 .7 C ircuitos tpicos para c on ectar directam ente un
p arlante de alta im pedancia a t p u e rto d e l BASIC Stam p I
de la P C , el B A SIC Stam p I requiere de una
resistencia de 2 2 k 2 y alg u n a de las dos es p in : es la variable o la constante por m edio de
tructuras para los conectores de los puertos la cual se especifica el pin I/O que se va a usar
DB de 9 y 25 pines q u e se m uestran en la com o salida de sonido, puede estar entre 0 y 7.
fig u ra 2 7 .6 . n o te ( s ): son variables o constantes que pue
den estar entre 0 y 2 5 5 y por m edio de las
cuales se define la frecuencia del ton o de sali
Esta in stru ccin hace que el m icrocontrola da. C on la nota 0 se produce silencio (0H z),
dor entre en m odo de ado rm ecim iento o de con las notas 1 a 127 se producen tonos de
bajo consum o (m odo sleep ) d u ran te un n f r e c u e n c ia a s c e n d e n te e n tr e 9 4 ,8 H z y
mero especificado de segundos. En este m odo
el consum o del m icrocontrolador se reduce 1
- 95X10 '6
de Im A a cerca de 20|lA. Frecuencia (Hz)
NOTA = 127 -
83X 10 6
s e co n d s : es la variable o la constante en la que
se especifica la d uracin d el m odo de ador FRECUENCIA (Hz) =
m ecim iento en segundos, y puede estar entre 9 5 X 1 0 '6 + ((127 - Nota) X 83 X 1 0 '6)
1 y 6 5 .5 3 5 con u n a resolucin de 2 ,30 4 s; esto
quiere decir que su du raci n puede estar en F ig u ra 2 7 .8 Ecuaciones para d eterm ina r la frecuencia y la nota
tre 2 ,3 s y 18h. d e l tono de salida

Curso p rctico sobre M icrocontroladores e m M C M T s l


C C L l i u , ^ c L lS 'w C C L l LCS L U a \ C C L im : L 2 . a c S L U & IC X 2.LIILI L

1 0 .5 50H z, y con las notas 128 a 2 5 5 se gene


ran ruidos blancos ascendentes. Por medio de esta instruccin se guarda o escri
d u r a t i o n ( s ) : son las v ariab les o las c o n stan be un dato de 8 bits en la localidad de la m em o
tes por m ed io de las cuales se esp ecifica la ria EEPROM del sistema que se especifique.
d u rac i n de la em isi n de c ad a n o ta. P ue
d en estar e n tre 1 y 2 5 5 , y la u n id a d de tie m lo c a t io n : es u n a variable o una constante en
po es 12m s. tre 0 y 2 5 5 por m edio de la cual se especifica
la posicin de la m em oria en la cual se va a
En las ecu acio n es de la fig u ra 2 7 .8 se m u es guard ar el dato.
tran las d o s relacio n es q u e h a y e n tre la fre d a ta : es la variable o la constante que va a ser
c u e n c ia d e s a lid a y la n o ta , c u a le sq u ie ra escrita en la E E PRO M en la lo calid ad d e fin i
d e stas p u ed e ser de m u c h a u tilid a d p ara da, por ser de 8>itsp u ed e estar entre 0 y 2 55 ,
el u su ario a la h o ra de c a lc u la r el to n o de y debe estar expresada en cu alq u ier form ato
sa lid a . com patible y aceptado por el program a ed i
tor del B A SIC Stam p I.

Esta instruccin se utiliza para convertir el pin C on el sigu iente program a se aclara el uso
I/O especificado en una salida y cam b iar su de esta instruccin, con esta pequea ru tin a se
estado lgico de 1 a 0 , y viceversa, cada q u e se reciben datos en serie y se alm acenan en posicio
ejecuta. nes consecutivas de la EEPRO M .

p i n : es una variable o una constante que est READ 2 5 5 ,b2 captura la posicin de la ltima
entre 0 y 7 y sirve para especificar el pin al instruccin del programa
Repetir:
q ue se le cam b iar el estado.
b2= b2-l decrementa hasta la prxi
A m an e ra d e e je m p lo se e sc rib e e l s ig u ie n
ma posicin de la EEPROM
te p ro g ra m a : en l se c o n fig u ra com o s a li
disponible
d a el p in 7 y se c a m b ia su estad o l g ic o 10 SERIN 0,N 300,b 3 recibe un byte en serie en
veces. b3
W R IT E b2,b3 guarda el byte recibido en
FO R b l = 1 TO 10 la siguiente posicin de la
TO G G LE 7 se cambia el estado de P7 EEPROM
NEXT IF b2>0 THEN Repetir salta a capturar otro byte

PARA SABER MS:


Redes de comunicacin con BASIC STAMP I

En el diagram a que se m uestra en la figura


27.9 se indica, por medio de un circuito sim
ple, la form a de usar la tecnologa de dre-
PC
nador abierto (open drair), para conectar dos Terminal
1 /6 de 7404
o ms m icrocontroladores BASIC Stamp I
con una PC, o cualquier term inal, a travs
de una lnea de com unicacin serial de una F ig u ra 2 7 .9 C ircuito para conectar m ltiples sistem as BASIC Stam p I
red de datos. en red

d u r i r : Curso prctico sobre M icrocontroladores


LOS MICROCONTROLADORES
BASIC Stamp II
G en e ralm e n te los p ro d u cto s tecn o l gico s poseen
u n suceso r q u e es u n a n u ev a versi n con otras fu n
cio nes y caractersticas in n o v ad o ras, pero co m p a
tib le 1 0 0 % co n sus an teceso res; tal es el caso d el
m ic ro co n tro la d o r B A S IC S tam p II, q u e es la si
g u ie n te versi n d e l B A S IC S tam p I.

Para el B A S IC S tam p II se h a d esarro llado un len


g u aje d en o m in ad o P B A S IC 2 , y se h an agregado al
gu n as h erram ien tas d e h a rd w a re y so ftw a re de gran
u tilid a d p ara el p ro gram ad o r, ad em s de u n a a rq u i
tectu ra y u n soporte de p ro gram aci n m ejorados.
L es lu tcm cu L iifu lad u tiis likSLC S bluli LL

intrprete de las in strucciones, u n a m em oria de


En esta leccin estudiarem os el m icrocontrola acceso serial tipo E E PR O M , u n regu lad o r de
d or B A SIC Stam p II (B S 2 -IC ), desarrollado por +5V, un oscilador, un circuito de reset au to m ti
P arallax, Inc. Este m icrocontrolador se constru co, y u n a interfaz de com un icaci n serial.
y usando la tecnologa de m o n taje superficial
p ara obtener un dispositivo de bajo costo, redu Para program ar el B A SIC Stam p II el usuario
cido tam ao, alta eficiencia y gran capacidad, que slo debe contar con algunos requerim ientos m
puede ser usado com o u n a pequea com puta nim os en su equipo, q ue son: el program a ade
d ora en trabajos p ara la in d u stria, el com ercio, la cuado, una com putadora con sistem a operativo
educaci n, el entreten im ien to y el hogar. M S -D O S 2.0 superior, 128K bytes disponibles
en m em oria R A M , y un puerto serial libre.
El BA SIC Stam p II se com pone de un entor
no de program acin am igable, un lenguaje de pro
gram acin propio y una estructura de circuitos L a versin d el B A SIC Stam p B S 2 -IC que se
extendida como soporte. El lenguaje de progra m uestra en la figu ra 2 8 .1 , tal com o se aprecia, se
m acin se denom ina PBA SIC 2 y ha sido desarro desarrolla en u n a estru ctu ra D IP (de doble fila)
llado por Parallax a p artir del lenguaje PBA SIC
con un reducido nm ero de instrucciones (3 6 ins
trucciones), todas m u y com pactas, verstiles, po
derosas y de fcil m anejo; entre las nuevas ins
trucciones se pueden enunciar: C O U N T (rutin a
p ara contar ciclos), R C T IM E (rutina para m edir
las constantes de tiem po R C ), F R E Q O U T (ruti
n a para generar seales seno), y D T M F O U T (ru
tin a para generar tonos telefnicos), entre otras.

El h a r d w a re del m icrocontrolador B A SIC


Stam p II se construye sobre un pequeo circuito
im preso de m o n taje superficial, y en el cual se
in cluyen : u n m icrocontrolador P IC de M icro
ch ip con el p rogram a residente (fir m w a r e ) del 10 P 5 P 10 15

11 P 6 P9 14

12 P 7 P8 13

F ig u ra 2 8 .1 Aspecto fsico y distribucin de lo s com ponentes y p in e s d e l BASIC Stam p II

Vil Curso prctico sobre M icrocontroiadores


V e d is .

PIN NOMBRE DES C R IPC I N CO M EN TA R IO S un c irc u ito de o scilac i n de


1 TX Salida serial Conectar al pin 2 del puerto serial DB 9 (RX)
20M H z, y una interfaz de com u
2 RX E ntrada serial Conector al pin 3 d e l puerto serial DB 9 (TX) nicacin serial R S232 para nive
3 ATN Atencin, reset activo en ato Conectar al pin 4 def puerto serial DB 9 (DTR)
4 GND Tie rra serial C onectar a l pin 5 del puerto serial D B 9 (GND)
les de com unicacin de +12V y -
b PO Pin l/O 0 C ada pin puede m a n e ja r 2 0 m A en modo 12 Y ( Q l, Q 2 y Q 3).
6 P1 Pin l/O 1 source y 2 5 m A e n m odo sink
/ P2 Pin l/O 2 P 0-P 7 y P 8 -P 1 5 com o grupos, pueden m anejar
8 P3 Pin l/O 3 un total d e 4 0 m A en m odo source y 5 0 m A en
9 P4 Pin l/O 4 m odo sink
1U P5 Pin l/O 5
11 P6 Pin 1/0 6 En la figura 28.3 se muestra la tar
12 P7 Pin 1/0 7 Para s e le c c i n a u to m tic a del p u e rto s e ria l, p o r p arte
13 P8 Pin 1/0 8
del s o ftw a re d e l BASIC S ta m p ll.s e d eb e n u n ir lo s pine s jeta para desarrollo de prototipos
DSR (pin6) y RTS (pin 7) del p ue rto serial DB9. Esta conexin
14 P9 Pin 1/0 9 est hecha e n la ta rje ta d e pro totipo s del BASIC S ta m p II (icarrier board) diseada por Para-
15 P 10 Pin l / 0 1 0 (carrier boarc). pero s i se desea hacer una ta rje ta especifica,
se d eb e te n e r p re se n te h a c e r d ich a co nexin. llax para el microcontrolador BA
1 fi P11 Pin l/O 11
17 P 12 Pin l/O 1 2 D u ra n te la o p e ra ci n n o rm a l el S ta m p II co n su m e cerca SIC Stamp II, sta cuenta con ter
18 P 13 Pin l / 0 1 3 de 8 m A , sin e m b a rg o en lo s m o do s d e operacin de bajo
c o n s u m o se p u e d e re d u c ir a ce rc a d e 5 0 p A . minales para la conexin con una
19 P 14 Pin 1 /0 1 4
20 P 15 Pin l/O 1 5 batera de 9Y C C , un conector
21 +5V Fuente d e + 5 V E ntrada reg u la d a de + 5V y salida requlada (.socket) tipo DIP para la conexin
22 RES Reset activo en bajo Llevar a 0 para resetear (se pone en 0 durante el reset)
23 GND Tie rra del sistem a del BASIC Stam p II, dos conec-
24 PWR Entrada al regulador Entrada a l regulador de voltaje d e + 5 V (6 -1 5 voltios) tores en lnea paralelos al micro
Tabla 28.1 D i s t r i b u c i n y d e s c r ip c i n d e p i n e s d e l B A S IC S t a m p II controlador que dejan disponibles
todos sus pines, un pulsador para
de 2 4 pines para facilitar su aco tom tico de reset a la conexin y el reset, un conector BD 9 hembra
ple y c o m p atib ilid ad con los desconexin (U 3), un regulador para la comunicacin serial con
otros circuitos im presos y table de voltaje integrado de +5V (U4) la PC , y la tarjeta multiusos sobre
ros de conexiones (protoboa rd s ). que alim enta a todo el sistema, la cual se pueden desarrollar pe-
La asignacin y las funciones
d efinidas para los pines de este
FUENTEDEPODER DELSISTEMA
m icrocontrolador se describen 5V
a contin u aci n en form a resu V0D >

m id a en la tab la 28.1.

En la figura 2 8.2 se m uestra el


diagram a electrnico del BASIC
Stam p II, en ella pueden verse:
un m icrocontrolador de 28 pi
nes de M icrochip P IC 1 6C 5 7
(U 1) que es el corazn del sis
tem a y en el cual est grabado el
program a intrprete de las ins
trucciones del P B A SIC 2, una
m em oria serial EE PRO M de
2 .0 4 8 b y t e s d e M ic r o c h ip
2 4 L C 1 6 B (U 2) que recibe y
DTA1 14 EETL
guarda el program a diseado
por el usuario, u n circuito au- fgu[a 2 g2 Dlggram M^ ^ ((
M *
Curso prctico sobre M icrocontroladores
L as LiueL-acuuuulaui'CS ISASIG SL&luli 11

BASIC Stamp ti criben las localidades del m apa de m em oria RAM


disponibles para el programador, y los registros,
nombres, y funciones definidas para cada una.

e c to r de Las prim eras tres posiciones del rea de m em oria


______________ p ro g ra m a c i n
son palabras de 16 bits ( w ord s ) y se asocian con el
T a rje ta de p ro to tip control de los puertos; la p rim era palabra, la va
E ntrad a de +9VCC
riable IN S, es de slo lectu ra y contiene el reflejo
del estado lgico presente en los 16 pines I/O
Figura 28.3 T a rje ta d e p r o t o t ip o s d e l m ic r o c o n t r o la d o r B A S IC S t a m p II
del puerto (PO a P 15), m ientras que la segunda
queos circuitos prototipo, lo que resulta bastante variable O U T , es de lectura y escritura, y contie
til en la etapa de experimentacin y desarrollo de ne el estado b inario de las salidas.
cualquier proyecto. M a pa de m e m o ria RAM d e l BASIC S ta m p il
Palabra B yte Nibble
(Sbits) (4bits) B it Notas especiales |
Los circu ito s que se (I6bits)
co n stru yan sobre la tarje INS INL INA, INB, INO - IN7, Pines de entrada; palabra, byte,
ta de prototipos, pueden INH INC.IND IN8 - IN15 nibble y bit direccionables
| OUTS OUTL OUTA, OUTB, OUTO - 0UT7, Pines de salida; palabra, byte,
ser alim en tad o s con el re
OUTH OUTC, OUTD 0UT8 - 0UT15 nibble y b it direccionables
g u lad o r in tern o de +5V DIRL DIRA, DIRB, DIRO - DIR7, Pines I/O de control de
| DIRS
d e todo el sistem a; pero, DIRH DIRC, DIRD D IR 8 -D IR 1 5 direccin; palabra, byte, nibble
en v ista de q u e el regula v b it direccionables
d o r tien e una cap acid ad WO BO De propsito general; palabra,
B1 byte, nibble y bit direccionables
m x im a de 5 0 m A , y el
W1 B2 De propsito general; palabra,
m icro co n tro lad o r consu byte, nibble y bit direccionables
B3
m e 8m A , stos no deben W2 B4 De propsito general; palabra,
co n su m ir m s d e 42m A . B5 byte, nibble y b it direccionables
W3 B6 De propsito general; palabra.
B7 byte, nibble y bit direccionables
M apa de m em oria De propsito general; palabra.
W4 B8
del BASIC Stam p II B9 byte, nibble y b it direccionables
Este m icrocontrolador tie W5 B10 De propsito general; palabra,
ne 2.0 4 8 posiciones de 8 B11 byte, nibble y bit direccionables
bits disponibles en la me W6 B12 De propsito general; palabra,
B13 byte, nibble y b it direccionables
m o ria de p rogram a tipo
W7 B14 De propsito general; palabra.
E E PRO M y 3 2 b ytes de byte, nibble v bit direccionables
B15
m e m o ria R A M p a ra el W8 B16 De propsito general; palabra,
usuario; en sta ltim a, los B17 byte, nibble v b it direccionables
primeros 6 estn reservados W9 B18 De propsito general; palabra,
B19 byte, nibble y bit direccionables
para configurar los pines de
W10 B20 De propsito general; palabra,
entrada o salida y controlar byte, nibble v b it direccionables
B21
la direccin de los mismos, W11 B22 De propsito general; palabra,
m ientras que los restantes B23 byte, nibble y b it direccionables
26 estn disponibles como W 12 B24 De propsito general; palabra,
B25 byte, nibble y b it direccionables
variables de propsito gene
ral. En la figura 2 8.4 se des figura 2 8 .4 Mapa d e la m em oria RAM disponible d e l BASIC Stam p II

Curso prctico sobre M icrocontroladores


INS: El registro DIRS controla cul de dora y el cable D B -9 a D B -9 que el fabricante
los pines l/O s o r entradas y cules
salidas. Cuando se pone la entrada su m in istra especialm ente para este propsito, o
en O, el b it correspondiente en el
OUTS: registro OUTS se desconecta y se uno sim ilar; en la fig u ra 2 8 .6 se m uestra la con
Ignora. figuraci n que tien e el conector que se in cluye
Cuando se pone la salida en 1 , el
bit correspondiente en el registro en la tarjeta de prototipos del B A SIC Stam p II.
OUS se conecta.
DIRS:
Nota:
"X" indica cualquier estado, un 0 Instrucciones del lenguaje PBASIC2
un 1 lgicos y no a fe c ta otros El lengu aje de program acin del B A SIC Stam p
P in l/O: elem entos.
C irc u ito
? indica un estado desconocido II est com puesto por un conjunto reducido de
que puede cam biar en cualquier
e xte rn o : m om ento. in strucciones (36 instrucciones) de alto nivel y
se d en om ina P B A SIC 2; ste ha sido diseado por
F ig u ra 2 8 .5 D i a g r a m a r e s u m i d o d e in t e r a c c i o n e s e n t r e la s Parallax teniendo en cuenta las instrucciones de
v a r i a b l e s D IR S , I N S y O U T S
la versin an terio r (PB A SIC ) y agregando algu
nas otras con funciones especiales.
C on la palabra D IR S se configura la direc
cin (com o en trada o salida) de cada uno de los
En esta seccin se estu d iarn las nuevas ins
16 pines del puerto.
truccio n es de este len g u aje y las m o d ificacio n es
que se han hecho sobre las de la versin an te
En la fig u ra 2 8 .5 , por m edio de un d iagra
rior (P B A S IC ), estu d iad as antes. Se p resenta
m a, se resum en los resultados de las relaciones y
rn en orden alfab tico para fac ilita r su b sque
com binaciones de los estados lgicos entre las
da y o m itien d o las in stru ccio n es q u e existen y
variables de control D IR S, O U T S e IN S.
op eran igu al en las dos versiones d el len g u aje,
as com o tam b in , aq u ellas q u e slo sufren una
P rogram acin del BASIC S tam p II
extensin en la variab le o constante llam ad a pin ,
En lo que a la program acin de este m icrocon
que en el Stam p II puede estar en tre 0 y 15 y
trolador se refiere, adem s de conocer las instruc
que se refiere al n m ero d el pin sobre e l c u al se
ciones del lengu aje P B A SIC 2, el usuario debe
est trab ajan d o .
conocer el program a de desarrollo que su m in is
tra el fabricante, desde el cual, se puede editar,
com pilar, depurar y transferir el program a. Para
C on esta instruccin se cuenta el nm ero de ci
program ar y d ep u rar el so ftw a re del m icrocon
clos (cam bios de estado de 0 a 1 a 0 , , de 1 a 0
trolador se u tiliza el puerto serial de la com puta-
a 1) que lleguen por un pin especificado duran
BS2 P in (#) te un periodo de tiem po definido en m ilisegun-
dos y se guarda el valor de la cuenta en una va
< SO UT (1)
riable. Para ondas rectangulares el contador pue
> S IN (2 )
de responder hasta una frecuencia de 125kHz.
>A T N (3)

VssW p in : es una variable o una constante que es


pecifica el p in I/O que se va a usar com o en
trada del contador, puede estar entre 0 y 15.
p erio d : es u n a variable o una constante entre
0 y 6 5 .5 3 5 con la cual se especifica el tiem po
(en m s) que va a du rar la cuenta d e los ciclos,
variab le: es la variable, generalm en te una pa
labra, en la cual se debe guardar el resultado
F ig u ra 2 8 .6 C o n f i g u r a c i n d e l c o n e c t o r d e c o m u n i c a c io n e s d e l
B A S IC S t a m p If del contador de ciclos.

Curso p rctico sobre M icrocontroladores CWMMT.:


L.US LllICL\lCLl\4aL\= LlASLG SlE.lU|i IL

crem ento se ha cam biado por el valor del paso


C o n esta in struccin se puede m onitorear el {stepval) que tam bin puede ser negativo.
curso del program a en cu alq u ier m om ento y
por m edio de ella se puede visualizar cualquier
variable o m ensaje en la pantalla de u n a PC U tilizando esta instruccin se pueden gene
conectada con el BA SIC Stam p II. rar uno o dos tonos con ondas seno d uran te
un tiem po determ inado.
outputdata: puede ser una o varias de las si
guientes opciones: cadenas de texto, variables, p in : es u n a variable o un a constante que es
constantes, expresiones, m odificadores de for pecifica el p in I/O que se va a usar com o sali
m ato, o caracteres de control. d a, est entre 0 y 1 5.
d u ratio n : es u n a variable o una constante en
tre 1 y 6 5 .5 3 5 con la cual se especifica el tiem
U tilizan d o esta in struccin se pueden gene po (en m s) que van a du rar los tonos,
rar tonos duales de m ltiples frecuencias (D ual fre q l y freq2: son las variables o las constantes,
Tone M u ltiF recu en cy, D T M F ), com patibles la segunda opcional, por m edio de las cuales se
con el sistem a de com un icacin por tonos de especifica la frecuencia del tono en Hertz; puede
las redes telefnicas. estar en tre 0 y 3 2 .7 6 7 .

p in : es una variable o una constante que es


pecifica el pin I/O que se va a usar com o sali Por m edio de esta instruccin se puede generar
d a, est entre 0 y 15. un pulso por uno de los pines del puerto (0 al
ontime: es una variable o una constante opcio 15) durante un tiem po que puede estar entre
nal entre 0 y 6 5 .5 3 5 con la cual se especifica el 2ms y 131m s, con resolucin de 2m s. La varia
tiem po (en ms) que va a durar el tono. Por de ble o constan te tim e puede estar entre 1 y 6 5 .5 3 5 .
fecto, si no se especifica, es 200m s.
offtime: es una variable o una constante op
cional entre 0 y 6 5 .5 3 5 con la cual se especifica Usando esta instruccin se puede producir una
el tiem po (en ms) que va a du rar el espacio de seal m o d u lad a por ancho de pulsos (P W M )
silencio entre los tonos, o al final del tono. Por en cualq u iera de los pines I/O del puerto, y
defecto, si no se especifica es igual a 50m s. convertir un valor d ig ita l en uno an lo go (un
tone: es u n a v ariab le o u n a co n stan te (e n voltaje entre 0 y 5V desarrollado sobre los ter
tre 0 y 15) q u e esp ecifica el tono D T M F m inales de un condensador). C o n la variable
q ue d eb e ser en v iad o . E ntre 0 y 9 co rres o la constante p in (entre 0 y 1 5) se especifica
p o nde con los tonos de los d g ito s 0 a 9 , el nm ero del p in I/O del m icrocontrolador
con 10 e q u iv ale al c arcter star (* ), con 11 p o r el cu al se va a g en erar la m o d u laci n
al c arcter n m ero (#), y en tre 12 y 15 co P W M , m ientras que con cy cles , que puede ser
rresp o n d e con la c u a rta c o lu m n a de to n o s, una variable o una constante entre 0 y 65 .5 3 5 ,
A a D , usados en e q u ip o s de p ru eb a telef se d eterm in a la can tid ad de ciclos de salid a de
n ico s y de radio . lm s cada uno. C on d u ty se define la relacin
de ceros y unos, que es conocida com o el ci
clo de servicio de la seal m odulada.

C on esta instruccin se im planta un lazo del


tipo FO R ...N E X T tal com o en la instruccin Utilizando esta instruccin se cuenta el tiempo
de la versin anterior, pero, en este caso, el in- durante el cual un determ inado pin permanece
t *
C ffW u W s a- Curso prctico sobre M icrocontroladores
V & U ls.

paridad par), y el b it 14 controla la polaridad


(0= directa, y l= in vertid a).
plabel: es la etiq u eta opcional con la que se
nom bra la posicin a la que se debe saltar si
se detecta u n error de paridad,
timeout: es una variable o constante opcional
(de 0 a 65.5 3 5 ) que sirve para definir el tiempo
F ig u ra 2 8 .7 Redes sugeridas para m e d irla constante de tiem po (en ms) que se debe esperar para recibir un dato,
RC y la ecuacin caracterstica
tlabel: es u n a etiq u eta opcional que hace re
en un estado. Esta instruccin se ha diseado ferencia a la posicin a la cual se debe saltar si
para m edir los tiem pos de carga y descarga de se detecta que un dato no ha entrado en el
condensadores en redes con resistencias (RC). tiem po especificado por tim eou t.
inputdata: es una lista de variables y m odifi
pin: es una variab le o una constante q u e es cadores que le inform an al m icrocontrolador
pecifica el pin I/O que se va a usar com o en lo que se debe hacer con los datos que van
trada, est entre 0 y 15. llegan do en serie.
state: es u n a variab le o u n a constante que
puede ser 1 0 , y, por m edio de ella, se define
el estado que se debe alcanzar para fin alizar la
m edicin del periodo RC.
resultvariable: es la variable en la cual se guarda Por m edio de los dos form atos de esta in s
el tiem po que ha resultado de la m edida, el al trucci n , que a q u se m uestran, se h ab ilita un
cance est entre 0 y 6 5 .5 3 5 en unidades de 2s. p in del puerto com o u n a salid a serial de d a
tos no sincrnica (tal com o la R S 2 3 2 ).
En la figura 2 8 .7 se m uestran dos tipos de
redes que pueden ser utilizadas para m ed ir el tp in : es la variable o la constante entre 0 y 16
periodo R C , y la ecuacin que se usa para ello. con la que se especifica el pin que va a ser
usado com o un puerto de salid a serial. C on
16 se elige la salida serial dedicada del siste
m a (S O U T ).
Por m edio de esta in struccin se h ab ilita un baudm ode: es la variable o constante de 1Gbits
pin del puerto com o u n a entrada serial de d a con la que se define el tiem po y la co n figu ra
tos no sincrnica (tal com o la R S -2 3 2 ). ci n de datos. La fu n ci n asign ad a para sus
rpin: es la variable o la constante entre 0 y 16 b its es sim ilar a la de la in struccin SE RIN .
con la que se especifica el pin que va a ser usado pace: es un a variable o constante opcional (en
como puerto de entrada serial. C o n 16 se espe tre 0 y 6 5 .5 3 5 ) q u e sirve para d efin ir el tiem
cifica la entrada serial dedicada del sistema (SIN), po (en ms) que se debe esperar para tran sm i
fpin: es una variable o u n a constante opcio tir un nuevo dato.
nal (entre 0 y 15) con la q ue se define cul va o u tp u td ata: es un a lista de variables, cons
a ser el p in de control de flujo de datos, tantes y m odificadores que le inform an al m i
b audm o de: es la variable o constante de 16 crocontrolador cul es el form ato de los d a
bits con la que se define el tiem po y la confi tos q u e se van a enviar,
guracin de datos. Los b its del 0 al 13 definen fpin: es la variable o la constante opcional entre
el tiem po para un b it recibido m enos 20s, el 0 y 15 con la que se define cul va a ser el pin
b it 13 controla la lo n gitu d del dato y la pari para el control del flujo de datos durante la ru
dad (0= 8 b its sin p aridad, y 1 = 7 b its con tina de transm isin byte a byte (handshak ing).
. *
r ctic o sobre M icrocontroladores * !% B & H T s . 275
Las L U L i^ a c a L i i r a Ladafes LAELC g i 2 .m 11 LL

En este caso los interrupto res operan


SIMBOLO VALOR SIGNIFICADO
tal com o en S H IF T IN , excepto que
MSBPRE 0 Prim ero el MSB y m uestreo antes de los pulsos del reloj
LSBPRE 1 Prim ero el LSB y m uestreo antes de los pulsos del reloj
d a ta es la variable o constante que con
MSBPOST 2 Prim ero el MSB y m uestreo despus de los pulsos del reloj tiene el dato q ue se va a en viar y slo
LSBPOST 3 Prim ero el LSB y m uestreo despus de los pulsos del reloj tiene dos m odos; tal com o se m uestra
en la tabla 28.3.
Tabla 2 8 .2 Modos de recepcin sincrnica con la instruccin SHIFTIN

timeout: es una variable o constante opcional


(de 0 a 6 5 .5 3 5 ) que se usa para d efin ir el tiem Con esta instruccin se detiene la ejecucin en
po (en ms) que se debe esperar para recibir el curso del programa (se congela), pero el micro
perm iso para enviar un dato, controlador no reduce el consumo de potencia.
tlabel: es una etiqueta opcional que hace refe
rencia a la posicin a la cual se debe saltar, al
detectar que no se ha dado el perm iso de trans C on esta instruccin se escribe directam ente
m isin dentro del tiem po definido en tim eou t. un b yte e n la m em oria EEPRO M del sistema.

address: es la variable o la constante con la


que se especifica la localidad de la m em oria
C on esta in struccin se reciben datos en for que va a ser escrita con un dato de 8 bits. Pue
m ato serie y con desplazam iento sincrnico. de estar entre las posiciones 0 y 2 .0 4 7 .
byte: es el dato con form ato d e un b y te que se
dpin: es la variable o la constante entre 0 y 16 va a guard ar en la m em oria.
con la q u e se especifica el pin receptor del dis
positivo de transm isin serial sincrnica,
cp in : es la variab le o la constante entre 0 y 16 C on esta in struccin se pueden enviar hasta
con la q ue se especifica el pin q ue va a ser 10 com andos a travs de un p in d el puerto,
usado com o el reloj de sincronizacin, el cual es usado com o ln ea de control. stos
mode: hay cuatro modos que pueden definirse se envan m odulados y deben recibirse por
con sus smbolos o con los nmeros entre 0 y 3. m edio de la interfaz apropiada.
En ia tabla 28.2 se describen dichos modos
result: puede ser una variable tipo bit, nibble, m p in : especifica el p in I/O del puerto (entre
byte, w ord. En sta se guardan los bits del dato, 0 y 15) que se usar com o salid a m ltip le de
bits: es u n a en trada opcional que define el n com andos (todos m odulados),
m ero de b its q ue deben ser recibidos (entre 1 zpin: especifica el p in l/O (entre 0 y 15) que
y 16). Si no se especifica, se asum e com o 8. se usar com o en trad a de cruce por cero des
de la interfaz.
h o use: especifica el c d igo de los com andos
en viados, con valores en tre 0 y 15 se repre
C on esta instruccin se envan datos en for sentan los co m and os eq u ivalen tes para las
m ato serie y con desplazam iento sincrnico. letras en tre la A y la P.
keyo rco m m an d : especifica la tecla o
el co m an d o de co n tro l equ ivalen te,
SMBOLO VALOR SIGNIFICADO cycles: es un in terru p to r op cio n al y
| LSBFIRST 0 El prim e r dato desplazado por la salida es el LSB por defecto perm an ece en 2. Se usa
MSBFIRST 1 El prim e r dato desplazado por la salida es el MSB para especificar el nm ero de veces que
Tabla 2 8 .3 M o do s de transm isin sincrnica con la instruccin SHIFTOUT se d eb e tran sm itir el com ando.

Curso prctico sobre M icrocontroladores


LOS MICROCONTROLADORES
8051 de Intel
Los m ic ro co n tro iad o re s d esarro llad o s p o r In tel,
h an sid o los p io n ero s en el m an ejo y d esarro llo de
tareas q u e in v o lu cran sistem as de c o n tro l e m b e b i
dos de p eq u e a y m e d ian a en v ergad u ra.

D entro de la am p lia gam a de stos, la fam ilia M C S -


51, que se em pezar a estudiar en esta leccin, es la
generacin avanzada de 8bits que posee u n a arquitec
tura optim izada para la ejecucin de las tareas orienta
das al control digital de procesos en tiem po real.
*
Curso p r ctico sobre M icrocontroiadores < M IK ! lir '. 277
L as im craaaL iu -alaaaicS &iil LuiaL

d e sa rro llo y e n tre n a d o re s p a ra esta te c n o lo


In te l ha sid o u n a d e las em p resas p io n e ra s en g a q u e nos fa c ilita n su a p re n d iz a je .
el d e sa rro llo de m ic ro c o n tro la d o re s c o m p a
tib le s 1 0 0 % con la a r q u ite c tu ra de las P C . E n tre lo s siste m a s de d e sarro llo m s c o
n o cid o s se p u e d e n n o m b rar: e l E V 8 0 C 5 1 de
Estos m icro co n tro lad o res h an ev o lu cio n a In te l, el C E IB O D S -7 5 0 de P h ilip s S e m i-
do a travs de las fam ilia s M C S -4 8 (p rim era c o n d u c to rs y el D S 5 0 0 0 T K de D allas S e m i-
g e n e ra c i n d e 8 b its ), M C S - 5 1 (g e n e r a c i n c o n d u c to rs; ta m b i n se ofrecen o tras h e rra
av an zad a d e 8 b its), y M C S -9 6 (g en erac i n de m ie n ta s , com o el e m u la d o r av an zad o IC E -
1 6 b its y a lta v elo cid ad de p ro c esa m ien to ); y, 5 1 0 0 de D a lla s y c irc u ito s p a ra e n tre n a m ie n
tam b in , h an sido fab ricado s en versiones p ar to , ta l com o el en tren d o r p a ra 8 7 C 7 5 2 con
ticu la re s por m uch as o tras em p resas q u e los re fe re n c ia K - 1 4 4 d e C E K IT S .A ..
d istrib u y e n y u tiliz a n en su s p ro p io s d isp o si
tivos y sistem as, ta l es el caso de los m icro co n En la tabla 2 9 .1 se m uestran las caractersti
tro lad o res P H IL IP S serie 8 7 C X X , de los D a cas princip ales de los m icrocontroladores de la
llas D S 5 0 0 0 y los S iem e n s SA B 8 0 5 1 , todos fam ilia M C S -5 1.
e q u iv alen tes a los In tel 8 0 5 1 .

L a fa m ilia M C S - 5 1, c u y o e stu d io se em
p ezar en esta le c c i n , es la q u e m s p o p u la En la figura 2 9 .1 se m uestra la arq u itectu ra in
rid a d tien e p o r su s ex ce le n te s c a ra c te rstic a s tern a bsica de los m icrocontroladores 8 0 5 1 , en
de c o m p a tib ilid a d , v e lo c id a d , bajo co sto , d is e lla se destacan las principales partes que los con
p o n ib ilid a d y fa c ilid a d de p ro g ram ac i n ; ad e form an. D entro de las caractersticas generales
m s, h a y m u ch o s fa b ric a n te s de sistem as de se destacan las siguientes:

8051AH 8751H 80C51BH 87C51 8052AH 8752BH

4KB 4KB EPROM 8KB 8KB EPROM


C P U de 8 bits
ROM 4KB 4KB EPROM
Procesador booleano (con
RAM 128 128 128 128 256 256
operacin lgica sobre bits)
XR 0M 64KB 64KB 64KB 64KB 64 KB 64KB 4 p u erto s de 8 b its cada
64KB 64KB 64KB 64KB 64KB 64KB uno
XRAM
12%bytes de R A M interna
FRECUENCIA (MHz) 12 12 16 12 12 12
para datos
CICLO 1 1 75 75 1 1 AYJrytes de m em oria R O M
--------
TIMERS 2 2 2 2 3 3 d e E P R O M p a r a el
UART UART
p ro g ra m a
SERIAL UART UART UART UART
6 4K bytes de espacio direc-
1/0 32 32 32 32 32 32
c io n a b le e x te r n a m e n te
INTERRUPCIONES 5 5 5 5 6 6 p ara datos o program a
125 250 20 25 175 175 2 tem p o rizad o res-co n ta-
IccM ax a 12MHz
dores (tim er 0 y tim er 1)
IDLE lee - 1.7 1,3
(TYP: m A a 12M Hz)
Com unicacin no sincrni
ca fu ll-d u p lex
IPD Ice 5 3
(TYP: |A)
5 fuentes de interrupcin
O scilador interno
Tabla 2 9 .1 C aractersticas resum idas d e lo s m icrocontroladores de la fam ilia M C S -5 1

d ^M C M T . Curso prctico sobre M icrocontroladores


Direcciones/Datos
l---------- 1
PO P2 P1 P3

4 K b y te s
de ROM
CONTROLADOR
n n m o
DEL BUS P
j

CPU

S f
CONTROL DE "1,


INTERRUPCIONES
k
M ------------

k
u 1
del

RXD TXD

Interrupciones
externas

F ig u ra 2 9 . 1 A rq uite ctu ra interna de los m icrocontroiadores 8051

Descripcin de pines del


m icrocontrolador 8051
a vcc
En la figura 2 9 .2 se m uestra la distribucin de los
PO.O (A/DO i
pines del m icrocontrolador 8051 en su formato de
P0.1 (A /D 1 )
em paque tipo DIR A continuacin se har una des
cripcin breve de todos sus pines y sus funciones. | p 0 .2 (A /D 2)

P 0 .3 (A /0 3 )

es la en trada de alim en taci n regulada posi P 0 .4 (A /D 4 )


tiva de +5V P 0 .5 (/V D 5 )
es la tierra del sistem a, 0V.
33 1 P 0.6 (A /D 6 I
son cuatro puertos de 8 bits
32 | P 0.7 </VD7)
bidireccionales. Todos tienen una capacidad de
carga (fa n -o u t ) de 4 cargas T T L -L S , exceptuan 7jf|
do el PO que soporta hasta 8 cargas.
ALE (a d d ress la tch en a b le ) se em ite
con una frecuencia igu al a 1/6 de la d el reloj y se
usa para capturar el byte bajo del bus de direccio
nes d uran te el acceso a m em oria externa. PRO G
es la en trada para los pulsos de program acin de
la m em oria E PR O M interna.
PSEN (p ro g ra m sto re en a b le) es la seal
de control que se u tiliza para h ab ilitar y leer la
m em oria de program a externa.
EA (ex tem a la ccess) es el pin que controla
el m odo de trabajo del dispositivo; cuando es igual
a 1, slo se ejecuta el program a desde la R O M in
F ig u ra 2 9 .2 A signacin de p in e s en lo s m icrocontroiadores 8051
terna (opera como m icrocontrolador); y cuando es
- *
C urso p r ctico sobre M icrocontroiadores E B H Y ,1 # 279
I V P H H f l lJ J iM V P P P I M a n m p N f l
LllaUvXLlUU&iCIAsS l C Ll^cl

Entrada del es la seal que se usa p ara h ab ilitar la lectu


O scilador - XTAL2
externo ra de dispositivos externos.
XTAL1
son la entrada y la salida respec
tivam ente, del am plificador inversor interno del
VSS oscilador, ste puede configurarse para generar el
MCU
reloj internam ente o para usarse como un circuito
C1 y C2 = 30pF lOpF para cristales MCU
C1 y C2 = 40pF10pF para resonadores cermicos de acoplam iento para una seal de reloj generada
externam ente. En la figu ra 2 9.3 se m uestran dos
F ig u ra 2 9 .3 C ircuitos tpicos para e i oscilador interno y externo
circuitos tpicos para configurar el oscilador.
0, se ejecuta el program a desde la m em oria externa es la entrada de inicializacin del siste
(opera como microprocesador). Por VPP se recibe m a. Su estado activo es alto (al ponerla en 1 lgico
la tensin de programacin necesaria para quemar" d uran te cierto tiem po se genera el ciclo de reset).
el program a en la EPRO M (tpicam ente est entre
12,75V y 21V). O rganizacin de la m em oria en el 8051
O es la en trad a del puerto de co m u n ica En la fig u ra 2 9 .4 se m uestra la d istrib u ci n de
cin serial. las reas de m em o ria de datos y program a de
es la salida del puerto de com unicacin serial. los m icrocontrolad ores de la fam ilia M C S -5 1 ;
INTO: es la entrada de la seal de in terrupci n a q u pu ed e verse que estos m icrocon troladores
externa 0. tien en espacios de d ireccio n es separados para
I N T l: es la entrada de la seal de interrupcin las m em orias d e p ro gram a y de d atos. La m e
externa 1. m o ria de p rogram a slo puede ser led a, y p u e
es la en trad a externa d el tem porizador-con- de ser d ireccio n ad a ex tern am en te hasta 6 4 K -
tador 0 { tim er 0). y tes, o in tern am en te hasta 4 K bytes-, m ientras que
es la en trada externa del tem porizador-con- la m em o ria de datos p u ed e ser led a o escrita, y
tador 1 (tim e r 1). tam b in p u ed e ser in tern a o externa con capa
es la seal q ue se usa para h ab ilitar la escri c id a d de d ire c c io n a m ie n to h asta l'bG bytes y
tura en dispositivos externos. 6 4 K b ytes, resp ectivam ente.

MEM O RIA DE PROGRAMA MEMORIA DE DATOS


(S lo d e le c tu ra ) (L e c tu ra /E s c ritu ra )

SFFFF SFFFF

INTERNA

8051

PSEN RD WR

Figura 2 9 .4 Mapa de m em oria deI m icrocontrolador 8051

Curso p r ctico sobre M icrocontroladores


Teora

nable de 64K bytes en 4K.bytes


MEMORIA SEGREGADA MEMORIA COMBINADA
de m em oria in terna y 60 K -
y te s de m em oria externa, y,
OE ROM se debe tener presente, que
VSS EA PSEN vss EA PSEN OE RAM/ROM
OE RAM en la parte b aja de la m em o
RD
WR RAM WR WR RAM ria in terna se encuentran las
posiciones asignadas para los
vectores de interrupcin; tal
com o el vector del reset que
o c u p a la p o sici n $ 0 0 0 0 .
C uand o es externa, el usua
rio define todo el m ap a de la
PROGRAMA DATOS PROGRAMA Y DATOS
m em o ria de program a d en
F ig u ra 2 9.5 H ardw are p ara la configuracin de reas de m em oria com binada y segregada tro de los 64K bytes accesibles
extern am en te; en la fig u ra
La m em oria de program a y la de datos p u e 2 9 .6 se m uestran las dos configuraciones posi
den coexistir en el m ism o espacio de direcciones bles de la m em oria de program a.
cuando es co m b in ad a, o en espacios diferentes
cuando es segregad a; la m em oria co m b in ad a se M em oria de datos
puede configurar por m edio de una com puerta La m em o ria d e d ato s se puede usar com o u n a
l gica A N D co n ectad a con las salid as R D y m em o ria in tern a o ex tern a con c ap acid ad de
PSE N , las cuales son generadas por la C P U d u d ire c c io n a m ie n to d e 2 5 G bytes G 4K bytes, res
rante el acceso a la m em oria externa. Por m edio p e c tiv a m e n te ; y, p a ra acced er a los d ato s de la
de la salida de d icha com puerta se pueden habi m e m o ria e x te r n a se u t iliz a la in s tr u c c i n
litar las salidas de datos del ch ip de m em oria ex M O V X . La m em o ria de d ato s, c u a n d o es in
terna, tal com o se aprecia en la fig u ra 2 9 .5 . te rn a , se co m p o n e de dos reas q u e son: los
\ 2 S bytes bajos o cu p ad o s p o r los re g istro s de
M em oria de program a p ro p sito g e n e ra l y los 1 I S b y te s alto s en d o n
La m em oria de program a p u ede ser d iv id id a, y de se e n c u e n tra el esp acio reservado para los
de acuerdo con e l program ador, ser usada com o re g istro s de fu n c i n e sp e c ia l ( s p e c i a lf u n c t i o n
una m em oria m ixta o externa; la seleccin se lle reg is ter , S F R ); en la fig u ra 2 9 .7 se m u estra el
va a cabo por m edio de la seal de control EA, m ap a de la m em o ria de d ato s.
po niendo el p in a +5V a 0V respectivam ente.
C u an d o es m ixta, se divide el espacio direccio- 1. Registros de propsito general
En la figu ra 2 9 .7 se m uestra que el d ireccio
$FFFFi n am ien to de la m em o ria in tern a puede ser
SFFFFi
d irecto in directo. El bloque de los 1 2 8 bytes
60K BYTES m s bajos puede accederse en los dos m odos
MEM.EXTERNA de d ireccio n am ien to , y posee algu n as carac
64K BYTES
tersticas y asignaciones especiales, tales com o
S1000 M EM . EXTERNA son: los bancos de registros, el rea direccio -
SOFFF i n ab le b it a b it y el rea de an otacio nes de
4K BYTES 8051 acceso rpid o (scr a tch p a d ). En la fig u ra 2 9 .8
M EM. INTERNA se m uestra la segm entaci n de la m em oria
sooooi $ 00001 de datos in tern a, y, a c o n tin u ac i n , se estu
Figura 2 9 .6 C onfiguracin de la m em oria de program a
d iarn sus caractersticas.

Curso p rctico sobre M icrocontroladores cc M M iim :


L a s lULei-ucuLralciaiiis Ltn a Lii_4

1.2. rea direccionable b i t a b it


SFFFFi
SFF, E sta rea o c u p a 1 2 8 b its en to tal
(1 Gbytes) ubicados entre las posicio
Sfr nes $20 y $2F, y rodos ellos direccio
s lo DIRECTO nables directam ente b it a bit. stos
pueden adem s agruparse en bytes y
S80 64K BYTES
S7F direccionarse com o tal, y, para referir
M EM . EXTERNA
se a ellos directam ente com o bits o
DIRECTO e
com o bytes, se deben usar las direccio
INDIRECTO nes asignadas para cada uno; as, por
ejem plo, el bitO del b yte $20 tiene la
5001 direccin 20.0 , m ientras que la direc
$0000 cin del b it7 del b y te $2F es la 2F.7.
F ig u ra 2 9 . 7 M apa de la m e m oria de datos
1.3. rea de anotaciones (scr a tch p a d )
$7F Esta rea de acceso directo e in direc
rea de
to es la m em oria R A M de trabajo del progra
anotaciones m ador, es un bloque de m em oria de acceso
(scratch pad)
rpido pero de baja cap acid ad , y en este m i
$30
crocontrolador se encuentra entre las lo cali
$28 $2F Segm ento dades de m em oria $ 3 0 y $7F.
$2 0 $27 direccionable b it a b it
$18 BANCO 3 $1F
$10 BANCO 2 $17
Bancos de
$0 8 BANCO 1 $0F registros En el bloque de los 128 bytes ms altos de la me
$00 BANCO 0 $07 m oria de datos se encuentran los registros de
funcin especial (SFR) de esta fam ilia de m i
F ig u ra 2 9 .8 Segm entacin de la m em oria de datos interna
crocontroladores, y en la tabla 29.2 se m ues
tran los SFR del M C U 8051 , en ella se nom
1.1. Bancos de registros
bran y se definen sus smbolos y direcciones. A
Los bancos de registros son cuatro (banco 0 a
continuacin se explican brevemente las fian-'
banco 3) y cada uno se com pone de 8 registros
dones de los SFR , y los ms importantes de ellos
de Sbits (RO a R 7); stos se encuentran entre
se vern en detalle en su debido momento.
las posiciones $00 y $1F y ocupan 3 2 bytes. El
banco 0 es el seleccionado por defecto luego
Registro acumulador (A ccu m u la to r r eg ister)
de un reset, m ientras que la seleccin de los
(A C C A ): es el ms utilizado d uran te el m o
otros bancos debe hacerse por softw a re desde el
vim iento de datos, es de 8 bits y es d e propsi
registro de estado P S W (p rogra m status woret),
to general.
q ue hace parte de los SFR.
Registro B (B r e g is te r ): este registro est dise
Nota: ado especialm ente p ara las operaciones m a
Por defecto, el reset hace q ue el registro p u n te tem ticas de m ultip licaci n y divisin, y pue
ro de la p ila (SP) seale a la posicin que co de ser de propsito general.
rresponde con el registro R 0 del banco 2 ($08).
Si se quieren usar m s bancos de registros, el Palabra de estado del program a (P ro g ra m
SP se p u ede in icializar despus del reset en otra S ta tu s W ord P SW ): es el registro q u e co n
posicin de m em oria. tien e la in fo rm aci n d el estado de la CPU,

Curso p r ctico sobre M icrocontroladores


Teora

SMBOLO NOMBRE DIR


B u ffe r de datos seriales
(S eria ld a to > r^rSB U F):
*ACC A ccum ulator Acum ulador SEO
*B B register Registro B $F0 es el registro que op era
*PSW Program status w ord Palabra de estado del program a SDO com o im p u lsad o r de d a
SP Stack pointer Puntero de la m em oria de pila $81 tos d e recepcin o tran s
DPTR Data pointer (2 bytes) Puntero de datos
m is i n d u r a n te la co
DPL Low byte data pointer Byte bajo del puntero de datos S82
m u n ic a c i n serial.
DPH High byte data pointer Byte alto del puntero de datos S83
*P0 P o rto Puerto 0 S80
| *P1 Port 1 Puerto 1 S90 Registros tem porizadores
*P2 Port 2 Puerto 2 SAO ( T im er r e g is te r TH/LO,
*P3 Port 3 Puerto 3 SBO T H /L 1): son registros de
*IP Interrupt priority control Control de prioridad de las interrupciones $B8 1 Gbits q ue operan como
*IE Interrupt enable control Control de autorizacin de las interrupciones SA8
TM 0D Tlm er/C ounter m ode control Control de m odo del tem porizador/contador
contadores o temporizado-
$89
*TC0N Tim er/C ounter control Control del tem porizador/contador $88 res y se com ponen a su vez
*+T2C 0N Tim er/C ounter 2 control Control del tem p orizad or/co ntad or 2 $C8 de una parte baja (L) y otra
| THO Tim er/C ounter 0 high byte Byte alto del tem porizador/contador 0 $8C alta (H ), am bas de 8 bits.
TLO Tim er/C ounter 0 low byte Byte bajo del tem porizador/contador 0 $8A
TH1 Tim er/C ounter 1 high byte Byte alto del tem porizador/contador 1 $8D
Registro de control de po
TL1 Tim er/C ounter 1 low byte Byte bajo del tem porizador/contador 1 S8B
+TH2 Tim er/C ounter 2 high byte Byte alto del tem porizador/contador 2 $CD
tencia (P ow er co n tr o l regis
+ TL2 Tim er/C ounter 2 low byte Byte bajo del tem porizador/contador 2 $CC t e r P C O N ): es el registro
+RCAP2H T/C 2 capture reg. high byte Byte alto del registro de captura T/C 2 SCB que controla el modo de
+RCAP2L T/C 2 capture reg. low byte Byte bajo del registro de captura T/C 2 $CA consum o de potencia. En
*SC0N Serial control Control de com unicaciones seriales $98
la versin del microcontro-
SBUF Seria data buffer B uffe r de datos de com unicaciones seriales $99
PCON Power control Control del modo de consum o de potencia $87
ador 8051 con tecnologa
+ = R e g is tro s q u e se u tiliz a n s lo e n e l MCU 8 0 5 2
C H M O S se encuentran
Tabla 2 9 .2 Registros de funcin especial del MCU 8051
* = D ire c c io n a b le b it a b it disponibles dos modos de
trabajo de bajo consumo:
y se actu aliza con cad a ciclo de in stru cci n . el m odo POW ER D O W N y el m odo IDLE.
En el cu ad ro 2 9 .1 se m uestra su form ato. A dicionalm ente, se usa para controlar la veloci
dad de com unicacin por el canal serial.
Registro ap un tador de la p ila (S tock p oin ter)-.
es el registro apuntador del rea de la pila (que Registro de control del temporizador/contador
es de 256 posiciones), es de 8 bits y seala a la (T im erlC o u n ter c o n tr o l reg ister T C O N ): es el
posicin $ 0 7 cada vez que un ciclo de reset es registro que controla el funcionam iento de las
activado. Luego de ejecutar la prim era instruc interrupciones y los flancos de activacin asig
cin de apilam iento o llam ado (P U S H o CALL), nados para los trim er 0 y 1.
queda sealando a la prim era posicin disponi
ble de la pila ($08). En la figura 2 9.9 se m ues
tra el rea de la pila.

A p u n tad o r o p u n tero de datos (D a to p o i n


ter)'. es el registro que contien e en todo m o
m ento la direccin del puntero de datos, pue
de ser de 16 de 8 bits (D P T R , D PH D PL).
Registro SP
Puertos 0 , 1, 2, 3 (P orts P 0, P l, P2, P3): son los F ig u ra 2 9 .9 La p ila del
cuatro latchs de los puertos y son de 8 bits cada uno. M C U 8051

Curso prctico sobre M icrocontroladores W,,


LS L llL C L U C U lltl' llliU U r S ' i B i Intel

PALABRA DE ESTADO DEL PROGRAMA PSW


El re s e t en los MCU 8051
Bit 7 a re srrs bm bu 3 0/12 i a ro
C AC F0 RS1 RS q OV - P | En el M C U 8 0 5 1 con e n c ap su lad o DIP, el
p in 9 es el r eset; este p in se a c tiv a c u a n d o re
B ITS N OM BRES Y COMENTARIOS
c ib e u n n iv e l l g ic o a lto ( +5V ) d u r a n te al
BtO [ p j B andera de p aridad d el acu m u la d o r (ACC) m en os dos ciclo s de m q u in a (2 4 p erio d o s del
S i P = 1 e ntonces e l n m e ro d e unos del ACC e s im p a r
re lo j d e l o s c ila d o r). D u ra n te ta l e sta d o , la
S i P = 0 e ntonces e l n m e ro d e unos d el ACC es p a r
C P U escrib e los p arm e tro s in ic ia le s en to
Bit1 B an d e ra d isp o n ib le y d e fin ib le p o r e l usuario
do s los re g istro s q u e d e p e n d an de ste, e in i-
Bit2 ov Bandera d e so b re p a sa m ie n to (o verflow ) c ia liz a el h a r d w a r e de tod o s los m d u lo s p e
B it3 - Bit4 RSq - RS-| | S electores d e los bancos de registros
rif ric o s in te rn o s; en la ta b la 2 9 .3 se m u es
"So BANCOS
tran los reg istro s q u e so n afectad o s p o r el c i
RSi
0 0 Banco 0 ($00-507) clo de reset.
u i Banco 1 (S08-SOF)
1 0 Banco 2 (S10-517)
1 1 Banco 3 (S18-51F)
'C C o
Bit5 F0 Bandera 0 de prop sito general, d e fin ib le p o r e l usuario

B it6 AC | B andera d e acarreo auxiliar, para operaciones en BCD

B it7 [ C | B andera d e acarreo 8,2kl


C uadro 29.1 Form ato d e l registro de estado d e l MCU 8051

R egistro de control de m odo del tem p o riza


dor/ contador ( T im erJC ou n ter m o d e c o n t r o l re-
g i s t e r T M O D ): es el registro con el cual se se F ig u ra 2 0 .1 0 C ircuito tpico de re s e t autom tico para e l 8051
lecciona el m odo de operacin del tim er 0 1
VALOR DESPUS
(com o tem porizador com o contador). SFR D EL RESET
El circuito que se PC $0000
Registro habilitador de direcciones (I n ter ru p t m uestra en la figura ACC soo
B soo
e n a b le reg is ter IE): es el registro dedicado al con- 2 9 .1 0 es til para ge- PSW soo
trol de las interrupciones; le perm ite al progra- nerar un reset auto- SP S07
m ador habilitar nicam ente las interrupciones m tico a la conexin DPTR $0000
P0-P3 SFF
que necesite. (p oiver o n reset), ste IP (8051) XXXOOOOOB
se produce al poner IP (8052) XXOOOOOOB
Registro de prioridad de interrupciones (In te - en el p in de RESET IE (8051) OXXOOOOOB
IE (8052) OXOOOOOOB
r r u p tp r io r ity register IP): es el registro que con- el voltaje de alim en- TMOD SOO
trola la prioridad de cada fuente de interrupcin tacin (Vcc) durante TC0N $00
habilitada, al poner en 1 en 0 sus bits. C ada el tiem p o d e fin id o TH0 $00
TL0 $00
fuente de interrupcin podr ser programada en por la red de carga TH1 $00
nivel de prioridad 1 2, y toda interrupcin con R C , que est forma- TL1 soo
prioridad superior puede bloquear la ejecucin de d a tp ic am en te con TH2 (8052) $00
T L 2 (8 0 5 2 ) $00
otra con prioridad inferior, y no lo contrario. u n a r e s is te n c ia de RCAP2H (8052) $00
1OkQ y un conden- R C AP 2L (8 0 5 2 ) $00 -

R egistro de control del puerto serial (S er ia lp o r t sador de 10|J.E Estos SCON soo
SBUF In d e te rm in a d o
c o n t r o l r eg is ter (SC O N ): por medio de este re- valores pueden ajus- PC0N (HMOS) 0XXXXXXXB
gistro se definen los parmetros de la com unica tarse de acuerdo con P C 0N (CHM0S) OXXXOOOOB
cin serial, tales como la velocidad, el formato el reloj aplicado al m i Tabla 2 9 .3 Estado in ic ia l de los
de la palabra y la direccin de la transmisin. crocontrolador. registros despus de l reset

Curso p r ctico sobre M icrocontroladores


PUERTOS Y PERIFRICOS
INTERNOS DEL
MICROCONTROLADOR 8051
Los m ic ro c o n tro la d o re s 8 0 5 1 p o seen p u erto s
m u ltifu n c io n a le s , stos p u e d en o p e rar co m o
d r iv e r s p a ra m a n e ja r d ire c ta o in d ire c ta m e n
te carg as, u o p erar co m o b u ses b id ire c c io n a -
les de d ato s y d ire c c io n e s d u ra n te el acceso a
d isp o sitiv o s extern o s.

Los m d u lo s tem p o rizad o res y los co n tad o res


son los p erifrico s in tern o s d e m a y o r im p o r
tan c ia , y a q u e se c o n stitu y e n en la h e rra m ie n
ta m s til con que cu en ta el p ro gram ad o r p ara
los p ro yectos con el 8 0 5 1 .
*
Curso p rctico sobre M icrocontroladores c m fc tr ,: < zss
l'iiiiiius v iieiiiucus iiiuHue| el LuajcuLi-flaEj^&jj|

PARA SABER MS:


El ciclo d e m q u in a d el 8051
E n e s ta fa m ilia de m ic ro c o n tro la d o re s , u n ciclo de m q u in a q u e e s la u n id a d b s ic a d e tie m p o en la q u e s e c u e n ta
la d u ra c i n d e la e je c u c i n d e u n a in s tru c c i n u o p e ra c i n , c o n s ta d e u n a s e c u e n c ia de s e is estad o s q u e s e n o m b ra n
e n tre S1 y S 6 ; y, a su vez, c a d a e s ta d o se c o m p o n e d e d o s p e rio d o s de la s e a l de re lo j d e l o s c ila d o r lla m a d o s fa s e s
(fa se 1, P1 y fa s e 2 , P2); ta l c o m o s e p u e d e v e r e n la fig u ra 3 0 .1 . D e lo a n te rio r se d e d u c e q u e c a d a c ic lo d e m q u in a
tie n e 12 fa s e s y q u e s u d u ra c i n s e p u e d e d e te rm in a r p o r m e d io d e e s ta e x p re s i n : CM = 1 2 /F re c u e n c ia ; e s to q u ie re
d e c ir q ue , p o r e je m p lo , p a ra un re lo j d e 1 2 M H z se o b te n d r u n c ic lo d e m q u in a d e 1 m s d e d u ra c i n .

S1 S2 S3 S4 S5 S6
P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2

n n n UN CICLO DE MQUINA

F ig u ra 30.1 Representacin en e l tiem po de un ciclo d e m quina d e l 8051

Los puertos del MCU 8051 o p era com o un p u erto de


En la figura 3 0 .2 se muestra la arquitectura interna 8 bits, pero tam b in m u ltip le x a en el tie m
de los puertos m ultifuncionales de esta fam ilia de po la parte b aja d el bu s d e d ireccion es y todo
microcontroladores. El 8051 posee 4 puertos bidi el bus de d ato s d u ra n te el acceso a la m e
reccionales (de entrada o salida) e independientes, m o ria e x tern a d e p ro g ram a o d ato s. Este
de 8 bits cada uno y que se denom inan PO, P 1, P2 y p u e rto tam b in se usa com o bu s de datos
P3. C om o salidas, el fa n - o u t del PO es de ocho car d u ran te la p ro gram aci n y v erific ac i n de
gas T T L -L S, m ientras que los otros puertos P1 a la m em o ria in tern a E P R O M en alg u n as ver
P3 solo pueden m anejar cuatro cargas. sio n es d el m icro co n tro lad o r.

P ara p ro g ra m a r los p u e rto s co m o sa lid a s, opera com o un puerto de 8 bits,


es n ecesario e sc rib ir un 0 l g ic o en el la tc h pero tam bin recibe la parte baja del bus de
co rresp o n d ien te, m ie n tra s q u e si se escrib e un direcciones d u ran te la program acin y verifi
1 l gico se p ro g ram an com o e n tra d a s. Por su cacin de la E PR O M in tern a, en la versin
a r q u ite c tu ra t o t e m - p o le , so la m e n te el PO p u e 8751 de esta fam ilia de m icrocontroladores.
d e a d o p ta r el estad o d e a lta im p e d a n c ia o te r
cer estad o ( tr is ta te ) c u a n d o se p ro g ram a com o opera com o un puerto de 8 bits,
e n tra d a , los otros a s u m ir n u n estad o alto d e pero tam b in se usa com o la parte alta del bus
b id o a la re siste n c ia p u ll- u p in te g ra d a en su de direcciones d u ran te el acceso a la m em oria
e s tru c tu ra de d re n a d o r a b ie rto ( o p en -d ra in )-, externa de program a o datos. T am bin recibe
en c u a lq u ie r caso, p a ra le e r u n d ato el la tc h
c o rre sp o n d ie n te al p u e rto d eb e carg arse con PINES FUNCIN ALTERNA
1 l gico p a ra q u e el tra n sisto r M O S in fe rio r P3.0 RXD (Entrada del puerto serial)
p erm an ezca en estad o d e c irc u ito a b ie rto , y P3.1 TXD (Salida del puerto serial)
la resisten cia d e p u ll- u p sea la im p e d an c ia v ista P3.2 TO (Interrupcin externa 0)
P3.3 Ti (Interrupcin externa 1)
p o r la e n tra d a .
P3.4 TO (Entrada externa del T im e r0)
P3.5 T1 (Entrada externa del T im e rl)
Las funciones com partidas y las caractersti P3.6 WR (Autorizacin de escritura en memoria de datos extema)
cas particulares de cada uno de los puertos se es P3.7 RD (Autorizacin de lectura en memoria de datos externa)
tu d ian a continuacin : Tabla 30.1 Funciones alternas d e l pue rto 3
M *
Curso prctico sobre M icrocontroladores
DIR/DATOS CONTROL Vc c DIRECCIONES

Lectura en el
LATCH Lectura en
el LATCH
RESISTENCIA
PULL-UP
INTERNA
BUS _
INTERNO
D
LATCH
P O .X
O
_

Y -
r
BUS .
INTERNO
D
LA T C H
P 2 .X
Q

CL O " . MUX CL Q
Escribe en Escribe en
el LATCH el LATCH

Pin de Pin de
lectura lectura
1) Un pin del puerto O (PO.X) 3) Un pin del puerto 2 (P2.X)
Funcin alterna de
'TC

lectura

2) Un pin del puerto 1 (P1.X) 4) Un pin del puerto 3 (P3.X)

Figura 30.2 A rquitectura de los puertos d e l MCU 8051


la parte alta de la direccin d u ran te la progra el d iag ram a de tiem pos de la fig u ra 3 0 .3 , sta
m acin y verificacin de los datos de la m e se usa h ab itu alm en te para cargar en el puerto
m o ria E PR O M . Px el D ATO por m edio de c u a lq u ie r m odo de
d ireccio n am ien to .
opera como un puerto de 8 bits de
propsito general, pero adem s com parte otras Para la lectura slo basta con invertir el orden
funciones importantes; en la tabla 30.1 se resu de los operandos de la instruccin usada anterior
m en las otras funciones de cada uno de los pines m ente para la escritura, as: M O V (D ATO ),Px.
d e este puerto.
Estado 4 Estado 5 Estado 6 Estado 1 Estado 2
La operacin de P1 F
P2 P1 P2 P1 P2 P1 P2 P1 P2

escritura en un puer
to, que generalm en ru d
te se efecta por m e- M0V PX>(DATO)
dio de la instruccin DATO ANTERIOR DATO NUEVO
M O V P x,(D A T O ),
se puede apreciar en Figura 3 0 .3 D iagram a de tiem pos d e la instruccin MOV PX, (DATO)

Curso prctico sobre M icrocontroiadores G M R M T s 'a


l:iiL'iies v iiLHiiuIIjais u-mos p.d iniciccaLiuaLtiLiuL- 'l

d etecte por los pin es 14


(TO) y 15 (T I ) para los
ENTRADA contadores de los tim ers 0
(P in l/O )
O y 1, respectivam ente.

En la fig u ra 3 0 .6 se
m uestra la arquitectura ge
F ig u ra 3 0 .4 Interfaces para le e r y escrib ir en los n e ra l d e lo s t i m e r s d e l
p u e rto s de l 8051 8 0 5 1 , a ll pued en verse: el
selector (C/T) de la seal
En la fig u ra 3 0 .4 se de reloj del contador, con el cual se elige la fuen
____ A _____ te del reloj a p artir del oscilador interno o desde
Leer puerto PO m uestran dos circu i
tos re c o m e n d a d o s u n a fuente externa; la l gica de h ab ilitaci n por
i
Complementa que pueden ser u ti so ftw a re y por h a rd w a re, que se usa para h abilitar
i ____ lizados para leer d a la cuen ta de pulsos a travs del in terru p to r de
Escribir en P1 tos apropiadam ente, C O N T R O L , cu an d o los estados de las entradas
sin rebote, y m ane T R x , GATE e IN T x son 1, 0 1, respectiva
E TIQ U ETA CDIGO DE PROGRAMA
ja r carg as de h asta m ente; los registros del contador, que llevan la
Inicio MOV A ,P0
600m A . cuenta en todo m om ento y que pueden ser de
CPL A
MOV P 1 ,A 8 ,1 3 \ 6 b its segn el m odo de trabajo; y, el fl ip -
AJMP Inicio
En la figura 30.5 fl o p de la bandera de estado T F x , que se utiliza
F ig u ra 3 0.5 Diagram a de flujo del para in d icar el sobrepasam iento y generar la in
se m uestra el diagra
program a ejemplo, para e l uso de los
puertos m a de flujo del progra terrup cin del tim er.
m a y el segmento de
cdigo del mismo. En M odos de operacin de los tim ers 0 y 1
el program a se ilustra el uso adecuado de los puer La funcin como tem porizador {tim er), o como
tos como entrada y salida de manera sencilla; en l se contador (cou n ter) ,_se selecciona desde el b it de
lee un dato por los 8 bits del puerto 0, se comple control llam ado C /T ; y los cuatro m odos d e ope
m enta su estado y se enva por los pines del puerto 1. racin de estos dos tem porizadores-contadores se
definen con los bits M 0 y M I . Todos estos tres
Los tem po rizado res-con tado res bits, pertenecen al registro de control de m odo
ftim ers 0 y ) del M C U 8051 T M O D {T im er/'counterM odeC ontrolR egister) que
Esta fam ilia de m icrocontroladores posee dos hace parte de los SFR. En las figuras 3 0 .7 y 3 0 .8
tem porizadores-contadores (tim er 0 y tim e r 1). se m uestran los registros de control y de modo
C u an d o opera com o tem porizador, el contador T M O D y T C O N {tim erJcounter co n tro l register),
se in crem enta con cad a ciclo de m q uin a hasta asociados con el com portam iento de los dos ti-
sobrepasar el valor prefi
jad o ; por este m otivo, se [sc] Q- CONTROL
puede decir que la cuenta
_______________________ TLx TRx TFx S eal de
se hace con 1/12 de la fre In te r r u p c i n
C /T
cuencia del reloj; m ientras PinTx-

q ue cuando opera com o


contador, el registro es in
GATE
crem en tad o en uno con
c ad a flanco descendente F ig u ra 3 0 .6 A rq uite ctu ra general d e lo s tim ers del
P in IN T x MCU 8051
de la seal externa que se

Curso p r ctico sobre M icrocontroladores


mers.
TM O D TCON
S il 7 B it 6 BUS B it 4 B it 3 BU 2 B it ) B IIO B it 7 B it 6 B it 5 B it 4 B it 3 B lt 2 B it 1 B it 0
GATE C /T M1 MO I gate C/T M1 MO TF1 TR1 TFO TRO | IE1 IT1 IE 0 IT0

--------------- T im e r 1 > 1llJItfl U


B IT N O M B R E Y C O M ENTARIO
B IT N O M B R E C O M EN TAR IO
B0 IT0 C o n tro l in te rru p c i n e x te rn a 0 (INTO)
BO - B1 MODO DE OPERACION

T w npon zad or Oe 13 bits S i IT0 = 0 e n to n c e s e s a c tiv a p o r n iv e l b a jo


Tem ponzadof.1C ontador de 16 Dits
T em patzaoof/C ovlad cf d e 8 bits co n auto -re c a rg a
Si IT0 = 1 e n to n c e s e s a c tiv a p o r fla n c o d e Bajada
C onta d o re s m ltip le s especficos
B1 ||E 0 | F la g d e in te rru p c i n p a ra la in te rru p c i n e x te m a 0 (INTO)
B2 C /T S e le c c io n a te m p o riz a d o r o co n ta d o r S e p o n e a u n o c u a n d o se d e te c ta in te rru p c i n e x te m a
S i C /T = 0 e n to n c e s te m p o r iz a c o n los p u ls o s d e l re lo j in te rn o Se repone autom ticam ente a i atender la intem ip cin por flanco
SI C /T = 1 e n to n c e s c u e n ta lo s p u ls o s q u e lle g a n p o rT O (pin14
B2 IT1 C o n tro l in te rru p c i n e x te rn a 1 (1N T 1)
B3 GATE H a b ilita la e n tra d a e x te rio r INTO (p in 1 2 )
B3 IE1 F a lg d e in te rru p c i n p a ra la in te rru p c i n e x te m a 1(INT1)
Si GATE = 1 en to nces habilita TO s i TRO = 1 (control p o r hardware
S i GATE = 0 en to nces de sh a b ilita INTO y depende exclusivam ente 84 fR c j H a b ilita te m p o riz a d o r/c o n ta d o rO
d e TRO (control p o r software)
(TRO e s un O /del Reg.TCON y se activa o de sactiva p o r softw are) S i TRO = 1 e n to n c e s h a b ilita te m p o riz a d o r/c o n ta d o r 0
Si TRO = 0 e n to n c e s d e s h a b ilita te m p o riz a d o r/c o n ta d o r 0
B4 - B5 - C o n fig u ra c i n d e l Tim er 1
B 6 y B7 Ig u a l q u e p a ra Tim erO , s u s titu y e n d o : B5 jir o ] Flag o v e rflo w (s o b re p a s a m ie n to ) d e l Tim erO
TO p o r T I (pin 15) S e re p o n e a u to m tic a m e n te a l a te n d e r la in te rru p c i n
INTO p o r INT1 (p in 13)
TRO p o rT R I B6 TR1 H a b ilita te m p o riz a d o r/c o n ta d o r 1

F ig u ra 3 0 .7 R egistro de co n tro l d e m odo (TMOD) de lo s tim e rs O y B7 TF1 F lag d e o v e rflo w (s o b re p a s a m ie n to ) d e l T im e r 1


1 d e l 8051
Fig ura 3 0.8 Registro de control (TCON) de lo s tim ers 0 y 1 del 8051
1. Modo 0: temporizador-contador de 1 3 bits
A l poner los b its MO y M 1 en O lgico en el to es idntico al del m odo 0, exceptuando que
registro T M O D (que no es d ireccio n ab le b it el registro contador del tim er ahora es de 1Gbits
a b it), se co n fig u ra el m odo 0; en ste el re y est ubicado en dos grupos de 8 bits que re
gistro co n tad o r es de 13 bits, rep artid o s los sid en en los registros T H x y T L x . En este
8 b its de m ayo r peso en T H x y los 5 b its ms m odo, el desbordam iento se da cuando pasa
bajos en T L x . C u an d o la cuen ta en el regis de $FFFF a $ 0 0 0 0 .
tro d el c o n ta d o r (T H x ,T L x ) se desb ord a
(pasa de S F F F l a $ 0 0 0 0 ) la b an d era de in te
rru p ci n correspondien te se activa, sta p u e
d e ser T F 0 T F 1, y est u b icad a en las po si El m o d o 2 se c o n fig u ra con los b its M 0 y
ciones de los b its 5 7 d el registro de con M I en 0 y 1 resp ectivam en te; en este m odo,
trol T C O N , que hace p arte de los SF R y que los tim e r s se co m p o rtan com o con tad o res
es direccio n ab le b it a bit. de 8 b its y o p eran sobre la p a rte b aja d e! re
gistro c o n ta d o r (T L x ).
C om o puede observarse en la figura 3 0 .6 , cual
q u ier seal de interrupcin externa (IN Tx) C uand o el registro T L x se desborda (pasa de
puede utilizarse para h abilitar y congelar" el $FF a $ 0 0 ), se activa la bandera de interrup
valor de la cuenta del tim er, al ponerse en 1 y 0 cin adecuada (T F 0 T F 1) y el registro T Lx
lgico respectivam ente; y, siem pre y cuando, se recarga o actualiza autom ticam ente con
los bits T R x y GATE perm anezcan en 1. una copia del contenido de T H x , previam ente
alm acenado por el program ador.
2. Modo I: tem porizador-contador de 1 6 bits
El m odo 1 se configura con los bits M 0 y M 1 En la fig u ra 3 0 .9 se m uestra la arquitectura
en 1 y 0 respectivam ente, y su com portam ien- que ado ptan los tim ers en m odo 2.

Curso prctico sobre M icrocontroladores


Lus lllClUCfillilUlaiillllrS SUEl IL lllsl

_ 0 CONTROL

S e al de
interru pci n
Pin T 1 --------------------------
TR 1-

F ig u ra 3 0 .9 A rq uite ctu ra equivalente de ios tim ers d e l MCU<8051 en m odo 2

C o n el re g istro TLO se p u e d e c o n fig u ra r


C on el m odo 3 se extiende a tres el nm ero un te m p o riz a d o r o c o n ta d o r in tern o o ex
de tim ers disponibles en el m icrocontrolador te rn o de 8 b its con la l g ic a de c o n tro l, tal
8 0 5 1 , ste se configura con los bits M 0 y M I co m o se h a c o n sid erad o h asta a h o ra , pero ,
en 1 y ha sido diseado para las tareas que cu an d o se usa el re g istro THO (d e l c o n ta
requieran otro tem porizador-contador adicio d o r a d ic io n a l y ta m b i n de 8 b its), s lo se
nal; en este caso, se asocian los tim ers 0 y 1 p u ed e te m p o riz ar o c o n ta r to m an d o com o
para conform ar dos contadores in d ep en d ien base a 1/12 de la fre c u e n c ia d e l o scilad o r
tes de 8 bits que u tilizan com o registros a las in te rn o d e la C P U .
partes alta y baja del tim er 0 (THO y TLO).
El m odo de operacin de estos dos nuevos
En la f ig u r a 3 0 .1 0 se m u e stra la a r q u ite c tem porizadores-contadores es id n tico al de
tu ra q u e asu m en los n u evo s t im e r s in d e los anteriores, stos activan sus correspondien
p e n d ie n te s en m o d o 3 , en ella p u ed e verse tes banderas de in terru p ci n cuand o sobre
q u e e l t im e r 1 ced e su b a n d e ra (T F 1 ) y su cualesq uiera de los registros d e los contadores
b i t de c o n tro l (T R 1 ) p a ra c o n fo rm a r el (TLO THO) se produce un sobrepasam ien-
c o n ta d o r a d ic io n a l. to del valor $FE

-S-12 - 1/12

1/ 12 f,

S e al de
interru pci n
P in TO

GATE

CONTROL

THO
ose
ir u (8 b its)
TF1 S e al de
interru pci n

TR1

F ig u ra 3 0 .1 0 A rq uite ctu ra equivalente de los tim ers d e l MCU 8051 en m odo 3

's.a. Curso prctico sobre M icrocontroladores


Las in terru p c io n e s en los procesos con m ic ro co n
tro lad o res son las h erra m ie n ta s q u e estab lecen un
servicio d irecto e n tre la C P U y c u a lq u ie r sistem a o
disp o sitivo p erifrico extern o e in tern o , lo q u e nos
p erm ite d e sa rro lla r u n m o d o de trab ajo q u e es in
h eren te a l co n tro l de procesos en tiem p o real.

Los m icro co n tro lad o res 8 0 5 1 son d ise ad o s con


m d u lo s p erifrico s in tern o s esp eciales q u e p u e
d en ser p ro g ram ad o s, y q u e recib en y ev al an to
das las fu en tes d e in te rru p c i n in tern as y externas.
*
Curso p r ctico sobre M icrocontroladores 291
Introduccin NOMBRE MNEMNICO BANDERA
T radicionalm ente el servicio bidireccional no sin Externa 0 INTO IE0
crnico y sincrnico entre la C P U del m icrocon T im e r 0 (Interna) TIMERO TFO
trolador y los dispositivos y sistem as perifricos, Externa 1 INT 1 IE1
se ha desarrollado por m edio de tcnicas de con T im e r 1 (Interna) TIMER1 TF1
Puerto serial (Interna) Rl Rl
su lta conocidas c o m o p o l l i n g y el uso de proto
Puerto serial (Interna) TI TI
colos de co m un icacin construidos con algunas
ln e as de d i lo g o , ta m b i n co n o c id o s com o Tabla 3 1.1 Las interrupciones d e l MCU 8051
h a n d sh a k e. En este caso se hacen consultas c
clicas de los registros o b its d e estado que repre internas. En la ta b la 3 1 .1 se m uestran las inte
sentan a cad a uno de los perifricos, p o r m edio rrupciones, sus nom bres y los m nem nicos que
de instrucciones del program a, para d eterm in ar se usan para cada una de ellas; y, en la colum na
cuando se ha so licitado una interrupcin. de la derecha se m uestran tam bin las banderas
que estn asociadas a cada in terrupcin .
No obstante, este m todo presenta proble
m as cuando los perifricos consultados son n u Todas las in terru p cio n es pueden ser h a b ili
m erosos, porque, en cada ciclo de program a se tadas e in h ab ilitad as in d ep en d ien tem en te y glo
deben interrogar y actu alizar los registros o bits balm en te por el u su ario , usando el registro h
de consulta, y, porque a l dispositivo slo se le bil itad o r de in terru p cio n es IE { in terru p t en a b le
atiende al term in ar la ejecucin de la ru tin a de register) que hace parte de los registros de fu n
consu lta y no en el m om ento de la so licitu d de ci n especial SF R ; en el c u a d ro 3 1 .1 se m uestra
atencin. Por lo anterior, este m todo slo se este registro con todas las co n d iciones de sus
usa con eficiencia en grandes sistem as de cm b its de control.
p uto que poseen alta velocidad de procesam ien
to y alta capacidad de m em oria. IE (REGISTRO HABILITADOR DE INTERRUPCIONES)
7 B its Bit 5 Bit 4 Bit 3 ft'12 Brt 1 Bit 0

Sin em bargo, las in terru p cio n es son otra EA X X ES [ ET1 EX1 ETO EXO

tcnica q ue viene siendo u tilizad a p o r todos los BIT NOMBRE Y COMENTARIO


fabricantes de m icrocontroiadores com o una he BO EXO S i EXO - 1 h a b ilita interrupcin externa INTO
rram ien ta poderosa para establecer un servicio S i EXO = 0 la inhabilita
no sincrnico, directo e in m ed iato , entre la C P U
B1 ETO S i ETO = 1 h a b ilita interrupcin del Tim erO
y los sistem as o dispositivos perifricos externos Si ETO = 0 la inhabilita
e internos. C on esta tcnica se evita la ejecucin
B2 |EXT | Si EX1 = 1 h b ilita interrupcin externa INT1
de las rutinas de consu lta y se atien den los proce
* S i EX1 = 0 la inhabilita
sos en tiem po real, ya que el perifrico genera
B3 |ET11 Si ET1 = 1 h a b ilita interrupcin del Tim er 1
una seal de in terrupcin (IN T x) propia, cada
* S i ET1 = 0 (a inhabilita
vez que requiere atenci n. Este m todo nos per
B4 [ ES | S i ES = 1 h a b ilita in te rrup ci n cfel puerto serial
m ite ejecu tar las ru tin as de servicio de las inte
S i ES = 0 la inhabilita
rrupciones en el m om ento preciso y sin desviar
B5 Reservado
la atenci n de la C P U del cuerpo p rin cip al del
program a, lo cual se hace necesario en m uchas B6 Reservado

d e las tareas de los m icrocontroiadores. B7 |EA | Si EA = 1 habilita individualmente a todas las interrupciones
que en este registro estn a uno
Las interrupciones del MCU 8051 Si EA = 0 n o reconoce ninguna interrupcin

Los m icrocontroiadores 8051 cuentan con c in


C uadro 31.1 Registro habilitador de las interrupciones
co fuentes de in terru pcin , dos externas y tres IE d e l 8051
/ % K * *
292 4$^R M Ts* Curso p rctico sobre M icrocontroladi
C ad a una de las interrupciones afecta a un Vectorizacin de las interrupciones
determ inado b it bandera (f l a g bit) cada vez que C ad a vez que se acepta una in terrupcin , la C P U
es so licitada, y u n a vez se han atendido las ru ti guarda el contenido del registro contador del pro
nas de in terrupcin el program ador deber estar gram a P C en el rea de la p ila (stack ) antes de
pendiente del estado de stas y retornarlas a su que ste sea cargado con el vector correspondiente
estado lgico in icial para poder aceptar la prxi (direccin fija en m em oria de program a asocia
m a in terrupcin . Todas las banderas de las in te da con la in terru p ci n ); de esra form a, una vez
rrupciones pueden borrarse por m edio de ins aten d id a la in terru pcin , la C P U puede co n ti
trucciones (borrado por softw a re) directam ente n u ar con la ejecu ci n d el p ro gram a p rin cip al
en los registro s q u e las c o n tie n e n T C O N y desde el punto en el cual fue in terru m p id o .
S C O N , au n q u e algu n as se borran de m anera
au to m tica al retornar de la in terru p ci n (borra SOFFF
M e m o ria de
p ro g ra m a s (M e m . in te rn a )
do por h a rd w a re).
i
t
En el caso de las dos in terru p cio n es exter 1
i
nas INTO e INT1, q u e se p u ed en activ ar por
flanco o por n ivel a travs de los bits de control PUERTO SERIAL
RlyTI $ 00 23
de in terru p ci n ITO e IT1 del registro T C O N , TF1 I M
TIM ER 1
S001B <r>
C/3
I EXTERNA 1
las b an d eras so n b o rrad as a u to m tic a m e n te IE1 M $ 00 13
TIMER 0 o
cuando estn activas p o r flanco; pero, cuando TFO $OOOB o
EXTERNA 0
estn activas por nivel bajo, se deben in h a b ili CO IE0 M $ 00 03
RESET RESET
tar (p o n er en uno l gico el co rresp o n dien te pin $0000

de en trad a IN T x) para sa lir de la ru tin a de ser F ig u ra 3 1 .2 Vectores de Jas interrupciones d e l 8051


vicio d e aten ci n a la in terru p ci n y bo rrar la
bandera. Las in terru pcion es in ternas de los tem - En la fig u ra 3 1 .2 se m uestra la vectorizacin
po rizadores-contadores ( tim ers ) y las del puerto de todas las in terru pcion es del 8 0 5 1 , esta rea se
se rial, so lam en te p u ed en ser b o rrad as por el u b ica al com ienzo de la m em o ria de program a y
usu ario a travs d el so ftw a re. En la f i g u r a 3 1 . 1 a ll puede verse q ue se han reservado espacios de
se ap recian las fuentes de in terru p ci n del 8051 8 bytes para cad a una d e ellas; estos intervalos de
y sus selectores de entrada. 8 bytes entre cada vector de in terrupcin pueden
utilizarse para contener d irectam ente los progra
mas cortos de atencin a las in terrupciones, o,
com o es h ab itu al cuando la ru tin a d e servicio de
IN T O O ' |T 0
C in terru p ci n es extensa, para albergar la in struc
'b cin de salto JM P (d ir) necesaria para cargar el
TFO- registro P C con la direccin de m em o ria in icial
'O de la rutina.
o

INT1 IT1 IE 1 En este ltim o caso y a m anera de ejem plo,


b ^ u si suponem os que la ru tin a de atencin a la inte
TF1
rrupcin se en cuen tra ubicada a p artir de la po
sicin $ 0 7 7 7 de la m em oria de program a, y que
adem s, la in terru p ci n externa IN T l se ha ha
b ilitad o poniendo el b it EX1 en uno lgico, el
vector correspondiente, que est ubicado en la
Figura 31.1 Fuentes de interrupcin de l 8051, selectores y banderas posicin $ 0 0 1 3 , debe contener el cdigo de ope-

Curso prctico sobre M icrocontroladores <sSfe


lu H tU L c t iu a g L ilil i u l l m u l t u l l l u Lc i l i t U JLA

racin de la instruccin de salto y, en los dos bytes El proceso de in terru p ci n siem pre se consi
de m em oria siguientes $ 0 0 1 4 y $ 0 0 1 5 , deben dera urgente y, u n a vez in ic iad a su vectorizacin,
guardarse los b ytes de la direccin de salto ms y slo podr ser in terru m p id a o b lo quead a cu an
m enos significativos respectivam ente. En la fi do una in struccin o una in terrupcin de m ayor
g u ra 3 1 .3 se representa este ejem plo. o igu al prioridad se est ejecutando, o cuan d o se
est accedien do a los registros de control IP IE,
SFFFF , cuando se est ejecutando una instruccin de
retorno de in terru p ci n RETI.

Nota:
Toda rutina de atencin a una interrupcin debe
Rutina de servicio a
la interrupcin In ic io term inar con la instruccin d e retorno d e in te
$0777-1 ' i rrupcin R E T I; con sta se inform a a la C P U
que la rutina ha concluido para que descargue
$0015 de la pila la direccin de dos bytes a partir de la
$0014 cual debe continuar la ejecucin del program a
$0013 princip al, y la cargue en el registro contador de
program a (P C ). Las rutinas de servicio de las
RESET $0000 interrupciones deben hacerse breves, para ga
rantizar que slo se experim entar u na prdida
F ig u r a 3 1 .3 Salto a una ru tina de interrupcin en m em oria de
program a
de tiem po relativam ente pequea durante la eje
cucin del program a principal al m om ento de
Para com prender el proceso de in terru p ci n atender la interrupcin.
en los m icro co n tro lad o res 8 0 5 1 , se ha in clu id o
el d iag ram a de tiem p o s sim p lificad o bajo con
diciones ideales q u e se m uestra en la fig u ra 3 1 .4 ,
ste est representado en trm ino s de los esta En el cu ad ro 3 1 .2 se m u estra el registro para el
dos (S) y de las fases (P) de cad a ciclo de m control de p rio rid ad de las in terru p cio n es IP
q u in a (C ). En el d iag ram a p u ed e verse que las (in te r r u p tp r io r ity register) que tam bin hace par
ban deras de in terru p ci n se co n su ltan en la fase te de los S F R ; con l se pued en p ro gram ar dos
2 del estado 5 (S 5 P 2 ) de c ad a ciclo de m q u in a niveles de p rio rid ad (a lta y baja) de m anera in
y q u e los resu ltado s son evaluados d u ran te el d ep en d ien te para cada una de las fuentes de in
sig u ie n te ciclo ; y tam b in , q u e luego de la eva terru p ci n . A l p o ner en uno l gico el corres
lu aci n y si h a y alg u n a so lic itu d de in terru p p o n d ien te b it de la in terru p ci n se h a b ilita la
ci n activa se gen era u n llam ad o (L C A L L ) al p rio rid ad alta, y al po n erlo en cero l gico se h a
vecto r correspondien te. b ilita la p rio rid ad baja.

C1 C2 C3 C4 C5

S5P2 S6

E v a lu a c i n d e V e c to riz a c i n R u tin a d e
in te rr u p c io n e s d e la in te rr u p c i n s e r v ic io d e la
in te rr u p c i n
In te rr u p c i n C o n s u lta d e
a c tiv a d a in te rr u p c i n

Figura 3 1 .4 D iagram a de tiem pos de un ciclo id e a l d e l proceso de interrupcin

294 5^ t J M I& IIW s '1 Curso p rctico sobre Microcontroladores


IP (R EG ISTR O OE P R IO R ID A D DE L A S IN TER R U PC IO N ES)
PARA SABER MS:
B ill BUG Bit 5 B iti Bit 3 Bit 2 B iti BitO Sim ulacin por softw are de un tercer
X X X PS J PT1 PX1 PTO PXO
nivel de prioridad
BIT N O M B R E Y C O M EN TAR IO En aquellas tareas que utilizan varias fuentes de in
terrupcin con diferentes niveles de jerarqua, es con
BO PXO * S i PXO = 1 d e fin e a lta p rio rid a d a la in te rru p c i n INTO
veniente contar con ms de dos niveles de prioridad,
B1 PTO S i PTO = 1 de fine a lta p rio ridad a la interrupcin del TimerO
en estos casos, se puede crear virtualmente un ter
cer nivel y simular su comportamiento. El proceso
B2 PX1 S i PX1 = 1 d e fin e a lta p rio rid a d a la in te rru p c i n IN T l
necesario para crear el tercer nivel de prioridad se
describe a continuacin.
B3 PT1 S i PT1 = 1 de fine a lta prio rid a d a la interrupci n de l Timer 1
Primero, se deben elegir las interrupciones que van a
B4 PS Si PS = 1 define alta prioridad a la interrupcin del puerto serial
tener el nivel ms alto de prioridad, superiora 1 (prio
B5 R eservado ridad alta), y se les debe asignar la prioridad 1 a tra
B6 R eservado vs del registro IP. Las rutinas de servicio de las inte
B7 R eservado rrupciones con prioridad 1, que se supone que deben
ser interrumpidles por interrupciones con nivel de
C u a d ro 3 1 .2 R egistro para e l c o n tro l de p rio rid a d de las prioridad 2, se acompaan por los siguientes seg
interrupciones IP d e l 8051 mentos de cdigo de programa al inicio y antes de la
instruccin RETI:
En c u a lq u ie r caso en el cu al sean so lic ita
das m s de dos in terru p cio n es en el m ism o in s PUSH IE
MOV I ENMASCARA
ta n te , la C P U aten d e r las so lic itu d e s d e in te
CALL RETORNO
rru p ci n y e v alu a r su n iv el de p rio rid ad para
d e te rm in a r c u l d eb er ser a te n d id a p rim ero , RUTINA DE SERVICIO DE LA INTERRUPCIN
sta ser la q u e te n g a m ay o r p rio rid a d o la que
co rresponda, d e acu erdo con la ta b la 3 1 .2 , que POP IE
ha sido p red eterm in ad a p ara ser co n su ltad a por RET
RETORNO: RETI
el m icro co n tro lad o r 8051 en todos aq u ello s ca
sos en los cuales las in terru p c io n es presenten Este programa adicional se utiliza para que, una vez
el m ism o n iv el de p rio rid ad . sea reconocida cualquier solicitud de interrupcin
prioritaria, el registro habilitador de interrupciones IE
C u an d o u n a in te rru p c i n tie n e n ivel de se defina nuevamente con el valor de la MASCARA,
p rio rid ad bajo p u ede ser in te rru m p id a , a su de forma tal, que inhabilite todas las interrupciones
menos las de prioridad 2; y luego, por medio del lla
vez, n ic am e n te por o tra con n iv e l de p rio ri
mado a la etiqueta RETORNO finalice ejecutando la
d ad alto ; m ie n tra s que u n a in te rru p c i n con instruccin RETI (lo cual borrar la interrupcin con
nivel de p rio rid ad alto slo p o d r ser in terru m prioridad 1 en progreso). En este punto cualquier in
p id a por el RESET, que goza d el n iv el m x i terrupcin con prioridad 1 que est habilitada podr
m o de p rio rid ad . ser atendida.

Con la instruccin de descarga de la pila (POP) se


NIVELES DE PRIORIDAD PREDETERMINADOS
recupera el contenido original del byte del registro
PRIORIDAD BANDERA INTERRUPCIN habilitador IE, y finalmente, con una instruccin de
(m s a lta )... 1 TO EXTERNA 0 retorno de subrutina (RET) se termina la rutina de
2 TIMERO TIMERO servicios de la interrupcin. Este softw are adicional
3 INT1 EXTERNA 1 que se requiere no retarda considerablemente la eje
4 TIMER1 TIMER1 cucin de la rutina de servicio de la interrupcin con
I R ly T I PUERTO SERIAL prioridad 1, puede calcularse un retardo de apenas
10ms cuando el oscilador del microcontrolador tiene
Tabla 3 1 .2 Niveles de p rio rid a d predeterm inados p ara e l 8051 una frecuencia de 12MHz.
f *
Curso p rctico sobre M icrocontroladores < H H & m T s . 295
LlltLHtUlCLUlLlrS lrl LLlLLnfeuiLuiUL Util

Interrupciones internas IE M P O R IZ A D O R /C O N T A D O R 0 EN M O D O 0:

de los TIMER 0 y 1
P u esto q u e los tim e r s y su s in te rru p c io n e s y a
se e stu d ia ro n en la lecci n an te rio r, a q u slo
re c o rd a re m o s b re v e m e n te q u e las b a n d e ras
TFO y T F l de sto s, son las e n c arg ad a s de
g en e ra r la s o lic itu d de in te rru p c i n re sp e c ti
va a la C P U y q ue se p o n en en 1 l g ico , c u a n
do se d e sb o rd an los c o rresp o n d ien tes re g is
tro s d e conteo.

En la fig u ra 3 1 .5 se m uestra un resum en de


los registros contadores de los tim ers en los cua
tro m odos de operacin, y las banderas de in te
rrupcin que se afectan en cada caso.

C o m o un re su m en d e los p rin c ip a le s as
pecto s q u e se h an e stu d ia d o de las in te r ru p
c io n e s ta n to in te rn a s com o e x tern as, a c o n ti
Figura 3 1 .5 Banderas de interrupcin de ios tim ers d e l 8051
n u a c i n , en la f ig u r a 3 1 .6 , se m u e stra u n es
q u e m a sim p lific a d o de la a rq u ite c tu ra d e l sis
tem a de in te rru p c io n e s d e l m ic ro c o n tro la d o r in te r ru p c i n , y con l g ic a sim p le , la fu n c i n
8 0 5 1 ; a ll se re p resen tan el h a r d w a r e y la l de los reg istro s de c o n tro l d e las in te r ru p c io
g ic a aso c ia d a con c a d a u n a d e las fu en tes de n es (IP e IE ).

REGISTRO IE REGISTRO IP INTERRUPCIONES


DE PRIORIDAD
ALTA

SECUENCIA DE
EVALUACIN
PREDETERMINADA

INTERRUPCIONES
SELECTORES INHIBIDOR DE PRIORIDAD
INDIVIDUALES GLOBAL BAJA

Figura 3 1 .6 A rquitectura sim plificad a d e l sistem a de interrupciones

*
296 Curso p r ctico sobre M icrocontroladores
COMUNICACIONES SERIALES CON
EL MICROCONTROLADOR 8051
Los m d u lo s de co m u n icaci n in tern o s en los m i
cro co n tro lad o res m ejo ran su fle x ib ilid a d p o rq u e
fa c ilitan la c o m p a tib ilid a d y el in tercam b io de
d ato s en tre ello s y otros d isp o sitivo s o sistem as
electr n ico s.

Los m icro co n tro lad o res 80 51 poseen u n p u erto


d e c o m u n ic a c i n serial p ro g ram ab le y flexib le,
q u e nos p e rm ite c o n fig u rar la tra n sm isi n y re
cep ci n sim u lt n e a y no sin c r n ic a de d ato s, en
c u atro m odo s.
Curso p rctico sobre M icrocontroladores < S J M J K iC H IT ,...
C u L iiL iL S ii u L i c a n d m tu h u s u u iiu k u iiu * U U ifi

El UART del m icrocontrolador 8051 n o m in a el buffer de datos serial, y q ue se lo cali


Los m icrocontroladores 8051 cuentan con un za en la posicin de m em o ria $ 9 9 de los SF R . A l
puerto de com un icaciones serial no sincrnico y escribir en este registro, se carga el dato q ue se va
fu ll-d u p lex (que puede recibir y tran sm itir sim u l a tran sm itir (un byte), y leyndolo, se accede al
tneam ente datos), q ue generalm en te es conoci d ato de un b y te recibido (en la figura 3 2 .1 se ha
do com o un receptor y transm isor universal no rep resentad o el S B U F ). En c u alq u ie ra de los
sincrnico, o U A R T ( u n iv er sa l a syn ch ro n ou s re- m odos la transm isin se in ic ia cuando se usa el
c e iv e r a n d tra n sm iter). Este es program able en uno registro SB U F com o destino por m edio de c u al
de c u a tro m o do s de c o m u n ic a c i n p o sib les q u ie r in struccin, m ientras que la recepcin se
(M OD O O a 3 ) por m edio de los bits 7 y 6 , SMO in icia en M O D O O cuando se ponen los bits Rl y
y S M 1, del registro de control y de estado del REN en 0 y 1 respectivam ente; y en los M O
puerto serial SC O N (s e r ia lp o r t co n tr o l register) D O S 1,2 y 3 , cuando REN est en 1 y se recibe
que hace parte de los SFR , tal com o se m uestra el b it de inicio {start b it).
en el cuadro 3 2 .1 .
WR.

Para recibir y tran sm itir los datos el U A RT


TRANSMISIN -TXD
cuen ta con el registro especial SBU F q ue se de- BUS DE DATOS

SCON (R E G ISTR O D E ESTADO Y C O N TR O L D E L PUERTO S E R IA L


RECEPCIN i RXD

a m ftfB bus B it 4 B rtZ B it 2 B itl A ro

SMO SM 1 SM 2 REN [RB8 TI Rl RD


I
SBUF
B IT N O M B R E Y C O M EN TAR IO

B0 R l B a n fle ra d e in te rru p c i n de la re cep cin F ig u ra 3 2.1 B uffe r de datos serial def puerto de com unicaciones
S e a c tiv a p o r hardw are a l fin a liz a r la re ce p ci n d e l 8o b it
d e l 8051
e n el M odo 0 o hacia la m ita d d e i in te rv a lo de tie m p o del
b it de S to p e n los o tro s M o d o s (e x c e p to v e r SM 2)
C onfiguracin de la velocidad de
D ebe s e r d e sa c tiva d o p o r softw are
com unicacin
Bt T I B an dera d e in te rru p c i n d la tran sm isi n
Se activa p o r hardwareal fin al de la transm isin del 8o ftrfe n
La v elo cid ad d e la c o m u n ic a c i n , en b its p o r
e l M o d o 0 o al com ienzo del b it de Stop e n los o tro s M odos segu n d o o b au d io s, est en fu n c i n d el m odo
D ebe s e r de sa c tiva d o por softw are de c o m u n ic ac i n activ o , as: en M O D O O , la
B2 R B] En los M o d o s 2 y 3 e s e l 9 o v '/q u e s e re cib e v e lo c id a d se d e te rm in a s im p le m e n te p o r la
En M o d o 1 , s i S M 2 = 0 . R B 8 e s el b it d e Stop ecuacin 3 2 .1 q u e d iv id e la frecu en cia d el os
En M odo 0 n o se u tiliza
c ila d o r de la C P U en tre 12; en M 0 D 0 2 est
B3 T B 8 C orrespon de al 9 o b it de da to s en los M odo s 2 y 3
Es p ro g ra m a b le p o r el u s u a r io . H a b itu a lm e n te e s e l b it
en fu n c i n d e l v alo r d el b i t 7 , SM O D , d el re
d e p a rid a d gistro de c o n tro l de p o ten cia PC O N { pow er
B4 REN S i REN = 1 (p o r softw are) h a b ilita la re c e p c i n c o n t r o l r eg ister) que p erten ece a los S F R . C u a n
Si REN = 0 n o re cib e do el b it d u p lic a d o r de b au d io s (S M O D ) est
B5 | En M o d o 2 y 3 , s i S M 2 = 1 e n to n c e s Rl n o se a c tiv a r en cero , la v e lo c id a d es 1/64 d e la frecu en cia
si e l 9o b it d e d a to s (R B 8) e s ig u a l a ce ro
d el o scilad o r, y cu an d o est en u n o , es 1/32 de
En M o d o 1 . s i S M 2 = 1 e n to n c e s Rl n o s e a c tiv a r s i el
b it d e S to p n o se h a re c ib id o la frecu en cia d el o scilad o r; sto se expresa en
En M o d o 0 , S M 2 d e b e e s ta r e n ce ro la ecuacin 3 2 .2 . En e l cuadro 3 2 .2 se m u es
B 6 -B 7 S M O -S M 1 E sp e cific a e l M o d o se gn la ta b la tra el registro P C O N .
SMO S M l MODO OfSCKIPClON

D e s p la fa 8 M 5 O s c n a d o r 2
UART d e 8 wCs P ro g ra m a re Frecuencia del oscilador
O sctfador/64 o O sctlador/32 BAUDIOS e n M o d o 0 =
UART(Je 9 Ms P ro g ra m a re 12

C u a d ro 32.1 R egistro de c o n tro l y de estado d e l pue rto serial


SCON del 8051 Ecuacin 32.1 Velocidad de com unicacin en MODOO

Curso p rctico sobre M icrocontroladores


oSM O D
BAUDIOS en M o do 2 = (Frecuencia del oscilador) BAUDIOS en M o do s 1 y 3 = 2SM0D Fre c u ^ de L o M Ia d o r
64 32 12 X (256-TH1)

E c u a c i n 3 2 .2 Velocidad de com unicacin en M 0 D 0 2 E c u a c i n 3 2 .3 Velocidad de com unicacin en lo s M 0D 0S 1 y 3


con el TIMER1
PCON (R EG ISTR O D E C O N TR O L D E PO TE N C IA)

B it 7 B it 6 B it 5 B it 4 B it 3 B iti B it t B it 0
MOOOO de com unicacin
SM O D - - - | GF1 GFO PD ID L C o n ios bits SMO y S M 1 puestos en cero, se acti
va el MO DO O de com un icacin serial, en ste
B IT N O M B R E Y C O M EN TAR IO
la en trad a y salid a de los datos se hace a travs
B0 ID L B it M o d o Id le (ra le n tiza d o )
del p in 10 (R X D ) del m icrocontrolador, m ien
Si ID L = 1 se activa
tras q ue por el p in l 1 (T X D ) se generan los p u l
B1 PD B it P o n e r D o w n (b a ja po te n cia )
sos de desplazam iento (sh ift d o c k ) ; la transm i
Si PD = 1 se activa
sin o recepcin del dato d e 8 bits se hace em pe
B2 GFO e m b a n d e ra d e p ro p s ito g e n e ra l
zando por el b it m enos significativo (LSB) y a
B3 GF1 B it b a n d e ra de p ro p s ito g e n e ra l una velocidad fija e ig u al a 1/12 de la frecuencia
B 4 -B 5 -B 6 R eservados
del oscilador. En la fig u ra 3 2 .2 se m uestra la ar
q u itectu ra sim p lificad a que adopta el puerto se
B7 SM O D ffid u p lic a d o r d e ba udios
Si SMOD = 1 se d u plica la fre c u e n cia d e re lo j de l tim er 1
rial cuand o se activa el M O D O O , y en la fig u ra
c u a n d o s te se u tiliz a co m o g e n e ra d o r d e ba u d io s en los 3 2 .3 se m uestra el d iagram a de tiem pos (o cro-
m odo s de co m u n ica c i n 1 ,2 y 3
nogram a) q u e le corresponde y ijrie adem s des
Si se a c tiva n s im u lt n e a m e n te PD e ID L el m ic ro c n tro la d o r a s u m e e ! M odo
cribe d etallad am en te el proceso de transm isin y
P ow e r Do wn, q u e tie n e p rio rid a d so b re el M o d o Idle
D e sp u s d e la o p e ra c i n feset. PCON to m a el s ig u ie n te v a lo r 0X X X 0000 recepcin en dich o m odo.
E n io s d is p o s itiv o s H M O S. PCON c o n tie n e s o la m e n te el b it SM O D

En el diagram a d e tiem pos se puede apreciar


C u a d ro 3 2 .2 R egistro de co n tro l de p oten cia PCON d e l 8051
que la transm isin se inicia cuando se usa el regis
tro SB U F com o destino, y que adem s la seal de
En M O D O l y M 0 D 0 3 la v e lo c id a d de control in tern a SE N D hab ilita la salida en serie
la c o m u n ic ac i n est en fu n ci n d el estado del del dato del b u ffer y la salida d e la seal de despla
b it S M O D y d el v alo r de recarga y so brepasa- zam iento (SH IF T ). C ad a vez que se enva un b it
m ien to d el reg istro c o n ta d o r d el T IM E R 1 , el del dato del bu ffer, ingresa un cero, y de esta for
cu al debe estar co n figu rad o com o te m p o riz a m a, al tran sm itir el b it m s significativo (M SB ) el
dor d e 8 b its con recarg a au to m tic a (en m odo b u ffer serial q ued a cargado con ceros.
2) p ara o p tim iz a r su uso, y e x
ten d erlo a la m ay o ra d e las ta VELOCIDAD FRECUENCIA TIMER!
reas; tal com o se m u estra en la (BAUDIOS) Da SMOD
.OSCILADOR . C/T MODO VALOR DE RECARGA (TH1)
e c u a c i n 3 2 .3 Modo 0, Max: 1 MHz 12 MHz X X X X
Modo 2, Max: 375 K 12 MHz 1 X X X
En la tabla 32.1 se muestra M odos 1 y 3 :62,5 K 12 MHz 1 0 2 $FF
una lista con las velocidades de co 19,2 K 1 1 ,0 5 9 MHz 1 0 2 $FD
9 ,6 K 11,059 MHz 0 0 2 $FD
municacin serial estandarizadas y 0 SFA
4 ,8 K 1 1,059 MHz 0 2
la manera de obtenerlas en los M O 2 ,4 K 1 1,059 MHz 0 0 2 $F4
D O S 1 y 3 , en sta se relaciona la 1,2 K 1 1,059 MHz 0 0 2 $F8
velocidad con la frecuencia del os 137,5 K 1 1,986 MHz 0 0 2 S1D
cilador del microcontrolador, con 110 K 6 MHz 0 0 2 $72
110 K 12 MHz 0 0 1 SFEEB
el estado del b it SM O D y con la
configuracin d e lT IM E R l. Tabla 32.1 Velocidades de com unicacin e stndar en los M 0D 0S 1 y 3 con e l TIMER 1

C urso prctico sobre M icrocontroladores & e iT .: C299


C u iU L iL U C e C L U lU r t C U L I IrL L U C I U . C U u i i u L cI L Q I ' o U H l

BUS INTERNO DEL 8052/51

E S C R IB E
EN SBUF
R X D (P 3 .0 )

START SH IFT
CONTROL DE TX

S6 T X CLO CK TI SEND

INTERRUPCIN
PUERTO SERIAL

TXD (P3.1>
"CK1
R X C LO C K Rl RECE,VE wk 1

CONTROL OE RX
REN-
STAR T 1 1 1 1 1 1 1 0 SH IFT
R l-

R X D (P 3 .0 )

E S C R IB E E N S B U F

LE E E L S B U F

I
BUS INTERNO DEL 8 052/51

F ig u ra 3 2 .2 A rquitectura d e l pue rto se ria l en MODOO

El proceso de recepcin se la s e a l de d e s p la z a m ie n to la seal R E C E IV E se b o rra y


in ic ia cuando REN vale 1 y R l (S H IF T ) y carg a en serie los 8 la b a n d e ra de in terru p c i n de
vale 0 , bajo esta c o n d ic i n se b its d el d ato q u e van sien d o recep ci n R l es p u esta en 1.
cargan unos en el b u ffe r recep m u e s tr e a d o s p o r e l p in 10 En la fig u ra 3 2 .4 se m uestra
to r y, un tiem p o d espu s, se (R X D ). En e l d cim o cic lo de el esq u em a sim p lific a d o de la
ac tiv a la seal de co n tro l in m q u in a , tras h ab e r puesto en c o m u n ic ac i n y el form ato de
te rn a R E C E IV E q u e h a b ilita 0 el b i t R l, au to m tic a m e n te p alab ra en M O D O O .

s.a. Curso prctico sobre M icrocontroiadores


W rite t o S C O N (C le a r R l)

Rl C" L
R e c e iv e

S h ift
-TL _TL _TL _TL
R x D {D a ta In) D7

SSP2
-CP Cr
T x D (S h ift C lo c k )

F ig u ra 3 2 .3 Cronogram a del proceso d e com unicacin en MODOO

DATOS activa el M O D O l, y en la fig u ra 3 2 .6 se m ues


P3.0 1-------- * -
(10) RXD
tra el d iagram a de tiem pos que le corresponde y
8051
q ue adem s, describe d etallad am en te el proceso
d e transm isin y recepcin en dicho m odo. Igual
CLOCK m ente q u e en el M O D O O , la transm isin se in i
P3.1 1--------------- cia cuand o cu alq u ier in struccin u tiliza el regis
|(1 1 ) TXD
TRANSM ISO R/ tro SB U F com o destino, sin em bargo, el proceso
RECEPTOR de recepcin se activa cuando se detecta un flan
BilO B it1 fflC S/<3 BiM e /S SJ6 BitJ co descendente en el pin R X D , q u e perm an en
tem ente es m uestreado a razn de 16 veces.
t t
LSB MSB Al final de la recepcin, cuando el b it de in i
F ig u ra 3 2.4 Esquema de com unicacin y form ato de palabra cio llega a la novena posicin a la izquierda del
en MODOO registro de d esplazam iento, se carga el dato reci
bido en SB U E se carga el b it de parada en R B 8,
M 0D 01 de com unicacin y se activa en 1 lgico la bandera de interrupcin
C on los b its SMO y SM 1 en cero y uno respecti de recepcin RL En la fig u ra 3 2 .7 se m uestra el
vam ente, se activa el M O D O 1 de com unicacin esquem a sim p lificado de la com un icaci n y el
serial, en ste se transm iten 10 bits a travs del form ato de palab ra en M O D O l.
pin 11 (T X D ) o se reciben por el p in 10 (R X D );
los 10 bits q ue conform an la tram a del form ato MODOS 2 y 3 de com unicacin
de p alab ra estn integrados por: 1 b it de inicio C on los bits SMO y S M 1 se activa uno de los M O
(sta rt b it = 0 lgico), 8 b its de datos y 1 b it de D O S 2 3 de com unicacin serial, estos modos se
parada (stop b it = 1 l gico ). En este caso la velo c o m p o rtan de la m ism a m an era, pero, en el
cidad de la co m un icaci n , com o ya se estudi, M 0 D 0 3 el program ador puede ajustar la veloci
est expresada en funcin del T I M E R l. dad dentro de una am plia gam a, como ya se estu
di. En cualquiera de estos modos se transm iten 11
L a fig u ra 3 2 .5 m uestra la arq u itectu ra sim bits a travs del pin 11 (TX D ) o se reciben por el
p lificad a que adopta el pu erto serial cuando se pin 10 (RXD ), la tram a de los 11 bits s e conforma

Curso p rctico sobre M icrocontroladores


C m u iL iL e c id a L iL ^ s i =i l U * s m i d u l e i u c a i i i M M ; ts U E i
I
DESBORDA DESBORDA BUS INTERNO DEL 8052751
TIMER 1 TIMER 2

ESCRIBE

SM 0D=0 S M 0D =1

START SHIFT DATA


CONTROL DE TX

TX CLO CK

INTERRUPCIN DEL
PUERTO SERIAL

MUESTREO

RX CLOCK * ESCRIBE EN SBUF

START CONTROL DE RX SHIFT


S I FF

ESCRIBE EN SBUF

Nota:
TCLK, RCLK y e l T im er 2 estn presentes
solo en e l m ic ro co n tro la d o r 8052

F ig u ra 3 2 .5 A rq uite ctu ra de l
BUS INTERNO DEL 8052751
p u e rto se ria l en M O D 0 1

por 1 b it de inicio (start bit = 0 La v e lo c id a d de la c o m u c u e n c ia , m ie n tra s q u e en el


lgico), 8 bits de daros, 1 noveno n icaci n d e p e n d er del m odo M 0 D 0 3 es variable, co n fig u
b it program able por el usuario d e c o m u n ic a c i n a c tiv o , en ra ble y est en fu n ci n del T I-
como b it de paridad y 1 b it de M 0 D 0 2 la v elo cid ad es fija M E R l, tal com o ya se ha ex
parada {stop b it = 1 lgico). e ig u a l a 1/64 1/32 d e la fre presado en la ecu ac i n 3 2 .3 .

# W ,'.. Curso p r ctico sobre M icrocontroladores


n A D o n A A A (i n n n
W rile lo S 8 U F

i
Data

S h ltt
n _ JL _ n fi o n f| n
T kD
\
V s ta r t B it / DO
/ Y D1 t>~ y
_______ A
D3
_A_
y 04 y D5 yA D6 yA 07
yV
TI 1
* 16 R eset
RX
C lo c k Q
i n II i (1 fl (1 fl fl fl fl n
il. i\r r uu i -\r V -\t~ v 7tr~v~ 0 7 "V-
~ \/~
RxD
B it D e te c to r
p." / u
A X 03
A 04
A -X 06 X - J S to p B it

m m m m ffl
S h lft
n il n (i n n n n fl fl I

F ig u ra 3 2.6 C ronogram a d e l proceso de com unicacin en M 0 D 01

e sq u em a sim p lifica d o de la c o m u n ic ac i n y el
form ato de p alab ra en los M O D O S 2 y 3.

La f ig u r a 3 2 .1 0 m u e stra la a rq u ite c tu ra
sim p lific a d a q ue ad o p ta el p u erto se rial cu an
do se ac tiv a e l M 0 D 0 2 (los M O D O S 1 y 3
poseen la m ism a a rq u ite c tu ra , ver fig u ra 3 2 .4 )

LS B D ATO M SB
D e la m ism a fo rm a q u e en los o tro s m o
F ig u ra 3 2 .7 Esquem a de com unicacin y form ato de palabra d o s, la tra n sm isi n se in ic ia cu an d o c u a lq u ie r
en M 0 D 01 in stru c ci n u tiliz a al reg istro SB U F com o des
tin o , tras esta ac c i n se c a rg a el b i t 3 ( T B 8 )
En la fig u ra 3 2 .8 se m u estra el cro n o gram a d e l reg istro S C O N en la p o sic i n d e l noveno
q u e le co rresponde y q u e adem s d escrib e d e b i t d e l re g istro de d e sp la z a m ie n to (co m o u n
ta lla d a m e n te el proceso de tran sm isi n y re b i t d e p a rid a d ) y lu e g o , se d a paso a la tran s
c e p c i n en el M 0 D 0 2 de c o m u n ic a c i n , m isi n en serie.
m ien tras q u e en la fig u ra 3 2 .9 se ap re cia el

(1 0) RXD
P 3 .0

j o n n_
8051

DO (H ) TXD
J] TL J I L r . 11

Start BitO Bif l 8 /g AJI3 Bit* B iti BitO BitT Pmg Stop
ieae>
nx
j iu a J1 0 !L ji n a n il

y L" /^XZIXTEXZIX^OQ O O D O E X jD'


.
BU TRANSMISIN: Carga el Bit TB8 de SCON
p ro g r a m a b le
ageugg____ j__i___ m__ m__ m__ m__ m__ m___ m__ m__ m__ d e p a rid a d RECEPCIN: Es la imagen del bit RB8 de SCON d
j s : ________________ n____ ti ji______ ii n n n______n n n n

F ig u ra 3 2 .9 Esquema de com unicacin y form ato de


F ig u ra 3 2 .8 Cronogram a d e l proceso de com unicacin en M 0 D 0 2 palabra en tos MODOS 2 y 3

Curso p rctico sobre M icrocontroladores


C iiim fc tid u iu a s m i f e c u li u L lu ciu cu li u Iu u l- Ht.

BUS INTERNO DEL 8 052/51

ESCRIBE
EN SBUF

TXD

FASE 2 DEL RELOJ


(1/2 W )

INTERRUPCIN DEL
PUERTO SERIAL

T ESCRIBE EN SBUF

RXD

ESCRIBE EN SBUF

Nota:
TCLK, RCLK y el Timer 2 estn presentes
solo en el microcontrolador 8052 LEE EL SBUF

F ig u ra 3 2 .1 0
BUS INTERNO DEL 8052/51
A rq uite ctu ra d e l pue rto *1
serial en M 0 D 0 2

La recepcin sin em bargo, R X D , que es co n tin u am en te SBUF, se carga el b it de parada


se in ic ia cuando se d etecta un m uestreado; y, al final del pro- en la posicin de R B 8, y se ac
flanco o tran sici n de nivel de ceso de recepcin se transfieren tiva en 1 lgico la bandera de
voltaje descendente por el pin los 8 bits recibidos a l registro in terrupcin de recepcin RI.

7.4. Curso p r ctico sobre M icrocon trotadores


LOS MICROCONTROLADORES
AVR DE 8 RUS DE ATMEL
Los m icrocontroiadores A V R fabricados por A T M E L
tie n e n a rq u ite c tu ra R IS C y u n a e stru c tu ra q u e so
p o rta in stru c cio n e s co m p actas y poderosas d e un
solo ciclo.

Estos m ic ro co n tro iad o re s c u e n ta n con u n a e stru c


tu ra p ara los p erifrico s in tern o s (los p u erto s I/O,
el o scilad o r in te rn o , los tim ers , la U A R T , el SP I, los
can ales A D C y los co m p arad o res an lo g o s), q u e
red uce la n ecesid ad de u sar co m p o n en tes externo s.

, *
Curso p rctico sobre M icrocontroiadores
Lus iieuffim U ultiiiuU rS lk\ 11 # t* i/ug il; /tifiOL I
ATMEL Seguro de p ro gram aci n para las m em orias
Es una com paa que desde 1984 es ld er y pio FLA SH y EE PRO M
nera en el diseo y desarrollo de sem iconducto 15 lneas I/O program ables
res avanzados con alta escala de in tegraci n ; en T im er/C ounters de 8 y 16 bits con preescalador
tre los princip ales productos de esta em presa se in d ivid ual
in clu yen los m icrocontroiadores y m icroproce C o m p arad o r anlogo
sadores AVR, los conjun tos lgicos y analgicos W atctbdog program able
program ables de alta densidad (PAL y PAA), las Interfaz serial SPI
m em orias no voltiles, los m ezcladores y am p li U A R T fn ll-d u p lex
ficadores de seal, y los circuitos integrados de D os m o d o s d e b a jo c o n s u m o : ID L E y
co m un icaci n RF. Por su tecnologa de fabrica PO W E R-D O W N
cin de circuitos integrados con alta densidad Interrupciones externas e internas
(w a fer p r o cesses), A T M E L es tam bin considera V oltaje de alim en taci n entre 2 ,7 y 6 ,0 V
d a com o una em presa de van gu ard ia; sus tcn i
cas se orientan a las estructuras C M O S , B iC - D escripcin de pines del AT90S2313
M O S y SiG e (S ilico n G erm a n iu m ).

En esta leccin estudiarem os el m icrocontro


lador AV R de 8 bits de ATM EL que cuenta con
las caractersticas m s representativas de los m i-
crocontroladores de nivel m edio: el A T 90S 2313,
que es un m iem bro de la fam ilia A T90.

El m icro con trolador A T90S2313 de la


fa m ilia AT90
Este m icrocontrolador se considera de nivel m e
dio y cuen ta con una arq u itectu ra avanzada pro
p ia de la fam ilia A T 90, la q u e posee m uchas
caractersticas im p o rtan tes y tiles p a ra el usua
rio a la h o ra d e e fe c tu ar c u a lq u ie r tarea. El
A T 9 0 S 2 3 1 3 es un m icro co n tro lad o r C M O S de
8 b its q u e c u e n ta co n 2 K b y te s d e m e m o ria Figura 33.1 Configuracin de pines del microcontrolador AT90S2313
FLA SH p rogram able, y su estru ctu ra de em p a
q u e es tipo PD IP o S O IC de 2 0 p in e s. Sus p rin En la fig u ra 3 3.1 se m uestra la d istribucin
cip ales caractersticas son: y el nom bre p rin cip al y alterno , entre parntesis,
de cad a uno de sus p in es. M uchos de sus p in es
A rq u itectu ra R ISC de bajo consum o, propia tienen funciones ya bastante conocidas, y, por lo
de los M C U AVR tanto, slo se explicarn a co n tin u aci n aquellos
118 instrucciones com pactas y poderosas q u e poseen caractersticas particulares y nuevas
3 2 registros de 8 b its de propsito general que d eban conocerse.
M x im a v e lo c id a d d e e je c u c i n 1 0 M H z
(10M IP S ) estos pines conforman el puer
M em orias de datos y program a no voltiles to B, que es de 8 bits, bidireccional (operan como
2Lbytes de m em oria program able FLA SH entrada o salida), y todas sus lneas tienen adems
128 bytes de m em oria R A M esttica SR A M resistencias internas p u ll-u p program ables; todas
128 bytes de m em oria program able EEPRO M sus ln eas p u ed en m an ejar d irectam en te diodos

(M BCBTG Curso prctico sobre M icrocontroiadores


Teora

HC BUFFER co o de b its, se d e sarro llan (se e je


c u tan y se d evu elve e l resu ltad o ) en
u n slo ciclo de in stru c c i n y op e
NC XTAL2 ran d ire c ta m e n te sobre los 3 2 re
gistro s d e trab ajo . Por su e stru c tu
SEAL DEL ra R IS C , c u e n ta con u n red u cid o
OSCILADOR' XTAL1
EXTERNO n m ero de in stru c cio n e s flexib les
GND y po d erosas, y, a d ic io n a lm e n te , su
te c n o lo g a p ara el m an e jo de dos
o p e r a n d o s s im u lt n e a m e n te les
F ig u ra 3 3 .2 C onfiguracin d e l oscilador o to rg a la p o sib ilid a d de acced er r
p id am e n te a los d ato s a travs del
E D y cargas hasta
i i a a i a de
u v 20m An.. *PBO yy a. P B x1 operan <
b an co form ad o por los 32 registros de trab ajo
tm
m iu
bin
icii com o las entradas positiva (AINO) y de 8 b its c ad a uno.
negativa (A IN 1) del com parador anlogo.
En la fig u ra 3 3 .3 se m uestra el diagram a es
A l activar el reset todas sus lneas se ponen q u e m tico en b lo q u es de la a rq u ite c tu ra del
en tercer estado (alta im p ed an cia). A T90S2313.

Port D (P D 6 - PDO): estos p in e s son el puerto D O rganizacin de la m em oria


de 7 bits, bidireccionales, y todas sus lneas tie En la fig u ra 3 3 .4 se m uestra la d istribu cin de la
nen resistencias internas d e p u ll- u p ; adem s, tie m em o ria en los m icrocontroladores A T 9 0 S 2313
nen capacidad para m anejar hasta 20m A por cada y las direcciones asignadas para cada rea. El es
u na y su estado, despus del reset, es el de alta pacio de m em oria en la arq u itectu ra A V R es li
im pedancia. neal y est conform ado por: 2K b ytes de m em oria
de program a tipo F L A SH , 128 b ytes de m em oria
el reset en estos m icrocontroladores se de datos E E PRO M , 128 bytes de. m em oria de
activa por m edio de este pin , si se pone externa datos R A M esttica (S R A M ), 15 registros I/O
m ente en nivel lgico bajo al m enos durante 50ns. de 1 byte, 3 2 registros de trabajo o propsito ge
neral, y los registros especiales que soportan las
en este m dulo, X T A L l y XTAL2 son com un icaciones y los perifricos internos.
los p in e s de la entrada y la salida, respectivam en
te, del am plificado r inversor del oscilador in ter Los registros de trabajo
no. T al com o se m uestra en la fig u ra 3 3 .2 , el os Los 32 registros de trab ajo de 8 bits de la C P U
cilad o r puede excitarse usando un resonador ce se en cu en tran lo calizados en las prim eras posi
rm ico o un cristal de cuarzo, y, adem s, puede ciones del rea de la m em o ria de datos (entre
usarse para sincronizar otros dispositivos si se co las posiciones $ 0 0 y $ 1 F ), y poseen la estru ctu
necta un b u ffe r en el p in X TA L2; a ll tam bin ra q u e se m uestra en la fig u ra 3 3 .5 . Tal com o se
puede verse que la en trada para el oscilador ex m u estra, cada registro posee un nom bre, una
terno, cuando se u tiliza, debe ser el p i n X T A L l. direcci n esp ecfica, y, ad icio n a lm en te, los re
gistro s q ue h ay en tre el R 2 6 y el R31 se p ued en
A rquitectura del AT9QS2313 ag ru p ar en tres registros de 16 bits: los registros
La a rq u ite c tu ra A V R es H a rv a rd (con buses se X , Y y Z, q u e sirven com o ap un tad o res en los
p arad o s p a ra las m em o rias de d ato s y p ro gra m odos de d ireccio n am ien to in d irecto del espa
m a) y del tip o R IS C . Las o p eracio n es con la cio de m em o ria de d atos; en la fig u ra 3 3 .6 se
A L U , q u e p u ed en ser de tip o l g ic o , a r itm ti m uestran los registros X , Y y Z.

Curso p rctico sobre M icrocontroladores


Lus iiiiiauUUuLidiis A Vll de ti b tis k A lM lfL

PBO - PB7 PDO - PD7

Figura 3 3 .3 A rquitectura de/A T90S 2313

.a . Curso p r ctico sobre M icrocontroladores


Teora

M e m o ria de M e m o ria de El espacio de m emoria I/O (el conjunto de


p ro g ra m a (FLASH) d a to s
registros especiales)
ISOOO 3 2 R e g is tr o s d e I SOO
ib a jo d e p ro p s ito Las 64 direcciones I/O que conform an el espa
g e n e ra l SI F cio de m em oria de datos de lectu ra y escritura, y
$20
a travs de las cuales se controlan las funciones
PROGRAMA 64 Registros l/O
(1K x 16) generales, especiales y el estado de los perifricos
S5F internos, tales com o los tim ers, los contadores,
S60
los convertidores A/D, la U A R T y otros; se en
cuentran localizados entre las posiciones $ 2 0 y
SRAM $5F. En la ta b la 3 3 .1 se m uestran las direccio
(1 2 8 x 8)
nes, los nom bres y las funciones de todos los re
gistros del espacio de m em oria I/O.

A unque todos los registros del espacio I/O son


im portantes y de m anera particular cum plen fun
S3FF
ciones especficas y propias del control de cada uno
de los mdulos perifricos, hay dos registros que
F ig u ra 3 3 .4 M apa de m em oria d e l AT90S2313 poseen caractersticas tiles y necesarias para el fun
cionam iento general del m icrocontrolador y que
7 0 deben conocerse bien, stos son: el registro de esta
do SREG y el de control de la C P U M C U C R .

1. Registro de estado SREG


B it 7 s 5 4 3 2 1 0
S3F(5F) 1 T H S V N z c SREG
Lectura/Escritura R/W R/W R/W R/W R/W R/W R/W R/W
Valor inicial 0 0 0 0 0 0 0 0

F ig u ra 3 3 .7 R egistro de estado SREG


$1A Byte bajo del registro X
En la fig u ra 3 3 .7 se m uestra el registro de estado
$1B Byte alto del registro X
$1C Byte bajo del registro Y SREG con su direccin y el valor in icial que asu
$1D Byte alto del registro Y m e despus del reset, en ste se encuentran los
$1E Byte bajo de I registro Z siguientes b its de control:
$1F Byte alto del registro Z

F ig u ra 3 3 .5 R egistros de trabajo de la CPU2313 B i t 7 (I): es el h a b ilita d o r g lo b a l de in te r ru p


cio n es, su estad o d eb e ser uno l g ic o p a ra h a
15 b ilita rla s y es b o rrad o a u to m tic a m e n te p o r
R e g istro X J el h a r d w a r e d esp u s de h a b e r a te n d id o la in
R27 ($1B) R26 ($1 A) te rru p c i n .
15 B it 6 (T ): es el b it d e alm ace n am ien to y copia
R e g istro Y J que se co n sid era com o fuen te o d estin o para
R29 (S1D) R28 ($1C) las in stru ccio n es que o p eran sobre u n b it , tales
15 com o BLD (carga de un b it) y B ST (alm acen a
R eg istro Z m ien to de u n bit).
R31 ($1F) R30 ($1E) B i t 5 (H ): es el b i t b a n d e ra q u e se a la la o c u
rren cia d el acarreo in te rm e d io en las o p era
Figura 3 3 .6 R egistros de direccionam iento ind ire cto X , Y y Z cion es aritm tic as.

Curso prctico sobre M icrocontroladores


Lu$ luiuu^uuuuluiiuiirs .VU. de l>tisk /'U'iliL

DIRECCIN HEX. NOMBRE FUNCIN 2. R e g is tr o d e c o n tr o l d e la


$3F ($5F) SREG Registro de estado CPU M C U C R
$3D ($5D) SPL Puntero bajo de la pila En la fig u ra 3 3 .8 se m uestra el
$3B ($5B) GIMSK Registro general de interrupcin MASK registro de control M C U C R con
$3A ($5A) GIFR Registro general de interrupcin FLAG
su direccin y el valor in icial que
$39 ($59) TIMSK Registro de interrupcin del TIMER/C0UNTER
$38 ($58) TIFR Registro de bandera del TIMER/COUNTER
adopta, despus del reset ; en ste
$35 ($55) MCUCR Registro de control general del MCU se encuentran los siguientes bits
$33 ($53) TCCR0 Registro de control del TIMER/COUNTER 0 de control:
$32 ($52) TCNT0 TIMER/COUNTER 0 (8 bits)
$2F ($4F) TCCR1A Registro de control A del TIMER/COUNTER 1
B it 7 y 6 (R): estos bits estn re
$2E ($4E) TCCR1B Registro de control B del TIMER/COUNTER 1
$2D ($4D) TCNT1H Byte alto del TIMER/COUNTER 1
servados para otros M C U de la
$2C ($4C) TCNT1L Byte bajo del TIMER/COUNTER 1 fam ilia A T 90 y siem pre se leen
S2B ($4B) 0CR1AH Byte alto del registro de salida de com paracin 1 en cero lgico.
$2A ($4A) 0CR1AL B yte bajo del registro de salida de com paracin 1 B it 5 (SE): es el bit q u e se utiliza para
$25 (S45) ICR1H Byte alto del registro de entrada de captura 1 habilitar cualquier modo de adorme
$24 ($44) ICR1L Byte bajo del registro de entrada de captura 1
$21 ($41)
cimiento (SLEEP), con su estado en
WDTCR Registro de control del tem porizador del w atchdog
$ 1 E ($3E) EEAR Registro de direcciones de la EEPROM uno lgico est habilitado.
$ 1 D ($30) EEDR Registro de m em oria de la EEPROM B it 4 (SM ): es el b it q ue se usa
$1C ($3C) EECR Registro de control de la EEPROM com o in terru p to r de control para
$18 ($38) P0RTB Registro de datos del puerto B activar u no de los dos m odos d is
$17 ($37) DDRB Registro de direccin de datos del puerto B
ponibles de bajo consum o. C u an
$16 ($36) PINB Pines de entrada del puerto B
$12 ($32) P0RTD Registro de datos del puerto D do S M vale cero, se selecciona el
$11 ($31) DDRD Registro de direccin de datos del puerto D m odo 1DLE, y cuando vale uno,
$10 ($30) PIND Pines de entrada del puerto D el m odo POW ER-DOWN.
SOC ($20) UDR Registro de datos l/O de la UART B it 3 y 2 (I S C l 1 e I S C 1 0 ): con
SOB ($2B) U5R Registro de estado de la UART
estos dos b its s e c o n tro la y d e
$0A ($2A) UCR Registro de control de la UART
$09 ($29) UBRR Registro de velocidad de la UART fin e la s e n s ib ilid a d a s o c ia d a
$08 ($28) ACSR Registro de estado y control del com parador anlogo con la e n tra d a de la in te r ru p
c i n e x tern a 1 (p in I N T l) . En
Tabla 33.1 R egistros especiales d e l espacio de m em oria 1/0
la tab la 3 3 .2 se re su m e n las
o p cio n es de se le c ci n d el n ivel
B i t 4 (S): el b it d e signo seala con su estado, en y el flan co p a ra la se a l de e x c ita c i n d e esta
uno lgico, cuando el resultado de una operacin in te rru p c i n .
aritm tica, en com plem ento a dos, es negativo.
4
B i t 3 (V ): la bandera de sobreflujo o desborda Bit 7 6 5
SM
3 2 1 0
1
S35(S55) SE ISC11 ISC10 ISCOl ISCOO LMCUCR
m iento se genera cuando ocurre un sobrepaso en Lectura/Escritura R R R/W R/W R/W R/W RW R/W
el alcance del resultado de u n a operacin en com Valor inicial 0 0 0 0 0 0 0 0

plem ento a dos. F ig u ra 3 3 .8 Registro de c o n tro l de l m icrocontrolador MCUCR


B i t 2 (N ): la bandera de resultado negativo sea
la cuando u n a operacin aritm tica cualq u iera, B it 1 y 0 (ISC01 e ISCOO): con estos dos bits se
o lgica, arroja un resultado negativo. controla y define la sensibilidad asociada para la
B i t 1 (Z ): este b it es la bandera que nos in d ica entrada de la interrupcin externa 0 (pin INTO).
cuando el resultado de una operacin l gica o
aritm tica es n u lo o cero. En la tabla 3 3 .3 se m u estran las op ciones p ara
B it 0 (C ): este b it es la bandera de acarreo final la seleccin del nivel y el flanco de la seal de
propia de las operaciones aritm ticas y lgicas. excitaci n de tal in terru p ci n .

< M iK < n m * Curso prctico sobre M icrocontroladores


Teora

La memoria de datos SRAM


ISC11 ISC10 DESCRIPCIN
El rea de la m e m o ria de d a
0 0 Se genera una interrupcin por nivel bajo en el pin INT1
tos es d e l tip o R A M e st tic a
0 1 Reservado
1 0 Se genera una interrupcin p o r un flanco descendente en el pin INT1 (S R A M ) y e st c o m p u e s ta
1 1 Se genera una interrupcin p o r un flanco ascendente en el pin INT1 p o r 1 2 8 b y tes de 8 b its lo c a
Tabla 3 3 .2 C ontrol d e sensibilidad de la interrupcin 1 (INT1) liz ad o s e n tre las p o sic io n es
$ 6 0 y $ D F ; en to d a esta rea,
JSC01 ISC00 DESCRIPCIN
los re g istro s se p u ed en ac c e
0 0 Se genera una interrupcin por nivel bajo en el pin INTO d er d ire c ta m e n te p o r m ed io
0 1 Reservado
de c u a lq u ie r m o d o d e d ire c
t 0 Se genera una interrupcin por un flanco descendente en el pin INTO
1 1 Se genera una interrupcin por un flan co ascendente en el pin INTO
c io n a m ie n to . E n la f ig u r a
3 3 .9 se m u e stra la o rg a n iz a
Tabla 3 3 .3 C ontrol d e sensibilidad de la interrupcin 0 (INTO)
ci n de la S R A M .
La memoria de programa rL A SH del sistema
Este m ic ro c o n tro lad o r ofrece 2 K b ytes de m e D uran te las interrupcion es y los saltos a su
m o ria F L A SH p ro g ram ab le por el u su ario en b rutinas, la direccin de retorno del P C es alm a
d o n d e se deb e alm ace n ar e l p ro g ram a, y est cenada en el rea de la p ila {stack), q ue puede
o rg an izad a en u n a e stru c tu ra de 1K X I 6 para estar lo calizada en cu alq u ier lu gar de la m em o
fa c ilita r las o p eracio n es con las in stru ccio n es ria SR A M , y, por lo tanto, se puede afirm ar que
de 16 3 2 b its. Por m ed io d el registro c o n ta su tam ao slo est lim itad o por el espacio dis
dor d el p ro g ram a (P C ), q u e es de 10 b its, se ponib le en la m em oria de datos esttica. El re
p u ed en d ire c c io n ar h asta 1 .0 2 4 p o sicio n es de gistro ap u n tad o r de la p ila SP (stack p o in te r ) es
la m em o ria de p ro gram a. un registro de 8 bits que se usa p ara direccionar
todos los 128 bytes de la SR A M ; ste se decre-
B a n c o d e r e g is tr o s D ir e c c io n e s d e d a to s m en ta en uno cada vez q u e se ap ila un nuevo
R0 $00 dato por m edio de la instruccin P U S H , y, por
R1 $01 el contrario, se in crem enta en uno cuando un
R2 $02 dato es descargado de la p ila por m edio de la
in stru cci n P O P ; en la fig u ra 3 3 .1 0 se puede
$1D apreciar la parte baja del registro SP, llam ad a SPL.
R30 $1E
R31 $1F Bit 7 6 5 4 2 1 0
3
Registros 1/0 S30 (S5D) SP7 SP6 SP5 SP* SP3 SP2 SP1 SPO SPL
$00 $20 Lectura/E scffiura R/W R/W R/W R/W R/W R/W R/W R/W
Valor Inicial 0 0 0 0 0 0 0 0
$01 $21
$02 $22 F ig u ra 3 3 .1 0 Registro apuntador de la pila SPL

$3D $5D La memoria de datos EEPROM


$3E $5E El M C U tien e in tern am en te u n a m em o ria de
$3F $5F
d atos de le c tu ra y escritu ra de 128 b ytes d el tipo
SRAM interna
E E P R O M y est lo calizad a en un espacio sepa
$61 rado dentro d el rea de d atos. A co n tin u aci n ,
$62 en la fig u ra 3 3 .1 1 , se m uestran los registros pro
pios del m anejo de datos de esta m em o ria, a ll
se pueden ver: el registro de d irecci n EEAR
(E E P R O M a d d ress register) que co n tien e la d i
Figura 3 3 .9 rea de memoria SRAM
reccin de la lo calid ad de m em o ria q u e va a ser

Curso p rctico sobre M icrocontroladores


Lus luiciCLiulaLiurh- AVti de t blide /UU'iEL
accedida, e l registro de datos E E D R (E EPRO M Banco de
registros
d a ta register) que contien e el dato de 8 bits que
va a ser escrito o ledo de la m em oria, y el regis
tro de control EE C R (E EPRO M c o n tr o l regis
ter)-, ste a su vez tiene tres bits de control: el
E E M W E , el EEW E y el EERE, los cuales son
utilizados com o el h ab ilitad o r m aestro de la es F ig u ra 3 3 .1 2 D ireccionam iento directo
critu ra, el h ab ilitad o r de escritu ra y el h a b ilita de registro sim ple

d o r d e lectu ra, resp ectivam ente.


Bit 7 6 5 4 3 2 1 0 D ireccio n am ien to d irecto de registro doble
S1E($3E) EEAR6 EEAR5 EEAR4 EEAR3 EEAR2 EEARI EEAR0 EEAR En la fig u ra 3 3 .1 3 , O P representa al cdigo
Lectura/Escritura R R/W RAV R/W R/W R/W R/W R/W
de operacin de la in struccin y los registros
Valor inicial 0 0 0 0 0 0 0 0
r y d representan a los operandos. El resulta
Bit 7 6 5 4 3 2 1 0
do se guard a en el registro d.
$1D ($3t>) MSB LSB EEDR
Lectura/Escritura R/W R/W R/W R/W R/W R/W R/W R/W Banco de
Valor inicial 0 0 0 0 0 0 0 0 re g is tr o s

Bit 7 6 5 4 3 2 1 0
S1C ($3C) - - - EEMWE EEWE EERE EECR
Lectura/Escritura R R R R R R/W R/W R/W
Valor inicial 0 0 0 0 0 0 0 0

F ig u ra 33.11 Registros de con trol y estado de la m em oria EEPROM

F ig u ra 3 3 .1 3 D ireccionam iento directo de registro doble


Nota:
la m em oria FLA SH in terna de program a del
D ireccio n am ien to d irecto de registros l/O
A T 9 0 S 2 3 1 3 soporta hasta 1.000 ciclos de lec
En la figu ra 3 3 .1 4 , O P representa al cdigo de
tu ra y escritura, lo cual es tpico para esta tec
operacin de la instruccin y la direccin del
nologa. Sin em bargo, las m em orias EEPRO M
operando est contenida en los 6 bits ms bajos
tienen u n a m ayo r d u raci n , pueden soportar
de la instruccin P ; m ientras que en n se ubica
hasta 1 0 0 .0 0 0 ciclos.
el destino o la fuente del registro direccionado.
Memoria 1/0
M odos de direccio nam iento de datos y 15
program as 0P n

El m icrocontrolador A T 9 0 S 2 3 13, con arqu itec


tu ra AVR R IS C , cu en ta con un poderoso con
ju n to de once m odos de direccion am iento que
nos perm iten acceder a cu alq u iera de sus m em o
rias y registros internos eficientem ente. A co n ti
F ig u ra 3 3 .1 4 D ireccionam iento directo de registros 1/0
n uacin se hace la descripcin y el an lisis sim
plificado de cada uno de estos m odos. D ireccio n am ien to d irecto de datos
En la fig u ra 3 3 .1 3 , O P rep resen ta al c d i
1. D ireccionam iento directo d e registro sim ple go de o p eraci n de la in stru c ci n y la d i
En la fig u ra 3 3 .1 2 , O P representa a l cdigo reccin de 16 b its del d ato se lo caliz a en la
de op eracin de la in struccin y el registro d p arte b a ja d e la in stru c c i n . R r o R d espe
representa al operando. c ific an el registro d e stin o o fu en te.

Curso prctico sobre M icrocontroladores


Espacio de Direccionamiento indirecto de datos con pre-
datos
decremento
31 2 0 19 16
OP Rr/Rd
En la fig u ra 3 3 .1 8 , el contenido del registro
16 LSBs X , Y, o Z se d ism in u ye en uno, an tes de la
15 operacin para ap un tar a la direccin efectiva
del operando.
Espacio de
15 datos
SDF
Registro X, Y o Z
F ig u ra 3 3 .1 5 D ireccionam iento d irecto de datos

Direccionam iento indirecto de datos con


desplazamiento
En la fig u ra 3 3 .1 6 , O P representa al cdigo
de operacin de la in struccin y la direccin
del operando se obtiene al sum ar el co n ten i F ig u ra 3 3 .1 8 D ire c c io n a m ie n to in d ire c to de d a to s con
p re -d e c re m e n to
do del registro Y o Z , con la direccin de 6
bits (desplazam iento) contenida en la parte a D ireccionam iento indirecto de datos con
de la in struccin. En n se ubica el d estino o la post-incremento
fuente del registro direccionado. En la fig u ra 3 3 .1 9 , el contenido del registro X,
Y, o Z se increm enta en uno despus de la ope
Espacio de racin; de esta forma el contenido de cualquiera
datos
15 de estos registros, antes del increm ento, ap un
ta a la direccin efectiva del operando.

Espacio de
datos
15
Registro X, Y o Z
15

F ig u ra 3 3 .1 6 D ireccionam iento indirecto de datos con


desplazam iento

Direccionam iento indirecto de datos F ig u ra 3 3 .1 9 Direccionam iento indirecto de datos con


En la fig u ra 3 3 .1 7 , la direccin del operando post-increm ento
se en cu en tra en c u a lq u ie ra de los registros
apuntadores X , Y, o Z. 9. Direccionam iento de cditg o memo
Espacio de
datos En la fig u ra 3 3 .2 0 , el c o n ten id o del re g is
15 0 $00 tro Z se usa com o u n b y te co n stan te de d i
Registro X, Y o Z
recci n . En los 15 b its m s sig n ific ativ o s se
en cu en tra la direccin efectiva (en tre las po
sicio n es 0 y lk ) y con el r m e n o s sig n ifi
cativ o (bitO ) se seleccio n a la o p ci n de cap
tu ra de la p arte b a ja o la a lta d el b y te del
SDF
c d ig o d e m em o ria, a l p o n erse en 0 y 1
Figura 3 3 .1 7 D ireccionam iento ind ire cto de datos resp ectivam en te.

Curso p rctico sobre M icrocontroladores


Lus llLn-uiii-flaiiuiiis /vVLi il1 ti Llis tii RIMLIL

Estructura de los puertos de en trad a y


salida 1/0
El A V R A T 9 0 S 2 3 13 tiene disponibles 15 lneas
de puertos bidireccionales y to talm en te progra-
m ables, que se agrupan en las 8 lneas del puerto
B (PB 0 a PB7) y en las 7 lneas del puerto D
(P D 0 a PD 6).
fig u ra 33.20 Direccionamiento de cdigo de mem oria con constante
1. El puerto B
10 .Direccionamiento indirecto de memoria de PB es u n p u erto I/O b id ire c c io n a l d e 8 b its,
programa to d o s tie n e n re siste n c ia in te r n a de p u ll- u p
En la fig u ra 3 3 -2 1 , el contenido del registro p r o g r a m a b le in d iv id u a lm e n t e , y, a d e m s,
Z se usa para definir la direccin a p artir de la c u e n ta n co n b u ffe r s co n c o rrie n te lim ita d a
cual co n tin u ar la ejecucin del program a. Se cap aces de m an e ja r d ire c ta m e n te d io d o s LED
usa con las instrucciones de salto y llam ado y carg as de h asta 2 0 m A en c o n fig u raci n sink .
(IJM P e IC A L L ), y, en cu alq u ier caso, el re En la f ig u r a 3 3 .2 3 se m u e stra la a rq u ite c tu ra
gistro contador del program a P C se carga con d e l p in P B 0 , m ie n tra s q u e en la ta b la 3 3 .4 se
el contenido de Z. resu m en las fu n c io n es a lte rn a s de a lg u n o s de
sus p in e s .

El registro de datos P O R T B , el de direccio


nes de datos D D R B , y el de los pines de entrada
PIN B conform an los tres registros que nos per
m iten el acceso y la configuracin del puerto B;
todos hacen parte de los registros especiales I/O
y estn representados en la fig u ra 3 3 .2 4 . La ta
Fig ura 33.21 D ireccionam iento indirecto d e m em oria de program a bla 3 3 .5 m uestra las opciones de configuracin
del puerto por m edio de los bits del registro de
1 1 . D ireccionam iento relativo de m em oria de direccin D D R B (b its D D Bx)
program a
En la fig u ra 3 3 .2 2 , O P representa al cdigo 2. El puerto D
de operacin de la instruccin, y la direccin PD es un p u e rto I/O b id ire c c io n a l de 7 b its,
relativa en com plem ento a dos k puede estar to d o s tie n e n re siste n c ia in te r n a d e p u ll- u p
entre -2 .0 4 8 y 2 .0 4 7 . Al ejecutarse el progra p r o g r a m a b le in d iv id u a lm e n t e y , a d e m s ,
m a salta y co n tin a corriendo a p artir de la c u e n ta n co n b u ffe r s q u e tie n e n la c ap a c id ad
direccin efectiva que resulta de sum ar el con d e im p u ls a r h a sta 2 0 m A en c o n fig u ra c i n
tenido del registro P C con la direccin relati sink . En la f ig u r a 3 3 .2 5 se m u e stra la a r q u i
va m s uno (direccin efectiva= PC + k+ l). te c tu r a d e l p in P D 0 , m ie n tra s q u e en la t a
M e m o r ia d e p ro g ra m a b la 3 3 .6 se resu m en las fu n c io n e s a lte rn a s de
to d o s sus p in es.

El registro d e datos P O R T D , el de direccio


nes de datos D D R D , y el de los pines de entrada
PIN D conform an los tres registros q ue nos p er
m iten el acceso y la configuracin del puerto D.
Estos estn representados en la fig u ra 3 3 .2 6 .
Teora

PARA SABER MS:


Dos aspectos importantes de
MOS
PULL-UP los puertos
(R e sis te n c ia in te rn a )
Debido a sus a rq u ite c tu
Q D ras, cuando los p ines del puer
DDBO
C to B o D se co n fig u ra n com o
e n tra d a s y son p u esto s e x te r
I
WD
C/3 na m ente en ce ro , pueden s u
m in is tra r c o rrie n te a tra v s de
RESET
I
LU la s re s is te n c ia s in te rn a s de
O
Q D C/3 p u ll-u p cuando stas p e rm a
PORTBO =
co5
C n e c e n a c tiv a s . N o o lv id e
RL d e s c o n e c ta rla s !.
WP
Por m edio de lo s re g istro s
f de los p in e s de e n tra d a PINB
RP y PIND, se puede leer d ire c ta
m e n te el v a lo r l g ico p re se n
E scritura e n p u e rto B
E sc ritu ra en DDRB
te en todo m om ento en c u a
L ectura del LATCH tW
p u e rto B
L e c tu ra en et p k i Jel -AINO
le s q u ie ra de los pines de e s
p u e rto B
L ectura de l registro ODRB HACIA EL COMPARADOR to s p u e rto s, si estn c o n fig u
F ig u ra 3 3 .2 3 A rquitectura sim plificada de u n p in d e l pue rto B rados co m o e n tra da s. M ie n
tra s que cuando se leen ios re
PIN FUNCIONES ALTERNAS gistros PORTB o PORTD, se a c
cede a los la tc h s e datos de
PBO Entrada positiva del com parador anlogo AINO
PB1 Entrada negativa del com parador anlogo AIN1 cada uno de lo s pines.
PB3 Salida de com paracin e igualacin del TIMER/COUNTER 1, OC1
PB5 Lnea de entrada de datos para descarga de la m em oria, MOSI
Las opciones de co n figu ra
PB6 Lnea de salida de datos para la carga de la m em oria, MISO
PB7 Entrada serial de reloj SCK cin del puerto se pro gram an
Tabla 3 3.4 Funciones alternas de algunos p in e s d e l p u e rto B
por m edio de los b its del regis
tro de d irecci n D D R D (b its
Bit 7 6 5 4 3 2 1 0 D D D x ), d e la m ism a form a
portb? R.STTB6 portbs iw re-1 -xmtb PORTBO
poktsi
que se hace para el puerro B
Lectura'Escritura R/W R/W m i R/W R/W (t/W R/W R/W
Valor inicial 0 0 0 0 0 0 0 0
(ver la tab la 3 3 .5 ).

6 4 1 0
Bit
$17 ($37)
7
DDB6 DDB5
5
DDB4 DDB3
3 2
DDB2 DDB1 I ? j 3 0 D n B
El reset y las
Lectura/Escritura R/W R/W R/W R/W R/W R/W R/W R/W
interrupciones
Valor inicial 0 0 0 0 0 0 0 0 El AVR A T 9 0 S 2 3 13 nos ofrece
Bit 7 6 5 4 3 2 1 0
11 fuentes de in terru p ci n , in
$16 ($36) PINB6 PINB5 PINB4 PINB3 PINB2 PINB1 PiNBO cluyendo al reset. Todos los vec
Lectura/Escritura R R R R R R R R to re s de la s in te r r u p c io n e s
Valor inicial X X X X X X X X
ap un tan, com o en todos los m i-
crocontroladores, a las prim eras
F ig u ra 3 3 .2 4 R egistros de acceso y configuracin d e l pue rto B
p o sicio n es de la m em o ria de

Curso p r ctico sobre M icrocontroiadores


Lu? LiiLnuuuuU'ul.duiL-i? AY 11 dC1 L Lfii: du ZUMEL

DDBx PORTBx
program a que en este caso es
1/0 P u ll-u p C o m e n ta rio s
tn localizados entre las posicio
0 0 Entrada No Estado de alta impedancia (tercer estado Hi-Z)
nes $ 0 0 0 (0 ) y $ 0 0 A (1 0 ).
0 1 Entrada Si Con un cero lgico extemo suministrar corriente
1 0 Salida No Salida en cero (toggle)
1 1 Salida No Salida en uno (toggle) En la ta b la 3 3 .7 se descri
Nota: * puede ser uno d e los pines entre el 0 y 7 ben todas las fuentes de in te
Tabla 3 3 .5 Configuracin de lo s p in e s d e l p u e rto B rrupcin acom paadas por sus
direcciones y niveles de priori
dad. C om o es l gico , el reset
siem pre tiene reservada la posi
cin in icial ($ 0 0 0 ) de la m em o
ria de program as y, adem s, es
la interrupcin con m ayor prio
ridad para la C P U ; en este m i
crocontrolador, la p rioridad a la
atencin de las interrupciones
est organizada lin ealm en te en
orden descendente dentro del
rea de vectorizacin y, por lo
tanto, el vector 11 (el de la in
terrupcin del com parador an
logo A N A _ C O M P ), que es el
m s alto, es el que goza de la
m enor prioridad.

Todas las fuentes de in te


rrup cin de la C P U pueden ser
in d iv id u alm en te h ab ilitad as o
no por m edio de los b its de los
registros de control adecuados
p ara cada una d e ellas; pero, en
c u alq u ier caso, no se debe o lvi
F ig u ra 3 3 .2 5 A rquitectura sim plificada de un p in d e l pue rto D d ar p o ner un uno lgico en el
b it h ab ilitad o r global de in te
Bit 7 6 5 4 3 2 1 0
rrupciones (I) que se encuentra
S12 (S32) ^ 9 P0RID6 PORTO PUHIIM P0RTD3 PORTO P0RID1 PORTO en el registro de estado SREG .
Lectura/Escritura R R/W R/W R/W R/W R/W R/W R/W
Valor Inicial 0 0 0 0 0 0 0 0
1. El reset
Bit 7 6 5 4 3 2 1 0
Las fuentes de interrupcin
$11 ($31) DDD6 DDD5 DD04 0DD3 0 0 D2 0001 0000
Lectura/Escritura R R/W R/W R/W R/W R/W R/W R/W
que generan un ciclo de reset
Valor inicial 0 0 0 0 0 0 0 0 en el AVR A T 90S2313 son in
Bit 7 6 5 4 3 2 1 0 ternas y externas, y son tres:
$10 ($ 30) PIND6 PIND5 P1ND4 P1ND3 PIN02 P1ND1 PINDO
Lectura/Escritura R R R R R R
R R El r e s e t a la c o n e x i n
Valor inicial 0 X X X X X X X
{ p ow er-on -reset). Este ocurre
F ig u ra 3 3 .2 6 R egistros de acceso y configuracin d e l pue rto D cuando la fuente de alim en-
Teora

PIN FUNCIONES ALTERNAS 2 . Las in terru p cio n es externas


PDO
Las in te rru p c io n e s ex tern as son dos y se
Entrada de recepcin de datos de la UART, RXD
PD1 Salida de transm isin de datos de la UART, TXD recib en a travs de los p i n e s I N T 1 e I N T 0,
P02 Entrada de interrupcin externa cero, INTO las dos se h a b ilita n p o r m ed io d e u n fla n
PD3 Entrada de interrupcin externa uno, INT1 co ex tern o c re c ie n te o d e c re c ie n te , , por
PD4 Entrada externa del TIMER/COUNTER 0, TO m ed io d e u n n iv el l g ic o b ajo ; estas co n
PD5 Entrada externa del TIMER/COUNTER 1,T1
d ic io n e s se p ro g ram an p o r m e d io d el re
PD6 Pin de entrada de captura del TIMER/COUNTER 1, ICP
g is tro d e c o n tr o l d e l m ic r o c o n tr o la d o r
Tabla 3 3 .6 Funciones alternas de los pin e s del pue rto D
M C U C R , tal com o se m u e stra en las ta
b las 3 3 .2 y 3 3 .3 .
tacin V cc cae por debajo d el u m b ral de se
gu rid ad del m icrocontrolador, el cual est de C o m o y a se h a d ic h o , la h a b ilita c i n g lo
finido com o V pot, y para el que se m uestran bal de las in te rru p c io n e s se e fe c t a co n el
los valores tpicos en la ta b la 3 3 .8 . b i t 1 d el reg istro d e e stad o , pero la h a b ili
ta c i n d e c a d a in te r r u p c i n e x te r n a de
El reset externo. Este ocurre cuando se ap li m an e ra in d iv id u a l se lo g ra p o r m ed io de
ca un nivel l gico bajo en el pin de entrada los re g istro s G IM S K y G 1FR , q u e recib en
del reset (R E SE T ), d u ran te al m enos 50ns. los n o m b res d e : m scara de in te r ru p c io
nes g en e ra le s y b a n d e ra s de in te rru p c io n e s
El reset d e 1 tem porizador del perro-guardin g en e rale s. A c o n tin u a c i n se d e sc rib en es
(w a tch d o g ). Este se d a cuando el temporizador tos dos reg istro s.
del perro-guardin est habilitado y su tiempo
se cum ple; el usuario puede seleccionar el uso El registro m scara de interrupciones
de este temporizador si lo program a utilizando g enerales GIMSK
el fusible lgico de program acin de la memo En este registro se en cu en tran h ab ilitad o s para
ria FLASH , llam ado F ST R T . el u su ario so lam en te los b its 6 y 7 , d en o m in a
dos INTO e I N T l, y, p o r m edio de ello s, se
N o ta: despus del re s e t , todos los registros h a b ilita n las in terru p cio n es externas 0 y 1 res
especiales I/O son puestos en su valor in i p ectivam en te (asociadas co n las en trad as INTO
cial, y el contador del program a (P C ) se e I N T l) , cuan d o se colocan en uno lgico. En
carga con la direccin de origen ($ 0 0 0 ). la fig u ra 3 3 .2 7 se m uestra el registro G IM SK .

D ire c c io n e s
V e c to r N de M e m o ria F uente de D e fin ic i n de la s in te rru p c io n e s P rio rid a d
de p ro g ra m a in te rru p c i n

1 $000 RESET Pin externo de reset, del reset a la conexin (POR) y del watchdog m m m
2 $001 INTO Solicitud de interrupcin extema cero (pin INTO)
H
3 $002 INTl Solicitud de interrupcin externa uno (pin IIMT1)
4 $003 TIMER1 CAPT1 Evento de captura del TIMER/COUNTER 1
5 $004 TIMER1 C0MP1 Evento de igualacin con el TIMER/COUNTER 1
6 $005 TIMER1 0VF1 Sobrepasamiento del registro del TIMER/COUNTER 1
7 $006 TIMERO 0VF0 Sobrepasamiento del registro del TIMER/COUNTER 0
8 $007 UART, RX Recepcin completa (RX) de la UART
9 $008 UART, UDRE Registro de datos de la UART vaco
10 $009 UART, TX Transmisin com pleta (TX) de la UART
11 $OOA ANA_C0MP Comparacin anloga Baja

Tabla 3 3 .7 Tabla de vectorrzacin de l AVR AT90S2313

*
Curso p r ctico sobre M icrocontroladores ^ M /K /n n i # 3 i 7
Luis UlLHUinmUEUlls AV'li El- ti .Ei l- /ilMEL

S m bolo P arm etro M in Tpico M ax U nidades


Voltaje ascendente del umbral del reset a la conexin 1,0 1,4 1,8 V
VpOT
Voltaje descendente del umbral del reset a la conexin 0,4 0,6 V
VRST Umbral de voltaje del pin externo de reset (RESET) - - 0,85VCp V
W in Periodo de retraso en el tiem po de salida del reset, cuando el fusible FSTRT no se programa
W uT Periodo de retraso en el tiempo de salida del reset, cuando el fusible FSTRT se programa 0,25 0,28 0.31 ms
Nota. Todas la s c a ra c tre is tic a s conresponden co n un vo lta je d e a lim e n ta c i n V ^ . = 5 ,0 V Tabla 3 3 .8 N iveles d e seguridad del re set a la conexin y
parm etros de l re set

Bit
Reset in ic ia l d e l m ic r o c o n t r o la d o r c u a n d o e s t s u je to a Vcc
S3B |S5B) IGIMSK

L ectura/E scritura R/W R/W vcc ______


V alor in ic ia l o 0

Figura 3 3 .2 7 El registro mscara de interrupciones generales GIMSK

El registro bandera de interrupciones W TERNA.


RESET

g enerales GIFR feset in ic ia l d e l m ic r o c o n t r o la d o r c o n tr o la d o e x te r n a m e n te

En este registro se encuentran habilitados para el y ^ V*OT


usuario n icam en te los b its 6 y 7, que se deno 7
m in an las banderas de las in terrupcion es exter
nas INTFO e IN T F 1, y, por m edio de ellos, se
inform a el estado de las so licitudes de las in te
rrupciones externas 0 y 1, respectivam ente. Es "~l_
tos dos bits se borran autom ticam ente cada vez
Fig ura 3 3 .2 9 Diagram a de tie m p o s d e l re s e t a la conexin
q ue la rutin a de la interrupcin adecuada se eje (start-u p) de!A T90S 2313
cuta (luego de la instruccin de retorno de una
interrupcin R E T I); y, alternativam ente, pueden Reset e x te m o d e l m ic r o c o n t r o la d o r d u r a n te la o p e r a c i n
vcc
ser borrados por m edio del softw a re al escribir d i
rectam ente un cero en ellos. En la figu ra 3 3 .2 8 se f T

m uestra el registro G IFR y sus bits bandera.


TTME-OUT
T |*------- *TOUT -------

Bit
$3A (S5A) INTF1 INTFO GIFR
TER N A L
Lectura/Escritura R/W R/W RESET

Valor inicial 0 0
F ig u ra 3 3 .3 0 Diagram a de tiem pos d e l re set externo durante la
F ig u ra 3 3.28 El registro bandera de Interrupciones generales GIFR
operacin delA T90S 2313

D ia g ra m a s de tie m p o s de los e sta d o s En la ta b la 3 3 .8 se resum en los p arm e-


de re s e t tros m s im p o rtan tes y q u e co n d u cen a un re-
En las figuras 3 3 .2 9 y 3 3 .3 0 se m uestran las con- s e t segu ro ; a ll se m u estran los valores tp ico s,
diciones propias de los dos estados de reset a la m n im o y m x im o d e l u m b ral d el v o ltaje de
conexin P O R (p o w er-o n -reset), que se dan cuan- d isp aro y los tiem p o s de resp uesta q u e defi-
do se in icia el m icrocontrolador por m edio de la nen las c o n d icio n e s d el r eset , tan to in tern o
fuente de alim entacin V cc (start -u p - co n d itio n ) com o extern o . En e l caso d el r eset ex tern o , no
y tam bin se m uestra el diagram a de tiem pos pro- se debe o lv id ar q ue el n ivel VRST d eb e ser ap li-
po del reset externo cuando ste se ejecuta duran - cado p o r 5 0 n s com o m n im o p ara q u e la C P U
te la operacin norm al de la C P U 2 3 1 3 . p u ed a v a lid a r su co n d ici n .

& M 1K <H T Curso prctico sobre M icrocontroladores


ndice g e n e ra l

iduccpon g e n e r a l............... ......................................................... ...................................... El B A SIC S ta m p I ......................................................... ......................................................... ......61


Introduccin a los m crocon tr a ta d o r e s ................ ................................................ El B A SIC S tam p II ..................................................................................... .......................... ......b>
Los m icroprocesadores ............... ...................................................................................... ........ 4 7 El o scilad o r y e l circuito- d e r e im c ia l a c i n {r e s e t ) e n los
Evolucin hist rica de los m icro p ro cesado res....................................................... .........5 m icro co n tro lad o res PIC ............................... ............ ................ ....................
Los m icroprocesadores actuales ............................................................................ ........ 8 El circu ito o s c ila d o r ........... ................................................................................................... ...... 66
Los m ic ro p ro c e sa d o re s ........ .................... ............................................................. O sciladores basados en cristal o en resonadores c e r m ic o s ................................ .......6 7
El m icroprocesador, corazn de las c o m p u tad o ras.............................................. .........10 C ircuiro d e rein icializacin ( r e s e t ) ................................................................................... ......<38
Funcionam iento- del m icro p ro cesad o r....................................................................... .........11 R ein icializacin a l encendido (P o w er O n Reset-. P O R ).......................................... ...'.'.69
O rganizacin interna d e un m icro p ro cesad o r........................................................ .........13 T em porizador O al. ...V..IUIUV
encendido (\*P o w e r L/ IJti iT.im r/Ker-J 4A PWR'FI
VVl\ 1 .............................. 7o
O peracin b sica de un m icroprocesador ................................................................ .........13 lem porizad or d e oscilacin a l encendido ( O S T ) .............. ..... 7/0u
E structura d e bases d e u n m icroprocesador ............................................................ ........ 15 Secuencia seguida a l alim en tar el sistem a .............................. .............................. . ...... 71 /i
El bus d e direcciones. Espacio d e m e m o ria ............................................................. . 16 R ein iri alizar ln pn u ri m
rad
ia da rncu id la aiuiicnuiLUi
alim/*nr-ir4r<i \DrvWri-\Jul( Daat-
neS D Uivj> .... ...... /7I1
ci. ROP
El bus de c o n cro l...................... .................................................................................. . .........17 Registro de control de potencia (P o w er C ontrol-. P C O N ) .................................. 79
O rganizacin de un sistem a basado en un m icropro cesador.......................... .........17
Secuencia de operacin de un sistem a basado e n un m icroprocesador .... ......... 18 A rq u itectu ra H arvard ........................................................................................................... ......7 4
Secuencia d e operacin de u na in stru c c i n ............................................................. ......... 22 Instrucciones de palabra sencilla ( S in g le w o r d ) ......................................................... .... 7 4
Fase de b sq u ed a................................................................................................................. ........ 23 M anejo d e las in stru cciones ( P ip elin e ) ........... .............................. .............................. ..... 7/ 4*
D ecodificacin d e u n a in stru c c i n ................................ ............................................ ........ 24 Conjunto- reducido de instrucciones .............................. ...................................... ..... 75/j
E jecucin de u na in stru ccin ........... .................................................... ....................... ........ 24 E structura in tern a d iv id id a e n registros ........ ............................................................. ..... 75 /j
Puertos de enerada y s a lid a .................. ............................... ............................................ ........ 2 5 Instrucciones ortogon ales (sim tricas) ....................................................................... .... 75
El circuito de soporte 8 1 5 5 (I/ O -R A M )............................................... ........ 2 6 El ciclo- d e in str u c c i n .................................................................................................. .... 7 6
Acceso a los p u erto s............................................................................................................. ........ 2 7 Form ato general d e u na in stru ccin _ 76
D iseo d e u n sistem a m n im o con 808 5 y 8 1 5 5 .................................................. ........ 2 8 R elo j d e las in stru ccio n es.................................................................................................... 76
D iseo d e la tarjeta p ro cesad o r*........... ....................................................................... ........ 2 8 C o n ju n to (set) d e instrucciones ............ 77
El circu ito d e r e lo j................................................................................................................ ........ 3 0 La A L U y la C P U .................................................................................................................... ..... 7/7/
El circu ito d e re s e t............................................... ................................................... ............. ........3 0 U nidad aritm tica l gica (ALU) ...................................................................................... ..... / j
Los buses d e datos y d ire c c io n e s ............................................................................... ... ........30 El registro d e e s t a d o ........................................................................................................ ...... '7*) y
El bus de c o n tr o l.................................................. ................................................................ ........31 El registro O P C I O N ................................ ........................................................ 80
i.... ou
D iseo de la tarjeta p ro g ra m ad o ra .............................................................................. ........31 9 La m em o ria e n lo s m icro co n tro lad o res PIC...................................................
N otas finales ......................................................................... .................................................. ........3 2 El contad or d e p ro g ra m a ............................................................................... ..... 82
Los m ic ro c o n tro la d o re s....................................... ................... ................... ................... La m em oria d e p ro g ra m a ................................................................................................... ..... 82
Sistem as m icrocont ro la d o s ..................................................................................... . .3 5 La m em oria d e d a t o s ...................................................................... 87
..... O/
D iferencias en tre sistem as basados en m icroprocesador y en 10 La EEPROM d e d a to s e n lo s m icro co n tro lad o res P IC ......................................... .... 91
m icro co n tro la d o r.................................................................................................................. .........3 7 M em orias E E PR O M internas ........................................................... .......... ................... .... 9 2
U n m icrocontrolador para cada g u sto ................................................ ........................ ........3 9 C ic lo de le c tu r a .................................... . .... 9 3
Principales fam ilias de m icro co n tro lad o res..................................... . ...............................4 0 C ic lo de e s c r itu r a .......................................................................... ....
L a fam ilia In tel 8051 ................................................................................ ........4 0 M em orias E E PR O M se ria le s .............. .... 95
M o to ro la................................................................................................................ ................... ....... 4 0 Ejem plo d e aplicacin .......................................................................................................... .... 9 6
M ic r o c h ip .................................................................................................................................. ....... 41 11 In terru p cio n es e n lo s m icro co n tro lad o res PIC ............................................ .... 97
A rm e l........................................................................................................................................... ....... 4 2 Interrup cin externa .............................................. ............................................................ .... 1100 UU
Los m icro co n tro lad o res PIC ............ ......... ......... ...................... . E jem plo d e in terrup ci n e x te r n a ............................................................................ .... 102
H erram ientas d e d esa rro llo ............ .............................................................................. ....... 4 4 1nlz-rnini'l A n n n r /n i, n nin U 11
iiiic iiu p iiu n c s por camDio en u n pin i\D ....................................................... . .... t1mU2
A rq u itectu ra de los P IC ...................................................................................................... ....... 4 4 Problem as com unes al trab ajar con in te rru p c io n e s ..................................................... 103
El n c le o .................................. ................................................................................................. ....... 44 C o m en tario s fin a les........ ....................................... .......... ......................... .... 1104Cet
Los perifrico s.......................................................................................................... .............. ....... 45 12 L os tem p orizado r e s e n lo s m icro co n tro lad o res P IC ......................................... .... 105
C aractersticas esp eciales..................................................................................................... ....... 4 6 T em porizador 0 ( TwnerQz T M R 0 ) .................................... .............................................. 106
V ariedad d e los disp o sitiv o s.............................................................................................. ....... 4 7 El prescalad or.................................... ............................................................................ .......... 108
V ariedades d e m em oria .............................................................. .................................... ........47 El T im er2 .... in o
EPRO M .............................................................................................. ....... 4 8 El Tinter\ ............................ .................................................................................................. .... 1110 IU
R O M ............................................... .................................... ....... 4 8 D escripcin d el T itner\ ..................... .............................................. ............................. . .. .. 11 i i iI
M em oria F la s h ..................................... ......................................................................................... 4 8 13 M dulos CCP (cap tu ra/ co m p araci n / P W M ).................................................. .... 113
O pciones de rango d e voltaje de o p era ci n .............................................................. ....... 4 8 M o d o d e com paracin .............................................. .... 114
Variedades d e encapsulado ............................................................................................... ....... 4 8 M o d o d e c a p r u r a ...................................................................................................................... .... 116
Dispositivos borrables con lu z u ltra v io le ta................................................................ ...... 4 9 M o d o d e P W M .......................................................................................; ................................................................................................ .... 118
Dispositivos program ables u n a vez (O n e-T im e-P r o g r a m m a b le: O T P )....... . . . . . . 4 9 C iclo til de la P W M ....................................................................................................................................................................... .... 120
Dispositivos F L A S H .................................................................................... ................................... ........... 4 9 C on figuraci n de la P W M .................................................................. .... 170
1V
Dispositivos E E P R O M ......................................................................... ............................ ........... 49 14 Introduccin a la s co m u n ica cio n es s e r i a l e s ......................................................................................... ... 121
D ispositivos R O M ........................................................................................ ....... 49 T ransm isin sin c r n ic a ....... ................................................... .................... . .... 1i j
DIE ......................................................................................................................................................................................................................... ...........49 T ransm isin no sin c r n ic a ........................................................................................................................................................ .... 124
Servicios especiales ......................................................................................................................................................................... ...........4 9 C om u n icacio n es seriales no sincrnicas 124
Program adores y entrenadores ( T ra m en ,) ..................................................................................................... ........... 50 Protocolo serial no sincrnico ..................................:...................................................................................................... .... 125
El can al d e c o m u n ic a c i n .................................................................................................... .... 126
La fam ilia H C 0 5 ................................................................................................................................................................................. .......52 El estn d ar R S -2 3 2 ............................. ............................................................................................................ 126
La fam ilia H C 0 8 ............................................................................................................................................................ .......... 53 C aractersticas elctricas ..... . ... 177
1 . /
La fam ilia H C 1 1 ................................................................................................................................................................................. ..........54 El c d igo A S C I I ........................................................................................................................................................................................ .... 1I 78O
La fam ilia H C 1 2 .................................................................................................................................................................................. .......54 C.<1m i m irarl n nn sin rr n ira e n m irrn fn n rrn lid n re .. 129
La fam ilia H C 1 6 ................................................................................................................................................................................. ..........55 C om u nicacin h a lf-d u p le x ......................................................................................................................... . . 131
La fam ilia N cleo M (M C O R E ) ............................................................................................................................. ..........55 Recepcin h a lf-d u p le x ........................................................................................................................................................................ 131
La fam ilia M P C 5 X X ........................................................................................................... . 55 T ransm isin h a lf- d u p le x ...... 1 33
La fam ilia 6 8 3 X X .................................................................................................................. .......5 6 4A n lirarm n de * las
ru
. u ,tin
...d asj di* ViV rrerncii^n
IVVVL1VIUI1 v Vde V1V rransmUOUJJlllJlUlI istnn nn cfnrrA nie ............ 1 33
1117 71IIV-1V1US4.
Sistem as d e d esarro llo .......................................................................................................... .......5 6 C o m u n icaci n serial j u ll- d u p le x .......................... ............................................................... . 135
L os m icro co n tro lad o res Intel, Atm el y B a sic S t a m p .......................................... E jem plo d e aplicacin de las s u b ru tin a s.............................. ................................... . .1 3 8
M icrocontroladores I n te l............................................................................................ ...............58 M d u lo U SA R T d entro del c h i p ....................... ............................................................... . 142
N cleo 8051 ............................................................................................................................. .......58 Transm isin p o r m ed io d e la U A R T ...... .1 4 4
M icrocontroladores A tm e l......................................................................... ........................ ..........59 Recepcin por m edio de la U A R T .............................................. ............................................... .1 4 4
B asados en a rquiteccuta 8 0 5 1 ........................................................................................................................................... .. . . . 6 0 E jercicio d e co m u n icaci n fu ll- d u p le x ......... 146
A T 91 A R M T h u m b .............................................................................................................. ...... 6 0 C om u nicaciones seriales sincrnicas ............................................... ........ . 146
M icrocontroladores A V R .................................................... .................... ................... .......6 0 Protocolo serial sin cr n ic o ...... 149
M icrocontroladores BASIC S ta m p ...................................................................................... 6 0 D ispositivos perifricos com unes en la co m u n icaci n serial sincr nica ........ . 149

Curso prctico sobre M icrocontroladores m u & riL *


L iu ite e O LH ia-dl

Estndares d e la com unicaci n scriaJ sincr nica ......................................................... 149


El bus I 2 C ................................................................... 150 El m d u lo C O P { co m p u ter o p e r a t m g p r e p e r t y ) ............................................................. 226
Bus S P I .................... .................................................................................. .................................... 150 Funciones d el m dulo C O P .......................................................................................... 227
Interfaz M ic r o w J r e ............................. . ....................................... .......................... 150' Las seales d el m d u lo C O P ................................................................................................. 227
El bus I 2 C ................................................................................................... 150 El m d u lo in h ib id o r por volatje b ajo LVl {lous v o lta g e in h ib ito r } ..................... 228
Especificaciones del bus I 2 C ................................................................................... 151 Registros de control d el m d u lo LVl (C O N F IG 2 y C O N F IG 1) ............. 229
El m dulo d e in terrup cion es para teclado KBI ............................................................ 229
C aractersticas del convertidor A D .......................... ......................................................... 1 56 D escripcin d el m d u lo KBI ............................................................................................... 230
C aractersticas de funcion am ien to del conversor A/D ......................................... 157 R egistro de estad o y co n tro l del m dulo K BI (K B S C R )........................................ 231
U tilizacin del convertidor A / D ................................ ..................................................... 159 R egistro h ab ilitad o r de las in terrup cion es del
m d u lo KBI (K B IE R )................................................................................................ ............. 231
El tem p orizado r w a t c h d o g ( W D T ) ........................... 162
La palabra d e configuracin ............................................. 163 El m dulo d e conversin anloga a d ig ital A D C .......................................... 234
O peracin del w a r c h d o g ....................................................... 164 D escripcin d el m dulo A D C .................. 235
M odo sleep ......................................... 165 Voltaje de conversin A D C V 1 N .......................................................................................... 235
D espertando del m odo s l e e p ..................................................... 165 T iem p o d e c o n v e rsi n ................. 235
M odo d e conversin c o n tin u a .............................................................................................. 235
La fam ilia 6 8 H C 0 8 .................................................................................................................... 171 Las in terrup cion es del A D C .................................................................................................. 236
A rq u itectu ra d e los m icrocontroladores M o to ro la ...................................................... 173 R egistros de configu raci n del m dulo A D C ............................................................... 236
El n cleo d e procesam iento .............................................. 173 El m dulo d el sistem a de in tegracin SIM .................................................................... 237
El sistem a de m em oria ......... 174 Fuentes internas de interrup cin d el r e s e t ............................................................. 238
Los m dulos perifricos in te r n o s ........................................................................-............... 176 El reset a la conexin d e la alim en taci n P O R ............................................. 239
A signacin d e pines en los m icrocontroladores 6 8 H C 0 8 ........................................ 176 El reset por c d igo d e operacin ilegal ........................... 239
18 L os p u erto s d e los m icTor.ontroladores HC08 d e M o to ro la ..........................177 El reset por d irecci n ilegal .............................................. 239
D escripcin d e los pines y sus fu n cio n es ............................................................... 178 El reset d e los m d u lo s C O P y L V l.................................................................................... 239
Los puertos de en trad a y salida (l/ O )................................................................................ 180 Los registros de estado del m d u lo S I M .................. ....................................................... 239
El p u erto A .............................................................................................................................. 180
El p u erto B ..................................................................................................................................... 181 El f l M d 6 8 H C 0 8 ................................................................................................................... 2 42
El p u erto D ..................................................................... ............................................................... 182 F unciones del T IM ............................................................ 243
19 El o scilad o r y e l r e s e t , en los m icro co n tro lad o res HC08 de M o to ro la 185 El m od u lad or P W M .......................................... 244
El m dulo in tern o del oscilador ( O S C ) ........................................................................... 186 R egistros de en trad a y salida d el T I M ................................................................... 244
El m dulo oscilador con cristal XTAL (subfam ilia 6 8 H C 0 8 X X X ) .......... 186 L es m icro co n tro lad o res BASIC S t a m p ...................................................... 249
M du lo oscilador con red RC (su b fam ilia 6 8 H R C 0 8 X X X ).................................. 187 El BASIC S tam p I ....................................................................................................................... 250
Seales d e relo j in tern as............................................................................................................ 188 D istribucin de pines d el B A S IC Stam p I ............ ........................................................ 251
C aractersticas elctricas d e los m dulos osciladores ................................................. 189 A rq u itectu ra d el B A SIC Stam p I ......................................................................................... 252
El reset e n los m icrocontroladores M otoro la 6 8 H C 0 S ............................................. 189 El regu lad or interno y la tarjeta de prototipos del B A SIC Stam p I 252
C on diciones in iciales establecidas por m edio d e l ciclo de r e s e t ............................ 19 0 M ap a de m em oria disp o n ib le p ara el u s u a rio ........................................................... 252
Fuentes d e in terrup ci n del r e s e t.......................................................................................... 192 C o n tro l d e los puertos d el BASIC Stam p 1 ................................................................ 253
20 0 rg a n i 2n(:in d e la m em o ria en lo s m icro co n tro lado res Program acin d el B A SIC S tam p 1 ............... 253
C o n ju n to de instrucciones resum idas d el le n g u a je PBA SIC ............................ 254
O rganizaci n de la m e m o r ia ................................................................................................. 194
Asignacin de registros dentro del rea d e m e m o ria .................................................. 194 C o n ju n to de instrucciones d el lenguaje PBA SIC del
T abla de vectores ......... 198 BASIC Stam p 1 ................................................... ........................................................................ 258
M em o ria de datos d e lectura y escritu ra R A M ............................................................. 198
M em o ria de program a d e solo lecrura R O M ................................................................ 198 El B A SIC S tam p II .................................................................................................................... 270
M em o ria R O M del program a m o n ito r (M O N ) ......................................................... 198 D istribu cin d e pines del B A SIC Stam p 11...................................... 270
Acceso al m odo m o n ito r ................................ 200 A rquitectura d el BASIC Stam p I I ......... 271
Vectorizacin en el m odo m o n ito r ........................................................................ 201 La tarjeta d e prototipos d e l B A SIC S tam p I I ................................................................ 271
V elocidad d e com unicaci n del m odo m o n ito r .................................... ......................201 M ap a d e m em oria dcL B A SIC S tam p I I .......................................................................... 272
Form atos bsicos d e co m u n icaci n d e l m odo m o n ito r ............................................. 201 C o n fig u raci n d e los pu erto s I/O d el B A S IC Stam p II ......... 272
C om andos del m oni c o r ..............................................................................................................2 0 2 Program acin d el B A SIC Stam p 11 .................................................................................... 273
21 EJ m dulo DMA y lo s m o d o s d e d ireccio n am ien to en Instrucciones d e l len gu aje PBA SIC 2 ................................................. 273
los m icro co n tro lad o res S8HC08 ......... 203
Acceso d irecto a m em oria (D M A )........................................................................................ 204 Los m icrocontroladores In re l................................................................................................. 278
El m du lo D M A 0 8 ............................................................................... 204 A rquitectura bsica d e los m icrocontroladores 8051 ................................................. 278
O peracin d el m dulo D M A 0 8 ............................................................... 205 D escripcin de pines d e l m icrocontrolador 8051 ...................................................... 279
C aractersticas resum idas del m dulo D M A 0 8 ............................................................ 206 O rganizacin de la m em oria e n el 8051 ....................................... 280
Registros d e control y estado del m du lo D M A 08 ................................................... 206 M em oria de p ro g ra m a ............................................................................................................... 281
Los modos de direccio n am ien to en la fam ilia H C 0 8 .............................................. 209 M em oria de d ato s .............................................. 281
D ireccio nam iento in h e re n te .................. ..............................................................................- 210 1-1 reset e n lo s M C I : 8051 ...................................................................................................... 284
D ireccio nam iento in m e d ia to .................. 210
D ireccio nam iento d ir e c to ............................................................................................ - 211 Los puertos d e l M C U 8051 ............................................................... 286
D ireccio nam iento e x te n d id o ...................................................................................................211 Los tem porizadorcs-coniadorcs (trm er s 0 y 1) d el M C U 8051 ............................ 288
D ireccio nam iento in dexado , sin d e sp la z a m ie n to ..........................................................212 M odos d e operacin de los t m e n 0 y 1 ........................................ 288
D ireccio nam iento in dexado , con desplazam iento d e 8 b i t s ..................................... 212
D ireccio nam iento in dexado , con desplazam iento d e 16 b i t s ................................. 2 1 2 In tro d u c ci n .................................................................................................................................. 292
D ireccionam iento del S P ( s ta c k p o in te r ). con desplazam iento d e 8 b its .......... 213 Las in terrup cion es d e l M C U 8051 .................................................................................... 292
D ireccionam iento del SP. con desplazam iento d e 16 b i t s ....................................... 213 Vectorizacin d e las in terru p cio n es .................................................................................. 293
D ireccio nam iento re la tiv o ....................................................... 213 O rden d e priorid ad de las interrupciones ............................................................. 294
D ireccio nam iento d e m em o ria a m em oria, in m ed iato a d ir e c to ........................... 214 Interrupciones internas d e los t im e r 0 y 1 .................. .......................................... 296
D ireccionam iento d e m em o ria a m em oria, directo a d ir e c to ..................................2 1 4
D ireccionam iento d e m em o ria a m em oria, indexado a El U A R T del m icrocon trolador 8053 ............... 298
directo co n in c re m e n to ....................... 215 C on figuraci n d e la velocid ad d e c o m u n ic a c i n ................................................ ........ 298
D ireccionam iento d e m em oria a m em oria, directo a M O DO O de c o m u n ic a c i n .......................................................................................... 299
indexado co n in c re m e n to ...................................................................................... 215 M O D O l d e c o m u n ic a c i n ............................................... 301
D ireccionam iento indexado con in crem ento p o s te rio r ............................................. 2 1 5 M O D O S 2 y 3 d e c o m u n ic a c i n ............................ 301
D ireccionam iento indexado con o ffset d e 8 b its c
in crem en to p o ste rio r................................................................ 216 A T M E L ........................................................................................................................................... 306
El m icrocontrolador A T 9 0 S 2 3 1 3 de la fam ilia A T 9 0 .......................................... 306
P rocesam iento d e interrupciones en la C P U 0 8 ...................................... 218 D escripcin d e pines d el A T 9 0 S 2 3 1 3 ............................................................................... 306
R econo cim iento d e La fuen te de interrup cin .................................... 218 A rq u itectu ra del A T 9 0 S 2 3 13 ............................................................................................... 307
E valuacin del nivel d e prio rid ad (a r b itr a je )................................................................. 219 O rganizacin de la m em oria ......... 307
A lm acenam iento del estado actual del m icro co n tro lad o r......................................... 220 M odos d e direccionam iento d e d atos y p ro gram as....................................... 312
E nm ascaram iento y an id am icn to d e las in terru p cio n es...................... 220 Estructura de los puertos d e en trad a y salid a I/ O ....................................................... 314
R etorno de la in terrup ci n ( R T I ) .................................................................. 222 El reser y las in terrup cion es ...................................................... 315
M d u lo d e interrup cin externa (I R Q ).................................................... 222 El registro m scara d e in terrup cion es generales G IM S K ........................................ 317
P in d e in terrup ci n externa (I R Q l) El registro bandera de in terrup cion es generales G IFR ............................................ 318
R egistro de estado- y control de la in terrup ci n I R Q (I N T S C R ).......................... 224 D iagram as d e tiem pos d e los estados de r e s e t ................................................................ 318

Curso p r ctico sobre M icrocontroladores

Vous aimerez peut-être aussi