Está en la página 1de 329

Curso práctico sobre

( Teoría, Programación, Diseño, Prácticas 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 ACIÓN y 8 a la s e c c ió n d e PRO YEC TO S. Teléfonos
(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 ACIÓN
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 Teléfonos: 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 ráctica 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 Hernán Alvarez
GercmeComcrcial:
M otorola, M icrochip, PIC, Intel, Atm el, P arallax. Zilog, Phillips, so n mancas registradas d e MárceteAlvarez H.
las diferentes em presas e n los Estados Unidos y en otras países. O tras productos y ncm in e s d e DirectorEditorial:
com pañías m encionadas e n esta obra p u ed en ser mancas registradas d e a i s propietarios. Manuel Felipe González G.
Circulación Internacional:
Humberto Real Blanco.
Este curso lia sido elaborado según el plan del editor y de sus autores, y
Ixijo su responsabilidad, por los siguientes integrantes del Autores
departamento técnico d e CEKIT S.A,
JUAN ANDRÉS CASTAÑO W.
Distribución Internacional MANUEL FELIPE GONZÁLEZ 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.
9°O092) B u e n a s A ir e s . Disi I n t e r io r : DISTRIBUIDORA BERTRAN S.A.C. - Av. Vélez 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 á : Diseño carátula: 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. Diseño: Gloria Marcela Gómez G.
- UruguaycDISTRIBLlDORA CARF.AGA Diagramación: Héctor 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 técn icas en C olom bia
Todos los derechos reservados. Prohibida su
CEKIT S.A. reproducción 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 : EDICIÓN 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 ascícu 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 práctico sobre

MICROCONTROLADORES
Teoría. P ro g r a m a c ió n . Diseño. P rác 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­
gía de los M icrocontroladores, una de las que
más han cam biado el mundo en los últimos años
y gane mucho dinero. Estos pequeños cerebros
electrónicos 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 comunicación de hechos y datos entre
personas y objetos formando la red del conoci­
n este curso incluimos los principios teóri miento, base de la economía del nuevo milenio

E eos, los fundamentos de su programación,


una gran cantidad de actividades prácticas y
proyectos completos para ensamblar.
t vÍÉk' 1
Capacítese y form e parte activa de la nue­
va economía.

Las personas con buenos conocim ientos de


Los m icrocontroladores son los elem entos bá­ esta tecnología, tendrán muchas oportunida­
sicos y fundam entales de una nueva revolución, des laborales o podrán fabricar sus propios
la interconexión de todo con todo en una red aparatos en forma industrial, lo que puede
m u n d ial de inform ación 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 fascícu 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 fácil 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: Teoría Tomo 2: Programación 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 )
Lección de la
sección _

Fotografías

Número de
página
•—
Los siguientes son los principales temas
tratados en esta sección:
Introducción a los microprocesadores
Introducción 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 ría, se e stu d ia n los Estuctura básica 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 rganización 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 Comparación/Captura/PW M
El puerto serial síncrono 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 configuración
los d iferen tes asp ecto s técn ico s d e esta Programación 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 Programación
T o do ap arato o p ro yecto con m ic ro co n tro lad o res incluye, además 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 según 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:
Programación de un microcontrolador
Diagramas de (lujo El ciclo de desarrollo de un programa
Herram ientas de softw are
Programas
Programación en modo inmediato
— ip - Programación orientada a registros
_______
Control de flujo de un programa
11 ^ Puertos de entrada/salida
Explicación de
los programas ssgnrar Subrutinas
raitiaa Interrupciones
* ÜBW --------- Programación en lenguaje estructurado
Temporizadores
Programación serial
Programando los conversores A/D y D/A
Programación en lenguaje C

SÜ 3E n de proyectos Tópicos avanzados de programación

En esta im portante sección del curso, se entrega


Indicador binario de 4 bits una am plia inform ación con la cual el alum no
Alarm a para el hogar y el automóvil podrá ensam blar una buena cantidad de proyec­
Reloj digital y calendario tos. Para cada uno de ellos se incluye la teoría 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 ­
Activación de aparatos vía telefónica blaje y el listado del program a.
Temporizador universal
Aviso luminoso con diodos LED
Luces rítmicas
C onvertidor paralelo-serial
Punta lógica
Temporizador m iniatura
Frecuencímetro
Generador de señales
Programador de memorias
Adquisición de datos en 16 bits
M inirobot con microcontrolador
Adquisición de datos por el puerto
serial
Tarjeta I/O para el puerto serial
y muchos otros... Diagrama de bloques Diagrama esquemático
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 tecnología 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
Ingeniería y Tecnologías:
• E lectró n ica
• E léctrica
• M e c á n ic a
• S iste m as
• B io in g e n ie ría
• 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

Técnicos 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 didáctica de é m M ##


/n uñs 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, técnicos, profesionales y en general
a la comunidad técnica internacional, una nueva obra didáctica en el campo de la electró­
nica con el estilo propio y la metodología de “Aprender haciendo” que nos ha caracteriza­
do por tantos años. Se trata del C urso p r á ctico so b re MICROCONTROLADORES, el
cual tiene como objetivo principal dar a conocer y enseñar, de una manera fácil y
agradable, esta maravillosa tecnología.

Los microcontroladores, que pueden considerarse como una microcomputadora


en un sólo empaque, han perm itido un avance sin par en los últim os años en el diseño
y la fabricación de todo tipo de aparatos y aplicaciones electrónicas. Haciendo un símil
con el ser humano, podemos decir que un microcontrolador es un pequeño cerebro
electrónico 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 información de teclados, interruptores y sensores, entre
otros, y secciones para activar elementos externos como motores, relés, indicadores
sonoros, pantallas, etc.; todo esto coordinado por medio de un programa o conjunto
de instrucciones.

N unca antes, en la historia de la electrónica, un componente había permitido


tanta creatividad y desarrollo de productos de una forma tan fácil, en tan corto tiempo
y a costos tan reducidos. Con los microcontroladores es posible diseñar y fabricar casi
cualquier aparato que se nos ocurra; el lím ite está dado sólo por la im aginación y
nuestra capacidad de hacerlo.

Aunque el tema parece difícil y complejo, realmente no lo es y para demostrar lo


contrario, lo iremos explicando paso a paso en un lenguaje simple acompañado 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 tecnología, se requieren conocimientos de Electrónica D igital, de los siste­
mas de num eración, especialmente del sistema binario y hexadecimal, y nociones bási­
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 mayoría de los aparatos electrónicos 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 pequeña 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 práctico 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 utilización de los microcontroladores en siste­
mas de control y en el diseño 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 enseñarles a nuestros lectores cómo desa­
rrollar su propia aplicación partiendo de sus necesidades particulares.

Para enseñar y explicar mejor esta tecnología, hemos dividido este curso en varias secciones así:

• Una sección de Teoría en donde se presentan los conceptos básicos de los microcon­
troladores iniciando con su origen basado en los microprocesadores, su estructura o
arquitectura interna, su funcionamiento eléctrico y lógico, la operación de sus blo­
ques internos, etc. En fin, toda la información necesaria para poder configurar un
circuito con un microcontrolador y entender su funcionamiento.

• Una sección de Program ación en donde se explicará qué es un programa de micro­


controlador, los diferentes lenguajes que se utilizan, las técnicas adecuadas para ela­
borar programas eficientes, cómo se lleva al interior del microcontrolador y las prin­
cipales herramientas de software y hardware para elaborarlos. Esta es una sección de
mucha im portancia dentro del curso ya que la programación es donde radica la
m ayor dificultad de muchas personas para acceder a esta tecnología y por ello, dedi­
caremos un gran esfuerzo didáctico 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 metodología de CEKIT


S.A., hay una seccción de Proyectos y actividades prácticas en donde se presentan
ejemplos completos con aplicaciones de diferentes tipos de microcontroladores. En
esta sección tam bién se incluirán los diagram as de pines y las características de los
microcontroladores más representativos de las principales marcas o fabricantes y una
explicación de los componentes y circuitos que los acompañan, desde un simple
LED, hasta pantallas de cristal líquido (LCD ), sensores, conversores A/D, acondi­
cionadores de señal, 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 práctico sobre Microcontroladores


INTRODUCCION A LOS
MICROCONTROLADORES
Un m icrocontrolador ( m icrocon troller ,
en inglés) 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 características: m i­
cro por lo pequeño y controlador por­
que se utiliza principalm ente para con­
trolar otros circuitos o dispositivos eléc­
tricos, m ecánicos, etc.

M *
Curso práctico sobre Microcontroladores
LLliludliCCLilll i los m icro con troladores'

Este maravilloso componente resume, en un solo nexiones, el número y la cantidad de los diferen­
circuito integrado, más de cuarenta años de tecnolo­ tes elementos que los formaban a lo cual se le
gía electrónica. Es difícil encontrar en la actualidad llam ó la ló gica ca b lea d a , figura 1.1.
un aparato o una aplicación que no lo utilice o no
pueda utilizarlo para optimizar su operación. Con los microprocesadores y ahora con los
circuitos lógicos programables (FPGA), los m i­
Se ha m encionado y confirm ado muchas crocontroladores y los circuitos de DSP (Proce­
veces que la electrónica es la tecnología de los samiento D igital de señales), entre otros, es posi­
componentes. El desarrollo de cada nuevo dis­ ble m odificar cuantas veces se requiera el progra­
positivo de estado sólido trae consigo técnicas de ma, aún en forma remota por la internet, y el
diseño diferentes, por lo general, más simples. circuito o aparato en el cual están instalados, tra­
En los años sesenta, para construir un reloj digi­ bajará de una forma completamente diferente sin
tal, era necesario acoplar un buen número de cir­ modificar físicamente una sola conexión. De esta
cuitos integrados lógicos. Al mismo tiempo, el forma, el lím ite de los diseños solo lo establece la
diseñador debía poseer conocimientos m uy cla­ im aginación 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 integración. fabricantes especializados en estas tecnologías.

A partir de 1970, el panoram a de la electró­ C onsolidadas las técnicas digitales de los


nica y especialmente el de la electrónica digital, años 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 programación en lenguaje de máquina o assembler.
que en la actualidad se conserva y refuerza cada Fué la época de oro del 8080, el 8086, el Z-80,
vez más, 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 electrónicos se cesadores, utilizados como circuitos centrales
diseñaban para una función espe­ en las aplicaciones de control.
cífica la cual no podía modificarse
sin cam biar físicam ente las co- En 1980, aproximadamente, los fabri­
cantes de circuitos integrados iniciaron la
difusión de un nuevo circuito con aplica­
ciones para control, medición e instrumen­
/a \a< tación, al que llamaron “microcomputa-
,r - i 1' dor en un sólo chip” o, de manera más
¿ 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 orígenes 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 lógicos que per-
Figura 1.1. Ejemplo de un circuito con lógica cableada

7 1 Curso práctico sobre Microcontroladores


Un solo microprocesador, utilizado en el d i­
seño 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 diseño, m odularidad, versatilidad, flexi­
bilidad, m antenim iento, bajo costo, confiabili-
dad, poco consumo de energía, etc.
X1

RESET OUT HLDA

S 00
D entro de los anales de la electrónica está el
SID
año de 1970 com o la fecha de invención 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 ­
lógicos más 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 aún sorprende incluso a
los vision arios m ás futuristas. N adie en esa
época se im agin aba el im pacto tan grande que
causaría este desarrollo en la vid a del hom bre
m oderno.

Los aparatos electrónicos 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 aplicación específica 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 números binarios o ins­
trucciones, almacenadas en uno o más
elementos de memoria, generalmente
externos al mismo. La aplicación más
im portante de los microprocesadores y
que cambió totalmente la forma de tra­
bajar, ha sido la computadora personal p¡gura 7.3. Tarjeta con circuitos integrados individuales vs un Microprocesador
o microcomputadora.
£ * /W"
Curso práctico sobre Microcontroladores d & C U T ,. 5
LLlU'CCLLLCtóLdLl 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­
ción de esta tecnología en un sitio de C a ­
lifo rn ia cercano a San Francisco que más
tarde se llam ó S ilico n V alley o Valle del
S ilicio . En esta com pañía se in iciaron los
princip ales científico s e ingenieros que
más tarde form arían sus propias em pre­
sas y d esarrollarían 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 tecnología 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
había dado tanto poder para crear otras y ace­ el diseño y fabricación de transistores. El plan­
lerar su evolución en todos los cam pos. Para team iento fue más 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 tenían que unir siem pre de la m ism a
electrónica, 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 vacío 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 función del sistem a total?
m iento de un fenóm 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
telefonía, la telegrafía inalám brica, etc., e im ­ la p rác tic a sim u ltán 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 -
electrónica. Inclusive las prim eras com puta­
doras eran fabricadas con tubos de vacío. Lue­
go vino la revolución 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 inclusión en la fabricación de
todo tipo de aparatos de radio, televisión, 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 fabricación en serie
Figura 1.5. El transistor y sus inventores
de este revolucionario dispositivo en su em ­

6 Curso práctico sobre Microcontroladores


p o rtan tes en la h isto ria de la e le c tró n ic a : Después 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 año 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 debía 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 lógico en un
m ercado en el año de 1959 a un p recio de solo circuito y el resto de la calculadora en los
4 5 0 dólares y solam ente in cluían cuatro tra n ­ otros dos circuitos. Con la intervención de otro
sistores y varias resistencias. A ctu alm ente, un diseñador, 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 más p restacio n es, puede metros, se le llam ó m icro p ro cesa d o r. También
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 explosión de los circu ito s in ­ Unit) o M PU (M icro P rocessin g Unit).
tegrados desde el año 1960 hasta la fecha,
ha p erm itid o el desarrollo de la electró n ica A unque este circuito tenía ya muchas de las
en una form a so rp ren d en te. características de una unidad central de proce­
so integrada, el prim er microprocesador en un
Noyce renunció a la F airchild en 1968 y sólo chip, fabricado como tal, fue el 4004 de
fundó, en com pañía de G ordon M oore y A n- Intel, diseñado para reemplazar grandes canti­
drew Grove y con el respaldo económ 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 pañía empezó 1972, el 8008 , el cual podía 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 investigación 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 agnéticos con núcleo de ferrita, por tituto, el 8080, y posteriorm ente el 8085, com-
circuitos de m em oria basados en sem iconduc­
tores. La base técnica 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 diseño 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 pañía japonesa fabricante de c al­
culadoras (la desaparecida Busicom C o rp o ra­
tio n ). Ésta quería-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 básica de u n c irc u ito integrado
nían las calculadoras de ese entonces.

Curso práctico 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 diseñadores que antes había 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 más 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 más utilizados en el cam po de control. sido utilizados para la fabricación 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 diseño com ­ La sigu ien te generación fueron los Pen­
pletam ente distinto pero con iguales caracte­ tiu m II, Pentium III y actu alm ente los Pen­
rísticas. 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 características, 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 técn ica y co m ercial, que aún 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 líderes 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 década de los
8 0 , em pezaron a aparecer los m icroprocesa­
dores de d ieciseis bits, m ucho más 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 fabricación 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 práctico sobre Microcontroladores
LECCION 2

LOS MICROPROCESADORES

Son los circuitos integrados que


revolucionaron la electró n ica al
p erm itir el diseño de todo tipo de
aparatos programables. A unque su
principal aplicación son las com ­
putadoras personales, tam bién se
encuentran en la m ayoría de los
circuitos de control.
Les Luicroprocesadores

El microprocesador, corazón 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 información, 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 fáciles de entender, la parte com pleja la
encontramos cuando estudiamos el interior de
dichos circuitos, pero esto en realidad no es de
m ucho interés para el usuario común.

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 información 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-lógica (ALU), y una unidad de con­ ratos externos llamados periféricos 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 , obteniéndose seis bloques o uni­ nitores, impresoras o parlantes.
dades con funciones m uy específicas, figura 2.2,
cuyas funciones describiremos a continuación. 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 más importantes de
mación del m undo exterior, ya sea de un opera­ una com putadora. Se distinguen dos sistemas
dor humano o un fenómeno físico; esta unidad diferentes de m emoria: la de alm acenam iento
perm ite llevar esa información 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 ratón. La unidad de salida entrega van a ejecutar y los datos que se necesitan duran­
los resultados del procesamiento al mundo exte- te la ejecución 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 operación 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 categorías: 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 práctico sobre Microcontroladores


cenan los datos que los programas van generan­ de líneas 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 rápido donde se mantienen almacenado en su memoria, y sum inistra o escri­
los datos más utilizados durante la ejecución de be los resultados del proceso en un cierto núm e­
un programa. ro de líneas 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) reúne la unidad de control y la rruptores, sensores, convertidores A/D, teclados, etc.
unidad aritm ético-lógica en un solo bloque. Esta Los datos de salida pueden estar dirigidos a actua-
últim a también se conoce como ALU ( A rithm e - dores, indicadores o displays, pantallas, convertido­
t ic L ogic Unit). En la práctica, 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­
mación debe enviarse a las líneas de salida.
Dentro de esta CPU , la unidad de control se
encarga de la interpretación y ejecución de las El soporte físico de las instrucciones del pro­
instrucciones del programa. También 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 líneas de conexión llamadas buses. La los niveles lógicos (unos y ceros) de las líneas de
ALU se encarga de realizar las operaciones lógi­ salida de un microprocesador, dependen no sola­
cas y aritm éticas. Las principales funciones arit­ mente del programa en sí sino también de la his­
méticas realizadas en la ALU incluyen la AND, toria de las señales de entrada hasta ese momento.
la O R, la EXOR y la comparación. Como he­ Mientras que en un microprocesador ideal no exis­
mos visto, el microprocesador es quien lleva a ten restricciones respecto al número de entradas y
cabo las principales funciones de un sistema de salidas, los microprocesadores reales sólo pueden
cómputo, y quien integra a los demás compo­ acomodar un número limitado de terminales o
nentes y ejecuta las instrucciones. Es por eso el pines para estas funciones. Como veremos más
principal componente de una computadora. adelante, para simplificar el número de pines, la
mayoría de microprocesadores utilizan las mismas
Funcionamiento del microprocesador líneas 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 número dor ideal tiene, teóricamente, 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
líneas 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 práctico sobre Microcontroladores é g M C IT ,


datos e instrucciones. Por esta razón, 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 demás componentes.
cesita disponer también de un conjunto de líneas
de selección o direccionamiento adicionales. N atu ralm en te, el m icroprocesador ideal
(un dispositivo con sólo entradas y salidas y
Finalmente, para sincronizar su operación un program a alm acenado en él) no existe. Sin
con la de los componentes externos conectados em bargo, la tendencia de los nuevos diseños
al mismo y tener un control global de los buses es in clu ir cada vez más funciones en una m is­
de datos y direcciones, un microprocesador ne­ ma pastilla, incluyendo unidades de m em oria
cesita disponer también 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 práctico sobre Microcontroladores


Teoría

Organización interna de un pretar y ejecutar las instrucciones del progra­


microprocesador ma alm acenado en la m em oria.
La organización interna de un microprocesador, es
decir, su arquitectura, varía notablemente de un Desde un punto de vista conceptual, la ac­
dispositivo a otro. Por esta razón, es difícil definir ción 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 instrucción y su ejecución corre a car­
tiene una lógica de funcionamiento propia. La ar­ go de otro circuito especializado dentro del m is­
quitectura, y especialmente el tipo, número y orga­ mo denom inado unidad de ejecución, figura 2.6
nización de los registros internos, es una considera­
Unidad central de procesamiento (CPU) o
ción importante a la hora de elegir un microproce­ microprocesador
sador para una aplicación determinada.

Un registro es una posición de memoria co­


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

en conjunto, pueden almacenar números binarios


de 4 , 8, 16 ó más 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, cómo 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 oscilación


puede estar o no incorporado en el microproce­
sador, pero es absolutamente necesario puesto que
tiene la misión 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 instrucción y ejecución
cesador debe tener en su interior registros que le
permitan almacenar información, realizar lectu­ La unidad de ejecución, a su vez, contiene una
ras, modificaciones a los datos, etc. unidad aritmético-lógica o ALU y un conjunto de
registros auxiliares. La ALU se encarga de realizar
Operación básica de un una gran variedad de operaciones aritméticas y ló­
microprocesador gicas, y los registros de almacenar temporalmente
A nalizando un sistem a de cóm puto, nos da­ información. 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 práctico sobre Microcontroladores


microprocesadores

La unidad de instrucción 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 ejecución de estas instrucciones.

Para llevar la cuenta de las d i­


recciones de las in stru ccio n es, la
u nidad de instrucción 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­
trucción, 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 dirección de la
posición 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 instrucción o
dato del program a. Figura 2 .7 Arquitectura de un microprocesador genérico

C ada vez que un m icroprocesador recibe La m ayoría 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. También 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 ejecución. Esta fun­ ción relativa a la ejecución de ciertas instruc­
ció n la realiza un circuito denom inado de- ciones como sobreflujo, paridad, generación de
codificador de instrucciones. acarreo, resultado negativo o cero, etc.

Adem ás d el contador de p rogram a y el Muchos microprocesadores poseen también


registro de in stru ccio n es, un m icrop rocesa­ un conjunto de registros de propósito 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 propósitos. El número 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 programación.
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 sólo lo puede d e term in ar y con­ nérico de microprocesador que ilustra los con­
su ltar el m icroprocesador. ceptos anteriores.

M T .1 Curso práctico sobre Microcontroladores


Teoría

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 módulos 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 número de líneas de en ­
secciones decribiremos la función y las características trada es igual al núm ero de líneas de salida. Este
de cada uno. Además de estos tres buses principales, núm ero define la longitud de la palabra de d a­
un microprocesador debe disponer también de un tos del microprocesador. Son comunes lo ngitu­
bus de alimentación, 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 número total de pines asignado en el circuito
Salidas de
control integrado del bus de datos puede reducirse práctica­
mente en un 30% si se utilizan los mismos puntos
de conexión tanto para los datos de entrada como
Fuente de
alimentación 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 información puede circu­
Figura 2 .8 Estructura de buses generalizada lar entrando o saliendo del microprocesador. La for­
ma de representar un bus de datos bídireccional para un
Las líneas de los buses de un microprocesador microprocesador de N bits se ilustra en la figura 2.9
transportan voltajes que representan números bina­
rios (1’s y Os). El microprocesador, los puertos de Un bus bídireccional puede construirse con com­
entrada/salia y la memoria, responden únicamente a puertas tri-state para controlar la dirección del flujo de
esos números binarios codificados electrónicamente. información. La figura 2.9 (a) representa un micro-
procesador de cuatro bits con un bus de datos bidirec-
El bus de datos. Líneas bidireccionales cional. En la figura 2.9 (b) se muestra la configura­
El bus de datos lleva datos e instrucciones hacia y ción de una línea de bus bídireccional. Las líneas de
desde el microprocesador. Las instrucciones pro­ selección SI y SO proceden del bus de control.

DBOUT

Data OUT
—►-
> - BDB
Data IN

DBIN BDB: Línea 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 garantía de bus (alta
SO- impedancia)

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


(b) Línea de bus bidireccional.

Curso práctico 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 línea de El bus de direcciones contiene la inform ación
bus puede inhabilitarse con SISO = 00 para im ­ d igital que envía el m icroprocesador a la m e­
pedir cualquier transferencia de información en­ m oria y demás elementos direccionables del sis­
tre el bus de datos y el microprocesador. tem a para seleccionar una posición de m em o­
ria, una unidad de entrada/salida o un registro
Las líneas de selección pueden utilizarse para particular de la m ism a. El núm ero de líneas d is­
inform ar a los módulos externos que comparten ponible en el bus de direcciones (n) determ ina
el bus de datos el estado del bus bidireccional en el tam año m áxim o de m em oria que puede ser
un momento dado. Este es el propósito de las acom odado en el sistema (2n).
líneas 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 (típico) tal como el Z-80 puede
m anejar directam ente una m em oria de 2 16 =
La información contenida en el bus de datos 6 533 6 (64K) posiciones, cada una contenien­
puede representarse numéricamente de varias for­ do un byte (palabra de 8 bits).
mas: binaria, octal y hexadecimal, principalmente.
Considérese, por ejemplo, un microprocesador de N aturalm ente, una vez seleccionada una
8 bits con el byte 10111011 en las líneas D7 a DO posición de m em oria, el microprocesador debe
del bus de datos, siendo D7 el bit más significativo estar en capacidad tanto de alm acenar inform a­
o LSB y DO el bit menos significativo o LSB. ción en esa localización (operación de escritu­
ra) como de extraerla (operación de lectura).
Esta palabra de datos representada como un
número binario es simplemente 10111011 (B) ó La can tid ad de m em oria u tilizad a en un
10111011(2), representada como número octal sistem a con m icroprocesador depende de la
es 273QÓ 2738 y como número hexadecimal (la ap licació n específica y es a m enudo in ferior a
más usada) es BBH ó BB16. La forma de conver­ la m áxim a que puede m an ejar el bus de d i­
tir números binarios en octales o hexadecimales y recciones. El conjun to com pleto de lo caliza­
viceveresa se explicará en detalle en la sección de ciones de m em oria a las que puede tener ac­
programación. Los sufijos B ,Q y H, y los subíndi­ ceso un m icroprocesador, se d en o m in a espa­
ces 2, 8 y 16 enfatizan el sistema numérico (bina­ cio de m em oria.
rio, octal y hexadecimal) de cada presentación.
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­
presentación binaria. En una aplicación real, esta En el caso de un m icroprocesador de 8
últim a nos perm ite identificar fácilm 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 ­
condición de entrada específica o cual lám para nes de m em oria, cada una conteniendo un
ha de ser energizada para obtener un efecto de byte, la más baja de las cuales es 0 0 0 0 H y la
salida determ inado. más alta FFFFH , fig u ra 2 .1 0

Curso práctico sobre Microcontroladores


Teoría

FFFF
1000 tema típico 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 vés del B us d e datos. Las
3000
señales 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 dirección 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 también que cada 1K del microprocesador.
(=1024) posiciones de memoria, la dirección de me­
moria se incrementa en 400H. La memoria puede La secuencia de in strucciones que cons­
dividirse también en páginas de memoria, cada una titu yen el program a que debe ejecutar el m i­
contiene 256 palabras y cubre 100H direcciones de croprocesador están alm acenadas en un área
memoria. Hay, por tanto, 4 páginas en 1K de me- de la m em oria. En el m om ento de iniciar el
moria. Las direcciones en la página de más 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 dirección de la posición 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 sincronización del sistema
El bus de control contiene la in­
formación que envía el micropro­
cesador a los elementos del siste­
ma o bien la recibe de estos con el
propósito de sincronizar la opera­
ción de los circuitos externos. El
número de líneas del bus de con­
trol es variable y depende del mi­
croprocesador particular utilizado.

Organización 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 práctico sobre Microcontroladores


L e s ; m icroprocesadores

esta inform ación en el bus de datos. Después 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 strucción, la ejecuta y así sucesivam ente. La dos en grupos de 8, 16, 32 y más bits, depen­
generación 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 ación.
PALABRA: Es un grupo de bits que se tratan
Secuencia de operación de un sistema como una sola unidad. El más común es el
basado en un microprocesador byte, el cual está formado por ocho (8) bits.
H asta aquí hemos visto la arquitectura genéri­
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 más 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 ración 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 anipulación 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 strucción, el m icroprocesador debe
cos e interconexiones diseñado 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 ción 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, sería 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 electrónicos sin un objetivo específi­ ción n o rm al, un m icroprocesador no hace
co. De hecho, la función p rim aria de un m i­ otra cosa que ejecu tar repetidam ente ciclos
croprocesador es ejecu tar program as. de in strucción.

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 ICéTc I BJ a>
Este programa calcula un número y almacena el resultado
(OCBA) en la posición 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 máquina

