Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Curso Práctico Sobre Microcontroladores - Tomo I - Teoria (Cekit) PDF
Curso Práctico Sobre Microcontroladores - Tomo I - Teoria (Cekit) PDF
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
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
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 :
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
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
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 .
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.
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.
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.
' \\ ^ *
8 < S !E ¡K £ U W s . Curso práctico sobre Microcontroladores
LECCION 2
LOS MICROPROCESADORES
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
i P i i 1 í
CONTROL DE INTERRUPCIONES CONTROL SERIE 1/0
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
DBOUT
Data OUT
—►-
> - BDB
Data IN
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
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
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.
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
k
Bus de direcciones
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.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
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
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)
Bus de direcciones
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
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.
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.
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
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
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
ALE ALE
______ __ Para almacenar en la memoria los datos e
11
instrucciones que constituyen el programa de
W
WR >_______ 10 in nuestra microcomputadora, necesitamos asum ir
co
temporalmente el control del circuito de soporte
RÜ
» 55 9 8155 y aislar el microprocesador 8085 del resto
10/M _ IO/M 7 del sistema. De este modo, podemos introducir
J I
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
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.
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
Microcontrolador
Dispositivos
de entrada
Programa
Teclados
Programa
Sensores Relés
Transductores Parlantes
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
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:
+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
• 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
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
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
PIC16C74 192 TMR0.TMR1.TMR2 SPI/I2C/SCI 8 ch 3.0-6.0 40-pin DIP, 44 -pin PLCC. 44 pin OFP
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
*
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
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.
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.
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
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-
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.
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 )
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
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
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
*
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.
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.
VERSIÓN
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)
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.
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
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
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
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
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
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
+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.
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
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
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
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
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.
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
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.
T0SC
uiT uiT U T rnT ruljU ^i
TCY1 TCY2 TCY3
á *
78 @ M IK ÍIIW *.a. Curso práctico sobre Microcontroladores
Teoría
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
bit 7 bitO
D irección: 03h
C ondición de reset. 000??XXX
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.
bit 7 bitO
D irección: 81 h
C ondición de reset. 11111111b
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
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
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)
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.
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
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 .
?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
Cátodo común
—AAAr-
—A W -
READ f^ A r
READ/ —A A A ^
WRITE
2N 3906
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.
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.
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
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
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.
+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
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
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.
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
la lista es la siguiente:
Figura 11.1 Ubicación norm al de la rutina de interrupción
Figura 11.5 Diagrama de tiempos del comportamiento del microcontrolador frente a una interrupción INT
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
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
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
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
'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 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
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
TMR1 = Temporizador/
contador TMR1 = Modo captura TMR1 = Modo comparación
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-
ito de
Twia
aUCl
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')
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
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
Figura 14.2 Comunicación en serie o serial Figura 14.4 Comunicación bidireccional (full dúplex)
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
►Tiempo
• Estructura del carácter-
Tiempo d e u n M
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
Interfaz Interfaz
RS-232 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
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
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.
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
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
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.
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.
* 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
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
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
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
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
TXON
DTE
Figura 14.31 Diagram a esquem ático del circu ito para los ejem plos
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
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
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
\
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 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.
•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
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
Á. *
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
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
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.
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
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
¥ 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
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
b it 7 b it 0 b it 7 b it 0
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
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
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
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-
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
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
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 ’)
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
□
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
l i l i
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
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
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
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 .
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
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
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).
Figura 17.1 Sum ario de las características princip ale s den tro de los m icrocontroladores de la fa m ilia 68HC08
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
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 .
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
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
c o m p u e rta s s c h m it t t r ig g e r .
p u ll- u p p ro g ra m a b le .
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
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-
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
PTAx
Figura 18.4 C onfiguración interna en bloques de l c ircu ito dei pue rto A
PTBx
Hacia el módulo de
convertidores A/D
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
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.
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
MÓDULO DEL
Desde el SIM OSCÍLADOR
20SC0UT OSCOUT t
I RCCLK
------- ' - J f— l
MCU
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
Resistencia de realimentación rb - - 10 10 - MQ
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
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
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.
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 ).
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
$ 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
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
Reset: 0
S000E Lectura:
i Sin establecer
Escritura:
$0019
Reset: 0
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 :!
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
$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:
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
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:
$FE02 Reservado c R R R R R R R R
Escritura:
Lectura:
BCFE
Ll_
LU
o
co
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/>
Escritura:
(BRKL)
Reset: 0 0 0 0 0 0 0 0
Reset: N o e s a fe c ta d o p o r e l re s e t
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
Más baja IF15 SFFDE Vector alto de fin de conversión del ADC
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.
PTB3
PTBO
PTB2
Frecuencia del
PTB1
IRQ1 Comentarios
y frecuencia bus
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
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
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
E N V IA R A L
M O N IT O R
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 '
ECO RESULTADO
E N V IA R A L
M O N IT O R
ECO RESULTADO
E N V IA R A L
M O N IT O R ‘
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
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 .
Espacio de
d ire c c io n e s
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
DIRECCIÓN BASE
DE LA FUENTE
DIRECCIÓN BASE
DEL DESTINO
DIRECCIÓN DE
TRANSFERENCIA
BUS INTERNO DE
LA CPU
)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 )
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
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
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:
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
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
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
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
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
Orden de
descarga
Orden de
a p ila m ie n to
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
RUTINA DE SERVICIO
A LA INTERRUPCIÓN
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.
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.
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.
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
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
MÓDULO COP
RESET
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
|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
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 ).
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¿
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
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
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
VDD
T
Resistencia pull-up CONTROL DEL RELOJ GENERADOR DE RELOJ Relojes internos
interna
RESET
DECODIFICADOR Y
CONTROL DE LA ■Fuentes de interrupción
PRIORIDAD Y DE LA
-Interfaz de la CPU08
INTERRUPCIÓN
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)
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.
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)
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
TSTOP
LÓGICA DEL
P PUERT0
r LÓGICA DE
■ INTERRUPCIÓN
LÓGICA DEL
PUERTO
LÓGICA DE
INTERRUPCIÓN
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
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.
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 .
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
„ ----------- PERIODO--------------
TCHx ------
í t í
SAU DAD E SAU DAD E SALIDA DE SAUDADE
COMPARACIÓN COMPARACIÓN COMPARACIÓN COMPARACIÓN
CHxMAX
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
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
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.
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.
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
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
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
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.
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
B R A N C H b 3,(caso_0,caso_l,caso _2)
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
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
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
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.
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
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
11 P 6 P9 14
12 P 7 P8 13
m id a en la tab la 28.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:
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
P 0 .3 (A /0 3 )
SFFFF SFFFF
INTERNA
8051
PSEN RD WR
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
S1 S2 S3 S4 S5 S6
P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2
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
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)
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-
_ 0 CONTROL
S eñ al de
interru pció n
Pin T 1 --------------------------
TR 1-
-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
Sin em bargo, las in terru p cio n es son otra EA X X ES [ ET1 EX1 ETO EXO
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
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
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.
SECUENCIA DE
EVALUACIÓN
PREDETERMINADA
INTERRUPCIONES
SELECTORES INHIBIDOR ■DE PRIORIDAD
INDIVIDUALES GLOBAL BAJA
£ *
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.
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
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
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
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 )
ESCRIBE
SM 0D=0 S M 0D =1
TX CLO CK
INTERRUPCIÓN DEL
PUERTO SERIAL
MUESTREO
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
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
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
ESCRIBE
EN SBUF
TXD
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
á , *
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 ).
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
Espacio de
datos
15
Registro X, Y o Z
15
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
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.
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
£ *
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
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
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