( Ú S s K M T l . * . Curso práctico sobre Microcontroladores


Teoría

Direcciones
Contenido dor ( op codes ) y datos sobre los cuales ha de ope­
Instrucción,
(En hexadecimal) dato (Hex) rar el mismo. C ad a código de operación le in ­
0 0 0 0 BD dica, directa o indirectam ente al m icroproce­
0 0 0 1 01
sador, la dirección de m em oria donde se en ­
0 0 0 2 E6
0 0 0 3 OF cuen tra alm acenada la sigu iente instrucción
0 0 0 4 32 ejecutable. Al recibir un código de operación,
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 ación 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 códigos de operación ( 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 número
se m uestra un ejem plo de un program a en len­ máximo de códigos de operación 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 confusión que, desde el N el tamaño de la palabra de datos del mismo.
punto de vista del program ador, puede gene­
rar una larga lista de unos y ceros, estos códi­ Las instrucciones de un m icroprocesador
gos se pueden representar en forma hexadeci- pueden agruparse en tres grandes categorías se­
m al, constituyendo lo que se denom ina un p r o ­ gún su función: 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 información sin alterar su contenido de una
ción abreviada de un program a en lenguaje de parte a otra del sistem a; la segunda categoría 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 ación desde el punto
1110 0110 com o E6, 0000 111 lco m o 0F, etc. de vista lógico o aritm ético; y la tercer catego­
ría, son las instrucciones de control de progra­
No todos los códigos de un program a ob­ ma, ellas determ inan la secuencia de ejecución
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 propósitos p arti­ ma sim plificado de la arquitectura de un siste­
culares. Los códigos 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 interacción en­
te códigos 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 algún 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­ vés de los buses de direcciones, datos y control.

Curso práctico 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
Códigos de control
instrucción (S)

Memoria RAM de lectura y escritura, con 256 posiciones de 8 bits cada una
©
Instrucciones
Dirección 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
Periféricos del Unidad operativa
mundo exterior

© Unidad operativa

Acumulador
Bus de datos

Selección
de operación

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

W l ’». Curso práctico sobre Microcontroladores


Teoría

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 operación de La memoria principal de un sistema basado en un
una m em oria, puede hacerse una an alo gía con microprocesador se construye con memorias de tipo
un casillero de correos, donde existen m uchas electrónico, que se clasifican en dos grandes grupos:
casillas para diferentes usuarios, cada una con
un núm ero o dirección 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 ación. cha información permanentemente y sólo pueden
ser leídas. Son memorias de “sólo 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­
ción, 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 leído y es­
crito. Al igual que las memorias RO M , son de ac­
La po sición 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 - sición 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 más rápidas 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 lín 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 sición tipo RAM es que son volátiles, o sea, al cortarse
acced id a salen por el bus de datos h asta el el sum inistro de energía eléctrica, cuando se des­
R egistro d e D a tos (RD), si se efectúa un a ope­ conecta el sistema, pierden la información que
ració n de lectu ra. contenían. En un sistema con microprocesador,
se utilizan este tipo de memorias para almacenar
Cuando se trata de una operacón de escritu­ el resultado de las operaciones y los datos de las
ra, el contenido digital de las 8 líneas 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 posición 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 posición y leer o grabar función prim ordial es la de interpretar y eje­
un dato se denomina ciclo d e m em oria. cutar las instrucciones. El código binario de la
operación 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 isión es seleccionar en una
16 posiciones m em oria RO M un conjunto de posiciones que
e n la
m em oria corresponden al código recibido y en las que
se encuentran los códigos 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
ejecución de la instrucción decodificada.

Figura 2.1 5 Según e l dato introducido p o r e l bus de direcciones, Las m icroinstrucciones van pasando al Se-
se habilita la com unicación con una determ inada posición de c u e n c ia d o r (5), que es el circuito lógico de con­
memoria

curso práctico sobre Microcontroladores é m n € B T s


microprocesadores

Unidad de control Memoria principal Unidad de control

Dirección Contenido
Reqistro Decodificador Registro Registro
de de de datos de
direcciones direcciones 10 1100 0011 instrucciones

Figura 2.16 Movimientos de información de los contenidos de las unidades que participan en la fase de búsqueda de una instrucción

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 ejecución 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 actúan como
ción del C o n ta d o r d e P r o g r a m a ( PC) es en­ señalizadores de alguna característica especial
viar por el bus de direcciones la posición de la que se haya producido en la ú ltim a operación
m em oria donde se encuentra la siguiente ins­ efectuada por la ALU. Por ejem plo, un señ ali­
trucción 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 operación que ha he­
cuanto la m em oria acepta la dirección de la cho la ALU ha sido cero (0).
instrucción 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, lógicas, de cedentes del exterior, así como de llevar los re­
desplazam iento, de rotación, de increm ento, sultados a los periféricos del m undo real.
etc. Uno de los operandos que interviene en la
operación que va a efectuar la ALU (U nidad Secuencia de operación de una
ló gico-aritm ética), procede de un registro de instrucción
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­ cución de cu alq u ier in strucción tiene carac-

Bus de direcciones

Memoria Unidad de control

Bus de control

Registro
auxiliar

Acumulador ALU

Periféricos del
mundo exterior

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

22 ^ Curso práctico sobre Microcontroladores


Teoría

Bus de direcciones

Figura 2.18 El contenido de la posición de la memoria se deposita en el Registro de Instrucción

terísticas sim ilares. En todas ellas h ay dos sigue con la parte de la ejecución 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 instrucción.
bloques de un sistem a con m icroprocesador
perm ite un an álisis rápido de la form a en que Fase de búsqueda
se ejecu ta una in stru cció n c u a lq u ie ra ; por Es el comienzo de una nueva instrucción, 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. dirección de la posición de la memoria principal don­
de se encuentra el código de la instrucción que se va a
El contador de program a empieza conte­ ejecutar. Dicho código sale de la memoria principal
niendo la dirección de la m em oria principal por el bus de datos hasta la Unidad d e C ontrol donde
donde está alm acenado el código binario de la se graba en el Registro d e Instrucciones , figura 2.16.
instrucción de sum a. Luego ese contenido pasa
a través 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 trucción va a ejecutar, los tiem pos de búsque­
posición que contiene el código binario de la da son exactam ente iguales. El desarrollo de
operación. Dicho código 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 localización del a través del bus interno de la unidad de con­
código de la instrucción 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 instrucción.
2. El contenido de la posición de memoria aparece
El tiempo de ejecución empieza por un sub- en el bus de datos. Esta información se deposita
tiempo de decodificación de la instrucción y pro- en un registro de instrucción (RI), figura 2.18.
*
Curso práctico sobre Microcontroladores v 23
L a s Li procesadores

Señales de control a los


elementos del sistema

Figura 2.19 Comportamiento de la unidad de control durante la fase de ejecución

Al mismo tiempo, el Contador de Programa (PC) bits señalizadores del Registro de Estado, tomarán el
se incrementa, puesto que él debe siempre seña­ valor correspondiente en función del resultado.
lar la dirección de la siguiente instrucción que se
va a ejecutar, para cuando se necesite. De esta Ejecución de una instrucción
forma se ha completado la operación de búsque­ En resumen: completada la fase de búsqueda, el
da de una nueva instrucción. código 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
Decodificación de una instrucción encarga de localizar las posiciones de la memoria
Es la prim era parte del tiem po de ejecución y de microinstrucciones que correspondan. Dichas
es tam bién exactam ente igu al para todas las microinstrucciones van introduciéndose al se­
in strucciones, puesto que aún no se sabe que ntenciador a m edida que se realiza el proceso. El
operación hay que efectuar. secuenciador, con cada m icroinstrucción, envía
una serie de señales de control a los elementos
De m om ento, la parte de la instrucción 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 instrucción, el Contador de Programa
em pieza la parte diferente de la instrucción. se incrementa en una unidad y el sistema pasa a
la ejecución de la siguiente instrucción del pro­
Al recibir el Decodificador de Instrucciones grama, figura 2.19.
el código de la instrucción en curso, se encarga
de seleccionar en la memoria de microinstruc- H ay varios tipos de instrucciones básicas
ciones aquellas que corresponden a dicho códi­ que pueden agruparse de acuerdo con diferen­
go. La llegada de las microinstrucciones al Se- tes criterios, tales como funcionalidad, núm e­
cuenciador, origina una serie de señales de con­ ro de ciclos de m em oria utilizados, núm ero de
trol que regulan la ejecución de las diferentes eta­ palabras que utiliza, etc. D ependiendo de las
pas en las que se descompone la instrucción. características 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 serán de una, dos o más palabras y ne­
ha de estar contenido previamente en el A cum u­ cesitarán uno o más 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 función del núm ero de palabras y
dirección correspondiente vendrá acompañando del tipo de instrucción, la ejecución tiene ca­
al código de la operación en la instrucción. racterísticas diferentes. Estos parám etros de­
term inan, por ejem plo, el núm 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 instrucción.

Curso práctico sobre Microcontroladores


Teoría

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 ación {datos) pequeña y mediana escala como compuertas, flip -
entre un m icroprocesador (C PU ) y un disposi­ flops, registros, codificadores, decodificadores, etc;
tivo externo o periférico específico. 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 operación de en tra d a y cuando periférica programable (PPI) 8255 o el controla­
lo hacen en dirección al m undo externo, se tie­ dor programable de interrupciones (CPI) 8259.
ne el caso de una operación de salida.
En la figura 2.2 0 se m uestra un ejemplo
Un paso im portante en el diseño de cual­ sencillo de un puerto de salida con un flip -flo p
q uier sistema basado en microprocesadores es tipo D cuya función es transferir el estado del
seleccionar los puertos de entrada/salida o cir­ b it de datos DO a un diodo LED que actúa como
cuitos de interfaz cuyo costo y rendimiento sean dispositivo periférico. Esto sucede cuando en la
los más adecuados para una aplicación dada. La línea de direccionam iento A l 5 hay un nivel alto
com plejidad de un puerto I/O puede variar des­ y la señal de escritura (W R ) es baja. Después de
de un sencillo flip -flo p hasta un circuito inte­ deshabilitado, el flip -flo p retiene la información
grado altam ente especializado; por ejem plo, un previam ente alm acenada m ientras el m icropro­
controlador para un tubo de rayos catódicos o cesador se dedica a otras tareas.
un display gráfico 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 periférico es un interruptor y su
se pueden resumir en los siguientes términos: estado (alto o bajo), se transfiere a la línea de datos
DO cuando en la línea de direccionamiento A l 5
• Id e n tificar d ireccio n es con el fin de esta­ hay un nivel alto y la línea de control de escritura
b lecer la conexión 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 eriférico de entrada/sa­ acumulador y sitúa la salida del puerto de entrada
lid a específico. 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 señales de lectura y escritura. Es­ Una manera más ele­
tas señales pueden venir ya decodificadas o ne­ gante y eficiente de controlar el tránsito de informa-
cesitar una decodificación previa. Dispositivo
• Adaptar físicamente el sistema a los re­ Microprocesador Puerto de salida periférico de

quisitos del periférico. Esto incluye la A 15 D° f D 0 — i


utilización de manejadores {drivers) de
J A I 4-A01 CK LED
líneas de transmisión, eliminadores de S il
a.
ruido, optoacopladores, etc. a.
° a
• Controlar los tiempos para la transferen­ T ° <
WR
cia de información con el fin de garanti­ LL.
1 1Línea de escritura _
zar que el flujo de datos entre el micro- m
procesador y el periférico se haga de una Línea de selección
manera ordenada y eficiente.
Figura 2.20 Puerto de salida con flip-flop

Curso práctico sobre Microcontroladores <ám /K <B Ts


microprocesadores

Dispositivo periférico
de entrada cuito y el programa y hace posible funciones que
no serían ejecutables si el microprocesador tu­
Puerto de entrada viera que hacerse cargo de todo el proceso de en­
trada/salida. Por la función que hacen, los puer­
tos de interfaz programables se pueden dividir
en dos categorías: interfaces dedicadas e interfa­
ces de propósito general o interfaces universales.

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


una función específica, por ejemplo, controlar
periféricos, temporizar eventos, etc. En esta ca­
101-071^ . - tegoría 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
catódicos (TRC) 8275.
ción 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
diseñados especialmente para el manejo de entradas nombre lo indica, son más universales y pueden
y salidas. Entre las principales características de estos adaptarse a una gran variedad de aplicaciones. Exis­
circuitos especializados podemos mencionar: ten interfaces para transmitir datos en paralelo como
la interfaz periférica programable (PPI) 8255 y para
• Son fáciles de conectar con los buses del siste­ la transmisión de datos en serie como el 8251.
m a puesto que disponen de líneas de adapta­
ción directa con las salidas del respectivo m i­ El circuito de soporte 8155 (l/O-RAM)
croprocesador. Por lo general, sólo se requiere Si analizamos un microprocesador típico 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 característica perm ite adaptarlos fá­ todo lo que necesita para completar un sistema
cilm ente a las condiciones de los circuitos ex­ básico es una memoria RAM, una memoria ROM
ternos utilizando únicam ente comandos de y puertos paralelos de entrada/salida.
program ación. G eneralm ente, la program a­
ción consiste en cargar, de una forma prede­ Con el fin de m inim izar el número de cir­
term inada, un registro interno que define el cuitos integrados necesarios para configurar un
modo de operación. 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 más 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 ejecución 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 característica 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- ción estudiaremos un sistema basado en micropro-

cm fí€ tr ,: Curso práctico sobre Microcontroladores


cesador, utilizando el circuito integrado 8155. En la
figura 2.22 se muestra la configuración 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 razón, sólo se necesitan ocho líneas, desde
ADO hasta AD7, para transm itir datos y direc­
ciones. Las líneas lO/M D, RD y W R se utilizan
para el control de la memoria y las líneas ALE y
RESET para el control interno.

Para efectos de la interfaz se utilizan 22 líneas


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 líneas
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 más bajo orden cuando las
líneas CE e IO/M son bajas y cualquiera de las
líneas RD ó W R es baja. Los ocho bits de direc-
cionam iento de más bajo orden se almacenan
en un registro interno durante los flancos de
bajada de la señal ALE.

La capacidad de memoria RAM del 8155


(256 bytes) es, generalmente, más que suficiente
para sistemas pequeños. En la mayoría de los
casos esta memoria se utiliza para almacenamien­
to temporal de datos y resultados, así como de
información 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 vés d e las 8 líneas de más 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 práctico sobre Microcontroiadores


icroprocesadores

direcciones internas de cada registro y de cada según 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­
Diseño de un sistema mínimo con tro Curso Básico 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 algún tipo de tarea o aplicación CPU, la memoria RAM, el temporizador progra-
en el m undo real de manera autónom 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 pequeña y mediana escala tales como
precisam ente esta configuración básica la que compuertas, drivers, decodificadores y registros. Su
se ha reemplazado con esta nueva tecnología. función es permitir que el usuario tenga acceso a la
memoria del sistema y pueda cargar en la misma
Como ejemplo mostraremos el diseño de un datos e instrucciones, así como visualizar resulta­
sistema microcomputador mínimo desarrollado dos. La información 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­ Diseño de la tarjeta procesadora
neraciones, lo hemos utilizado en este ejemplo por La tarjeta procesadora de nuestro microcomputa­
la facilidad para entenderlo con fines didácticos dor consta, básicamente, 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 mínimo

Curso práctico sobre Microcontroladores


T1 ¿T O
Temponzador

Figura 2.24 (a) Diagrama de bloques (b) Diagrama esquemático

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 señales de control (ALE,WR, RD, lO/M, etc) que
bloques y esquemático 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 configuración interna
se ilustró en la figura 2.5, proporciona, entre otros A través del bus de direcciones, el 8085 se­
bloques funcionales, una unidad aritm ético-ló­ lecciona de m anera inequívoca la posición 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 información del bus de datos.
Puesto que el sistema tiene solamente 256 bytes
Aunque el 80 85 , por disponer de un bus de de memoria, sólo se requieren ocho líneas 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 más significativas), no se u ti­
bytes de RAM disponibles en nuestro sistema son lizan. En el 8085 las ocho líneas de direcciona-
suficientes para soportar la mayoría de programas miento de más bajo orden (A0 hasta A7), se m ul-
sencillos de aplicación. Todos los bloques funcio­ tiplexan internam ente con las ocho líneas del
nales que constituyen la tarjeta procesadora se co­ bus de datos (DO hasta D7) formando un bus
munican entre sí a través 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 ación transportada

Curso práctico sobre Microcontroladores


sobre estas líneas para saber cuándo se trata de da RESET IN del 8085 cuando el interruptor
una dirección y cuándo de un dato. S i está en posición “RESET” y un nivel alto
cuando SI está en la posición “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 líneas, 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 sólo se requieren las
una red RC externa conectada entre las líneas XI ocho líneas de más 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 fácilmente conectado o desco­ líneas de direccionam iento de más bajo orden
nectado por hardw are manejando adecuadamen­ están m ultiplexadas con las ocho líneas 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 línea 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
ción, el contador de programa se carga con ceros y líneas (AD0 hasta A D 7).
los buses de datos y direcciones se sitúan en el es­
tado de alta impedancia. Debido a su naturaleza El 8155 distingue internamente entre direc­
asincrónica, la señal de reset puede afectar el con­ ciones y datos interpretando el estado de la línea 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 línea entiende que la información 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 dirección.
tar el programa almacenado en la memoria.
C uando el bus AD actúa como bus de da­
En el m om ento de ap licar energía al siste­ tos, las líneas AD0 a AD7 son bidireccionales, es
ma, el condensador C1 está descargado e inyec­ decir, pueden transportar información desde o
ta, a través 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 líneas 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 mación de la CPU hacia la m emoria o hacia los
cargarse a través 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 ejecución de las instrucciones a partir de la AD2 AD2

posición 0000H . El diodo DI descarga rápida­ .A D J AD3

m ente el condensador cuando se desconecta m o­ AD4

AD5 AD5™
m entáneam ente la fuente de alim entación, in­
.ADJ AD6_
cluso como resultado de una falla en la alim en­
_AD7 AD7_
tación. 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 Conexión multiplexada del bus de datos y direcciones

Curso práctico sobre Microcontroladores


Teoría

El bus de control La línea 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 línea W R (pin 10) del
80 8 5 se com unica con el circuito de soporte 8155 . Cuando esta línea se hace baja, la C PU le
8155 a través de cinco líneas de control: RE­ indica a la m emoria que el dato o la instrucción
SET, ALE, W R , RD e IO/M. Otras líneas de presente en el bus AD va a ser escrita en la posi­
control como H O LD , HLDA, READY, etc., ción de m emoria previamente seleccionada. La
no son necesarias para la operación de nuestro línea RD ( read: lectura) del 8085 (pin 32) está
sistem a m ínim o pero sí se requieren en siste­ conectada a la línea RD (pin 9) del 8155. C uan­
mas más grandes para ejecutar otras funciones. do esta línea 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 dirección previamente seleccionada y a si­
pin 3), activa en alto, le com unica a la entrada tuar la información en el bus AD.
de reset del 8155 (RESET IN, pin 4) que el m i­
croprocesador está en condición de reset , es decir Finalm ente, la línea IO/M ( Input/output -
que no está ejecutando el programa de aplica­ m em ory: entrada/salida-memoria) del 8085 (pin
ción. Cuando esto sucede, el 8155 entra tam­ 34) está conectada a la línea IO/M (pin 7) del
bién en estado de reset y define todas las líneas de 8 1 5 5 . Cuando esta línea se hace alta, el 8155
sus puertos como entradas. reconoce que la palabra de dirección presente
en el bus de datos corresponde a un registro in ­
La línea ALE (A ddress L atch E nable : habi- terno o a un puerto I/O. Cuando la línea 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 línea ALE del 8155 (pin cuito de soporte 815 5 que la dirección presente
11). C uando esta señal 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 ación bin aria disponible en el bus AD acceso. Estas localizaciones tienen asignadas d i­
es una dirección. recciones entre 0 0 H y FFH.

Como resultado de la señal ALE, el 8155 al­ Diseño 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 dirección. En el siguiente de la figura 2.24 es una microcomputadora com­
ciclo de máquina, el microprocesador puede pro­ pleta porque posee una unidad central de pro­
ceder entonces, a leer o a escribir en la posición 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 más im ­
ción 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 sólo una masa inanim ada de com ponen­
Resel out _ Resel in tes electrónicos.
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

» 55 9 8155 y aislar el microprocesador 8085 del resto
10/M _ IO/M 7 del sistema. De este modo, podemos introducir
J I
información en la memoria sin intervención de
Figura 2.26 Conexión del bus de control la CPU . Esta es, precisamente la función de la

Curso práctico 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 específica y que poseen las facilidades para direc-
Resel oul Reset¡n
h í cionar o manejar gran cantidad de periféricos
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 computación 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 periféricos.

Figura 2.2 7 Conexión de la tarjeta programadora


Los microcontroladores son dispositivos elec­
tarjeta programadora. En la figura 2 .27 se ilustra trónicos que agrupan en un solo circuito integra­
la forma de conectar esta tarjeta a la tarjeta pro- do todas estas características, aunque con cierta
cesadora. Cuando el interruptor S i de esta últi­ limitaciones de memoria y periféricos. Sin embar­
ma se sitúa en posición “RESET”, las líneas de go, su funcionamiento interno sigue siendo bási­
datos y direcciones ADO hasta AD7 del 8 0 8 5 camente el mismo. Por esta razón hemos querido
adoptan el estado de alta im pedancia y quedan entregar esta corta introducción a los micropro­
flotantes. Lo mismo sucede con las líneas de con­ cesadores, para dar una idea de todo el desarrollo
trol ALE, W R , RD e IO/M. La línea RESET IN tecnológico que involucra esta tecnología 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 isualización 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 posición 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 físico 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 lección se ha hecho un repaso
Tarjeta program adora Tarjetas de 1/0
general de los aspectos más im portan­
tes relativos al m undo de los micropro- Figura 2 .2 8 Sistema microcomputador mínimo con el 8085

S.üi. Curso práctico sobre Microcontroladores


LOS MICROCONTROLADORES
En los últim os años, un com ponente elec­
trónico ha revolucionado las técnicas de
diseño; 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 lección, iniciamos un estu­


dio detallado de cada una de las partes y
módulos internos que componen un micro­
controlador, desde los más básicos hasta los
más especializados, al igual que algunas téc­
nicas y algoritmos que perm iten su manejo
e inclusión dentro de un proyecto.

Curso práctico sobre Microcontroladores m m iK < u m


Al analizar los sistemas basados en micro- + 5 V (Fuente de alimentación)
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 edición o control, tiene un carácter constante, 0O ROM
1 o CPU
es decir, siempre existirá esa misma estructura
(C P U , memorias, puertos, buses, etc.). No es 11 RAM
difícil 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 años 70, los fabricantes de
circuitos integrados dieron a conocer un nuevo dis­ ▼ ▼
positivo denominado microcontrolador el cual con­ Entradas Salidas
tenía 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 periféricos, 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 Relés

Transductores Parlantes

Dispositivos de entrada] Dispositivos de salida

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

’# V i l . Curso práctico sobre Microcontroladores


Ahora, para un diseñador, 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 fabricación masiva de aparatos modernos, completo de cómputo, 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 entación, 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 común no lo perciba, hoy en
m oria RO M ; los puertos y a están listos para día es m uy común 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 básica de un microcontrolador y de los dispositivos que pueden hacer parte de un sistema

Curso práctico sobre Microcontroladores


crocontroladores en rodo tipo de aplicaciones des­ Los indicadores visuales más comunes son las
de los electrodomésticos y aparatos caseros como pantallas de cristal líquido, los diodos LED, las
las cafeteras, los hornos microondas, las video­ lámparas incandescentes, etc. Los indicadores au­
grabadoras y las alarmas, hasta los circuitos de dibles pueden ser parlantes, zumbadores, etc.
control sofisticados de los automóviles, los avio­
nes, las naves espaciales, los barcos, los sistemas Los actuadores son m uy im po rtan tes ya
de automatización industrial, etc. Las aplicacio­ que se utilizan para m anejar las “cargas” como
nes para los microcontroladores son infinitas; el los relés, las electroválvulas, los m otores, etc.,
único lím ite es la imaginación. fig u ra 3.3 .

La posibilidad de m anejar señales de entra­ Un ejemplo práctico 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 electrónicos más versáti­
les que existen. El diagram a general de un siste­ En este ejem plo tenemos tres clases de dis­
m a m icrocontrolado sería 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 función 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­ función, 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­
dición y generar una señal que pueda ser utilizada cio n ar el teclado.
por el microcontrolador para tomar alguna deci­
sión; por ejemplo, un teclado, un interruptor, un C om o dispositivos de salid a están: 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 líq u id o , el m otor que hace g irar los a li­
tuadores, entre otros. m entos y algunos relés 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 cocción, entre otros.
Teclados
t _r
Circuitos I

■~U En este caso tenemos un m icrocontrola­


Microcontrolador dor program ado específicam ente para esta fun­
---------► Motores !
ción acom pañado 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 aplicación


de esta tecnología, desde algunos m uy sim ples
como un tem porizador, hasta sofisticados ro­
bots con cierto grado de in teligen cia artificial.
En la sección 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 práctico sobre Microcontroladores


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

1. La CPU del microcontrolador es más simple


y sus instrucciones están orientadas, princi­
palmente, a la operación de cada una de las
líneas 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
razón es simple: las aplicaciones de control e
de microcontroladores con memoria EPROM
instrumentación comunes no necesitan alm a­
cenar grandes cantidades de información 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 través 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, mación escrita. Este tipo de dispositivos es
figura 3 .5 . Los microcontroladores con me­ más económico, por lo tanto es el más u tili­
m oria EPROM se utilizan básicamente para zado para la producción en serie de aparatos
electrónicos, cuando el prototipo ya ha sido
com pletam ente probado.

Los dispositivos EEPROM, que han hecho


su aparición en los últimos años, se caracteri­
zan por permitir el almacenamiento de un pro­
gram a y su borrado por medios eléctricos. Este
método es mucho más rápido que el borrado
con luz ultravioleta de las memorias EPROM,
además 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, también son borrables
y reprogramables eléctricamente, pero pueden
soportar un número mucho mayor de estos
Figura 3 .5 Tipos de memoria en los microcontroladores procedimientos. En un sistema con micropro-

Curso práctico 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 tecnologías y capacidades, tajas cuando hacemos el diseño 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 más pequeño ya que m u­


rio diseñar 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 están in cluid o s in tern am en ­
te. Por la razón 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 número 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 ayoría 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 través de los ce notablemente.
puertos de entrada/salida (I/O), u tiliz a n ­
do señales esp eciales de sin cro n izació n . Cuando una aplicación o problema que se
Estos buses y señales se pueden em plear va solucionar, sobrepase las características 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, número de pines o líneas
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 más fácil de u tiliz ar en los m icro- sistema con microprocesador o a una microcom-
procesadores. putadora completa.

+5V
6. La velocidad de operación de los m icrocon­
troladores es más 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 Módulos especializados en los microcontroladores

Curso práctico sobre Microcontroladores


Un microcontrolador para cada gusto Para quienes requieren salidas PW M (m odula­
Muchas aplicaciones requieren algo más que las ción 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 amplísimas y el usuario puede real o existen procesos que no dan espera, se
escoger a la carta. A continuación, enunciaremos debe utilizar la técnica llam ada de “interrup­
algunas de las posibilidades, las cuales iremos es­ ciones”. Cuando una señal externa activa una
tudiando progresivamente en este curso. línea de interrupción, el microcontrolador deja
de lado la tarea que se encuentra ejecutando
• Si los fenómenos que se necesitan medir o con­ para atender una situación especial y luego pue­
trolar son de naturaleza análoga como tempera­ de regresar a continuar con la labor que estaba
tura, voltaje, etc., se debe disponer de un conver­ desempeñando.
tidor análogo-digital (A/D) de varios canales.
Referencia
8051 4K 128 2
• Si hay que m edir períodos 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 más contado­
8032 Externa 256 3
res programables ( tim ers ).
8751 4 K (Eprom ) 128 2

• Si la información obtenida en un proceso de Tabla 3.1 Microcontroladores de la fam ilia INTEL 8051
m edida o control, o el resultado de los cálculos
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 mayoría de los elementos que se utilizan en apli­
municaciones seriales. caciones de medición, instrumentación y control.

Interrupciones
externas

TXD RXD

Direcciones/Datos
Figura 3 .8 Núcleo del 8051

Curso práctico 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­ racterística en com ún que los hace diferentes
cas reconocidas como las más importantes dadas al com portam iento convencional de un m i­
sus características, comercialización, soporte téc­ croprocesador: tien en un espacio para las d i­
nico, difusión, usos en la industria y en la fabri­ recciones de datos (lectura/escritura) y otro
cación de productos de consumo masivo, etc. En­ para las direcciones de program a o de lectu ra
tre ellas están 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, están alojados en el microcontrolador.
circuito integrado, pero el programa debía alm a­
cenarse externamente; posterior a él, en los años 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 más difundidas en el ciones. Este conjunto de instrucciones ha sido
mundo e incluye varios miembros, cada uno de diseñado pensando en op tim izar aplicaciones
ellos acondicionado para aplicaciones específicas. de control de 8 b its. O frece una variedad de
Todas las versiones existentes están conformadas m odos de direcionam iento para accesar la m e­
según un núcleo básico (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 pequeña.
Tienen la misma CPU , memoria RAM, tem­
porizado res, puertos paralelos y entradas/salidas El conjunto de instrucciones proporciona un
de tipo serial, según la distribución 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 anipulación en
los sistemas lógicos 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
fabricación del circuito integrado. En el 8751, La inform ación sobre el núcleo 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 características 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 comunicación 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 expansión de la memoria do, form ando parte de aparatos de producción
RAM y ROM con circuitos externos, es una ca­ m asiva como juguetes, equipos de video, im ­
racterística 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 práctico 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 ISBítsi 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. división 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 más 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 además, puertos seriales, labra de instrucción que pueden manejar (12, 14
convertidores análogo-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, conversión A/D, inter­ en esos espacios se ubican diversos números y
faces para redes CAN, PLL, P W M , etc., depen­ letras, según 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 raíces 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 operación.
partamento de Defensa de E.E.U.U. en el cual
se utilizaba un nuevo diseño en cuanto a la dis­ No están m uy alejados de la realidad: ya es­
posición e interacción de la C PU con la memo­ tán 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 práctico 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 operación 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 gía de los m icrocontroladores bits, y módulos USART, SPI, A D C, etc. En la
ha perm anecido en co n stan te evolu ción en tab la 3 .4 se m uestran las características princi­
cuanto a tecn olo gía 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 generación 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 según 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 características. T a b l a 3 . 4 M icroco n trolad o re s ATMEL

ir ; Curso práctico sobre Microcontroladores


LOS MICROCONTROLADORES PIC
La fam ilia de m icrocontroladores PIC ha
conquistado, en los últim os años, un espa­
cio im portante entre los diseñadores de toda
clase de circuitos de instrum entación, m e­
dición y control, así com o entre los experi­
m entadores y estudiantes de esta tecnolo­
gía, por lo tanto, vamos a dedicar parte de
este curso a explicarlos.

*
Curso práctico sobre Microcontroladores
Ue vufc^SSSBS^h?
El crecimiento de la participación de estos mi­ 1. Generación de código
crocontroladores en el mercado mundial ha sido po­ 2. Depuración de los programas
sible debido a la capacidad de estos dispositivos de 3. Dispositivos programadores
satisfacer las necesidades, cada vez más exigentes, de 4. Tarjetas de evaluación de los productos
los ingenieros y técnicos de todo el mundo. Este cre­
cimiento también 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 generación de códi­
• Sencillez de manejo por su juego reducido de go son MPASM, MPLAB-C y MP-DriveWay™ .
instrucciones Las herramientas para depuración del código son:
• Buena información: notas técnicas, 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. Después de generado el código
• Herramientas de desarrollo fáciles y baratas de la aplicación, 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­
pósito general de arquitectura RISC (conjunto re­ Las tarjetas de demostración perm iten al
ducido de instrucciones), bajo consumo de potencia usuario evaluar la capacidad y disponibilidad del
y una distribución interna en donde la memoria de dispositivo para una aplicación 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 núcleo
1. Línea Base o básica: palabras de 12 bits de longitud 2. Los periféricos
2. Rango Medio: palabras de 14 bits de longitud 3. Las características especiales
3. Rango Alto: palabras de 16 bits de longitud
El núcleo
Los dispositivos de la línea básica tienen las refe­ Se refiere a las características fundamentales que
rencias 12CXXX, los de rango medio 16CXXX y se requieren para realizar su operación básica. En­
los más avanzados se nombran como 17CXXX y tre ellas están:
18CXXX; figura4 .1. Cuando desarrollamos un pro­
yecto con microcontroladores PIC, debemos elegir Es un circuito que se u tili­
el microcontrolador más adecuado dependiendo de za para generar la señal de reloj del dispositivo.
sus características. Estas se relacionan directamente Esta señal 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 tecnología de fabricación. nen los periféricos. Entre los circuitos de oscila­
ción más comunes están 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 elaboración y depuración de los progra­ var al microcontrolador a un estado conocido. En
mas. Estas pueden dividirse en cuatro categorías: este estado se establecen por lo general las condi­

MT,1 Curso práctico sobre Microcontroladores


ciones de inicio con que siempre empieza el siste­ Los periféricos
ma y con las que un producto electrónico garanti­ Los periféricos 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­ nicación con el mundo exterior (puertos I/O, ma-
ponsable de tomar la información de la memoria nejadores LCD, entradas A/D, P W M , etc.) y la
de programa (instrucciones) para controlar la ope­ realización de diversas tareas tales como tener d i­
ración 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, víe señales desde y hacia el mundo exterior. Ade­
la cual permite el desarrollo de las operaciones más, se utilizan para vigilar y controlar otros dis­
artim éticas y lógicas sobre ella. positivos. Para darle más flexibilidad al dispositi­
vo, algunos pines se multiplexan con funciones
Organización del mapa de memoria del dis- alternas. Esto quiere decir que en unos casos las
Existen dos bloques de memoria que se mismas líneas pueden ser pines de entrada/salida
tratan en este punto: la memoria de programa, la o en otros casos, realizar otra función.
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.
Operación 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.
terrupción. Estas fuentes incluyen a los m ódu­
los periféricos. Los módulos de captura, comparación y PW M
Cada m ódulo C C P contiene un registro
C ada instrucción de 16 bits que opera como registro de captura,
se divide en un código de operación (O PC O - como un registro de comparación o como un re­
D E), que especifica el tipo de in strucción, y gistro de PW M de 10 bits. Estos módulos son
uno o más operandos que especifican la ope­ m uy útiles en distintas aplicaciones tales como el
ración de la instrucción. En el siguiente ejem ­ control de motores o cargas resistivas, compara­
plo observamos el código de operación de la ción de señales y otras.
instrucción M O V LW 06H :
Este módulo es una
interfaz serial para la com unicación con otros
13 ... 8 7 ... 0 {b its ) microcontroladores u otros periféricos tales como
memorias seriales, registros de desplazamiento,
OPCODE k (literal) conversores A/D, etc.

M O VLW 06H instrucción rial síncrono básio Es unain-


30 06 código operativo

Curso práctico sobre Microcontroladores


La2£ Lll rocontroladores PIC

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

Puerto serial síncrono maestro (M SSP). Este es Cuando se alim enta el


otro módulo para comunicación 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 módulo universal re­ posición 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 dúplex o como h a lf dúplex. reset en el momento en que se detecta una falla
en el voltaje de alimentación.
Este módulo se usa nor­
m alm ente en conjunto con el módulo 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 catastróficas en la
operación de un sistem a, cuando el PIC se blo­
Algunos PIC contienen dos com­ quea por alguna razón. T am bién se puede u ti­
paradores análogos de señales. 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 análoga 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 análoga 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­
bién proporciona el control para los pixeles de sión del tiempo, se puede utilizar una red RC
datos del LCD. como oscilador externo lo que perm ite un dise­
ño m uy económico.
Puerto paralelo esclavo IPSP). Algunos PIC po­
seen un puerto paralelo de 8 bits. Program ación serial dentro del circuito ( ! n -
Es la p o sib ilid ad de program ar los
Características especiales m icrocontroladores dentro de la ap licació n o
Las características 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 líneas para la alim en tació n y el vol­
PIC de rango medio ofrecen algunas caracterís­ taje de program ación.
ticas que cum plen con esos objetivos:
C on todos estos factores, podemos estable­
B its de configuración del dispositivo. Permiten cer un diagram a de bloques genérico 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 práctico sobre Microcontroladores


Teoría

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


Módulos periféricos
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 más indicada,
dónales del dispositivo, se deben estudiar otros
aspectos como: tecnología de la memoria, voltaje
de operación, rango de temperatura de operación, Dependiendo de la aplicación y el modo de pro­
frecuencia de operación y encapsulado. Microchip gram ación, hay varias tecnologías 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
gía de la memoria no afecta la operación lógica Estándar
del dispositivo. Debido a los diferentes procesos

O
Extendido 2.5 - 6.0
de fabricación y las distintas tecnologías, algunas
características eléctricas pueden variar entre dis­ Tabla 4 .2 Rangos de voltaje típicos para cada tipo de dispositivo
positivos, a pesar de que tengan las mismas fun­
ciones y pines. Mem oria Flash
Estos dispositivos son borrables eléctricam ente y
Cada uno de los tipos de memoria que están se ofrecen en un encapsulado plástico 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 aplicación y de la operación
producción, 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 estándar 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 número de parte
por la primera(s) letra(s) así: La tabla 4 .1 muestra la designación 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 están 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 están 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
señadores 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 cerám ico y se usan en
M icrochip ofrece dispositivos en versión 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 producción en serie, ya que m a m uchas veces.
es la más económica del mercado.
El segundo tipo de encapsulado es el plástico
R ango dle vo lta je de bajo costo. Por últim o están los dispositi­
Tipo de m em oria
Estándar 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 práctico sobre Microcontroladores


Teoría

vez. Si el program a se daña 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 eléctrica. Esto significa que el sistema pue­
de ser diseñado para programación dentro del
circuito. Como no requieren de una ventana de
borrado, estos dispositivos tienen encapsulado
plástico, lo que los hace m uy económicos.

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 eléctrica.
Dispositivos borrabies con luz Esto significa que el sistema puede diseñarse para
ultravioleta que el borrado y el reprogramado puedan hacer­
La versión 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 plástico.
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, fabricación. Com o ella no puede cambiarse, es­
distancia entre la fuente y el microcontrolador, y tos dispositivos tienen la presentación en plásti­
de la tecnología del dispositivo (qué tan peque­ co más económica del mercado.
ñas son las celdas de memoria).
DIE
N ota: las bombillas fluorescentes y la luz del Esta opción perm ite el desarrollo de tarjetas m uy
sol, emiten luz ultravioleta con una longitud pequeñas. La fabricación 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 número de casas fabricantes que soportan
puede ocurrir, con el tiempo, que las celdas de esta tecnología sea limitado.
la memoria se borren. El tiempo de borrado
con una luz fluorescente es aproximadamente Servicios especiales
de tres años, m ientras que con la luz del sol se Para algunos usuarios que incorporen la tecnolo­
requiere de aproxim adam ente una semana. gía OTP, debido a un código fijo para sus produc­
Para prevenir la pérdida de los datos, se debe tos, Microchip ofrece dos encapsulados especia­
colocar una superficie opaca (p. ej. cinta ais­ les: la programación rápida para producción y la
lante) sobre la ventana de borrado. programación serial rápida para producción. Ellas
les permiten a estos usuarios ahorrar mucho tiem­
Dispositivos program abtes una vez po en el proceso de fabricación de sus productos.
(One-Tim e-Program mable: OTP)
Los dispositivos OTP, se encapsulan en plástico a. Programación rápida para producción (QTP:
y permiten que el usuario los programe una sola Q uick Turn P ro d u ctio n )

Curso práctico sobre Microcontroladores (ú m Ík ít :


M icrochip ofrece este servicio de programa­
ción para ordenes grandes de producción de
empresas o usuarios, que no posean un me­
dio masivo de programación de M C U . Estos
dispositivos son idénticos a los OTP pero con
todas las posiciones de la EPROM, y las op­
ciones de configuración ya programadas.

b. Programación serial rápida para producción


(SQTP: S erialized Quick Turn P roduction )
Microchip ofrece este servicio de programa­
ción en el cual a cada dispositivo se le progra­
ma un número serial único. Estos números se­
riales pueden ser aleatorios, pseudoaleatorios o
secuenciales. Este tipo de programación se hace
para que cada dispositivo tenga un número
único que pueda utilizarse como código de
entrada, p a ssw o rd o número de identificación.

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 conectándose 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, conectándose 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 prácticas con microcontrolado­ en esta tecnología. El K-148 de CEKIT, figura
res. Se compone de una serie de módulos indepen­ 4.7 , es un entrenador que tiene módulos 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 prácticas más quisición de variables análogas 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 práctico 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 más difundidas y utilizadas en todo el
m undo. Sus aplicaciones incluyen las com u­
nicaciones, el control, la electrónica autom o­
triz, etc. En esta lección 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 están divididos, sus
características, sus ventajas y en general, da­
remos un rápido vistazo a esta tecnología.
Les iiu c tú a i ntroiadores M otorola

Los microcontroladores Motorola tienen la aún así corresponder a un dispositivo 100%


reputación de ser m uy confiables, fáciles de pro­ com patible. Por ejem plo, hay un m icrocontro­
gram ar y, ante todo, ser unos de los más utiliza­ lador 68H C 705K J1, otro 68H C 805K J1 y otro
dos en todo el mundo. Y no es de extrañar ya 68H C 905K J1. La diferencia radica en que el
que esta firma es líder en la fabricación 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
gía. 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 más apropiado para im plica que el diseñador debe estudiar a fondo
cada tarea específica que se deba realizar. Como para decidirse por la más 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 automóvil 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


más 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 núcleo 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 tamaño de la memoria que po­ Los aparatos en que se pueden encontrar
seen, el número de pines, características especiales estos microcontroladores son m uy variados y en
como convertidores A/D, temporizadores, inte­ ramas bien diferentes. Estas categorías 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 más de 100 miembros. Como el tadoras y aplicaciones industriales, entre otras.
tem a es tan amplio, en lecciones posteriores trata­ A continuación haremos una breve descripción
remos principalmente la familia 68H C 08, que es de algunas subfam ilias o divisiones que tiene la
la más indicada para iniciarnos en esta tecnología fam ilia H C 05.
y haremos una breve descripción de las familias
68H C11 y 68H C 12. Es un dispositivo de propósito
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 más populares en el m undo, con más de 2 características 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 unicación
gram as con la fam ilia H C 08, lo que perm ite serial no sincrónica, etc.
hacer m igración de diseños hacia dispositivos Son elementos de
de más alto rendim iento de una manera fácil y propósito general cuya principal ventaja es su
rápida. C uando se especifica una referencia en temporizador de 16 bits , el cual está acom paña­
particular, ésta puede sufrir algunas variantes y do por un m ódulo de captura y un módulo de

s .a . Curso práctico sobre Microcontroladores


Teoría

comparación. Además, ofrece tamaños de me­


m oria de programa desde 4K hasta 16K, que lo
capacitan para realizar tareas bastante complejas.
Posee interfaz de comunicación no sincrónica SCI
(S erial C om m unications In ter fa ce ), con velocidad
ajustable por programa desde 75 Hz hasta 131
KHz; también 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­
bién es una de sus características importantes.
Estas son las fam i­ Figura 5 .2 Diagrama de pines del 68HC908JK3
lias de más bajo costo y vienen en encapsula-
dos de 20 y 16 pines. El tam año 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 característica de esta
crocontrolador 68H C 705K J1 es el más eco­ subfamilia es que incorpora un controlador de bus
nóm ico de todos. multiplexado que permite una avanzada com uni­
Es una fam ilia de microcontrolado­ cación serial. Una aplicación típica de este siste­
res de propósito general de 28 pines, poseen me­ ma está en los automóviles, 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 diagnóstico de cada
municación serial no sincrónica, temporizador una de las operaciones del vehículo con un riesgo
de 16 bits con módulo de captura y de compara­ m ínim o de interferencia o ruido en los datos.
ción, 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 atización in dustrial y re­
Su principal característica es que des autom otrices.
posee un controlador para m anejar una pantalla Esta fam ilia es m uy recomendada
de cristal líquido o LCD, con un tamaño que va para aplicaciones de propósito 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 sincrónicos y no sincrónicos, 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
módulos de captura y comparación, com unica­ características y es especial para aplicaciones de pro­
ción serial sincrónica y no sincrónica. pósito general donde se requieran diseños 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 fácil mi­ sores A/D, entre otros. Las versiones JK, por ejem­
gración del código 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 ultiplicación 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 trifásicos.
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 práctico sobre Microcontroladores


Les LiucLuca ntrolado res M otorola A

canales y 16 bits, cuatro canales de conversión VDD


A/D, interfaz de comunicación serial no sincró­ P05/SS

nica y más 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 operación 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 programación 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 migración de diseños de
PC1/A1/D1
una familia a otra sea bastante rápida. Dentro de sus PC0/A0/D0
características más 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 matemático con Unidad Aritmética y EPROM en un solo circuito integrado.
Lógica (ALU) de 16 bits para rápidas operacio­ Tienen buena capacidad de pines 1/
nes de m ultiplicación y división 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; además, muestra el diagram a de pines de el microcontro­
incluye otras características 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 según M o to ro la reú n e lo m ejor del
dores en robótica. Dentro de los 68HC11 se tie­ 68H C .11 y mucho más. Entre sus principales
nen seis principales series de microcontroladores; características se encuentran:
todas cuentan con puertos seriales SCI y SPI, me­
moria EEPROM y ADC; ellas son: • Bajo consumo de potencia y operación 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 lógica difusa (Fuzzy Logic)

Curso práctico sobre Microcontroladores


Teoría

• 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 Lógica (ALU) de 20 bits ción, filtro pasabajo, módulos 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 También 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, más una serie de módulos periféricos 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 características 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
señales (DSP)
Sus principales características 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 propósito general de 16 bits
faz serial periférica (SPI), un temporizador y con- • 3 registros índice de 16 bits
versores A/D. • Rápida respuesta ante interrupciones
í’ Hi U :. También 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 más adecuada para aplica­
ciones con m ucha memoria y que utilicen co­
municaciones seriales y funciones análogas.
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, módulos seriales y funciones análogas.

La familia NÚCLEO M (M CORE)


Estos poseen una arquitectura RISC de 32 bits,
instrucciones de 16 bits, permiten la em ula­
ción gracias a su arquitectura interna y poseen
un diseño 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 práctico 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 ulación, etc. permiten desarrollar, monitorear, probar y depu­
rar su código, para que las aplicaciones funcio­
La familia 683XX nen bien y rápido. Existe una gran cantidad de
Estos microcontroiadores están diseñados 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
dinám 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 categoría son: tajas, como por ejem plo, capacidad de em ula­
ción en el circuito de la aplicación 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 módulos avanza­ el tiempo de desarrollo de los programas. Otras
dos de temporización; la 68C K 338 cuenta ade­ características son:
más con un reloj en tiempo real y un módulo
temporizador de 20 canales. Las • Ambiente de desarrollo totalmente integrado
se componen de dispositivos d i­ bajo Windows
señados 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 adquisición • Diferentes modos de ejecución en pasos o de corrido
desde m últiples fuentes. • Programa microcontroiadores OTP y EPROM
• Conexión serial a la computadora
Sistemas de desarrollo
M otorola y muchas empresas independientes de CEKIT S.A., como empresa líder en el dise­
desarrollo electrónico, tienen disponible una gran ño y fabricación de m aterial didáctico, tiene dis­
variedad de herramientas para trabajar con estos ponible un sistema de desarrollo m uy económi­
dispositivos. Entre ellas se cuentan, emuladores, co y fácil de utilizar para la fam ilia 68H C908JK 3,
analizadores lógicos, programadores, tarjetas de figura 5.6, cuya construcción, ensamblaje y u ti­
evaluación, simuladores, compiladores en lengua­ lización serán 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 práctico sobre Microcontroiadores
LOS MICROCONTROLADORES
INTEL, ATMEL y BASIC Stamp
Daremos un vistazo rápido a estas tres marcas
que tam bién 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 electrónicos. 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 médicas y en redes de autom atiza­
ción, y los BA SIC Stam p son m uy apetecidos
por la facilidad en su programación.

Curso práctico sobre Microcontroladores


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

Microcontroladores INTEL
A com ienzos de los años 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 versión 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
fáb 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ó rápidam ente con la versión
8 0 5 2 . A este ú ltim o m icrocontrolador, m uy Figura 6.1 Microcontroladores PHILIPS. Su núcleo es el 8051
parecido al 8 0 5 1 , se le añ adió un periférico
(u n tercer tem porizador) y 128 bytes de RAM bricar microcontroladores basados en la misma
in terna. Tam bién existe una versión del 8052 arquitectura 8051 o a producir nuevas versiones
que contiene un intérprete de lenguaje BA­ mejoradas del mismo circuito integrado, incor­
S IC en su m em oria RO M . porándoles nuevos periféricos, figura 6.1.

Así nació la famosa familia 51, la cual se com­ Núcleo 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
núcleo. Esta característica 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)

VERSIÓN

8031 8051 4K 128 2 3.5 a 12 Versión 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 analógicas 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 analógicas; 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 práctico sobre Microcontroladores


Interrupción 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 ­
bién 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 interrupción externa
• P3-3 IN T l entrada para interrupción 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 lección 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 característica 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 más representativos de esta fam ilia. estos grupos.

Curso práctico 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 análogos, etc. Dentro de los más representati­
vos están 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 ación que los
r : -'ir hacen m uy fáciles de manejar. C on ellos el dise­
GND PBO (AINO) ñador no requiere de conocim ientos avanzados
en electrónica digital, ni en microprocesadores,
Figura 6.3 Microcontroladores ATMEL AVR
ni en el desarrollo de programas en lenguaje en­
samblador, entre otros. Por esta razón están sien­
Basados en arquitectura 8051 do am pliam ente utilizados por estudiantes des­
ATMEL Ofrece una línea de microcontrolado­ de el colegio hasta la universidad, por aficiona­
res basados en la arquitectura 8051, con memo­ dos, técnicos e ingenieros de diferentes ramas y,
ria de programa FLASH dentro del circuito in­ además, se han popularizado mucho en el cam ­
tegrado, al igual que versiones OTP. po de la robótica experim ental.

AT91 ARM Thumb Los BA SIC Stam p son pequeñas 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 caracterís­
protocolos de comunicación, compresión 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
electrónico alrededor de un núcleo 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: según el circu ito que se
q u iera controlar, el diseñador 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 través de un
y otras en tiempo real; se han hecho aplicaciones cable de conexión que se ha preparado pre­
m uy exitosas en automatización industrial, disposi­ viam en te. El m icrocontrolador recibe dichas
tivos MP3, productos para la adquisición de datos, in strucciones y las alm acena en una m em oria
equipos médicos, GPS y sistemas de redes.

La serie AT91 cuenta con un amplio con­


junto de herramientas de programación 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 máquina. Cuen- Figura 6.4 Microcontroladores BASIC Stamp

60 (Ú ÍE IK IIW ^ Curso práctico sobre Microcontroladores


EEPRO M , de donde las lee para ejecutarlas construido con tecn olo gía 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 físico. 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 códigos 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. También 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 rápida­


* * * * " " »M-J = : , .
mente desde su creación. 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
I■£g*■** *»• *•' é' ? 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 batería de 9 vol­
tios, donde se debe conectar la alimentación ex­
Figura 6.6 BASIC Stamp I
terna; también 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 través 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 tación 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 programación. m entación con fuente no regulada de 6 a 15
voltios, pin de tierra, y los pines de program a­
El BASIC Stamp I ción a través 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á configuración del cable necesario para la pro­
gram ación; éste se debe conectar al puerto pa­
ralelo de la com putadora.

Una alternativa m uy práctica para montar


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

Curso práctico sobre Microcontroladores


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

Otro aspecto importante de la programación


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 alimentación 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 caracterís­
para programación (BUSY) tica más im portante de los BASIC Stamp es la
PCI Conectar al pin 2 del puerto paralelo
posibilidad de ejecutar programas en un lenguaje
para programación (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 ación que son difíciles
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 propósito dos en lenguaje ensamblador.
general. Pueden manejar 25 mA en
modo source.
Dentro del grupo de instrucciones se encuen­
Figura 6 .7 Distribución de pines del BASIC Stamp I
tra la posibilidad de hacer ciclos condicionales,
En lo que respecta a la programación 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 instrucción, 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­
ción. Este es un programa diseñado por Parallax y sarrollo de una aplicación.
es m uy similar a los editores de texto sencillos. En
este sistema, se escriben las instrucciones para la El BASIC Stamp II
aplicación particular y, mediante unos comandos
Éste posee el mayor número de características es­
definidos por combinaciones de teclas especiales,
peciales. Su aspecto físico 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 además,
2 vss
3 PCI) un sistema de reset bastante sofisticado y
4 PCI
5 VUU una fuente de alimentación regulada que
6 H tS
7 P0 garantizan su correcto funcionamiento
8 P1
9 P2 aún en difíciles condiciones.
10 P3
11 P4
200 12 P5
13 P6 Está diseñado 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 programación del BASIC Stamp I

.a. Curso práctico sobre Microcontroiadores


1
Teoría

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 Distribución de pines y cable de conexión del BASIC


entrada o salida; además, posee entrada para una
Stamp II
fuente de alimentación regulada de 5V, una fuen­
te de alimentación no regulada de 6 a 15 voltios, se dispone de conexión para la fuente de a li­
pin de reset y pines de comunicación serial que m entación y para el cable de program ación.
soportan niveles de voltaje R S-232. A través de En la figura 6 .1 2 se puede ver la tarjeta de pro­
estos últimos se hace la programación desde la totipos del BASIC Stam p II.
computadora y se puede establecer comunicación
con otros dispositivos externos. En lo que respecta a su programación, este dis­
positivo también posee su propio programa de de­
Como se acaba de m encionar, la progra­ sarrollo donde el diseñador crea sus programas, los
m ación 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 hacían desde el puerto paralelo. Al igual que dades propias de este tipo de aplicaciones.
el BASIC Stam p I, en este caso tam bién 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 más 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 diseño 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 illón de instrucciones cada segundo, en
Figura 6.10 BASIC Stamp II un BASIC Stam p, que posee el m ismo cristal

Curso práctico 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 instrucción
del programa en PBASIC, se debe ejecutar en
Presentación 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 más 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 están
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 características las podemos Tabla 6 .2 Características 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 fácilmente los protoco­ CEKIT S.A. tiene disponibles una serie de
los I2C , DALLAS 1-WIRE y módulos LCD. entrenadores y tarjetas para prácticas 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 básica, el
funcionam iento y el m anejo de cada una de
las partes y módulos que hemos enunciado an­
teriorm ente y que forman parte de un m icro­
controlador. ¡M ucha dedicación 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 práctico sobre Microcontroladores


EL OSCILADOR Y EL CIRCUITO DE
REINICIALIZACIÓN (RESET) EN LOS
MICROCONTROLADORES PIC
Con esta lección 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
eléctrica y funcionamiento. Empezamos con los
circuitos de oscilación y de reinicialización {reset)
de los PIC, dos elementos básicos para su fun­
cionamiento cuyo conocimiento es esencial para
el desarrollo de los circuitos de aplicación. Tam­
bién es m uy importante conocer como cambian
los parámetros de un sistema dependiendo de la
configuración de estos dos circuitos.

Curso práctico sobre Microcontroladores


11 ascíLaiQL- v e l cl uito de reinicialización (Reset) en los Microcontroladores PIC

Todos los microcontroladores requieren de un


sistema que genere una señal 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 través de pines es­
pecíficos destinados para tal fin formando un pe­
queño circuito externo cuya configuración y el Ejecución de una instrucción

valor de sus componentes determinan la veloci­ Figura 7.1 Ciclo de instrucción


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 más rápido y por lo tanto
za debe esperar un tiempo para que esa oscila­ la que más corriente consume.
ción se estabilice y él pueda empezar a funcionar • RC: Red RC externa. Es una solución m uy
correctamente. Esos dos importantes factores son económica.
los que estudiaremos en esta lección: como con­ • IN TRC: Red R C interna. Es la solución más
figurar los circuitos de oscilación y el circuito de económica en que se puede pensar para el cir­
reinicialización {reset). En términos generales; esta cuito oscilador. C ada que se vaya a trabajar con
teoría es válida para todos los microcontrolado­ un m icrocontrolador determ inado, se debe
res de esta marca; en el caso de que algún 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 selección 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 oscilación que perm ite ge­ debido a eso se presentan los distintos rangos de
nerar la señal de reloj necesaria para que todo el frecuencia. Entre más alta sea la frecuencia de ope­
dispositivo trabaje correctam ente. C ada cuatro ración del microcontrolador, más alto será su con­
períodos de esa señal de reloj se genera un ciclo sumo de potencia. Este es un concepto fundamen­
de instrucción, en otras palabras, se ejecuta una tal dentro del desarrollo de proyectos con micro­
instrucción, figu ra 7 .1 . En estos m icrocontro­ controladores, por lo tanto es aconsejable elegir el
ladores existen varios tipos de configuración para oscilador que proporcione la más baja frecuencia
el oscilador con el cual va a funcio­
nar la aplicación, algunas más rápi­
das que otras; esa configuración se
puede establecer dentro del progra­
m a o m anualm ente en el momento
de program ar el dispositivo.

Los tipos de oscilador más 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 cerámico PIC16XXX

opciones de trabajo con cristal.


Figura 7.2 Conexión del oscilador basado en cristal o resonador cerámico

(C m M fT ,: Curso práctico 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 selección del modo de os­
cilador, el ruido del sistem a, etc., figu ra 7.5 .

La selección de los elementos que compo­


nen el circuito de oscilación 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 selección de estos elementos te­
Fig ura 7.3 Aspecto físico de un cristal común niendo en cuenta la velocidad de ejecución que
requiera la aplicación que se esté desarrollando.
posible con el que nuestra aplicación y los disposi­
tivos externos, puedan funcionar correctamente.
Señal de reloj desde
Osciladores basados en cristal o en un sistema externo

resonadores cerámicos
En este caso, para generar la señal de reloj, se Abrir (1 ) - *
debe conectar un pequeño 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 lógico que genera
Hacia otros
la oscilación, 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 cápsula exterior, figura 7.3. Cuando se confi­
gura el modo de operación 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 señal de frecuencia 20 pF -± r 20 pF
externa. Estas configuraciones constan princi­
palmente de compuertas lógicas, resistencias y
330 KQ 330 KÍ2 Hacia otros
condensadores. dispositivos

74AS04 74AS04 74AS04


C uando el circuito de reloj recibe la a li­ x
m entación, 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

bilización. El tiem po requerido para que el


oscilador opere norm alm ente depende de Figura 7.4 Conexión de diversos osciladores externos

Curso práctico sobre Microcontroladores


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

Máximo VDD ...


del sistema Alimentación 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
operación de l cristal

Figura 7.5 Comportamiento del oscilador al recibir la alimentación Figura 7.6 Configuración del oscilador RC externo
e iniciar su operación

En las tablas 1 y 2 se aprecian los valores típi­ 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 pequeño o no existe, la
C uando se desarrollen aplicaciones que no
frecuencia de oscilación puede cambiar brusca­
tengan requerim ientos exigentes de tem pori-
mente debido a capacitancias creadas externamente
zación, 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­
ción 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 oscilación se hace m uy susceptible al
Circuito de reinicialización (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 lógico bajo, el PIC entra al estado de
valor comprendido entre 3K y 100K. En la tabla
reinicialización (reset). En este estado todas las
3 se pueden apreciar las frecuencias generadas por
salidas se apagarán 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 pequeños, razón que faci­
LP 3 2 KHz 68 - 1 0 0 pF 6 8 -1 0 0 pF
lita la incorporación 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 típicos de los ria existe una dirección denom i­
condensadores cuando se trabaja Tabla 7.2 Valores típicos de los condensadores
nada vector de r eset , en esta di-
con resonadores cuando se trabaja con cristales

Curso práctico sobre Microcontroladores


Teoría

+5VDC
,+5V

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

Tabla 7.3 Frecuencias de oscilación 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 Reinicialización 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 alimentación. Para
Figura 7.7 Configuración para utilizar el POR
aprovechar esta característica, se puede conectar
rección es donde el PIC em pieza la ejecución una resistencia desde el pin M C L R hasta el volta­
del program a. Esta dirección es la 0 para los je de alimentación (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 dirección para los PIC de rango bajo. adecuadamente, el programa inicia su operación
Por ejem plo, el vector de reset de un PIC 16C 54 desde el punto exacto desde donde debe iniciar.
tiene la dirección 0 x 0 1FF. Cada
vez que el PIC entra, por alguna
POR
razón, en estado de reset , la CPU
del microcontrolador se dirige a esta
posición de la m em oria para iniciar
nuevamente la ejecución de todas
las instrucciones del programa. Operación normal del
oscilador
■* ►
Existen varias razones que pue­
den motivar un estado de reset ade- MCLR

más del estado lógico bajo en el pin


Oscilador
M C LR , ellas se conocen como ti­
Tose 1
pos de reset, y son: la reinicializa­
ción al encendido (P ow er On Reset), Tost
y la reinicialización por caída en la Tiempo Ost
alim entación (B row n O ut Reset).
También 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
características estándar en los micro- Figura 7.9 Diagrama de tiempo del inicio de operación del oscilador

Curso práctico sobre Microcontroiadores


y el circuito de reinicialización (Reset) en los Microcontroladores PIC

mentación de baja rampa de crecimiento.


Un circuito externo para POR sólo se re­
quiere si el tiempo de VDD es demasiado
lento. El diodo D ayuda a descargar rápida­
mente el condensador cuando VDD se des­
activa. O tra variación 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 característica 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 reinicialización 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 operación normal), los parámetros PWRT se encuentre activo. El retardo proporciona­
de operación del dispositivo (voltaje, frecuencia, do por el PWRT le permite al voltaje de alimenta­
temperatura, etc.) deben encontrarse dentro de sus ción V D D alcanzar un nivel aceptable.
rangos normales de operación; de otra manera el
microcontrolador no funcionará correctamente. Temporizador de oscilación 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 parámetros se normalicen. 1024 ciclos del oscilador (de acuerdo a la en ­
trada en O SC 1) después 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 práctico 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 característica 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
eléctricas 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 operación 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 bién lo hace la señal en este propósito.
M C L R ; a partir de cierto nivel el PO R em pie­
za su operación y el P W R T se activa durante Reinicialización por caída en la
un tiem po; cuando éste term ina, habilita al os­ alimentación (Brown-Out Reset: BOR)
cilado r para que empieze su operación. 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 más 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 entación 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. Después 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 práctico sobre Microcontroladores


tzl usctlaáüL- y d d L i de reinicialización (Reset) en los Microcontroladores PIC

debajo de un voltaje determinado (BVDD). Esto El circuito 2 es más económico pero menos pre­
asegura que el dispositivo no continúe con la eje­ ciso; el transistor Q l se desactiva cuando VDD
cución del programa m ientras se encuentre por se encuentra por debajo de cierto nivel, de acuer­
fuera del rango de operación válido. El reset do a la siguiente fórmula:
Brown-out es m uy utilizado en aplicaciones de
líneas 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 propósito, 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 reinicialización sible detectar la fuente de un estado de reset,
BOR. Cada uno de ellos debe ser comprobado en a través del registro PC O N . Este registro con­
la práctica para verificar que cumplan con los re­ tiene un b it de estado que perm ite d eterm i­
querimientos de la aplicación. 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 configuración 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 genérico
ción. Las resistencias se deben ajustar dependien­ sobre como in teractú an las diversos tipos de
do de las características 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 práctico sobre Microcontroladores


ARQUITECTURA DE LOS
MICROCONTROLADORES PIC
En esta lección estudiarem os aspectos bási­
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 básica 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
terísticas que los hacen muy competitivos den­ congestión en éste.
tro del mercado global de la electrónica. 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 instrucción puede buscarse
d u ce d Instruction Set C om puter), veamos los pun­ en un solo ciclo de instrucción, debido a que el
tos más representativos de esta tecnología. 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 leída o escri­
la memoria de programa (RO M ) en un bloque ta. Esta configuración de buses separados perm i­
separado de la memoria de datos (RAM). De la te que una instrucción se ejecute al mismo tiem ­
misma manera, cada una posee su propio bus para po que se busca la siguiente instrucción. En la
comunicarse con los demás elementos del micro­ figura 8.1 podemos apreciar el diagram a básico
controlador. Los diseñadores han aprovechado esta de ambos tipos de arquitecturas.
características para implantar un bus de 8 bits para
conectar la memoria de datos y un bus de más 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 más 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 año de
razón, esta arquitectura permite un mejor manejo 14 bits; ese núm 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 instrucción.
Para ejecutar una in strucción, 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 más (no rm alm ente más) accesos al Neum ann; en ella las instrucciones por lo gene­
bloque de m em oria a través de un bu s de 8 ral son de m últiples bytes por lo que no es seguro
b its ; la razón es que existen instrucciones cuya que en cada posición de memoria exista una ins­
dim ensión o lo n gitu d en b its es m ayor de 8 trucción válida.
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 ejecución de las ins­
de distintos tipos, todo por el m ism o bu s de trucciones en los sistemas digitales, se ha diseña­
8 b its. Así, al trab ajar in strucciones y datos do un sistema en el cual se empieza la búsqueda
de una instrucción a medida que
Harvard Von-Neumann
se va completando la ejecución de
la instrucción precedente o ante­
rior. Este tipo de conexión o se­
cuencia se conoce con el nombre
de p ip elin e (entubar, encauzar, d i­
rigir o distribuir por tubos).
Teoría

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


técnica y los procesos de búsqueda y ejecución se La memoria de datos de los microcontroiadores
traslapan. La búsqueda de una instrucción toma un PIC se divide en registros, cada uno con una
ciclo de máquina y la ejecución se toma otro ciclo. ubicación determ inada, lo que permite que pue­
Pero, en lugar de buscar la instrucción actual y ejecu­ da accederse a cualquier parte de ella a través de
tar la instrucción previa, en cada ciclo de máquina se direcciones. Existen algunos registros que cum ­
busca una instrucción al tiempo que se ejecuta otra. plen funciones especiales los cuales también 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 tamaño de 14 bits, una instruc­ lección denom inada “La memoria en los micro-
ción se toma en un solo ciclo de m áquina, y se controladores PIC”.
ejecuta en otro ciclo. Si el resultado de la ins­
trucción m odifica el contenido del contador de Instrucciones ortogonales (simétricas)
programa, puede existir un pequeño retardo de Las instrucciones de los microcontroiadores PIC
un ciclo, el cual debe corregirse dentro de la se­ han sido diseñadas para que cum plan con cierta
cuencia, este caso lo estudiaremos más adelante. ortogonalidad o sim etría; esto quiere decir que
para cada instrucción existe otra instrucción si­
Conjunto reducido de instrucciones métrica que cumple la labor complementaria; esta
Los microcontroiadores PIC se clasifican dentro característica también ayuda a facilitar el apren­
de la categoría 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 operación sobre cualquier
cido de instrucciones puede ser aprendido más registro usando algún tipo de direccionamiento.
rápido por el usuario. La naturaleza simétrica y la ausencia de instruc-

TCY1 TCY2 TCY3

Figura 8 .2 Flujo de ejecución de una instrucción


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 instrucción (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 leído durante
hacen que la programación 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
operación (pipeline) de una instrucción. EnTCYO
El ciclo de instrucción se busca la prim era instrucción en la memoria de
La señal 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 periódicos en cuadratura (desfasados) deno­ trucción 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 instrucción
tador de programa (PC) se incrementa cada vez mientras se ejecuta la tercera (CALL S _ l).
que aparece Q l , la instrucción se busca en la me­
moria de programa y se almacena dentro del re­ Cuando se ha terminado la ejecución de la ter­
gistro de instrucciones en Q4. Luego la instruc­ cera instrucción, la CPU hace que la dirección de la
ción se decodifica y se ejecuta durante el siguiente cuarta instrucción 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 dirección de S _ l.
flujo de la ejecución de una instrucción. Esto significa que la instrucción que se buscó du­
rante TCY3, debe ser nivelada desde el pipeline.
Un ciclo de instrucción está formado por cua­
tro ciclos Q ( Q l, Q2, Q3 y Q 4). La operación de Durante TCY4 se nivela la cuarta instruc­
búsqueda requiere de un ciclo de instrucción mien­ ción (se ejecuta como un N O P: instrucción de
tras hace la decodificación y la operación de ejecu­ no operación) y se busca la instrucción ubicada
ción toma otro ciclo de instrucción. Debido al en la dirección S _ l. Finalmente, durante TCY5,
manejo que se le hace a las instrucciones {pipeline), se ejecuta la quinta instrucción y se busca la ins­
cada instrucción se ejecuta efectivamente en un ci­ trucción presente en la dirección S_1 + 1.
clo. Si una instrucción hace que el contador de pro­
grama se modifique, (por ejemplo un GOTO) en­ Formato general de una instrucción
tonces se requiere de un ciclo extra para completar Las instrucciones en los microcontroladores PIC de
la instrucción, ver ejemplo 1. rango medio pueden ser clasificadas según cuatros
formatos generales, como se muestra en la figura 8.3.
La operación de búsqueda de la instrucción Los códigos operativos (opcodes) de las instrucciones
empieza en Q l incrementado el contador de pro­ varían entre 3 y 6 bits. Este tamaño variable de los
grama. En el ciclo de instrucción, la instrucción 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 dirección S 1 para la ejecución de cada uno de los
Ejem plo 1 Secuencia de búsqueda y ejecución de las instrucciones procesos de decodificación, lectura,
M: *
< Ú M IK < IIT s . Curso práctico sobre Microcontroladores
Teoría

Operaciones de registro orientadas a Byte


13 8 7 6 0

Código 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 dirección de un archivo
Operaciones de registro orientadas a b it
13 10 9 7 6 0
Código operativo b (BIT #) f (A rchivo #) b = 3-b it posición de un b it (3 bits}
f = 7-b it registro de la dirección de un archivo
Operaciones de control
13 8 7 0

Código operativo k (literal) K = valor literal (8 bits)

CALL y GOTO únicam ente


13 11 10 0
Código operativo k (literal) K =valor literal (11 bits)

Figura 8.3 Formato general de una instrucción

procesamiento de datos, escritura, etc., de cada ción del dispositivo. Muchas de estas instruccio­
ciclo de instrucción, figura 8.4. nes operan sobre la memoria de datos para lo cual
se requiere de la unidad aritmético lógica (ALU,
Los cuatro ciclos Q que conforman un ciclo A rithm etic L ogical Unit). Para llevar a cabo las ope­
de instrucción (TCY) se pueden generalizar así: raciones aritméticas y lógicas, la ALU controla los
bits de estado (los cuales se localizan en un regis­
Q l: Ciclo de decodificación de la instrucción tro especial denominado registro de estado). El re­
Q 2: Ciclo de lectura de datos de la instrucción 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 instrucción sultado de la operación.

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


Los códigos de máquina o conjunto de instruc­ bro del microcontrolador. Ella es la responsable
ciones que la C PU reconoce, se muestran en la de buscar la instrucción correcta que se va a eje­
tabla 1 (al igual que los nemónicos que el progra­ cutar, decodificarla y ejecutarla. En algunas oca­
m a ensamblador usa para generar estos códigos). siones, la C PU trabaja en conjunto con la ALU
para completar la ejecución de la instrucción (en
La ALU y ia CPU los casos que se efectúen operaciones lógicas o
La unidad central de proceso (CPU) es la respon­ aritm éticas). La CPU controla el bus de direccio­
sable de utilizar la información 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 práctico sobre Microcontroladores


Arquitectura de los microcontroladores PIC

Operaciones orientadas a registros

Nemotécnico Operación Ciclos Cód. de operaciónEstados


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 operación 1 00 0000 oxxo 0000
RLF f.d Rotar a la izquierda 1
a través del carry 00 1101 dfff ffff c
RRF f.d Rotar a la derecha 1
a través 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 dirección 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 interrupción 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 práctico sobre Microcontroladores
Teoría

Literal en 8 bits operaciones aritm éticas utilizan el método n u ­


(palabra de instrucción) 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 instrucción 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 operación de substrac­
Figura 8.5 Operación de la ALU y el registro W
ción se da un caso de “llevo” o “tomo prestado”.

Unidad aritm ética lógica (ALU) Los datos de la memoria RAM interactúan
Los microcontroiadores PIC contienen una ALU con las palabras de instrucción 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 lógica y aritmética la cual desarrolla operacio­ instrucción, el resultado final se dirige a w o al
nes aritméticas 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 lógicas. 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 irección: 03h
C ondición de reset. 000??XXX

IRP: Selector de página para direccionamiento indirecto


Este b it no se utiliza efectivamente en el PIC16F84, por lo que se puede utilizar como un b it
de propósito general.
RP1,0: Selectores de página para direccionamiento directo.
Solamente RPO se utiliza en el PIC16F84. RP1 se puede utilizar como un b it de propósito general.
T0: Time Out o B it de finalización del temporizador.
Se coloca en 0 cuando el circuito de vigilancia Watchdogfinaliza la temporización.
PD: Power Down o B it de bajo consumo. Se coloca en 0 por la instrucción SLEEP.
Z: Zeroo Bit de cero. Se coloca en 1 cuando el resultado de una operación lógica o aritmética es cero.
DC: Digit Carry o B it de acarreo de dígito. 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 aritméticas se activa cuando se presenta acarreo
desde el b it más significativo del resultado.

Figura 8 .6 Registro de estado

Curso práctico sobre Microcontroiadores m m iK H W s .


Arquitectura de los microcontroladores PIC

de reinicialización y los bits de selección 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 lección: 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 instrucción, es decir, puede
trabajar como cualquier otro registro. Si el registro El registro OPCIÓN
de estado sirve de destino para una instrucción 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 lógica 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 módulos 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 instrucción 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 instrucción CLRF ESTADO se bo­ configuran el funcionamiento del temporizador
rrarán los tres bits más significativos y Z se pon­ interno (esto lo estudiaremos más 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 (OPCIÓN)

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

bit 7 bitO

D irección: 81 h
C ondición de reset. 11111111b

RBPU: PortB Pull-up Enable o Habilitación 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 interrupción INT Valor TMRO WDT
0: flanco de bajada
000 12 1:1
1: flanco de subida
RTS: TMRO Slgnal Source o Fuente de señal de TMRO. 001 14 1:2
0: ciclo de instrucciones interno (Temporizador) 010 18 1:4
1: transición en el pin RA4/T0CK (Contador) 011 1 16 1:8
RTE: TMRO Signal Edge o Flanco de la señal TMRO
0: incremento en transición de bajo a alto
100 1 32 1:16
1: incremento en transición de alto a bajo 101 1 64 1:32
PSA: Prescaler Assignm ent o Asignación 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 OPCIÓN

€ M IK < IIW Curso práctico sobre Microcontroladores


LA MEMORIA EN LOS
MICROCONTROLADORES PIC
C onocer cóm 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 lección analizarem os la disposi­
ción y manejo de las memorias RAM y RO M
internas de los m icrocontroladores PIC.
I *
Curso práctico sobre Microcontroladores (á m iK C H T s . 81
La memoria en los microcontroladores PIC

Podemos reseñar 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 sólo alrededor de 4K
ladores PIC: la memoria de programa (RO M ) y para alm acenar instrucciones.
la m emoria de datos (RAM ). También 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 páginas de 2K
la siguiente lección. Como vimos en la lección 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 específico con el fin de estable­
dos bloques: los registros de propósito 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 páginas de la m em o­
pósito general son los que el usuario tiene a su ria de program a, se deben m od ificar los bits
disposición 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 módulos periféricos. 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 dirección en la memoria
de programa de la instrucción 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 interrupción 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­
(Página 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 (Página 1)
OFFFh
x 14 bits tiene espacio para albergar 8K en ins­ Memoria de programa 10OOh
trucciones. Esto facilita al usuario establecer si (Página 2) 17FFh
un dispositivo tiene suficiente memoria d e pro­ Memoria de programa 10OOh
(Página 3)
gram a para una aplicación determ inada. Esta 1 FFFh
aclaración 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 práctico sobre Microcontroladores


Teoría

Dirección
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

Dirección
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 lím ites de la página sin n in gu n a in terven ­ un contador de programa de 13 bits, permitiendo
ción 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 más significativos
sitivos con m enos de 8K el acceso a una posi­ del contador de programa durante los procesos de
ción por encim a de las establecidas físicam en­ búsqueda en la memoria de programa.
te originará u n a sobreposición. 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 operación
nar la m em oria de program a. desde su estado de reset, su contador de programa
automáticamente toma el valor de cero. Esta direc­
Una m emoria de programa de 2K sólo nece­ ción 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 ejecución del programa cuando ocurra un
acceder a cualquier dirección (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 práctico sobre Microcontroladores


La memoria en los microcontroladores PIC

Dirección
hex.
Memoria de programa SERVICIO_INTERRUP se puede asignar a esta
000 I goto PRINCIPAL posición para que la CPU salte a una subrutina don­
de se establezca qué hacer al aparecer la interrupción,
001
la cual puede estar en cualquier punto del espacio de
002
la memoria de programa.
003
004 goto SERVICIOJNTERRUP Como veremos más adelante una de las téc­
005 nicas más 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 más que suficientes para la
y sus subrutlnas
m ayoría de las aplicaciones.
SERVICIO,
Servicio de Interrupción El programa PRIN CIPAL inicia su ejecu­
INTERRUP
y sus subrutlnas
Fin del ción cuando el PIC sale del estado de reset y
código continúa funcionando hasta que una de las fuen­
tes de interrupción ha aparecido y requiere aten­
F ig ura 9.3 Ubicación en la memoria de programa
ción inm ediata; en ese momento la ejecución
dirección del vector de reset (Oh) llevará a la página 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 dirección tina del servicio de interrupción cuando se car­
OOOH es la instrucción goto PRINCIPAL. ga autom áticam ente el contador de programa
con 004H . C uando se completa la ejecución del
La segunda dirección especial es la 004H, la que servicio de interrupción, la C P U retorna al m is­
se carga automáticamente en el contador de progra­ mo punto donde abandonó la ejecución del pro­
ma en el momento en que ocurre una interrupción. gram a PRINCIPAL.
Esta dirección se conoce como vector d e interrupción.
Cuando el PC toma la dirección del vector de inte­ La escritura de programas se complica un
rrupción, el registro PCLATH no se modifica. Como poco cuando entre el código principal, tablas,
se muestra en la figura 9.3, una instrucción goto subrutinas e interrupciones, se ocupa más 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 práctico sobre Microcontroladores


Teoría

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 instrucción 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 instrucción hardw are) de 8 niveles y 13 bits de ancho; esto
cali identificarán la dirección de inicio de cual­ quiere decir que perm ite la combinación de has­
quier subrutina ubicada hasta la dirección 7FFH. ta 8 llamados de subrutinas e interrupciones.

Para programas de más 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 instrucción de llam ada a
en cero o en uno de acuerdo a la porción de la subrutina CALL o cuando aparece una interrup­
memoria de programa que estemos utilizando, ción. El valor presente en la pila es rescatado cuan­
cada vez que se llam a una subrutina. La instruc­ do se ejecuta una instrucción de retorno como
ción GOTO también tiene un campo de direc­ RETURN , RETLW o RETFIE. En ninguno de
ciones de 11 bits y requiere un tratamiento idén­ estos dos casos se modifica el PCLATH.
tico, ver figura 9.5.
Después 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 ocasión. El décimo 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 ocasión, 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 ningún 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 más 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 página 1 PILA
desde la página 0 -i
IV IV G I 1 ___Décimo 0 Sobreescribe
1
U IIIILU U U M nivel nivel 1
La pila (stack) t—
M iw^.1 O
m » v i ___Undécimo Sobreescribe
La pila es un espacio de memoria que contiene la utilizad0 nivel nivel 2
dirección de retorno antes de que ocurra un salto Nivel 3
dentro de la ejecución 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 dirección en donde Nivel 5
se estaba llevando a cabo la ejecución, 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 dirección 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 práctico 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 situación 1 dificarse cuando varía PCL, y cualquier modi-
m uestra como se carga el P C al escribir en el ficación que sufra PCH se refleja inmediatam en­
te en el P C L A T H . La situ ació n 2
S ituación 1: instrucción 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 páginas superiores en la memo­
PCLATH ria de program a. La situación 3 mues­
tra como se carga el PC durante una
S ituación 2: comportamiento ante una Instrucción GOTO instrucción 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 instrucción GOTO,
el PCLATH afecta al contador de pro­
Incorporando un código
grama. La situación 4 muestra como
operativo en PCL < 1 0 :0 > se carga el PC durante una instrucción
de retorno (R E TU R N ), donde el PC
PCLATH
es cargado con el valor que hay en la
S ituación 3: instrucción 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 métodos más comunes
Incorporando un código
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
Situación 4: comportamiento ante una instrucción de retronó. esa dirección inicial y al sumarle un va­
Pila (13-bits x 8)
lor fijo llega a la posición de la tabla
PCH PCL ¡ •• ... •, indicada por dicho número. En un caso
12 11 10 8 7 ' como éste, al sum arle un número de 8
°
bits, la tabla sólo podrá llegar hasta 256
i L I I posiciones de longitud.
11
----- 7*------
Incorporando un código
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 práctico sobre Microcontroiadores


Teoría

La Memoria de Datos Los registros de propósito general representan


Como habíamos 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 operación del dis­
S pecial Function Registers) y el área de registros de positivo; por ejemplo, poseen los puertos y los re­
propósito 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
propósito propósito propósito
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 práctico 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 también 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 análogo-digitales, etc. para mover valores
2 1 0
También contienen bits de control que seleccionan de un registro ha­ 1
el modo de operación de los módulos 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 onfiguración de los bits
bilitar su funcionamiento. vés 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 instrucción.
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 configuración de los bits RPO y
te. La conmutación entre bancos requiere configu­ RP1. El direccionamiento indirecto requiere la uti­
rar los bits RPO y RP1 del registro de estado (STA­ lización 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 organización estándar 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
Dirección
hex Contenido del archivo
negrilla siempre se encontrarán 1 1
000
en cualquier dispositivo. Los ¿7/í RPO en el r
registro de
demás registros dependen de la estado
cantidad de periféricos 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

características 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
rección 00H hasta la FFH. El efectivas
l_ — II---------------- 1
modo de direccionamiento hex
directo utiliza sólo 7 bits de
la instrucción para identificar
la dirección de un registro, el
octavo b it de la dirección 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 práctico sobre Microcontroladores


Teoría

inform ación del código


operativo código la in stru cción (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 posición 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 más 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 propósito 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 bién 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 dirección 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 ubicación 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 código 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 cción 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 rápida 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®
ción 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
propósito propósito
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 práctico sobre Microcontroladores


Dirección
he*. Contenidos
00

Instrucción 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 posición 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 debían ir mostrándose secuencial- escribir un dato sobre él, resultará un estado
mente en la pantalla de diodos LED. Para resolver de no operación (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 pudiéramos 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 dirección (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 . Después 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 posición 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 instrucción 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 práctico sobre Microcontroladores


24LC01

Cátodo común

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

2N 3906

LA EEPROM DE DATOS EN LOS


MICROCONTROLADORES PIC
En la lección 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 solución a muchos problemas
dentro del diseño electrónico. Al final habla­
remos un poco de las m emorias seriales que
tam bién ocupan un lugar relevante en una
gran variedad de sistemas electrónicos.

Curso práctico sobre Microcontroladores


Hemos visto las distintas tecnologías que tie­ Tamaño 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 tecnología, la memoria de pro­ 256 O h -ffh
grama puede ser considerada como una memoria
Tabla 10.1 Tamaño 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 leída o escrita durante la eje­
ejemplo, recolectar datos del mundo exterior y al­ cución 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 permanecerán allí y no se perderán. 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 dirección 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 leídos o escritos en un byte al tiempo. Un
los P1C16F84, 16F870 y l6 F 8 7 X d e Microchip. sólo bit n o puede ser leído 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 Dirección
EEPROM seriales, por ser estas últimas m uy co­
EEADR 0X09 ->dirección 8 del banco 0
munes en muchas aplicaciones.
EEDATA 0X08
EEC0N1 0X88 ->dirección 8 del banco 1
Memorias EEPROM internas EEC0N2 0X89
La memoria EEPROM de datos puede leerse y es­
cribirse durante la operación 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 alimentación del sistema. Analizando los re­ te 10 milisegundos y es controlado por el tempo­
querimientos de la aplicación, 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­ terminación del ciclo, figura 10.1. Analicemos los
formación sin alterarla por más de 40 años. 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 través de registros especiales. En la de direccionar un máximo de 2 5 6 posiciones. El
actualidad los microcontroladores PIC lóxxx 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 práctico sobre Microcontroladores


Teoría

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 automáticamente. bido al pin M C L R o al w atchdog.
Después 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 automáticamente. 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: Prohíbe la escritura ra. Las direcciones y los datos se
m antendrán sin cambios en los
WRERR: Señalizador de error de escritura
1: Se pone en uno cuando una operación de escritura ha terminado prematuramente registros EEADR y EEDATA.
0: La operación de escritura se ha completado correctamente.

EEIF: Señalizador de final de operación de escritura Ciclo de lectura


1: Cuando este señalizador se pone a 1 indica que la operación de escritura se ha
Se in icia un ciclo de lectura colo­
completado con éxito. Se pone a 0 por programa.
0: La operación de escritura no se ha completado. cando la dirección 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 ción, los datos estarán disponibles en el registro
de datos. EEDATA y permanecerán allí hasta que se reali­
ce una nueva lectura o escritura en la EEPROM.
Este no es un registro físico, sin em­
bargo la dirección 0x89 es asignada a él. Al leerlo EEADR se localiza en el banco 0 (RAM ) y
todos sus bits son cero. Sólo 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 códi­
escritura de la EEPROM, para evitar las interfe­ go, figura 10.2.
rencias en el largo intervalo de tiempo que preci­ Dilección ¡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 función de controlar las operaciones en
la EEPROM; su distribución de bits se muestra
en la figura 10.1, y su descripción 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 sólo 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 operación de escritura es válida 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 práctico 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 dirección definir dirección a leer
movwf eeadr informar la dirección
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 dirección de la posición 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.
Después se debe añadir 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 físicamente, sólo asume fun­ movlw B’ 00000010'
movwf b y te ¡b y t e de
ciones de seguridad en el proceso cargándose 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 crítico, 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 automáticam 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 Código de ejercicio de lectura y escritura en la EEPROM

<.A. Curso práctico sobre Microcontroladores


Teoría

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 comunicación
RB1 con la EEPROM serial ( 2 o 3 hilos).

RBO
La elección de los dos hilos se
Figura 10.5 Diagrama esquemático de lectura y escritura en la EEPROM de datos debe hacer para aplicaciones que re­
quieran bus P C (este es un método
el nuevo. El tiempo de escritura es controlado de comunicación de datos serial que estudiare­
por el temporizador (tim er 0) del PIC. Este tiem ­ mos más adelante), inm unidad al ruido y dispo­
po puede variar según las condiciones de voltaje nibilidad lim itada de pines. La elección 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 método de comunicación 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 automáticam 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 interrupción, 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 común 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 comunicación bi-direccional maestro/
esquemático se ve en la figura 10.5. esclavo. Tanto el maestro como el esclavo pue­
den operar como transmisor o como receptor.
Una buena precaución consiste en verificar La operación del bus debe ser m anejada por el
si la escritura de la EEPROM ha sido correcta, maestro, quien genera la señal de reloj serial y las
para lo cual se suele restar el dato escrito con el condiciones de inicio de detención.
que existe en el registro EEDATA. Si no se ha
producido error, el señalizador 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 tecnología de las memorias seriales ha surgi­ neja el flujo de datos bidireccionalm ente. Este
do como una solución para sistemas que requie­ dispositivo no requiere de un pin habilitador,
ren bajo tamaño y poca potencia. Entre sus prin­ ya que en este esquem a la transferencia de in ­
cipales ventajas se cuentan: form ación sólo SE puede in iciar cuando el bus
esté libre. C ada m em oria tiene su dirección de­
• Se pueden conectar fácilmente con micropro­ term inada m ediante los pines A 0, A l y A2; en
cesadores o microcontroladores, incluso algu­ una red sólo responderá la m em oria cuya d i­
nos de ellos tienen pines dedicados a esa labor. rección coincida con la dirección que va enca­
• Transferencia de datos de manera serial, lo que bezando la tram a de inform ación.

Curso práctico 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­
comunicación con la memoria, debe enviarle una táneam ente en una m em oria 24L C 01. En este
serie de bits que lleven la siguiente información: caso, los pines de la dirección se conectaron a
l.S e envía el b it de arranque tierra, al igual que el pin WP. La resistencia de
2. El código 1010 (propio de estas memorias) 4 .7 Kohm conectada al pin SD A es necesaria
3. La dirección 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 espués 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 ación. D i­ se envía al display. El código de este ejercicio está
cha señal, llam ad a ACK , consiste en poner el disponible en nuestra página en la internet, en el
bu s en un nivel bajo (lo hace la m em oria). enlace Curso práctico sobre microcontroladores.
D espués el m icrocontrolador debe en viar los
b its que corresponden a la posición de m e­
m oria que se quiere leer o escribir; nuevam en­
te la m em oria envía un reconocim iento. El
paso sigu ien te depende de la operación que
se vaya a ejecutar.

Ejemplo de aplicación
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 número que se Figura 10.7 Montaje del ejercicio

é m jK fV s . Curso práctico sobre Microcontroladores


LECCIÓN 11

INTERRUPCIONES EN LOS
MICROCONTROLADORES PIC
U n a de las herram ientas más útiles que
nos proporcionan los m icrocontrolado­
res es la posibilidad de m anejar inte­
rrupciones. Las técnicas 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 práctico sobre Microcontroladores d c E J C lT .


Interrupciones en los microcontroladores PIC

Una interrupción 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 acción que se encuentre ejecutando dirige la CPU a la dirección 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 interrupción.
ORG 000H

Las fuentes de interrupción más 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 Ubicación norm al de la rutina de interrupción

• Por el pin IN T (denom inada interrupción ex­ A l retornar a la dirección 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 ación 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 módulo comparador
• D ebida al puerto paralelo esclavo Tal vez la m anera más ad ecuad a de hacer
• D ebida al m ódulo USART esta operación es a través de un segm ento de
• De fin de conversión del módulo A/D código dispuesto en el in terio r de un M A ­
• D ebida al módulo 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 posición tom ando com o referencia la
• Debida al m ódulo CCP dirección base (por ejem plo, 0x70, 0x7F en
• Debida al módulo SSP el banco 0 ). Los pasos que se siguen para dar
solución a este problema son los siguientes:
Cuando aparece una interrupción, el pro­
cesador guarda en la pila (stack) la dirección de 1. Alm acenar W en el banco actual
la instrucción en donde se encontraba y el con­ 2. Almacenar el registro ESTADO en el banco 0
trol del program a se dirige hacia la dirección 3. Ejecutar la rutina de interrupción
donde se encuentra la rutina de interrupción. 4. Restaurar ESTADO (y el b it de selección de
C uando ésta term ina, recupera la dirección de banco)
la pila y vuelve al lugar exacto donde abandonó 5. Restaurar W
el programa.
Cada uno de los tipos de interrupción pue­
En el mapa de memoria de programa de los den habilitarse o deshabilitarse, el usuario es quien
microcontroladores PIC existe una dirección asig­ controla las fuentes de interrupción a través de un
nada (0004H ) para ubicar la rutina. Cuando se registro especial llamado INTCON, figura 11.3.

9 8 <ÚMH^HW s.a. Curso práctico sobre Microcontrolad


Teoría

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 irección: 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 Habilitación de
copias de seguridad interrupciones debidas a los módulos periféricos
0: la deshabilita
Es im portante aclarar que los microcontro­ 1: la habilita
TOIE: TMRO Interrupt Enable o Habilitación de interrupción
ladores que solo cuenten con una interrupción del temporizador TMRO.
de módulo periférico (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 Habilitación de la interrupción 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 Habilitación de la interrupción RBIF.
También 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 interrupción 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 nterrupción INT.
Se coloca en 1 cuando la interrupción 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
interrupción por cam bio en el puerto B.
la aplicación. 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 pción , es


necesario activar un b it (GIE) que se deno­ Figura 11.4 Funcionamiento de la habilitación de las interrupciones

Curso práctico 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 gía 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 eléc­ 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ó­
fenóm 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 periféricos que puedan originar in terru p­
te algún 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 actuarán 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 ción .
Este b it se h a b ilita de nuevo con la in stru c­ Estos registros no m antienen una ubica­
ción RETFIE cuando se retorna de la ru tin a ción estándar para cada uno de sus bits. C ada
de interrupción. 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 ubicación de ellos dentro del
rre auto m áticam en te. registro. Por esta razón, cuando hablem os de
uno de los bits de estos registros no darem os
Interrupción externa su posición 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 señal ex tern a al pin INT. El b it 6 del car su posición en las hojas de datos.

Figura 11.5 Diagrama de tiempos del comportamiento del microcontrolador frente a una interrupción INT

Va. Curso práctico sobre Microcontroladores


Teoría

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 sería raro gistros PIE y PIR.
encontrar más adelante pares de registros como
el PIR3 y el PIE3. En apartados siguientes don- Existe un térm 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
interrupción (la bandera se ha puesto en uno)
li s t p=16c84 hasta el m om ento en que la instrucción ubica­
a # in c lu d e < c : \ p l6 c 8 4 . in c > da en la posición 0004 H em pieza a ejecutarse,
.C O N F IG 1 1 H
este tiem po es de 3 TCY (ciclos de instrucción)
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 sincrónicas (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 sincrónicas (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 interrupción
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 aplicación 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 Código del ejemplo 1 FiQura 11.7 Configuración del flanco que se va a leer p o r el p in INT

Curso práctico 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 dirección de la ru ti­
na de interrupción.
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 dirección 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 instrucción. El
gu n a otra in terrupción 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 leído la interrupción)
ya q ue es posible que en un diseño especial
es puesto en bajo autom áticam ente por la CPU
deseem os esa característica).
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 terrupción , bloque D, el
tender el m anejo de las interrupciones es a tra­
contador se increm enta y se visualiza en los
vés de un ejem plo.
diodos LED. En este caso se usó una técnica
un poco dispendiosa para activar o desactivar
Ejemplo de interrupción 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 propósitos.
cuenta el número 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
ción 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 petición de in ­
En la parte A del programa se configura el puerto
terrup ción ha sido aten d id a. La instrucción
RBO/INT como entrada y los demás 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 interrupción externa ocurra en el flan­
la in terrupción ). El procesador entra en esta­
co positivo de la señal en RBO, o ponerse en “cero”
do de SLEEP hasta que ocurra una nueva tran ­
para que la interrupción ocurra en el flanco nega­
sición en el pin RBO/INT.
tivo de la señal.
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 lección 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 interrupción 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 interrupción se genera en los
del program a.
pines RB4, RB5, RB6 y RB7. Esta característi­
ca puede usarse como una buena técnica de aho­
Al ocurrir la interrupción, el contador de
rro en el consum o de potencia de un sistema.
program a se alm acena y la ejecución del pro­
El procesador se puede poner en reposo (en
gram a se direcciona a la posición 0004 H , en
modo SLEEP) y se despierta sólo cuando el

Curso práctico sobre Microcontroladores


Teoría

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 están?
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 código de la figura 11.8.
rrupción 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 ejecutábam os el código de la
(GIE). La operación in tern a del procesador, TAREA_2. Por alg u n a razón la in strucción
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 terrupción se genera cuando la lectu ra del rrupción 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 terrupción, la in s­
zar la copia. Para hacerlo, utilizam os las si­ trucción 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 dirección 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 lín ea de TAREA_2 con las
rrupción en RB, pero el estado del n ib b le alto in terru pcion es aún h ab ilitad as. Por eso el b it
del puerto B aún sigue siendo diferente a la anti­ GIE debe limpiarse, pero debido a que la eje­
gua copia, por eso el procesador inm ediatam en­ cución 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 interrupción. Por esta razón el código ante­ mos la ru tin a TA REA _2 las in terru pcion es
rior es incorrecto, la manera adecuada es así: aún se encuentran h ab ilitad as. La solución 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 interrupción 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 Código del problema 1

Curso práctico 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 están en la m ism a posición. 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 sólo cuando nuestro progra­
Figura 11.9 Solución 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 ningún problema, figura 11.10.
deshabilitado.
¡voy a l banco 1
Así, si una interrupción 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
interrupción activará ese bit, pero el programa con­ ¡ IN T E R R U P C IO N E S
tinuará con la instrucción 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 sólo llegará a TAREA_2 después 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 interrupción, los regis­ pueden resultar m uy obvias después de ver su so­
tros W y ESTADO se almacenan en W _SEGU R lución. Pero si no la conocemos seguramente gas­
y ESTADO_SEGUR. Asumamos que estas va­ taremos varios días averiguando que pasó.
riables son 20H y 21H. Si la interrupción 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 interrupción 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 días (meses, años o tal vez nun­
ca). C uando no se logra un entendim iento to­
Nuestro servicio de interrupción 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 práctico sobre Microcontroladores


LECCIÓN 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 edición de tiem po, llam ados tem poriza-
dores. En esta lección analizaremos estos elem en­
tos internos presentes en los m icrocontroladores
PIC. En la sección de program ación, desarrolla­
remos ejem plos prácticos para el m anejo de es­
tos im portantes elem entos.

Curso práctico sobre Microcontroladores


En la fam ilia de los microcontroladores PIC lador y nos sirven para crear bases de tiempo
aparecen tres módulos 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 más Por este motivo a este módulo se le ha de­
versátil ya que puede usarse para monitorear el nominado temporizador/contador, ya que puede
tiempo entre las transiciones de una señal ocu­ configurarse para que sirva de temporizador o que
rridas en un pin de entrada o para controlar de actúe como contador de eventos.
manera precisa el tiempo de transición en un pin
de salida. El TimerO puede utilizarse para contar Cuando el TimerO inicia su operación, se
eventos externos (transiciones de señales) 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/
número deseado de eventos. TO C K I; la elección de cual va a ser la fuente de
señal se configura en el registro O PCIÓ N . El
Existe la m anera incluso, a través 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 más una interrupción, 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 frecuencím etro in clui­ El número de veces que el contador llega a
do en este curso. cierto valor puede ser contado usando otro regis­
tro. El TMRO es un módulo autónomo, de m a­
El Tim er2 tiene m ucha más 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 período de una TMRO se encuentra trabajando.
señal de salida en formato de m odulación por
ancho de pulso (P W M ). En este tipo de señal, Las posibles salidas que podemos obtener del
la salida de un pin perm anece en estado lógico 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 ción 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 señal de salida se controla por el
Timer2. Este tipo de señales es m uy utilizado en El registro O PCIÓ N ( OPTION) cuya es­
el control de motores, luces, etc.; el módulo CCP tructura la estudiamos en la lección 8 de este
lo analizaremos en detalle en la siguiente lección. curso, es el que utilizam os para configurar el
funcionam iento de este m ódulo de tem poriza-
Temporizador 0 ( TimerO1. TMRO) ción. 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 leídos 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 cuál es el pin que corresponde a esta fun­
entran por un pin específico del m icrocontro­ ción en cada tipo de m icro, debemos referir-

i. Curso práctico sobre Microcontroladores


Teoría

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, según la tabla 1 2 .1 . La
cuen ta o la tem porización del TMRO puede
H ay que ten er en cuen ta que si el TMRO hacerse sin la in tervención del prescalador;
se ha configurado como contador, él sólo 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 sólo 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 razón se le debe d e cir al vam os a trab ajar con una señal 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 través 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 niéndolo en uno (1 ), el TMRO contará debe permanecer en alto (o en bajo) durante
todos los flancos de bajada. al menos dos (2) períodos de oscilación 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 núm 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 instrucción 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 señal h acia el TMRO puede 1 0 1 64

ser som etida a un proceso de división de fre­ 1 1 0 128

cuen cia a través 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 OPCIÓN 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 más se ajuste; en el pro­
FF ■+— desborde ocurre yecto Reloj Digital con PIC presente en este curso
u na Interrupción
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 guardián ( 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 específica (como veremos más
00- adelante) al cual podemos asignar este factor de
división. 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 duración. bibliográficas se conoce simplemente como pres­
calador sin distinguir si hace el trabajo de p r e o
Si existe una operación 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 lección posterior.
siguientes dos ciclos de instrucción. Esto pue­
de com pensarse ajustando el núm 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 división el número confi­ bits adecuados en el registro OPCIÓN
gurado en OPCIÓN 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 número en el re­
división 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 núm ero el tem porizador
En este punto cabe resaltar que para ajustar un cuenta desde ese número, figura 12.2.
intervalo de tiempo (por ejemplo 1 segundo) se • Una vez ha empezado a trabajar no es po­
puede manipular, además del prescalador, el tipo sible detener al TMRO.

< g m iK < iiT i.a. Curso práctico sobre Microcontroladores


Teoría

• 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 división de la
• El temporizador/contador debe ser recar­ salida del comparador y puede activar la bandera
gado después de cada sobreflujo para repeti­ de interrupción dentro del registro PIR1 (recor­
dos intervalos de tiempo. Si esto no se ha he­ demos de la lección 11, que el registro PIR es
cho, FF resultará en cada ocasión. propio de cada tipo de microcontrolador según
las interrupciones que posea internam ente, ra­
2. ¿ Cóm o nos damos cuenta que el timerO está zón por la cual, el lector debe ubicar en cada hoja
haciendo algo? de datos, dónde 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 interrupción 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 generación de
ción es la salida. P W M cuando se usa el m ódulo C C P (lo ve­
rem os más 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
sólo puede configurarse para que su fuente de Las posibles salidas del T R M 2 son la lectura
señal sea el reloj interno, de m anera que sólo 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 interrupción 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 selección 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 bitóe activación 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 selección del prescalador del
En el registro PR2 configuramos un núm 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 comparación, 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 práctico 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 cación también depende del microcontrolador.
pre y postescalador se borran por tres razones funda­ En la figura 12.6 observamos un código 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 módulo 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 ,
establecerán el valor del prescalador. Veamos PRESCALADOR = 1 : 1 ,
los pasos para configurar el modo de operación 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 activación 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 interrupción 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 ubicación 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 periféricos BCF P I R l , TM R 2IF S I , BORRO L A BANDERA
(PEIE). La bandera indicadora de la aparición Y C O N TIN Ú O .
de esta interrupción se encuentra dentro del re­
gistro PIRl y se denom ina T M R2IF; cuya ubi- Figura 12.6 Código para el manejo del TIMER2

<-*. Curso práctico sobre Microcontroiadores


Teoría

TMR1 = Temporizador/
contador TMR1 = Modo captura TMR1 = Modo comparación

-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 algún 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­
interrupción por desborde, para lo cual requiere m acenado en dicho registro de com paración,
que un b it de habilitación, 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 interrupción 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 típ 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 bién es posible
to en que un flanco sea leído 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 interrupción. El valor capturado Descripción del TIMER1
se encuentra ahora disponible para ser leído. 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 señal para el TIMER1 pue­
pararse continuam ente con los contenidos de de ser una señal externa para aplicaciones de
un registro especial de com paración, 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 módulo CCP Figura 12.8 Diagrama de bloques del TIMERI

Curso práctico 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 selección 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 habilitación del oscilador del Timen ción 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 selección de la entrada externa de pulsos por el pin T i CKI (b it 0 del puerto C ),
sincronización 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 selección 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 través 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 habilitación del Timerl ser hasta de 200 KHz, figu ra 1 2 .1 1 . La ap lica­
1: habilita Tim erl
0: detiene Timerl ción clásica de esta conexión que se encuentra
en gran cantidad de notas de aplicación, es la
Figura 12.9 Registro de control del TIMER1 (T1CON) creación de un reloj de tiem po real utilizando
este temporizador y un cristal de 3 2 .7 6 8 KHz.
caciones de tem porización, la entrada ingresa a
un m ódulo prescalador que divide los pulsos de
entrada por 1, 2 , 4 o 8.

La selección de la fuen te de señal para el


T IM E R 1 se hace m ediante un b it específico
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 través 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 señal 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 Conexión del TMRl con un circuito oscilador para
sos externos deben en trar por un pin especí­
la creación de un reloj de tiempo real

■-*. Curso práctico sobre Microcontroladores


MODULOS CCP
(CAPTURA/COMPARACIÓN/PWM)
En la lección 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
electrónica. H ablam os en plural sobre estos m ó­
dulos debido a que en un m icrocontrolador pue­
de existir más de un m ódulo CCP.
El modo de comparación 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 b»7 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 diseñado b it 3-0: CCPxM3:CCPxM0. B it de selección del modo CCPx
para trabajar con el T im erl; si un microcontro­ 0000: Captura/compara/apaga PWM (reinicia el módulo CCPx)
0100: Modo de captura, cada flanco de bajada
lador posee varios módulos CCP funcionando 0101: Modo de captura, cada flanco de subida
en modo de captura o comparación, ellos debe­ 0110: Modo de captura de cada 4o flanco de subida
0111: Modo de captura de cada 16o flanco de subida
rán compartir el mismo temporizador. El modo 1000: Modo de comparación
de PW M (modulación por ancho de pulso) es Inicia pin CCP bajo, cuando la comparación indica
igualdad, pone el pin CCP en alto (se activa el b itCCPIF)
muy udlizado para controlar motores, lámparas 1001: Modo de comparación
u otras cargas resistivas y está diseñado para el Inicia pin CCP alto, cuando la comparación indica
igualdad, pone el pin CCP en bajo se activa el bit CCPIF)
Timer2, de manera que ningún otro temporiza­ 1010: Modo de comparación
Genera interrupción por software, cuando la comparación
dor puede ejecutar esta función, ver Tabla 13.1. indica igualdad (se activa el b it CCPIF, el pin CCP no
Cada módulo C C P contiene un registro de 16 se afecta)
1011: Modo de comparación
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
ción de 16 bits o como un registro para generar
PW M en 10 bits. Todos los módulos CCP tra­ Figura 13.1 Registro de control de los módulos CCP

bajan prácticamente 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 genéri­ 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 módulo 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 módulos CCP pueden controlar también 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 función 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ó­ propósito general del puerto C. Recordemos de la
dulo CCP. En la figu ra 13.1 tenemos el regis­ lección 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,
función de cada uno de sus b its constitutivos. 4 o 8; si seleccionamos la división por 1 obtendre­
mos la resolución más 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 resolución de 1us.

Modo CCP Función Nombre genérico CCP1 CCP2 Comentario


Captura Timerl CCPxCON CCP1C0N CCP2C0N Control de registro CCP
Comparación 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
operación Tabla 13.2 Nomenclatura genérica de los registros CCP

i. Curso práctico sobre Microcontroladores


TRISC cabo una acción 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 ción 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 comparación o el comparador ha establecido
0 1 borra el pin RC2/CCP1 en la comparación
1 0 no afecta el pin RC2/CCP1 en la comparación igualdad entre el T M R l y los re­
TMR1H (H’OF1) TMR1L (H'OE')
gistros CCPR1, se origina un es­
TM R10N
Sobreflujo tado de interrupción 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­
riféricos y los bits correspondien­
tes del registro PIEl se encuen­
tran activados, se generará en la
CPU un estado de interrupción.
Para microcontroladores que po­
Interrupción TMR1IF
en CPU sean dos módulos CCP, el circui­
to y los registros asociados al
CCP2 se muestran el figura 13.3,
• Registro INTCON pero su funcionamiento es prác­
activa la interrupción TMR1IE
ticamente el mismo del circuito
anterior; en esta figura podemos
apreciar los registros exactos
Figura 13.2 CCP1 en modo de comparación
que se deben configurar en este
En la figura 13.2 se muestran gráficamente los caso, con las respectivas direcciones de cada uno
pasos que se deben seguir para iniciar el módulo de de ellos. Cuando un microcontrolador posee mó­
comparación 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 módulos CCP, si ambos módulos se usan para
se incrementan progresivamente por su fuente de .com paración o captura, deben co m p artir el
señal. Cuando ambos son iguales, además de gene­ T M R l y en este caso el T M R l no debe m odifi­
rarse una interrupción, en el pin C C P l se lleva a carse (escribir sobre él). Pero si el T M R l sólo se

Modo CCPx Modo CCPy Interacción


Captura Captura La misma base de tiempo de TMR1
PWM PWM Ambos PWM tendrán la misma frecuencia
PWM PWM Ninguno
PWM PWM Ninguno
Tabla 13.3 Interacción entre los módulos CCP

Curso práctico sobre Microcontroladores


TRISC
(H'87') zación 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 H’09’ y el pin RC2/
CCP2C0N
(H’l D') CCP1 se ha puesto inicialmente
En cualquier caso, activando la bandera en bajo, entonces observemos el
CCP2IF en la comparación:
0 0 activa el pin RCl/CCP2en la comparación
código, en la siguiente página.
0 1 borra el pin RC1/CCP2 en la comparación
1 0 no afecta el pin RC1/CCP2 en la comparación
En estas líneas de código se
TMR1H (H’OF TMR10N configura inicialmente el modo
Sobreflujo de comparación, para iniciar un
Activa, desactiva
OSC/4
o no afecta el pin
RC1/CCP2
pulso que permanece hasta un
Comparador
ciclo después de que se habilita
A
la entrada de señal al T M R 1. In­
mediatamente después 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 función además de la
de comparador, no podrá dete­
nerse ni modificarse. En este
caso el T M R l sólo puede ser leí­
Interrupción
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 interrupción TMR1IE Modo de captura
PIE 1
(H’8C') La combinación del T im erl con
Figura 13.3 CCP2 en modo comparación
el C C P l o el C CP2 permite que
el PIC se utilice para determinar
usa para una función, 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) resolución 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 aparición 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 función, 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 práctico sobre Microcontroladores


Teoría

PULSO INTERRUPCIONES
BCF T1C0N,TMR10N ; DETENCIÓN DEL BTFSC IN T C O N .G IE
; RELOJ DEL TMRl GOTO PULS01
CLRF TMR1H BSF T1C0N, TMÜON IN IC IA N LAS SEÑALES
CLRF TMR1L AL TM R l
CLRF CCPR1H MOVLW 101 CONFIGURAR SEGUNDO
MOVLW H’0 1 ’ COMPARADOR
MOVWF CCPR1L MOVWF CCPR1L
BCF CCP1CON,0 ; CONFIGURO PIN RC2/CCP1 BSF CCP1C0N LIM PIAR PIN RC1/CCP1
¡PARA COMPARACIÓN 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 |
(H’17D’)
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')

operación 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 Interrupción
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 interrupción
guientes posibilidades:
Figura 13.4 Módulo 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 módulo 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 leído,

Curso práctico 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 interrupción debi­ subida en el pin RC1/CCP2

do a la aparición 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 Interrupción
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 interrupción
se copia en dos posiciones CCP2IE
de memoria RAM . Cuan­ PIE 2
(H’8D)
do ocurre la segunda in­
terrupción, el primer va­ Fig ura 13.5 Módulo 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
ción se ha culminado, se puede borrar el
• Tiempo
b it CCP1IE del registro PIEl.
Periodo
1
Modo de PWM Periodo
En el modo de modulación 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 señal deseada

CCPx posee una función alterna como pin


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

trucción TRIS para que trabaje como sali­


da. En la figura 13.6 se muestra la salida de • Frecuencia
V#IÍ 3f„ 5 f„
modulación por ancho de pulso (PWM) ori­ Señal 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 señal PWM

Curso práctico sobre Microcontroladores


distinguen en este tipo de ondas, a saber: el periodo, el fmax << fcorte del filtro << pwm
ciclo y la frecuencia de la señal de PWM.
La frecuencia de corte del filtro necesita estar
En muchas aplicaciones prácticas es necesario por debajo de la frecuencia de la onda PW M , f p w m ,
un periodo de la señal 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 mónicos 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 varíen 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 más corto sea ñal de la PW M es la manera más simple de acomo­
el periodo de la PW M , más rápido podrá cambiar el dar señales de frecuencia con un filtro que las deje
valor promedio. Si los cambios en la señal PW M se pasar y remueva los efectos de la modulación PWM.
caracterizan por una frecuencia máxima,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 fácil de m a­
análoga
I [ nejar. Para controlar adecuadamente un motor C C
se necesita un número o m agnitud y un signo; el
Figura 13.7 Circuito de conversión D/A signo nos indica la dirección hacia la cual va a
<20V
girar el motor y la magnitud es la cantidad de ener­
gía 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
Dirección
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
continúa incrementándose
Figura 13.9 Control de un m otor CC con un puente H hasta igualar al registro del pe-

Curso práctico sobre Microcontroiadores


Módulos 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 módulo 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 fórmula:
almacena en CCPRxH hasta después 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 leído. 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 Configuración de la PWM
Para configurar el módulo 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 resolución 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 actúan 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 fórmula: 5. Configurar el módulo CCP para el modo PWM.

Módulo 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

Módulo 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
Módulo Tim er2 de la PWM
Fig ura 13.10 Concepto del funcionamiento de la salida PWM

1 2 0 fúM I/G IO T sA. Curso práctico sobre Microcontroladores


INTRODUCCIÓN A LAS
COMUNICACIONES SERIALES
La utilización de las com unicacio­
nes seriales se encuentra por doquier
en el m undo digital ya que nos ofre­
ce un a solución económ ica y de alta
calidad para una gran variedad de
aplicaciones.

Curso práctico 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 módulos 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 función y sus co­
D/A, etc. o entre el microcontrolador y elem en­ rrespondientes instrucciones de programación 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 más compleja su elaboración.
; o ;
* o l o externo
; 1 1
; 1 ;
i

Figura 14.1 Comunicación en paralelo

En términos generales, hay dos maneras de


interconectar elementos electrónicos digitales: en
paralelo y en serie. Se dice que una com unica­
Figura 14.3 Comunicación unidireccional (half dúplex)
ción 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 envían simultáneam ente por ellas; pueden ser unidireccionales (half dúplex) o bidi-
en la mayoría de los casos, en valores múltiplos reccionales (full dúplex). En las primeras se trans­
de 8 bits (8, 16, 32, 64, etc.), figura 14.1. El fieren los datos en una sola dirección al tiempo y
otro tipo de com unicación, la serial, se hace bá­ se utilizan dos cables, uno para la señal y el otro
sicamente por una sola línea (o m uy pocas) y los para la masa o tierra, figura 14.3. Con este siste­
bits se envían uno detrás de otro, figura 14.2. ma hay que enviar primero los datos y después
En el primer caso, la com unicación es más rápi­ recibirlos o viceversa. Con las bidireccionales, se
da y ocupa muchas líneas o pines del microcon­ puede enviar y recibir información al tiempo y
trolador y en el segundo, es más 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 métodos principales: las co­
ción de estos circuitos, la comunicación serial es municaciones sincrónicas o sincronizadas y las
la más utilizada ya que conviene más ahorrar pi­ asincrónicas o no sincronizadas lo cual explica­
nes, que tener en cuenta la velocidad de transm i­ remos más adelante.
sión que se lograría con la conexión en paralelo.

Figura 14.2 Comunicación en serie o serial Figura 14.4 Comunicación bidireccional (full dúplex)

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


Teoría

Otro factor que se debe tener en cuenta en como un carácter, sin im portar que no sea la
las com unicaciones seriales es la velocidad de unidad final de la inform ación. El ejemplo más
transmisión de los datos la cual se mide en bits clásico de este caso son los conversores A/D de
por segundo o baudios que es en realidad la ve­ 10, 12 o más bits.
locidad con que cambian los estados de la señal
(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 carácter se envían
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 envía estos bits,
baudios. Esto es m uy im portante ya que en una el receptor debe estar en capacidad de:
comunicación serial entre dos o más elementos, • D eterm inar el momento exacto en que de­
se debe conocer la velocidad de transmisión de ben llegar.
los datos con el fin de que ésta se logre. • Reconocer cuándo empieza y cuándo termina
cada uno de los bits.
Para que dos equipos se com uniquen satis­ • Reconocer cuándo empieza y cuándo termina
factoriamente, ambos deben m anejar un mismo la serie de bits que conforman el carácter.
conjunto de normas que indiquen los paráme­
tros y la m anera correcta de realizar la transm i­ Para facilitar el reconocimiento claro de todos
sión y la recepción. Este conjunto de normas es los caracteres, se ha establecido un sistema de sin­
lo que se conoce con el nombre de protocolo. cronización por medio de algunos bits de delimita­
ción y separación. Como ya lo mencionamos, exis­
Cuando efectuamos una comunicación serial, ten dos métodos de delimitación que definen los
los grupos de datos que se van a transmitir se de­ dos tipos básicos de transmisión de datos: la trans­
ben descomponer en bits los cuales son transmiti­ misión sincrónica y la transmisión no sincrónica.
dos uno por uno desde el emisor hasta el receptor
en donde se establece de nuevo el grupo original. Transmisión sincrónica
En este tipo de transmisión se asocia un pulso
Un carácter lo podemos definir como la de reloj con cada b it transm itido. En este caso se
unidad m ínim a de inform ación com puesta de requieren dos líneas de comunicación (usualmen­
varios bits. El em isor puede generar unidades te cables), uno para los bits de datos y otro para
de información de más de 8 bits, pero como un los pulsos de reloj.
m icrocontrolador PIC tiene una CPU de 8 bits,
las unidades de información deben dividirse en El receptor puede reconocer fácilmente 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 multánea 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 propósitos de la correctos sin importar que la señal de reloj no man­
transm isión, cada segmento de 8 bits se trata tenga una frecuencia estable, figura 14.5.

Reloj

Datos

Bits de carácter
Figura 14.5 Carácter serial sincrónico

Curso práctico sobre Microcontroladores


capacidad de reconocer cuando em ­
pieza un b it y cuando termina. Si el
receptor puede determ inar cuando
Bits de carácter llega el prim er b it de un carácter y
Bits de la estructura J conociendo el hecho de que cada bit
Figura 14.6 Transmisión no sincrónica posee un periodo fijo, el receptor
puede anticipar cuando llegarán cada
Cuando un dato se codifica en determinado uno de los bits. Cuando no existen datos en el
número de bits, para separar los distintos caracte­ medio de transmisión, se dice que se encuentra
res el receptor necesita contar bits, empezando con en estado vacío o desocupado y el receptor se
el primer b it recibido. Este tipo de transmisión es encuentra esperando que llegue un bit.
adoptado por algunos estándares 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
Transmisión no sincrónica nuevo el siguiente bit, este primer b it forma parte
Este tipo de transmisión asocia unos bits especiales de la estructura y se le llama b it de sincroniza­
a cada carácter conformando una estructura o pa­ ción. El receptor repite este proceso de lectura y
quete; incorpora un bit justo antes de empezar el espera hasta que se hayan leído todos los bits.
carácter y otro b it después del carácter. Todos los
bits, incluyendo los de la estructura, sé envían 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 después 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 aparición de un paquete y después de él se riódicam ente, haciendo fija la longitud del ca­
localizan los bits de datos a una rata constante, el rácter y transm itiendo nuevamente el b it d e sin­
carácter puede ser enviado en cualquier m omen­ cronización al inicio de cada carácter de tam a­
to. Por ello, este método se conoce como carác­ ño fijo. De esta m anera los relojes sólo necesi­
ter no sincrónico y b it sincrónico. tan estar en fase durante un corto tiempo ya
que ellos se ponen en fase nuevam ente en cada
Otro método para la comunicación no sincró­ b it de sincronización.
nica consiste en transmitir a ratas de b it variables.
Este método no requiere una longitud fija de los Con un núm ero fijo de bits por carácter, 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 comunicación lo uti­ rácter 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 sión no sincrónica). Debido a que el prim er b it
sincrónicas de la estructura es un cambio del estado vacío
Ya sabemos que la transmisión 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 vacío debe seguir al últim o b it del carác-

Curso práctico sobre Microcontroladores


Teoría

►Tiempo
• Estructura del carácter-

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


sincronización paquete

Figura 1 4.7 Estructura del carácter

ter, el cual tam bién 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 carácter.
El carácter de datos se transmite empezando por
Protocolo serial no sincrónico el b it menos significativo y a continuación del
Este protocolo es utilizado por la m ayoría de últim o bit de datos del carácter 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
sincrónicas. La transm isión se describe en la El b it de paridad es un método básico para
fig u ra 14.7: caracteres transm itidos a in terva­ la detección de errores en la transmisión. La pa­
los indeterm inados pero a una rata fija de b it ridad es una característica definida sobre cada
(carácter no sincrónico, b it sincrónico). carácter de datos. Se determ ina por el número
de unos (1) lógicos en los datos. El primer paso
Según este protocolo, el estado vacío de la trans­ es decidir si se va a trabajar con paridad par o
misión es un 1 lógico, y se le conoce como estado paridad impar. Para paridad im par el número de
de marca. El estado de ocupado es un 0 lógico y se unos en el carácter de datos debe ser impar. Esto
le denomina estado de espacio. Al bit de sincroni­ es, se cuenta el número de unos presentes en el
zación se le llama b it de inicio y al bit de final de la carácter 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 número de
transición desde el estado de marca hacia el estado unos en el carácter 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
Sólo puede existir un b it de inicio, pero pue­ metodología 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 lógico)

re Espacio (0 lógico)

í
B it LSB
B it de parada
B it de inicio
Figura 14.8 Formato del carácter

Curso práctico sobre Microcontroladores


En la comunicación por medio de dos cana­
les, los datos pueden viajar en ambas direcciones
sim ultáneam ente, o pueden viajar en ambas d i­
recciones pero no sim ultáneam ente. Com o ya
lo dijim os anteriormente, un canal de com uni­
cación que es capaz de operar en ambas direc­
ciones simultáneamente se denomina full-duplex ;
Figura 14.9 Interfaz serial de dos líneas
y un canal capaz de operar en ambas direcciones
pero no sim ultáneam 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 línea capaz de operar en una sola direc­
ción 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 envíe cuando el otro no está listo
i— --------
para transmitir. Este flujo de control requiere de
Figura 14.10 Interfaz serial de dos hilos con líneas otras líneas adicionales, utilizadas para controlar
adicionales de control
de manera adecuada el flujo de los caracteres trans­
mitidos por las líneas de datos, figura 14.10.
El canal de comunicación
Muchas comunicaciones se desarrollan en dos vías El estándar RS-232
y requieren de un transmisor y de un receptor al Una aplicación real de la comunicación serial no
final de las dos vías del canal de comunicaciones. sincrónica es la que se ha definido en el estándar
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 características físicas que debe
comunicación y a las líneas de transmisión se les tener el canal y las funciones de las líneas 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 comunicación en dos vías requiere de dos construir sus propios formatos.
líneas, una para cada dirección 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 línea A al receptor del segundo les tom an unos nombres específicos 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­ ción, ellos pueden ser: Equipo Terminal de Da-
mero, figura 14.9.

Interfaz Interfaz
RS-232 RS-232

Figura 14.11 Canal de comunicación serial

i. Curso práctico sobre Microcontroiadores


Líneas RS-232 (conector de 25 pines)
PIN Nombre Dirección Función
DTE DCE
1 PG Tierra de protección — — Tierra de seguridad
2 TD Datos TX Salida Entrada Datos de salida
3 RD Datos RX Entrada Salida Datos de entrada
4 RTS Petición para enviar Salida Entrada DTE quiere enviar
5 CTS Listo para enviar Entrada Salida 0K para que DTE envíe
6 DSR Datos listos Entrada Salida DCE listo para comunicarse
7 — Común — — Tierra
8 DCD Detección de portadora Entrada Salida Enlace de comunicación 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 señal de datos Cualquiera Cualquiera Indicador de la rata de datos

Conectar DB-9 Tabla 14.1 Líneas RS-232 en un conector DB-25


IBM-PC
estándar, el equipo DTE debe tener un conector
Línea Conector RS-232 Conector RS-232
tipo macho y el DCE un conector tipo hembra.
25 pines 9 pines
TD 2 3 Estas líneas 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 líneas para fu n ­
CTS 5 8 ciones de datos, por la línea 2 se transm iten
los datos y por la lín ea 3 se reciben. Las d e­
DSR 6 6
más lín eas se u tilizan para efectos de control
Común 7 5 del flujo de los datos y el nom bre de cada una
DCD 8 1 de ellas refleja su función 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 unicación entre dos terminales de datos
por medio de un módem, un enlace de com uni­
tos (DTE) o Equipo de Com unicación de Da­
cación y otro módem, figura 14.12.
tos (DCE). Inicialm ente podemos entender un
DTE como una computadora y un DCE como
Características eléctricas
un módem, figura 14.11.
El estándar R S-232 se aplica a ratas de datos de
hasta 20.0 0 0 bits por segundo y hasta 15,24
El estándar define 25 líneas con sus corres­
pondientes números de pines dentro de un co­
nector. De las 25 líneas 11 tienen que ver con la -*—► ■*—►
com unicación no sincrónica y se pueden apre­
ciar en las Tablas 14.1 y 14.2, donde se muestra _ Interfaz _
la distribución para conectores de 25 (D B-25) y RS-232

9 pines (DB-9). De la misma manera, según el Figura 14.12 Comunicación serial por medio de un módem

Curso práctico sobre Microcontroladores


l A i t i - u i i u e d a u t i L tis c ü L iiiL L iíc 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 fácilm en te por
RS-232 m edio de una configuración 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
Lógica 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 código 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 combinación de bits.
sitivos repetidores de señal que corrigen los nive­ El código de texto de más aceptación se llam a el
les de voltaje. código 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 señal: m arca y espacio. Una primibles y 33 no imprimibles. Los primeros in­
m arca es un uno lógico y su señal de voltaje, cluyen letras minúsculas, mayúsculas, los núm e­
para que sea com prendida correctam ente, debe ros del 0 al 9, caracteres de puntuación y otros.
estar en el rango de - 3 hasta 15 voltios.
Los segundos se denom inan caracteres de
Un espacio es un cero lógico y su voltaje debe control y sirven para m anejar la comunicación.
estar entre +3 y +15V para que el receptor lo Los caracteres im prim ibles también se conocen
pueda leer adecuadamente. Si una señal se en­ como caracteres gráficos o leíbles 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 Código ASCII
a *
128 < @ m iK < IIT s , Curso práctico sobre Microcontroladores
Teoría

Jum per de 1
DTE selección
(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 comunicación serial

La mejor manera de aprender el manejo y el embargo, esas funciones se pueden desarrollar con
establecimiento de comunicaciones seriales con algunas líneas de código. En muchas ocasiones,
microcontroladores es a través de algunos ejem ­ esta opción representa una efectiva y económica
plos básicos. Ahora entraremos a analizar dos solución, y por lo tanto debe ser considerada. El
casos típicos 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 básicas genéri­ objetivo siempre será el de comunicarnos con una
cas que no están ligadas a ningún 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 configuración 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.
Comunicación no sincrónica en
microcontroladores Si el lector no tiene amplios conocimientos en
Como ya lo mencionamos, los microcontrola­ algún lenguaje de programación, no hay problema:
dores más pequeños no cuentan con módulos Windows ofrece el programa hyperterm inal que lo
especializados de com unicación (U ART). Sin podemos utilizar fácilmente.

Curso práctico 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 MÓDULO RECIBE UN CARÁCTER 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 : CARÁCTER 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 CARÁCTER
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 ; ¿AÚN 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 TIENF’O 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 MÓDULO ENVÍA UN CARÁCTER DE 8 MOVLW D’4 3 ’
B IT S , 1 DE IN IC IO , 1 DE PARADA MOVWF CONTAA
S IN PARIDAD CALL RET
ENTRA: CARÁCTER A SER ENVIADO EN EL RETLW 0
REGISTRO REGTX Y PORTA,1 DEBE »
ESTAR EN ALTO
Figura 14.15 Rutinas de recepción y transmisión no sincrónica

Curso práctico sobre Microcontroladores


En la figura se puede apreciar que el micro­ Recepción 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 isión, se ha definido un registro de banderas
cuito integrado M AX232 y los pines de conexión (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 señalización crocontrolador detecta un b it de. inicio cuya d u ­
se han conectado diodos LED en los puertos del ración es menor al tiempo normal de 1/2 bit, lo
microcontrolador.
■ Borrar banderas 1
Comunicación Half-Duplex
i l. Activar el carry
En muchos casos la aplicación de una com unica­
ción H alf-D uplex es más 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 carácter para poder ejecutar sus ta­ la derecha en el
reas, caso en el cual podemos hacer que el pro­ Espera un período
registro de Rx
gram a se encierre en un ciclo hasta que llegue el de 1/2 bit
carácter. El segundo caso se presenta cuando el
microcontrolador posee un tiempo limitado para T
esperar el carácter ( tim eou t ), ya que debe estar No
¿Aún en el Activar bandera
pendiente de otras actividades. de error
b it de inicio?

Los módulos de softw a re mostrados en la Si


figura 14.15, conforman las subrutinas de re­
i
cepción y transm isión. La velocidad de trans­ Espera un
misión es de 2.400 bps y cada carácter posee un período 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 carácter 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 recepción no sincrónica

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|¡gLi¿g

más probable es que se trate sim plem ente de un A l detectar la presencia de un cero lógico
ruido que apareció en la línea y en ese m om en­ en la línea, 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 razón 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 línea; si la comprobación no es exitosa se es­
situación de error y se activa el b it 0 de BAN­ tablece un estado de error en la transm isión,
DERA, figura 14.17. activándose 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 lógico se asume
una lectura correcta y el valor leído 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 recepción toma el dato de la


transmisión por medio de un procedimiento en
el cual el b it leído se coloca en el b it ca rry del
registro de estado y se hace una rotación 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 transmisión

Curso práctico sobre Microcontroladores


Teoría

te un cierto núm ero de veces decrem entado al­ Transmisión no


gunos registros. En la tabla 14 .4 se m uestran sincrónica
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 isión.

La instrucción 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 posición
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.

Transmisión Half-Duplex
Para desarrollar esta función 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
recepción, 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 isión. La transm isión debe
Espera un
empezar colocando un cero lógico por la línea período 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 Transmisión no sincrónica
nes (a través del carry) del registro de transm i­
sión, figura 14 .2 0. Aplicación de las rutinas de recepción
y de transmisión no sincrónicas
Cad a vez que se hace una ro tación a la Estudiemos ahora una situación en la cual sim-
derecha del registro de transm isión, cada uno plemente se recibe un byte carácter desde una
de los bits de datos em pieza a circu lar secuen- term inal (PC) y ese mismo carácter se envía 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 lín ea gram a hyperterm inal de W indow s 95/98. El
de transm isión 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 práctico 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
transmisión a
través 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 línea de transmisión 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 comunicación 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
carácter, activa la línea 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 línea D TR (PA2) y envía el mismo
C A LL B I T ¡ESPERA UN PERICCO DE 1 B n
carácter 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 envíe más GOTO L A Z 0 1
caracteres porque el microcontrolador está ocu­ MOVLW 1 0 ¡N A K
pado y no va a recibir más 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 comunicación en una transmisión 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 carác- Figura 14.23 Código fuente del ejercicio de comunicación serial

Curso práctico sobre Microcontroiadores


ter ASCII indicador de que reconoció el error. controladores son dispositivos que ejecutan una
En las redes de com unicación, cuando el emisor serie de instrucciones de manera secuencial a tra­
se ha enterado de este carácter, puede tomar ac­ vés del tiempo, este tipo de comunicación debe
ciones tales como enviar nuevamente el dato. implantarse dividiendo el proceso de recepción
y transmisión en distintas tareas. Como hemos
El código fuente del ejercicio lo podemos visto anteriormente, la unidad básica de trans­
apreciar en la figura 14.23 El m icrocontrola­ misión dentro de las comunicaciones no sincró­
dor habilita la línea 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 pequeños in­
REC_ASIN C para tomar el carácter. Al hacer tervalos de tiempo, podemos hacer una buena
la recepción y si no se ha activado ninguna ban­ simulación de operaciones simultáneas de trans­
dera de error, el dato pasa del registro de recep­ misión y recepción. Para ello, simplemente se eje­
ción REGREC al registro de transm isión REC- cuta la tarea de recepción en un instante de tiem ­
TX y se transm ite. po y la tarea de transmisión en el siguiente ins­
tante; este modo de trabajo es viable siempre y
Recordemos que la rutina de recepción en cuando se tenga un estricto cuidado en el con­
realidad lee el b it de parada cuando éste aún 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 después de que se ha deshabilitado la línea ciar el manejo que se debe hacer del tiempo de
D T R ; de esta m anera evitaremos algunos ries­ recepción y transmisión; allí podemos observar
gos como por ejem plo, que el m icrocontrola­ como el tiempo de cada b it se ha dividido en
dor envíe datos cuando el term inal aún esta pequeños 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 transmisión se
Comunicación serial Full-Duplex lleva a cabo sólo a partir de que la recepción ha
Este tipo de comunicación se caracteriza por de­ reconocido satisfactoriamente cada uno de los bits
sarrollar simultáneam ente los procesos de recep­ de datos, mostrando una especie de intercalado
ción y transm isión. Debido a que los m icro­ en la ejecución de ambos procesos.

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

Recepción

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

Transmisión

.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 Temporización de las tareas

Curso práctico sobre Microcontroladores < s m iK iim


Introducción 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 unicación se ha establecido un registro b an ­
deras denom inado BA N CO M , cuya distribu­
ción 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­
tribución de tareas en instantes de tiempo es con­ truyeron las dos tareas. Existe una tarea a d i­
figurando una interrupción 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­
cepción y la transmisión. cedim ientos específicos 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 recepción, la tarea de transmisión 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 rácter debe moverlo hacia el registro de datos reci­
cum ple indefinidamente, figura 14.25. Para fa­ bidos; de esta manera, el registro de recepción del
cilitar el desarrollo de este programa se creó pri­ usuario queda disponible para nuevas lecturas.

B IT BANDERA DE INDICACIÓN
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 práctico 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 BAÍOERA 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 recepción y transmisión

Curso práctico sobre Microcontroladores Ó E tC B Y ,l 137


liiü m u c L n ü ii a \m E fiiL L L iíe 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 Código fuente del ejercicio

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


mover ningún dato al registro de transm isión para m odificarlas,
hasta que esta tarea haya activado la bandera
de transm isión 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 práctico sobre Microcontroladores


con ellas se encarga de recibir un carácter, prove­ Si se han recibido nuevos datos, el carácter
niente de un terminal y lo devuelve (envía un eco) recibido se mueve desde el registro de datos reci­
hacia este último. Si el terminal envía continua­ bidos del usuario hacia un registro denominado
mente caracteres, los cuales se devuelven de la mis­ registro de datos de transmisión y se desactiva la
m a manera, se configura un sistema funcionando bandera BANUDA(BAndera de NUevo DAto
como Full-Duplex. El formato del carácter para este recibido) indicando al usuario que se ha tomado
ejemplo es de ocho bits de datos, sin bit de paridad el nuevo carácter. 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. transmisión listos (BANDATR) lo que le indica
a la subrutina de transmisión que puede empe­
Com o se anotó an teriorm ente, el p ro gra­ zar su trabajo. Después de esto el control del pro­
m a hace un lazo cuyo tiem po de ejecución gram a pasa a la tarea de recepción.
equ ivale al tiem po de duración 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 strucción (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 número de ciclos
requerido y luego entrega el control a la tarea de No
¿Transmisión
recepción m ediante la instrucción 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 práctico sobre Microcontroiadores G M B & H T F *. ( 1 3 9
iLlUÜliLLCCLQLl CL LgS l2liiULLLUCCiCLL!Lllj!¿ S lH tíiltS

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 recepción

No
¿Bit listo? X
Inicializar contador
de bits

Inicializar contador
de lazos de
recepción

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 recepción 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 recepción


TXON

140 Curso práctico sobre Microcontroladores


ÍO I1 ÍS

TXON

U suario Figura 14.30 Tarea de transmisión

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 cífic 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 señales para el u su ario ,
datos) se ha leído , se activa la bandera de so- cu an d o las señales se han co m p letad o . El
breflujo en la recepción. 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 práctico 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 módulo 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 sincrónico y no sincrónico ( 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 módulo permite desarrollar comu­ to funcionamiento de los programas.
nicaciones seriales Full-Duplex no síncronas o co­
municaciones h alfdú plex síncronas. 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 transmisión (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 disposición un se antes de habilitar la UART y se calcula me­
m ódulo de excelente calidad encargado de llevar diante la siguiente fórmula:
a cabo todas las rutinas que vimos anteriorm en­
te y asegurando que el código que se deba desa­ Fose - 64 (vel)
SPBRG =
rrollar se lim ite a los requerimientos del progra­ 64 (vel)
ma específico; es decir, es un módulo especiali­
zado y diseñado 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 trasnmisión en bits por
segundo (bps).
Utilizando la USART
Muchos autores, cuando utilizan la USART para En los microcontroladores PIC se han esta­
aplicaciones no sincrónicas (como en este caso), blecido dos pines especiales para la transmisión y
acostumbran denominarla UART (UniversalAsyn­ la recepción a través de la UART; se trata de dos
chronous Receiver/Transmitter). El formato de los pines del puerto C: RC6 para la transmisión (TX)
datos de la UART es 1 bit de inicio, 8 o 9 bits de y RC7 para la recepción (RX). Necesariamente,
datos y un bit de parada. En la figura 14.31 obser­ aunque inicialmente no parece lógico, 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 instrucción TRISC).

DTE

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

142 ó & C IT s l Curso práctico 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 recepción y el estado com unicación con 8 bits de datos a 2.4 0 0 bps
y control de la transm isión, 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 comunicación y los registros ción en la recepción. 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 recepción y la transmisión, 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 técnicas. I j x ie - Interrupción de
transmisión habilitada

--------------► RCIE- lnl erruPc'ón de


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

7 6 5 4 3 2 1 0 p r ir Interrupción de
periféricos habilitada
TXREG
► Gl¡:_ Habilitador global de
Registro de recepción: Se escribr en este registro interrupciones
solo cuando TXIF está activado
Figura 14.34 Registros de control para activar una interrupción
Figura 14.32 Registros de datos de la UART en la recepción

1 0 7 6 2 1 0
TRISC
“T “ RCSTA

I___►I___► Deben estar en uno para OPDD Error por


la operaciónde de la UART sobrepaso

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

7 6 3 1 0 trm t Registro de
transmición vacío
TXSTA
7 6 5 4 3 2 1 0
TX9-*—I
en 8 bits ^ BRGB:S S pSf™e ™
Transmisión TXEN ►SYNC- Selección de m0(l0
habilitada ' no sincrónico Buffer de transmisión
TXIF- (TXREG) vacío
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 recepción
tiene por lo menos 1 BITE

Figura 14.33 Configuración de los registros de control de la UART Fig ura 14.35 Registros de estado de la UART

Curso práctico sobre Microcontroladores < S lE K € tT s .


Una característica muy interesante de la UART m iento se encuentra vacío, a él llegan los conte­
es que tiene módulos internos en hardware com­ nidos del registro de transm isión y se inicia la
pletamente independientes para la recepción y para transm isión del dato. Si el registro de desplaza­
la recepción, lo que permite establecer fácilmente m iento no se encuentra vacío, la transmisión
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­ misión no em pieza hasta que el byte anterior se
viar en el registro de transmisión y leer el dato reci­ haya transm itido com pletam ente.
bido en el registro de recepción; todo lo demás lo
hacen los circuitos de la UART. En esta lección da­ Recepción por medio de la UART
remos las rutinas prototipo para la recepción, la Cuando trabajamos en comunicaciones no sincró­
transmisión y la interrupción, 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 carácter se puede ge­
nerar una interrupción notificando este evento,
Transmisión por medio de la UART figura 14.37. Cuando configuramos la interrup­
La rutina de transmisión, figura 14.36, inicialmen­ ción por recepción 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 vacío el registro de transmisión. Esto lo carácter. En ese momento la subrutina de inte­
hace chequeando la bandera TXIF del registro rrupción debe tomar el carácter del registro de re­
PIR1; cuando ella se encuentra en estado alto, cepción y trabajar sobre él dentro de una nueva
quiere decir que el registro está vacío. Cuando esta subrutina, figura 14.38.
condición se ha cumplido, el dato que se va a trans­
m itir se pone en el registro de transmisión y la Lo primero que se debe hacer dentro de esta
rutina termina. rutina es comprobar que la interrupción se de­
bió a una recepción, de lo contrario retorna.
Un registro vacío indica que ya se ha envia­ Dentro de la nueva rutina de recepción se toma
do el carácter anterior hacia el registro de des­ el carácter del registro de recepción.
plazam iento que ejecutará finalm ente la trans­
m isión. Si se ha habilitado la interrupción por
transmisión (¿z'fTXIE del registro PIE l en alto)
\
¿Datos de No
se generará una interrupción cuando el registro registro de
se haya desocupado. Si el registro de desplaza­ recepción?

\
i
Guardar contexto

No ¿Registro de
Tx vacío?
Leer los
carácteres de
receptor

1
J
r

Carácter al registro
deTx Restaurar contexto

1
L
Figura 14.36 Transmisión con ia UART Figura 14.37 Servicio de interrupción

A. *
144 <€EM H W s. Curso práctico 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 través de un ejemplo. Esta su­
byle
recibido
brutina trabaja con base en el carácter re­
cibido en el registro de recepción, para ase­
gurarnos que el dato se lee correctamente,
como se explica a continuación. Adicio­
nalmente, la misma subrutina se encarga
de generar las banderas, tabla 14.3, las cua­
les señalizan el funcionamiento del progra­
ma principal. Todas las banderas de esta
tabla se encuentran ubicadas dentro del
registro BANREC.

El registro de recepción 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
recepción se deben haber recibido con an­
terioridad por lo menos dos caracteres. Si
se lee el registro cuando un tercer carác­
ter está llegando, no se perderá la infor­
m ación 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 perderán. Si se presenta esta
situación 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 activación se
Borrar bandera
debe leer inm ediatam ente el registro antes
de sobrepaso de de que llegue el tercer carácter y se pueda
la UART
perder información. En la figura 14.39 se
observa el código fuente de este archivo, el
cual usted puede descargar de nuestra pá­
Figura 14.38 Diagrama de flujo de la recepción por medio de la UART gina en la internet.

Curso práctico sobre Microcontroiadores «145


ll l t L U lilL e d Ú L l El l a s U U IU U IU IÍC .L VIU LIL1¡¿ a k M r S

BIT BANDERA FUNCIÓN

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 recepción


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 lección, una comu­
rresponde a una porción de un ejercicio con la nicación serial sincrónica se caracteriza por transmitir
UART en el cual se desarrolla una comunicación múldples 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 línea
en su totalidad, pero está disponible en nuestra pá­ separada de la línea de datos. La comunicación sin­
gina de la internet). En este caso se recibe un carác­ crónica 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 transmisión serial de datos distribuye los
programa de aplicación. 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 disposición una señal de reloj que se pue­
ese momento, cualquier carácter 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 razón en el carácter 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 código ASCII SUB (1A) en lugar del carácter
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 transmisión sincrónica 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 válidos cada que ocurre un
devuelven pero junto con el carácter ASCII NAK flanco de subida de la señal de reloj y son leídos
(15). De esta manera, el terminal estaría 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 señal. Podemos notar que la se­
ceder a enviar los que se detectaron. ñal de reloj puede ser simétrica o asimétrica.

Tgm uznm . Curso práctico 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 Código fuente de la librería para comunicación no sincrónica utilizando la UART

S. *
Curso práctico 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 Código ejemplo de comunicación Full-Duplex

Á. *
148 € M H C iT ,. Curso práctico sobre Microcontroiadores
Reloj
u._
Datos x
L. L L. L . L .
Reloj
n _

Datos

♦ Datos válidos

Figura 14.41 Protocolo serial sincrónico

Cuando los bytes poseen una longitud fija, el D entro del bus sincrónico 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 transmisión 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 demás 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 isión, generar las
p añam iento que conform an una estru ctu ra señales 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 periféricos comunes en la
El bus I2C es m uy utilizado para conectar al comunicación serial sincrónica
microcontrolador diversos periféricos que comple­ Por lo general los dispositivos seriales desarrollan
menten el sistema y poder cumplir con tareas más una tarea periférica específica; los más comunes son:
exigentes. Este bus permite incluir dentro de una
misma tarjeta un gran número de dispositivos se­ • Dispositivos de memoria (RAM , EPROM)
riales sin que el hardw are deba complicarse dema­ • Conversores A/D
siado y empleando pocas líneas para la conexión. • 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 específicas (por lo general I2C)
un conjunto de norm as y procedim ientos ne­
cesarios para asegurar transferencias de datos Estándares r io I'
licación serial
exitosas. Este define el form ato de los b its de sincrónica
datos, la form a de la señal de reloj y las m ed i­ Dentro de la transmisión serial sincrónica se han
das de seguridad ante posibles errores en la establecido tres esquemas m uy representativos:
transm isión o pérdidas en la inform ación. Philips desarrolló el I2C {Inter I Q , M otorola el

Curso práctico sobre Microcontroladores


ILIÍ1ÜLÍLLLVLHÜLI t i Ltiü CüLULLLlLCtiClULlL-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 válidos cuando la línea de reloj está en
14.42. Partiendo de estos estándares muchas estado alto y sólo pueden cambiar cuando la línea
empresas han desarrollado circuitos integrados de reloj se encuentra en estado bajo.
adaptados para funcionar con estas tecnologías.

Emplea tres líneas: entrada de datos, salida de


Este bus emplea dos líneas: 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 selección de ch ip para cada dispositivo en
ción Half-Duplex debido a que por la misma línea 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 periférico es direccionado por softw are de cronización, pero básicamente los datos son vá­
manera que no existen líneas de selección de chip. lidos en una transición y pueden modificarse en
la transición opuesta.
-o + 5 v

Es sim ilar al bus SPI: requiere tres líneas, más la


línea de selección de chip. En este caso los datos
SDA |
LJ son válidos durante la transición 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 sándonos en él desarrollaremos una serie de ejerci­
cios en la sección de programación 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 información entre los
dispositivos conectados al bus, los cuales se clasifi­
can entre maestros y esclavos. La línea de datos es
bidireccional pero la información solo puede fluir
en una sola dirección en un tiempo dado.

En un bus PC todos los dispositivos pueden


funcionar como transmisor o como receptor, pero
no sim ultáneam ente; sin embargo, algunos dis­
positivos sólo sirven como receptores y otros
como transmisores; por ejemplo, un display es
un dispositivo que sólo 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 comunicación serial sincrónica de inform ación, generar la señal de reloj y lle-

é W K M T .: Curso práctico sobre Microcontroladores


o+5V

Solo un dispositivo
puede ser el maestro Figura 14.43 Configuración típica del bus FC

var el control de las operaciones. Para fac ili­ El inicio y la parada del proceso son señales
tar esta tarea, cada dispositivo dentro del bus de control generadas por el maestro; cada trans­
posee una dirección ú n ica por m edio de la ferencia de información debe presentarse primero
cual el m aestro puede en tab lar una co m u n i­ con una condición de INICIO, seguida de la
cación precisa con ellos. Es de resaltar que dirección del esclavo, los bytes de datos y final­
en el m ism o bus pueden existir varios d isp o ­ mente una condición de PARADA.
sitivos m aestros, pero no al m ism o tiem po.
Para evitar que se presenten colisiones por este La condición de INICIO se define como
concepto, se debe poner en claro un pro cedi­ una transición de alto a bajo en la línea SDA,
m iento de arbitram ento. m ientras la línea SCL se encuentra en alto; y
una condición de PARADA se define como una
Especificaciones del bus l2C transición de estado bajo a estado alto en la lí­
Las dos línes del bus I2C : la de reloj (SC L) y la nea SDA, m ientras la línea 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 través de
resistencias de p u ll-u p , de m anera que cuando Cada byte que se ponga en la línea SDA debe
el bus está libre, ambas líneas 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 acompañado 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 generación de las señales de control es te, y cada uno se transmite empezando por el b it
responsabilidad del maestro. Él genera la señal M SB. Los datos son válidos durante el periodo
de reloj cuando la información es enviada hacia alto del reloj y pueden cambiar durante el perio­
el bus, y cuando hay com unicación entre dos do bajo del reloj.
dispositivos, se debe establecer una serie de con­
diciones de reconocimiento entre ambos elemen­ La señal de A CK necesita de la señal 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 señal, un a vez term inados los datos,
nominado ACK {acknoivledgm ent). el transm isor debe poner en alto la línea SDA

Curso práctico sobre Microcontroladores


lllÜULiuTriHQll Ci lag CULllLLLÜCaCÍULlljtí SlHtfeUiS

y el dispositivo receptor debe ponerla de nue- Si se presenta algún error en la recepción, el


vo en bajo. Este estado bajo ocurrido durante receptor debe dejar la línea SDA en alto, esto
el periodo alto de la señal de reloj, es el reco- d eterm in a un estado de no reconocim iento
nocim iento de la recepción. (NOACK). Si un esclavo envía un NOACK, el
maestro puede generar una con-
Transferencia de b its en l2c dición de PARADA para abor­
tar la transmisión, figura 14.45.
SDA (Datos)

Después del INICIO, el pri­


(Reloj) mer byte enviado por el maestro
es la dirección del esclavo con el
Datos válidos J L Datos pueden cambiar
cual desea entablar comunicación
y establece la dirección que ten­
C ondiciones de inicio y p a rad a en l2 C
drán los siguientes datos. Para ello
los siete bits más significativos de
la dirección del esclavo indican la
dirección del dispositivo y el bit
menos significativo (LSB) deter­
m ina el flujo de la información.
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 gráfica donde se mues­

y Reconocimiento
tra una transmisión P C donde el
dispositivo esclavo es una memo­
ria EEPROM. La señal ACK ge­
El SCL desde el nerada por el esclavo es lo que si­
maestro
gue después de la dirección del es­
clavo y a partir de ella deben estar
Inicio J Pulso de reloj para los bytes de datos; luego va la señal
reconocimiento
ACK generada por el receptor.
Figura 14.44 Funcionamiento del bus PC

ry
Señal 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 práctico sobre Microcontroladores
Si en un momento dado se desea cam biar la com unicación con el esclavo se term ina con
la dirección de los datos, se debe enviar de nue­ el envío de una señal de PARADA.
vo una condición de IN ICIO y la dirección 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­
nicación 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
Dirección del dispositivo 1 = Lectura dispositivos como visualizadores, decodificado-
0 = Escritura
res, controladores, etc. En la sección de progra­
mación analizaremos un ejemplo en el que, a tra­
Fig ura 14.46 Formato de la dirección del esclavo vés del bus I2C , incorporamos una memoria se­
rial a un sistema microcontrolado.

NO j ~ Parada
Inicio— |
Dirección 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 Transmisión PC

PARA SABER MÁS sus productos, logrando una reducción en cos­


Breve historia del l2C tos y aum entando los volúmenes de producción.
El bus l2C se desarrolló en los años 80 e inm edia­
tam ente fue clasificado dentro de la categoría 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 comunicación 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
adopción se debió al alto interés 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 líquido, etc. A hora la m ira
nicación en la electrónica 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 mayoría 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
automóviles. 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 tecnología en c o m p o n e n te s del bus l2C.

Curso práctico sobre Microcontroladores


liiu u tiiiC L ñ ú ii a la s aüLuiLLÜ caLnuues sa H ia la s

TV Radio Audio Teléfono Industria Autom óvil


Recepción de TV •
Recepción 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 rápido 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 periféricos 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 unicación. to s para in c o rp o ra rse al bus l2C.

Integrado Función D irección


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 vídeo 1 0 0 0 1 0 0
TDA8421 P rocesador de aud io e stéreo 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 nización 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 ayoría de diseños en instrum entación y
control de procesos industriales, debido a que
perm iten leer variables análogas de sistemas rea­
les y registrarlas en la m em oria. En esta lección
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 iüUrS aid lu d u / d íu íú iL es

En los m icrocontroladores más modernos que internam ente se haga esta conexión y no
de M icrochip tenem os la posibilidad de leer tengam os que em plear un pin para aplicar un
señales análogas por m edio de un m ódulo in­ voltaje de referencia externo; de esta m anera
terno especializado. Sus principales caracterís­ 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 más apropiado para hacer correspon­
de la referencia del microcontrolador) der el voltaje de referencia con el voltaje de la
• Un m ultiplexor análogo alimentación del PIC, es cuando se trabaja con
• Un circuito de ajuste y retención de la señal de un transductor cuya salida es proporcional a su
entrada propia fuente de alimentación, permitiéndose un
• Varias alternativas de fuentes de reloj para lle­ am plio rango de voltajes análogos de entrada,
var a cabo la conversión entre OV y el voltaje de referencia:
• Velocidad de toma de muestras (muestreo)
ajustable
• Selección de un voltaje de referencia interno o 0V< V <V
EN TRAD A - R E F E R E N C IA
externo
• Conversión a 8 ó a 10 bits (dependiendo de la
referencia) Para configurar el funcionamiento de los con­
• Generación de interrupciones cuando se ha vertidores A/D debemos seguir el procedimiento
completado la conversión

Salida d igital

Analicemos el caso de la conversión


a 8 bits. El convertidor análogo/di­
gital maneja la función de transfe­
rencia mostrada en la figura 15.1,
en donde se convierte el voltaje de
entrada en un número de 8 bits.

La señal análoga 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 más u ti­


lizadas para configurar el voltaje
de referencia para el convertidor,
es que éste corresponda al volta­
je de alim en tación del PIC. Para 256 256 256 256 256 256 256 256
hacer uso de esta opción, debe­
___________________________ Voltaje de entrada_________________________________
mos hacer algunas configuracio­ Voltaje de referencia
nes dentro del program a para
Figura 15.1 Función de transferencia del conversorA/D de los PIC
t *
156 Curso práctico sobre Microcontroladores
Entradas análogas Sólo para entradas Sólo para l/O
ó l/O digitales análogas 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 más aconsejable
1 1 -Entradas análogas
utilizar una referencia de voltaje externa
_ 1: Entrada digital
" 0: Salida digital de 3,0 voltios para proporcionar una ma­
1: Entrada análoga yor resolución en la salida (para medicio­
o digital
-------------No establecidos 0: Salida digital nes de voltajes análogos 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 conexión
Deshabilitar funciones _ 1: Entrada análoga de una referencia de voltaje externa al
alternativas del puerto E o digital
0: Salida digital PIC y adicionalm ente, la configuración
de los registros para su funcionam iento.
• No establecidos

Figura 15.2 Entradas análogas con Z = Zn.

Resumamos las principales características


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 configuración de los registros asociados. C ual­
quier pin al que le sea asignada la función de en­ Interno: VREFER^ aA
trada análoga 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 análoga. Externo: 3,0V <VR E F E R E N C IA<- V DD + o ^ V

El módulo A/D de 8 bits tiene tres registros Típiica-


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

Curso práctico sobre Microcontroladores € M IK < IIT s


LOS CULlVLHiíliüL-lrS CiLldLüUü/lÍLULtdLeií

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 irección: 08h D irección: 88h


con dición de reset. 00000000b C ondición de reset. 00000000b

ADSC1.0: A/D Conversión Ciock Select ó selector del reloj U: Unimplemented No establecidas.
del convertidor
Estos bits se leen como ceros.
PCFG1,0: Configuración 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. análogas E. análoga E. análoga Vdd
01 E. análogas E. análoga Referencia RA3
Res: Reservado
Este b it no se utiliza 10 E. análogas 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
análogo

00 canal 0 (AIN0| Figura 15.4 Registro ADCON1


01 canal 1 (AIN1)
10 canal 2 (AIN2) sos de conversión, es tener en cuenta el tiem ­
11 canal 3 (AIN3) po de m uestreo q ue se acaba de listar en las
anteriores características y cuya estructura ge­
GO/DONE: Comienza la conversión cuando se colo ca en neral se aprecia en la fig u ra 15.6.
1. Al fin a liz a r la conversión es puesto en O por
hardware.
ADIF: A/D Conversión Complete interrupt Flag ó bandera Cuando seleccionamos un canal de entrada
de interrupción por finalización de la conversión. al convertidor A/D, un interruptor de muestreo
Se coloca en 1 cuando termina la conversión; debe que funciona como m ultiplexor análogo lo co­
ser puesta en 0 por programa. necta a un condensador de muestreo (C R|.TEN),
ADON: B it para controlar la activación del convertidor. figura 15.6a.
0: módulo del convertidor desconectado y por lo
tanto no exige corriente.
1: módulo del convertidor A/D en operación.
El voltaje de retención V R[..|TNdebe m ante­
nerse el suficiente tiempo para que el conden­
Figura 15.3 Registro ADCONO sador de retención 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 conversión. 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 configuración de seguidor, f i g u r a 15.6c.
• 19 uspara un oscilador de 4 M Hz
D espués de esperar el tiem po de m ues­
U na de las características más im p o rtan ­ treo, se puede in iciar la conversión. 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 práctico sobre Microcontroladores


+5V Sólo para entradas Entradas Sólo para l/O
análogas análogas 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 conversión 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 práctico 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')
Selección
del canal L Activar el ADC
-B it no establecido
.No iniciar aún la
conversión

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 Configuración y utilización del registro ADCONO
bajo la restricción de que el periodo del A/D
debe ser de 1,6 us o mayor. treo y luego in iciar la conversión activando el
¿/>GO_DONE del registro ADCONO. C uan­
La selección 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 conversión 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 sólo vamos a utilizar una entrada aná­ muestras periódicam ente de uno o más canales
loga, podemos seleccionarla como se ilustra de entrada, un excelente recurso es pensar en la
en la figu ra 15.7b y la selección 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 análogas, es im portante esperar C C P 2, del cual ya analizamos su operación en
un tiem po de m uestreo com o se apreció en la las lecciones 12 y 13 de esta sección, para que
figura 15.6b. Esto es, una vez seleccionado el periódicam ente se encargue de iniciar el proce­
canal, debemos esperar un tiem po de mues- so de conversión.

;.4. Curso práctico 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 ráctico 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 ián 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 habilitación 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 abilitación 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 señal 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 nsición en el pin RA4/T0CK (Contador)
RTE: TMRO SignaI Edge o Flanco de la señal 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 transición 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 transición 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 Asignación 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 asignación 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 división 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 división 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 práctico sobre M icrocontroladores


Teoría

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 ación 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 electrónico.
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 configuración establecida dentro Cuando se programa un microcontrolador PIC, den­
del entorno de desarrollo, figura 16.3; tam bién se tro del código se suele colocar la palabra de configura­
puede hacer dentro del código del program a por ción que corresponde a una técnica que nos permite
m edio de la palabra de configuración. Debemos configurar desde el programa los parámetros con que
va a funcionar el circuito; para hacer esta operación se
puede colocar un número 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 configuración 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 parámetros
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 código del programa. Esta directiva hace una
“ B ro w n-o ut V o lta g e operación 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 Parám etros de configuración 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
(H’2 0 0 7 ’)

F ig u ra 16.4 Palabra de configuración

Curso p ráctico sobre M icrocontroladores c i6 3


El iVcI lHiilül! 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 rerías, 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

o
tos archivos IN C tam b ién 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 página 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 propósito
general.
ejemplo PIC 16C 74 y PIC16C74A. Esa diferencia
RP1,0: Selectores de pági na para di recclonamiento directo.
se verá reflejada en la palabra de configuración. flte rRPU se utiliza en el P tC tfF 8 4J3g 1 se puede
utilizar como un b it de propósito general.
Los b its de c o n fig u ra ció n del código p ro ­ Time Out o B it de finalización 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 porización.
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 instrucción 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 operación lógica 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 dígito. 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 más
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 práctico 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 cóm o se d e sp ierta el P IC , el
m icrocontrolador este no opera duran te algún p ro g ram a in ic ia r á su o p eració n en d e te rm in a ­
período 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 ergía. Esta carac­ u n a señ al en el p in M C L R o por u n a señ al del
terística 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 rtátiles 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 baterías. 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 inglés 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. Señal 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 lgún m ódulo periférico 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 ttúe 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 señal es estable y a partir de ese m o­
Figura 16.6 Registro PCON
m ento em pezar la ejecución norm al.

Curso p ráctico 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 bién 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 strucción en PC+2 o salta a la
cuentra en alto, el PIC saldrá de este estado hacia in strucción ubicada en la dirección 04.
la dirección 04. Si esto no se debe a una interrup­
ción, 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 terrupción , 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 instrucción SLEEP siem pre se busca la
siguiente instrucción (PC+1); como siem pre ocu­
rre ese fenóm eno, es conveniente colocar siem ­
pre después de la instrucción SLEEP u n a ins­ Borra el contenido del tem poriza­
trucción 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.
ción 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 espués de la instrucción 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
señal del reloj y de nuevo está en cap acid ad de
ejecu tar instrucciones.

it :. Curso p ráctico sobre M icrocontroiadores


Teoría

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
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 ráctico sobre M icrocontroladores # r


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

TO PD RB1 RB2 Descripción


1 1 1 0 P ow er on rerzt/MCLR durante la operación normal
1 0 1 0 Señal de _ M C L R d uran te el m odo sleep
1 0 0 1 Señal 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 dirección 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 señal de reset, la señal 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 envía 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 ejecución term inó. C O M F regis,0
Antes de la instrucción regis = 1 3 , W = ?
Si colocam os u n p unto y com a d elan te de D esp ués 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 instrucción regis = 1 3
En las p rim eras lín eas d el p ro gram a p o d e­ D espués de la in strucción 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 lín 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 lín 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 bién podem os IN C F regis, 1
hacer el ensayo de desactivar el W D T desde el A ntes de la in stru cción regis = 24
program a pero h abilitarlo en el entorno de pro­ D espués de la in strucción regis = 25
gram ación para visualizar el resultado.

< £ M IK < IIT Curso práctico sobre M icrocontroladores


LECCIÓN 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 ráctico sobre M icrocontroladores


D esde la aparición 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 código entre todas sus
dos en virtu d de sus m agníficas características, fam ilias, lo cual los hace de fácil uso y flexibles,
tales com o in m u n id ad al ru ido eléctrico, facili­ perm itien d o el intercam bio de program as entre
dad de program ación, velocidad, com patibilidad, m icrocontroladores de diferentes fam ilias.
flexibilidad, y una am p lia gam a de característi­
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 electrónicos y sistem as de los tipos de puertos de co m un icació n (S C I, SPI,
com unicación telefónica analógica o digital, las I2 C , M B U S , U SB , SIO P y C A N ), el espacio y
redes de transm isión de datos, vídeo y sonido, los tipo de m em oria (E E PRO M , F LA SH y R A M ),
sistem as de rastreo y localización satelitales {global el núm ero de canales A/D (4 a 10 canales), y el
p o sitio n system G PS), los sistem as inteligentes para núm ero disponible de puertos d igitales de entra­
el control del tráfico terrestre, los dispositivos d i­ d a y salid a (entre 15 y 91 ).
gitales para el alm acenam iento, reproducción y
reconocim iento de voz, y la construcción de dis­ En este curso se e stu d ia rán 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 características princip ale s de ios m icrocontroladores M otorola de la fam ilia 68HC08
M *
170 Curso p rá ctico sobre M icrocontroladores
Teoría

racterísticas, red u cid o costo y fac ilid a d de p ro ­ 5 ,5 V C C , ideal para la fabricación 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 portátiles.
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 características 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 porización 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 peño. Todos los m i­ logo/digital de 8 bits.
cro controladores de esta fam ilia poseen u n a pa­ • Q uince líneas 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­ propósito 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 características 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 típicas para la m ayoría 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 líneas
• 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 protección para el código 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 gía com patible tor de código ilegal y detector de dirección 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 iseño C M O S con bajo consum o de potencia ción a Vdd, e interrupción de restablecimiento a la
y con u n ran go de alim e n ta c ió n e n tre 3 y conexión de la alimentación PO R {power on reset).

28-p¡n 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 interrupción 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 paración 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 características 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.LL¿UL^b- WlUÍUIV¡íi

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 práctico sobre Microcontroiadores


Teoría

• U na entrada de interrupción maestra no sincró­ , que está


nica IRQ activa en nivel bajo, con resistencia de representada por un conjun to de registros de
sujeción y tecnología schm itt-trigger, programables. propósito 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 características 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 división 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 lógicas 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, disposición in ­ m u ltip licacio n es, rotaciones y d esplazam ien­
terna e interconexión que hay entre las diferen­ tos, en tre otras.
tes partes que conform an un m icrocontrolador
M o toro la típico de rango m edio, tal com o los Sin em b argo, cu m p le tam b ién 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 través del registro co n tad o r del pro­
la m anera com o están 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 ación 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 ejecución y buenas carac­
arqu itectu ra Von N eum ann , y que está contro­ terísticas técnicas 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 cálculos con grandes volúm 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 vídeo.
diagram a de bloques y son: el núcleo 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á,
periféricos internos. conform ado por un gru p o de b its que gene­
ran las señales de sincro nización y control
El núcleo de procesam iento necesarias para que el flujo de datos a través
Es el “corazón” del m icrocontrolador, tam bién del bus se efectúe sin contratiem pos y en la
se le conoce com o la U nidad C entral de Proce­ dirección 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 propósito 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 peño 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 lógicas reali­
que conform an la C P U son: zadas por la ALU.

Curso práctico 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­
ción d el ciclo de reset m aestro, en el SP se gra­
, fig u ra 1 7 .4 , es un
ba la dirección 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 strucción
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 más 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 ién 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 ,
8«15 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 práctico sobre M icrocontroladores


Teoría

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 código del program a con todas sus varia­


, fig u ra 1 7 .6 , es tam bién 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 dirección de la próxim a in stru c­ portantes para el usuario de esta tecnología y que
ción o el operando que se debe buscar, a tra­ están ligados con el tipo de m em oria disponible
vés 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 posición
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 lógico 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 operación aritmética, en complemen­
m em oria FFFE y FFFF; de esta form a que­ to a dos.
d a cargado con un núm ero de 16 bits , que H - B it indicador de acarreo interm edio ( h a lf-
representa la dirección de la prim era in struc­ c a r r y fla g ) . Es colocado en 1 lógico cuando
ción 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 operación
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 lógi­
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 lógico) se habilitan. Este
b it es automáticamente colocado en 1 luego
F ig u ra 1 7.6 Registro contador del program a de la CPU08 de la acción de r e s e t y la atención a una señal
de interrupción.
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 lógico cuando el resulta­
bién llam ado por otros fabricantes de microcon­ do de una operación aritmética o lógica, 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 operación lógica, arit­
bits más que indican el resultado de la instruc­ m ética o entre datos es 00, este b it es colo­
cado en 1 lógico; de lo contrario se m antie­
ción que está siendo decodificada. 'Eras la ejecu­
ne en 0 lógico.
ción 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 lógico cuando se
dor de interrupciones del m icrocontrolador (I); presenta un acarreo hacia afuera o hacia aden­
éste se coloca en 1 lógico y las inhabilita. tro del séptimo b it del acumulador, durante
la ejecución de las operaciones de adición y
El sistem a de m em oria sustracción, y algunas operaciones lógicas.
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 cód igo de condición de la CPU08

Curso práctico sobre M icrocontroladores tÚ M IK IT T .


En el caso de los m icrocontroladores M o to ­ Las características y luncio n es d e los m ód u ­
rola, el usario cuenta opcional m ente con tres ti­ los periféricos 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, serán tratadas am ­
badas en cualquier instante (P LA SH , EEPROM pliam ente en las próxim 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 ). Asignación de pines en los
m icrocontroladores 68H C 08
La organización 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
terísticas 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 están d is p o n i­
ser de g ran im p o rtan cia, se tratarán con más 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­
conexión con la C P U se hace a través 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 periféricos internos
Los m ódulos periféricos internos desem peñan
funciones básicas 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 regulación y
protección a la alim en tació n ; ellos facilitan la
operación de todo el sistem a y la conexión con
otros dispositivos o sistem as del m un do exterior.
A dem ás, desarrollan tareas específicas 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 entación con
esta tecnología.

Los m icrocontroladores M otorola, dentro de


la fam ilia 6 8 H C 0 8 , cuentan con m ódulos peri­
féricos versátiles de m ucho uso y fácil m anejo,
que agilizan las tareas de control y procesam ien­
to de daros que se pueden desarrollar. Los m ó­
dulos periféricos 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­
cación serial (S C I, SPI y C A N ), canales de con­
versión A/D, y salidas de control P W M . Figura 17.8 Asignación 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­
nexión 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-
cialización de las tareas que son capaces de desarrollar, y
esto depende de las funciones y características que los
diseñadores h ayan in c lu id o en los puertos.
. *■
Curso práctico sobre M icrocontroladores
Las- Liua-Ltas d e l a s LiucL-ucaLiualciduL-aa LiCQ L da1 U 'iüim 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 distribución y asignación 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 interconexión del usuario con res q u e v a ríe 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 características 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 escripción d el pin D irección
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 irección N ivel de
Pin D escripción 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 escripción general de la s características, 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 energización in icial, debido a la
C2 C1 - L excitación de grandes cargas a través de sus p uer­
1-1 OjaF ‘ 0 ,1 |iF '
tos, al reset, o a la en trad a de señales transitorias
d e alta frecuencia (ru id o eléctrico) 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 dañarlo u ocasio­
N ota: (Los valores de los condensadores son típicos)
• C1 debe s e r un condensador no polarizado y para nar su m al funcionam iento.
alta frecuencia (cerám ico o de poliester).
• C2 es un condensador opcional electrolítico 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 tación ,
F ig u ra 18.1 Filtrado externo de la entrada de alim entación del
m icrocontrolador se crea un filtro pasa bajos sim ple q u e puede pro-

C urso práctico sobre M icrocontroladores


L u s lio r n a s d a la s lu lc l u £ i l iíl ü 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 señales 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 lógi­
taje adecuados todos los dispositivos y sistem as co apropiado tal com o OV (VSS) ó 5VCC (VDD).
periféricos 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­
versátiles. Todos los puertos pueden ser progra­ quiere cerrar el circu ito para su buen desem peño,
m ados en varios m odos y efectuar diferentes fun­ es recom endable, por su tecnología basada en in­
ciones, tal com o se estudia a continuación . terru p tore s electrónicos tip o FET {fíele/ 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 través del re­
gistro de datos A (P T A ), y está com puesto por dañen 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 ­ electrostáticas.
nes especiales de en trada y salida d igitales. Tam ­
bién puede ser configurado com o 7 entradas ex­ En cualquier m om ento, la acción 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 características y las funciones alternas pro­
del código 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 dirección 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 dirección de Internación Interropoón Intenupdón Intenupción tntenupción 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
condición de entrada o salida sobre cada ter­ D irección del registro DDRA: $ 0 0 0 4

m inal o p i n del puerto; con un uno lógico


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 lógico, se deshabilita el b u jfer de R eset:

salida y se program a com o entrada. Figura 18.2 D efinición 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 irección 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 posición 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 efinición 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­ vés 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 dirección de d a­
te m e n te , sie m p re y c u a n d o éstos estén 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 acción 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 onfiguración interna en bloques de l c ircu ito dei pue rto A

Curso práctico 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 través 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 efinición 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 están 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 ­
características 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 ién 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 están 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 módulo de
convertidores A/D

Figura 18.6 C onfiguración interna en bloques del circu ito d e l puerto B

1*. Curso p ráctico sobre M icrocontroladores


Dirección del registro PTD: S0003 U na vez se ejecute la acción 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 características y las funcio­
nes alternas propias del registro de datos
del puerto D (PT D ) y del registro de d i­
TCH1 TCHO n rección 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 efinición 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 rección $ 0 0 0 3 se efectúa 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 efinición 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 onfiguración interna en bloques deI circu ito d e l p u e rto D

Curso p ráctico 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 líu Id u ia ia L c i

PARA SABER MÁS


Programación 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 dirección 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 ación 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 dirección 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 dirección 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 rístic 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 Configuración 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 Configuración 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 Configuración 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 características y funciones definidas para lo s p uertos A, B y D

£ *
< Ú M IK < IIT s „. Curso práctico 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 ría 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 ráctico 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

eléctrico; m ientras que el otro lo hace por m edio de


Si lu gar a dudas, uno de los m ódulos periféricos 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 señales de reloj que definen la ve­ mas entradas externas {pines O S C l y O SC 2) asig­
lo cid ad de ejecución del program a por p arte del nadas en el m icrocontrolador para la conexión 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. Según el periodo de oscilación (o fase) de
esta señal, se sincronizan, ejecu tan, y evalúan to­
das las tareas que en el in terior de éste se desarro­ El circu ito típico de este m ódulo es un oscilador
llan ; tales com o: los ciclos básicos de búsqueda y con com puertas en configuración P ie r c e , el cual
cap tu ra, de ejecución o decodificación de la ins­ ofrece m u y buenas características de estabilidad
trucción, 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 piezoeléctrico. 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 señales de reloj requeri­ no, y la conexión 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 función 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 señal de reloj a partir de un tal com o se m uestra en el c ircu ito típ ico de la
cristal de cuarzo XTAL o de un resonador piezo- fig u ra 1 9 .1 , y éstos son:

MÓDULO DEL
Desde el SIM OSCÍLADOR

186 H e H I T , ,. Curso p ráctico 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 típ ico es 10M Q ; su fu n ció n con­
equivalente C L entre 5 y 40pF. Su conexión con siste en fac ilita r el arran q u e de la oscilación
el módulo interno del microcontrolador se hace con cu alq u ier cristal o resonador, u n a vez que
a través 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
típico debe ser alrededor de dos veces la capa­ O S C l y O SC 2.
citancia equivalente del cristal o del resonador.
Su conexión 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 sólo 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 diseños estándar de los
debe tener una estrecha tolerancia (m enor al osciladores digitales en configuración 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.
típico 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 estándar 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 señal de carga y descarga del con­
sintonía se debe conectar al circuito del oscila­ densador en un tren de pulsos rectangulares, sin
dor en su salida, o sea a través del terminal O SC 2. distorsión, 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 práctico 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 LvíciüL-aLe

En térm inos de estab ilidad y precisión, los R C ); por m edio de ella el m ódulo del sistema
osciladores cu ya frecuencia de salida depende de de integración 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 estarán 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 precisión (con Esta señal 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á
señal de reloj con una to leran cia del 10% o m e­ dado típ icam en te por la frecuencia nom inal
nos. La conexión 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 través del term i­ ció de la señal dependerá de la calid ad y los
nal O S C l; m ientras que en el term in al O SC 2 parám etros de fabricación 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 señal de salida de reloj del oscilador rán 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­ nexión a la alim en tación .
terno sim p lificado del m ódulo del oscilador con
red R C externa, y la conexión 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 configuración 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 eñales de reloj internas
En las figuras 19.1 y 19.2 se pueden ver tam bién Ésta es la
las princip ales señales que intervienen y se o rig i­ m ism a señal 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 través 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 operación; é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 señal cum ple la m ism a fun­ o p e r a tin g p r o p e r ly ) .
ción 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 unción 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 envía al m ódulo SIM
Oscilador con XTAL Señal 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 señal
PTA6EN = 0: salida RCCLK
del reloj, usada por el bus interno de la C P U ,
PTA6EN = 1: Línea de puerto PTA6
el m ódulo SIM divide nuevam ente por dos
Tabla 19.1 C onfiguración y funciones asignadas a lo s pines d e l
o scilador en los m icrocontroladores 68HC08 esta señal, con lo que se d eterm in a que la
* *
188 < € iM ib z in r Curso p ráctico sobre M icrocontroladores
Teoría .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 típicas q ue se deben considerar a la hora de
cuencia de la señal del oscilador R C o XTAL configurar los módulos de oscilación 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 rís tic a s e lé c tric a s d e lo s d e alim entación 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 entación (entre 3 y 5V ), esto no quiere decir externo de lOpF con b aja tolerancia, elegir una
q ue m uchas de sus características eléctricas fun­ frecuencia, y calcular la resistencia por m edio de
dam entales para su operación 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 típicos, a llí se
La frecuencia de op eración de todas las señales 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 tensión 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 función 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 terrupción de in icialización
M ínim o Típico M á xim o
C aracterísticas S ím bolo Unidad
3V 5V 3V 5V 3V 5V

Frecuencia de operación interna F0P - - - - 4 8 MHz

Pulso bajo de reset mínimo (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


Según el fabricante PF
Condensador fijo del cristal C1 - - 2xCL 2 x CL - - PF
Condensador de sintonía del cristal C2 - - 2xC|_ 2 x C[_ - PF

Resistencia de realimentación rb - - 10 10 - MQ

Resistencia en serie del oscilador Rs Según la impedancia del cristal kQ

Resistencia extema del oscilador RC Calcular según a figura 1 9.3 kQ


r ext

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

Tabla 19.2 C aracterísticas y especificaciones de com ponentes externos para lo s m ódulos osciladores de los m icrocontroladores
68HC08 y 68HRC08.
á *
Curso p ráctico 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 líl- li'u m u -u l¿'

w 14'
12
10 \ Tem peratura 25°C

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 cálculo de fíe x t

d el m icrocontrolador es la fuente de m ayor je ­ to la in terrupción será atend id a en cualquier mo­


rarq u ía, esto significa que su petición será aten ­ m en to , in m ed iatam en te después 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 validación. en la figura 1 9 .4 se aprecia el d iagram a de tiem ­
pos que representa la ejecución 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 señal de interrupción de reset, el
m icrocontrolador es obligado a asum ir un conjun­ Condiciones iniciales establecidas por
to de condiciones iniciales para sus módulos inter­ m edio del ciclo de reset
nos, y a iniciar la búsqueda y ejecución de las ins­ U n a vez la condición 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 sincrónica con el m icrocontrolador, a p artir d e una posición y con
ciclo de ejecución de instrucciones, y por lo tan­ unos parám 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 práctico sobre M icrocontroladores


PARA SABER MÁS 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 operación, y algunas están 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 operación 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 entación definido; y aunque los m icro co n trla - para ejecu tar correctam ente el código de opera­
dores de la fa m ilia 68HC08, a m á xim a frecuencia, ción de los program as.
sólo 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
través del reset, se describen a continuación .
ce ntenar de m icrocontroladores y poseer lim ita ­
ciones en su d isponibilidad de energía.

D espués de la ejecución del ciclo de reset, el


La e lección 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 ejecución o decodifi-
im p o rta n te que se debe co n sid e ra r y que está cación 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 bién 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 lógico
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 código 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 demás 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 típ ic o s . un estado indeterm inado luego del reset. Sin em­
bargo, algunos bits de control del registro del
código de condiciones C C R , tales como la más­
cara de interrupciones I, y las banderas de los
modos de operación ST O P y "WAIT, son pues­
>
MC60HRC08jX* tos en uno y cero lógico respectivamente, para
— 5V inhabilitar todas las fuentes de interrupción 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 entación


del m icrocontrolador con todos sus m ódulos internos activos
(lDD), frente a la frecuencia de operación 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 operación
I *
Curso práctico 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 riférico 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 rección 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 MÁS
m o d o m o n ito r se e fec tú a lle v a n d o dos de
Validación del reset externo e interno
su s lín 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 rís 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 elección 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 rís 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 selección d e l m odo de operación in m e rs o s en un s is te m a c o m p le jo .
de la CPU08

Curso práctico sobre M icrocontroiadores


LECCIÓN 20

ORGANIZACIÓN 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 ráctico 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 istribución 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 interrupción (INT1)
m icrocontroladores JK y JL .
SFE05 Segundo registro de estados de la interrupción (INT2)
3. El área de m em oria asignada para la tabla de
SFE06 Tercer registro de estados de la interrupción (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
Asignación de registros dentro del área
SFEOC Registro de dirección del break alto (BRKH)
de m em oria
SFEOD Registro de dirección del break bajo <RRKL)
El conocim iento del propósito, la ubicación exac­
SFEOE Registro de estado y control del break (BRKSCR)
ta, la disposición y la función 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 rganización de la m em oria bución y asignación 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 ayoría 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ó­
zación, 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 posición 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 práctico sobre M icrocontroladores


REGISTROS DE PROPÓSITO ESPECIAL

O irección 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 dirección 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 dirección 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 dirección 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 hábilitador 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 ráctico 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)
fíeset: 0

Lectura:
$001E Registro de configuración 2 IRQPUD R R LVIT1 LVITO R R R
Escritura:
(C0NFIG2)*
Reset: 0 0 0 0** 0 '* 0 0 0
Lectura
$001F Registro de configuración 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 conexión (POR) las interrupciones LVITI y LVtTO se colocan en 0 lógico
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 después 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 después 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 después 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 después del reset

Curso práctico sobre M icrocontroladores


Teoría

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 lógico 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 dirección 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 dirección 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 Localización y asignación 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 función, su direc­ m ada por los prim eros 128 bytes-, ésta provee al
ción 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 terrupción internos y externos solicitados por acceso ráp 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 bién 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 parám etro q u e define el orden RO M
de atención 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 activación pueda lle­ las direcciones SE C 00 y SFBFF (4 09 6 bytes) para
gar a ser sim u ltán 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 código 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 odificación.
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 bién están contenidas la ta­
dor, y que requieran ser leídos 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
ción 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 0€W t : Curso p ráctico sobre M icrocontroladores


Teoría

P rioridad Sím bolo D irección V ector

Más baja IF15 SFFDE Vector alto de fin de conversión del ADC

SFFDF Vector bajo de fin de conversión 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 cterís­
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
típ 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 estándar 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 práctico 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 posición A. el reloj del bus es igual
al reloj del oscila dor d ividido por cuatro. PTB1
Con SW1 en p o sición 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 típico 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 través 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 lógico).
(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
través 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 práctico sobre M icrocontroiadores


Teoría

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 ectorización 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 selección
$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 básicos de com unicación del
modo m onitor
Velocidad de com unicación 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 efectúa
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 estándar 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 isión puede ser cu alq u ier valor estándar
m ó d u lo o scilad o r ac tiv o , y d ep en d e tam b ién 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 próxim

~\ 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 práctico 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 unicación, el pro­ En las fig u ra s 2 0 .5 se d escrib en g ráficam 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, enviándolo 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 sólo 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 ejecucón d e l cód igo de X R UN f~ RUH j


program ación 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 práctico sobre M icrocontroladores


EL MÓDULO 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 ráctico sobre M icrocontroladores


BH ,t..t
El uiüiiulu U l ú A y Lúe m u t i u e ¿ l- d a m l i i u a i i L L m u d i Lúe luíinudiiiiiulíiiiui^UtiKÜtíü

Acceso directo a m em oria (DMA) transferencia con el D M A se efectúe, 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 rápido 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 volúm enes de nes de control d e la C P U ; en térm 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 cóm puto grandes y com plejos y los m icro- Para transferir pequeños volúm enes de datos
procesadores de alro rango; afo rtunadam ente el el m étodo de acceso directo a m em oria que más
desarrollo de la tecnología 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 ación, el m é­
de funciones y m ódulos periféricos de alto des­ todo que se usa sólo roma el control de u n a parte
em peño, 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 códigos
m ilia 6 8 H C 0 8 , son un ejem plo de la evolución de program a sin interrupción durante la transfe­
en el m anejo de la m em oria; éstos poseen un m ó­ rencia. Bajo esta condición 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 ejecución 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 código 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 práctico sobre M icrocontroladores


6 8 H C 0 S , el D M A 08 es un m ódulo coprocesa- Operación 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­
dirección y datos al co n clu ir cu alq u ier ciclo de ques el m odo de operación del D M A ; los bloques
bus, y está diseñado 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, están 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 dirección 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 característica 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 núm ero de transferencias he­
desde fábrica, h ab ilitar y expandir el núm 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 representación 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 lógico 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 ■

DIRECCIÓN I DIRECCIÓN
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
Líneas de control

F ig u ra 2 1 .2 Diagram a en bloques de l m ódulo DMA08

Curso práctico sobre M icrocontroiadores (gM IK Z IIT


LzLluúiiiilu ÜIv'l/a v lus luudus El1 (iLLiKítmillíUliI^lilq cu lus lutciucuiiiiijI lllíulcc lUliPÜÜ

DIRECCIÓN BASE
DE LA FUENTE

DIRECCIÓN BASE
DEL DESTINO

DIRECCIÓN DE
TRANSFERENCIA

BUS INTERNO DE
LA CPU

F ig u ra 2 1 .3 Operación 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 sólo 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. Interrupción 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 características 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 configuración 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 sólo
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. ración 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 práctico sobre Microcontroladores


PARA SABER MÁS:
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.
vés 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 guía, 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. cíclica, 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 lógico 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 leído 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 después de la habilitación 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 sición 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 interrupción 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:
ción 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 interrupción del canal 0, y

Curso p ráctico 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 lílr 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)
cíclica 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 cíclico, 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, también se
cíclico) 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 interrupción 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 elección de fuentes
110 Solicitud del DMA por la entrada 6 SWI6
para la solicitud de la
111 Solicitud del DMA por la entrada 7 SWÍ7 transferencia desde e l DMA

Curso práctico 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 núm ero de bytes que serán 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 fíeset: 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í núm 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
vés del canal 0.
Escritura:

fíeset: Se borra el registro después 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
fíeset: Se borra el registro después del reset cuand o se escribe u n a nueva d irecció n base
F ig u ra 2 1 .8 R egistros de dirección base fuente (DOSH y DOSL) fu en te o d estin o.
DOBC S xxxx
6. Registros destino del D M A con la dirección
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 dirección de 16 bits con- Escrttura
fíeset: 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 posición 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 dieciséis modos
L ectu ra:
Escritura:
AD15 AD14 AD13 AD12 AD11 A D IO AD9 AD8 de direccionam iento que le otorgan una
fíeset: Se borra eí registro después 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 térm 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
fíeset: Se borra el registro después del reset para localizar los datos que se requieren para
F ig u ra 2 1 .9 R egistros de dirección base destino (DODHy DODL) ejecutar cualquiera de sus instrucciones.

Curso p ráctico sobre M icrocontroladores


Los dieciséis modos de direccio­ CÓDIGO DE
ETIQUETA
M NEMÓNICO DE
OPERANDO COMENTARIOS
M ÁQUINA LA OPERACIÓN
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 pequeños 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 líneas 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 demás 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 símbolo (#) se m u e stra en la fig u ra 2 1 .1 3
instrucciones que soportan este antes de cualquier núm 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 búsqueda {fitcb ) dores de M otorola, tam bién se (c o m p a ra el re g istro ín d ic e
para el operando, trabajan sobre usará el símbolo ($) 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 núm ero para representarlo en éste, p rim ero se b o rra el re ­
como el acum ulador A, el registro notación hexadecimal. g istro ín d ic e (H :X ) y lu ego se
índice H:X, el apuntador de la pila
CÓDIGO DE MNEMÓNICO DE
ETIQUETA OPERANDO COMENTARIOS
SP, y el registro del código de con­ MÁQUINA LA OPERACIÓN

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
ejecución 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 práctico sobre M icrocontroladores


Teoría

CÓDIGO DE F T ln U cT . MNEMÓNICO 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 OPERACIÓN 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 lín 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 lím 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
CÓDIGO DE M NEM Ó N IC 0 DE
direccion am iento directo que­ ETIQUETA OPERANDO COMENTARIOS
M AQ UINA LA OPERACIÓN

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 CÓDIGO DE
ETIQUETA M NEM ÓNICO DE OPERANDO
indexado, sin M ÁQ UINA LA OPERACIÓN 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 través 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 eración 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 típ 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 lín ea de
CÓDIGO DE M NEM ÚNICO DE
código de program a que ilustra MÁQ UINA ETIQUETA LA OPERACIÓN 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 instrucción 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 práctico sobre M icrocontroladores


Teoría

CÓDIGO DE M NEMÓNICO DE sició n $ 1 0 , el SP se h ace ig u al


M AQ U IN A ETIQUETA OPERANDO COMENTARIOS
LA OPERACIÓN
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 dirección 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 código de operación, para
tén in h ab ilitad a s.
d eterm in ar la dirección 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 código 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 cción 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 ).

CÓDIGO DE M NEM ÓNICO DE


D ireccionam iento
ETIQUETA OPERANDO COMENTARIOS
M AQ UINA LA OPERACIÓN 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 ráctico sobre M icrocontroladores fá M J K H T ,:


CÓDIGO DE
MÁQUINA
cTinricTA
ETIQUETA
MNEMÓNICO OE
OPERANDO COMENTARIOS
D ireccionam iento de
LA OPERACIÓN
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 posición 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­
trucción 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 cción ciclos de ejecución 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 página 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 código de operación, 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: rección de la página 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 ). ración signada), y BR A (salto in­ de la instrucción.
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 núm 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 disminución 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-
CÓDIGO DE TIEMPO DE MNEMÓNICO DE
to, el movimiento de un operan­
MAQUINA EJECUCIÓN LA OPERACIÓN 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
sición 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 instrucción 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 ejecución
¡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 página 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 ción de la página 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 operación, se guarda en la
posición de la página 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 práctico sobre Microcontroiadores


Teoría

CÓDIGO DE TIEMPO DE MNEMÓNICO DE


OPERANDO COMENTARIOS
Este m odo de d ireccio n a­
MAQUINA EJECUCIÓN LA OPERACIÓN
* 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 posición de
memoria $F0 a la
posición 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 efectúa con la instrucción 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 ejecución 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 efectúa con la instrucción 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 ejecución
m in u c ió n co rresp o n d ien te en página 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 año 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 página 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 operación, se guarda en
m em oria a m em oria, en la página cero, en la dirección la dirección 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 código de operación de la ta el registro índice después del
El m ovim iento de m em o ria a instrucción, e increm enta el re­ m ovim iento. Com o un ejemplo
m em oria indexado a directo y gistro ín d ice después 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 interrupción SCI
CÓDIGO DE MNEMÓNICO DE
MAQUINA ETIQUETA LA OPERACIÓN 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 ráctico 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 lílt iL iu llr i:' Ü S L Í M

CÚDIGO DE
ETIQUETA
MNEMÓNICODE n p r H. Mnn COMENTARIOS
c ió n d el o p eran d o , m ien tras
MAQUINA LA OPERACIÓN 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 ción 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 instrucción
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 NEMÓNICO DE
p laz am ie n to de 8 b its c in c re ­
CÓDIGO DE r r in n c T A OPERANDO COMENTARIOS
M AQ U IN A ETIQUETA LA OPERACIÓN 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 .
CÓDIGO DE M NEMÓNICO DE
ETIQUETA OPERANDO COMENTARIOS
M AQUINA LA OPERACIÓN
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 ién 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 0£M T il Curso práctico sobre M icrocontroladores


US INTERRUPCIONES EN LOS
MICROCONTROUDORES 68HC08
La conexión y com unicación de un m icrocontro­
lador con microprocesadores, con dispositivos elec­
trónicos, y con otros m icrocontroladores de dife­
rente tecnología y velocidad de procesam iento, se
hace gracias a las interrupciones.

Por medio de cualquier solicitud de interrupción, de


origen interno o externo, la C P U detiene temporal­
mente la ejecución del programa principal mientras
ejecuta el programa de servicio a la interrupción.
Lab' Í U l L « < U l S y |u ll!S LlLLCLUL'ULltluUdüLlrií lUULÜd

U n a característica im po rtan te de los m icro ­ la ejecución 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 conexión con dispositivos ex­ M C U ; ellas son:
ternos de cu alq u ier tecnología y rango, así como
tam bién la facilidad para integrarse con otros sis­ • Reconocim iento de la fuente de interrupción
tem as de características diferentes. • Evaluación del nivel de prioridad (arbitraje)
• A lm acenam iento del estado actu al del m icro­
Bajo condiciones de operación norm al, la controlador
C P U 0 8 de los m icrocontroladores ejecuta secuen- • B úsqueda del vector d e la in terrupción
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 ción ; 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 periféricos exter­
nos e internos. G eneralm ente, la so licitud para N ota:
la ejecución del program a, o ru tin a de servicio a El reset externo o interno, es la interrupción prin­
la in terrupción , llegará al M C U fuera de sincro­ cipal del m icrocontrolador y se usa para in iciali-
nización con los tiem pos de procesam iento del zar los registros prin cip ales; no es enm ascarable,
código de operación 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 atención a su so licitud de interrupción
es la m ás rápida. 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, sólo 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 típ 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 interrupción IR Q 1; y las fuentes internas como la fuen te de in terrupció n y la búsqueda 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 interrupción
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 eriférico in tern o d estin ad o crónico 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 ejecución 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 serán re­
cuando este b it está en cero lógico. conocidas por la C P U 0 8 so lam ente d u ran te el
ú ltim o ciclo, de ejecución de cada in strucción, 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 sólo se volverá a
La solicitud efectuada de parte de cualquier fuente considerar hasta el ú ltim o ciclo de la próxim a
de in terru pción , excepto el reset , se atien d e de instrucción; con lo que queda claro que la C P U 0 8
acuerdo con los resultados que se obtienen tras nunca detiene la ejecución de un a instrucción

(ú J E M itm . Curso práctico sobre M icrocontroladores


Teoría

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 cción e n curso
(so lam ente cuand o se está usando el m ódulo
D M A , éste pu ed e suspender la operación d e una
B úsca la sig u ie n te instrucción en la C P U para atender a un dispo­
in s tru c c ió n (B)
(red unda nte) sitivo periférico).

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 eración 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.

Evaluación del nivel de prioridad


Rutina de interrupción
(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 ­
instrucción (redundante)
to para ellas la C P U 0 8 no efectúa la operación
de evaluación 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 ltán eam en te, son som etidas
D escarga PCH al proceso de evaluación del nivel de prioridad
en el m ó d u lo del sistem a de in tegración (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 próxim 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
dirección efectiva del vector de interrupción 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 próxima instrucción 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­
ción {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 ráctico sobre M icrocontroladores < Ú ¿ rC M T .l <^9^>


Ltifc' L&Ü-HtfllLnULllS: LH1 lü¡¿ lllELnUUJllUuLtilÍÜL\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 señalizador, 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 recuperación de los registros de la pila,
de acuerdo con su estructura LIFO (Last In First
D irección In te rru p c ió n P rioridad
Out), es al contrario: primero el C C R , y después,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
pués de atend er cu alq u ier in terrupción .
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 ción 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 después de retor­ controla la m áscara glo b al de las interrupciones
nar de una rutina de servicio de interrupción, 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 interrupción, y los descarga al registros de control de los periféricos.

PILA TIPO LIFO

Orden de
descarga

5 1 REGISTRO DEL CÓDIGO 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

Dirección 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 práctico 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 típ 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 ejecución an idada de dos
CU-------------------- rutinas de servicio de interrupciones
IN T1 e IN T 2; en este caso las solici­
— Programa tudes de interrupción 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 ejecución de
la prim era (I N T l). En cualquier caso
la interrupción 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 interrupción 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 MÁS:


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 INTERRUPCIÓN

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 ráctico sobre M icrocontroladores


v ü v p u ü ü iim iv ii M M Bi mmam
L as LiiuHtui’cu'i íLuura Liü uL
cíi
íqHfí
¿líüLíüUÜ

Retomo de la interrupción (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 cción 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
interrupción 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 ejecución del
interrupción 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 traía 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 interrupción externa (IRQ)
El m ódulo de in terrupción 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 operación 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 características 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 histéresis
• 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
PÚLH servicio de la
interrupción Al aplicar una señal con nivel bajo (un cero
RTI lógico) en el pin IR Q l del m icrocontrolador, se
activa la solicitud de servicio de la interrupción
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 práctico sobre M icrocontroiadores


Teoría

U na vez reconocida la interrup­


ción, el la tch perm anecerá en
uno hasta que ocurra algu na de
las siguientes operaciones:

1. La búsqueda de un vector: el
reconocim iento de otra so­
lic itu d de in terrupción o ri­
g in ará la búsqueda 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­
terrupción, 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­
rrupción IN T S C R . Al escri­
bir un uno lógico en éste, se
borra el la tch I R Q l.

3. La ejecución 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
lógico uno, y si previam ente
se ha configurado su sensi­
b ilid ad por nivel; bajo esta
condición, el la tch IR Q l será
borrado.

Pin de inte rru pción


externa (IRQ1)
La entrada de la interrupción 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 interrupción externa IRQ de disparo M O D E 1, propio del

Curso práctico sobre M icrocontroladores


U s UllLH-lUL’düliet- LHl Lut- LlÜClUL^mÜUciLLUlUS 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 rrupción IR Q l, es de sólo lectura, y nos inform a el
configurarse en una de dos formas: para el disparo estado de las solicitudes de interrupción 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 interrupción
IR Q l está pendiente.
C uando el disparo del pin de interrupción 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­ ción IR Q l pendiente.
tud de interrupción en la C P U se m antiene activa
hasta que ocurre la búsqueda 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 ejecución de un reset. de la in terru p ció n I R Q l, es de sólo 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 terrupción 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 terrupción 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 búsqueda 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 ejecución pone en cero.
de un reset, ó, el p in de la in terru p ció n regrese a
su condición in activa (uno lógico). C on 1, se borra el la tch de IRQ .

Registro de estado y control de la es el b it de máscara de la interrupción


interrupción 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 interrupción 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 operación del m ódulo de interrupción d e in te rru p c ió n de I R Q l.
externa IR Q ; a través 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­


ción IRQ F1 neja la sen sib ilid ad de la in terrupción I R Q l, es
2. Se borra el la tch IR Q l de la in terrupción 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 terrupción 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 terrupción IR Q l C on 1, se activa la so licitud de in terrupción 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 terrupción so­
IN T S C R están 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 interrupción IRQ (INTSCR)

224 S ) H W Í. a. Curso práctico sobre M icrocontroladores


LOS MÓDULOS 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 luúiiuLus e s i’ L-dtiL-s l i d l£LíL'üd¡ L‘UL:, 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 ejecución del program a se pierde,
Bajo el m ism o concepto operativo del perro guar­ ocasionando un com portam iento errado o ines­
d ián ( w a tch d o g ) que se ha venido incorporando perado del M C U . D entro de las principales y más
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 ejecución 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 iseño de algoritm os incorrectos
q u e es el encargado de facilitar al program ador • V ectorización inapropiada
la tarea de v ig ilar q ue la ejecución del program a • Ejecución de instrucciones de salto fuera de rango
residente en la m em oria del dispositivo sea efec­ • A lteración de registros y banderas por ruido
tu ad a en form a cíclica y sin interrupciones. eléctrico in d ucid o
• M o d ificació n de registros d u ran te la conexión
El m ódulo de operación apropiado de la com ­ y desconexión de la alim en tació n
putadora (C O P ), ha sido diseñado 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
señal 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

BÚSQUEDA DE UN
VECTOR DE RESET

ESCRITURA
DEL COPCTL

RELOJ DEL COP

MÓDULO 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 estratégicos 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 señal es la salida del m ódulo oscilador del
este tem p orizador. La característica 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 tegración (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­
zación después 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 señal 2 0 S C 0 U T , y esto cuen tra localizado en la posición 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 configuración núm 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.
opción 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 bién
in ic ializ a r de nuevo el tem p o rizad o r d el C O P e está ubicado en la posición $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 conexión 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 conexión (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 señal que borra el contador del
SIM al transcurrir 4 .0 9 6 periodos de la señal
Las señales 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 ejecución de u n ciclo
po de v igilan cia del CO P, son borrados tras el de reset será borrado.
reconocim iento y la ejecución de cu alq u ier ci­
clo de reset interno. C o n l lógico: el periodo program ado será (213 - 24)
X 2 0 S C 0 U T ciclos.
C on 0 lógico: el periodo program ado será (2 18 - 24)
C uando la dirección 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 búsqueda 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 ejecución de un ciclo de reset.
ab ili on
La entrada C O P D es un reflejo del estado del C on 1 lógico: el m ódulo C O P será inhabilitado.
b it 0 del registro de configuración núm ero uno C on 0 lógico: el m ódulo C O P será habilitado.
(C O N FIG 1), llam ado tam bién C O P D , y por
m edio del cual se in h ab ilita la operación 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 periód icam ente su contador.
do se in fo rm a al m ó d u lo C O P a través de
esta e n tra d a. En el otro m odo de operación 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 ­ señal 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 inhibítor)
C uando el voltaje de alim entación cae abrup­
Dirección: $001F tam ente, o el m icrocontrolador se som ete a
B it7 6 5 4 3 2 g¡t0 conexiones y desconexiones rápidas, 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 entación
0 0 0 0 0 0 0 0
durante el transcurso del proceso de ejecu­
I Reservado ción de ciertas instrucciones, que involucran
F ig u ra 2 3 .3 P rim e r registro de configuración 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 describirán 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 posición del b it A, y
VOLTAJE BAJO es el in terru p to r de habilitación del in h ib i­
e n v dd
VDD < lv ,TRIP = 1 dor por voltaje bajo. Su condición 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 lógico: el m ódulo LVI se in h ab ilita.
C on 0 lógico: el m ódulo LVI se h ab ilita.
C o n el propósito 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 bién seleccionado por el program ador. En la ta b la 2 3 .1 se m uestran las opciones
de selección 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 entación bajo, cuando se coloca en 0 los microcontroladores en las interfaces de teclados
ó 1 lógico, 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 selección del voltaje de den ser enmascarables y están accesibles a través de
inhibición 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 señal de reset-, Dirección: $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:
fíeset 0 0 0 Nosonáfectactes 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 efectúan desde F ig u ra 2 3 .5 Segundo registro d e configuración (C0NFIG2)

Curso práctico sobre M icrocontroladores


Lus luúiiulus iSiipLilei* ¿el fitUíjM: COL-, LVl y Idil

D escripción 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 selección del umbral de voltaje de inhibición del módulo LVl
ciones para teclado. Al h ab ilitar algu n a de
Las p rin c ip ale s características d el m ó d u lo estas entradas de in terru pción , tam bién 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 ién 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 lógico 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
rrupción 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 terrupción 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
INTERRUPCIÓN
DEL TECLADO

AL HABILITADOR PUU UP

230 d á E M C J T i.4. Curso p ráctico sobre M icrocontroladores


Teoría

nerse en c u e n ta p a ra ev itar perd er alg u n as so ­ A l escribir un 1 lógico 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 terrupción 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 lógico.
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 leíd 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 lógico: 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 lógico: 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 bién uno de pines del puerto A, por m edio del ciclo de reset se
sus bits s e usa com o señalizador de la so licitu d de coloca en cero, y puede ser d e lectura y escritura.
interrupciones.
C on 1 lógico: 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 continuación se describen las funciones C on 0 lógico: 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 señaliza 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 sólo 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 lógico: 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
ción por teclado pendiente. registro de h ab ilitació n K BIER y en segu id a se
C o n 0 lógico: 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 ción 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 ción por teclado y es de sólo 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 terrupción 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 serán borrados p ara in h a b ilita r las
ii\/iAQiéié
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 lógico: 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 ráctico so b re M icrocontroiadores


Lus LiiúáiLlus esuiáSaLes Ed litilíCÜü: 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 programación 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 terrupción 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 módulo 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
ción para teclado. e n tra d a; sin em b arg o , es im p o rtan te re­
C on 0 lógico: 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 MÁS:


Inicialización de las entradas del módulo 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 lógico.

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 ráctico sobre M icrocontroladores


EL MÓDULO 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
uái
iLi
lüc
dLi
v.¿ltíiíql'.
-LQ ^AliC) v¿LSLLú¿eLd¿líOI¿

El m ódulo de conversión análoga 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 través de diversas técn 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 supervisión, 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 tación de variables físicas 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 (señales 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 ­
señales digitales (señales que sólo asum en valores cu ad o s sistem as de tie rra y cablead o.
discretos en el tiem po): el m ódulo de conversión
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 conversión 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 código 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 señales 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 ráctico sobre M icrocontroladores


cío de conversión; de esta m an era, la C P U no Voltaje de conversión ADCVIN
resu lta desviada de su ru tin a p rin cip al d u ran te Los lím ites p ara el voltaje d e conversión siem pre
el tiem po de conversión de cada can al. Las ca­ están definidos por la m ag n itu d de la fuente de
racterísticas 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. versión un dato igual a $FF, m ientras q ue para
• T écn ica de conversión 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 esolución de 8 bits por canal. entre V ss y V DD, obtendrán una conversión li­
• Dos modos de conversión, continua o por ciclos. neal y podrán ser representados por una lín ea es­
• Dos indicadores de fin de conversión, 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 interrupción. 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 daños 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 análogo A D C V IN nunca
se ve el diagram a del circuito electrónico 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 análogos capa­
citados para m uestrear señales externas, se en­ Tiem po de conversión
cuen tran disponibles a través de los term inales Para com pletar un ciclo de conversión, 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 ecuación 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 conversión:
doce canales estarán activos y se com portarán
com o entradas análogas. Tiempo de 1 6 períodos del reloj del A D C
conversión 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 conversión 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 conversión 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 conversión 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 efectúa ciclos consecutivos
de co n versió n el m ó d u lo A D C g rab a el resul­ de conversión 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 conversión. 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 conversión co n tin u a, se requiere borrar
M *
Curso práctico 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 líC 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 conversión
co m pleta C O C O se coloca en uno después Reset. 0 0 0 1 1 1 1 1

de cad a conversión 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.


sión se com pleta, es de sólo 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 lógico en el b it habilitador de la rectam ente en el registro A D S C R , o, al leer el
interrupción 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­
rrupción a la C PU 08 al cabo de cada ciclo de con­ C u an d o AIEN = 0:
versión. C uando la interrupción del A D C está acti­ C on 1 lógico, indica conversión com pleta
va, el b it C O C O no se usa como bandera del fin de C on 0 lógico, in d ica conversión inco m pleta
conversión, sino que se usa para dis­
parar la solicitud de interrupción CH4 CH3 CH2 CH1 CHO Canal ADC Selector de entradas
cuando su estado es cero lógico.
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
parámetros 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
ción del reloj ADICLK. En los si­ 0 1 0 0 0 ADC8 PTD3
guientes párrafos se hace la descrip­ 0 1 0 0 1 ADC9 PTD2
ción 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
conversión 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 conversión. ------------------------------- •
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 .
señaliza cu an d o una conver- ja b la 2 4 .1 Tabla de selección de canales d e l m ódulo ADC

€ 3 m § € tr.. Curso práctico sobre M icrocontroladores


Dirección: S003D lo A D C , llam ad o A D R ; es
Bit 7 6 5 4 3 2 1 BitO de sólo 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 después de reset
pués 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)

Dirección: 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 configuración 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 terrupción al com ­ les disponibles, y con el C H 4 A D IV x .
pletar la conversión. 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 integración SIM
estos bits. El m ó d u lo d e l siste m a de in ­
C on 1 lógico, se h ab ilita la te g ra c ió n S IM se rep resen ta
in terrupción . en b lo q u e s en la fig u ra 2 4 .5 ;
C o n 0 lógico, se in h ab ilita e l S I M es el c o n tro la d o r del
la interrupción. 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 conversión 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 versión 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 conversión co n tin u a y la
conversión de un sólo ciclo. 0 0 0 Reloj de entrada ADC v1
0 0 1 Reloj de entrada ADC-r 2
Con 1 lógico, se activa el modo 0 1 0 Reloj de entrada ADC t 4
de conversión continua. 0 1 1 Reloj de entrada ADC-r 8
Con 0 lógico, se inactiva la con­
1 X X Reloj de entrada ADC-r 16
versión continua y se activa la
conversión de un sólo ciclo. Tabla 2 4 .2 Tabla de preescaladores d e l re lo j del ADC (ADIVx)
á *
Curso práctico sobre M icrocontroladores G S B € M T .l < 237
ELliiúiíilL
ucuLimitáüf.E/D (
A.D
.E)yelS
LLv
íl¿eLE
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

Código de operación ilegal (Desde la CPU)


CONTROL DEL POR
CONTROL Dirección ilegal (Desde los decodificadores
CONTROL DEL PIN DE RESET ■i ACCTDÍT
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 interrupción
PRIORIDAD Y DE LA
-Interfaz de la CPU08
INTERRUPCIÓN

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 periféricos.


DIRECCIÓN ILEGAL
• C o n tro la r la en trad a y sa lid a de los m odos es­
CÓDIGO DE OPERACIÓN 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 conexión
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: dirección ilegal, código de operación ile­
de las fuentes de in terru pción . gal, desbordam iento del tem porizador del COP,
el reset a la conexión (P O R ), y el inhib idor por
Fuentes internas de interrupción 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
sión se h ará én fasis só lo en las cin co fuentes inicialización de los periféricos 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 . torización de una interrupción de este tipo.

Curso práctico 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 lección 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 conexión de la definido en el m ódulo LVI. En cual­
alim entación POR q u ier caso, el proceso de la in terru p ció n sólo 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 después 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 están 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 estabilización 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 lógico, 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 lógico, 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 código de operación ilegal ción break.
El S IM deco difica las señales que se o rig in an en C on 0 lógico, 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 lógico rrupción 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 dirección 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 lógico 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 práctico sobre M icrocontroiadores < £ M B C K T ,.


D ire c c ió n : SFE01 rante el ciclo de búsqueda de cu alq u ier có­
Bit 7 6 5 4 3 2 1 B it O digo de operación.
L e c tu ra : POR PIN COP ILOP ILAD MODRST LVI O
E sc ritu ra : C on 1 lógico, in d ica que el ú ltim o reset fu e
POR: 1 0 0 0 0 0 0 0 causado por el ciclo de búsqueda de u n có­
establecer digo de operación en u n a dirección ilegal.
C on 0 lógico, in d ica que el R SR fue leído,
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 señaliza el
deras auto m áticam en te (excepto la del PO R), reset del m odo m onitor.
basta leerlo.
C on 1 lógico, in d ica que el ú ltim o reset fue
es el b it de estado que señaliza al reseta. causado por la entrada al m odo m onitor.
la conexión (P oiver-O n Reset). C on 0 lógico, in d ica q u e el R S R fue leíd o , o
se generó un PO R.
C on 1 lógico, 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 señaliza el reset
C on 0 lógico, indica que el registro R SR fue leído. causado por el m ódulo LVI.

es el b it de estado que señaliza al reset C o n 1 lógico, in d ica que el ú ltim o reset fue
externo RST. causado desde el circu ito LVI.
C o n 0 lógico, in d ica q u e el R SR fue leíd o , o
C on 1 lógico, 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 lógico, in d ica q ue el R SR fue leído, 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 señaliza 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 lógico, 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 lógico, in d ica q ue el R SR fue leído , 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 señaliza al reset C on 0 lógico, se in h ab ilita el borrado durante
causado por una op eración ilegal. el estado de break.

C on 1 lógico, in d ica q ue el ú ltim o r e s e t D ire c c ió n : SFE03

fue causado por una operación ilegal. B it 7 6 5 4 3 2 1 Bit 0


C on 0 lógico, 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 señaliza al ■ ¡^ R e s e rv a d o
reset debido a una dirección 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 ráctico sobre M icrocontroladores


ELMÓDULO DE LA II
DE TEMPORIZACION ( T IM )
DEL 68HC08
La cuenta del tiem po es la tarea más 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 periférico interno de propósito 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=1médula ¿i i Le. íu ieiid i de taii[ietiieetdn (HM1 del dcLiCdc

La tempo rización 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 itiéndonos, 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 isión y recepción 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 técnicas clá­
de temporización está adem ás lim itada por el ta­ sicas de m odulació n de pulsos.
m año y el núm ero de registros de propósito general
disponibles, y, por lo tanto, sólo se recom ienda para El T IM del 68H C 08
contar pequeños 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 tegración de circu ito s tem po- ción estudiaremos la segunda versión del T IM de
rizadores com o dispositivos periféricos 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 , versión B); éste es el m ódulo de la
ha facilitado esta tarea al program ador, y se ha interfaz de temporización, y está compuesto por

RELOJ DEL SELECTOR DEL


BUS INTERNO PREESCALADOR

TSTOP

LÓGICA DEL
P PUERT0

r LÓGICA DE
■ INTERRUPCIÓN

LÓGICA DEL
PUERTO

LÓGICA DE
INTERRUPCIÓN

Figura 2 5 .1 D iagram a de bloques d e l TIM de l 68HC08

242 Js- Ó ^ B € iT d .. Curso práctico 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 paración, y funciones de m odu­ el pin de un canal configurado com o una en­
lación por ancho de pulsos (P W M ). Las principa­ trada de captura, el T IM guarda el contenido
les características 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 paración ción 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 paración del T IM , el M C U puede
• B its de paro y reset del contador del T IM generar pulsos periódicos, 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 ración, 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 paración, 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 propósito 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 comparación. 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 comparación pueden generar pulsos
program ador puede controlar el valor del m ódulo directamente sin la intervención 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. ción 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 bién pueden enlazarse para configurar una salida
El bloque preescalador usa los b its P S [2 :0 ], de com paración con b u ffer disponible a través 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 MÓDULO 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­ COMPARACIÓN COMPARACIÓN COMPARACIÓN
gún evento externo. C uan- F ig u ra 2 5 .2 Señal 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 taiiiiüLí&duLi flllflj ¿el ticLíCUc

El m odulado r PW M Dirección: $0020


La característica 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
ción 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 señal 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 señal 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 señal P W M , pueden h ab ilitar las interrupciones, consultar
el periodo, y el ancho del pulso de m odulación; las banderas de estado, deten er e in icializar el
a llí podem os ver que el periodo de la señal 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 señal dera que se pone cuando el contador d el T IM
m o d u lad a a través de la salida de com paración. se in icializa en $ 0 0 0 0 , después 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 paración, 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 ién , al escri­
b ir d irectam ente en T O F un cero lógico, 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 lógico, 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 lógico, 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 ién 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 lógico, se h ab ilitan las interrupciones.
La salida de P W M tam b ién puede configu­ C on 0 lógico, 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 paración. con este b it de lectura y escritura en
uno lógico se puede detener el contador del
R egistros de entrad a y salida del TIM T IM , y tam bién p erm itir que el conteo se re­
Por m edio de cinco registros del m icrocontrola­ an ude cuando se pone en cero lógico. 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 ráctico sobre M icrocontroladores


Con 1 IcSgico, se detiene el contador del T IM . Registro: tc nth

Con 0 lógico, se activa el contador del TI M . Dirección : $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
Dirección: $0022
contador in ic ia desde $ 0 0 0 0 , y tras la
Bit 7 6 5 4 3 2 1 B it 0
acción 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 lógico, se borran el contador y el
Reset 0 0 0 0 0 0 0 0
preescalador del T IM .
C on 0 lógico, no se produce ningún 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 leídos 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 sólo lectu ra. A l leer por
d efin ir en la salida del circuito preescalador primera vez el valor del byte más significativo (TCN ­
u n a de siete frecuencias configurables. Todos TH ) automáticamente 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 lógico,
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
selección disponibles para el preescalador del contador del T IM serán 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 leído
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 próxim o periodo de reloj. En cu alq u ier caso,
1 1 1 No disponible la acción de reset pondrá en unos ($FFFF) los
Tabla 2 5.1 Tabla de selección 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 práctico sobre M icrocontroladores


liL LlUÍLLlilU tiL- La LLlÚHÍaL ¿ 1= Ü H U L 1ÜL11 £CL¿LI (TLlÜl) ÓrL lüüLiCQíi

R e g is tr o : T M 0 D H
C on 0 lógico, 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 lógico, se habilita la salida con bu ffer
R egistros de estado y control de los canales Con 0 lógico, 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 acción 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 detección 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 ración o P W M sin b u ffer.
está configurado com o salida de com paración, 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 lógico, señala la detección 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
ración en el respectivo canal. E s c r it u r a : 0
C o n 0 lógico, señala 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 paración 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 terrupción 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 lógico, 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 práctico sobre M icrocontroladores


MSxB MSxA ELSxB ELSxA MODO CONFIGURACIÓN

X 0 0 0 Pin bajo el control del puerto;


Salida Inicial mente con la salida en nivel alto
X 1 0 0 estándar 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 comparación
0 1 1 0 comparación ó Borra la salida bajo comparación
0 1 1 1 PWM Coloca la salida bajo comparación
1 X 0 1 Salidas de Cambia el estado de la salida bajo comparación
1 X 1 0 comparación ó Borra la salida bajo comparación
1 X 1 1 PWM con Coloca la salida bajo comparación
buffer

Tabla 2 5 .2 Tabla de selección del modo de operación, 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 lógico, 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 señal 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 propósito 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 señal 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 bién 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. pués de h ab erlo borrado.

Curso práctico 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
COMPARACIÓN COMPARACIÓN COMPARACIÓN COMPARACIÓN

CHxMAX

F ig u ra 2 5 .7 Características 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
ción 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 después del reset

Estos registros de lectura y escritura es­ R e g is tr o : T C H 0 L


tán 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 después del reset
com paración.
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 después 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 después del reset


registros, la acción 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 práctico 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 versión sim ple del lenguaje BA SIC, lla­
m ada PBASIC, para construir un a pequeña y ver­
sátil 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 práctico sobre M icrocontroladores é 249
L.US IIIÍCIÜIM J lili U lliliu llr l: L & S l Q SÍíiLll[2

El BASIC Stam p I in stru ccio n es especiales creadas para fac ilita r la


En esta lección 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 versión 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 gía 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 ación 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 fácil 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 ría de tareas para la in d u stria, el co­ in térp 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 esconexión ( 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 ­ sólo 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 ación BASIC y disponer de algunos requeri­
lla x según alg u n as in stru ccio n es típ ic as de la m ientos m ínim os en su equipo; éstos son: el soft­
versión 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 físico, distribución 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 práctico sobre M icrocontroladores


D istribución 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 versión del B A SIC Stam p el dispositivo. m entación 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 aún más 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­
ción y las funciones definidas para
los pines de este m icrocontrola­
dor se describen a continuación:

por medio de
este pin el microcontrolador reci­
be la fuente de alim entación de
voltaje no regulada, que puede es­
tar entre 6 y 15 V C C para esta ver­
sión, 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 través 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 señal 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 ráctico sobre M icrocontroiadores e S K M T s 251


L u s lUÍL'l ü^ULlÜUlíldülL^ 11AEIC SÍLiLlL[)

cero lógico 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 función d e la
fuente d e alim entación
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 configuración 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­
ción 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 disipación de potencia debi­ prototipos del BASIC S tam p I
do al tam año 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) diseñada
nerse en forma sim ultánea 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 nexión de una batería 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 conexión 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 conexión 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 pequeños 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 entación 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 bién con el regulador interno de +5V, pero esto
sólo se puede hacer si se tiene en
cuen ta que éste tam bién 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 función 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 relación 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 ación 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 a€W T,. Curso p ráctico sobre M icrocontroladores


Teoría

PALABRA BYTE BIT NOTAS C on el registro Dirs, y a través 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 dirección
Dirs Dir0-Dir7 Pines de control de dirección l/O; de los puertos del microcontrolador, se define la
direccionables bit a bit
WO BO Bit0-B it7 Direccionables bit a bit condición 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 lógico para
W5 B10 acceder correctam ente a los pines de los puertos
B11
W6 B12 Usado por la instrucción GOSUB consiste en d efinir prim ero la dirección de éstos,
B13 Usado por la instrucción GOSUB y luego leer o escribir cualquier dato en ellos.
F ig u ra 26.4 Mapa cíe 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 configuración 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 más 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 lógico 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 sólo pin del puerto pue­
de ser leído in d ivid u alm en te por m edio de algu ­
En este m icrocontrolador, y dependiendo de n a in stru cción com o B itl = P in 3; ésta, por ejem ­
las necesidades d el program a, el usuario puede plo , guard a el estado lógico 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 ién, todos los 8 pines del puerto
figurarse y accederse b it a b it (PinO a P in 7 , DirO pueden ser leídos y guardados fácilm 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 instrucción
(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 posición 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 ación del BASIC S tam p I.
8 bits cada uno, llam ados Pins y D irs. Por medio En lo que a la programación y al buen uso de este
del registro Pins que se com pone a su vez de los 8 microcontrolador se refiere, además 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 programación básica de cualquier lenguaje de pro­
puerto independientem ente; cuando un puerto es gramación de alto nivel, el usuario debe conocer el
leído, 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
Lük tuíüiucuLili-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 bién 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 unicación
3 PINES 9 P2
10 P3 se hace a más 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 ción por m edio de una interfaz serial RS-
DB-25 BS1-IC
2 3 2 están d ar ta l com o el M A X 2 3 2 , el
F ig u ra 2 6 .5 Cable de com unicación 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 bién 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 ejecución.
I, a través 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 través 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 típ ic o c o n el
nistra especialm ente para este propósito 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 unicación R S-232.
ción que tiene el cable de com unicación que debe
usarse entre la P C y el BASIC Stam p I. Este cable
sólo 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 ación 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
señal de control del bus (BUSY), y la tierra (G N D ).
d en o m in a P B A SIC ; éste ha sido diseñado por
Parallax según u n a versión 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 unicación program a B A SIC . C on este program a el diseña­
dor cuenta tíbn m uchas herram ientas q u e son d i-
serial a través 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 típica con


e l d ríve rL T 1 181 ACN

d f A T I K i.a. Curso p rá ctico sobre Microcontroladores


fíciles de construir usando el lengu aje ensam b la­ lectu ra de resistencias variables, com unicación
dor tradicio nal de los m icrocontroiadores y que serial R S -2 3 2 , generación y m edición 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 diseñadas 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: generación de sonidos, lectura al m icrocontrolador B S 1 -IC y se hace un a des­
directa y sin rebote de pulsadores e interruptores, cripción 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 después 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 río 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 práctico sobre M icrocontroiadores € 5 G J C IT :


L ü k míicLüü'U u iiu Ltiiiu l iís 1¿/A.SIC S ta uii» I

PARA SABER MÁS:


Ejemplo de programación con PBASIC
Por m edio de este program a diseñado a propósito 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 bién se ilu stra la e ficie n cia y fa cilid a d de uso dedicados a la p rogram ación 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 núm 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 código 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 pequeño 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 electrónicos (protoboardj.
puerto cero.
Para dar inicio la ejecución 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 ación 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 entación al microcontrolador.
parlante por el puerto P1. En este caso se usarán las PARLANTE
instrucciones especiales POT y SOUND, que están PIEZ0ELECTRIC0
diseñas 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 continuación:

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


LECCIÓN 27

CONJUNTO DE INSTRUCCIONES
DE LOS MICROCONTROLADORES
BASIC Stamp I
En esta lección se estudiará el conjunto de
instrucciones del lenguaje PBA SIC de Para-
llax, Inc. que está dedicado a la program a­
ción 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 práctico sobre M icrocontroladores é M K € M T .l # 57
C cli[u .l11í2 c e E tu síiu 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­ instrucción B R A N C H no será ejecutada.
guaje PBASIC está compuesto por algunas instruc­
ciones típicas del lenguaje BASIC y de otras especia­
lizadas que poseen múltiples funciones. En esta lec­
ción 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 ubicación rápida 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 alfabético; 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­
sentación de las instrucciones, se escribirán en­ vel bajo o en n iv el a lto , tal com o se m ues­
tre parén tesis los térm in o s o b lig ato rio s, entre tr a en la fig u ra 2 7 .1 .
corchetes los térm inos opcionales, y los com en ­
tarios em pezarán 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 dirección es­ q u e especifica el estado lógico activo, y que
pecificada por el desplazam iento (offset), si está será leído 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 dirección 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 instrucción es una variación 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 línea 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 líneas 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 Conexión 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 strucción tam b ién 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 línea
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 lín 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 visualización . A q uí
d e la ru tin a de B U T T O N . tam b ién 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 lín 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 cción 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 serán utilizados por el progra­
m a, o que no deban ser m odificados.
C o n esta in stru cción se puede m onitorear el
curso del program a en cu alq u ier m om ento, lo c a tio n : la ubicación 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 posición 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 serán guardados los datos que
o u n a p alab ra. C on las siguientes líneas de sean enviados. Si no se escribe una ubicación
com ando, a m anera de ejem p lo, se ilustran in icial, la posición in icial para la escritura de
las opciones de esta in strucción; 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 serán 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 posición de inicio.
‘de b4
D EBUG “la lectura es’\b4 ‘m uestra “la lectu-
‘ra es“, seguido C o n esta in stru cción el m icrocontrolador en ­
‘por el valor de b4 tra en adorm ecim iento (m odo sleep) y sólo 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 carác­ 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
DEBUG“entradas=”,b3,b4,cr ‘m uestra los carac- Es im portante considerar el caso en el cual se
‘ rae teres “entra- ejecu ta la instrucción EN D m ientras algún
tía 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 situación el sistem a continuará
‘na el cursor sum inistrando la corriente de la carga desde la
*
Curso práctico 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 través de todos los puer­ Esta in stru cción 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 desvía hacia a la dirección espe­
intérprete y que es inalterable, genera un reset cificad a y c o n tin u a desarrollán 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 condición se m antiene la dirección de la próxim a in strucción para
por cerca de 18m s que es el tiem po que tarda co n tin u ar la ejecución 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
ción, asegúrese 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 strucción 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 desvía h acia a la direc­
increm ent}...N E X T ¡variable} ción especificada y co n tin u a su ejecución a
C o n esta in stru cción 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
dirección 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 cción 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 núm 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 cción 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 dirección 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 cuestión, 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 práctico sobre M icrocontroladores


Teoría

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 operación
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 strucción.
presenta el valor para com paración. 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 dirección a donde se debe saltar si el resul­ asignado a la variable.
tado de la com paración 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 trucción entre los valores están lim itad as por
C o n esta in strucción 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­
tén 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 función
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 sición 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 instrucción se asigna un valor a una
variable y tam bién se pueden efectuar operacio­ t a r g e t: es el valor de la variable o la constante
nes lógicas 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
ción (LET) puede om itirse; por ejem plo, la ins­ que se com para el valor objetivo.
trucción “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 búsqueda.
OPERADORES DE LA INSTRUCCIÓN LET

S ím bo lo N om bre C om o ejem p lo para aclarar la estru ctu ra y la


+ Suma función de esta in strucción se escribe la si­
Resta guien te línea d e com ando con com entarios, y
M ultiplicación (devuelve la palabra baja del resultado) se supone que la variable b3 se carga en cual­
: M ultiplicación (devuelve la palabra alta del resultado) q uier m om ento con la letra que representa a
/ División (devuelve el cociente)
uno de los tres com andos siguien tes: giro (G ),
// División (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 lógica L O O K D O W N b 3 ,(“G ”, “A’Y ‘ P ”),b 4
1 0R lógica ‘si b3=“G ” entonces b4=0
A XOR lógica
‘si b3=“A ” entonces b4= l
&/ NAND lógica
ÑOR lógica ‘si b3=“P ” entonces b4=2
i/
A/ XNOR lógica
14. L O O K U P offset,{valueO ,valuel,...valueN ),
Tabla 2 7.1 Tabla de operadores aceptados p o r la instrucción
de asignación LET variable

Curso práctico 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 instrucción se utiliza para buscar un valor es­ D uración


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 número 7. 3 8 144 ms
4 16 2 8 8 ms
o ffs e t: es u n núm 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 selección de los periodos de duración de l NAP


v a r ia b le : es la variab le en la que se guarda el
resultado de la búsqueda. co n figu ra todos los pines com o en trad a du­
rante 18m s; lo que ocasiona un a interrupción
15. LO W pin de la corriente a través de dich as cargas. C on
C on esta instrucción 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 instrucción 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 cción 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 strucción
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 strucción se configura
que se determ ina la duración 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 ecuación: 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 cción 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 práctico sobre M icrocontroiadores


salida, y de acuerdo con el núm 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 típico p ara la adecuada conexión 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 través
U sando esta in stru cción se d etien e la ejecu­ de dicha resistencia.
ción del program a d u ran te el núm 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
ción del program a. La pausa puede estar entre de la conversión, el cual internamente siempre
0 y 6 5 .5 3 5 m s, y, puesto que usa el circuito os­ tiene una resolución de 1Gbits. La lectura siempre
cilador del BA SIC Stam p I com o base de tiem ­ es m ultiplicada por la siguiente relación:
po, su precisión 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 térp rete d el sistem a sólo 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 crític 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 . ciómetro conectado en P3 y el resultado se en­
vía al exterior por m edio de la salida serial P4.
•. P O T p in .scale,v ariab le
U sando esta in strucción 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 cióm e­ m etro d el pin 3
tro, un reóstato, 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) envía 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 típico de la fig u ra 2 7 .3 . m ente

Esta instrucción configura el pin especificado


com o una salida y calcula indirectam ente el Por medio de esta instrucción 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 -
ción 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; : análogo
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 típico para g en e ra r un voltaje análogo 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­
ción del pulso, éste puede ser descendente o a la con dición 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­ análogo entre 0 y 5V usando un circu ito con
tar el resultado de la m edición. 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 señal 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 núm ero del p in I/O del
Por m edio de esta in strucción se puede gene­ m icrocontrolador por el cual se va a generar
rar un pulso duran te un tiem po especificado. la m odulación 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
lógico 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 núm 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 número de ellos que se requieren está en función
el pulso. del tamaño del condensador, los condensadores
t i m e : es la variable o la constante en la q u e se más grandes necesitan de un m ayor número 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 ráfaga 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 relación 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 instrucción se puede producir una valores del ciclo de servicio {duty) , que estén entre
señal m o d u lad a por ancho de pulsos (P W M ) 0 y 2 55 , la relación de los pulsos estará dada por
sobre cu alq u iera de los pines I/O del puerto. la expresión 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 relación 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 iríc.

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 posición
les un voltaje an álo go, la m agn itu d de éste se de m em oria q ue debe ser leída.
obtiene a p artir de la expresión 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 leíd 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 strucción se usa para retornar el flujo
lida, no afectar la m odulación y reducir el nú­ del program a a l cuerpo p rin cip al, al finalizar
m ero de ciclos de actualización necesarios, la la ejecución de la su b ru tin a de salto más 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 conexión de un b u ffer de alta im pedancia
entre el pin de salida del m icrocontrolador y la C on esta in stru cción el usuario puede in ver­
carga, tal com o el seguidor de voltaje de preci­ tir la configuración actual de un pin del puerto
sión 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 instrucción 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 núm ero seudo-aleatorio q u e re­
su lta de la ejecución de esta in strucción.

Por m edio de esta in strucción, que se puede


Utilizando esta instrucción se puede leer cualquier escrib ir en los tres form atos aq u í indicados,
posición 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 strucción 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 recepción 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 precisión co n e l am plificad or
operacional CA5160
m odos de configuración de la en trad a serial,

Curso p rá ctico sobre M icrocontroladores


CCLlÍLLLltd ¿<¿ [L l¿lltiC d ¿L lc£ ó c lC S LULa\2Cy$Ü@|lL>=£ ¿AELC SÜLLULl 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 núm eros del 0
6 N 600 600 Invertida a l 15, o los sím 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 arám 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 están d ar que se
ésto s pueden escribirse usando los núm eros del d en o m in a N 8 1 .
0 al 7, o los sím bolos equivalentes para cada d a ta : son las variables o las co n stan tes op­
m odo. En esra tabla aparecen los parám 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 estándar, 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 sím 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 instrucción, antes C om o u n ejem plo se escriben las dos sig u ien ­
de continuar con la ejecución 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 vía el valor 65 que equivale y se
hasta 255). Si están precedidas por el símbolo # recibe com o la letra “A ” de acuerdo con el
la instrucción convierte el texto num érico en código A SC II; m ientras que con la segunda
un valor antes de guardarlo en la variable. se envía la cadena de texto de caracteres nu-
/ • tí y- c
m eneos 65 .
C om o un ejem plo, la siguiente instrucción de­
tiene la ejecución 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 restricción 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 instrucción 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 isión 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 configuración 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 través de estas será interrum pida
durante 18ms cada vez que éste despierta,
debido a la ejecución del reset del tem pori­
.T ie rra (GND)
zador del w a tch d og, lo cual se genera cada
-52¡£WV Pin 1/0<SERIN> 2,3 0 4 segundos.
Pin l/O (SEROUT)

DB-25 m acho (PC/XT)


(Lado de soldadura)

Esta in strucción 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 uración 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 típicos 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 cción 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 uración 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 resolución 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 ráctico 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 instrucción 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 posición 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 instrucción 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 instrucción, con esta pequeña ru tin a se
estado lógico 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 posición de la última
entre 0 y 7 y sirve para especificar el pin al ‘instrucción del programa
Repetir:
q ue se le cam b iará el estado.
b2= b2-l ‘decrementa hasta la próxi­
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 posición 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 posición 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 MÁS:


Redes de comunicación 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 tecnología de dre-
PC ó
nador abierto (open drairí), para conectar dos Terminal
1 /6 de 7404
o más m icrocontroladores BASIC Stamp I
con una PC, o cualquier term inal, a través
de una línea de com unicación 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 práctico 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 características 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

intérprete de las in strucciones, u n a m em oria de


En esta lección 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 tecnología 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 año, alta eficiencia y gran capacidad, que sólo debe contar con algunos requerim ientos m í­
puede ser usado com o u n a pequeña 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 ación am igable, un lenguaje de pro­
gram ación propio y una estructura de circuitos L a versión 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 ación 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 núm ero de instrucciones (3 6 ins­
trucciones), todas m u y com pactas, versátiles, po­
derosas y de fácil 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 señales seno), y D T M F O U T (ru­
tin a para generar tonos telefónicos), entre otras.

El h a r d w a re del m icrocontrolador B A SIC


Stam p II se construye sobre un pequeño 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 físico y distribución de lo s com ponentes y p in e s d e l BASIC Stam p II

Vil Curso práctico 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) nicación serial R S232 para nive­
3 ATN Atención, 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 unicación 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 conexión
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) diseñada 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 nexión. 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 operación 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 conexión con una
19 P 14 Pin 1 /0 1 4
20 P 15 Pin l/O 1 5 batería 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 conexión
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 línea 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 conexión y el reset, un conector BD 9 hembra
ple y c o m p atib ilid ad con los desconexión (U 3), un regulador para la comunicación 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 asignación 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 electrónico 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 “corazón” del sis­
tem a y en el cual está grabado el
program a intérprete 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 diseñado
por el usuario, u n circuito au- fígu[a 2 g2 Dlggram M^ ^ ((
M *
Curso práctico sobre M icrocontroladores
L as LiueL-acuuuulaáui'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 sólo lectu ra y contiene el reflejo
del estado lógico 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
queños circuitos prototipo, lo que resulta bastante variable O U T , es de lectura y escritura, y contie­
útil en la etapa de experimentación 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 dirección; 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 propósito general; palabra,
B1 byte, nibble y bit direccionables
m áx im a de 5 0 m A , y el
W1 B2 De propósito 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 propósito general; palabra,
co n su m ir m ás d e 42m A . B5 byte, nibble y b it direccionables
W3 B6 De propósito general; palabra.
B7 byte, nibble y bit direccionables
M apa de m em oria De propósito general; palabra.
W4 B8
del BASIC Stam p II B9 byte, nibble y b it direccionables
Este m icrocontrolador tie­ W5 B10 De propósito general; palabra,
ne 2.0 4 8 posiciones de 8 B11 byte, nibble y bit direccionables
bits disponibles en la me­ W6 B12 De propósito general; palabra,
B13 byte, nibble y b it direccionables
m o ria de p rogram a tipo
W7 B14 De propósito 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 propósito general; palabra,
usuario; en ésta últim a, los B17 byte, nibble v b it direccionables
primeros 6 están reservados W9 B18 De propósito general; palabra,
B19 byte, nibble y bit direccionables
para configurar los pines de
W10 B20 De propósito general; palabra,
entrada o salida y controlar byte, nibble v b it direccionables
B21
la dirección de los mismos, W11 B22 De propósito general; palabra,
m ientras que los restantes B23 byte, nibble y b it direccionables
26 están disponibles como W 12 B24 De propósito general; palabra,
B25 byte, nibble y b it direccionables
variables de propósito 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 práctico sobre M icrocontroladores


INS: El registro DIRS controla cuál de dora y el cable D B -9 a D B -9 que el fabricante
los pines l/O s o r entradas y cuáles
salidas. Cuando se pone la entrada su m in istra especialm ente para este propósito, 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 lógicos y no a fe c ta otros El lengu aje de program ación 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 diseñado 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 versión 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­
ción (com o en trada o salida) de cada uno de los
En esta sección se estu d iarán 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 versión 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
rán en orden alfab ético para fac ilita r su b ú sque­
com binaciones de los estados lógicos 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 ién , aq u ellas q u e sólo sufren una
P rogram ación del BASIC S tam p II
extensión en la variab le o constante llam ad a pin ,
En lo que a la program ación 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 instrucción se cuenta el núm 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 ráctico sobre M icrocontroladores CWM€MT.:


L.US LllICL\lCÜLlÚ\4aÍÜL\=£ LlASLG SlE.lU|i IL

crem ento se ha cam biado por el valor del paso


C o n esta in strucción se puede m onitorear el {stepval) que tam bién 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 instrucción 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 strucción 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 icación por tonos de especifica la frecuencia del tono en Hertz; puede
las redes telefónicas. 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 instrucción 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 resolución 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 instrucción se puede producir una
el tiem po (en ms) que va a du rar el espacio de señal 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 núm ero del p in I/O del m icrocontrolador
con 10 e q u iv ale al c arácter star (* ), con 11 p o r el cu al se va a g en erar la m o d u lació n
al c arácter 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 relación
de ceros y unos, que es conocida com o el ci­
clo de servicio de la señal m odulada.

C on esta instrucción se im planta un lazo del


tipo FO R ...N E X T tal com o en la instrucción Utilizando esta instrucción se cuenta el tiempo
de la versión anterior, pero, en este caso, el in- durante el cual un determ inado pin permanece
t *
C ffíW u í W s a- Curso práctico 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 posición 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 ecuación característica
tlabel: es u n a etiq u eta opcional que hace re­
en un estado. Esta instrucción se ha diseñado ferencia a la posición 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 edición 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 sincrónica (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 ecuación 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 strucción 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 sincrónica (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 strucción 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 cuál 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 cuál 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,
guración 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 cuál 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 isión 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 después de los pulsos del reloj tiene el dato q ue se va a en viar y sólo
LSBPOST 3 Prim ero el LSB y m uestreo después 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 recepción sincrónica con la instrucción 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 instrucción se detiene la ejecución 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 posición a la cual se debe saltar, al
detectar que no se ha dado el perm iso de trans­ C on esta instrucción se escribe directam ente
m isión 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 strucción se reciben datos en for­ que va a ser escrita con un dato de 8 bits. Pue­
m ato serie y con desplazam iento sincrónico. 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 isión serial sincrónica,
cp in : es la variab le o la constante entre 0 y 16 C on esta in strucción se pueden enviar hasta
con la q ue se especifica el pin q ue va a ser 10 com andos a través de un p in d el puerto,
usado com o el reloj de sincronización, el cual es usado com o lín ea de control. Éstos
mode: hay cuatro modos que pueden definirse se envían m odulados y deben recibirse por
con sus símbolos o con los números 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 instrucción se envían datos en for­ sentan los co m and os eq u ivalen tes para las
m ato serie y con desplazam iento sincrónico. 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,
SÍMBOLO 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 núm ero de veces que
Tabla 2 8 .3 M o do s de transm isión sincrónica con la instrucción SHIFTOUT se d eb e tran sm itir el com ando.

Curso práctico 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 lección, es la
generación avanzada de 8bits que posee u n a arquitec­
tura optim izada para la ejecución 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 &ii£l ¿ ¿ 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 través 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 ién , 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 característi­
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 rístic a s tern a básica 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 características 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
operación lógica 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 unicación no sincróni­
ca fu ll-d u p lex
IPD Ice — — 5 3 — —
(TYP: |¿A)
• 5 fuentes de interrupción
•O scilador interno
Tabla 2 9 .1 C aracterísticas resum idas d e lo s m icrocontroladores de la fam ilia M C S -5 1

d ^M C M T . Curso práctico 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

Descripción de pines del


m icrocontrolador 8051
a vcc
En la figura 2 9 .2 se m uestra la distribución 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 continuación se hará una des­
cripción 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 ación de
la m em oria E PR O M interna.
PSEN (p ro g ra m sto re en a b le) es la señal
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, sólo se ejecuta el program a desde la R O M in ­
F ig u ra 2 9 .2 A signación 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
LllíaUvXLlUU&iCIAsS ¿ ¿ ¿ l C ¿ Ll^cl

Entrada del es la señal 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 = 40pF±10pF para resonadores cerámicos de acoplam iento para una señal 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 típicos para e i oscilador interno y externo
circuitos típicos para configurar el oscilador.
0, se ejecuta el program a desde la m em oria externa es la entrada de inicialización del siste­
(opera como microprocesador). Por VPP se recibe m a. Su estado activo es alto (al ponerla en 1 lógico
la tensión de programación necesaria para “quemar" d uran te cierto tiem po se genera el ciclo de reset).
el program a en la EPRO M (típicam ente está entre
12,75V y 21V). O rganización 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
ción serial. las áreas de m em o ria de datos y program a de
es la salida del puerto de com unicación serial. los m icrocontrolad ores de la fam ilia M C S -5 1 ;
INTO: es la entrada de la señal 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 señal de interrupción 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 sólo puede ser leíd 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 leíd a o escrita, y
tador 1 (tim e r 1). tam b ién p u ed e ser in tern a o externa con capa­
es la señal 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


Teoría

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 interrupción; 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 configuración 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 selección 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 señal 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 propósito 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
terísticas 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 rápid 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 onfiguración de la m em oria de program a
d iarán sus características.

Curso p ráctico sobre M icrocontroladores cc M M iim :


L a s lULei-ucuLúralciáaiiis LÜtn ¿ 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 dirección 20.0 , m ientras que la direc­
$0000 ción 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)
rápido 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 más altos de la me­
$00 BANCO 0 $07 m oria de datos se encuentran los registros de
función especial (SFR) de esta fam ilia de m i­
F ig u ra 2 9 .8 Segm entación 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 símbolos y direcciones. A
Los bancos de registros son cuatro (banco 0 a
continuación se explican brevemente las fian-'
banco 3) y cada uno se com pone de 8 registros
dones de los SFR , y los más importantes de ellos
de Sbits (RO a R 7); éstos se encuentran entre
se verán 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 selección de los
(A C C ó A ): es el más 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 propósi­
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 división, y pue­
ro de la p ila (SP) señale a la posición que co­ de ser de propósito 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 después del reset en otra S ta tu s W ord P SW ): es el registro q u e co n ­
posición 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


Teoría

SÍMBOLO 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 recepción 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 autorización 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 versión 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 tecnología
+ = 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 función 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 unicación 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 señala a la (T im erlC o u n ter c o n tr o l reg ister T C O N ): es el
posición $ 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 activación asig­
ción de apilam iento o llam ado (P U S H o CALL), nados para los trim er 0 y 1.
queda señalando a la prim era posición 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 dirección 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 práctico sobre M icrocontroladores W,,


LüS L llL C L U C U lltl'ü lílliU 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 bím 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
BítO [ 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 arám 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,2k£l


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 típico de re s e t autom ático para e l 8051
lecciona el m odo de operación del tim er 0 ó 1
VALOR DESPUÉS
(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 conexión 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 interrupción tación (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 interrupción podrá ser programada en por la red de carga TH1 $00
nivel de prioridad 1 ó 2, y toda interrupción con R C , que está forma- TL1 soo
prioridad superior puede bloquear la ejecución de d a típ 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 parámetros de la com unica­ tarse de acuerdo con P C 0N (CHM0S) OXXXOOOOB
ción 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 dirección de la transmisión. crocontrolador. registros después de l reset

Curso p rá ctico sobre M icrocontroladores


PUERTOS Y PERIFÉRICOS
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 eriférico 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 ráctico sobre M icrocontroladores c m fc tr ,: < zss
l'iiiiiius v iieiiiúucus iiiuHue| éel LuíajícuLiü-flaEj^&¡jj|

PARA SABER MÁS:


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 MÁQUINA

F ig u ra 30.1 Representación 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 ién 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 ién 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 bién 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 ación y verifi­
1 ló gico se p ro g ram an com o e n tra d a s. Por su cación de la E PR O M in tern a, en la versión
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 ién 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 bién 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 FUNCIÓN 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 (Interrupción externa 0)
P3.3 ¡ÑTi (Interrupción 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 característi­ P3.6 WR (Autorización de escritura en memoria de datos extema)
cas particulares de cada uno de los puertos se es­ P3.7 RD (Autorización de lectura en memoria de datos externa)
tu d ian a continuación : Tabla 30.1 Funciones alternas d e l pue rto 3
M *
Curso práctico 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)
Función 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 dirección d u ran te la progra­ el d iag ram a de tiem pos de la fig u ra 3 0 .3 , ésta
m ación y verificación 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
propósito general, pero adem ás com parte otras Para la lectura sólo basta con invertir el orden
funciones importantes; en la tabla 30.1 se resu­ de los operandos de la instrucción 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 operación de P1 F
P2 P1 P2 P1 P2 P1 P2 P1 P2

escritura en un puer­
to, que generalm en­ ru d
te se efectúa por m e- M0V PX>(DATO)
dio de la instrucción 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 instrucción MOV PX, (DATO)

Curso práctico 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 señal
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 través 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 CÓDIGO 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 según 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 ción del tim er.
m a y el segmento de
código del mismo. En M odos de operación de los tim ers 0 y 1
el program a se ilustra el uso adecuado de los puer­ La función 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 envía por los pines del puerto 1. ración 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 eñal 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 señal 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 oívlad 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 específicos
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 ción 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 fíR 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 lógico en el to es idéntico 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 más 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 señal de interrupción 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 ción adecuada (T F 0 ó T F 1) y el registro T Lx
lógico 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 práctico sobre M icrocontroladores


Lus lllíClUCfillilUlaiillllrS SUEl IÍL lllüsl

_ 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 núm 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 diseñado 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 operación 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 práctico 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 eriférico 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 eriférico 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
Introducción NOMBRE MNEMÓNICO BANDERA
T radicionalm ente el servicio bidireccional no sin­ Externa 0 INTO IE0
crónico y sincrónico entre la C P U del m icrocon­ T im e r 0 (Interna) TIMERO TFO
trolador y los dispositivos y sistem as periféricos, Externa 1 INT 1 IE1
se ha desarrollado por m edio de técnicas 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 icación construidos con algunas
lín 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 periféricos, 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 interrupción. de la derecha se m uestran tam bién las banderas
que están asociadas a cada in terrupción .
No obstante, este m étodo presenta proble­
m as cuando los periféricos 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 sólo 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 ejecución 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
atención. Por lo anterior, este m étodo sólo se este registro con todas las co n d iciones de sus
usa con eficiencia en grandes sistem as de cóm ­ 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

técnica 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 interrupción externa INTO
rram ien ta poderosa para establecer un servicio • S i EXO = 0 la inhabilita
no sincrónico, directo e in m ed iato , entre la C P U
B1 ETO • S i ETO = 1 h a b ilita interrupción del Tim erO
y los sistem as o dispositivos periféricos externos • Si ETO = 0 la inhabilita
e internos. C on esta técnica se evita la ejecución
B2 |EXT | • Si EX1 = 1 h á b ilita interrupción 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 periférico genera
B3 |ET11 • Si ET1 = 1 h a b ilita interrupción del Tim er 1
una señal de in terrupción (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 están a uno
Las interrupciones del MCU 8051 • Si EA = 0 n o reconoce ninguna interrupción

Los m icrocontroiadores 8051 cuentan con c in ­


C uadro 31.1 Registro habilitador de las interrupciones
co fuentes de in terru pción , dos externas y tres IE d e l 8051
/é % K * *
292 4$^R €M Ts* Curso p ráctico sobre M icrocontroladi
C ad a una de las interrupciones afecta a un Vectorización 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 terrupción , 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 terrupción 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 lógico in icial para poder aceptar la próxi­ (dirección fija en m em oria de program a asocia­
m a in terrupción . 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 pción , 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 través 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 están activas p o r flanco; pero, cuando TFO $OOOB o
EXTERNA 0
están 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 vectorización
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 través 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 terrupción pueden
utilizarse para contener d irectam ente los progra­
mas cortos de atención 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 ción de salto JM P (d ir) necesaria para cargar el
TFO- registro P C con la dirección 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 atención a la inte­
TF1 ■
rrupción se en cuen tra ubicada a p artir de la po­
sición $ 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 lógico, el
vector correspondiente, que está ubicado en la
Figura 31.1 Fuentes de interrupción de l 8051, selectores y banderas posición $ 0 0 1 3 , debe contener el código de ope-

Curso práctico 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

ración de la instrucción 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 vectorización,
guardarse los b ytes de la dirección de salto más y sólo 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 strucción o una in terrupción 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 instrucción de
retorno de in terru p ció n RETI.

Nota:
Toda rutina de atención a una interrupción debe
Rutina de servicio a
la interrupción In ic io term inar con la instrucción d e retorno d e in te­
$0777-1 ' ÍÑÍi rrupción 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 dirección de dos bytes a partir de la
$0014 cual debe continuar la ejecución 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 sólo se experim entará u na pérdida
F ig u r a 3 1 .3 Salto a una ru tina de interrupción en m em oria de
program a
de tiem po relativam ente pequeña durante la eje­
cución del program a principal al m om ento de
Para com prender el proceso de in terru p ció n atender la interrupción.
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 térm 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 bién 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 ién , 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 interrupción

294 5^ tÚ J M I& IIW s '1 Curso p ráctico 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 MÁS:
B ill BUG Bit 5 B iti Bit 3 Bit 2 B iti BitO Sim ulación 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­
terrupción con diferentes niveles de jerarquía, 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 más de dos niveles de prioridad,
B1 PTO • S i PTO = 1 de fine a lta p rio ridad a la interrupción 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 continuación.
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 interrupción del puerto serial
tener el nivel más alto de prioridad, superiora 1 (prio­
B5 R eservado ridad alta), y se les debe asignar la prioridad 1 a tra­
B6 R eservado vés 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 acompañan por los siguientes seg­
interrupciones IP d e l 8051 mentos de código de programa al inicio y antes de la
instrucción 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 INTERRUPCIÓN
é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 interrupción
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 instrucción RETI (lo cual borrará la interrupción con
nivel de p rio rid ad alto sólo 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­ terrupción con prioridad 1 que esté habilitada podrá
m o de p rio rid ad . ser atendida.

Con la instrucción de descarga de la pila (POP) se


NIVELES DE PRIORIDAD PREDETERMINADOS
recupera el contenido original del byte del registro
PRIORIDAD BANDERA INTERRUPCIÓN habilitador IE, y finalmente, con una instrucción de
(m ás a lta )... 1 ÍÑTO EXTERNA 0 retorno de subrutina (RET) se termina la rutina de
2 TIMERO TIMERO servicios de la interrupción. Este softw are adicional
3 INT1 EXTERNA 1 que se requiere no retarda considerablemente la eje­
4 TIMER1 TIMER1 cución de la rutina de servicio de la interrupción 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 ráctico sobre M icrocontroladores < Ú Ü H H & m T s . 295
LlltLHtUl’CLUlLlrS Úlrl LLlLLnfeuiLuííiüUL Í’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 í sólo
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 operación, y las banderas de in te­
rrupción 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 interrupción 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
EVALUACIÓN
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 ráctico 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 posición de m em o ria $ 9 9 de los SF R . A l
puerto de com un icaciones serial no sincrónico 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 leyéndolo, se accede al
táneam 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
sincrónico, o U A R T ( u n iv er sa l a syn ch ro n ou s re- m odos la transm isión 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 strucción, m ientras que la recepción 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


TRANSMISIÓN -►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


RECEPCIÓN 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 ción 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 onfiguración de la velocidad de
D ebe s e r d e sa c tiva d o p o r softw are
com unicación
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 isión 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 ecuación 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 ecuación 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 gún 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 Ecuación 32.1 Velocidad de com unicación en MODOO

Curso p ráctico 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 unicación en M 0 D 0 2 E c u a c ió n 3 2 .3 Velocidad de com unicación 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 unicación
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 icación 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 través
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
sión o recepción 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 ffiíd 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 isión 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 fíeset. PCON to m a el s ig u ie n te v a lo r 0X X X 0000 recepción 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 isión se inicia cuando se usa el regis­
tro SB U F com o destino, y que adem ás la señal 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 señal 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 envía 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 ría 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
municación 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
configuración d e lT IM E R l. Tabla 32.1 Velocidades de com unicación e stándar en los M 0D 0S 1 y 3 con e l TIMER 1

C urso práctico 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

INTERRUPCIÓN
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 recepción se la s e ñ a l de d e s p la z a m ie n to la señal 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 señal 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 práctico 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 unicación 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 isión y recepción en dicho m odo. Igual­
CLOCK m ente q u e en el M O D O O , la transm isión se in i­
P3.1 1--------------- cia cuand o cu alq u ier in strucción u tiliza el regis­
|(1 1 ) TXD
TRANSM ISO R/ tro SB U F com o destino, sin em bargo, el proceso
RECEPTOR de recepción se activa cuando se detecta un flan ­
BilO B it1 fflC S/<3 BiM e /S SíJ6 BitJ co descendente en el pin R X D , q u e perm an en ­
tem ente es m uestreado a razón de 16 veces.
t t
LSB MSB Al final de la recepción, cuando el b it de in i­
F ig u ra 3 2.4 Esquema de com unicación y form ato de palabra cio llega a la novena posición 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 unicación y se activa en 1 lógico la bandera de interrupción
C on los b its SMO y SM 1 en cero y uno respecti­ de recepción 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 unicación esquem a sim p lificado de la com un icació n y el
serial, en éste se transm iten 10 bits a través 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 unicación
de p alab ra están 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 lógico), 8 b its de datos y 1 b it de D O S 2 ó 3 de com unicación 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 función 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 través 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 ráctico sobre M icrocontroladores


C m u iíL 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

INTERRUPCIÓN 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 están 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


lógico), 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 lógico). 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 unicación 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 unicación 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
• i«»eae>
nx
“ “j iu a J1 0 !L ji n a n il

y L" /^XZIXTEXZIX^OQ O O D O E X jD'


„ .
BU TRANSMISIÓN: 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 RECEPCIÓN: 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 unicación y form ato de


F ig u ra 3 2 .8 Cronogram a d e l proceso de com unicación en M 0 D 0 2 palabra en tos MODOS 2 y 3

Curso p ráctico 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 )

INTERRUPCIÓN DEL
PUERTO SERIAL

T ESCRIBE EN SBUF

RXD

ESCRIBE EN SBUF ►

Nota:
TCLK, RCLK y el Timer 2 están 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 recepción 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 posición de R B 8, y se ac­
flanco o tran sició n de nivel de ceso de recepción se transfieren tiva en 1 lógico la bandera de
voltaje descendente por el pin los 8 bits recibidos a l registro in terrupción de recepción 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 eriférico 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 ráctico sobre M icrocontroiadores
Lus iiüeuffim U ultiiiuU rS lk\í 11 # t* ¿i/ug iíl; /átifiOL I
ATMEL • Seguro de p ro gram ació n para las m em orias
Es una com pañía que desde 1984 es líd er y pio­ FLA SH y EE PRO M
nera en el diseño y desarrollo de sem iconducto­ ■ 15 líneas 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 análogo
sadores AVR, los conjun tos lógicos y analógicos • W atctbdog program able
program ables de alta densidad (PAL y PAA), las • Interfaz serial SPI
m em orias no volátiles, los m ezcladores y am p li­ • U A R T fn ll-d u p lex
ficadores de señal, 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 tecnología de fabrica­ PO W E R-D O W N
ción de circuitos integrados con alta densidad • Interrupciones externas e internas
(w a fer p r o cesses), A T M E L es tam bién 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 técn i­
cas se orientan a las estructuras C M O S , B iC - D escripción de pines del AT90S2313
M O S y SiG e (S ilico n G erm a n iu m ).

En esta lección estudiarem os el m icrocontro­


lador AV R de 8 bits de ATM EL que cuenta con
las características 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
características 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 Configuración 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 istribución
cip ales características son: y el nom bre p rin cip al y alterno , entre paréntesis,
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, sólo se explicarán a co n tin u ació n aquellos
• 118 instrucciones com pactas y poderosas q u e poseen características particulares y nuevas
• 3 2 registros de 8 b its de propósito 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 volátiles to B, que es de 8 bits, bidireccional (operan como
• 2¥Lbytes de m em oria program able FLA SH entrada o salida), y todas sus líneas tienen además
• 128 bytes de m em oria R A M estática SR A M resistencias internas p u ll-u p program ables; todas
• 128 bytes de m em oria program able EEPRO M sus lín eas p u ed en m an ejar d irectam en te diodos

(ÚM BCBTG Curso práctico sobre M icrocontroiadores


Teoría

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 sólo 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 ­
SEÑAL 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 onfiguración 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 través 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
bién
icii com o las entradas positiva (AINO) y de 8 b its c ad a uno.
negativa (A IN 1) del com parador análogo.
En la fig u ra 3 3 .3 se m uestra el diagram a es­
A l activar el reset todas sus líneas 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 rganización de la m em oria


de 7 bits, bidireccionales, y todas sus líneas tie­ En la fig u ra 3 3 .4 se m uestra la d istribu ción 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, después 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 estática (S R A M ), 15 registros I/O
m ente en nivel lógico bajo al m enos durante 50ns. de 1 byte, 3 2 registros de trabajo o propósito 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 periféricos 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­
rám 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 bién 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 ecífica, 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 ráctico sobre M icrocontroladores


Lus iiiiiauüUUüuLíidüiis 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


Teoría

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 través de las cuales se controlan las funciones
PROGRAMA 64 Registros l/O
(1K x 16) generales, especiales y el estado de los periféricos
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 específicas y propias del control de cada uno
de los módulos periféricos, hay dos registros que
F ig u ra 3 3 .4 M apa de m em oria d e l AT90S2313 poseen características ú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 dirección y el valor in icial que asu­
$1D Byte alto del registro Y m e después 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 práctico sobre M icrocontroladores


Lu$ luíiuu^uuuuluiiuiirs Á.VU. de Ü l>tisúk /Ü'U'iliL í

DIRECCIÓN HEX. NOMBRE FUNCIÓN 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 interrupción MASK registro de control M C U C R con
$3A ($5A) GIFR Registro general de interrupción FLAG
su dirección y el valor in icial que
$39 ($59) TIMSK Registro de interrupción del TIMER/C0UNTER
$38 ($58) TIFR Registro de bandera del TIMER/COUNTER
adopta, después 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 están 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 paración 1 en cero lógico.
$2A ($4A) 0CR1AL B yte bajo del registro de salida de com paración 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 lógico 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 dirección 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 dirección 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 análogo 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 señala 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 lógico, cuando el resultado de una operación 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 operación 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 seña­
la cuando u n a operación aritm ética cualq u iera, B it 1 y 0 (ISC01 e ISCOO): con estos dos bits se
o lógica, 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 interrupción externa 0 (pin INTO).
cuando el resultado de una operación 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 selección del nivel y el flanco de la señal de
propia de las operaciones aritm éticas y lógicas. excitació n de tal in terru p ció n .

< ú M iK < n m * Curso práctico sobre M icrocontroladores


Teoría

• La memoria de datos SRAM


ISC11 ISC10 DESCRIPCIÓN
El área de la m e m o ria de d a ­
0 0 Se genera una interrupción 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 interrupción 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 interrupción 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 interrupción 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 DESCRIPCIÓN
los re g istro s se p u ed en ac c e ­
0 0 Se genera una interrupción 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 interrupción por un flanco descendente en el pin INTO
1 1 Se genera una interrupción 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 interrupción 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 dirección 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 año sólo 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 estática. 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 instrucción 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
rección de la lo calid ad de m em o ria q u e va a ser

Curso p ráctico sobre M icrocontroladores


Lus luiciüCüLiüulaLiurüh- AVti de t¿ bli¡¿de /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 leído 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 código
Lectura/Escritura R R/W RAV R/W R/W R/W R/W R/W
de operación de la in strucción 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 código de
tu ra y escritura, lo cual es típico para esta tec­
operación de la instrucción y la dirección del
nología. Sin em bargo, las m em orias EEPRO M
operando está contenida en los 6 bits más bajos
tienen u n a m ayo r d u ració n , pueden soportar
de la instrucción 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 uación se hace la descripción 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 código rección de 16 b its del d ato se lo caliz a en la
de op eración de la in strucción 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 práctico 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 operación para ap un tar a la dirección 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 código
de operación de la in strucción y la dirección
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 dirección de 6
bits (desplazam iento) contenida en la parte a D ireccionam iento indirecto de datos con
de la in strucción. 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 después de la ope­
Espacio de ración; de esta forma el contenido de cualquiera
datos
15 de estos registros, antes del increm ento, ap un ­
ta a la dirección 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 dirección 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 códitg 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 dirección 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 ráctico sobre M icrocontroladores


Lus lülLn-uiíüiiü-flaiiuiiis /vVLi iíl1 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 líneas
de puertos bidireccionales y to talm en te progra-
m ables, que se agrupan en las 8 líneas del puerto
B (PB 0 a PB7) y en las 7 líneas del puerto D
(P D 0 a PD 6).
fig u ra 33.20 Direccionamiento de código 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 dirección 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 ejecución 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 configuración del puerto B;
todos hacen parte de los registros especiales I/O
y están 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 configuración
del puerto por m edio de los bits del registro de
1 1 . D ireccionam iento relativo de m em oria de dirección D D R B (b its D D Bx)
program a
En la fig u ra 3 3 .2 2 , O P representa al código 2. El puerto D
de operación de la instrucción, y la dirección 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
dirección 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 dirección 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 (dirección 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 configuración del puerto D.
Estos están representados en la fig u ra 3 3 .2 6 .
Teoría

PARA SABER MÁS:


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 están 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 análogo AINO
PB1 Entrada negativa del com parador análogo AIN1 cada uno de lo s pines.
PB3 Salida de com paración e igualación del TIMER/COUNTER 1, OC1
PB5 Línea de entrada de datos para descarga de la m em oria, MOSI
Las opciones de co n figu ra­
PB6 Línea de salida de datos para la carga de la m em oria, MISO
PB7 Entrada serial de reloj SCK ción 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 configuración 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í? LiiÍLnuuuuU'ulü.duiL-i? AY 11 dC1 L L’fii: 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
tán 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 lógico 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 Configuración de lo s p in e s d e l p u e rto B rrupción acom pañadas por sus
direcciones y niveles de priori­
dad. C om o es ló gico , el reset
siem pre tiene reservada la posi­
ción in icial ($ 0 0 0 ) de la m em o­
ria de program as y, adem ás, es
la interrupción con m ayor prio­
ridad para la C P U ; en este m i­
crocontrolador, la p rioridad a la
atención de las interrupciones
está organizada lin ealm en te en
orden descendente dentro del
área de vectorización y, por lo
tanto, el vector 11 (el de la in ­
terrupción 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 ción 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 lógico 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 interrupción
$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 configuración d e l pue rto D cuando la fuente de alim en-
Teoría

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 recepción de datos de la UART, RXD
PD1 Salida de transm isión de datos de la UART, TXD recib en a través de los p i n e s I N T 1 e I N T 0,
P02 Entrada de interrupción 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 interrupción 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 .
tación 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 típicos 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-guardián 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-guardián 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 lógico de program ación 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: después 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 lógico. En
carga con la dirección 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 conexión (POR) y del watchdog m m m
2 $001 INTO Solicitud de interrupción extema cero (pin INTO)
H
3 $002 INTl Solicitud de interrupción externa uno (pin IIMT1)
4 $003 TIMER1 CAPT1 Evento de captura del TIMER/COUNTER 1
5 $004 TIMER1 C0MP1 Evento de igualación 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 Recepción completa (RX) de la UART
9 $008 UART, UDRE Registro de datos de la UART vacío
10 $009 UART, TX Transmisión com pleta (TX) de la UART
11 $OOA ANA_C0MP Comparación análoga Baja

Tabla 3 3 .7 Tabla de vectorrzación de l AVR AT90S2313

£ *
Curso p rá ctico sobre M icrocontroladores ^ M /K /n n i # 3 i 7
Luis UlÍLHUinmUüEáUllís AV'li El- ti ¿.’Eií úl- /ilMEL

S ím bolo P arám etro M in Típico M ax U nidades


Voltaje ascendente del umbral del reset a la conexión 1,0 1,4 1,8 V
VpOT
Voltaje descendente del umbral del reset a la conexión 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 conexión y
parám 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 máscara de interrupciones generales GIMSK

El registro bandera de interrupciones W TERNAÍ.


RESET

g enerales GIFR fíeset 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 conexión
q ue la rutin a de la interrupción adecuada se eje­ (start-u p) de!A T90S 2313
cuta (luego de la instrucción de retorno de una
interrupción 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
operación 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 arám 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 típ 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
conexión 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 entación 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 bién 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-
pío 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 operación 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 práctico 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


Introducción 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
Evolución 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, corazón de las c o m p u tad o ras.............................................. .........10 C ircuiro d e rein icialización ( r e s e t ) ................................................................................... ......<38
Funcionam iento- del m icro p ro cesad o r....................................................................... .........11 R ein icialización a l encendido (P o w er O n Reset-. P O R ).......................................... ...'.'.69
O rganización 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 peración b ásica de un m icroprocesador ................................................................ .........13 lem porizad or d e oscilación 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 lón pn u« ri m
raíd
ia da rncu id la aiuiicnuiLíUi
alim/*nr-ir¡4r<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 rganización de un sistem a basado en un m icropro cesador.......................... .........17
Secuencia de operación de un sistem a basado e n un m icroprocesador .... ......... 18 A rq u itectu ra H arvard ........................................................................................................... ......7 4
Secuencia d e operación 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 ecodificación d e u n a in stru c c ió n ................................ ............................................ ........ 24 Conjunto- reducido de instrucciones .............................. ...................................... ..... 75/j
E jecución de u na in stru cción ........... .................................................... ....................... ........ 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 cción _ 76
D iseño 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 iseño 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 iseño 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 aplicación .......................................................................................................... .... 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 ción 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 periférico 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 aracterísticas 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 escripción 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 paración .............................................. .... 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
1¿V
Dispositivos E E P R O M ......................................................................... ............................ ........... 49 14 Introducción 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 isión sin c ró n ic a ....... ................................................... .................... . .... 1i ¿ j
DIE ......................................................................................................................................................................................................................... ...........49 T ransm isión no sin c ró n ic a ........................................................................................................................................................ .... 124
Servicios especiales ......................................................................................................................................................................... ...........4 9 C om u n icacio n es seriales no sincrónicas 124
Program adores y entrenadores ( T ra m en ,) ..................................................................................................... ........... 50 Protocolo serial no sincrónico ..................................:...................................................................................................... .... 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 están d ar R S -2 3 2 ............................. ............................................................................................................ 126
La fam ilia H C 0 8 ............................................................................................................................................................ .......... 53 C aracterísticas eléctricas ..... . ... 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 nicación h a lf-d u p le x ......................................................................................................................... . . 131
La fam ilia N úcleo M (M C O R E ) ............................................................................................................................. ..........55 Recepción h a lf-d u p le x ........................................................................................................................................................................ 131
La fam ilia M P C 5 X X ........................................................................................................... . 55 T ransm isión 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 aplicación 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 isión p o r m ed io d e la U A R T ...... .1 4 4
M icrocontroladores A tm e l......................................................................... ........................ ..........59 Recepción 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 sincrónicas ............................................... ........ . 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 periféricos com unes en la co m u n icació n serial sincró nica ........ . 149

Curso práctico sobre M icrocontroladores ém u € & riL *


L iu ite e O LH ia-dl

Estándares 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 señales 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 aracterísticas del convertidor A D .......................... ......................................................... 1 56 D escripción d el m ód u lo KBI ............................................................................................... 230
C aracterísticas 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 tilización 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 configuración ............................................. 163 El m ódulo d e conversión análoga a d ig ital A D C .......................................... 234
O peración del w a r c h d o g ....................................................... 164 D escripción d el m ódulo A D C .................. 235
M odo sleep ......................................... 165 Voltaje de conversión 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 conversión 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 tegración SIM .................................................................... 237
El sistem a de m em oria ......... 174 Fuentes internas de interrup ción d el r e s e t ............................................................. 238
Los m ódulos periféricos in te r n o s ........................................................................-............... 176 El reset a la conexión d e la alim en tació n P O R ............................................. 239
A signación d e pines en los m icrocontroladores 6 8 H C 0 8 ........................................ 176 El reset por có d igo d e operación 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 escripción 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
Señales d e relo j in tern as............................................................................................................ 188 D istribución de pines d el B A S IC Stam p I ............ ........................................................ 251
C aracterísticas eléctricas 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(:ión d e la m em o ria en lo s m icro co n tro lado res Program ación 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
Asignación 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 ción 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
Vectorización 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 básicos 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 ación 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 básica d e los m icrocontroladores 8051 ................................................. 278
O peración d el m ódulo D M A 0 8 ............................................................... 205 D escripción de pines d e l m icrocontrolador 8051 ...................................................... 279
C aracterísticas resum idas del m ódulo D M A 0 8 ............................................................ 206 O rganización 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 operación 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 Vectorización 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 escripción 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 ción .................................... 218 A rq u itectu ra del A T 9 0 S 2 3 13 ............................................................................................... 307
E valuación del nivel d e prio rid ad (a r b itr a je )................................................................. 219 O rganización 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 ción 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

También podría gustarte