Académique Documents
Professionnel Documents
Culture Documents
C a d a fa s c c u lo c o n sta d e 4 p g in a s d e c u b ie rta s y 2 0 p g in a s d e c o n te n id o a to d o
c o lo r . D e e s t a s lt im a s , 8 e s t n d e d ic a d a s a la s e c c i n d e ,4 a C alle 22 N 8 - 22, Piso 2,
PROGRAM ACIN y 8 a la s e c c i n d e PRO YEC TO S. Telfonos
(6)3348179-3348187-
1-as p g in a s d e c a d a s e c c i n s o n e n c u a d e m a b le s p o r s e p a ra d o . P or e s ta r a z n , a l 3348189 - 3348193
fo rm a r lo s v o l m e n e s , d e b e c u id a r s e d e d e s p r e n d e r p r e v ia m e n te , d e to d o s lo s Fax: (6 ) 3348020
PereiraTjotembia
f a s c c u lo s , la s 8 p g in a s c e n t r a le s d e PRO YECTO S, la s 4 d e PROGRAM ACIN
C arrera 13 N 38 - 43, Piso 1.
y p o r ltim o la s 8 p g in a s d e . D u ran te la p u b lic a c i n d e lo s fa s c c u lo s s e Telfonos: 2873086-
p o n d r n a la v en ta las ta p a s d e lo s 3 v o l m en e s d e la o b ra p a r a s u e n c u a d e m a c i n . 2873420 - 2877318
Bogot - C o lo m b ia
CEKIT S .A . g a r a n tiz a la p u b lic a c i n d e la to ta lid a d d e la o b r a , e l s u m in is tro d e la
ta p a s n e c e s a ria s p a ra su e n c u a d e m a c i n y e l se rv ic io d e n m e ro s a tra sa d o s h asta un e-mail: ecekit@col2.telecom.cxMn.co
a o d e s p u s d e te rm in a d a la c irc u la c i n d e l ltim o fa sc cu lo . T a m b i n g a r a n tiz a la http://www.cekit.com.co
fid elid ad d e la in fo n n aci n te rico-p rctica su m in istrad a y e l co rrecto fu n cio n am ien to
GerenseGeneral:
d e lo s p ro g ram as in clu id o s c o m o e je m p lo s d e la o bra.
Jorge Hernn Alvarez
GercmeComcrcial:
M otorola, M icrochip, PIC, Intel, Atm el, P arallax. Zilog, Phillips, so n mancas registradas d e MrceteAlvarez H.
las diferentes em presas e n los Estados Unidos y en otras pases. O tras productos y ncm in e s d e DirectorEditorial:
com paas m encionadas e n esta obra p u ed en ser mancas registradas d e a i s propietarios. Manuel Felipe Gonzlez G.
Circulacin Internacional:
Humberto Real Blanco.
Este curso lia sido elaborado segn el plan del editor y de sus autores, y
Ixijo su responsabilidad, por los siguientes integrantes del Autores
departamento tcnico d e CEKIT S.A,
JUAN ANDRS CASTAO W.
Distribucin Internacional MANUEL FELIPE GONZLEZ G.
GILBERTO VARGAS C.
A rg e n tin a : Importador: Editorial ConosurS.A. Av. Belgrano 355 10. Tel: 4342-9029 Fax: 4342-9025 JUAN DIEGO HERNANDEZ F.
e-mail: gconosur@speedy.com.ar Dist. Capital: VACCARO SANCHES Y CLA. - Moreno 794.
9O092) B u e n a s A ir e s . Disi I n t e r io r : DISTRIBUIDORA BERTRAN S.A.C. - Av. Vlez Sarsfield Proyectos
1950(1285) Buenos Aires. - B o liv ia : AGENCIA MODERNA LTDA. - C h ile : DISTRIBUIDORA
a l f a s .a . - C o lo m b ia: d i s t r i b i i d o r a s u n id a s . - V e n e z u e la : DISTRIBUIDORA CONTI JOHN JAIM E ROBBY G.
NENTAL- M x ic o : c o n s o r c io s a y r o l s - E cuador: d i s t r i b i i d o r a a n d e s . - P a n a m : Diseo cartula: Luz Angela Plata B.
PANAMEX S A . - P er: DISTRIBUIDORA BOLTVAR1ANA S.A. - P a r a g u a y : SELECCIONES S.A.C. Diseo: Gloria Marcela Gmez G.
- UruguaycDISTRIBLlDORA CARF.AGA Diagramacin: Hctor HugoJim nez
MICROCONTROLADORES
Teora. P ro g r a m a c i n . Diseo. P rc tic as y P ro y e c to s c o m p le to s
Estudie f co n el m to d o de
CEKIT de Aprender haciendo , la tecnolo
ga de los M icrocontroladores, una de las que
ms han cam biado el mundo en los ltimos aos
y gane mucho dinero. Estos pequeos cerebros
electrnicos se encuentran en todas partes: au
tom viles, com putadoras, electrodom sticos,
alarm as, juegos de luces, instrum entos, equipos
de com unicaciones, etc. m itir la comunicacin de hechos y datos entre
personas y objetos formando la red del conoci
n este curso incluimos los principios teri miento, base de la economa del nuevo milenio
El C u rs o p r c tic o so b re M ic ro c o n to la d o re s d e
C E K IT S.A . se p u b lic a r en 4 0 fasccu lo s con tres
seccio n es c ad a u n o , y al fin a l, se a g ru p a r en tres to
m os d e p asta d u ra c o n c ad a u n o d e los tem as p rin c i
p ales. P ara su fcil id e n tific a c i n , c ad a u n a d e las sec
cio n es tie n e u n c o lo r d ife ren te. L a d istrib u c i n de
los to m o s es la sig u ie n te :
Fotografas
Nmero de
pgina
Los siguientes son los principales temas
tratados en esta seccin:
Introduccin a los microprocesadores
Introduccin a los microcontroladores
Diferencias entre un microprocesador
y un m icrocontrolador
Principales fam ilias de microcontroladores
E n la secci n d e te o ra, se e stu d ia n los Estuctura bsica de los sistemas con
microcontrolador
fu n d a m e n to s te rico s y fu n c io n a les de
(M otorola y PIC de M icrochip)
los m icro c o n tro lad o res. Esto se refiere Arquitecturas de microcontroladores
a la e stru c tu ra o a rq u ite c tu ra in te rn a La C PU y la ALU
de los m ism o s, as co m o a la fu n ci n Los registros
d e c ad a u n o d e los te rm in a le s o p in es O rganizacin de la m em oria
La EPROM de datos
d e los d ife re n tes d isp o sitiv o s tratad o s Las interrupciones
en el c u rso cu yo c o n o c im ie n to es n e Los puertos de entrada/salida (I/O)
cesario p ara d ise a r circ u ito s con estos Los temporizadores ( Timers)
co m p o n en te s. Las opciones Comparacin/Captura/PW M
El puerto serial sncrono SSP, bssp
La USART
Se e m p ie z a con u n repaso sobre el tem a Las referencias de voltaje
d e los m ic ro p ro c e sad o re s, los c u ales Los comparadores
d iero n o rig en a los m icrocontroladores, Los converso res A/D
Modos de bajo consumo {sleep y w a tch d og)
y se d e sarro lla n d u ra n te las leccio n es,
Bits de configuracin
los d iferen tes asp ecto s tcn ico s d e esta Programacin en el circuito (in circuit)
te cn o lo g a. El conjunto (set) de instrucciones
Las com unicaciones seriales
Otros microcontroladores
Parallax (Basic Stamp)
g M / r s z ; Intel
l ' a p n d l u n i i m ; i u r a v i v i r m t 'J t t r Atmel
& K 'K K T
e ion de Programacin
T o do ap arato o p ro yecto con m ic ro co n tro lad o res incluye, adems de los diferentes cir
c u ito s, u n o o v ario s p ro gram as q u e se d eb en e n c rib ir en el lenguaje apropiado segn el
tip o d e m ic ro c o n tro la d o r u tiliz a d o . Este curso le proporcionar los conocim ientos nece
sario s p ara q u e a d q u ie ra la h a b ilid a d d e p ro gram arlo s.
Los p rin c ip a le s tem as tratad o s son:
Programacin de un microcontrolador
Diagramas de (lujo El ciclo de desarrollo de un programa
Herram ientas de softw are
Programas
Programacin en modo inmediato
ip - Programacin orientada a registros
_______
Control de flujo de un programa
11 ^ Puertos de entrada/salida
Explicacin de
los programas ssgnrar Subrutinas
raitiaa Interrupciones
* BW --------- Programacin en lenguaje estructurado
Temporizadores
Programacin serial
Programando los conversores A/D y D/A
Programacin en lenguaje C
E studiantes y profesionales de
Ingeniera y Tecnologas:
E lectr n ica
E lctrica
M e c n ic a
S iste m as
B io in g e n ie ra
M e c a tr n ic a
A u to m a tiz ac i n
E stu d ian te s de con n fasis en e le c tr n ic a
Tcnicos en:
E lec tr n ic a in d u stria l
A u to m a tiz a c i n
E lectr n ico s en g en eral
A lu m n o s d e los cursos
d e C E K IT S .A .
E stu d ia n te s y p ro fesio n ales en F IS IC A ,
p ara sus n ecesid ad es d e in stru m e n tac i n
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 ensear y explicar mejor esta tecnologa, hemos dividido este curso en varias secciones as:
Una seccin de Teora en donde se presentan los conceptos bsicos de los microcon
troladores iniciando con su origen basado en los microprocesadores, su estructura o
arquitectura interna, su funcionamiento elctrico y lgico, la operacin de sus blo
ques internos, etc. En fin, toda la informacin necesaria para poder configurar un
circuito con un microcontrolador y entender su funcionamiento.
M *
Curso prctico sobre Microcontroladores
LLliludliCCLilll i los m icro con troladores'
Este maravilloso componente resume, en un solo nexiones, el nmero y la cantidad de los diferen
circuito integrado, ms de cuarenta aos de tecnolo tes elementos que los formaban a lo cual se le
ga electrnica. Es difcil encontrar en la actualidad llam la l gica ca b lea d a , figura 1.1.
un aparato o una aplicacin que no lo utilice o no
pueda utilizarlo para optimizar su operacin. Con los microprocesadores y ahora con los
circuitos lgicos programables (FPGA), los m i
Se ha m encionado y confirm ado muchas crocontroladores y los circuitos de DSP (Proce
veces que la electrnica es la tecnologa de los samiento D igital de seales), entre otros, es posi
componentes. El desarrollo de cada nuevo dis ble m odificar cuantas veces se requiera el progra
positivo de estado slido trae consigo tcnicas de ma, an en forma remota por la internet, y el
diseo diferentes, por lo general, ms simples. circuito o aparato en el cual estn instalados, tra
En los aos sesenta, para construir un reloj digi bajar de una forma completamente diferente sin
tal, era necesario acoplar un buen nmero de cir modificar fsicamente una sola conexin. De esta
cuitos integrados lgicos. Al mismo tiempo, el forma, el lm ite de los diseos solo lo establece la
diseador deba poseer conocimientos m uy cla im aginacin de los programadores y la capaci
ros sobre cada uno de los elementos, para reali dad de los dispositivos que lancen al mercado los
zar, con xito, la integracin. fabricantes especializados en estas tecnologas.
S 00
D entro de los anales de la electrnica est el
SID
ao de 1970 com o la fecha de invencin del
TRAP
m icroprocesador. D esde entonces, este d im i
RST 7.5
R S T 6 .5
nuto dispo sitivo , uno de los adelantos tecn o
lgicos ms im portantes de nuestro siglo, ha
revolucionado todos los cam pos de la vid a
hu m an a. C on el m icroprocesador se in ici
una nueva era de desarrollo de la in d u stria de
las com putadoras y de la electr n ica, la cual
hasta el presente ha ido evolucionando con
una velocidad que an sorprende incluso a
los vision arios m s futuristas. N adie en esa
poca se im agin aba el im pacto tan grande que
causara este desarrollo en la vid a del hom bre
m oderno.
El m icroprocesador es el m xim o ex
ponente de la etapa siguiente al transis
Figura 1.4. Computadora personal y su tarjeta principal tor: la tecnologa de los circuitos in tegra
dos. El concepto de circu ito integrado,
tig ar de los seres hum anos. N inguna herra figu ra 1.6, empez a rondar por los cerebros y
m ienta an terior desarrollada por el hom bre le m entes prodigiosas de quienes trabajaban en
haba dado tanto poder para crear otras y ace el diseo y fabricacin de transistores. El plan
lerar su evolucin en todos los cam pos. Para team iento fue ms o m enos el siguiente: si se
asim ilar m ejor el desarrollo de esta tecnolo fabricaban transistores en form a in dividual y
g a, retrocedam os un poco en la historia de la luego se tenan que unir siem pre de la m ism a
electrnica, sus com ponentes y aplicaciones. form a entre s con alam bres y con otros com
ponentes por qu no fabricar de una vez todo
Sin lugar a dudas, la senda la abri el in el conjunto de m aterial sem iconductor y ais
vento del tubo de vaco por Lee De Forest a lante, interconectado internam ente para que
com ienzos del siglo, basado en el descubri cum pliera la m ism a funcin del sistem a total?
m iento de un fenm eno llam ado Efecto Edi
son. Este dispositivo hizo posible la radio, la Este p lan team ien to fue d esarro llad o en
telefona, la telegrafa inalm brica, etc., e im la p rc tic a sim u ltn e am en te, pero en form a
puls el desarrollo com ercial e in dustrial de la in d ep en d ien te, por dos em presas m uy im -
electrnica. Inclusive las prim eras com puta
doras eran fabricadas con tubos de vaco. Lue
go vino la revolucin del transistor, desarro
llado en los laboratorios de Bell T elephone en
1948 y utilizado a partir de 1950 a escala in
d ustrial, con su inclusin en la fabricacin de
todo tipo de aparatos de radio, televisin, so
nido, com putadoras y en la industria m ilitar y
espacial, entre otras aplicaciones.
' \\ ^ *
8 < S !E K U W s . Curso prctico 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) rene la unidad de control y la rruptores, sensores, convertidores A/D, teclados, etc.
unidad aritm tico-lgica en un solo bloque. Esta Los datos de salida pueden estar dirigidos a actua-
ltim a tambin se conoce como ALU ( A rithm e - dores, indicadores o displays, pantallas, convertido
t ic L ogic Unit). En la prctica, la unidad central res D/A, alarmas, impresoras, etc. El programa al
o C PU se encuentra en forma de un circuito in macenado determina como deben ser procesados
tegrado llam ado m icro p rocesa d o r. los datos de entrada y, en consecuencia, que infor
macin debe enviarse a las lneas de salida.
Dentro de esta CPU , la unidad de control se
encarga de la interpretacin y ejecucin de las El soporte fsico de las instrucciones del pro
instrucciones del programa. Tambin controla gram a es la memoria, la cual almacena los datos
todos los componentes de una computadora por para que sean procesados. En un momento dado,
m edio de lneas de conexin llamadas buses. La los niveles lgicos (unos y ceros) de las lneas de
ALU se encarga de realizar las operaciones lgi salida de un microprocesador, dependen no sola
cas y aritm ticas. Las principales funciones arit mente del programa en s sino tambin de la his
mticas realizadas en la ALU incluyen la AND, toria de las seales de entrada hasta ese momento.
la O R, la EXOR y la comparacin. Como he Mientras que en un microprocesador ideal no exis
mos visto, el microprocesador es quien lleva a ten restricciones respecto al nmero de entradas y
cabo las principales funciones de un sistema de salidas, los microprocesadores reales slo pueden
cmputo, y quien integra a los dems compo acomodar un nmero limitado de terminales o
nentes y ejecuta las instrucciones. Es por eso el pines para estas funciones. Como veremos ms
principal componente de una computadora. adelante, para simplificar el nmero de pines, la
mayora de microprocesadores utilizan las mismas
Funcionamiento del microprocesador lneas para la entrada y salida de datos.
Desde un punto de vista conceptual, un micro-
procesador ideal es un dispositivo digital que De otro lado, mientras que un microprocesa
acepta o lee datos aplicados a un cierto nmero dor ideal tiene, tericamente, una memoria inter
na ilim itada, los microprocesadores reales solo dis
ponen de una cantidad lim itada para almacenar
Registro de
10 1 1 1 0 0 1 8 bits
El microprocesador (ideal) es un 0 1 0 0 1 1 0 0 1 1 0 0 0
dispositivo con N lineas de entrada, M
lneas de salida y un programa
almacenado Registro de 16 bits
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 tpico basado en mi
FFFF F000
E000
croprocesador. Note que
FFFE
D000 consta de cuatro elementos
cooo principales: una memoria,
ocoo un microprocesador, un
B000
A000 puerto de entrada y un
9000 puerto de salida.
8000
R4 K 0800
- ' ;. 7000 El m icroprocesador
6000 est conectado a todos los
5000 otros componentes a tra
4000 0400 vs del B us d e datos. Las
3000
seales del B us d e co n tro l ,
0002 2000
conjuntamente con las del
0001 1000 01 00 Bus d e d ireccio n es , deter
0000 0000 0000 minan que elementos se
comunican con el micro-
Figura 2.10 Espacio de memoria
procesador en un momen-
Note que la direccin de memoria se incremen- to dado. Estos tres buses configuran el bus del sis-
ta en 1000H cada 4K (=4096) direcciones de espa- tema y el gobierno del mismo es responsabilidad
ci de memoria. Observe tambin que cada 1K del microprocesador.
(=1024) posiciones de memoria, la direccin de me
moria se incrementa en 400H. La memoria puede La secuencia de in strucciones que cons
dividirse tambin en pginas de memoria, cada una titu yen el program a que debe ejecutar el m i
contiene 256 palabras y cubre 100H direcciones de croprocesador estn alm acenadas en un rea
memoria. Hay, por tanto, 4 pginas en 1K de me- de la m em oria. En el m om ento de iniciar el
moria. Las direcciones en la pgina de ms bajo or- sistem a, el m icroprocesador sit a en el bus
den van desde 0000H hasta OOFFH, en la siguiente de d irecciones la direccin de la posicin de
desde 0100H hasta 01FFH, y as sucesivamente. m em oria donde se en cuen tra la prim era in s
trucci n . Com o resultado, la memoria entrega
El bus de control Bus de control y de sincronizacin del sistema
El bus de control contiene la in
formacin que enva el micropro
cesador a los elementos del siste
ma o bien la recibe de estos con el
propsito de sincronizar la opera
cin de los circuitos externos. El
nmero de lneas del bus de con
trol es variable y depende del mi
croprocesador particular utilizado.
Organizacin de un
sistema basado en
microprocesador
r t i Desde dispositivos Hacia dispositivos
En la hgura 2.11 se muestra la de entrada de sa|ida
estructura organ izativa de un sis- Figura 2.11 Diagrama de bloques de un sistema basado en un microprocesador
esta inform acin en el bus de datos. Despus Las instrucciones que constituyen un pro
de in terpretar y ejecu tar la prim era in stru c gram a se alm acenan en la m em oria del siste
ci n , el m icroprocesador busca la sigu ien te ma como patrones de unos y ceros, organiza
in struccin, la ejecuta y as sucesivam ente. La dos en grupos de 8, 16, 32 y ms bits, depen
generacin de la serie de in strucciones nece diendo de la longitud de la palabra de datos
sarias para que el m icroprocesador realice una del microprocesador.
tarea d eterm in ad a, es lo que se denom ina su
program acin.
PALABRA: Es un grupo de bits que se tratan
Secuencia de operacin de un sistema como una sola unidad. El ms comn es el
basado en un microprocesador byte, el cual est formado por ocho (8) bits.
H asta aqu hemos visto la arquitectura genri
ca de un m icroprocesador y de un sistem a ba
sado en uno de estos dispositivos; ahora an a li Cuando se trabaja con un microprocesador,
zarem os con ms detalle los pasos que sigue es im portante comprender su conjunto de ins
un sistem a de esta naturaleza para ejecutar las trucciones y ser capaz de utilizarlas en la elabo
in strucciones contenidas en un program a y racin de programas; se debe entender la forma
aprenderemos como trabajan en conjunto cada como el microprocesador las ejecuta y adquirir
uno de los bloques del sistem a para desarrollar la habilidad para emplearlas eficientemente en
estas tareas. la m anipulacin de datos.
Un m icroprocesador es un dim inuto con Para ejecu tar las operaciones indicadas
ju n to de m iles o millones de elem entos l gi por una in struccin, el m icroprocesador debe
cos e interconexiones diseado para respon em pezar por d ireccio n ar o encontrar la posi
der a las instrucciones de un p r o g ra m a , el cual cin de m em oria donde se en cuen tra la in s
le in d ica lo que debe hacer en cada instante. tru cci n , leerla y d eco d ificarla o in terp retar
S in un program a que le de vida, un m icro- la por m edio de sus circu ito s internos. Los
procesador y todo el h a r d w a re conectado a su pasos anteriores constituyen lo que se deno
alrededor, sera una m asa in erte de com po m in a c i c l o d e in s tr u c c i n . D urante su opera
nentes electrnicos sin un objetivo especfi cin n o rm al, un m icroprocesador no hace
co. De hecho, la funcin p rim aria de un m i otra cosa que ejecu tar repetidam ente ciclos
croprocesador es ejecu tar program as. de in struccin.
Direcciones
Contenido dor ( op codes ) y datos sobre los cuales ha de ope
Instruccin,
(En hexadecimal) dato (Hex) rar el mismo. C ad a cdigo de operacin le in
0 0 0 0 BD dica, directa o indirectam ente al m icroproce
0 0 0 1 01
sador, la direccin de m em oria donde se en
0 0 0 2 E6
0 0 0 3 OF cuen tra alm acenada la sigu iente instruccin
0 0 0 4 32 ejecutable. Al recibir un cdigo de operacin,
0 0 0 5 40
0 0 0 6 20
los circuitos internos del m icroprocesador lo
0 0 0 7 76 descifran. La inform acin obtenida perm ite al
Figura 2.13 Ejemplo de un programa objeto
dispositivo identificar la naturaleza de los bytes
que siguen al op cod e.
Para ejecutar un program a, un m icropro
cesador debe tenerlo alm acenado en forma bi El conjunto de cdigos de operacin ( op co
n aria (patrones de 1 y 0) en posiciones ad ya des ) a los cuales puede responder un microproce
centes de la m em oria de programa del sistem a. sador, constituye su conjunto de instrucciones
Esta forma b in aria del program a se denom ina (Instruction Set) . C ada microprocesador tiene su
len g u a je d e m q u in a y es el nico lenguaje que propio conjunto de instrucciones, cada una re
entiende el m icroprocesador. En la figu ra 2 .12 presentada por un op code diferente. El nmero
se m uestra un ejem plo de un program a en len mximo de cdigos de operacin que puede des
g u aje de m quina para un m icroprocesador cifrar un microprocesador es igual a 2N, siendo
80 8 5 . Para evitar la confusin que, desde el N el tamao de la palabra de datos del mismo.
punto de vista del program ador, puede gene
rar una larga lista de unos y ceros, estos cdi Las instrucciones de un m icroprocesador
gos se pueden representar en forma hexadeci- pueden agruparse en tres grandes categoras se
m al, constituyendo lo que se denom ina un p r o gn su funcin: la prim era son las instruccio
gra m a o c d ig o ob jeto. En otras palabras, un c nes de transferencia de datos, las cuales m ue
digo objeto es, sim plem ente, una representa ven informacin sin alterar su contenido de una
cin abreviada de un program a en lenguaje de parte a otra del sistem a; la segunda categora es
m quina, fig u ra 2.13. Por ejem plo, 101111 01 la de procesamiento de datos; estas instruccio
se representa como BD, 0000 0001 com o 01, nes transforman la inform acin desde el punto
1110 0110 com o E6, 0000 111 lco m o 0F, etc. de vista lgico o aritm tico; y la tercer catego
ra, son las instrucciones de control de progra
No todos los cdigos de un program a ob ma, ellas determ inan la secuencia de ejecucin
jeto o en lenguaje de m quina, corresponden de las instrucciones.
a instrucciones ejecutables. M uchos de ellos co
rresponden a datos y direcciones que son u ti En la figu ra 2 .1 4 , observam os un d iagra
lizados por el program a para propsitos p arti ma sim plificado de la arquitectura de un siste
culares. Los cdigos correspondientes a instruc ma basado en un m icroprocesador, en el cual
ciones ejecutables se denom inan com nm en basaremos nuestro an lisis de la interaccin en
te cdigos operacionales ( op co d es ). Por tanto, tre cada una de las partes del sistem a y la se
en un sistem a de 8 bits, los program as en len cuencia que presenta.
guaje de m quina se reducen a unas cuantas
secuencias de grupos de 8 b its (1 byte) situados En este diagram a se pueden notar cuatro
en algn lugar de la m em oria. bloques fundam entales: la m em oria, la unidad
de control, la unidad operativa y el m dulo de
Estas secuencias representan a su vez una entradas y salidas. Todos ellos conectados a tra
m ezcla de instrucciones para el m icroprocesa vs de los buses de direcciones, datos y control.
Memoria RAM de lectura y escritura, con 256 posiciones de 8 bits cada una
Instrucciones
Direccin Contenido
Bus de Bus de
direcciones Decodificador 00 1111 0000 datos
de 01 0101 0110
instrucciones
/ 02 00111100
(DI) 256
k
Bus de direcciones
RDI DI RD
Be 3
T
Registro
auxiliar
1
Acumulador ALU
Registro de
estado
a
Perifricos del Unidad operativa
mundo exterior
Unidad operativa
Acumulador
Bus de datos
Seleccin
de operacin
El bloque 1 es la m e m o r ia ; en ella se al
m acenan una serie de cantidades codificadas RECUERDE QUE
en ocho 8 bits. Para entender la operacin de La memoria principal de un sistema basado en un
una m em oria, puede hacerse una an alo ga con microprocesador se construye con memorias de tipo
un casillero de correos, donde existen m uchas electrnico, que se clasifican en dos grandes grupos:
casillas para diferentes usuarios, cada una con
un nm ero o direccin que la identifica y con M em orias ROM (R ead O nly M em ory). Son me
la propiedad de alm acenar cu alq u ier clase de morias que una vez grabadas, permanecen con di
inform acin. cha informacin permanentemente y slo pueden
ser ledas. Son memorias de slo lectura y se uti
Pues bien, una m em oria posee un co n ju n lizan para guardar los programas o datos fijos.
to de posiciones cada una con su propia direc
cin, y en cada una de dichas posiciones puede M em orias RAM (R andom A ccess M em ory). El
existir cualquier dato de ocho bits. contenido de sus posiciones puede ser ledo y es
crito. Al igual que las memorias RO M , son de ac
La po sicin que se va a acceder es in d i ceso aleatorio, es decir, que para acceder a una po
cad a por el b u s de d ireccio n es al D e c o d ific a - sicin determinada no hay que pasar por las ante
d o r d e D ir e c c io n e s (DI) , el cual es un d isp o riores, como sucede en las cintas y discos magn
sitiv o de n en trad as y 2" salid as. D ep en d ien ticos. Son las ms rpidas y su tiempo de acceso se
do de la en trad a b in aria que lea, h a b ilita la mide en nanosegundos.
le c tu ra de u n a direcci n d e term in ad a por
m edio de la activaci n de la ln ea correspo n El principal inconveniente de las memorias
d ie n te , fig u ra 2 .1 5 . Los 8 b its de la po sicin tipo RAM es que son voltiles, o sea, al cortarse
acced id a salen por el bus de datos h asta el el sum inistro de energa elctrica, cuando se des
R egistro d e D a tos (RD), si se efecta un a ope conecta el sistema, pierden la informacin que
raci n de lectu ra. contenan. En un sistema con microprocesador,
se utilizan este tipo de memorias para almacenar
Cuando se trata de una operacn de escritu el resultado de las operaciones y los datos de las
ra, el contenido digital de las 8 lneas del bus de variables que se van creando en el programa.
datos se carga en el Registro de Datos y, desde l,
en las 8 celdas de la posicin direccionada. El pro El b loque 2 es la u n id a d d e c o n t r o l cuya
ceso de direccionar una posicin y leer o grabar funcin prim ordial es la de interpretar y eje
un dato se denomina ciclo d e m em oria. cutar las instrucciones. El cdigo binario de la
operacin que se va a ejecutar, se deposita in i
.Salidas
cialm ente en el R egistro d e I n s tr u ccio n e s (Rf)
y luego se traslada al D e co d ifica d o r d e I n s tr u c
c io n e s (DI), cuya m isin es seleccionar en una
16 posiciones m em oria RO M un conjunto de posiciones que
e n la
m em oria corresponden al cdigo recibido y en las que
se encuentran los cdigos de las operaciones
elem entales (o m icro in stru ccio n es) que com po
nen las diferentes etapas en las que se divide la
ejecucin de la instruccin decodificada.
Figura 2.1 5 Segn e l dato introducido p o r e l bus de direcciones, Las m icroinstrucciones van pasando al Se-
se habilita la com unicacin con una determ inada posicin de c u e n c ia d o r (5), que es el circuito lgico de con
memoria
Direccin Contenido
Reqistro Decodificador Registro Registro
de de de datos de
direcciones direcciones 10 1100 0011 instrucciones
Figura 2.16 Movimientos de informacin de los contenidos de las unidades que participan en la fase de bsqueda de una instruccin
trol y tiem pos el cual gobierna a todos los ele ga o alm acena en un registro auxiliar. Un re
m entos del sistem a y lleva a cabo la ejecucin gistro especial, denom inado R egistro d e E sta
secuencial de las m icroinstrucciones. La fun d o , contiene una serie de bits que actan como
cin del C o n ta d o r d e P r o g r a m a ( PC) es en sealizadores de alguna caracterstica especial
viar por el bus de direcciones la posicin de la que se haya producido en la ltim a operacin
m em oria donde se encuentra la siguiente ins efectuada por la ALU. Por ejem plo, un se ali
truccin que se va a ejecutar. N orm alm ente, zador denom inado Z (cero), pasa a valer uno
este contador se increm enta en una unidad en (1) si el resultado de la operacin que ha he
cuanto la m em oria acepta la direccin de la cho la ALU ha sido cero (0).
instruccin anterior.
El bloque 4 es el de en tr a d a s y sa lid a s y se
El bloque 3 es la u n id a d o p e r a tiv a ; a ll se encarga de sum inistrar al sistem a los datos pro
ejecutan las operaciones aritm ticas, lgicas, de cedentes del exterior, as como de llevar los re
desplazam iento, de rotacin, de increm ento, sultados a los perifricos del m undo real.
etc. Uno de los operandos que interviene en la
operacin que va a efectuar la ALU (U nidad Secuencia de operacin de una
l gico-aritm tica), procede de un registro de instruccin
8 b its llam ado A cu m u la d or. El otro operando En un m icroprocesador, el p rin cip io de eje
llega desde cualquier parte del sistem a y se car cucin de cu alq u ier in struccin tiene carac-
Bus de direcciones
Bus de control
Registro
auxiliar
Acumulador ALU
Perifricos del
mundo exterior
Figura 2 .1 7 El contenido del Contador de Programa (PC) pasa al Registro de Direcciones (RDI)
Bus de direcciones
tersticas sim ilares. En todas ellas h ay dos sigue con la parte de la ejecucin propiamente
tiem pos fu n d am en tales llam ad o s b sq u ed a dicha que puede tener varios subtiempos, depen
(fe t c h ) y e je c u c i n ( ex ecu te). El diagram a de diendo del tipo de instruccin.
bloques de un sistem a con m icroprocesador
perm ite un an lisis rpido de la form a en que Fase de bsqueda
se ejecu ta una in stru cci n c u a lq u ie ra ; por Es el comienzo de una nueva instruccin, el Contador
ejem p lo, la correspondiente a la sum a de dos d e Program a (PC) deposita en el bus de direcciones la
operandos. direccin de la posicin de la memoria principal don
de se encuentra el cdigo de la instruccin que se va a
El contador de program a empieza conte ejecutar. Dicho cdigo sale de la memoria principal
niendo la direccin de la m em oria principal por el bus de datos hasta la Unidad d e C ontrol donde
donde est alm acenado el cdigo binario de la se graba en el Registro d e Instrucciones , figura 2.16.
instruccin de sum a. Luego ese contenido pasa
a travs del bus de direcciones hasta la m em oria C om o la C P U no sabe que tipo de in s
principal, donde se decodifica y selecciona la truccin va a ejecutar, los tiem pos de bsque
posicin que contiene el cdigo binario de la da son exactam ente iguales. El desarrollo de
operacin. Dicho cdigo de m quina sale de esta fase es la siguiente:
la m emoria por el bus de datos hasta el registro
de instrucciones de la U n id a d d e C on tro l , don 1. El contenido del Contador de Programa (PC),
de se deposita. Toda esa fase de localizacin del a travs del bus interno de la unidad de con
cdigo de la instruccin m encionada, recibe el trol, aparece en el registro de direcciones de me
nombre de f a s e d e b sq u ed a y es la m ism a para moria, figura 2.17.
cualquier instruccin.
2. El contenido de la posicin de memoria aparece
El tiempo de ejecucin empieza por un sub- en el bus de datos. Esta informacin se deposita
tiempo de decodificacin de la instruccin y pro- en un registro de instruccin (RI), figura 2.18.
*
Curso prctico sobre Microcontroladores v 23
L a s Li procesadores
Al mismo tiempo, el Contador de Programa (PC) bits sealizadores del Registro de Estado, tomarn el
se incrementa, puesto que l debe siempre sea valor correspondiente en funcin del resultado.
lar la direccin de la siguiente instruccin que se
va a ejecutar, para cuando se necesite. De esta Ejecucin de una instruccin
forma se ha completado la operacin de bsque En resumen: completada la fase de bsqueda, el
da de una nueva instruccin. cdigo de m quina del R egistro d e In stru ccio n es
llega al D eco d ifica d o r d e In stru ccio n es , que se
Decodificacin de una instruccin encarga de localizar las posiciones de la memoria
Es la prim era parte del tiem po de ejecucin y de microinstrucciones que correspondan. Dichas
es tam bin exactam ente igu al para todas las microinstrucciones van introducindose al se
in strucciones, puesto que an no se sabe que ntenciador a m edida que se realiza el proceso. El
operacin hay que efectuar. secuenciador, con cada m icroinstruccin, enva
una serie de seales de control a los elementos
De m om ento, la parte de la instruccin llam a del sistema que deben actuar en cada momento.
da c d ig o d e o p e r a ci n ( o p co d e ), se transfiere Ejecutadas todas las microinstrucciones que com
al D ecodificador de Instrucciones (D I) y aqu ponen la instruccin, el Contador de Programa
em pieza la parte diferente de la instruccin. se incrementa en una unidad y el sistema pasa a
la ejecucin de la siguiente instruccin del pro
Al recibir el Decodificador de Instrucciones grama, figura 2.19.
el cdigo de la instruccin en curso, se encarga
de seleccionar en la memoria de microinstruc- H ay varios tipos de instrucciones bsicas
ciones aquellas que corresponden a dicho cdi que pueden agruparse de acuerdo con diferen
go. La llegada de las microinstrucciones al Se- tes criterios, tales como funcionalidad, nm e
cuenciador, origina una serie de seales de con ro de ciclos de m em oria utilizados, nm ero de
trol que regulan la ejecucin de las diferentes eta palabras que utiliza, etc. D ependiendo de las
pas en las que se descompone la instruccin. caractersticas de la com putadora y de su m i
croprocesador, los diferentes tipos de in struc
En el caso de una suma, uno de los sumandos ciones sern de una, dos o ms palabras y ne
ha de estar contenido previamente en el A cum u cesitarn uno o ms ciclos de m em oria para
lador, mientras que el otro llegar del registro auxi llegar a obtenerse enteram ente en la unidad de
liar, generalmente, desde la memoria de datos, cuya control. En funcin del nm ero de palabras y
direccin correspondiente vendr acompaando del tipo de instruccin, la ejecucin tiene ca
al cdigo de la operacin en la instruccin. ractersticas diferentes. Estos parm etros de
term inan, por ejem plo, el nm ero de veces que
La ALU efectuar la suma y el resultado se de- el sistem a debe acceder a la m em oria para leer
sitar en el Acumulador, al mismo tiempo que los toda la instruccin.
Dispositivo perifrico
de entrada cuito y el programa y hace posible funciones que
no seran ejecutables si el microprocesador tu
Puerto de entrada viera que hacerse cargo de todo el proceso de en
trada/salida. Por la funcin que hacen, los puer
tos de interfaz programables se pueden dividir
en dos categoras: interfaces dedicadas e interfa
ces de propsito general o interfaces universales.
direcciones internas de cada registro y de cada segn los objetivos de este curso. De l se origin
puerto en el 81 5 5 . Por ejem plo, para seleccio el 8086 el cual es la base de toda la familia Intel la
nar el puerto B, A l debe ser alta (1) y A2 y AO que sigui con el 80186, el 80286, el 80386, el
deben ser bajas (0). 80486 y el Pentium. Si usted est interesado en
profundizar en este tema, le recomendamos nues
Diseo de un sistema mnimo con tro Curso Bsico de Microprocesadores.
8085 y 8155
Podemos decir que un sistem a m n im o con m i El sistema se ha dividido en dos tarjetas: una
croprocesador es un dispositivo constituido por tarjeta procesadora y una tarjeta programadora, fi
una serie m nim a de elementos que perm iten el gura 2.23. La primera contiene, esencialmente, la
desarrollo de algn tipo de tarea o aplicacin CPU, la memoria RAM, el temporizador progra-
en el m undo real de manera autnom a, in teli mable, los puertos de entrada/salida y el registro de
gente y siguiendo las pautas dadas por un pro comandos. En la memoria RAM reside el progra
gram a. En el estudio de los m icrocontrolado ma de instrucciones que ejecuta el microprocesa
res, es m uy im portante entender qu es un sis dor. La tarjeta programadora consta de una serie de
tem a m nim o con microprocesadores, ya que es funciones de pequea y mediana escala tales como
precisam ente esta configuracin bsica la que compuertas, drivers, decodificadores y registros. Su
se ha reemplazado con esta nueva tecnologa. funcin es permitir que el usuario tenga acceso a la
memoria del sistema y pueda cargar en la misma
Como ejemplo mostraremos el diseo de un datos e instrucciones, as como visualizar resulta
sistema microcomputador mnimo desarrollado dos. La informacin se recibe desde un teclado hexa
por CEKIT alrededor de una CPU 8085 y un decimal y se visualiza en diodos LED y displays.
circuito de soporte 8 15 5 . Aunque el 8085 es un
microprocesador de ocho bits de las primeras ge Diseo de la tarjeta procesadora
neraciones, lo hemos utilizado en este ejemplo por La tarjeta procesadora de nuestro microcomputa
la facilidad para entenderlo con fines didcticos dor consta, bsicamente, de una CPU 8085 y un
Visualizador Visualizador
binario hexadecimal
Temporizador
Entrada Yn t Salida
0 1 2 3
4 5 6 7
8 9 A B
C D E F
Teclado hexadecimal
WR
RD
ALE *
Tarjeta program adora 8085 8155
Salida de reloj
auxiliar Tarjeta procesadora
WR: Orden de escritura (ESC)
RD: Orden de lectura (LEE)
ALE: Orden de dlreccionamiento
circuito de soporte 8155. En las figuras 2.24(a) y control, como su nombre lo indica, transporta las
2.24(b) se muestran, en su orden, los diagramas de seales de control (ALE,WR, RD, lO/M, etc) que
bloques y esquemtico de esta parte del sistema. necesita la CPU para comunicarse o dialogar co n
la memoria y los puertos I/O.
La CPU 8085, cuya configuracin interna
se ilustr en la figura 2.5, proporciona, entre otros A travs del bus de direcciones, el 8085 se
bloques funcionales, una unidad aritm tico-l lecciona de m anera inequvoca la posicin de
gica (ALU) de ocho bits , una unidad de control memoria o el puerto I/O desde el cual trae o ha
y varios registros accesibles al usuario. cia el cual dirige la informacin del bus de datos.
Puesto que el sistema tiene solamente 256 bytes
Aunque el 80 85 , por disponer de un bus de de memoria, slo se requieren ocho lneas de di-
direcciones de 16 bits, puede direccionar un espa reccionam iento (las menos significativas); las
cio de memoria de 64K (65536 bytes), los 256 ocho restantes (las ms significativas), no se u ti
bytes de RAM disponibles en nuestro sistema son lizan. En el 8085 las ocho lneas de direcciona-
suficientes para soportar la mayora de programas miento de ms bajo orden (A0 hasta A7), se m ul-
sencillos de aplicacin. Todos los bloques funcio tiplexan internam ente con las ocho lneas del
nales que constituyen la tarjeta procesadora se co bus de datos (DO hasta D7) formando un bus
munican entre s a travs de los buses de control, nico de datos y direcciones. El 8155 decodifi-
de datos y de direcciones del sistema. El bus de ca o dem ultiplexa la inform acin transportada
AD5 AD5
m entneam ente la fuente de alim entacin, in
.ADJ AD6_
cluso como resultado de una falla en la alim en
_AD7 AD7_
tacin. El circuito constituido por S i , R l, R2, I - * ----------
IC 1A e IC1B forma un elim inador de rebote
cuyo objetivo es aplicar un nivel bajo a la entra Figura 2 .2 5 Conexin multiplexada del bus de datos y direcciones
ALE ALE
______ __ Para almacenar en la memoria los datos e
11
instrucciones que constituyen el programa de
W
WR >_______ 10 in nuestra microcomputadora, necesitamos asum ir
co
temporalmente el control del circuito de soporte
R
55 9 8155 y aislar el microprocesador 8085 del resto
10/M _ IO/M 7 del sistema. De este modo, podemos introducir
J I
informacin en la memoria sin intervencin de
Figura 2.26 Conexin del bus de control la CPU . Esta es, precisamente la funcin de la
AD2 AD2
terna, su funcionamiento y la forma de interco-
AD3
1 B AD3
nectarlos dentro de un sistema para que puedan
;*"_ :B ejecutar tareas que involucren el manejo de va
AD4 AD4
AD5 AD5 riables reales y cierto grado de inteligencia. H e
ID
AUb AD6 !D mos visto que estos dispositivos requieren de
AD7 n7
AD7 componentes adicionales para ejecutar una tarea
Resel n 1 especfica y que poseen las facilidades para direc-
Resel oul Resetn
h cionar o manejar gran cantidad de perifricos
ALE 1 Al F
HLC
como memorias, puertos y muchos otros dispo-
WR WR
R nR
u
sitvos. Debido a esta capacidad, los microproce
lU/M 11 IU/M sadores son el elemento fundam ental dentro de
los equipos de computacin modernos, donde
1 M H se manejan enormes cantidades de memoria y
T a rje ta p ro g ra m a d o ra gran variedad de perifricos.
Bajo estas condiciones, desde la tar V isualizacin de los datos Tarjeta procesadora
jeta program adora podemos acceder libre
m ente a la R A M del 8 1 5 5 y escribir en la
m ism a el program a que debe ejecutar el
m icroprocesador. A s m ism o, podem os
d ireccion ar cu alq u ier posicin de m em o
ria y leer su contenido. U na vez cargado
el program a, el control del 8 1 5 5 debe
8155
retornar al 8 0 8 5 para que este ltim o
lo ejecute (SI = R U N ). En la fig u ra
2 .2 8 observam os el aspecto fsico del
sistem a m nim o desarrollado alrede
dor del m icroprocesador 8 0 8 5 y del
circu ito in tegrado 8 1 5 5 .
Notas finales
En esta leccin se ha hecho un repaso
Tarjeta program adora Tarjetas de 1/0
general de los aspectos ms im portan
tes relativos al m undo de los micropro- Figura 2 .2 8 Sistema microcomputador mnimo con el 8085
Microcontrolador
Dispositivos
de entrada
Programa
Teclados
Programa
Sensores Rels
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 bsica de un microcontrolador y de los dispositivos que pueden hacer parte de un sistema
+5V
6. La velocidad de operacin de los m icrocon
troladores es ms lenta que la que se puede
lograr con los sistemas de m icroprocesado
EPROM
res. Sin embargo, actualm ente existen micro 1
C ris ta l
controladores que funcionan por encim a de CPU RAM
~ r
r
los 50 M H z lo que es suficiente para m u
chas aplicaciones. EEPROM
GND
7. De m anera sim ilar a los sistem as u tiliz a A /0
Si la informacin obtenida en un proceso de Tabla 3.1 Microcontroladores de la fam ilia INTEL 8051
m edida o control, o el resultado de los clculos
del programa, se deben enviar a otro m icro En la figura 3.7 se presenta el diagrama de un
controlador, a una computadora o a una red, posible circuito con microcontrolador que incluye
es m uy til tener un circuito RS-232 para co la mayora de los elementos que se utilizan en apli
municaciones seriales. caciones de medicin, instrumentacin y control.
Interrupciones
externas
TXD RXD
Direcciones/Datos
Figura 3 .8 Ncleo del 8051
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. divisin que se ubic en Arizona y que tom el
nombre de M icrochip Technology, con el micro
Dentro de la fam ilia 68H C 05 existen ms controlador PIC como su producto principal.
de 30 microcontroiadores distintos, todos cons
truidos a partir de la misma CPU de 8 bits e Los microcontroiadores PIC se clasifican en
incluyen RAM , ROM , puertos I/O y tempori- tres grupos dependiendo de la longitud de la pa
zadores; algunos tienen adems, puertos seriales, labra de instruccin que pueden manejar (12, 14
convertidores anlogo-digitales y memorias EE- 16 bits), tom ando las referencias 12CXXX,
PRO M o EPROM como lo describe la tabla 3.2. 16XXXX, 17XXX y 18XXX.
Los microcontroiadores de la fam ilia H C08 N ota: Las X en estos nombres quieren decir que
poseen puertos seriales, conversin A/D, inter en esos espacios se ubican diversos nmeros y
faces para redes CAN, PLL, P W M , etc., depen letras, segn el tipo de integrado.
diendo de la referencia.
Sus fabricantes definen a los PIC como micro-
Microchip controladores de 8 bits tipo RISC (R educed Ins-
Las races de los microcontroiadores de esta em truction Set C om puter Computadora con un con
presa, se hallan en la Universidad de Harvard junto reducido de instrucciones) de bajo costo, bajo
cuando se desarrollaba un proyecto para el De consumo de potencia y alta velocidad de operacin.
partamento de Defensa de E.E.U.U. en el cual
se utilizaba un nuevo diseo en cuanto a la dis No estn m uy alejados de la realidad: ya es
posicin e interaccin de la C PU con la memo tn en desarrollo microcontroiadores PIC de has
ria, el cual tom el nombre de arquitectura Har- ta 40 M H z y el consumo de potencia es de 50
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 prctico sobre Microcontroladores
Ue vufc^SSSBS^h?
El crecimiento de la participacin de estos mi 1. Generacin de cdigo
crocontroladores en el mercado mundial ha sido po 2. Depuracin de los programas
sible debido a la capacidad de estos dispositivos de 3. Dispositivos programadores
satisfacer las necesidades, cada vez ms exigentes, de 4. Tarjetas de evaluacin de los productos
los ingenieros y tcnicos de todo el mundo. Este cre
cimiento tambin se aliment por la variedad ofreci Todas las herramientas de desarrollo de M i
da en sus presentaciones y tipos de memoria. Algu crochip operan bajo el entorno del program a
nas de las razones que justificaron esta acogida son: MPLAB. Las herramientas de generacin de cdi
Sencillez de manejo por su juego reducido de go son MPASM, MPLAB-C y MP-DriveWay .
instrucciones Las herramientas para depuracin del cdigo son:
Buena informacin: notas tcnicas, proyectos PICMASTER em ulador In-Circuit, ICEPICt
en internet, etc. Emulador In-Circuit y el MPLAB-SIM o simula
Precio y disponibilidad en el mercado dor de programas. Despus de generado el cdigo
Herramientas de desarrollo fciles y baratas de la aplicacin, el dispositivo debe ser programa
do. Microchip ofrece dos niveles de programado-
La empresa Microchip fabrica, entre otros mu res: el PICSTART Plus y el PROMATE II.
chos productos, microcontroladores de 8 bits de pro
psito general de arquitectura RISC (conjunto re Las tarjetas de demostracin perm iten al
ducido de instrucciones), bajo consumo de potencia usuario evaluar la capacidad y disponibilidad del
y una distribucin interna en donde la memoria de dispositivo para una aplicacin determinada. Ellas
programa (ROM) y la memoria de datos (RAM) se son: PICD EM -1, PICD E M -2, PICD EM -3 y
encuentran en bloques separados, cada una con su PICDEM -14A.
propio bus de acceso (estructura Harvard).
Arquitectura de los PIC
Ellos se clasifican dependiendo de la longitud Podemos estudiar cada m icrocontrolador PIC
de la palabra de sus instrucciones. Actualmente teniendo en cuenta tres aspectos fundamentales:
las tres familias de microcontroladores P1C son: 1. El ncleo
1. Lnea Base o bsica: palabras de 12 bits de longitud 2. Los perifricos
2. Rango Medio: palabras de 14 bits de longitud 3. Las caractersticas especiales
3. Rango Alto: palabras de 16 bits de longitud
El ncleo
Los dispositivos de la lnea bsica tienen las refe Se refiere a las caractersticas fundamentales que
rencias 12CXXX, los de rango medio 16CXXX y se requieren para realizar su operacin bsica. En
los ms avanzados se nombran como 17CXXX y tre ellas estn:
18CXXX; figura4 .1. Cuando desarrollamos un pro
yecto con microcontroladores PIC, debemos elegir Es un circuito que se u tili
el microcontrolador ms adecuado dependiendo de za para generar la seal de reloj del dispositivo.
sus caractersticas. Estas se relacionan directamente Esta seal es necesaria para que el microcontro
con las funciones que se puedan ejecutar con cada lador ejecute las instrucciones y para que funcio
microcontrolador y su tecnologa de fabricacin. nen los perifricos. Entre los circuitos de oscila
cin ms comunes estn los basados en cristal,
Herramientas de desarrollo en red RC y los de resonador.
Microchip y otras empresas, ofrecen un amplio
rango de herramientas de desarrollo que permiten Se usa para lle
agilizar la elaboracin y depuracin de los progra var al microcontrolador a un estado conocido. En
mas. Estas pueden dividirse en cuatro categoras: este estado se establecen por lo general las condi
tivos. Puede operar en dos modos distintos: cacin. Cuando el circuito se alim enta, el estado
SPI I 2 C . de estos bits determinan su modo de trabajo.
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 ms indicada,
dnales del dispositivo, se deben estudiar otros
aspectos como: tecnologa de la memoria, voltaje
de operacin, rango de temperatura de operacin, Dependiendo de la aplicacin y el modo de pro
frecuencia de operacin y encapsulado. Microchip gram acin, hay varias tecnologas para la memo-
O
Extendido 2.5 - 6.0
de fabricacin y las distintas tecnologas, algunas
caractersticas elctricas pueden variar entre dis Tabla 4 .2 Rangos de voltaje tpicos para cada tipo de dispositivo
positivos, a pesar de que tengan las mismas fun
ciones y pines. Mem oria Flash
Estos dispositivos son borrables elctricam ente y
Cada uno de los tipos de memoria que estn se ofrecen en un encapsulado plstico de bajo
en los dispositivos, hace que cada uno de ellos costo; pueden borrarse y reprogramarse.
presente una variedad en la respuesta de frecuen
cia y en las opciones de encapsulado. Dependien Opciones de rango de voltaje de
do de los requerimientos de la aplicacin y de la operacin
produccin, las opciones propias del dispositivo Todos los microcontroladores PIC de rango m e
pueden identificarse usando las hojas de datos dio operan sobre un rango estndar de voltaje.
sum inistradas por los fabricantes. A lgunos modelos pueden trabajar sobre unos
rangos extendidos de voltaje (y rango reducido
El tipo de memoria utilizado en cada dispo de frecuencia).
sitivo se puede identificar en su nmero de parte
por la primera(s) letra(s) as: La tabla 4 .1 muestra la designacin para los ti
pos de m emoria y rangos de voltaje en los micro
1. C , como en PIC 16C X X X . Estos dispositivos controladores PIC 16CXXX. Los designadores
tienen memoria EPROM estn en negrilla.
2. CR, como en PIC 16C R X X X . Dispositivos
con memoria ROM En la tabla 4 .2 podemos apreciar las especi
3. F, como en PIC16FXXX. Dispositivos con me ficaciones dadas por M icrochip para los voltajes
m oria Flash de los distintos microcontroladores. Estos valo
res estn comprobados.
EPROM
Es la m emoria borrable (EPROM: Erasable Pro- Variedades de encapsulado
gra m m a b le R ead O nly M em ory) para que los d i D ependiendo de la fase de desarrollo de un
seadores tengan flexibilidad en el desarrollo de proyecto, se debe usar uno de los tres tipos
los prototipos. de encapsulado. El prim ero es un dispositivo
con una ventana de borrado. N orm alm ente
ROM poseen un encapsulado cerm ico y se usan en
M icrochip ofrece dispositivos en versin ROM la fase de d esarrollo, debido a que perm iten
(R ead O nly M em ory) la cual es la apropiada para b o rrar y reprogram ar la m em oria de progra
utilizarse en casos de produccin en serie, ya que m a m uchas veces.
es la ms econmica del mercado.
El segundo tipo de encapsulado es el plstico
R ango dle vo lta je de bajo costo. Por ltim o estn los dispositi
Tipo de m em oria
Estndar Extendido
vos DIE (dado) los cuales se caracterizan por
EPROM PIC16CXXX PIC16LCXXX
no tener encapsulado. Se utilizan en ap licacio
ROM PIC16CRXXX PIC16LCRXXX
nes de m uy bajo costo donde el espacio de las
FLASH PIC16FXXX PIC16LFXXX
tarjetas deba ser m nim o. En la figura 4 .2 se
Tabla 4.1 Tipos de memorias y rangos de voltaje m uestran los tres tipos de encapsulados.
Dispositivos FLASH
Un microcontrolador tipo FLASH permite m o
dificar el contenido de su m emoria mediante una
carga elctrica. Esto significa que el sistema pue
de ser diseado para programacin dentro del
circuito. Como no requieren de una ventana de
borrado, estos dispositivos tienen encapsulado
plstico, lo que los hace m uy econmicos.
Dispositivos EEPROM
Figura 4.3 Principales encapsulados de los microcontroladores PIC Un dispositivo EEPROM permite que su m e
moria sea borrada m ediante una carga elctrica.
Dispositivos borrabies con luz Esto significa que el sistema puede disearse para
ultravioleta que el borrado y el reprogramado puedan hacer
La versin borrable UV de dispositivos de me se dentro del circuito. Tampoco requieren venta
m oria de programa EPROM es ptim a para el na de borrado y se encapsulan en plstico.
desarrollo de prototipos y programas piloto. Es
tos dispositivos pueden programarse una y otra Dispositivos ROM
vez. La cantidad de tiempo requerida para bo Los dispositivos ROM tienen su memoria de
rrar completamente un dispositivo UV depende programa establecida desde el momento de su
de la longitud de onda del haz, su intensidad, fabricacin. Com o ella no puede cambiarse, es
distancia entre la fuente y el microcontrolador, y tos dispositivos tienen la presentacin en plsti
de la tecnologa del dispositivo (qu tan peque co ms econmica del mercado.
as son las celdas de memoria).
DIE
N ota: las bombillas fluorescentes y la luz del Esta opcin perm ite el desarrollo de tarjetas m uy
sol, emiten luz ultravioleta con una longitud pequeas. La fabricacin con DIE requiere equi
de onda que perm ite el borrado. Si en un dis pos y conocimientos especiales, lo que im plica
positivo de este tipo no se protege la ventana, que el nmero de casas fabricantes que soportan
puede ocurrir, con el tiempo, que las celdas de esta tecnologa sea limitado.
la memoria se borren. El tiempo de borrado
con una luz fluorescente es aproximadamente Servicios especiales
de tres aos, m ientras que con la luz del sol se Para algunos usuarios que incorporen la tecnolo
requiere de aproxim adam ente una semana. ga OTP, debido a un cdigo fijo para sus produc
Para prevenir la prdida de los datos, se debe tos, Microchip ofrece dos encapsulados especia
colocar una superficie opaca (p. ej. cinta ais les: la programacin rpida para produccin y la
lante) sobre la ventana de borrado. programacin serial rpida para produccin. Ellas
les permiten a estos usuarios ahorrar mucho tiem
Dispositivos program abtes una vez po en el proceso de fabricacin de sus productos.
(One-Tim e-Program mable: OTP)
Los dispositivos OTP, se encapsulan en plstico a. Programacin rpida para produccin (QTP:
y permiten que el usuario los programe una sola Q uick Turn P ro d u ctio n )
PROGRAMADORES Y ENTRENADORES
( Trainers)
Los programadores son dispositivos que permiten
grabar en la memoria del microcontrolador el pro
gram a escrito y ensamblado en la computadora.
Algunos programadores trabajan conectndose al Figura 4.5 Programadores p o r el puerto serial
puerto paralelo como el K-220 de CEKIT, figura a) Programador K-224 de CEKIT
4.4 ; y otros, conectndose al puerto serial como b) PICSTART Plus de Microchip
los que se muestran en la figura 4.5. c) Programador Clear View Mathias
00 0 0
q
0
B
0
B g
B a |
a
LOS MICROCONTROLADORES
________ MOTOROLA ______
Esta fam ilia de m icrocontroiadores es una
de las ms difundidas y utilizadas en todo el
m undo. Sus aplicaciones incluyen las com u
nicaciones, el control, la electrnica autom o
triz, etc. En esta leccin harem os un a intro
d u cci n a sus aspectos m s im p o rtan tes
como las fam ilias en que estn divididos, sus
caractersticas, sus ventajas y en general, da
remos un rpido vistazo a esta tecnologa.
Les iiu c t a i ntroiadores M otorola
unidad para el trabajo de operaciones de punto bladores y depuradores. Todos estos elementos
flotante, interfaz para la em ulacin, etc. permiten desarrollar, monitorear, probar y depu
rar su cdigo, para que las aplicaciones funcio
La familia 683XX nen bien y rpido. Existe una gran cantidad de
Estos microcontroiadores estn diseados para modelos, los cuales se ajustan a las necesidades y
soportar lenguajes de alto nivel, cuentan con 16 presupuestos disponibles, figura 5.5.
M bytes de m emoria de programa, poseen un bus
dinm ico de 8 16 bits, y vienen en versiones de Algunos de estos dispositivos son de bajo
16M H z, 20M H Z 25 M H z. Las principales costo, pero a pesar de ello ofrecen muchas ven
subfamilias de esta categora son: tajas, como por ejem plo, capacidad de em ula
cin en el circuito de la aplicacin y, aunque
Son subfamilias especiales para apli esta tarea no se ejecute en tiem po real, es de
caciones donde se requiere m ucha m em oria, gran ayuda para agilizar el trabajo y dism inuir
cuentan con puertos seriales y mdulos avanza el tiempo de desarrollo de los programas. Otras
dos de temporizacin; la 68C K 338 cuenta ade caractersticas son:
ms con un reloj en tiempo real y un mdulo
temporizador de 20 canales. Las Ambiente de desarrollo totalmente integrado
se componen de dispositivos d i bajo Windows
seados para trabajar bajo condiciones atmosf Se puede examinar y m odificar la memoria, los
ricas complicadas, al igual que donde se requie registros y los pines de entrada/salida
ran altas velocidades, comunicaciones seriales, Acepta hasta 64 breakpoints (puntos de parada)
redes CAN y sistemas sofisticados de adquisicin Diferentes modos de ejecucin en pasos o de corrido
desde m ltiples fuentes. Programa microcontroiadores OTP y EPROM
Conexin serial a la computadora
Sistemas de desarrollo
M otorola y muchas empresas independientes de CEKIT S.A., como empresa lder en el dise
desarrollo electrnico, tienen disponible una gran o y fabricacin de m aterial didctico, tiene dis
variedad de herramientas para trabajar con estos ponible un sistema de desarrollo m uy econmi
dispositivos. Entre ellas se cuentan, emuladores, co y fcil de utilizar para la fam ilia 68H C908JK 3,
analizadores lgicos, programadores, tarjetas de figura 5.6, cuya construccin, ensamblaje y u ti
evaluacin, simuladores, compiladores en lengua lizacin sern explicados en detalle en uno de los
je C , sistemas operativos en tiempo real, ensam proyectos que forman parte de este curso.
M 6 8 H C 7 0 5 J IC S
*
1 Curso prctico sobre Microcontroiadores
LOS MICROCONTROLADORES
INTEL, ATMEL y BASIC Stamp
Daremos un vistazo rpido a estas tres marcas
que tam bin son am pliam ente utilizadas, algu
nas por su potencia, otras por su facilidad de
manejo. De cualquier m anera, se constituyen en
excelentes opciones para el desarrollo de pro
ductos electrnicos. El m icrocontrolador 8051
de IN TEL y las versiones que de l se derivan,
han obtenido en el medio industrial un xito
indiscutible, los A TM E L son m uy utilizados en
aplicaciones mdicas y en redes de autom atiza
cin, y los BA SIC Stam p son m uy apetecidos
por la facilidad en su programacin.
Microcontroladores INTEL
A com ienzos de los aos 80 Intel propuso el
m odelo de m ic ro c o n tro lad o r d en o m in ad o
80 5 1 . Esta p rim era versin ten a tres v arian
tes: el 8051 propiam ente dicho , dotado de
u n a m em oria R O M in tern a program ada en
fb rica; el 8 7 5 1 , equipado con una E PRO M ; Os
c?
y el 80 3 1 , desprovisto de c u alq u ie r tipo de
m em oria perm anente (R O M ). Esta prim era
serie se com plet rpidam ente con la versin
8 0 5 2 . A este ltim o m icrocontrolador, m uy Figura 6.1 Microcontroladores PHILIPS. Su ncleo es el 8051
parecido al 8 0 5 1 , se le a adi un perifrico
(u n tercer tem porizador) y 128 bytes de RAM bricar microcontroladores basados en la misma
in terna. Tam bin existe una versin del 8052 arquitectura 8051 o a producir nuevas versiones
que contiene un intrprete de lenguaje BA mejoradas del mismo circuito integrado, incor
S IC en su m em oria RO M . porndoles nuevos perifricos, figura 6.1.
VERSIN
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)
Microcontroladores AVR
Son microcontroladores de 8 bits cuyas instruccio
nes se ejecutan en un solo ciclo de mquina. Cuen- Figura 6.4 Microcontroladores BASIC Stamp
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 instruccin
del programa en PBASIC, se debe ejecutar en
Presentacin 2 4 o 4 0 pines
varias instrucciones de ensamblador del ch ip in
terpretador, que hace parte del BASIC Stamp. T em p eratu ra del am b ien te 0 - 70 C
Las principales caractersticas las podemos Tabla 6 .2 Caractersticas m s representativas de los nuevos
apreciar en la tab la 6.2. Ahora poseen un m icro BASIC Stamp BS2p y BS2p40.
controlador SCENIX SX48AC a 20 M H z, en
lugar del PIC y manejan fcilmente los protoco CEKIT S.A. tiene disponibles una serie de
los I2C , DALLAS 1-WIRE y mdulos LCD. entrenadores y tarjetas para prcticas con este
tipo de microcontroladores, figura 6.14.
H asta aq u hemos visto los aspectos gene
rales de algunas de las principales fam ilias de
m icrocontroladores. Ahora estam os listos para
in iciar un estudio detallado, siguiendo el or
den de fam ilias que se ha m ostrado en las p ri
m eras lecciones, sobre la estructura bsica, el
funcionam iento y el m anejo de cada una de
las partes y mdulos que hemos enunciado an
teriorm ente y que forman parte de un m icro
controlador. M ucha dedicacin y xitos, son
nuestros deseos para usted, que se in icia ahora
de Heno en este m aravilloso m undo de los m i
crocontroladores!
Tabla 6.14 Entrenador para BASIC Stamp II, modelo K-202
resonadores cermicos
En este caso, para generar la seal de reloj, se Abrir (1 ) - *
debe conectar un pequeo circuito conforma
do por dos condensadores (C1 y C 2) y un cris NOTA ( l) Una resistencia a tierra puede usarse para dism inuir el ruido
del sistem a. Esto quiz increm ente la corriente del sistema.
tal o un resonador a los pines O S C l y O SC 2
del m icrocontrolador quienes se com unican in
ternam ente con un circuito lgico que genera
Hacia otros
la oscilacin, figura 7.2. dispositivos
R e x t. 74AS04
0SC1 Fose
R eloj intern o
Cext
vss
0SC2/CLK0UT o
Tiempo para el inicio de
Fosc/4 -4 ------------------------ CL
operacin de l cristal
Figura 7.5 Comportamiento del oscilador al recibir la alimentacin Figura 7.6 Configuracin del oscilador RC externo
e iniciar su operacin
En las tablas 1 y 2 se aprecian los valores tpi En realidad este circuito puede funcionar in
cos para los condensadores C1 y C2 para trabajar clusive sin condensador (Cext = 0) pero se reco
con un circuito basado en resonador y en cristal. m ienda utilizar valores por encima de 20pF por
razones de estabilidad e inmunidad al ruido. Cuan
do el condensador es m uy pequeo o no existe, la
C uando se desarrollen aplicaciones que no
frecuencia de oscilacin puede cambiar brusca
tengan requerim ientos exigentes de tem pori-
mente debido a capacitancias creadas externamente
zacin, se puede u tilizar un oscilador R C ex
como por ejemplo, la creada en el trazado del cir
terno como se m uestra en la figu ra 7.6 . En un
cuito impreso.
oscilador de este tipo, la frecuencia depende
directam ente del valor de la resistencia y el con
La frecuencia del oscilador, dividida por 4 , se
densador (R ext, Cext) y de la tem peratura. Si
encuentra disponible como salida en el pin O SC2
la resistencia Rext es m enor de 2.2K , la oscila
y se puede utilizar para sincronizar otros dispositi
cin puede ser inestable o detenerse com ple
vos que trabajen en paralelo en el mismo circuito.
tam ente; si es dem asiado grande, por ejem plo
1M , la oscilacin se hace m uy susceptible al
Circuito de reinicializacin (reset)
ruido y la hum edad.
En los m icrocontroladores PIC existe un pin de
nom inado M C L R . Cuando este pin se lleva a
Por eso es recomendable que Rext tenga un
un nivel lgico bajo, el PIC entra al estado de
valor comprendido entre 3K y 100K. En la tabla
reinicializacin (reset). En este estado todas las
3 se pueden apreciar las frecuencias generadas por
salidas se apagarn y el reloj se desactivar. To
distintas configuraciones de la red RC.
dos los nuevos m icrocontroladores PIC poseen
un filtro contra el ruido en el pin
M C L R para detectar e ignorar
M odo Frecuencia C1 C2
M odo Frecuencia C1/C2 pulsos pequeos, razn que faci
LP 3 2 KHz 68 - 1 0 0 pF 6 8 -1 0 0 pF
lita la incorporacin de estos dis
XT 455 KHz 22 - 1 0 0 pF 200 KHz 15 - 30 pF 1 5 - 30 pF
2.0 MHz 1 5 - 6 8 pF positivos en am bientes ruidosos o
4.0 MHz 15 - 6 8 pF 100 KHz 68 - 1 5 0 pF 150 - 200 pF
XT 2 MHz 15 - 30 pF 1 5 - 30 pF
contam inados.
HS 8.0 MHz 1 0 - 6 8 pF 4 MHz 15 - 30 pF 1 5 - 3 0 pF
16.0 MHz 10 - 22 pF
HS 8 MHz 15 - 30 pF 1 5 - 3 0 pF
10 MHz 15 - 3 0 pF 1 5 - 3 0 pF
D entro del m apa de m em o
2 0 MHz 15 - 3 0 pF 1 5 - 3 0 pF
Tabla 7.1 Valores tpicos de los ria existe una direccin denom i
condensadores cuando se trabaja Tabla 7.2 Valores tpicos de los condensadores
nada vector de r eset , en esta di-
con resonadores cuando se trabaja con cristales
+5VDC
,+5V
VD0 ig
1N4148
X
0SC1 I(> g MCLR
S 5
, Fosc/4- 0SC2 3 MCLR i3 -
T
Tabla 7.3 Frecuencias de oscilacin para distintos Figura 7.8a Circuito externo de Figura 7.8b Otro circuito para POR
valores de la red RC POR
VDD
controladores PIC, por las ventajas que ofrecen.
Analicemos cada uno de ellos.
PWRTTime out
Temporizador al encendido
O St (Power Up Timer: PWRT)
El PWRT es una caracterstica que se puede
Ost Time out
incorporar en el momento de grabar un pro
grama en la memoria del microcontrolador.
Reset interno Esto proporciona un retardo de aproxima
damente 70 ms a la reinicializacin POR o a
Figura 7.10 Secuencia seguida al alim entar el sistem a y el pin MLCR
conectado directamente a ZDD la BOR. El PWRT se basa en un oscilador
RC interno dedicado. El microcontrolador
Cuando el dispositivo sale del estado de reset permanecer en estado de reset mientras el
(comienza su operacin normal), los parmetros PWRT se encuentre activo. El retardo proporciona
de operacin del dispositivo (voltaje, frecuencia, do por el PWRT le permite al voltaje de alimenta
temperatura, etc.) deben encontrarse dentro de sus cin V D D alcanzar un nivel aceptable.
rangos normales de operacin; de otra manera el
microcontrolador no funcionar correctamente. Temporizador de oscilacin al
El retardo originado con el POR permite que se encendido (OST)
establezca un retardo lo suficientemente largo para Este tem porizador proporciona un retardo de
que estos parmetros se normalicen. 1024 ciclos del oscilador (de acuerdo a la en
trada en O SC 1) despus de que el retardo
En la figura 7.8 se aprecia un posible circuito P W R T ha term inado. Esto asegura que el os
PO R basado en una red RC y un diodo; recomen cilador de cristal o resonador se encuentra ope
dable para un sistema que posea una fuente de ali rando en su modo estable.
VDD VDD
Figura 7.11 Circuito 1 externo de Brown out Figura 7 .12 Circuito 2 externo de Brown out
Si el v o ltaje fin al
VDD
del sistem a no cum ple
b v dd con las especificaciones
elctricas del m icrocon
trolad or (las cuales se
Reset interno 72 ms p u ed en h a lla r en las
hojas de datos del fa
Figura 7.13 Comportamiento del BOR
bricante) el pin M C L R
En la fig u ra 7 .9 se observa la operacin del debe m antenerse en bajo h asta que el vo ltaje
circuito O ST en conjunto con el PW RT. A ll sea el adecuado. El uso de un retardo con
podemos apreciar como a m edida que el vol u na red RC ex tern a debe ser su ficien te para
taje VDD crece tam bin lo hace la seal en este propsito.
M C L R ; a partir de cierto nivel el PO R em pie
za su operacin y el P W R T se activa durante Reinicializacin por cada en la
un tiem po; cuando ste term ina, habilita al os alimentacin (Brown-Out Reset: BOR)
cilado r para que empieze su operacin. Para Dentro de los microcontroladores PIC existe es-
cristales de baja frecuencia este tiem po de in i teotro tipo de reset denominado B row n -ou t, el
cio puede ser un poco ms largo. cualpuede ser habilitado o deshabilitado por el
usuario. Este perm ite llevar el PIC a un estado
Esto se debe a que el tiem po que tom a el osci de reset cuando el voltaje de alim entacin cae por
lador de baja frecuencia para empezar a osci
No implantados
la r es m ayor que el retardo del PW RT. A s, el ------------------------- 1--------------1------------ -
tiem po tom ado desde que el P W R T se acaba POR BAR
debajo de un voltaje determinado (BVDD). Esto El circuito 2 es ms econmico pero menos pre
asegura que el dispositivo no contine con la eje ciso; el transistor Q l se desactiva cuando VDD
cucin del programa m ientras se encuentre por se encuentra por debajo de cierto nivel, de acuer
fuera del rango de operacin vlido. El reset do a la siguiente frmula:
Brown-out es m uy utilizado en aplicaciones de
lneas CA o en aplicaciones donde se conmuten car
gas y donde el voltaje puede caer temporalmente.
R1
VDD * = 0.7
Algunos microcontroladores no poseen este
R1 + R 2
tipo de reset, para los que lo poseen es necesario
ajustar el voltaje de Brown-out al nivel deseado.
Para este propsito, en las figuras 7.11 y 7 .1 2 se
muestran dos ejemplos de circuitos externos que Registro de control de potencia (P o w e r
se pueden implantar. En la figura 7.13 se muestra CONtrol: PCON)
un diagrama de tiempo donde se ilustran los mo En los nuevos m icrocontroladores PIC es po
mentos en que se origina una reinicializacin sible detectar la fuente de un estado de reset,
BOR. Cada uno de ellos debe ser comprobado en a travs del registro PC O N . Este registro con
la prctica para verificar que cumplan con los re tiene un b it de estado que perm ite d eterm i
querimientos de la aplicacin. nar que est o rigin an d o el estado de reset. Por
ejem p lo, d eterm in a si fue un PO R, un reset
En el caso del circuito 1 activar el reset cuan externo, etc. Este registro lo podem os obser
do VDD se encuentre por debajo de VZ + 0.7. var en la fig u ra 7 .1 4 , junto con los estados
Donde Vz es el voltaje zener. Al utilizar este cir de los b its en el m om ento que se originan los
cuito la configuracin B row n O u t R eset debe d istintos tipos de reset. En la fig u ra 7 .1 5 se
deshabilitarse en el momento de la programa m uestra un d iag ram a de b loq ues genrico
cin. Las resistencias se deben ajustar dependien sobre como in teract an las diversos tipos de
do de las caractersticas del transistor. condiciones que origin an un estado de reset.
S 0
Reset del
R Q
Oscilador
RC PWRT
interno
A_ *
Curso p r c tic o sob re M icro co n trola do re s e m ik
Arquitectura de ios microcontroladores PIC
Los microcontroladores PIC poseen carac por un m ism o bus, se o rig in ar dem asiad a
tersticas que los hacen muy competitivos den congestin en ste.
tro del mercado global de la electrnica. Entre
ellas se encuentran su arquitectura Harvard y su Caso contrario ocurre en la arquitectura Har
reducido conjunto de instrucciones (R ISC : Re- vard, en la cual una instruccin puede buscarse
d u ce d Instruction Set C om puter), veamos los pun en un solo ciclo de instruccin, debido a que el
tos ms representativos de esta tecnologa. bus que conecta la memoria de programa es de
14 bits. Al tiempo que la m emoria de programa
Arquitectura Harvard se est accediendo, la m em oria de datos, como
Este tipo de arquitectura se caracteriza por tener cuenta con su propio bus, puede ser leda o escri
la memoria de programa (RO M ) en un bloque ta. Esta configuracin de buses separados perm i
separado de la memoria de datos (RAM). De la te que una instruccin se ejecute al mismo tiem
misma manera, cada una posee su propio bus para po que se busca la siguiente instruccin. En la
comunicarse con los dems elementos del micro figura 8.1 podemos apreciar el diagram a bsico
controlador. Los diseadores han aprovechado esta de ambos tipos de arquitecturas.
caractersticas para implantar un bus de 8 bits para
conectar la memoria de datos y un bus de ms de Instrucciones de palabra sencilla
ocho bits para ser conectado a la memoria ROM {single word)
donde se encuentran las instrucciones. De esta Los m icrocotroladores PIC m anejan in struc
forma se hace un uso ms eficiente de la memoria ciones de palabra sencilla (sin g le w ord). Estas
de programa, porque ella puede estar optimizada instrucciones se codifican y alm acenan dentro
para los requerimientos de la arquitectura. Por esta de la m em oria de program a con un tam ao de
razn, esta arquitectura permite un mejor manejo 14 bits; ese nm ero las hace ideales para ser
de las instrucciones que la tradicional arquitectu transm itidas por el bus conectado a dicha me
ra von Neumann, en la cual el programa y los da m oria, el cual es precisam ente de 14 bits. El
tos se ubican en un mismo bloque, el cual se co hecho de que el bu s y las instrucciones tengan
m unica mediante un solo bus. am bos 14 bits, perm ite que en un solo ciclo se
ejecute una instruccin.
Para ejecutar una in struccin, una m q u i
na de arq u itectu ra von N eum ann debe reali Caso contrario ocurre en la arquitectura von
zar uno o ms (no rm alm ente ms) accesos al Neum ann; en ella las instrucciones por lo gene
bloque de m em oria a travs de un bu s de 8 ral son de m ltiples bytes por lo que no es seguro
b its ; la razn es que existen instrucciones cuya que en cada posicin de memoria exista una ins
dim ensin o lo n gitu d en b its es m ayor de 8 truccin vlida.
bits, superando la lo n gitu d del bus de datos.
A d ic io n a lm e n te , los datos deben buscarse Manejo de las instrucciones (pipeline)
dentro de la RAM y llevar a cabo operaciones Para agilizar el proceso de ejecucin de las ins
de distintos tipos, todo por el m ism o bu s de trucciones en los sistemas digitales, se ha disea
8 b its. As, al trab ajar in strucciones y datos do un sistema en el cual se empieza la bsqueda
de una instruccin a medida que
Harvard Von-Neumann
se va completando la ejecucin de
la instruccin precedente o ante
rior. Este tipo de conexin o se
cuencia se conoce con el nombre
de p ip elin e (entubar, encauzar, d i
rigir o distribuir por tubos).
Teora
ciones especiales, (como ocurre en otros micro buscada es almacenada dentro de un registro de
controladores tipo C ISC , quienes cuentan con instruccin (IR) en el ciclo Q l. En ese momento
numerosas instrucciones, donde algunas de ellas ella se decodifica y se ejecuta durante los ciclos Q2,
cumplen con labores m uy puntuales o especiales), Q3 y Q4. La memoria de datos se ha ledo durante
hacen que la programacin sea m uy simple y efi el ciclo Q2 y se ha escrito durante el ciclo Q4.
ciente, a la vez que la curva de aprendizaje se re
duce significativamente. En el ejem plo 1 se muestra la secuencia de
operacin (pipeline) de una instruccin. EnTCYO
El ciclo de instruccin se busca la prim era instruccin en la memoria de
La seal de entrada de reloj (pin OSC1) se divide programa; en TCY1 sta se ejecuta m ientras se
internamente por cuatro, generando cuatro pul busca la segunda. Durante TCY2, la segunda ins
sos peridicos en cuadratura (desfasados) deno truccin se ejecuta mientras se busca la tercera.
minados Q l, Q 2, Q3 y Q4. Internamente el con D urante TCY3 se busca la cuarta instruccin
tador de programa (PC) se incrementa cada vez mientras se ejecuta la tercera (CALL S _ l).
que aparece Q l , la instruccin se busca en la me
moria de programa y se almacena dentro del re Cuando se ha terminado la ejecucin de la ter
gistro de instrucciones en Q4. Luego la instruc cera instruccin, la CPU hace que la direccin de la
cin se decodifica y se ejecuta durante el siguiente cuarta instruccin se lleve a la pila cambiando el
ciclo de Q l a Q 4. En la figura 8.2, se ilustra el contador de programa (PC) a la direccin de S _ l.
flujo de la ejecucin de una instruccin. Esto significa que la instruccin que se busc du
rante TCY3, debe ser nivelada desde el pipeline.
Un ciclo de instruccin est formado por cua
tro ciclos Q ( Q l, Q2, Q3 y Q 4). La operacin de Durante TCY4 se nivela la cuarta instruc
bsqueda requiere de un ciclo de instruccin mien cin (se ejecuta como un N O P: instruccin de
tras hace la decodificacin y la operacin de ejecu no operacin) y se busca la instruccin ubicada
cin toma otro ciclo de instruccin. Debido al en la direccin S _ l. Finalmente, durante TCY5,
manejo que se le hace a las instrucciones {pipeline), se ejecuta la quinta instruccin y se busca la ins
cada instruccin se ejecuta efectivamente en un ci truccin presente en la direccin S_1 + 1.
clo. Si una instruccin hace que el contador de pro
grama se modifique, (por ejemplo un GOTO) en Formato general de una instruccin
tonces se requiere de un ciclo extra para completar Las instrucciones en los microcontroladores PIC de
la instruccin, ver ejemplo 1. rango medio pueden ser clasificadas segn cuatros
formatos generales, como se muestra en la figura 8.3.
La operacin de bsqueda de la instruccin Los cdigos operativos (opcodes) de las instrucciones
empieza en Q l incrementado el contador de pro varan entre 3 y 6 bits. Este tamao variable de los
grama. En el ciclo de instruccin, la instruccin opcodes permite establecer 35 instrucciones.
Cdigo operativo n i f (Archivo #) d = 0 para que W sea el destino final del resultado
d = 1 para que f sea el destino del resultado
f = 7-b it registro de la direccin de un archivo
Operaciones de registro orientadas a b it
13 10 9 7 6 0
Cdigo operativo b (BIT #) f (A rchivo #) b = 3-b it posicin de un b it (3 bits}
f = 7-b it registro de la direccin de un archivo
Operaciones de control
13 8 7 0
procesamiento de datos, escritura, etc., de cada cin del dispositivo. Muchas de estas instruccio
ciclo de instruccin, figura 8.4. nes operan sobre la memoria de datos para lo cual
se requiere de la unidad aritmtico lgica (ALU,
Los cuatro ciclos Q que conforman un ciclo A rithm etic L ogical Unit). Para llevar a cabo las ope
de instruccin (TCY) se pueden generalizar as: raciones aritmticas y lgicas, la ALU controla los
bits de estado (los cuales se localizan en un regis
Q l: Ciclo de decodificacin de la instruccin tro especial denominado registro de estado). El re
Q 2: Ciclo de lectura de datos de la instruccin sultado de algunas instrucciones obligan a los bits
Q 3: Procesamiento de datos de estado a cambiar su valor, dependiendo del re
Q 4: Ciclo de escritura de datos de la instruccin sultado de la operacin.
T0SC
uiT uiT U T rnT ruljU ^i
TCY1 TCY2 TCY3
*
78 @ M IK IIW *.a. Curso prctico sobre Microcontroladores
Teora
Unidad aritm tica lgica (ALU) Los datos de la memoria RAM interactan
Los microcontroiadores PIC contienen una ALU con las palabras de instruccin al llegar a la ALU.
y un registro de trabajo de 8 bits. La ALU es la uni Dependiendo del valor de d en la correspondiente
dad lgica y aritmtica la cual desarrolla operacio instruccin, el resultado final se dirige a w o al
nes aritmticas y funciones booleanas entre los da registro de la RAM , f.
tos del registro de trabajo y cualquier registro.
El registro de estado
La ALU es capaz de hacer sum as, restas, El registro de estado, f i g u r a 8 . 6 , contiene el esta
desp lazam ien to s y op eraciones lgicas. Las do aritm tico de la ALU, el estado del proceso
Registro: STATUS
bit 7 bitO
D ireccin: 03h
C ondicin de reset. 000??XXX
de reinicializacin y los bits de seleccin de los Es recomendable que solo se utilicen las ins
bancos de memoria. Este concepto se estudiar trucciones BCE BSF, SWAPF y M O VW F para
en la siguiente leccin: La memoria en los m i alterar el registro de estado, ya que estas instruc
crocontroladores PIC. ciones no afectan los bits z, D C o C . En la tabla
1 se muestran otras instrucciones que no afectan
El registro de estado puede servir para almace los bits de estado.
nar los datos de una instruccin, es decir, puede
trabajar como cualquier otro registro. Si el registro El registro OPCIN
de estado sirve de destino para una instruccin que Este es un registro fundam ental para estable
afecte los bits C, DC o Z, entonces se deshabilita la cer las condiciones con las que va a trabajar nues
escritura en estos tres bits. Esos son puestos en uno tro program a. En l podemos llevar a cabo ope
o en cero de acuerdo a la lgica del dispositivo y a raciones de lectura y escritura. C ontiene varios
las operaciones que ejecute. De hecho, los b its TO bits de control que configuran mdulos como
y PD no son escribibles. los tem porizadores, las interrupciones y las re
sistencias d e p u ll-u p internas del m icrocontro
El resultado de una instruccin que tenga lador, figura 8.7 .
como destino el registro de estado, puede arrojar
un resultado distinto al esperado. Por ejemplo, si Los bits PSA, PSO, PS1, PS2, INTDEG y RTS
se ejecuta la instruccin CLRF ESTADO se bo configuran el funcionamiento del temporizador
rrarn los tres bits ms significativos y Z se pon interno (esto lo estudiaremos ms adelante), el
dr en uno. Esto deja al registro de estado con b it RBPU perm ite que habilitemos una resisten
OOOn nl nnn (donde n significa: no cambia). cias de p u ll-u p internas conectadas al puerto B.
bit 7 bitO
D ireccin: 81 h
C ondicin de reset. 11111111b
Podemos resear dos bloques principales en Von N eum ann, una m em oria de program a de
los que se divide la memoria en los microcontro 8K puede llegar a tener slo alrededor de 4K
ladores PIC: la memoria de programa (RO M ) y para alm acenar instrucciones.
la m emoria de datos (RAM ). Tambin existe una
m em o ria m u y im p o rta n te d e n o m in a d a la La memoria de programa en los microcon
EPROM de datos; ella ser tema de estudio en troladores PIC se divide en cuatro pginas de 2K
la siguiente leccin. Como vimos en la leccin cada una (0h-7FFh, 800h-FFFh, 1000h-17FFh,
anterior, cada bloque cuenta con su propio bus y 1800h-1 FFFh), figura 9.1. Dependiendo de la
de acceso, de manera que ambos pueden consul referencia del microcontrolador PIC, se determ i
tarse durante un mismo ciclo del reloj. na qu porciones de este mapa de memoria po
see internamente. Para ello debe referirse a la hoja
La memoria de datos, a su vez se divide en de datos del PIC especfico con el fin de estable
dos bloques: los registros de propsito general cer su memoria disponible.
y los registros de funciones especiales (SFR :
S p ecia l F unction Registers). Los registros de pro Para saltar entre las pginas de la m em o
psito general son los que el usuario tiene a su ria de program a, se deben m od ificar los bits
disposicin para ubicar las distintas variables de alto s del contador de program a (P C ). Esto se
su programa, mientras que los registros SFR con hace escribiendo el valor deseado en un re
trolan muchas funciones del microcontrolador y gistro SFR denom inado PCLATF1 ( P rogram
de sus mdulos perifricos. C ou n ter L atch H igh). Sin em bargo, si se eje
cu tan in strucciones secuen cialm ente el con-
El contador de programa
El contador de programa (PC) es un registro de
PC<12:0>
13 bits que especifica la direccin en la memoria
de programa de la instruccin que debe buscarse
para ser ejecutada. El byte bajo del PC se deno
m ina registro PCL y sobre l se pueden realizar
procesos de lectura y escritura. El byte alto se co
noce como registro PCH , contiene los bits 8 al
12 <12:8> del P C y no puede leerse ni escribirse Nivel 1 de la pila
de manera directa.
Nivel 8 de la pila
La memoria de programa
Reset vector OOOOh
El contador de program a de los m icrocontrola
dores PIC de rango medio puede direccionar
8K 6K 4K 2K
Vector de interrupcin 0004h
un espacio en la m emoria de program a hasta de
Memoria de programa 0005h
8K y 14 bits de longitud. Com o todas las ins
(Pgina 0) 07FFh
trucciones son de palabra sim ple, un dispositi 0800h
Memoria de programa
vo que posea una m em oria de program a de 8K (Pgina 1)
OFFFh
x 14 bits tiene espacio para albergar 8K en ins Memoria de programa 10OOh
trucciones. Esto facilita al usuario establecer si (Pgina 2) 17FFh
un dispositivo tiene suficiente memoria d e pro Memoria de programa 10OOh
(Pgina 3)
gram a para una aplicacin determ inada. Esta 1 FFFh
aclaracin es im portante hacerla debido a que,
al trabajar en un dispositivo de C PU C IS C y
Figura 9.1 Memoria de programa
Direccin
a) En dispositivos hasta de 2K de memoria de programa hexadecimai Memorja de nr0qrama
000
12 10 2K" direcciones
3A5
Contador de X X 0 1 1 1 0 1 0 0 1 0 1 (1 1 -M rango de direcciones)
programa
1---------- II--------------- 1 J
7FF
Direccin
b) Dispositivos hasta de 4K de memoria de programa hexadecimai Memoria de programa
000
12 11
Contador de
X 1 0 1 1 1 0 1 0 0 1 0 1
programa
1 II I I ----------- 1
4K" direcciones
(1 2 -M rango de direcciones)
Fig ura 9.2 Trabajo del contador de programa a l acceder a la memoria de programa
tad o r de program a puede lleg ar a sobrepasar Este ltimo tipo de microcontroladores utiliza
los lm ites de la pgina sin n in gu n a in terven un contador de programa de 13 bits, permitiendo
cin del usuario. Todas las actualizaciones que manejar hasta 8K de memoria de programa sin cam
se hacen sobre el registro PC H afectan in m e biar para nada la estructura de la CPU . Los disposi
d iatam en te al registro PC LA TH . Para dispo tivos de 2K o 4K ignoran los bits ms significativos
sitivos con m enos de 8K el acceso a una posi del contador de programa durante los procesos de
cin por encim a de las establecidas fsicam en bsqueda en la memoria de programa.
te originar u n a sobreposicin. Esto es, en un
d is p o sitiv o de 4K a c c e d e r a la d ire c c i n Existen dos direcciones dentro de la memoria
17FFh en realid ad d ireccio n a la 7F F h. D is de programa que reciben un trato especial por par
positivos de 2K o m enos no requieren pagi te de la CPU. Cuando la CPU inicia su operacin
nar la m em oria de program a. desde su estado de reset, su contador de programa
automticamente toma el valor de cero. Esta direc
Una m emoria de programa de 2K slo nece cin se denomina v ecto r d e reset debido a que a ella
sita de un contador de programa de 11 bits para llegar la ejecucin del programa cuando ocurra un
acceder a cualquier direccin (2 " = 2048 = 2K), estado de reset.
figura 9.2a. U n microcontrolador con una me
m oria de programa de 4K necesita de un conta En este punto se borrar el contenido del registro
dor de programa de 12 bits, figura 9.2b. PCLATH. Esto significa que cualquier salto hacia la
Direccin
hex.
Memoria de programa SERVICIO_INTERRUP se puede asignar a esta
000 I goto PRINCIPAL posicin para que la CPU salte a una subrutina don
de se establezca qu hacer al aparecer la interrupcin,
001
la cual puede estar en cualquier punto del espacio de
002
la memoria de programa.
003
004 goto SERVICIOJNTERRUP Como veremos ms adelante una de las tc
005 nicas ms utilizadas dentro de los microcontro
Tablas ladores es el manejo de tablas. Dentro de la me
moria de programa es conveniente ubicarlas en
Fin de las tablas
PRINCIPAL el rango de direcciones de 005H a OFFH; estas
Programa PRINCIPAL 250 posiciones son ms que suficientes para la
y sus subrutlnas
m ayora de las aplicaciones.
SERVICIO,
Servicio de Interrupcin El programa PRIN CIPAL inicia su ejecu
INTERRUP
y sus subrutlnas
Fin del cin cuando el PIC sale del estado de reset y
cdigo contina funcionando hasta que una de las fuen
tes de interrupcin ha aparecido y requiere aten
F ig ura 9.3 Ubicacin en la memoria de programa
cin inm ediata; en ese momento la ejecucin
direccin del vector de reset (Oh) llevar a la pgina 0 del program a PRIN CIPAL se suspende tem po
de la memoria de programa. Esto lo podemos apreciar ralm ente. La C PU empieza a ejecutar la subru
en la figura 9.3, donde el contenido de la direccin tina del servicio de interrupcin cuando se car
OOOH es la instruccin goto PRINCIPAL. ga autom ticam ente el contador de programa
con 004H . C uando se completa la ejecucin del
La segunda direccin especial es la 004H, la que servicio de interrupcin, la C P U retorna al m is
se carga automticamente en el contador de progra mo punto donde abandon la ejecucin del pro
ma en el momento en que ocurre una interrupcin. gram a PRINCIPAL.
Esta direccin se conoce como vector d e interrupcin.
Cuando el PC toma la direccin del vector de inte La escritura de programas se complica un
rrupcin, el registro PCLATH no se modifica. Como poco cuando entre el cdigo principal, tablas,
se muestra en la figura 9.3, una instruccin goto subrutinas e interrupciones, se ocupa ms de 2K.
Memoria de programa
Micros
de 2K
(rango
de dire
cciones
de 11
bits) M icros de 4K (rango de
direcciones de 12 b its)
Comportamiento del Contador de Programa (P( i registro PCL ( y por consiguiente el PCLA-
La figura 9.7 muestra cuatro situaciones en don- TH<4:0> --> P C H ), el PCH no puede modifi-
de podemos estudiar el com portam iento del carse (escribirse) directam ente pero puede mo-
contador de program a (P C ). La situacin 1 dificarse cuando vara PCL, y cualquier modi-
m uestra como se carga el P C al escribir en el ficacin que sufra PCH se refleja inmediatam en
te en el P C L A T H . La situ aci n 2
S ituacin 1: instruccin con PCL como destino
m uestra como se carga el PC durante
Pila (13-bits x 8)
u n a in s tru c c i n G O T O (P C L A -
PCH PCL
12 0 Tope de la pila TH<4:3> --> PC H ) y vemos como los
bits 3 y 4 del PCLATH (establecidos
por el usuario) afectan el contenido del
5J_PCLATH<4:0> \ contador de program a. Como vimos
incorporando un anteriorm ente, de esta m anera accede
resultado de la ALU
en PCL mos a pginas superiores en la memo
PCLATH ria de program a. La situacin 3 mues
tra como se carga el PC durante una
S ituacin 2: comportamiento ante una Instruccin GOTO instruccin CALL (PCLATH <4:3> >
PCH PCL Pila (13-bits x 8)
P C H ), cuando el PC se ha cargado en
12 11 10 8 7 0 Tope de la pila
la cim a de la pila (stack) y como, al
igual que con la instruccin GOTO,
el PCLATH afecta al contador de pro
Incorporando un cdigo
grama. La situacin 4 muestra como
operativo en PCL < 1 0 :0 > se carga el PC durante una instruccin
de retorno (R E TU R N ), donde el PC
PCLATH
es cargado con el valor que hay en la
S ituacin 3: instruccin CALL cim a de la pila.
Pila (13-bits x 8)
Tope de la pila
En muchos programas en lenguaje
ensamblador es necesario construir ta
blas de datos para distintas aplicacio
nes. Uno de los mtodos ms comunes
Incorporando un cdigo
para acceder a estas tablas es sum ar un
operativo<10:0> valor determinado al contador de pro
grama (ADDW F PCL). Cuando invo
PCLATH
camos una rutina de tabla el PC toma
Situacin 4: comportamiento ante una instruccin de retron. esa direccin inicial y al sumarle un va
Pila (13-bits x 8)
lor fijo llega a la posicin de la tabla
PCH PCL ... , indicada por dicho nmero. En un caso
12 11 10 8 7 ' como ste, al sum arle un nmero de 8
bits, la tabla slo podr llegar hasta 256
i L I I posiciones de longitud.
11
----- 7*------
Incorporando un cdigo
operativo<10:0> C ualquier escritura que se haga so
PCLATH
bre el contador de programa (PCL), ori-
Figura 9 .7 Comportamiento de l contador de programa g inar Aue los 5 bits ba)os de PCLATH
se carguen en PCH.
1 0 0 1 0 1 0 0 - 94
1__________II----------------1
hex
L 4
L Aocesa cualquier posicin en todo
el espacio de direcciones
En ese proyecto se escribi una serie de datos Si intentam os leer m anualm ente el regis
en diversas posiciones de la memoria de progra tro FSR, solo leeremos 00F1, y si intentam os
ma, los cuales deban ir mostrndose secuencial- escribir un dato sobre l, resultar un estado
mente en la pantalla de diodos LED. Para resolver de no operacin (N O P). Podemos generar d i
ese problema, simplemente se acudi al registro recciones hasta de 9 bits, concatenando el b it
FSR para que hiciera un recorrido por todas esas 1RP (STATUS <7>) con los 8 bits del registro
casillas y pudiramos tomar el dato. FSR, como se m uestra en la fig u ra 9 .1 2 .
?Fh 7Fh
C u alq u ier instruccin que utilice el re Banco 0 Banco 1 Banco 2 Banco 3
gistro IN DF puede acceder al registro
apuntado por FSR. Figura 9 .1 2 Direccionamiento indirecto concatenando el b it IRP
Ctodo comn
AAAr-
A W -
READ f^ A r
READ/ A A A ^
WRITE
2N 3906
EEC0N1
lim pia cada vez que se enciende
el sistema. El b it W RE RR se pone
EEIF WRERR WREN WR RD
en uno cuando un ciclo de escri
RO: Lectura turase interrum pe por un reset de
1: Se pone en uno cuando se va a realizar un ciclo de lectura de la EEPROM. Luego
pasa a cero automticamente. bido al pin M C L R o al w atchdog.
Despus de un reset, por medio
WR: Escritura
1: Se pone en uno cuando se inicia un ciclo de escritura en la EEPROM. Cuando se de un program a, se puede che
completa el ciclo pasa a cero automticamente. quear el b it W R E R R y reiniciar
WREN: Permiso de escritura el ciclo interrum pido de escritu
1: Permite la escritura en la EEPROM
0: Prohbe la escritura ra. Las direcciones y los datos se
m antendrn sin cambios en los
WRERR: Sealizador de error de escritura
1: Se pone en uno cuando una operacin de escritura ha terminado prematuramente registros EEADR y EEDATA.
0: La operacin de escritura se ha completado correctamente.
Ciclo de escritura
MAPEO DE BITS
El ciclo de escritura comienza cargando en EEA- rd equ 0
wr equ 1
D R la direccin de la posicin que se va a escribir y w ren equ 2
rp 0 equ 3
con el registro EEDATA el valor que se va a grabar.
Despus se debe aadir una secuencia de instruc o rg 0x000
in ic to bsf s ta tu s ,r p 0 b a n c o 1
ciones que inician la escritura, en la cual participa movlw b 00000000' s a lid a s
movwf tr is b
el registro EECON2. Este registro, que en realidad bcf s ta tu s ,r p 0 b a n c o 0
c lr f p o rtb
no se halla establecido fsicamente, slo asume fun movlw B 00000010'
movwf b y te b y t e de
ciones de seguridad en el proceso cargndose en l p r u e b a a g r a b a r
movlw 0X00
dos valores concretos: 55H y AAH. El tiempo de movwf d ir e c c i n
c a li e s c r itu r a
estos pasos es un aspecto crtico, de manera que se bsf s ta tu s ,r p 0
recomienda que se siga esta secuencia. Las interrup e s c r c o m p le ta b tfs c e e c o n l,w r b y t e
e s c r it o ?
ciones deben deshabilitarse mientras se ejecuta este g o to
bcf
e s c r c o m p le ta
s ta tu s ,r p 0
procedimiento. El bit W REN en EECON1 debe c a li le c tu r a
m o s tr a r
movwf p o rtb
ponerse en uno para habilitar el WRITE. Esto pre c ic lo g o to c ic lo
d a t o en e l p u e r t o b
e s c r itu r a movf d i r e c c i n ,w to m a
d i r e c c i n
Ir al banco 1 movwf eeadr
movf b y t e .w
movwf e e d a ta
b sf s ta tu s ,r p 0
b sf e e c o n l,w r e n
h a b ilit a e s c r itu r a
movlw 0x55
movwf eeco n2
movlw 0xaa
movwf eeco n2
b sf e e c o n l,w r WR -> 1
bcf e e c o n l,w r e n
; d e s h a b ilit a
e s c r itu r a
bcf s ta tu s ,r p 0 ; banco0
re tu rn
end
FUSIBLES:
MEMORIA DESPROTEGIDA
WATCHDOG DESHABILITADO
CRISTAL 4 MHZ
POWER UP TIMER ON
F ig ura 10.3 Diagrama de flujo del ciclo de escritura en la EEPROM Figura 10.4 Cdigo de ejercicio de lectura y escritura en la EEPROM
RBO
La eleccin de los dos hilos se
Figura 10.5 Diagrama esquemtico de lectura y escritura en la EEPROM de datos debe hacer para aplicaciones que re
quieran bus P C (este es un mtodo
el nuevo. El tiempo de escritura es controlado de comunicacin de datos serial que estudiare
por el temporizador (tim er 0) del PIC. Este tiem mos ms adelante), inm unidad al ruido y dispo
po puede variar segn las condiciones de voltaje nibilidad lim itada de pines. La eleccin de los
y temperatura, al igual que entre diversos tipos tres hilos es conveniente en casos de requerimien
de circuitos integrados. tos lim itados de protocolos, un protocolo SPI
(otro mtodo de comunicacin serial), alta fre
Al com pletar el ciclo de W RITE, el b it W R cuencia de reloj o en aplicaciones de 16 bits.
se pone en cero automticam ente y se activa la
bandera de escritura completa en EE. El progra En este grupo se encuentran
m a puede detectar si el ciclo de W RITE se ha los dispositivos con la nomenclatura 93XXXX.
cum plido habilitando esta interrupcin, m iran En ellos se requieren cuatro pines.
do la bandera EEIF o el b it W R . Los bits EEIF y
W REN deben ser limpiados por programa. En Bus de dos hilos La nomenclatura comn es
la figura 10.4 vemos un ejemplo de manejo de 24XXXX y 85XXXX, ver tabla 3. El protocolo
lectura y escritura en la EEPROM y su diagrama P C utiliza comunicacin bi-direccional maestro/
esquemtico se ve en la figura 10.5. esclavo. Tanto el maestro como el esclavo pue
den operar como transmisor o como receptor.
Una buena precaucin consiste en verificar La operacin del bus debe ser m anejada por el
si la escritura de la EEPROM ha sido correcta, maestro, quien genera la seal de reloj serial y las
para lo cual se suele restar el dato escrito con el condiciones de inicio de detencin.
que existe en el registro EEDATA. Si no se ha
producido error, el sealizador Z pasa a valer 1. Estas m em orias tienen un pin o term inal
llam ado SC L que recibe los pulsos generados
Memorias EEPROM seriales por el m aestro, y otro llam ado SDA que m a
La tecnologa de las memorias seriales ha surgi neja el flujo de datos bidireccionalm ente. Este
do como una solucin para sistemas que requie dispositivo no requiere de un pin habilitador,
ren bajo tamao y poca potencia. Entre sus prin ya que en este esquem a la transferencia de in
cipales ventajas se cuentan: form acin slo SE puede in iciar cuando el bus
est libre. C ada m em oria tiene su direccin de
Se pueden conectar fcilmente con micropro term inada m ediante los pines A 0, A l y A2; en
cesadores o microcontroladores, incluso algu una red slo responder la m em oria cuya d i
nos de ellos tienen pines dedicados a esa labor. reccin coincida con la direccin que va enca
Transferencia de datos de manera serial, lo que bezando la tram a de inform acin.
+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
comunicacin con la memoria, debe enviarle una tneam ente en una m em oria 24L C 01. En este
serie de bits que lleven la siguiente informacin: caso, los pines de la direccin se conectaron a
l.S e enva el b it de arranque tierra, al igual que el pin WP. La resistencia de
2. El cdigo 1010 (propio de estas memorias) 4 .7 Kohm conectada al pin SD A es necesaria
3. La direccin del dispositivo (A2, A l, A0) dado que dicho pin tiene salida de colector
4 . Un b it que indica que se desea escribir (0 ) en abierto. El disp lay se conecta al puerto A y el
la memoria pulsador al pin RBO, figuras 10.6 y 10.7.
D espus de esto, la m em oria debe enviar El programa lleva el control de la cuenta deci
un reconocim iento para inform arle al m icro mal y almacena en la memoria el mismo dato que
controlador que recibi la inform acin. D i se enva al display. El cdigo de este ejercicio est
cha seal, llam ad a ACK , consiste en poner el disponible en nuestra pgina en la internet, en el
bu s en un nivel bajo (lo hace la m em oria). enlace Curso prctico sobre microcontroladores.
D espus el m icrocontrolador debe en viar los
b its que corresponden a la posicin de m e
m oria que se quiere leer o escribir; nuevam en
te la m em oria enva un reconocim iento. El
paso sigu ien te depende de la operacin que
se vaya a ejecutar.
Ejemplo de aplicacin
En este ejem plo se har un contador de 0 a 9
con un interruptor pulsador y un display de sie
te segmentos, figura 10.6. El nmero que se Figura 10.7 Montaje del ejercicio
INTERRUPCIONES EN LOS
MICROCONTROLADORES PIC
U n a de las herram ientas ms tiles que
nos proporcionan los m icrocontrolado
res es la posibilidad de m anejar inte
rrupciones. Las tcnicas disponibles
para m anejarlas deben entenderse m uy
bien para poder aprovechar al m xim o
los recursos y po sib ilidades que nos
pueden brin dar estos dispositivos.
Una interrupcin es un evento que obliga a origina un estado de reset (o estado de volver a
un sistema procesador a desatender por un mo inicializar el sistema), el C on ta d or d e P rogra m a
m ento la accin que se encuentre ejecutando dirige la CPU a la direccin 000H ; un programa
dentro del desarrollo normal de un programa y que incluya interrupciones generalmente se es
llam ar a una su b ru tin a , la cual usualm ente se tructura como se muestra en la figura 11 .1 .
denom ina ru tin a o servicio de interrupcin.
ORG 000H
la lista es la siguiente:
Figura 11.1 Ubicacin norm al de la rutina de interrupcin
Figura 11.5 Diagrama de tiempos del comportamiento del microcontrolador frente a una interrupcin INT
Figura 11.6a Cdigo del ejemplo 1 FiQura 11.7 Configuracin del flanco que se va a leer p o r el p in INT
originada por un flanco de subida por el pin donde nos ubicam os en la direccin de la ru ti
na de interrupcin.
INT. La bandera asociada se activa al sigu ien
te ciclo Q y perm anece en ese estado hasta que
M ien tra s nos en co n tram o s ejecu tan d o
no sea borrada. Desde all hasta que el m icro
una ru tin a de in terru p ci n , el b it GIE ser
controlador llega a la direccin 0 0 0 4 H , han
desh ab ilitad o por lo cual no se atiende a n in
transcurrido de 3 a 4 ciclos de instruccin. El
gu n a otra in terrupcin hasta que no salgam os
b it GIE que estaba en alto (de lo contrario no
de esa ru tin a (esto puede ser una desventaja
se hubiera podido haber ledo la interrupcin)
ya q ue es posible que en un diseo especial
es puesto en bajo autom ticam ente por la CPU
deseem os esa caracterstica).
para evitar leer otras interrupciones m ientras
ejecutam os la actual. La m ejor m anera de en
En la ru tin a de in terrupcin , bloque D, el
tender el m anejo de las interrupciones es a tra
contador se increm enta y se visualiza en los
vs de un ejem plo.
diodos LED. En este caso se us una tcnica
un poco dispendiosa para activar o desactivar
Ejemplo de interrupcin externa
los b its ya que en el siguiente ejem plo se usar
El programa que observamos en la figura 11.6a,
el b it RB3 para otros propsitos.
cuenta el nmero de transiciones positivas en el
pin RBO/INT (pin 6) de un PIC16F84 y muestra
El b it bandera asociado con la in terrup
el resultado de la cuenta en cuatro diodos LED
cin externa se lim p ia para p erm itir que el
colocados en las salidas RB4 a RB7, figura 1 1.6b.
procesador se entere de que la peticin de in
En la parte A del programa se configura el puerto
terrup cin ha sido aten d id a. La instruccin
RBO/INT como entrada y los dems pines del
RETFIE hace varias cosas. Ella habilita de nue
puerto B como salidas. El bit INTDEG del regis
vo el b it GIE y configura el contador de pro
tro OPCION , figura 11.7, debe ponerse en uno
gram a a su antiguo valor (el que ten a antes de
para que la interrupcin externa ocurra en el flan
la in terrupcin ). El procesador entra en esta
co positivo de la seal en RBO, o ponerse en cero
do de SLEEP hasta que ocurra una nueva tran
para que la interrupcin ocurra en el flanco nega
sicin en el pin RBO/INT.
tivo de la seal.
El estado de SLEEP es una posibilidad que
Luego, el b it INTE se activa, bloque B del
brindan algunos microcontroladores, por el cual
programa. Cuando el procesador entra en estado
se entra a un modo de bajo consum o; este con
de reset, todas las banderas se lim pian autom ti
cepto lo estudiaremos en una leccin posterior.
camente; sin embargo, es m ejor ser precavidos y
ponerlas m anualm ente en cero (no todas las
Interrupciones por cambio en
marcas de microcontroladores ejecutan un reset un pin RB
tan lim pio como los de M icrochip).
El P IC 16F84, al igual que muchos otros, per
m ite establecer como fuente de interrupcin el
F in alm en te, el b it G IE se pone en uno
cam bio de nivel en algunos pines determ ina
p ara h a b ilita r las in terru p cio n es y lu ego el
dos. En el P IC 1 6 F 8 4 (al ig u al que en los
program a e n tra en m odo SLEEP, b lo q u e C
16C 554/556), la interrupcin se genera en los
del program a.
pines RB4, RB5, RB6 y RB7. Esta caractersti
ca puede usarse como una buena tcnica de aho
Al ocurrir la interrupcin, el contador de
rro en el consum o de potencia de un sistema.
program a se alm acena y la ejecucin del pro
El procesador se puede poner en reposo (en
gram a se direcciona a la posicin 0004 H , en
modo SLEEP) y se despierta slo cuando el
usuario cam bia el estado de alguna de esas en Problem a 1: a l d es a ctiv a r la s in ter r u p cio n es
tradas. El procesador entonces ejecuta d eterm i c m o a segu ra rse q u e rea lm en te lo estn?
nadas tareas y luego vuelve a reposo. Si tenemos un programa donde debemos atender las
interrupciones mientras se ejecutan varias tareas (TA-
El procedim iento general para activar este REA_1), pero no deseamos que se atiendan interrup
tipo de in terru p ci n es sim ilar al que se sigue ciones mientras se ejecutan otras tareas (TAREA_2),
cuando se va activar la del tim erO o la in te se puede pensar en el cdigo de la figura 11.8.
rrupcin externa (IN T ). Se debe activar al b it
RBIE del registro O P C IO N y luego activar De m anera inesperada fuim os in terru m
el b i t h a b ilita d o r glo b al de in terru p cio n es pidos m ientras ejecutbam os el cdigo de la
(GIE). La operacin in tern a del procesador, TAREA_2. Por alg u n a razn la in struccin
en este tipo de in terru p ci n , consiste en leer BCF IN T C O N ,G IE no est haciendo su tra
el n ib b le alto del puerto B y hacer una copia; bajo. Q ue pas entonces? ocurri una in te
la in terrupcin se genera cuando la lectu ra del rrupcin m ientras se estaba ejecutando BCF
n ib b le alto del puerto B difiere de esa copia. IN TCO N ,GIE?
D entro de la ru tin a de in terrup ci n es im
po rtan te que se lea el puerto B para ac tu a li C uando ocurre una in terrupcin, la in s
zar la copia. Para hacerlo, utilizam os las si truccin que se est ejecutando en el m om en
guien tes instrucciones: to term ina de cum plirse y luego el program a
se dirige a la direccin 0004F donde se en
BCF INTCON,RBIF cuentra la rutina.
MOVF PO RTB,W
A l ejecu tar RETFIE el program a reto r
Se observa que se lim pia la bandera de inte nar a la p rim era ln ea de TAREA_2 con las
rrupcin en RB, pero el estado del n ib b le alto in terru pcion es an h ab ilitad as. Por eso el b it
del puerto B an sigue siendo diferente a la anti GIE debe limpiarse, pero debido a que la eje
gua copia, por eso el procesador inm ediatam en cucin de la ru tin a de in terru p ci n causa que
te activar la bandera RBIF y se activar de nue d icho b it se ponga en uno, cuando ejecu ta
vo la interrupcin. Por esta razn el cdigo ante mos la ru tin a TA REA _2 las in terru pcion es
rior es incorrecto, la manera adecuada es as: an se encuentran h ab ilitad as. La solucin se
m uestra en la fig u ra 11.9.
MOVF PO RTB,W
LAZO:
BCF INTCON,RBIF
T A R E A . l:
BSF IN T C O N .G IE
Al ejecutar M OVF PO RTB,W , la antigua ;S E R E A L IZ A N TAREAS
copia del n ib b le alto toma el estado actual y lue ; ACEPTANDO IN T E R R U P C IO N E S
go se limpia la bandera. De esta manera, la si ; LA S TA R E A S VAN EN E S TA
; PARTE D E L PROGRAMA
guiente interrupcin ocurrir cuando el n ib b le BCF IN T C O N .G IE
alto del puerto B cambie de nuevo. ; AHORA SE D E S H A B IL IT A N TO DAS LAS
IN T E R R U P C IO N E S
Divisor de la
Entradas entrada Salidas
Pin de entrada
Temporizador/Contador F ig u ra 12.1 Esquema en bloques del TMRO
nos a las hojas de datos. Con un cero (0) en este valor d eterm inado por los bits 0, 1 y 2 del
b it el TMRO funciona como temporizador, y con registro O P C I N , que corresponden al va
un uno (1) funciona como contador. lor PSO, P S l y P S2, segn la tabla 1 2 .1 . La
cuen ta o la tem porizacin del TMRO puede
H ay que ten er en cuen ta que si el TMRO hacerse sin la in tervencin del prescalador;
se ha configurado como contador, l slo fun para hacerlo, debem os poner un uno (1) en
cio n ar con flancos, no con niveles; es decir, el b it 3 del registro O P C I N : PSA.
que slo contar las transiciones de cero a uno
(flanco de su b id a), o de uno a cero (flanco de Para tener una lectu ra confiable cuando
b a jad a ). Por esta razn se le debe d e cir al vam os a trab ajar con una seal de reloj exter
TM RO qu tran sici n querem os que cuente na, es m ejor ten er en cuenta las siguientes re
a travs del b it A del registro O PCI N deno com endaciones:
m inado TO SE ; poniendo este b it en cero (0),
el TMRO contar todos los flancos de subida 1. Si no se va a utilizar el prescalador, la entrada
y po nindolo en uno (1 ), el TMRO contar debe permanecer en alto (o en bajo) durante
todos los flancos de bajada. al menos dos (2) perodos de oscilacin del
reloj del microcontrolador (Tose).
Para m odificar los contenidos del registro
O P C I N , existen dos opciones: la prim era 2. Si se va a utilizar el prescalador, el periodo de en
consiste en ubicarnos en el banco correspon trada debe ser de al menos cuatro (4) Tose dividi-
diente, cargar W con el nm ero que llevaremos
0PCI0N
a O PCI N y pasar los contenidos de W a d i 3 2 1 0
cho registro m ediante la instruccin M O V W F
O P C IO N , luego se debe retornar al banco
in icial para co n tin u ar trabajando norm alm en Valor del
prescalador
te. La segunda no requiere m overnos de ban
co, sim p lem ente consiste en dar la in stru c | PS2 PS1 PSO D ivid ir por |
ci n especial O P T IO N , la cual m over in 0 0 0 2
m ediatam ente los contenidos que tengam os 0 0 1 4
en ese m om ento alm acenados en el registro 0 1 0 8
W al registro O PC I N . 0 1 1 16
1 0 0 32
La fuente de seal h acia el TMRO puede 1 0 1 64
'icrocontroladores C 107
L o s iL H U L Q i t a i i L - L H lh i la s LH C
En el m om ento del
de oscilador externo que ms se ajuste; en el pro
FF + desborde ocurre yecto Reloj Digital con PIC presente en este curso
u na Interrupcin
observaremos como se cre un intervalo exacto de
Cuenta hasta FF-N un segundo mediante un cristal de 1.87MHz.
El contador se El TMRO se carga con
increm enta desde - este va lo r (N) y desde La nica manera de no prescalar el tem pori
aqu aqu em pieza a co n ta r
zador es asignarlo al perro guardin ( w a tch d o g ).
Se carga el
Se trata de un registro de 8 bits que cumple con
TMRO con N una labor muy especfica (como veremos ms
00- adelante) al cual podemos asignar este factor de
divisin. Algunos autores mencionan que cuan
F ig u ra 12.2 Esquema del funcionamiento del TMRO do se asigna al TMRO funciona como prescala
dor y cuando se asigna al w atchdog funciona como
dos por el valor del prescalador, y los niveles altos postescalador. Sin embargo en muchas fuentes
y bajos deben ser mayores a lOns de duracin. bibliogrficas se conoce simplemente como pres
calador sin distinguir si hace el trabajo de p r e o
Si existe una operacin de escritura sobre de post. El manejo del w a tch d og lo analizaremos
el TIMERO, el increm ento se inhibe por los detenidam ente en una leccin posterior.
siguientes dos ciclos de instruccin. Esto pue
de com pensarse ajustando el nm ero cargado Veamos ahora algunas recomendaciones para
en el registro. el uso del TIMERO.
en el registro T2CO N . Los valores presentes en el cacin tambin depende del microcontrolador.
pre y postescalador se borran por tres razones funda En la figura 12.6 observamos un cdigo para
mentales: la escritura sobre TM R2, una escritura so inicializar el T M R 2.
bre T2CO N , o por un estado de reset, que cuando
ocurre, llena a PR2 con unos. El tim erl
El temporizador T im e rl es un mdulo de 16 bits
En la figura 1 2 .4 vemos el registro de con que se divide en dos registros de 8 bits (T M R l H y
trol del T M R 2; a ll podemos ver el b it 2 deno TMR1L), sobre los cuales se pueden ejecutar ope
m inado T M R 2 0 N con el cual activamos o des raciones de lectura y escritura. Este par de regis-
activam os el funcionam iento del temporizador,
los b its 3 al 6 que configuran el valor que va a
tener el postescalador y los bits 0 y 1 los cuales C LR F T 2 C 0 N DETENGO A L T M R 2 ,
establecern el valor del prescalador. Veamos PRESCALADOR = 1 : 1 ,
los pasos para configurar el modo de operacin PO STESCALADO R = 1 : 1
CLR F TMR2 BORRO R E G IS T R O TMR2
de este tem porizador; en la figura 12 .5 aprecia CLR F IN T C O N D E S H A B IL IT O
mos una tabla con todos los registros asociados IN T E R R U P C IO N E S
al m anejo del T M R 2. BSF S T A T U S , RPO S A LT O A L BANCO 1
C LR F P IE 1 D E S H A B IL IT O IN T E R R U P
En el registro T 2C O N debemos seleccionar C IO N E S DE MODULOS
el valor del pre y postescalador y la activacin del P E R IF E R IC O S .
BCF S T A T U S , RPO REGRESO A L BANCO 0
T M R 2. Para habilitar la interrupcin de este C LR F P I R l BORRO BANDERAS DE I N T .
m dulo debemos activar el t T M R 2 IE del re P E R IF E R IC A S .
gistro PIE 1; la ubicacin de este b it dentro del MOVLW 0 x 7 2 PO S TE S C A LA D O R = 1 : 1 5 ,
registro no siempre es la misma. PRESCALADOR = 1 :1 6
MOVWF T 2 C 0 N T IM E R 2 APAGADO
BSF T 2 C 0 N , TMR20N T IM E R 2 E M P IE Z A A
Depende de la referencia del microcontrola
IN C R EM EN TAR SE
dor que estemos usando, por eso es conveniente ESPERO_DESBORDE
verificarlo en las hojas de datos. BTFSS P I R l, TMR2IF HA O C U RR IDO UNA I N T E
R R U P C I N POR TM R 2?
Del registro de control de interrupciones GOTO E SPER O , DESBORDE ; N O , C O N TIN U O CON
IN TCO N debemos activar los bits 6 y 7 que co EL C IC L O .
rresponden al habilitador global (GIE) y al habi- SE HA DESBORDADO EL
T IM E R ?
litado r de interrupciones de otros perifricos BCF P I R l , TM R 2IF S I , BORRO L A BANDERA
(PEIE). La bandera indicadora de la aparicin Y C O N TIN O .
de esta interrupcin se encuentra dentro del re
gistro PIRl y se denom ina T M R2IF; cuya ubi- Figura 12.6 Cdigo para el manejo del TIMER2
TMR1 = Temporizador/
contador TMR1 = Modo captura TMR1 = Modo comparacin
16 - B its
Figura 12.7 Modos de funcionamiento del TIMER1
tros se incrementan desde OOOOH hasta FFFFH y sido cargado previam ente con algn valor.
al pasar por este ltimo valor, regresan a OOOOFL C uando los contenidos del TIM E R1 se incre
Al igual que el TimerO, el T im erl puede generar m entan y llegan a un valor igual al valor al
interrupcin por desborde, para lo cual requiere m acenado en dicho registro de com paracin,
que un b it de habilitacin, presente en el registro se produce una salida, que puede ser un cam
PIE, se encuentre activado. bio de nivel en el pin de salida del m dulo
CCP, una interrupcin o am bos, figura 12.7c.
El T im e rl puede ser em pleado de diferen
tes m aneras. En prim er lugar, lo podem os u ti La u tilizaci n del m dulo C C P perm ite
lizar de la m anera tp ica para leer los conteni leer el T IM E R l y alm acenar el resultado para
dos del registro T IM E R 1, en cualquier mo u tilizarlo posteriorm ente cuando se detecta
m ento del program a, figura 12.7a. un flanco de entrada externo, todo esto m ien
tras el m icrocontrolador est ocupado hacien
La segunda posibilidad que se tien e es la do otras tareas.
de capturar (grabar) los contenidos del regis
tro T M R 1 para ser recuperados en el m om en Con el m dulo C C P tam bin es posible
to en que un flanco sea ledo externam ente por m anejar un pin de salida cuando los contenidos
el m icrocontrolador, figura 12.7b . Los pulsos del TIMER1 se incrementan hasta un valor de
que entran al T M R 1 increm entan el contador. terminado, de manera totalmente independien
te de otras tareas que el microcontrolador se en
C uando un flanco llega por el pin CCP, cuentre ejecutando.
los contenidos son capturados y se activa una
bandera de interrupcin. El valor capturado Descripcin del TIMER1
se encuentra ahora disponible para ser ledo. En la figura 1 2 .8 apreciamos un diagram a ge
neral de la estructura del T M R 1 . Podemos no
Los contenidos del T M R 1 pueden com tar que la fuente de seal para el TIMER1 pue
pararse continuam ente con los contenidos de de ser una seal externa para aplicaciones de
un registro especial de com paracin, el cual ha cuenta, o los pulsos internos de reloj para apli-
B it 1 del re g is tr n CON
ito de
Twia
aUCl
PULSO INTERRUPCIONES
BCF T1C0N,TMR10N ; DETENCIN DEL BTFSC IN T C O N .G IE
; RELOJ DEL TMRl GOTO PULS01
CLRF TMR1H BSF T1C0N, TMON IN IC IA N LAS SEALES
CLRF TMR1L AL TM R l
CLRF CCPR1H MOVLW 101 CONFIGURAR SEGUNDO
MOVLW H0 1 COMPARADOR
MOVWF CCPR1L MOVWF CCPR1L
BCF CCP1CON,0 ; CONFIGURO PIN RC2/CCP1 BSF CCP1C0N LIM PIAR PIN RC1/CCP1
PARA COMPARACIN EN EL SEGUNDO
PULS01 COMPARADOR
BCF IN T C O N .G IE ;DESHABILITAMOS BSF IN TC O N .G IE HABILITAR NUEVAMENTE
MOMENTANEAMENTE LAS LAS INTERRUPCIONES
TRISC
nejo del m dulo CCP1 (H'87'l X X X X X 1 X X
El pin RC2/CCP1
en m odo de captura. El es una salida
TICON
tiem po entre dos flan (H 'l 0')
cos de entrada se deter- TMR10N 1: habilita entrada de conteo a TMR1
0: deshabilita entrada de conteo a TMR1
m in a h a c ie n d o dos CCP1CON |
(H17D)
capturas y restando el
tiem po que hubo entre
En cualquier caso, activando la bandera
am bas. Este m odo de CCP1IF en modo captura: CCPR1H (Rl'16 CCPR1L (H'15')
co seleccionado para el
pulso de entrada en el pin
RC2/CCP1, se limpia la
bandera CCP1IF. En este
momento se borra el b it 0
de C C P l CO N para con
fig u rar la cap tu ra del Interrupcin
en CPU
tiempo de ocurrencia del
flanco de bajada de la en
trada. Finalmente el re
gistro de 2 bytes CCPR1 Registro INTC0N
activa la interrupcin
se copia en dos posiciones CCP2IE
de memoria RAM . Cuan PIE 2
(H8D)
do ocurre la segunda in
terrupcin, el primer va Fig ura 13.5 Mdulo CCP2 en modo de captura
lor capturado se resta del
Voltios Ciclo til
nuevo valor capturado para proporcio
nar el ancho del pulso. Cuando la medi + 5 V
cin se ha culminado, se puede borrar el
Tiempo
b it CCP1IE del registro PIEl.
Periodo
1
Modo de PWM Periodo
En el modo de modulacin por ancho de (a) Forma de onda de la salida PWM
pulso (PWM), el pin CCPx produce una
salida PWM de 10 bits. Debido a que el pin Ancho de banda de la seal deseada
Mdulo C C P xC 0N <5:4>
CCP1 Registros de "(DCxB1:DCxB0)
ciclo til
CCPRxL
(D C xB9:DCxB2)
10
Pin CCP1 bajo
CCPRxH TRIS<Y>
(Esclavo)
p R2
SALIDA PWM
Mdulo CCP
Pin CCP1 alto Nota 1:
Igual borra TMR2 El tim er de 8 bits es concatenado
con 2 bits del prescalador para
crear la base de tiempo de 1 0 bits
Figura 14.2 Comunicacin en serie o serial Figura 14.4 Comunicacin bidireccional (full dplex)
Otro factor que se debe tener en cuenta en como un carcter, sin im portar que no sea la
las com unicaciones seriales es la velocidad de unidad final de la inform acin. El ejemplo ms
transmisin de los datos la cual se mide en bits clsico de este caso son los conversores A/D de
por segundo o baudios que es en realidad la ve 10, 12 o ms bits.
locidad con que cambian los estados de la seal
(de l a 0 o d e 0 a l ) . A esta velocidad se le llama Cuando se transmiten caracteres serialmen
generalmente rata de baudios ( Baud rate) o sim te, los bits que conforman cada carcter se envan
plemente rata. Por lo general, se utilizan ratas de manera secuencial, distribuidos en el tiempo.
con valores normalizados de 2400, 9600 y 19200 Cuando un dispositivo transmisor enva estos bits,
baudios. Esto es m uy im portante ya que en una el receptor debe estar en capacidad de:
comunicacin serial entre dos o ms elementos, D eterm inar el momento exacto en que de
se debe conocer la velocidad de transmisin de ben llegar.
los datos con el fin de que sta se logre. Reconocer cundo empieza y cundo termina
cada uno de los bits.
Para que dos equipos se com uniquen satis Reconocer cundo empieza y cundo termina
factoriamente, ambos deben m anejar un mismo la serie de bits que conforman el carcter.
conjunto de normas que indiquen los parme
tros y la m anera correcta de realizar la transm i Para facilitar el reconocimiento claro de todos
sin y la recepcin. Este conjunto de normas es los caracteres, se ha establecido un sistema de sin
lo que se conoce con el nombre de protocolo. cronizacin por medio de algunos bits de delimita
cin y separacin. Como ya lo mencionamos, exis
Cuando efectuamos una comunicacin serial, ten dos mtodos de delimitacin que definen los
los grupos de datos que se van a transmitir se de dos tipos bsicos de transmisin de datos: la trans
ben descomponer en bits los cuales son transmiti misin sincrnica y la transmisin no sincrnica.
dos uno por uno desde el emisor hasta el receptor
en donde se establece de nuevo el grupo original. Transmisin sincrnica
En este tipo de transmisin se asocia un pulso
Un carcter lo podemos definir como la de reloj con cada b it transm itido. En este caso se
unidad m nim a de inform acin com puesta de requieren dos lneas de comunicacin (usualmen
varios bits. El em isor puede generar unidades te cables), uno para los bits de datos y otro para
de informacin de ms de 8 bits, pero como un los pulsos de reloj.
m icrocontrolador PIC tiene una CPU de 8 bits,
las unidades de informacin deben dividirse en El receptor puede reconocer fcilmente los bits
varios segmentos de 8 bits para ser enviados por de datos debido a que ellos ocurren de manera si
separado. El dispositivo receptor se encarga de multnea con los pulsos de reloj, de esta manera
ensam blar de nuevo los segmentos para recu sabremos exactamente cuando leer los bits de datos
perar el mensaje original. Para propsitos de la correctos sin importar que la seal de reloj no man
transm isin, cada segmento de 8 bits se trata tenga una frecuencia estable, figura 14.5.
Reloj
Datos
Bits de carcter
Figura 14.5 Carcter serial sincrnico
Tiempo
Estructura del carcter-
Tiempo d e u n M
4 Estado ocupado
I " I
B it de datos
ter, el cual tam bin corresponde a un b it fun fica que deben ser 1,1/2 o 2 bits de parada como
dam ental para conform ar la estructura. m nim o y 5, 6, 7 u 8 bits de datos en el carcter.
El carcter de datos se transmite empezando por
Protocolo serial no sincrnico el b it menos significativo y a continuacin del
Este protocolo es utilizado por la m ayora de ltim o bit de datos del carcter puede haber (aun
los m dulos especializados para com unicacio que no es completamente necesario) un b it espe
nes (UART) que existen dentro de los m icro cial denominado b it de paridad.
controladores en com unicaciones seriales no
sincrnicas. La transm isin se describe en la El b it de paridad es un mtodo bsico para
fig u ra 14.7: caracteres transm itidos a in terva la deteccin de errores en la transmisin. La pa
los indeterm inados pero a una rata fija de b it ridad es una caracterstica definida sobre cada
(carcter no sincrnico, b it sincrnico). carcter de datos. Se determ ina por el nmero
de unos (1) lgicos en los datos. El primer paso
Segn este protocolo, el estado vaco de la trans es decidir si se va a trabajar con paridad par o
misin es un 1 lgico, y se le conoce como estado paridad impar. Para paridad im par el nmero de
de marca. El estado de ocupado es un 0 lgico y se unos en el carcter de datos debe ser impar. Esto
le denomina estado de espacio. Al bit de sincroni es, se cuenta el nmero de unos presentes en el
zacin se le llama b it de inicio y al bit de final de la carcter de datos y si la cuenta es impar entonces
estructura b it de parada. El b it de inicio es una el b it de paridad se pone en cero. Si el nmero de
transicin desde el estado de marca hacia el estado unos en el carcter de datos es par, entonces el
de espacio y el b it de parada es el estado de marca. b it de paridad se pone en uno para hacer el n
mero de unos de nuevo impar, figura 14.8. Igual
Slo puede existir un b it de inicio, pero pue metodologa se aplica para el caso contrario, es
den existir varios de parada. El protocolo especi- decir para paridad par.
Bits de datos y
bits de paridad {opcionales)
j Marca (1 lgico)
re Espacio (0 lgico)
B it LSB
B it de parada
B it de inicio
Figura 14.8 Formato del carcter
Interfaz Interfaz
RS-232 RS-232
9 pines (DB-9). De la misma manera, segn el Figura 14.12 Comunicacin serial por medio de un mdem
Com o estam os trabajando con com unica ASCII es un conjunto de caracteres codifi
ciones binarias, solo se han definido dos posi cados en 7 bits que cuenta con 95 caracteres im
bles estados para la seal: m arca y espacio. Una primibles y 33 no imprimibles. Los primeros in
m arca es un uno lgico y su seal de voltaje, cluyen letras minsculas, maysculas, los nm e
para que sea com prendida correctam ente, debe ros del 0 al 9, caracteres de puntuacin y otros.
estar en el rango de - 3 hasta 15 voltios.
Los segundos se denom inan caracteres de
Un espacio es un cero lgico y su voltaje debe control y sirven para m anejar la comunicacin.
estar entre +3 y +15V para que el receptor lo Los caracteres im prim ibles tambin se conocen
pueda leer adecuadamente. Si una seal se en como caracteres grficos o lebles por humanos y.
cuentra en el rango comprendido entre 3 y +3V son codificados desde $20 hasta $7E como se
se entiende como un estado indeterminado. muestra en la Tabla 14.3.
Nibble bajo
0 1 2 3 4 5 6 7 8 9 A B C D E F
0 NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI
1 DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US
2 ! ( *
SP # $ % & ( ) + / -
3 0 1 2 3 4 5 6 7 8 9 < r= > ?
4 @ A B C D E F G H I J K L M N 0
5 P Q R S T U V W X Y Z \ A
[ l
6 a b c d e f g h i j k I m n 0
7 P Q r s t u V w X
v z I } DEL
<
Tabla 14.3 Cdigo ASCII
a *
128 < @ m iK < IIT s , Curso prctico sobre Microcontroladores
Teora
Jum per de 1
DTE seleccin
(25 pin)
6 80 Q
10 D1
DTR 20 PA2 PB7
11
TD 2 PA1 PB6
3 9
RD PA3 PB5
12 A D 4 --
RTS PAO PB4 v a H i
GND PA4/T0CKI PB3
COM PB2 ^ w ^ S b - L -
' PB1 W v H |
INT/PBO
16C5X, 16F84
16C62X, 16C55X
Vdd
v ss +5V
MCLR
0SC1
10K
0SC2
IDI
22pF 4 = 4MHz 4 = 22pF i Reset
opcional
La mejor manera de aprender el manejo y el embargo, esas funciones se pueden desarrollar con
establecimiento de comunicaciones seriales con algunas lneas de cdigo. En muchas ocasiones,
microcontroladores es a travs de algunos ejem esta opcin representa una efectiva y econmica
plos bsicos. Ahora entraremos a analizar dos solucin, y por lo tanto debe ser considerada. El
casos tpicos sobre microcontroladores PIC de circuito de la figura 14.14 puede utilizarse con
18 pines: las comunicaciones H alf-D uplexy Full- muchos microcontroladores PIC d el 8 pines y el
Duplex. Daremos algunas rutinas bsicas genri objetivo siempre ser el de comunicarnos con una
cas que no estn ligadas a ningn microcontro computadora por medio de su puerto serial, que
lador en particular y que pueden ejecutarse so har las veces de equipo DTE y quien deber
bre la configuracin de circuitos mostrada en la estar ejecutando un programa term inal que per
figura 14.14. m ita monitorear todos los datos que transm ita o
reciba por este puerto.
Comunicacin no sincrnica en
microcontroladores Si el lector no tiene amplios conocimientos en
Como ya lo mencionamos, los microcontrola algn lenguaje de programacin, no hay problema:
dores ms pequeos no cuentan con mdulos Windows ofrece el programa hyperterm inal que lo
especializados de com unicacin (U ART). Sin podemos utilizar fcilmente.
B IT MOVLW D 3'
MOVWF CONTAB
ESTE SEGUNDO MDULO ENVA UN CARCTER DE 8 MOVLW D4 3
B IT S , 1 DE IN IC IO , 1 DE PARADA MOVWF CONTAA
S IN PARIDAD CALL RET
ENTRA: CARCTER A SER ENVIADO EN EL RETLW 0
REGISTRO REGTX Y PORTA,1 DEBE
ESTAR EN ALTO
Figura 14.15 Rutinas de recepcin y transmisin no sincrnica
i
contador de bits
1 2 3
Si No Activar bandera
8/sde
Bit de inicio B it de parada Contador
parada? de error en la
de bits = 0 ? estructura
LSB- MSB
Figura 14.16 Formato del carcter Si
4 No
Leer b it
Bandera 3 2 1
Disponibles L B it de
estructura
Error de Figura 14.18 Diagrama de flujo de la rutina de
F ig ura 14.17 Registro BANDERA
inicio recepcin no sincrnica
ms probable es que se trate sim plem ente de un A l detectar la presencia de un cero lgico
ruido que apareci en la lnea y en ese m om en en la lnea, se presume que se trata del b it de
to se activa el b it 1 de BANDERA. Si por algu inicio, se debe esperar un tiem po (1/2 bit) y de
na razn el b it de parada no llega en el m om en nuevo comprobar que ese nivel permanece en
to exacto que se esperaba, se genera una nueva la lnea; si la comprobacin no es exitosa se es
situacin de error y se activa el b it 0 de BAN tablece un estado de error en la transm isin,
DERA, figura 14.17. activndose el b it 1 de BANDERA. Si se ha
comprobado la llegada del b it de inicio, se es
La estructura del programa es la que se muestra pera el tiempo gastado por un b it para hacer la
en la figura 14.18. All podemos apreciar como ini prim era lectura; en este punto se ha esperado
cialmente entra en un ciclo de espera del cual no sale un tiem po de 11/, bits desde que se detect el
hasta que se ha detectado la llegada del primer bit. b it de inicio hasta que se ley el prim er bit. A
partir de ese momento se hacen 9 lecturas, cada
una separada por el tiempo gastado por un bit.
Si la novena lectura es un uno lgico se asume
una lectura correcta y el valor ledo se coloca en
el registro REGREC. Si el noveno b it no co
rresponde a un uno, se configura un estado de
error denom inado error en la estructura y se
activa el b i t 0 del registro BANDERA.
Transmisin Half-Duplex
Para desarrollar esta funcin se debe tener el
cuidado de m anejar la m ism a velocidad y for
m ato de los caracteres que los utilizados en la b its = 0 7
recepcin, pero en este caso no se han estable
cido banderas de error. Si
Enviar b it de
El dato que se va a enviar serialm ente debe parada
estar alm acenado en un registro denom inado
registro de transm isin. La transm isin debe
Espera un
empezar colocando un cero lgico por la lnea perodo de 1 b it
de salida que corresponde al b it de inicio, luego
espera el tiem po correspondiente a un b it para
que el tiempo de dicho b it sea el apropiado y a
partir de ese m omento se hacen ocho rotacio
Figura 14.20 Transmisin no sincrnica
nes (a travs del carry) del registro de transm i
sin, figura 14 .2 0. Aplicacin de las rutinas de recepcin
y de transmisin no sincrnicas
Cad a vez que se hace una ro tacin a la Estudiemos ahora una situacin en la cual sim-
derecha del registro de transm isin, cada uno plemente se recibe un byte carcter desde una
de los bits de datos em pieza a circu lar secuen- term inal (PC) y ese mismo carcter se enva de
cialm en te por el ca rry. De esta m anera solo nuevo hacia ella (es lo que se conoce como eco);
necesitam os chequear el estado de dicho b it para visualizar el proceso se puede utilizar el pro-
para saber el estado que debe tom ar la ln ea gram a hyperterm inal de W indow s 95/98. El
de transm isin en cada in stan te de tiem po, diagram a de flujo del ejercicio lo podemos apre
figura 1 4 .2 1 . ciar en la figura 14.22.
* PORTA
T R IS A
EQU
EQU
05
85
Fig ura 14.21 Estableciendo e l dato de la lnea de transmisin PORTB EQU 06
T R IS B EQU 86
BANDERA EQU 0C
CUENTA_CHAR EQU 1C
C U E N T A _ B IT EQU ID
CONTAA EQU 1E
CONTAB EQU 1F
CONTAC EQU 0D
CONTAD EQU 0F
REGREC EQU 10
REGTX EQU 11
ORG 0
IN IC IO
C LR F PORTA
BSF E S T A D O ,5 S A L T A A L BANCO 1
MOVLW B 0 0 0 0 1 1 1 1
MOVWF T R IS A
MOVLW 0 X 0 0
MOVWF T R IS B
BCF E S T A D O ,5 S A L T A A L BANCO 0
Figura 14.22 Ejercicio de comunicacin BSF P O R T A ,2 D E S A C T IV A DTR
BSF P O R T A ,1 SALE ESTADO DE MARCA
Cuando el sistema est listo para recibir un LAZO C LR F BANDERA
carcter, activa la lnea de D TR (D ata Term inal BCF P O R T A ,2 A C T IV A DTR
Ready); al recibir el dato, el microcontrolador C A LL R E C .A S IN C
BSF P O R T A ,2 D E S A C T IV A DTR
deshabilita la lnea D TR (PA2) y enva el mismo
C A LL B I T ESPERA UN PERICCO DE 1 B n
carcter hacia el term inal. D eshabilitar D TR
BTFSS B A N D E R A ,0 ERROR EN LA ESTRUCTURA?
equivale a decirle al terminal que no enve ms GOTO L A Z 0 1
caracteres porque el microcontrolador est ocu MOVLW 1 0 N A K
pado y no va a recibir ms datos porque ahora l MOVWF REGREC Y LO D EVUELVE
es quien va a transmitir. LAZ01 MOVF REGREC,W
MOVWF REGTX
C A LL T R A _ A S IN C
Este es un ejemplo muy sencillo de control GOTO LAZO
del flujo de la comunicacin en una transmisin IN C L U D E L I B 1 . GRP
Half-Duplex, si el microcontrolador recibe un bit END
de error en el registro bandera, retorna un carc- Figura 14.23 Cdigo fuente del ejercicio de comunicacin serial
T ie m p o de
1 /4 de b it
Recepcin
r Reconocimiento
del b it d in itio
(.ectpra (le
prirrter b it
L L ectura del
segund bit
(le dptos de c)ato$
Transmisin
.A lm a c e n a . A lm a c e n a
b it de inicio prim er b it de
datos
B IT BANDERA DE INDICACIN
0 R e c ib ie n d o ( B A N R E C E ) 1 a l r e c ib ir e l b it d e in ic io
0 a l r e c ib ir e l b it d e p a ra d a
1 ltim o b it ( B A N U L B ) 1 a l r e c ib ir e l lt im o b it de d a to s
0 a l r e c ib ir e l b it d e p a ra d a
2 E r r o r e n la e stru c tu ra (B A N E S T ) 1 s i n o se r e c ib i b it d e p a ra d a e n e l d c im o p e rio d o
0 p o r e l u s u a rio
3 N u e v o d a to re c ib id o ( B A N U D A ) 1 a l r e c ib ir e l b it d e p a ra d a
0 p o r e l u s u a rio
4 E r r o r e n la re c e p c i n ( B A N R E S ) 1 s i a l r e c ib ir e l lt im o b it de d a to s , la b a n d e ra n o se a c tiv
0 p o r e l u s u a rio
5 T r a n s m itie n d o ( B A N T X ) 1 a l in ic io d e l b it de in ic io
0 a l fin a l d e l b it d e p a ra d a
6 D a to s d e tra n s m is i n lis to s 1 p o r e l u s u a rio
(B A N D A T R ) 0 a l in ic io d e l b it de in ic io
7 T r a n s m is i n com p leta (B A N T X F ) 1 a l fin a l d e l b it d e p arada
0 p o r e l u s u a rio
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 prctico sobre Microcontroiadores G M B & H T F *. ( 1 3 9
iLlUliLLCCLQLl CL LgS l2liiULLLUCCiCLL!Lllj! S lH tiltS
L a ta r e a d e r e c e p c i n , figura 14.29, r e c ib e p e r a c in c o m i n i p e r i o d o s d e b i t a n te s d e le e r el
e l d a t o q u e lle g a y la s s e a le s q u e le i n d i c a n a l p r i m e r b i t d e d a t o s . L o s d e m s b it s d e d a t o s s o n
u s u a r io q u e h a lle g a d o u n c a r c t e r y q u e s e e n le d o s c a d a c u a r t o m i n i p e r i o d o d e b it .
c u e n t r a d is p o n i b l e p a r a s u u s o . D e s p u s d e d e
t e c t a r u n a c o n d i c i n d e b i t d e i n i c i o , la t a r e a e s - E s t a s u b r u t i n a r e c o n o c e y s e a liz a p o r m e
frec d io d e b a n d e ra s d o s tip o s d e e r r o r : s i e l d c i
m o b i t ( b i t d e p a r a d a ) n o se e n c u e n t r a e n e s t a
\ d o d e m a r c a (1 l g i c o ) , e n t o n c e s s e a c t i v a e l
No
Actual mente
recibiendo?
No
Bride inicio?
Si
X
Actualizar contador
de lazos X
T Reactivar bandera
* de recepcin
No
Bit listo? X
Inicializar contador
de bits
Inicializar contador
de lazos de
recepcin
No
stop?
Activar bandera X
n nrrnr nn lo Activar bandera de
oea error en la Si Inicializar contador ltimo bit
estructura de lazos
Borrar bandera
de recepcin T
Actualizar contador Si
X de bits Nuevo dato
recibido?
Borrar bandera
de ltimo bit
T No
1
Activar bandera de
T Si sobreflujo en Rx
8 J/fS?
Activar bandera de
nuevo dato recibido
I No
X
Retardo B Retardo D Retardo E Mover datos Retardo C Retardo A
recibidos al registro
de Rx del usuario
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 recepcin y el estado com unicacin con 8 bits de datos a 2.4 0 0 bps
y control de la transm isin, respectivam ente. (y un reloj de 4M H z) y en la figura 14 .3 4 se
m uestran los registros de control de in terru p
Los registros RCSTA, RXSTA y PIR1 infor ciones requeridos para configurar una interrup
man el estado de la comunicacin y los registros cin en la recepcin. F inalm ente, en la figura
RCREC y TXREC son los registros de datos de 1 4 .3 5 , se m uestran los bits de estado (bande
la recepcin y la transmisin, figura 14.32. ras) de la UART.
7 6 5 4 3 2 1 0
Los registros PIE1 e IN TCO N establecen PIE 1
el control de interrupciones en los casos donde
se utilicen estas tcnicas. I j x ie - Interrupcin de
transmisin habilitada
7 6 5 4 3 2 1 0 p r ir Interrupcin de
perifricos habilitada
TXREG
Gl:_ Habilitador global de
Registro de recepcin: Se escribr en este registro interrupciones
solo cuando TXIF est activado
Figura 14.34 Registros de control para activar una interrupcin
Figura 14.32 Registros de datos de la UART en la recepcin
1 0 7 6 2 1 0
TRISC
T RCSTA
7 6 5 4 3 2 1 0 FERR- Error en la
estructura
RCSTA
I ZT
CREN: Recepcin habilitada 7 6 3 2 1 0
R x 9-Recepcin en 8 bits TXSTA
SPEN- Puerto serial habilitado
7 6 3 1 0 trm t Registro de
transmicin vaco
TXSTA
7 6 5 4 3 2 1 0
TX9-*I
en 8 bits ^ BRGB:S S pSfe
Transmisin TXEN SYNC- Seleccin de m0(l0
habilitada ' no sincrnico Buffer de transmisin
TXIF- (TXREG) vaco
1 0 0 -^C u a n d o se cargan nuevos
SPBRG datos en TXREG
1 _ *Cuando se activa TXGN
CONTENIDO = FaS6C4 6(4R iy RCIE- Se activa si el B uffe rde recepcin
tiene por lo menos 1 BITE
Figura 14.33 Configuracin de los registros de control de la UART Fig ura 14.35 Registros de estado de la UART
\
i
Guardar contexto
No Registro de
Tx vaco?
Leer los
carcteres de
receptor
1
J
r
Carcter al registro
deTx Restaurar contexto
1
L
Figura 14.36 Transmisin con ia UART Figura 14.37 Servicio de interrupcin
A. *
144 <EM H W s. Curso prctico sobre Microcontroladores
UREC
El diagram a de flujo de la figura 14.38
i
Borrar
corresponde a una subrutina pertenecien
banderas del te al archivo COM.GRP, el cual podemos
usuario
incluir dentro de nuestro proyecto parti
l cular en cualquier m om ento, como se
Activar
bandera de mostrar a travs de un ejemplo. Esta su
byle
recibido
brutina trabaja con base en el carcter re
cibido en el registro de recepcin, para ase
gurarnos que el dato se lee correctamente,
como se explica a continuacin. Adicio
nalmente, la misma subrutina se encarga
de generar las banderas, tabla 14.3, las cua
les sealizan el funcionamiento del progra
ma principal. Todas las banderas de esta
tabla se encuentran ubicadas dentro del
registro BANREC.
El programa que se muestra en la figura 14.40 co Como se dijo al principio de esta leccin, una comu
rresponde a una porcin de un ejercicio con la nicacin serial sincrnica se caracteriza por transmitir
UART en el cual se desarrolla una comunicacin mldples bits de datos, donde cada bit transmitido se
Full-Duplex (por razones de espacio no se incluy asocia con un pulso de reloj transmitido por una lnea
en su totalidad, pero est disponible en nuestra p separada de la lnea de datos. La comunicacin sin
gina de la internet). En este caso se recibe un carc crnica puede o no tener bits de estructura y ellos pue
ter proveniente de un terminal y de nuevo se retor den o no, estar sincronizados con el reloj.
na el eco hacia el terminal. Este programa sirve para
demostrar la interfaz de software entre la UART y el La transmisin serial de datos distribuye los
programa de aplicacin. bits en el tiempo y el receptor debe estar en ca
pacidad de reconocer el momento en que em
El programa empieza enviando los caracteres pieza y el momento en que termina. Cuando se
ASCII de la palabra OK hacia el terminal. Desde tiene a disposicin una seal de reloj que se pue
ese momento, cualquier carcter recibido del ter da utilizar como referencia para ubicar de mane
minal es devuelto como un eco hacia ste. Si por ra precisa los bits de datos, ellos pueden tener
alguna razn en el carcter recibido se detecta un diversas duraciones, lo importante es que la l
error en su estructura, el microcontrolador retorna nea de reloj delim ita el b it exacto.
el cdigo ASCII SUB (1A) en lugar del carcter
recibido. Con ello, el terminal puede saber que hubo En la figura 14.41 se muestra un esquema
un error y puede tomar medidas al respecto, como de transmisin sincrnica en donde los ciclos de
por ejemplo, enviar de nuevo el dato. Si ha ocurri reloj juegan un papel fundamental. Los bits de
do un error de sobrepaso, los caracteres recibidos se datos empiezan a ser vlidos cada que ocurre un
devuelven pero junto con el carcter ASCII NAK flanco de subida de la seal de reloj y son ledos
(15). De esta manera, el terminal estara en capaci en el receptor cada que ocurre un flanco de baja
dad de determinar qu caracteres se perdieron y pro da de la misma seal. Podemos notar que la se
ceder a enviar los que se detectaron. al de reloj puede ser simtrica o asimtrica.
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 Cdigo fuente de la librera para comunicacin no sincrnica utilizando la UART
S. *
Curso prctico sobre Microcontroladores ( C M / K H T s . # 1 4 7
l i i u u a i i m L i ti L a s c u L u u i c t i L n u n a s sc - l-l u u s
M O VLW 080
; E JE R C IC IO DE C C M M C A C IC N E S F U LL DUPLEX CON UART
MOVW F ESTTX
M O VLW 019
R A D IX H E X
MOVWF s p b rg
L IS T P=16F873
BCF E S T A D O ,R P 0
o p tre g EQU 01
M O VLW 010
tr is a EQU 05
MOVW F ESTREC
tr is b EQU 06
BSF E S T R E C .s p e n
tr is e EQU 07
BSF E S T A D O ,R P 0
p ie l EQU 0c
BSF E S T T X ,T X E N
p ie 2 EQU 0d
BSF p ie l. R C IE
peon EQU 0e
BCF E S T A D O ,R P O
p r2 EQU 12
BSF IN T C O N ,p e ie
sspadd EQU 13
C LR F BANREC
s s p s ta t EQ U 14
BSF I N T C O N , g ie
ESTTX EQU 18 ; ESTADO DE L A TX
M O VLW OH
s p b rg EQU 19
MOVW F CATUS
r b if EQU 0
C ALL M M TX
M O VLW KAY
TEM PST EQU 0020
MOVW F CATUS
TEM PW EQU 0021
C ALL M M TX
BANREC EQU 0022; B A N D E R A DE RX
LAZO BTFSS B A N R E C ,N U B Y T E
REGI EQU 0023; REG 1 DE LA RX
G O TO LAZO
REG2 EQ U 0024; REG 2 DE LA RX
BCF B A N R E C ,N U B Y T E
CATUS EQU 0 0 2 6 ; CAR . DE T X DE USUARIO
BTFSS B A N R E C ,E R R E S T 1
NUBYTE EQU 0 ; BAM3ERA DE BYTE R E C IB ID O
G O TO LAZO l
DOSBYTE EQU 1 ; BCN. CE FE dP C K N CE 2 BiTES
M O VLW SUB
th re b y t EQU 2
MOVW F REGI
ERREST1 EQU 3
MOVF R E G l. w
ERREST2 EQU 4
MOVWF CATUS
ERSOB EQ U 6 ; ER R O R POR SO B R E P A S O
CALL M M TX
OH EQU 04 f
BTFSS B A N R E C ,D O S B Y T E
KAY EQU 04b
G O TO LAZO
SUB EQU O la ; CARACTER A S C II
BTFSS B A N R E C ,E R R E S T 2
NAK EQU 015
G O TO LAZ02
>
M O VLW SUB
o rg 0X00
MOVW F REG2
IN IC IO GOTO IN I
LA Z 02 MOVF R EG 2, w
dw 0072
MOVW F CATUS
dw 006c
C ALL M M TX
dw 0073
BTFSS B A N R E C ,E R S O B
G O TO S E R V .IN T
G O TO LAZO
IN I C LR F PORTA
M O VLW NAK
C LR F PO RTB
MOVWF CATUS
C LR F PORTC
CALL M M TX
BSF E S T A D O ,R P O
G O TO LAZO
M O VLW 0c0
MOVW F tr is e
IN C L U D E C O M .G R P
M O VLW 000
MOVW F tr is b
EN D
M O VLW 001
MOVW F tr is a
. *
148 M H C iT ,. Curso prctico sobre Microcontroiadores
Reloj
u._
Datos x
L. L L. L . L .
Reloj
n _
Datos
Datos vlidos
Cuando los bytes poseen una longitud fija, el D entro del bus sincrnico solo puede exis
receptor solo necesita contar bits empezando con tir un dispositivo que gobierne el funcionamien
el primero que recibe con el fin de delimitarlos. to y control de las com unicaciones en cada ins
Este tipo de transmisin es utilizada por un pro tante de tiem po; a este dispositivo se le deno
tocolo o bus denominado SPI. m ina el m aestro, los dems dispositivos se les
llam a esclavos. El maestro tiene como tareas
En algunos casos se u tilizan bits de acom in iciar y term inar la transm isin, generar las
p aam iento que conform an una estru ctu ra seales de reloj y direccionar (elegir) el disposi
que d elim ita los datos, com o en los buses I2C tivo esclavo con el que se va a comunicar.
y M icrow ire.
Dispositivos perifricos comunes en la
El bus I2C es m uy utilizado para conectar al comunicacin serial sincrnica
microcontrolador diversos perifricos que comple Por lo general los dispositivos seriales desarrollan
menten el sistema y poder cumplir con tareas ms una tarea perifrica especfica; los ms comunes son:
exigentes. Este bus permite incluir dentro de una
misma tarjeta un gran nmero de dispositivos se Dispositivos de memoria (RAM , EPROM)
riales sin que el hardw are deba complicarse dema Conversores A/D
siado y empleando pocas lneas para la conexin. Conversores D/A
Multiplexores
Relojes de tiempo real y calendarios
El com portam iento de todos los dispositivos Puertos I/O
que se conectan en el bus serial se rige por las Generadores de tono (DTMF y tonos musicales)
norm as d ictad as por el protocolo del bus. Manejadores de displays
C om o se dijo anteriorm ente, un protocolo es Funciones especficas (por lo general I2C)
un conjunto de norm as y procedim ientos ne
cesarios para asegurar transferencias de datos Estndares r io I'
licacin serial
exitosas. Este define el form ato de los b its de sincrnica
datos, la form a de la seal de reloj y las m ed i Dentro de la transmisin serial sincrnica se han
das de seguridad ante posibles errores en la establecido tres esquemas m uy representativos:
transm isin o prdidas en la inform acin. Philips desarroll el I2C {Inter I Q , M otorola el
SPI (S erial P eriph erical Interfac) y N ational Se El protocolo I2C es en realidad m uy sencillo; los
m iconductor lanz la interfaz M icrowire, figura datos son vlidos cuando la lnea de reloj est en
14.42. Partiendo de estos estndares muchas estado alto y slo pueden cambiar cuando la lnea
empresas han desarrollado circuitos integrados de reloj se encuentra en estado bajo.
adaptados para funcionar con estas tecnologas.
Solo un dispositivo
puede ser el maestro Figura 14.43 Configuracin tpica del bus FC
var el control de las operaciones. Para fac ili El inicio y la parada del proceso son seales
tar esta tarea, cada dispositivo dentro del bus de control generadas por el maestro; cada trans
posee una direccin n ica por m edio de la ferencia de informacin debe presentarse primero
cual el m aestro puede en tab lar una co m u n i con una condicin de INICIO, seguida de la
cacin precisa con ellos. Es de resaltar que direccin del esclavo, los bytes de datos y final
en el m ism o bus pueden existir varios d isp o mente una condicin de PARADA.
sitivos m aestros, pero no al m ism o tiem po.
Para evitar que se presenten colisiones por este La condicin de INICIO se define como
concepto, se debe poner en claro un pro cedi una transicin de alto a bajo en la lnea SDA,
m iento de arbitram ento. m ientras la lnea SCL se encuentra en alto; y
una condicin de PARADA se define como una
Especificaciones del bus l2C transicin de estado bajo a estado alto en la l
Las dos lnes del bus I2C : la de reloj (SC L) y la nea SDA, m ientras la lnea SC L se encuentra
de datos (SD A) son bidireccionales y se conec en alto, figura 14.44.
tan a una fuente de voltaje positiva a travs de
resistencias de p u ll-u p , de m anera que cuando Cada byte que se ponga en la lnea SDA debe
el bus est libre, ambas lneas se encuentran ser de 8 bits , pero se pueden transm itir todos los
en estado alto. Las velocidades que m aneja el bytes que se desee. Cada uno de ellos debe estar
bus I2C se encuentran en el rango de 0 hasta acompaado del b it de reconocimiento (ACK)
100 Kbits/segundo. generado en el receptor, el cual indica que el re
ceptor pudo leer y procesar el dato correctamen
La generacin de las seales de control es te, y cada uno se transmite empezando por el b it
responsabilidad del maestro. l genera la seal M SB. Los datos son vlidos durante el periodo
de reloj cuando la informacin es enviada hacia alto del reloj y pueden cambiar durante el perio
el bus, y cuando hay com unicacin entre dos do bajo del reloj.
dispositivos, se debe establecer una serie de con
diciones de reconocimiento entre ambos elemen La seal de A CK necesita de la seal de
tos, pero igualm ente sincronizadas con el reloj. reloj enviada desde el m aestro. Para confor
Para ello se utiliza un bit de reconocimiento de m ar esta seal, un a vez term inados los datos,
nominado ACK {acknoivledgm ent). el transm isor debe poner en alto la lnea SDA
y Reconocimiento
tra una transmisin P C donde el
dispositivo esclavo es una memo
ria EEPROM. La seal ACK ge
El SCL desde el nerada por el esclavo es lo que si
maestro
gue despus de la direccin del es
clavo y a partir de ella deben estar
Inicio J Pulso de reloj para los bytes de datos; luego va la seal
reconocimiento
ACK generada por el receptor.
Figura 14.44 Funcionamiento del bus PC
ry
Seal de reconocimiento
desde el receptor ACK
SDA A /T T y y y y y y
SCL
y y y a ^ j a j a j
L Inicio Reloj de ACK t _ Si el reloj permanece
bajo, la transferencia
t Reloj de ACK
se detiene
Figura 14.45 Transferencia de datos PC Parada
_ *
Curso prctico sobre Microcontroladores
Si en un momento dado se desea cam biar la com unicacin con el esclavo se term ina con
la direccin de los datos, se debe enviar de nue el envo de una seal de PARADA.
vo una condicin de IN ICIO y la direccin del
esclavo para establecer el cambio. Finalm ente El esquema mostrado en la figura 14.47 co
rresponde a un ejemplo concreto de una com u
nicacin por medio del bus I2C , entablada con
7 6 5 4 3 2 1 0
una memoria EEPROM, la cual es un dispositi
vo que puede enviar o recibir datos. De la mis
-------------------------- 1 I RW ma m anera este esquema se cumple para otros
Direccin del dispositivo 1 = Lectura dispositivos como visualizadores, decodificado-
0 = Escritura
res, controladores, etc. En la seccin de progra
macin analizaremos un ejemplo en el que, a tra
Fig ura 14.46 Formato de la direccin del esclavo vs del bus I2C , incorporamos una memoria se
rial a un sistema microcontrolado.
NO j ~ Parada
Inicio |
Direccin del esclavo A Byte de datos A
(desde el maestro) C (desde el esclavo) C
-i K r i K
X,-\>
Curso p r c tic o sobre M icro co n trola do re s W a 155
L i s cuiiviH m iUrS aid lu d u / d u iL es
Salida d igital
U na de las opciones ms u ti
lizadas para configurar el voltaje
de referencia para el convertidor,
es que ste corresponda al volta
je de alim en tacin del PIC. Para 256 256 256 256 256 256 256 256
hacer uso de esta opcin, debe
___________________________ Voltaje de entrada_________________________________
mos hacer algunas configuracio Voltaje de referencia
nes dentro del program a para
Figura 15.1 Funcin de transferencia del conversorA/D de los PIC
t *
156 Curso prctico sobre Microcontroladores
Entradas anlogas Slo para entradas Slo para l/O
l/O digitales anlogas digital
C>J CO
r*-
o
co
T O
co >.Jo
o
h* C o
Q- o.
S 'a
o 5
-S.
7 6 5 4 3 2 1 0
(ADRES) y dos de control (ADCONO y
ADCON1
AD CO N 1), figuras 15.3 y 15.4; el m
dulo A/D de 10 bits tiene cuatro regis
No establecidos tros asociados, dos para almacenar el dato
(ADRESH y ADRESL) y dos de control
7 6 5 4 3 2 1 0
TRISA (ADCONO y A D CO N 1).
(H '85 ')
1------- -------1 1 En algunos casos es ms aconsejable
1 1 -Entradas anlogas
utilizar una referencia de voltaje externa
_ 1: Entrada digital
" 0: Salida digital de 3,0 voltios para proporcionar una ma
1: Entrada anloga yor resolucin en la salida (para medicio
o digital
-------------No establecidos 0: Salida digital nes de voltajes anlogos por debajo de 3,0
voltios). Esto es especialmente llamativo
para mediciones de voltajes diferenciales.
TRISE
(H '8 4 ) La figura 15.5 m uestra la conexin
Deshabilitar funciones _ 1: Entrada anloga de una referencia de voltaje externa al
alternativas del puerto E o digital
0: Salida digital PIC y adicionalm ente, la configuracin
de los registros para su funcionam iento.
No establecidos
b it 7 b it 0 b it 7 b it 0
ADSC1.0: A/D Conversin Ciock Select selector del reloj U: Unimplemented No establecidas.
del convertidor
Estos bits se leen como ceros.
PCFG1,0: Configuracin de los pines RA0-RA3
00 fosc/2
01 fosc/8 PCFG1,0 RA0,RA1 RA2 RA3 V ref
10 fosc/32
11 fre
00 E. anlogas E. anloga E. anloga Vdd
01 E. anlogas E. anloga Referencia RA3
Res: Reservado
Este b it no se utiliza 10 E. anlogas E/S digital E/S digital Vdd
CHS1.0: Analog Channel S ele ct selector del canal 11 E/S digitales E/S digital E/S digital Vdd
anlogo
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 conversin del voltaje de en sos m ostrados en las figuras 15.2 y 15.5, en
trad a en el m om ento en que el in terru p to r se donde se configuran los registros A D C O N 1,
abre. Si el A/D se u tiliza para tom ar m uestras T R ISA y TRISE para seleccionar el voltaje de
en un solo canal a iguales intervalos de tiem referencia y los canales de entrada deseados.
po, se puede hacer uso de interrupciones.
Luego, se inicializa el registro ADCONO
m ediante los pasos que se m uestran en la fi
Para trabajar con el convertidor interno de los gura 15.7. El prim er paso es seleccionar la
microcontroladores PIC debemos seguir los pa- fuente de reloj del convertidor A/D entre cua-
7 6 5 4 3 2 1 0
Maunllip
lolegoxw ADCONO
WT- 0 0 0 0 0 1
(H 'l F')
Seleccin
del canal L Activar el ADC
-B it no establecido
.No iniciar an la
conversin
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 acin se activa, este m
Uno de los problem as m s com unes que se dulo en definitiva quedar habilitado y esto se pue
encuentran cuando depuramos un programa, es que de reflejar en problemas de funcionamiento de nues
el temporizador watchdog (W D T ) est habilitado tro dispositivo electrnico.
inadvertidam ente y el circuito program ado no hace
su trabajo adecuadam ente. El W D T se puede acti La p a la b ra d e c o n fig u ra c i n
var m ediante la configuracin establecida dentro Cuando se programa un microcontrolador PIC, den
del entorno de desarrollo, figura 16.3; tam bin se tro del cdigo se suele colocar la palabra de configura
puede hacer dentro del cdigo del program a por cin que corresponde a una tcnica que nos permite
m edio de la palabra de configuracin. Debemos configurar desde el programa los parmetros con que
va a funcionar el circuito; para hacer esta operacin se
puede colocar un nmero binario o ciertas etiquetas
r lp (* x t r hs r rc r ec habilitadas, como se muestra en la figura 16.4. Un
r IN T R C p ] r E X T R C (E R J ejemplo de esta configuracin la podemos observar
r IN T R C C lo c k o u f C E X T R C (ERJ C lo c k o u t en el proyecto Aviso luminoso con diodos LED pu
blicado en este curso. Para especificar los parmetros
C od e P io te c tio n
deseados se utiliza la directiva del ensamblador co n fig ;
O ff U p p e t 1/2 V D a ta EE M em ory
la cual permite especificar cada uno de estos bits den
C A I C U p p e t 3/4 f C alibration S p a ce
tro del cdigo del programa. Esta directiva hace una
B ro w n-o ut V o lta g e operacin A N D (& ) con cada una de las etiquetas de
25 r 2.7 r 4.2 r 4.5 la figura 16.4, por ejemplo:
-Enable
WaijchdoqTim
eii V M em ory P arity Error _ c o n f ig (_ X T _ O S C & _W D T_O FF &
P o w e t-u p Tim er F L o w VoH age Progcam _PW RTE _O FF & BO D EN O FF &
B ro w n-o ut R e s e l R7 Flash P rogram W rfte _C P_O FF)
R ster Clear R e s e t 1 In-C kcu D e b u g g e r
En la sintaxis de esta d irectiv a podem os ob
servar algunos caracteres u n d erlin e ( _ ) q ue se
F ig u ra 16.3 Parm etros de configuracin deben escribir o b ligato riam en te. C om o hemos
13 12 11 10 9 8 6 5 4 3 2 1 0
CONFIG
(H2 0 0 7 )
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
tos archivos IN C tam b in se en cu en tran todas B it 7 B it 0
las d efin icio n es de la p alab ra de co n figu raci n ,
lo que nos p erm ite u tilizar las etiq u etas en el D ire c c i n : 03h
m o m en to q u e vayam os a p ro gram arla. c o n d ic i n d e re set. 00077XXX
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 caractersticas princip ale s de ios m icrocontroladores M otorola de la fam ilia 68HC08
M *
170 Curso p r ctico sobre M icrocontroladores
Teora
ractersticas, red u cid o costo y fac ilid a d de p ro 5 ,5 V C C , ideal para la fabricacin de d isp o siti
g ram ac i n y d e p u rac i n p o r m edio de sus he vos porttiles.
rram ie n tas de desarro llo . Dos ripos de osciladores: con red R C o con
cristal de cuarzo externos.
En la ta b la 17.1 se m uestran de m an era re M em o ria FLASH para el usuario de 1.536
su m id a las p rin cip ales caractersticas de algu 4 .0 9 6 bytes, con estrategia de segu rid ad que
nos de los m icrocontroladores m s po pulares de d ificu lta la lectura o copia no auto rizad a de los
la fam ilia 6 8 H C 0 8 de M o toro la. datos contenidos en ella.
Memoria RAM con capacidad entre 128 y 512 bytes.
La fam ilia 68HC 08 Dos m dulos de tem porizacin de 16 b i t s c ada
Los m icrocontroladores M C 6 8 H C 9 0 8 JX X son uno (T IM A y T IM B ).
m iem b ros de la fam ilia 6 8 H C 0 8 de rango m e D oce canales, cada uno con convertidor an
d io , bajo costo y alto desem peo. Todos los m i logo/digital de 8 bits.
cro controladores de esta fam ilia poseen u n a pa Q uince lneas de entradas y salidas d igitales de
lab ra de un b y te (8 b its), y usan la m ism a u n i propsito general, dentro de las que se cuen
dad cen tral de procesam ien to conocida com o tan las in terrupcion es para el m anejo de tecla
C P U 0 8 . Las p rin cip ales caractersticas con las do con resistencias internas de p u ll-u p , los d ri-
q u e c u e n tan , y que son tpicas para la m ayora vers o am plificadores de corriente para diodos
de los m icrocontroladores de M o to ro la son: LED , las eneradas o salidas de drenador ab ier
to ( o p en -d ra in ) de 25m A cada una, las lneas
C P U 0 8 con arqu itectu ra Von N eum ann y bus para trab ajar en el m odo de captura (ICAP/
interno de 8M H z. O C A P ), la salid a del generador de P W M .
A m plio y com pleto co n ju n to de instrucciones Cuatro sistemas de proteccin para el cdigo del
(poseen m s de 90 in strucciones con funcio programa, que son: C O P (sistema de vigilancia
nes sim ples y especializadas). Watchdog), LVI (inhibidor de bajo voltaje), detec
C d igo de program a y tecn olo ga com patible tor de cdigo ilegal y detector de direccin ilegal.
con fam ilias de rango inferior, tales com o las Sistema maestro de restablecimiento (RESET) ac
M 6 8 0 5 , H C 0 5 y M 146805. tivo en nivel bajo, con resistencia interna de suje
D iseo C M O S con bajo consum o de potencia cin a Vdd, e interrupcin de restablecimiento a la
y con u n ran go de alim e n ta c i n e n tre 3 y conexin de la alimentacin PO R {power on reset).
Figura 17.1 Sum ario de las caractersticas 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 in se p u ede u sar com o RSP: X X X X X X X X I I 1 1 1 1 I I
uno de pro p sito gen eral para el a lm a c e n a
X: valor indeterminado
m ien to tem p o ral de d ato s; sin em b arg o se
F ig u ra 1 7.5 Registro ap u ntad or de la p ila de la CPU08
d eb e reco rdar q u e la C P U u sa su c o n ten id o
p a ra d e te rm in a r la d ire c c i n e fectiv a del
o p eran d o , y ad em s, te n e r p resen te que la
PARA SABER M S
p a rte a lta del registro se b o rra tras la acci n
M o v ilid a d d e la p ila (s ta c k )
d e restab lecim ien to o de r eset en el m ic ro
c o n tro lad o r (H = 0). En la a rq u ite c tu ra de los m ic ro c o n tro la d o re s
M o to ro la de las fa m ilia s 6 8 H C 0 8 y su p e rio re s,
Registro ndice (H:X)
la u b ic a c i n d e la pila no e s fija , e s a rb itra ria ,
815 14 13 12 11 10 9 8 ? 6 5 4 3 2 1 BitO
Lectura: |
y p u e d e re lo c a liz a rs e en c u a lq u ie r e s p a c io
Escritura:
d e n tro de la m e m o ria RAM . P ara e sto , solo
Reset. o o o o o o d o x x x x x x x x
b a sta g ra b a r el re g is tro a p u n ta d o r de la pila
X: valor indeterminado, no es afectado por el resel
SP co n una d ire c c i n de m e m o ria d ife re n te a
F ig u ra 17.4 Registro ndice de la CPU08 la de la p g in a 0 (0 0 0 0 a 00FF), q u e es el lu
g a r p o r d e fe c to en el q u e re s id e la p ila .
5. El reg istro a p u n ta d o r d e la p ila S P (sta ck
, fig u ra 1 7 .5 , es un reg istro d e 16
A u n q u e el d e s p la z a m ie n to y la u b ic a c i n de la
b its q u e c o n tien e en c u a lq u ie r in stan te la
p ila sea lib re p a ra el p ro g ra m a d o r, y a pesar
d irec c i n de la p r x im a p o sici n de 8 b its
d en tro de la p ila d el m icro co n tro lad o r. En de q u e el re g is tro SP e s de 16 b its, p a ra un
los m icro co n tro lad o res M o to ro la el reg is a d e cu a d o fu n c io n a m ie n to n u n c a se d e b e o l
tro SP se p u e d e u sar co m o e l n d ic e p ara v id a r qu e el a p u n ta d o r d e la p ila d e b e p e rm a
acced er a los d ato s tem p o rales d e n tro de la n e c e r d e n tro del rea de la m e m o ria RAM.
p ila , en dos m odos de d irec c io n am ie n to .
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 distribucin y asignacin defini y re g u la d o re s de v o lta je in te rn o s q u e p e r
da para cada uno de los p in es que ofrece el m icro m ite n a lim e n ta r lo s con fu e n te s m o n o p o la -
controlador para la interconexin del usuario con res q u e v a re n e n tre 3 y 5 V C C , es n e c esa rio
el m undo externo. q u e la fu e n te d e a lim e n ta c i n est p r o te g i
d a c o n tr a se a le s tr a n s ito r ia s d e v o lta je y
En la tab la 18.1 se describen de m anera re c o rr ie n te , y q u e la e n tra d a de a lim e n ta c i n
su m ida las principales caractersticas de cada uno d e l m ic ro c o n tro la d o r (e n tre los te rm in a le s
de los p in es de los m icrocontroladores 6 8 H C 9 0 8 , V D D y V S S ) sea p ro te g id a por m ed io de uno
en sus versiones JK 1 , JK 3 y JL 3 , y encapsulados o v a rio s c o n d e n sa d o re s no p o la riz a d o s para
en estructuras D IP de 2 0 y 28 p in es. a lta fre c u e n c ia .
N o m b re N ivel de
Pin D escripcin d el pin D ireccin
del pin voltaje
VDD E ntrad a d e a lim e n ta c i n p o s itiv a . E ntrad a 3V 5V
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 escripcin general de la s caractersticas, funciones y niveles de voltaje de lo s pines en los m icrocontroladores
M otorola de la fam ilia 68HC08.
VDD o
D urante la energizacin in icial, debido a la
C2 C1 - L excitacin de grandes cargas a travs de sus p uer
1-1 OjaF 0 ,1 |iF '
tos, al reset, o a la en trad a de seales transitorias
d e alta frecuencia (ru id o elctrico) provenientes
GND _ [ J
de fuentes externas, el m icrocontrolador d em an
d a u n a gran cantid ad de corriente de la fuente en
form a transitoria, que pueden daarlo u ocasio
N ota: (Los valores de los condensadores son tpicos)
C1 debe s e r un condensador no polarizado y para nar su m al funcionam iento.
alta frecuencia (cerm ico o de poliester).
C2 es un condensador opcional electroltico que se C olocando el conjunto de condensadores C 1
requiere cuando los puertos del m icrocontrolador
entregan toda su carga. y C 2 tal com o se m uestra en la fig u ra 1 8 .1 ,y lo
m s cerca posible de los p in e s de alim en tacin ,
F ig u ra 18.1 Filtrado externo de la entrada de alim entacin del
m icrocontrolador se crea un filtro pasa bajos sim ple q u e puede pro-
salida y se program a com o entrada. Figura 18.2 D efinicin de lo s re gistro s PTA y DDRA
/-A\ * *
180 ^ M IK IIT sa C urso p r c tic o s o b re M ic ro c o n tro ia d o re s
le e Lia
PTAx
Figura 18.4 C onfiguracin interna en bloques de l c ircu ito dei pue rto A
PTBx
Hacia el mdulo de
convertidores A/D
ADC8
LED
ADC9
A D C 10
,: 4.;-
A D C 1'
recciones, las caractersticas y las funcio
nes alternas propias del registro de datos
del puerto D (PT D ) y del registro de d i
TCH1 TCHO n reccin de datos D (D D R D ).
4 - 1 El puerto D tiene adem s otro regis
D ire c c i n d e l re g is tro D D R D: SOOQ 7 tro que nos perm ite h ab ilitar las resisten
B it 7 6 5 4 3 2 1 BitO cias p u ll-u p internas y los am plificadores
L e c tu ra :
DDRD7 DDRD6 DDRD5i DDRD4 DDRD3 DDRD2 DDRD1 D D R D o j de corriente de drenador abierto, asocia
E scritura:
dos con los term inales P T D 6 y P T D 7; es
Reset: a o 0 0 0 0 0 conocido com o el registro de control del
F ig u ra 1 8 .7 D efinicin de los registros PTD y DDRD puerto D (P D C R ). En la f i g u r a 18.8 se
m uestra este registro.
D ire c c i n del re g is tro PDC R:S0O0A
Bit 7 6 5 4 3 2 1 Bit 0
L e c tu ra :
En la fig u ra 1 8 .9 se ha d ib u jad o la
0 0 0
0 uo L l/ Ww U / auL U Wn U b nr l U wr l i r f I m
I U r u oJ co n figu raci n in tern a en b loq ues del c ir
E s c ritu ra : |
I 1 I cuito que corresponde al puerto D , a ll se
Reset: puede ver q ue, cu an d o el registro D D R -
b its h a b ilita d o re s del a m p lific a d o r d e c o rrie n te d e 2 5 m A
S LO W D x: D x est en uno l gico, la lectu ra de la d i
Bit en 1: habilita el amplificador reccin $ 0 0 0 3 se efecta sobre el registro
Bit en 0: desconecta el amplificador
PTD PU x: bits habilitadores de las resistencias pull-u p de PTD 6 y PTD7 de datos P T D x; pero cuando el registro
B it e n 1 : conecta la resistencia pult-up de 5k D D R D x est en cero l gico, la le c tu ra de
B it en 0: desconecta la resistencia pull-up
d ich a p o sici n corresponde con el nivel
F ig u ra 1 8 .8 D efinicin d e l registro de c o n tro l de pue rto D (PDCf) de v o ltaje presente en el term in al.
PTDx
PARA SABER MS
Programacin de puertos bidireccionales
Ya que todos los p in e s de los puertos de los m icrocontroladores M otorola pueden tra b a ja r com o entradas o
salidas program ables, es im portante saber que el registro de datos, de cu a lq u ie r puerto PTA, PTB o PTD,
puede se r e scrito o grabado con un nuevo dato en cu a lq u ie r m om ento y sin im p o rta r el estado de los bits de
co n tro l de los registros que definen la direccin de los datos en el puerto DDRA, DDRB y DDRD.
Por lo anterior, es im po rta n te que a la hora de d e sarro lla r la ru tin a de program acin de una ta re a que
involucre los puertos, el p ro g ra m a d or no olvide u b ica r p rim e ro las instrucciones o ru tinas que se escriben
sobre el registro de datos del puerto, antes de ca m b ia r los b its de control del registro de direccin de datos
de 0 a 1 {de en tra da a salida). De esta form a, se e vita que el puerto arroje datos no esperados durante el
ca m b io de direccin de en tra da a salida que puedan a fe c ta r el co m p o rta m ien to de los dispositivos p e rif ri
co s externos con a lta velocidad de respuesta.
Puerto A
PTAPUE DDRA PTA Configuracin Acceso al DDRA Acceso al PTA
(B it) (B it) (B it) del pin l/O Lectura o escritura Lectura Escritura
1 0 X Entrada de Vd q O) DDRA6a DDRAO Pin PTA6 a PTAO
0 0 X Entrada de Hi-Z DDRA6a DDRAO Pin PTA6 a PTAO'2'
X 1 X Salida DDRA6a DDRAO PTA6a PTAO PTA6a PTAO
( 1): el pin de en trada o salida se sujeta a V D D por m edio de la resistencia
interna de p u ll- u p
Puerto B
DDRB PTB Configuracin del Acceso al DDRB Acceso al PTB
(B it) (B it) pin l/O Lectura o escritura Lectura Escritura
0 X Entrada de Hi-Z DDRB7 a DDRBO Pin PTB [7:0](2>
1 X Salida DDRB7 a DDRBO Pin PTB[7:0]
Puerto D
DDRD PTD Configuracin Acceso al DDRD Acceso al PTD
(B it) (B it) del pin l/O Lectura o escritura Lectura Escritura
0 X Entrada de Hi-Z DDRD[7:0] Pin PTD[7:0]
1 X Salida DDRD[7:0] Pin PTD[7:0]
X: valor indefinido
Hi-Z: pin en alta im pedancia
(2): la escritura afecta al registro de datos, pero no afecta la entrada
F ig u ra 18.10 Resum en de todas las caractersticas y funciones definidas para lo s p uertos A, B y D
*
< M IK < IIT s . Curso prctico sobre M icrocontroladores
'/
/
EL OSCILADOR Y EL R E S E T , EN LOS
MICROCONTROLADORES HC08 DE
__________MOTOROLA ___
La ejecu ci n d e la secu en cia correcta d e las tareas p ro gram ad as
y la m a y o ra d e fu n cio n es q u e se llevan a cab o en los m d u lo s
in tern o s d el m icro co n tro lad o r, se d esarro llan d e acu erd o a cad a
u n o d e los p erio d o s d e la se al d e reloj g e n e rad a desde el m
d u lo del oscilador, a p a rtir d e co m p o n en tes externos.
El r e s e t es la se al q u e g o z a d e la m a y o r je ra rq u a d e n tro d el
c o n ju n to de in te rru p c io n e s d isp o n ib le s e n los m ic ro c o n tro
lad o res d e c u a lq u ie r fa m ilia , e lla le d e fin e al p ro g ra m a d o r u n
lu g a r p a ra e l in ic io d e la e je c u c i n d el c d ig o d el p ro g ram a.
*
Curso p rctico sobre M icrocontroladores e j i l O TTs*. 185
E l e s d l& ia i* y aL lv& L a i Las lu L a m e u L itiu L c i a la s UCQc d a W k t a u la
MDULO DEL
Desde el SIM OSCLADOR
20SC0UT OSCOUT t
I RCCLK
------- ' - J f l
MCU
En trm inos de estab ilidad y precisin, los R C ); por m edio de ella el m dulo del sistema
osciladores cu ya frecuencia de salida depende de de integracin SIM del m icrocontrolador, ha
una red con una resistencia y un condensador bilita o in hab ilita com pletam ente el funciona
(R C ), siem pre estarn sujetos a la calid ad de d i m iento de cualquiera de los osciladores.
cha red; en el m dulo del oscilador R C de esta
subfam ilia de m icrocontroladores se requiere que
los com ponentes externos sean de precisin (con Esta seal es la salid a de reloj del
tolerancia inferior o igual a 1% ) para obtener una m dulo oscilador con cristal y su periodo est
seal de reloj con una to leran cia del 10% o m e dado tp icam en te por la frecuencia nom inal
nos. La conexin de la red R C , con el m dulo del cristal de cuarzo (FV f.IV);
ALL K el ciclo de servi-
interno del oscilador, se hace a travs del term i ci de la seal depender de la calid ad y los
nal O S C l; m ientras que en el term in al O SC 2 parm etros de fabricacin del cristal, y no se
queda h ab ilitad o el puerto b id ireccio n al PTA6 o debe olvidar q ue su frecuencia y am p litu d se
d isponible la seal de salida de reloj del oscilador rn in estables d u ran te el breve periodo de
R CC LK . tiem po que dura el ciclo de arran q u e (sta rt-
up) del m icrocontrolador, a p artir de la co
En la fig u ra 1 9.2 se m uestra el circuito in nexin a la alim en tacin .
terno sim p lificado del m dulo del oscilador con
red R C externa, y la conexin l gica entre sus
partes. Esta es la se a l de sa lid a d el m
d u lo o sc ila d o r R C y su fre c u e n c ia y e sta
En la tabla 19.1 se resume el com portam iento b ilid a d son d ire c ta m e n te p ro p o rcio n a le s a
de los term inales disponibles en el m icrocontrola la c o n stan te de tiem p o d e la red e x tern a
dor para la configuracin del m dulo del oscilador. R C , y a la p rec isi n y c a lid a d de sus co m
p o n en tes re sp ec tiv a m e n te .
S eales de reloj internas
En las figuras 19.1 y 19.2 se pueden ver tam bin sta es la
las princip ales seales que intervienen y se o rig i m ism a seal de salid a X T A L C L K R C C L K
nan en cada m dulo oscilador, y que son usadas de los m d u lo s oscilad o res co rresp o n d ien
por la C P U , el bus interno, el S IM (system in te tes, y es en viad a a travs de un b u ffe r h acia el
g r a r o n m o d u le ), y otros m dulos internos du m d u lo in tern o d el sistem a de in tegraci n
rante su operacin; stas son: (S IM ), a ll se usa p ara c alc u la r los ciclos de
tiem po que d eterm in an el co m p o rtam ien to
d el m d u lo de v ig ila n c ia C O P (C om pu ter
Esta seal cum ple la m ism a fun o p e r a tin g p r o p e r ly ) .
cin en los dos m dulos osciladores (XTAL y
Esta se
al se obtiene a p artir d e un bloque que re
Tipo de
F uncin del pin 0SC2 cibe y d ivid e por dos la frecuencia de la se
o scila d o r al 2 0 S C 0 U T , y se enva al m dulo SIM
Oscilador con XTAL Seal 0SC1 invertida para que ste la d istrib u ya entre los dem s
Oscilador con RC Controlado por el b it PTAEN del registro m dulos internos que la requieran dentro
PTAPUER ($0D) del m icrocontrolador. Para obtener la seal
PTA6EN = 0: salida RCCLK
del reloj, usada por el bus interno de la C P U ,
PTA6EN = 1: Lnea de puerto PTA6
el m dulo SIM divide nuevam ente por dos
Tabla 19.1 C onfiguracin y funciones asignadas a lo s pines d e l
o scilador en los m icrocontroladores 68HC08 esta seal, con lo que se d eterm in a que la
* *
188 < iM ib z in r Curso p rctico sobre M icrocontroladores
Teora .y
frecuencia del reloj del bus interno de la C P U La tabla 19.2 es un sum ario de las m agnitu
(Fop) sea siem pre la cuarta parte de la fre des tpicas q ue se deben considerar a la hora de
cuencia de la seal del oscilador R C o XTAL configurar los mdulos de oscilacin de los m i
(X TA LCLK R C C L K ). crocontroladores M otorola 6 8 H C 0 8 y 68H RC08;
la tabla se m uestra para los dos voltajes nom inales
C a ra c te rs tic a s e l c tric a s d e lo s d e alim entacin estandarizados: 5 y 3 V C C .
m d u lo s o s c ila d o re s
A unque los m icrocontroladores M otorola cuen Para calcu lar los com ponentes externos de
tan con una am plia tolerancia para el voltaje de la red R C , se recom ienda usar un condensador
alim entacin (entre 3 y 5V ), esto no quiere decir externo de lOpF con b aja tolerancia, elegir una
q ue m uchas de sus caractersticas elctricas fun frecuencia, y calcular la resistencia por m edio de
dam entales para su operacin no sean afectadas u n a de las dos curvas que se m uestran en la figu
con ios cam bios, tal com o sucede con la frecuen ra 1 9 .3 : en la figura se m uestran las curvas de
cia en el m dulo oscilador. resistencia contra frecuencia, q ue corresponden
con dos niveles de alim en taci n tpicos, a ll se
La frecuencia de op eracin de todas las seales puede ver con claridad la influencia del voltaje
d e reloj m an ejad as por el m icrocontrolador, es de alim en taci n en la frecuencia del reloj.
esp ecialm en te afectada p o r los cam bios en la
m agnitud de la tensin de alim en taci n , e ig u al El f E S E T e n lo s m ic ro c o n tro la d o re s
m en te, el consum o total de co rrien te de ste M o to ro la 6 8 H C 0 8
do) es funcin d irecta de la frecuencia de ope D entro de la gam a de interrupciones internas y
raci n que se elija. externas, el r e s e to in terrupcin de in icializacin
M nim o Tpico M xim o
C aractersticas S m bolo Unidad
3V 5V 3V 5V 3V 5V
Resistencia de realimentacin rb - - 10 10 - MQ
Tabla 19.2 C aractersticas y especificaciones de com ponentes externos para lo s m dulos osciladores de los m icrocontroladores
68HC08 y 68HRC08.
*
Curso p rctico sobre M icrocontroladores < J M IK I/W .a. 189
Lil c s c O d iu - y e l lh i Lat LiiLaLaaal i a L a a L a a l i L d ll- li'u m u -u l'
w 14'
12
10 \ Tem peratura 25C
O
cc
cc .\
CEXT = 10 PF
------------ Con Vnn = 5V
o
O
3 6
=i
\ Co i V dd = 3V ; rext MCU
0SC1
a CEXT
<
o
10 20 30 40 50
R e s is te n c ia , R ^ x t ( k i* )
F ig u ra 19.3 Curvas d e resistencia externa contra frecuencia d e l oscilador RC, p ara e l clculo de fe x t
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
ORGANIZACIN DE LA MEMORIA EN
LOS MICROCONTROLADORES HC08
________ DE MOTOROLA
E n e s ta o c a si n se e s tu d ia r e l m a p a d e m e m o r ia d e los
m ic r o c o n tr o la d o r e s M o to r o la d e la f a m ilia 6 8 H ( R ) C 0 8 .
E n l, se m u e s tr a la d is t r ib u c i n d e la m e m o r ia d is p o n i
b le y d ir e c c io n a b le la c u a l e s t c o n f o r m a d a p o r la m e m o
r ia d e d a to s R A M , la d e p r o g r a m a c i n R O M , y e l re a d e
m e m o r ia R O M d e l p r o g r a m a m o n ito r.
MAPA DE LA MEMORIA
$0000 Registros l/O
64 bytes
S003F
$0040 Reservados por la CPU
f 64 bytes
S007F
$00 80 RAM
128 bytes
SOOFF
$0100 Sin establecer $0100
601 60 bytes Sin establecer
I 607 20 bytes
SEBFF SF5FF
SECOO ROM del usuario ROM del usuario SF600
MC68H(R)C08JL3/JK3 MC68H(R)C08JK1
4 09 6 bytes I
SFBFF 1536 bytes SFBFF
SFCOO ROM del m onitor F ig u ra 20.1 D istribucin d e l rea de la m em oria en los
512 bytes m icrocontroladores 68H(R)C08JK 1/JK3/JL3
SFDFF
SFEOO Registro de estado del break (BSR)
SFE01 Registro de estado del re s e t{RSR) controladores 68H (R)C 08JL3/JK 3, y de 1.536
SFE02 Reservado (UBAR) b ytese n los microcontroladores 68H (R )C 08JK 1.
Registro de banderas de control del >re,a/c (BFCR)
2. El lugar para los 128 b ytes de m em oria de d a
SFE03
tos R A M disponible en las dos subfam ilias de
SFE04 Primer registro de estados de la interrupcin (INT1)
m icrocontroladores JK y JL .
SFE05 Segundo registro de estados de la interrupcin (INT2)
3. El rea de m em oria asignada para la tabla de
SFE06 Tercer registro de estados de la interrupcin (INT3)
vectores definidos por el program ador, la cual
SFE07 Reservado por la CPU
se com pone de 4 8 bytes.
SFE08 Reservado por la CPU
Reservado por la CPU
4. El espacio de memoria de solo lectura (RO M ), dis
SFE09
tribuidos en dos reas de 512 y 448 bytes cada una.
SFEOA Reservado por la CPU
SFEOB Reservado por la CPU
Asignacin de registros dentro del rea
SFEOC Registro de direccin del break alto (BRKH)
de m em oria
SFEOD Registro de direccin del break bajo <RRKL)
El conocim iento del propsito, la ubicacin exac
SFEOE Registro de estado y control del break (BRKSCR)
ta, la disposicin y la funcin definida para cada
SFEOF Reservado por la CPU uno de los bits que conforman los registros de da
SFE10 ROM del monitor tos, control o estado del microcontrolador, se de
44 8 bytes
SFECF ben tener presentes para controlar y supervisar co
SFFDO Vectores del usuario rrectamente todas las funciones programadas en l.
i 48 bytes
SFFFF
En la figura 2 0 .2 se muestra en detalle la distri
O rganizacin de la m em oria bucin y asignacin que se le ha dado al espacio de
La C P U 0 8 de esta fam ilia de m icrocontrolado memoria direccionable por el microcontrolador, con
res posee un bus de direcciones de 16 bits con el tenido entre las direcciones $0000 y $003F; en l se
que se pueden acceder basta 6 4 K b ytes del rea de encuentran contenidos la gran m ayora de registros
la m em oria. El m apa de la m em oria que se pue de control, de estado y de datos. Adicionalmente,
de apreciar en la fig u ra 2 0 .1 , m uestra su o rgan i algunos registros reservados por la C P U y de prop
zacin, y en l se in cluyen las siguientes reas: sito especial, se han ubicado en las ltimas 16 posi
ciones de memoria localizadas entre SFEOO y $FEOE
1. El espacio de m em oria R O M disponible para el y la ltim a posicin SFFFF que corresponde al
usuario, que es de 4.0 9 6 bytes para los micro- registro de control del C O P (C O P C T L ).
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 direccin de datos A r ---------------- D D R A 6 DDRA5 DDRA4 DDRA3 DDRA2 DDRA1 DDRAO
(D O R A ) Escn1ura: H d
Reset: 0
$0005 Registro de direccin de datos B Lec,ura: DDRB7 DDRB6 DDRB5 DDRB4 DDRB3 DDRB2 DD R B1 DDRBO
(DDRB) Escritura:
Reset: o
Lectura:
$0007 Registro de direccin de datos D DDRD7 D0R D 6 DDRD5 DDRD4 D 0R D 3 DDRD2 DDRD1 DDRDO
Esentura:
(DDRD)
Reset:
$0008
I Sin establecer
$0009
Lectura: 0 I 0
SOOOA Registro de control del puerto D _ SL0W D 7 S L0W D 6 PTDPU7 P TD P U 6
(PDCR) Escrrtura:l
Reset: 0 O
S000B Lectura:
Sin establecer
Escritura:
SOOOC
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 configuracin 2 IRQPUD R R LVIT1 LVITO R R R
Escritura:
(C0NFIG2)*
Reset: 0 0 0 0** 0 '* 0 0 0
Lectura
$001F Registro de configuracin 1 COPRS R R LVID R SSREC STOP COPD
Escritura:
(CONFIG1)*
0 0 0 0 0 0 0 0
por medio del reset a la conexin (POR) las interrupciones LVITI y LVtTO se colocan en 0 lgico
Lectura: TOF 0
$0020 Registro de estado y control del TIM TOIE TSTOP PS2 PS1 PSO
(TSC)
Escritura: 0 TRST
0 0 1 0 0 0 0 0
| B it 15 | Bit 13 j Bit A2 | B ittO | Bit 9 | Bit 8 |
$0021 Registro alto del contador del TIM Escritura:
(TCNTH) i s y
0 0 0 0 0 0 0 0
^ B i,3 j B it 2 j r j o _ |
$00 22 Registro bajo del contador del TIM Escritura: g g
(TCNTL) E S
0 0 0 0 0 0 0 0
$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 despus 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 lgico 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 direccin del b rea k alto Bit 15 B it 1 4 Bit 1 3 Bit 1 2 Bit 11 B it 1 0 Bit 9 Bit 8
Escritura:
\RDRnKi\Hn1;
Reset: 0 0 0 0 0 0 0 0
Lectura:
B it 7 Bit 6 B it 5 Bit 4 Bit 3 Bit 2 B itt BitO
c/>
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 Localizacin y asignacin de los registros y bits de control, estado y datos, que conform an e l m apa d e la m em oria de los
m icrocontroladores 68H(R)C08JK 1/JK3/JL3
Interruptor de
(Nota 2) V d d + v HI reset
-
RST
RQ
VDD
VSS
0SC1
0SC2
HC08JL3
HC08JK1
HC8JK3
PTB3
PTB0
NOTAS:
1. Con SW1 en posicin A. el reloj del bus es igual
al reloj del oscila dor d ividido por cuatro. PTB1
Con SW1 en p o sicin B, e l re lo j de l bus es
igual al reloj del oscilador d ividido por dos. PT82
2. VH| es aproxim adam ente igual a VDD.
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
DIRECCIN I DIRECCIN
o n m u ta d o re s
d e l bus
r
FUENTE BASE I DESTINO BASE
r
BUS INTERNO DE L A CPU DE DATOS Y DIRECCIONES
*
Bus de 16 bits REGISTROS MULTIPLES REGISTROS, UNO
Bus de 8 b its POR CANAL POR CADA CANAL DMA
Lneas de control
DIRECCIN BASE
DE LA FUENTE
DIRECCIN BASE
DEL DESTINO
DIRECCIN DE
TRANSFERENCIA
BUS INTERNO DE
LA CPU
)l ado del
Las caractersticas principales con que cuen ta el
m dulo D M A 08 son: Para describir el conjunto de registros de control y
estado que hacen parte de la configuracin y el
1. A rq u ite c tu ra m o d u la r y e x p a n s ib le p o r el control del m dulo D M A , se har referencia slo
fa b ric a n te , h a sta sie te c a n a le s in d e p e n al canal 0, ya que las funciones y el m odo de ope
d ie n te s. racin de todos los canales son iguales e indepen
2. R ata m xim a de transferencia de datos igual dientes. Estos son:
a 4 M bytes/sec. C o n la frecuencia del bus in
terno igual a 8 M H z, se transfiere un byte
cada dos ciclos de bus. Este registro se usa p ara h a b ilita r in d iv id tia l-
3. Registros separados de direcciones base para m en te c ad a c an a l, la in te rru p c i n d el D M A
la fuente y el destino, de 16 bits cada uno. p ara la C P U , y el p o rc en taje d el bu s in tern o
4. C apacidad de transferencia de un b yte (8 bits), que se va a c o m p a rtir en tre el D M A y la C P U .
o una palabra (1 6 bits). (F ig u ra 2 1 .4 )
DC1 $ xx x x
B it 7 6 B it O
0: Inhabilita la interrupcin del canal O
Lectura:
BB1 BBO TECO IEC0
Escritura:
R eset: 0 0 0 0 0 0 0
B it LO (b it h ab ilitad o r del m odo de transferencia 4. Registro de control del canal 0 del D M A (DOC)
cclica del canal 0) Por medio de los cuatro bits SD C 3 a SD C 0 de este
1: H ab ilita el m odo cclico, y registro, se calculan las direcciones base de la fuente y
0: H abilita el modo bloque (inhabilita el modo del destino para el canal 0. Por medio de l, tambin se
cclico) configura un b yte o una palabra para la transferencia
B it D M A W E (habilitador del D M A d u ran te el de datos, se definen las fuentes para la solicitud del
m odo W A IT) DM A, y se controla el desplazamiento del registro de
1: Transferencia h ab ilitada, y direcciones temporal que el D M A usa como apunta
0: Transferencia suspendida dor del bloque. (Figura 2 1.7 y Tabla 21.1 y 21.2)
B it IFCO (bandera de interrupcin d el canal 0)
1: Transferencia com pleta, y B it B W C ( b it d e control de la lo n gitu d del dato
0: Transferencia incom pleta transferido)
1: El D M A transfiere datos de 16 bits, y
0 : El D M A transfiere datos de 8 bits
Este registro se usa para configurar las DOC $ xx x x
fuentes y el com ienzo de la transferen
cia (F igu ra 2 1 .6 ) B it 7 6 5 4 3 2 1 B it 0
Lectura:
b its S W I 7 a S W I 0 (h a b ilita d o re s por Escritura:
SDC3 SDC2 SDC1 SDC0 BW C DTS2 DTS1 DTSO
0001 E s t tic o D e c re m e n to
8. Registro con tad or de bytes transferidos, del
0000 E s t tic o E s t t ic o canal 0 (DOBC)
T abla 2 1 .2 B its de co n tro l de direcciones base d e l DMA D uran te el proceso de transferencia del D M A ,
en el contenido del registro contador de 8 bits
DOSH Sxxxx DOBC se lleva la cuenta de nm ero de da
Bit 7 6 5 4 3 2 1 B /0 tos de un b y te q ue se han transferido a tra
Lectura:
AD15 AD14 A D13 AD12 AD11 AD10 AD9 AD8
vs del canal 0.
Escritura:
A * .
Curso p r ctico sobre M icrocontroladores iM ,IfK H T T s . ? 211
D ireccionam iento CDIGO DE
ETIQUETA M NEM NICO DE OPERANDO
indexado, sin M Q UINA LA OPERACIN OPERANDO COMENTARIOS
F ig u ra 2 1 .1 8 Ejem plo d e l m odo de direccin am iento indexado con o ffset de 16 bits D ireccio n am ien to del SP,
con d e sp la za m ien to de
lab ra form ada por los dos bytes dor de la p ila con o ffs e t de 8
16 b its
q ue sigu en al c digo de o p era bits. Este m odo de d ire c c io n a
La fam ilia del M C U 6 8 H C 0 8
ci n para en co n trar la d irec m ien to sobre el SP nos p e rm i
tiene disponibles 14 instruccio
ci n efectiva d e l operando. te m o v im ien to s g ile s d entro
nes para el direccionam iento del
de 2 5 6 p o sicio n es de la p ila,
SP con o ffset de 16 bits.
En este d irec c io n am ie n to la C P U e n c u e n tra la d irecci n
in d ex ad o con o ffs e t de 1 6 bits, efectiva del o p eran d o al sum ar
Todas las instrucciones en
las in stru c cio n e s se usan de la el registro SP de 16 b its co n el
este m odo son de cuatro b ytes y
m ism a fo rm a q u e en el d ire c b y te q u e sigu e al o p erand o.
se usan para acceder a datos de
c io n am ie n to an terio r, p ara lo
la p ila u bicad o s en c u a lq u ie r
c aliz ar y c ap tu rar datos d e n En e ste m o d o e l SP se
rea de m em oria; en este caso
tro de u n a ta b la , pero, en este pu ede u sar com o otro registro
la C P U sum a el contenido del
caso, con m o v ilid a d en todos n d ic e de la C P U , siem p re y
SP con los dos bytes que prece
los 6 4 K bytes de m em o ria. cu an d o las in terru p c io n es es
den al cdigo de operacin, para
tn in h ab ilitad a s.
d eterm in ar la direccin efecti
E n la f ig u r a 2 1 .1 8 se
va del operando.
m uestra com o ejem p lo u n a l En la f i g u r a 2 1 . 1 9 se
nea de cdigo de program a que m u e stra u n e je m p lo d e c d i
En la f i g u r a 2 1 . 2 0 se
ilu stra el m odo de d ireccio n a go de p ro g ram a q u e ilu stra el
m uestra un program a de ejem
m ien to in dexado con o ffs e t de m o d o d e d ir e c c io n a m ie n to
plo que ilu stra el m odo d e d i
16 b its , usando la in stru ccin d el SP con o ffs e t de 8 b its, por
reccionam iento d el SP con o ff
d e salto in co n d icio n al JM P . m e d io d e la s in s tr u c c io n e s
s e t de 16 bits, u san d o la in s
ST A (g u a rd a r el a c u m u la d o r
tru c c i n L D A (carga d e l a c u
D ireccionam iento del SP en m em o ria) y D B N Z (d ecre
m u lad o r d esd e m e m o ria ); en
(s ta c k pointer), con m en to d e la p o sic i n de m e
este p ro g ram a e l ac u m u la d o r
d esp lazam iento de 8 bits m o ria y sa lto , si no es ig u a l a
se carg a con el co n te n id o de
H a y 2 4 in stru ccio n es de tres c e r o ); en e ste p r o g r a m a se
la p o sici n de m em o ria $ 2 5 0
b y tes q u e m an ejan el a p u n ta g u a rd a e l v a lo r $ 2 0 en la p o
(S P = $2 5 0 +$ F F = $34F ).
CDIGO DE
ETIQUETA
MNEMNICODE n p r H. Mnn COMENTARIOS
c i n d el o p eran d o , m ien tras
MAQUINA LA OPERACIN OPERANDO
q u e el b y te m s bajo se guard a
S IZ E EQU 16 T a m a o d e l b u f f e r
c ir c u la r en X , y, la su m a, es la direc
SCSR1 EQU $16 R e g . l d e e s ta d o SCI cin condicional del operando.
SCDR E(*J $18 R e g is tro re c e p to r S Q
ORG $70
PTR_0UT RMB 2 A p u n ta d o r d e d a to s
d e s a l i d a d e l
Este m odo de direcciona
b u ffe r c ir c u la r miento se usa con frecuencia para
PTR _IN RSE 2 A p u n ta d o r d e d a to s
d e e n t r a d a d e l buscar datos dentro de tablas; la
b u ffe r c ir c u la r
R X.B RMB S IZE B u ffe r c ir c u la r figura 2 1 .2 6 es un segmento de
R u tin a d e in t e r r u p c i n d e l r e g i s t r o r e c e p to r d e d a to s S C I
program a que usa la instruccin
C B E Q (com pare y salte si es
ORG S6E00
5 5 72 R X _IN T LDHX PTR _IN C a rg a e l a p u n ta d o r igual, indexada) para ilustrar este
B6 1 6 LDA SCSR1 L e c t u r a d e SCSR1
cerro p a r t e d e l re s e t tipo de direccionam iento.
5E 1 8 m i SCDR ,X + M ueve un n u e v o b y te
a S C I, b o r r a a RDRF
C asi todas las in terru pcion es pueden ser en- R econocim iento de la fuente de
m ascarables, y solo alg u n as pocas no, com o por interrupcin
ejem p lo el reset. Las enm ascarables se m an ejan En el caso d el reset, el reconocim iento no es sin
desde el sistem a p erifrico in tern o d estin ad o crnico con el procesam iento de la C P U , y es
p ara tal p ro p sito , por m ed io del b it q u e co n in m ediato; m ientras que la salid a de este estado
tro la la m scara g lo b a l de las in terru p c io n es de in terru p ci n siem pre estar sincronizada con
( B i t I) , el cu al est lo calizad o en la tercera po si los ciclos de ejecucin del bus interno.
ci n d el reg istro d el c d ig o d e c o n d icio n e s
(C C R ). Todas las in terru p cio n es se h ab ilitan Las dem s in terrupcion es siem pre sern re
cuando este b it est en cero lgico. conocidas por la C P U 0 8 so lam ente d u ran te el
ltim o ciclo, de ejecucin de cada in struccin, y
Procesam iento de interrupciones en la cu alq u ier so licitud de in terru p ci n que se haga
CPU08 en este ciclo, ser ignorada, y slo se volver a
La solicitud efectuada de parte de cualquier fuente considerar hasta el ltim o ciclo de la prxim a
de in terru pcin , excepto el reset , se atien d e de instruccin; con lo que queda claro que la C P U 0 8
acuerdo con los resultados que se obtienen tras nunca detiene la ejecucin de un a instruccin
d el p ro gram a es el responsable de bo rrar (o co salir de ella. El orden de apilam iento de los regis
lo car en cero l gico) el sealizador, lu ego de eje tros es: primero el contador P C , luego el ndice X,
c u tar ap ro p iad am en te la ru tin a de servicio so li el acum ulador A , y el registro C C R ; m ientras que
c ita d a por la in terru p ci n . el orden de recuperacin de los registros de la pila,
de acuerdo con su estructura LIFO (Last In First
D ireccin In te rru p c i n P rioridad
Out), es al contrario: primero el C C R , y despus,en
FFFE Reset 1 orden, los registros A , X , y PC.
FFFC SWI 2
FFFA FREQ[0] 3 En la fig u ra 2 2 .2 se m uestran las secuencias
de ap ilam ien to y descarga de los registros de la
FF02 p ila, tal com o la C P U 0 8 las ejecuta antes y des
IREQ[124] 127
pus de atend er cu alq u ier in terrupcin .
FF00 IREQ[125] 128
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 INTERRUPCIN
E sta in stru c c i n ta m b i n se
encarga de ordenar las operaciones
de ap ilam ien to y descarga de todos
INT2: los registros fundam entales para que
Rutina de
servicio de la el M C U reanude la ejecucin del
interrupcin program a principal, exactam ente en
el lugar interrum pido, y con las con-
Figura 22.4 E je c u c i n a n id a d a d e i n t e r r u p c io n e s e n e s p e r a diciones que traa la C P U . A d icio
nalm en te borra el b it de control de
la d ire c c i n de la s ig u ie n te in s tru c c i n d el
todas las interrupciones, y las h a b ilita cada vez
p ro g ra m a p r in c ip a l (L D A ), a u n q u e en el caso
que descarga el registro CCR de la pila.
d el reto rn o de la IN T 1 , s lo es u n a acci n
re d u n d a n te .
M dulo de interrupcin externa (IRQ)
El m dulo de in terrupcin externa IRQ, m ane
El tercer ejem p lo , de la fig u ra 2 2 .5 , nos
ja y nos perm ite controlar la operacin de sta
m u estra que, si una fuen te de in terru p ci n se
por m edio de sus registros. Este m dulo com
d etecta d u ran te la ejecu ci n de la in stru cci n
pleto se m uestra en el diagram a de bloques de la
C L I, sta ser aten d id a an tes de colocar en uno
figu ra 2 2 . 6 ; y las caractersticas con las que cuen
l gico el b it Idel registro CCR, e in h a b ilita r o
ta en los M C U de la fam ilia H C 0 8 , son:
p o n er la m scara sobre todas las in terru p cio n es.
U n p in de e n tra d a ex tern a p ara la in te rru p
CLI-
ci n I R Q l ____
SEI
Bits de control para la entrada IR Q l
U n b u jfe r de entrada con histresis
E ntrada con sen sib ilid ad p rogram able por
flanco, o por flanco y nivel
R econocim iento autom tico
INT1 PSHH Selector program able de resistencia interna
INT1: de p u ll-u p
Rutina de
PLH servicio de la
interrupcin Al aplicar una seal con nivel bajo (un cero
RTI lgico) en el pin IR Q l del m icrocontrolador, se
activa la solicitud de servicio de la interrupcin
F ig u r a 2 2 .5 E je c u c i n y r e c o n o c i m ie n t o d e l a i n t e r r u p c i n d u r a n t e la
e j e c u c i n d e u n a in s t r u c c i n
externa en la C P U y se alm acena en el la tch I R Q l.
1. La bsqueda de un vector: el
reconocim iento de otra so
lic itu d de in terrupcin o ri
g in ar la bsqueda del vec
tor correspond ien te, y d u
rante este ciclo, el la tch IR Q
ser borrado.
4. El pin de entrad a IR Q l se
in activa si se coloca en nivel
lgico uno, y si previam ente
se ha configurado su sensi
b ilid ad por nivel; bajo esta
condicin, el la tch IR Q l ser
borrado.
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 luiiuLus e s i L-dtiL-s l i d lLL'd LUL:, LVI y Ivlil
El m dulo COP (C om puter operating que el registro contador del program a P C se altera
property) y el orden de ejecucin del program a se pierde,
Bajo el m ism o concepto operativo del perro guar ocasionando un com portam iento errado o ines
d in ( w a tch d o g ) que se ha venido incorporando perado del M C U . D entro de las principales y ms
en todas las arqu itectu ras m odernas de los m i frecuentes causas que pueden hacer que la secuen
croprocesadores (M P U ) y los m icrocontrolado cia de ejecucin de una rutina o program a se salga
res (M C U ) d e o tro s fa b ric a n te s , la fa m ilia de su curso, se encuentran las siguientes:
6 8 H C 0 8 de M o toro la nos ofrece un m dulo que
form a parte de la arq u itectu ra de estos M C U , y D iseo de algoritm os incorrectos
q u e es el encargado de facilitar al program ador V ectorizacin inapropiada
la tarea de v ig ilar q ue la ejecucin del program a Ejecucin de instrucciones de salto fuera de rango
residente en la m em oria del dispositivo sea efec A lteracin de registros y banderas por ruido
tu ad a en form a cclica y sin interrupciones. elctrico in d ucid o
M o d ificaci n de registros d u ran te la conexin
El m dulo de operacin apropiado de la com y desconexin de la alim en taci n
putadora (C O P ), ha sido diseado con un conta
dor de carrera libre que se encarga de generar una Para evitar q u e el tem p o rizad o r asociado al
seal de reset interna en la C P U 0 8 , cada que se m d u lo CO P, genere un ciclo de reset, se debe
desborda su capacidad de conteo. EL C O P ayuda bo rrar p eri d icam en te y an tes de su desbord a
al softw a re a recuperar su flujo norm al cada vez m ien to ; esto se debe h acer en uno o varios lu-
SIM
CIRCUITO DE RESET DEL SIM
20SC0UT
REGISTRO DE ESTADOS
DEL RESET
FUENTES INTERNAS
DE RESET
BSQUEDA DE UN
VECTOR DE RESET
ESCRITURA
DEL COPCTL
MDULO 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
INTERRUPCIN
DEL TECLADO
AL HABILITADOR PUU UP
|Sinestablecer
C on 1 lgico: cada uno de los bits de con
F ig u ra 2 3 .7 R egistro de estado y con trol de l m dulo KBI (KBSCR) trol KBIx h abilitan el correspondiente pin
D ir e c c i n : $ 0 0 1 B
Nota:
3 2 1 B itO
B it 7 6 5 4 La programacin de una entrada de in
L e c tu ra : 0
K B IE 6 K B IE 5 KB IE 4 K B E 3 K B IE 2 KB IE 1 KBIEO terrupcin para teclado, no evita que
E s c r it u r a :
deba ser configurada como una entrada.
R e s e t. 0 0 0 0 0 0 0 0 C u an d o el p ro gram ad o r pone en uno
l gico c u a le sq u ie ra de los b its d e h a b i
lita c i n d e la in te rru p c i n p a ra teclad o
Figura 2 3 .8 Registro habilitador de las interrupciones del mdulo KBI (KBIER) KBIEx, o b lig a a q u e el p in d el puerto
de la in te rru p c i n co rresp o n d ien te sea
en el puerto A com o una entrada de in terru p c o n fig u rad o p o r la C P U 0 8 com o u n a
cin para teclado. e n tra d a; sin em b arg o , es im p o rtan te re
C on 0 lgico: cada uno de los b its de control co rd arle al u su ario q u e p ara leer d ich o
KBIx in h ab ilitan el correspondiente p in en el pin no d eb e o lv id ar p o n er en cero l
puerto A com o u n a entrada de in terru p ci n para gico, p o r m edio d e s o ftw a r e , el corres
teclado, y lo definen com o u n puerto de prop p o n d ie n te b i t d el registro de d irecci n
sito general (puerto A ). de d ato s d el p u erto A (D D R A ).
E l S I M es u n m d u lo q u e e n lo s m ic r o c o n tr o la d o r e s d e
M o to r o la c o o r d in a y v ig ila to d a s la s a c tiv id a d e s q u e d e
b e n lle v a rs e a c a b o d e s d e la C P U , a s c o m o el in g re s o y
r e to rn o a d e c u a d o d e lo s m o d o s d e o p e ra c i n e sp e c ia le s.
1
3. L
ui
iLi
lc
dLi
v.ltiql'.
-LQ ^AliC) vLSLLeLdlOI
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 conversin
co m pleta C O C O se coloca en uno despus Reset. 0 0 0 1 1 1 1 1
Direccin: S003E
E n la fig u ra 2 4 .4 se m ues
Bit 7 6 5 4 3 2 1 BitO
Lectura: 0 0 0
tra el registro A D IC L K que
0
ADIV2 ADIV1 nA r w*nu 0 nos p e rm ite seleccio n ar la
Escritura:
frecu en cia d el relo j in tern o
Reset. 0 0 0 0 0 0 0 0
p a ra el m uestreo de las se
Sin establecer ales con el A D C , p o r m e
d io d e lo s b it s AD IVO a
F ig u ra 2 4 .4 Registro de configuracin del re lo j de l ADC (ADICLK) A D IV 2 se p u e d e s e le c c io
n a r e l d iv is o r u sad o p o r
es el b it de control de son los bits del e ste m d u lo p a ra g e n e ra r
la in terru p ci n del A D C , es se le c to r d e c an ale s A D C , el re lo j in te rn o d e l A D C .
de escritura, y cuando se co con los b its CHO a C H 3 se L a ta b la 2 4 . 2 m u e stra las
loca, el m dulo A D C gene e lig e uno de los doce cana o p c io n e s p a r a lo s b i t s
ra u n a in terrupcin al com les disponibles, y con el C H 4 A D IV x .
pletar la conversin. Las con se les asignan algunas funcio
diciones q ue borran este b it nes especiales. La tabla 2 4 .1 El m dulo del sistem a de
son iguales a las del C O C O . resu m e las co n d icio n es de integracin SIM
estos bits. El m d u lo d e l siste m a de in
C on 1 lgico, se h ab ilita la te g ra c i n S IM se rep resen ta
in terrupcin . en b lo q u e s en la fig u ra 2 4 .5 ;
C o n 0 lgico, se in h ab ilita e l S I M es el c o n tro la d o r del
la interrupcin. En la figura 2 4 .3 se m uestra estad o d el siste m a y se e n c a r
el registro de u n b y te que g a de c o o rd in a r to d as las a c
es el b it selector del contien e en todo m om ento tiv id a d e s e n tre la C P U y el
m odo de conversin co n ti el resultado de la ltim a con siste m a de buses. El S IM es
n u a o por ciclos del m dulo versin hecha por el m du- resp o n sab le de:
A D C , es de escritura, y nos
p erm ite elegir entre el m odo
ADIV2 ADIV1 ADIVO D iviso r del re lo j del ADC
d e conversin co n tin u a y la
conversin de un slo ciclo. 0 0 0 Reloj de entrada ADC v1
0 0 1 Reloj de entrada ADC-r 2
Con 1 lgico, se activa el modo 0 1 0 Reloj de entrada ADC t 4
de conversin continua. 0 1 1 Reloj de entrada ADC-r 8
Con 0 lgico, se inactiva la con
1 X X Reloj de entrada ADC-r 16
versin continua y se activa la
conversin de un slo ciclo. Tabla 2 4 .2 Tabla de preescaladores d e l re lo j del ADC (ADIVx)
*
Curso prctico sobre M icrocontroladores G S B M T .l < 237
ELliiiilL
ucuLimitf.E/D (
A.D
.E)yelS
LLv
leLE
fiL
-LG
iif
i
M dulo STOP
M dulo WAIT
VDD
T
Resistencia pull-up CONTROL DEL RELOJ GENERADOR DE RELOJ Relojes internos
interna
RESET
DECODIFICADOR Y
CONTROL DE LA Fuentes de interrupcin
PRIORIDAD Y DE LA
-Interfaz de la CPU08
INTERRUPCIN
L e c tu ra : SBSW
ileg al (fu era d el rea d el m ap a de m em o R R R R R R R
E sc ritu ra : N o ta t
ria d e fin id o p a ra la C P U 0 8 ), se gen era
un r e set p o r d ire c c i n ile g a l, y el S IM R eset
c o lo c a en u n o l g ic o el b i t de estad o N ota:
|S n e s ta b le c e r Al es crib ir u n cero lgico se borra el SBSW
ILA D d el reg istro R S R , in m e d ia tam e n te
an tes de re in ic ia r el M C U . F ig u ra 2 4 .8 R egistro de estado del m odo brea k (BSR)
es el b it de estado que sealiza al reset C o n 1 lgico, in d ica que el ltim o reset fue
externo RST. causado desde el circu ito LVI.
C o n 0 lgico, in d ica q u e el R SR fue led o , o
C on 1 lgico, in d ica que el ltim o res e t fue se gener u n PO R.
causado por el pin de en trada externo RST.
C o n 0 lgico, in d ica q ue el R SR fue ledo, o
se gener un PO R.
En la fig u ra 2 4 .1 0 se m u estra el registro
es el b it d e estado que sealiza el desborda B F C R , este registro contien e un b it de lectu
m iento del temporizador de vigilancia del COP ra y escritura que h ab ilita al program ador des
de el so ftw a re para bo rrar los bits de estado
C on 1 lgico, indica que el ltim o reset fue m ientras que la C P U est en estado de break,
causado por el COP. se llam a BC FE. C on el reset se pone en cero.
C on 0 lgico, in d ica q ue el R SR fue ledo , o
se gener u n P O R . C on 1 l gico, se h a b ilita el borrado de todos
los bits de estado d u ran te el break.
es el b it d e estado que sealiza al reset C on 0 lgico, se in h ab ilita el borrado durante
causado por una op eracin ilegal. el estado de break.
R eset. 0
es el b it de estado que sealiza al ^ R e s e rv a d o
reset debido a una direccin ilegal du-
F ig u ra 2 4 .1 0 Registro de co n tro l de la bandera d e l brea k (BFCR)
La tempo rizacin de los eventos, por m edio aum en tado la eficien cia de los M C U considera
de los lazos de softw a re , fue la prim era forma de blem ente, perm itindonos, adem s de contar pe
contar el tiem po en los microcontroladores; sta es riodos largos de tiem p o, llevar a cabo otras fu n
una tarea simple, pero, no obstante, puede ocupar ciones que se basan en la cuenta del tiem po, ta
durante m ucho tiem po a la C P U e im pedir que les com o la transm isin y recepcin de datos, la
e lla desarrolle otras actividades reduciendo consi v ig ilan c ia de procesos, y el m anejo y control de
derablem ente la eficiencia del dispositivo. Este tipo otros dispositivos por m edio de las tcnicas cl
de temporizacin est adem s lim itada por el ta sicas de m odulaci n de pulsos.
m ao y el nm ero de registros de propsito general
disponibles, y, por lo tanto, slo se recom ienda para El T IM del 68H C 08
contar pequeos periodos de tiempo. En la figura 2 5 .1 se m uestra el diagram a de blo
ques del T IM (tim er in terfa ce m od u le). En esta lec
G racias a la in tegracin de circu ito s tem po- cin estudiaremos la segunda versin del T IM de
rizadores com o dispositivos perifricos dentro de los m icrocontroladores M o to ro la de la fam ilia
la arq u itectu ra de los m icrocontroladores, se le H C 0 8 (T IM 2 , versin B); ste es el m dulo de la
ha facilitado esta tarea al program ador, y se ha interfaz de temporizacin, y est compuesto por
TSTOP
LGICA DEL
P PUERT0
r LGICA DE
INTERRUPCIN
LGICA DEL
PUERTO
LGICA DE
INTERRUPCIN
un temporizador de dos canales con entrada de cap do un flanco activo program ado se detecta por
tura, salida de com paracin, y funciones de m odu el pin de un canal configurado com o una en
lacin por ancho de pulsos (P W M ). Las principa trada de captura, el T IM guarda el contenido
les caractersticas que posee este m dulo son: del contador en los registros del canal corres
pondiente, T C H x H y T C H xL , y, adicional
Dos canales in dep endien tes con en trad a de m ente, puede generar una solicitud de interrup
cap tu ra y salid a de com paracin cin en la C P U 08.
Generador de salida P W M con b u ffer o sin buffer
Preescalador program able para el reloj del T IM
C o n tado r de carrera-libre, o en m dulo con U sando las funciones definidas para el circu i
tador ascendente to de com paracin del T IM , el M C U puede
B its de paro y reset del contador del T IM generar pulsos peridicos, con po larid ad , d u
A r q u ite c tu r a m o d u la r (e x p a n s ib le h a sta racin, y frecuencia program ables. C u an d o el
ocho can ales) contador igu ala el valor guardado en los re
gistros de un canal configurado com o salida
F u n c io n e s d e l T IM de co m paracin, el T IM puede poner, borrar,
El T IM com parte sus dos canales de entrada y sali o cam b iar el estado del p in asociado a dicho
da con los dos puertos I/O de propsito general, canal; y, ad icio n alm en te, puede generar una
PTD 4 y P T D 5; el principal com ponente del T IM so licitu d de in terrupci n en la C P U 0 8.
es el contador de 16 bits, de l proviene la referencia
para las funciones de captura y comparacin. Usan Cualesquiera de los dos canales programados
do los registros de 8 t s T M O D H y T M O D L el como salidas de comparacin pueden generar pulsos
program ador puede controlar el valor del m dulo directamente sin la intervencin de un buffer, y esto
contador del T IM , y puede leerlo en cualquier quiere decir, que para cambiar el valor de compara
m om ento sin afectar la secuencia de la cuenta. cin de la salida, que est guardado en los registros
del canal del T IM correspondientes, solo se requiere
En la estructura del T IM que se m uestra en sobreescribir el nuevo valor en tales registros.
la figu ra 25.1 se destacan las siguientes partes:
Los canales cero y uno (CHO y C H l) , tam
El preescalador del contador del TIM bin pueden enlazarse para configurar una salida
El bloque preescalador usa los b its P S [2 :0 ], de com paracin con b u ffer disponible a travs de
localizados en el registro de estado y control la salid a del canal cero (pin P T D 4/ T C H 0).
del T IM (T S C ), para se
leccionar la fuente del re
loj, y la salida de reloj pue DESBORDAMIENTO DESBORDAMIENTO DESBORDAMIENTO
de ser elegida entre siete PERIODO -
o p cio n e s de fre c u e n c ia VALOR DEL REGISTRO DEL
que se obtienen al d iv id ir MDULO CONTADOR DEL TIM
te rm in a el periodo de la seal P W M , y el
estado del pin del canal cam bia cuando el contador
alcanza el valor del registro del m dulo contador. En la fig u ra 2 5 .3 se m uestra el contenid o del
registro T S C ; por m edio de este registro se
En la figura 25 -2 se m uestra u n a seal P W M , pueden h ab ilitar las interrupciones, consultar
el periodo, y el ancho del pulso de m odulacin; las banderas de estado, deten er e in icializar el
a ll podem os ver que el periodo de la seal P W M contador, y seleccionar la frecuencia del reloj.
est d eterm in ado por dos desbordam ientos suce
sivos del registro del m dulo contador, m ientras A co n tin u aci n se describen sus bits:
q ue el valor guardado en los registros del canal este b it de lectu ra y escritura es la ban--
del T IM define el ancho del pulso de la seal dera que se pone cuando el contador d el T IM
m o d u lad a a travs de la salida de com paracin. se in icializa en $ 0 0 0 0 , despus de alcanzar el
El tiem po que transcurre entre un desbordam ien valo r program ado en los registros del m dulo
to y u n a salida de com paracin, es el ancho del contador. A l leer el registro T S C se borra la
pulso m odulado. bandera au to m ticam en te, tam b in , al escri
b ir d irectam ente en T O F un cero lgico, u,
Por m ed io de los valores de los registros ocasionando un reset.
del m d u lo co n tad o r y d e la sa lid a d el preesca-
la d o r se d efin e la frecu en cia d e la se al de sa li C o n 1 lgico, in d ica que el contador d el T IM
d a P W M , de form a ta l q u e , si los b its d el pre- ha alcanzado el valor d el m dulo.
escalad o r se po nen en 0 0 0 , y al registro del m C o n 0 lgico, in d ica que el contador del T IM
d u lo co n tad o r se le escrib e $00F F, se gen erar no h a alcanzado el valor del m dulo.
u n a sa lid a P W M con u n p erio d o ig u a l a 2 5 6
veces el estado d e l reloj d el bus in tern o . El an este b it de lectu ra y escritura nos per
cho d el pulso tam b in p u ede v ariarse en 2 5 6 m ite activar la so licitu d de las in terrupciones
pasos p o r m ed io de los registros d el c a n a l del por desbordam iento d e l contador del T IM ,
T I M ; p o r e jem p lo , si en ello s se escrib e el dato cada q ue la bandera TO F se pone en uno. C on
$ 0 0 8 0 (1 2 8 d e c ), el ciclo de servicio de la sa li el reset este b it se borra.
d a P W M ser 128/256 el 5 0 % .
C o n 1 lgico, se h ab ilitan las interrupciones.
La salida de P W M tam b in puede configu C on 0 lgico, se inhabilitan las interrupciones.
rarse con un b u ffe r o sin l, de la m ism a form a
q u e la salid a de com paracin. con este b it de lectura y escritura en
uno lgico se puede detener el contador del
R egistros de entrad a y salida del TIM T IM , y tam bin p erm itir que el conteo se re
Por m edio de cinco registros del m icrocontrola an ude cuando se pone en cero lgico. Por me
d or se pueden m onitorear y controlar, la opera dio del reset este b it se pone en uno, y el pro
ci n y e l estado d el T IM ; los registros son: gram ador siem pre debe borrarlo por softw are.
PS2 PS1 PS0 Fuente de re lo j del TIM En estos registros se guarda el valor del m du
0 0 0 Reloj del BUS interno+1 lo contador del T IM , y su valor puede ser ledo
0 0 1 Reloj del BUS interno-r2 o escrito por el usuario en cualquier m om ento.
0 1 0 Reloj del BUS interno-r4
0 1 1 Reloj del BUS interno-f 8 C u an d o el contador del T IM alcanza el valor
del m dulo, la band era de desbordam iento
1 0 0 Reloj del BUS interno-1-16
(T O F) se pone en uno, y el contador in icia
1 0 1 Reloj del BUS interno^-32
nuevam en te su cuen ta desde $ 0 0 0 0 con el
1 1 0 Reloj del BUS interno-r64 prxim o periodo de reloj. En cu alq u ier caso,
1 1 1 No disponible la accin de reset pondr en unos ($FFFF) los
Tabla 2 5.1 Tabla de seleccin d e l pree sca lad o r d e l re lo j del TIM registros d el m dulo contador del T IM .
R e g is tr o : T M 0 D H
C on 0 lgico, se in h ab ilita la so licitu d de
D ir e c c i n : $ 0 0 2 3 in terru p ci n del canal x.
B it 7 6 5 4 3 2 1 B itO
L e c tu ra : 1 j es el b i t se le c to r de m o d o B, con
B it 1 4 a /13 B it 1 2 B it 11 a n o B it 9 B it 8 1
E s c r it u r a : I este b i t de le c tu ra y e sc ritu ra se se le c
R eset 1 1 1
c io n a e l b u ffe r en la s a lid a d e c o m p a ra
1 1 1 1 1
c i n , o en la d e l P W M . E ste b i t s lo est
R e g is t r o : T M 0 D L
en el re g istro de e stad o y c o n tro l d e l c a
D ir e c c i n : $ 0 0 2 4
n al 0 (T SC O ), y c u a n d o e l MSOB se pone
B it 7 6 5 4 3 2 1 B it 0
en u n o , se b lo q u e an las fu n c io n es d e l re
L e c tu ra : jf l
B it 6 B it 5 B it 4 B it 3 B it 2 B it 1 B itO 1 gistro T S C l c o n v irtien d o n u ev am en te al
E s c r it u r a : 1
c a n a l 1 en un p u e rto I/O de p ro p sito
R eset 1 1 1 1 1 1 1 1
g en e ra l (P T D 5 ).
F ig u ra 2 5 .5 Registros d e l m dulo contador d e l TIM (TMODH:TMODL)
C on 1 lgico, se habilita la salida con bu ffer
R egistros de estado y control de los canales Con 0 lgico, se inhabilita la salida con buffer.
del T IM (T S C 0 :T S C 1 )
En la fig u ra 2 5 .6 se m uestra la distrib u ci n es e l b i t se le c to r d e m odo A , con
de los registros TSCO y T S C l, y la accin del este b i t d e le c tu ra y e s c ritu r a se se le c cio n a
reset sobre todos sus bits. A contin u aci n se la o p erac i n d e la s a lid a d e c o m p a ra c i n y
describen sus bits : P W M sin b u ffe r , o la e n tra d a d e c a p tu ra ,
o, e l n iv e l d e v o lta je p re se n te in ic ia lm e n te
este b it d e lectura y escritura es la b an en la sa lid a .
dera de cada canal; cuando el canal est con
figurado com o en trada de cap tu ra, el b it se C u an d o E LSxB:A es d iferen te de 00:
pone en uno para in d icar la deteccin de un C o n 1 l gico, se h ab ilita la salid a de com pa
flanco activo; m ientras que cuando el canal racin o P W M sin b u ffer.
est configurado com o salida de com paracin, C o n 0 l g ic o , se h a b ilita com o e n tra d a de
la bandera se pone cuando el valor del regis c a p tu ra .
tro contador del T IM se ig u ala con el
valor del registro del respectivo canal.
R e g is tr o : T S C O
D ir e c c i n : $ 0 0 2 5
C o n 1 lgico, seala la deteccin de la B it 7 B itO
en trad a de cap tu ra o la sa lid a de com pa L e c tu ra : C H 0F
CHOIE M SO B M S0A ELS O B ELSO A T0V0 CH0M AX
racin en el respectivo canal. E s c r it u r a : 0
C o n 0 lgico, seala que no ha detecta R eset. 0
do la en trada de captura o la salida de
R e g is tr o : T S C 1
com paracin en el respectivo canal.
D ir e c c i n : $ 0 0 2 8
B it 7 B itO
este b i t de lectura y escritura nos
L e c tu r a : CH 1F 0
p erm ite h ab ilitar la so licitud del servicio C H 1IE M S1A ELS1B E LS 1 A T0V 1 CH1M AX
E s c r it u r a : 0
de in terrupcin de la C P U 0 8 asociada
0 0 0 0 0 0 0 0
con cada canal del T IM . R eset
I S in e s ta b le c e r
----------- PERIODO--------------
TCHx ------
t
SAU DAD E SAU DAD E SALIDA DE SAUDADE
COMPARACIN COMPARACIN COMPARACIN COMPARACIN
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
cin de los registros altos y bajos del los L e c tu ra : 1
d o s c a n a le s d el T I M , T C H O H /L y B it 1 4 B it 1 3 5 /1 1 2 8 /7 1 1 8 /7 1 0 B it 9 8 /7 8 |
E s c r it u r a : 9
T C H 1H /L .
R eset Indeterminado despus del reset
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 versin sim ple del lenguaje BA SIC, lla
m ada PBASIC, para construir un a pequea y ver
stil com putadora denom inada BASIC Stam p.
por medio de
este pin el microcontrolador reci
be la fuente de alim entacin de
voltaje no regulada, que puede es
tar entre 6 y 15 V C C para esta ver
sin, y la regula a +5VCC por
m edio de un regulador interno,
para alim entar al microcontrola
dor y al resto del circuito. Cuando
esta entrada se alim enta se pueden
extraer +5V C C por el pin 5 del
BASIC Stamp con el objeto de ali
mentar algunos circuitos extemos.
M ap a de m em o ria disponible
para el usuario
BASIC S tam p I
El B A SIC Stam p tien e 2 5 6 po si
F ig u ra 2 6 .3 Tarjeta de p roto tip o s y cable d e program acin d e l m icrocontrolador
BASIC Stam p I cio n es d e m em o ria de p ro g ram a
PALABRA BYTE BIT NOTAS C on el registro Dirs, y a travs de sus bits (DirO
Puerto Pins Pin0-Pin7 Pines l/O; direccionables bit a bit a D ir7), que son los bits que controlan la direccin
Dirs Dir0-Dir7 Pines de control de direccin l/O; de los puertos del microcontrolador, se define la
direccionables bit a bit
WO BO Bit0-B it7 Direccionables bit a bit condicin del pin del puerto como una entrada o
B1 B it8-B it1 5 Direccionables bit a bit como una salida. Con un 0 puesto en cualquiera
W1 B2
B3 de estos bits, se define el mismo como una entrada;
W2 B4 mientras que con un 1 se configura cualquiera de
B5
W3 B6 los pines del puerto como una salida.
B7
W4 B8
B9 N orm alm ente, el algoritm o m s lgico para
W5 B10 acceder correctam ente a los pines de los puertos
B11
W6 B12 Usado por la instruccin GOSUB consiste en d efinir prim ero la direccin de stos,
B13 Usado por la instruccin GOSUB y luego leer o escribir cualquier dato en ellos.
F ig u ra 26.4 Mapa ce la memoria RAM para e l usuario d e l BASIC Stamp I C om o un ejem plo, por m edio de las dos in struc
ciones siguientes se ilustra la configuracin de
E E P R O M y 16 b ytes de m em o ria R A M p ara el los cuatro puertos ms bajos com o salidas, los cua
u su ario , y, p o r m edio de los registros de esta tro m s altos com o entradas y la transferencia pos
ltim a , se tien e acceso a los pines de los puertos terior de un uno lgico al puerto 0 (P0=1):
de en trada o sa lid a y a las variables disponibles.
En la fig u ra 2 6 .4 se describ en las 16 lo calid a d irs = $ 0 F Form ato hexadecim al
des d el m apa de m em oria R A M disponibles para p in s = % 0 0 0 0 0 0 0 1 Form ato binario
el program ador, y los p in es, registros, nom bres
y fu n cio n es d efin id as p ara cada una. A dicio nalm ente, un slo pin del puerto pue
de ser ledo in d ivid u alm en te por m edio de algu
En este m icrocontrolador, y dependiendo de n a in stru ccin com o B itl = P in 3; sta, por ejem
las necesidades d el program a, el usuario puede plo , guard a el estado lgico d el p in 3 del puerto,
d efin ir el form ato del espacio en m em oria para previam en te definido com o entrad a, en la varia
las variables y los puertos I/O, stos pueden con ble B it 1. T am b in, todos los 8 pines del puerto
figurarse y accederse b it a b it (PinO a P in 7 , DirO pueden ser ledos y guardados fcilm ente en c u al
a D ir7 , y BitO a Bi t \5), en form ato de un b yte q u iera de las variables de un byte\ la instruccin
(P in s, D irs, y BO a B 1 3 ), o com o una palabra de sigu ien te es un ejem plo en el que se transfiere el
dos bytes (P ort, y WO a W 6 ). estado d el puerto del m icrocontrolador (todos sus
8 bits) a la posicin en R A M de la variable B7:
Control de los puertos del BASIC Stam p I
Los puertos de este microcontrolador se pueden ac b 7 = pins
ceder y controlar por m edio del registro Port, que
es de 16 bits y est com puesto por dos registros de Program acin del BASIC S tam p I.
8 bits cada uno, llam ados Pins y D irs. Por medio En lo que a la programacin y al buen uso de este
del registro Pins que se com pone a su vez de los 8 microcontrolador se refiere, adems de conocer bien
bits de entrada o salida de los puertos (PinO a P in 7 ), las 32 instrucciones del PBASIC y la estructura de
se pueden leer o escribir datos en los pines de cada programacin bsica de cualquier lenguaje de pro
puerto independientem ente; cuando un puerto es gramacin de alto nivel, el usuario debe conocer el
ledo, el pin correspondiente se lee directam ente; programa de soporte que sum inistra el fabricante
m ientras que cuando es escrito, el dato guardado Parallax; ste es sim ilar a un editor de texto sencillo,
en la R A M , en el espacio definido para tal variable, ejecutable en el entorno D O S de la PC, y, por medio
es el que se transfiere al pin del puerto. de los comandos de ste, se puede editar, compilar,
I +
Curso p r ctico sobre M icrocontroladores 253
Lk tuiucuLili-uladuiVi: li/iSlG S -iu u
m e d io d e la s in s tru c c io n e s S E R IN y
25 GND 1 VIN
2 VSS SE R U O T , tam bin operan a +5V; este ni
11 BUS Y 3 PCO vel es suficientem ente seguro para com uni
4 PCI
v r 5 VDD car eficazm ente el m icrocontrolador con
6 RES otros dispositivos a distancias cortas (m e
7 P0
CONECTOR DE 8 P1 nos de 3m ), pero, cuando la com unicacin
3 PINES 9 P2
10 P3 se hace a ms de 3m , los datos transm itidos
11 P4 pueden sufrir alteraciones, y por esto se re
2 DO 12 P5
13 P6 com ienda elevar los niveles de com unica
14 P7 cin por m edio de una interfaz serial RS-
DB-25 BS1-IC
2 3 2 estn d ar ta l com o el M A X 2 3 2 , el
F ig u ra 2 6 .5 Cable de com unicacin para e l BASIC Stam p I
L T l 181A C N , o alguna otra similar.
depurar y transferir el programa hacia la memoria
Esto tam bin puede ser necesario en algunas
EEPROM del sistema BASIC Stamp I, para su pos
tareas que requieren com unicar el BA SIC Stam p
terior ejecucin.
I, a travs de sus puertos, con el puerto serial de
otro dispositivo o equipo, ya que m uchas P C cuan
Para program ar el m icrocontrolador se usa el
do operan com o equipo receptor no aceptan ni
puerto paralelo de la com putadora, pero para ello
veles T T L a travs del puerto serial; en la figura
se debe usar el cable D B-25 a 3 pines que se sum i
2 6 .6 se m u e s tr a u n c ir c u ito tp ic o c o n el
nistra especialm ente para este propsito por el fa
L T l 181A C N que sirve para cam biar los niveles
bricante; en la figura 2 6.5 se m uestra la configura
T T L por niveles de com unicacin R S-232.
cin que tiene el cable de com unicacin que debe
usarse entre la P C y el BASIC Stam p I. Este cable
slo usa tres pines del puerto paralelo de la P C para
Conjunto de instrucciones resum idas
com unicarse con el m icrocontrolador, tal como
del lenguaje PBASIC
El len gu aje de program acin del B A SIC Stam p I
puede verse en el diagram a esquem tico de la figu
est com puesto por u n conjunto reducido de ins
ra 26.2, y ellos son: el term inal de datos (D O ), la
trucciones (32 instrucciones) de alto nivel, y se
seal de control del bus (BUSY), y la tierra (G N D ).
d en o m in a P B A SIC ; ste ha sido diseado por
Parallax segn u n a versin sim ple del po pular
El BA SIC Stam p I opera con niveles T T L , y
por lo tanto la salida y entrada de com unicacin program a B A SIC . C on este program a el disea
dor cuenta tbn m uchas herram ientas q u e son d i-
serial a travs de sus puertos, y que se controla por
C O N JU N TO DE IN S T R U C C IO N E S R E S U M ID A S D E L B A S IC S ta m p I
SALTOS
I F . . . . TH E N B ifu r c a c i n c o n d ic io n a l
BR AN C H S a lta a l a d ir e c c i n
e s p e c if ic a d a p o r e l o f f s e t
GOTO S a lta a u n a d ir e c c i n
GOSUB S a lt a a l a s u b r u tin a d ir e c c io n a d a .
S e p e r m i t e n h a s t a 1 6 G O SUB
R E TU R N R e to rn o d e s d e s u b r u tin a
C IC L O S
FO R NEXT E s t a b le c e u n c i c l o d e e s t e t i p o N u m r ic a s
L E T } P e r m it e m a n ip u la c i n d e v a r i a b l e s c o m o A = 5 , B = A + 2 , e t c .
P o s i b i l i t a o p e r a c io n e s com o s u m a , r e s t a , m u l t i p l i c a c i n ,
d i v i s i n , l m i t e m x im o , l m i t e m n im o y o p e r a c i o n e s
l g i c a s c o m o A N D , O R , X O R , N A N O , OR y X N O T .
LO O KU P In s tr u c c i n p a ra m a n e jo de ta b la s . P e r m it e e l m a n e jo de d a to s
m e d ia n te _ o ffs e t y su a lm a c e n a m ie n to en v a r ia b le s e s p e c f ic a s
LOOKDOW N B usca n m e ro s ig u a le s (d e 0 a N ) y lo a lm a c e n a en v a r ia b le s
RANDOM G e n e ra u n n m e ro s e u d o a le a t o r io
ENTRADAS S A L I D A S D I G IT A L E S
OUTPUT C o n fig u r a u n p in com o s a lid a
LOW Pone un p in d e s a li d a e n n i v e l b a jo
H IG H Pone u n p in d e s a lid a en n iv e l a lt o
TO G G LE C o n fig u r a u n p in com o s a lid a e i n v i e r t e s u e s ta d o l g ic o
PU LSO U T G e n e ra un p u ls o de s a lid a in v ir tie n d o e l e s ta d o l g ic o de un
p i n p o r a lg n t ie m p o
IN P U T C o n fig u r a u n p in com o e n tr a d a
P U L S IN M id e u n p u ls o d e e n t r a d a
REVERSE S i u n p in e s t c o n f ig u r a d o co m o s a lid a ,
l o p o n e com o e n tr a d a y v ic e v e r s a .
BUTTON H ace e l a n t ir e b o t e d e u n b o t n y p u e d e h a c e r u n
s a lt o a u n a d ir e c c i n s i a s s e d e s e a .
E N T R A D A S Y S A L ID A S D I G I T A L E S S E R IA L E S
S E R IN E n tra d a s e r ia l ded a to s . P o se e c a l ific a d o r e s y v a r ia b le s q u e ,
s i s e c u m p le n , p e r m i t e n e l a lm a c e n a m ie n t o d e l o s d a t o s
r e c i b i d o s . L a s v e lo c id a d e s
p e r m it id a s s o n 3 0 0 , 6 0 0 , 1 .2 0 0 y 2 .4 0 0 b p s . L o s d a to s
d e b e n c u m p lir c o n l a e s p e c if ic a c i n d e n o p a r id a d , d a to s
de 8 b it s y 1 s to p b it .
SEROUT E n v a d a to s s e r ia lm e n t e a 3 0 0 , 6 0 0 , 1 .2 0 0 2 .4 0 0 b p s ,
c o n e l m is m o f o r m a t o q u e s e a c a b a d e d e s c r i b i r .
E N T R A D A S Y S A L ID A S A N A L O G A S
PWM E n tre g a una s e a l PW M y despus c o n f ig u r a e l p in com o u n a e n tra d a .
Se u s a p a ra g e n e ra r v o lt a je s (d e 0 a 5 ) co n un
c o n d e n s a d o r y u n a r e s is t e n c ia .
PO T L e e u n p o te n c i m e tr o d e 5 a 5 0 K ohm y e s c a la e l r e s u lt a d o .
S O N ID O
SOUND G e n e ra a lg u n a s n o ta s . La n o ta 0 e s s ile n c io , n o ta s 1 a 1 2 7 s o n to n o s
a s c e n d e n te s , y n o ta s 1 2 8 a 2 5 5 s o n r u id o s b la n c o s .
A C C E S O A L A EEPR O M
EEPR O M A lm a c e n a d a to s en EEPROM a n te s de d e s c a rg a r e l p ro g ra m a B A S IC .
READ L e e u n b y t e d e EEPR O M y l o a l m a c e n a e n u n a v a r i a b l e
W R IT E E s c r i b e u n b y t e e n EEPR O M
T IE M P O
PAUSE D e tie n e la e je c u c i n p o r un p e ro d o de 0 a 6 5 .5 3 6 m ilis e g u n d o s
C O N T R O L DE P O T E N C IA
NAP E n tr a e n m odo d e b a jo co n su m o p o r u n c o r t o p e r o d o
SLEE P E n t r a e n m o d o s le e p o d e b a jo c o n s u m o p o r u n t ie m p o
d e 0 a 6 5 .5 3 6 s e g u n d o s .E l c o n s u m o d e p o te n c ia s e
r e d u c e a p r o x im a d a m e n t e a 2 0 p A .
END E n t r a e n m o d o s l e e p h a s t a q u e c a m b ia e l c i c l o d e c o n t r o l
d e p o te n c ia o s e c o n e c te l a c o m p u ta d o ra
D E P U R A C I N
DEBUG E n v a v a r ia b le s a l a c o m p u ta d o ra p a r a q u e s e a n v i s t a s
Tabla 2 6 .2 Resum en del conjunto de Instrucciones de l lenguaje PBASIC para e l m icrocontrolador BASIC Stam p I
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 leccin se estudiar el conjunto de
instrucciones del lenguaje PBA SIC de Para-
llax, Inc. que est dedicado a la program a
cin desde alto nivel de los m icrocontrolado
res BA SIC Stam p I, este conjunto de instruc
ciones lo integran 3 2 de ellas, m u y com pac
tas, poderosas y con funciones especializadas
en el m anejo de las tareas m s frecuentes en
com endadas a los m icrocontroladores.
Curso prctico sobre M icrocontroladores M K M T .l # 57
C cli[u .l112 c e E tu siu cd cL ie s c e Les LuEcL-cccnircLeccL-es LiASLC L
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 struccin tam b in acepta alguno s co
fine la velocidad de las lecturas sucesivas y se m andos propios del m anejo de la p an talla de
expresa entre 0 y 2 5 5 ciclos de esta ru tin a. la P C , tal com o se m uestra en la ltim a lnea
b y t e v a r ia b le : es el rea de trab ajo (c u alq u ie r de com ando del ejem plo anterior, stos son:
reg istro d e trab ajo de un b y te) de esta ru ti C R (ca rr ia g e retu rn ) p ara el retorno del cu r
na. L a v a ria b le e le g id a deb e ser b o rrad a con sor al com ienzo de la ln ea, y C L S {clear screeri)
0 l gico antes de u sarla por p rim era vez d es p ara borrar la ventana de visualizacin . A q u
d e la ru tin a de B U T T O N . tam b in se puede ver que lo que se escriba
t a r g e t s t a t e : es u n a v a ria b le o u n a co n stan te entre com illas ser m ostrado sin cam bio y que
q u e esp ecifica el estad o l gico en q u e debe por m edio de com as se deben separar las va
e sta r el p u ls a d o r o in te r ru p to r (0 = lib re , riables diferentes en u n a ln ea de com andos.
l= p resio n ad o ) p ara que el salto o cu rra.
a d d r e s s : es u n a e tiq u e ta con la q u e se in
d ic a a d o n d e se deb e s a lta r si el ta rg e tsta te C on esta in stru ccin se pueden guardar va
se c u m p le . rios datos en la m em o ria E E PRO M del siste
m a que luego sern utilizados por el progra
m a, o que no deban ser m odificados.
C o n esta in stru ccin se puede m onitorear el
curso del program a en cu alq u ier m om ento, lo c a tio n : la ubicacin es u n a variable o una
p o r m edio de e lla se puede visualizar en la constante opcional entre 0 y 2 5 5 que nos in
p an talla de cu alq u ie r P C co n ectada con el d ica la posicin in icial de la EE PRO M a par
B A SIC Stam p I el estado de un bit, un byte, tir de la cual sern guardados los datos que
o u n a p alab ra. C on las siguientes lneas de sean enviados. Si no se escribe una ubicacin
com ando, a m anera de ejem p lo, se ilustran in icial, la posicin in icial para la escritura de
las opciones de esta in struccin; los datos ser la p r x im a d isp o n ib le en la
m em oria.
DEBUG b 4 m uestra b4=, d a ta : los datos son las variables o constantes
seguido p o r el expresadas en 8 bits, y q ue sern guardadas en
valor de b4 localidades consecutivas d e la m em oria a p ar
DEBUG #b4 m uestra el valor tir de la posicin de inicio.
de b4
D EBUG la lectura es\b4 m uestra la lectu-
ra es, seguido C o n esta in stru ccin el m icrocontrolador en
por el valor de b4 tra en adorm ecim iento (m odo sleep) y slo des
D EBU G #% b4 m uestra el valor pierta al conectar la P C , o d u ran te los ciclos
de b4 en binario de po tencia. En este estado, y asum iendo que
D EBU G #<b4 m uestra e l carc el B A SIC Stam p I no est m anejando carga
t e r A SC II que es por sus puertos, la corriente con su m id a se re
equ ivalen te al d uce a cerca de 20(lA .
valor de b4
DEBUGentradas=,b3,b4,cr m uestra los carac- Es im portante considerar el caso en el cual se
rae teres entra- ejecu ta la instruccin EN D m ientras algn
ta s =, seguidos puerto configurado com o salida est activo en
por los valores de cualquier nivel (1 0) y est m anejando una
b3 y b 4 , y retor- carga; en esta situacin el sistem a continuar
na el cursor sum inistrando la corriente de la carga desde la
*
Curso prctico sobre M icrocontroladores < g /e jF C W T 2 5 9
CaiiiLLiivi fie E iisn u c d c L ie s e Lee Lm cu iceiuiuLaiei-es EA SLC S uilul : L
q u e ), < (m enor q u e), >= (m ayor igual que), ??: puede ser algu no de los operadores que se
y <= (m enor igu al que). m uestran en la tab la 2 7 .1 .
v a r ia b le : es la variable que se com para con el v a r ia b le : es la variable a la q u e se le asigna el
valor o valores. valor directo, o el que resulta de la operacin
v a lu : es u n a variab le o u n a constante q u e re d efinid a en la propia in struccin.
presenta el valor para com paracin. v a lu e (s ): es la variable o la constante que se
a d d r e ss: es u n a etiq u eta con la q ue se nom bra tiene en cuen ta para calcu lar el valo r q ue ser
la direccin a donde se debe saltar si el resul asignado a la variable.
tado de la com paracin o com paraciones es
verdadero. En cu alq u ier caso se debe tener en cu en ta que
las operaciones llevadas a cabo por esta ins
1 1 . 1N P U T pin truccin entre los valores estn lim itad as por
C o n esta in struccin se convierte el pin espe el m anejo que el P B A SIC le d a a las variables
cificado en u n a entrada, sin im p o rtar c u al sea y a las operaciones m atem ticas.
su co n d ici n previa o el estado en q u e se es
tn poniendo los puertos debido a d isp o siti 1 3 . L O O K D O W N ta rg e t,(v a lu e O ,v a lu 1,
vos externos. ...vaIueN ).variable
Esta in stru cci n se u tiliz a p ara buscar uno o
p i n : es la variab le o la constante con la que se varios valores d entro de u n a lista, en funcin
especifica el p in que se va a usar com o en tra de u n v alo r ob jetivo. C u an d o el valo r o b jeti
d a, y puede estar entre 0 y 7. vo co in cid e con algu n o de los valores de la
lista, se g u ard a la po sicin q u e dich o valor
12. jLETj variable = {-}valu ?? valu... tien e d en tro d e la lista (0 a N ) en la variable.
C on esta instruccin se asigna un valor a una
variable y tam bin se pueden efectuar operacio t a r g e t: es el valor de la variable o la constante
nes lgicas entre los valores para definir el valor que est siendo explorada (el valor objetivo).
q ue se asignar. El m nem nico de la instruc valueO a v a lu eN : es una lista de valores con la
cin (LET) puede om itirse; por ejem plo, la ins que se com para el valor objetivo.
truccin J =7 es equivalente a LET J=7. v a r ia b le : es la variable en la que se guard a el
resultado de la bsqueda.
OPERADORES DE LA INSTRUCCIN LET
p e r io d : es una variable o una constante con la Por m edio de esta in struccin se configura
que se determ ina la duracin del tiempo de bajo com o una salid a cu alq u ier pin del puerto que
consum o o de adorm ecim iento NAR El perio se especifique.
do puede definirse entre 0 y 7, y el tiem po de
N AP est determ inado por la siguiente ecuacin: p i n : es la variable o la constante con la que se
especifica el p in que se va a co nfigurar com o
T iem p o d e N A P = 18 x
Para obtener los mejores resultados de esta sa Esta in struccin se usa para retornar el flujo
lida, no afectar la m odulacin y reducir el n del program a a l cuerpo p rin cip al, al finalizar
m ero de ciclos de actualizacin necesarios, la la ejecucin de la su b ru tin a de salto ms in
corriente que de tal pin se extraiga debe ser m u m ed iata (G O SU B ).
cho m enor que l|iA; para esto se recom ienda
la conexin de un b u ffer de alta im pedancia
entre el pin de salida del m icrocontrolador y la C on esta in stru ccin el usuario puede in ver
carga, tal com o el seguidor de voltaje de preci tir la configuracin actual de un pin del puerto
sin construido con el operacional C A 5 160 que del m icrocontrolador en todo m om ento, si el
se m uestra en la figu ra 27.5- pin es u n a en trad a se convierte en u n a salida,
y viceversa.
10pF
S E R O U T 1,N I 2 0 0 , (6 5 ) se recibe la letra Desde el Desde el 220n
pin 1/0 pin l/O
A ~1IH n
40Q M
SE RO U T 1,N 1200, (#65) se recibe la cade- < 0 ,5 W W
na de texto 6 5
Para enviar o recibir datos seriales h acia y des F ig u ra 2 7 .7 C ircuitos tpicos para c on ectar directam ente un
p arlante de alta im pedancia a t p u e rto d e l BASIC Stam p I
de la P C , el B A SIC Stam p I requiere de una
resistencia de 2 2 k 2 y alg u n a de las dos es p in : es la variable o la constante por m edio de
tructuras para los conectores de los puertos la cual se especifica el pin I/O que se va a usar
DB de 9 y 25 pines q u e se m uestran en la com o salida de sonido, puede estar entre 0 y 7.
fig u ra 2 7 .6 . n o te ( s ): son variables o constantes que pue
den estar entre 0 y 2 5 5 y por m edio de las
cuales se define la frecuencia del ton o de sali
Esta in stru ccin hace que el m icrocontrola da. C on la nota 0 se produce silencio (0H z),
dor entre en m odo de ado rm ecim iento o de con las notas 1 a 127 se producen tonos de
bajo consum o (m odo sleep ) d u ran te un n f r e c u e n c ia a s c e n d e n te e n tr e 9 4 ,8 H z y
mero especificado de segundos. En este m odo
el consum o del m icrocontrolador se reduce 1
- 95X10 '6
de Im A a cerca de 20|lA. Frecuencia (Hz)
NOTA = 127 -
83X 10 6
s e co n d s : es la variable o la constante en la que
se especifica la d uracin d el m odo de ador FRECUENCIA (Hz) =
m ecim iento en segundos, y puede estar entre 9 5 X 1 0 '6 + ((127 - Nota) X 83 X 1 0 '6)
1 y 6 5 .5 3 5 con u n a resolucin de 2 ,30 4 s; esto
quiere decir que su du raci n puede estar en F ig u ra 2 7 .8 Ecuaciones para d eterm ina r la frecuencia y la nota
tre 2 ,3 s y 18h. d e l tono de salida
Esta instruccin se utiliza para convertir el pin C on el sigu iente program a se aclara el uso
I/O especificado en una salida y cam b iar su de esta instruccin, con esta pequea ru tin a se
estado lgico de 1 a 0 , y viceversa, cada q u e se reciben datos en serie y se alm acenan en posicio
ejecuta. nes consecutivas de la EEPRO M .
p i n : es una variable o una constante que est READ 2 5 5 ,b2 captura la posicin de la ltima
entre 0 y 7 y sirve para especificar el pin al instruccin del programa
Repetir:
q ue se le cam b iar el estado.
b2= b2-l decrementa hasta la prxi
A m an e ra d e e je m p lo se e sc rib e e l s ig u ie n
ma posicin de la EEPROM
te p ro g ra m a : en l se c o n fig u ra com o s a li
disponible
d a el p in 7 y se c a m b ia su estad o l g ic o 10 SERIN 0,N 300,b 3 recibe un byte en serie en
veces. b3
W R IT E b2,b3 guarda el byte recibido en
FO R b l = 1 TO 10 la siguiente posicin de la
TO G G LE 7 se cambia el estado de P7 EEPROM
NEXT IF b2>0 THEN Repetir salta a capturar otro byte
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 rstic a s tern a bsica de los m icrocontroladores 8 0 5 1 , en
de c o m p a tib ilid a d , v e lo c id a d , bajo co sto , d is e lla se destacan las principales partes que los con
p o n ib ilid a d y fa c ilid a d de p ro g ram ac i n ; ad e form an. D entro de las caractersticas generales
m s, h a y m u ch o s fa b ric a n te s de sistem as de se destacan las siguientes:
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 parmetros de la com unica tarse de acuerdo con P C 0N (CHM0S) OXXXOOOOB
cin serial, tales como la velocidad, el formato el reloj aplicado al m i Tabla 2 9 .3 Estado in ic ia l de los
de la palabra y la direccin de la transmisin. crocontrolador. registros despus de l reset
S1 S2 S3 S4 S5 S6
P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2
n n n UN CICLO DE MQUINA
Lectura en el
LATCH Lectura en
el LATCH
RESISTENCIA
PULL-UP
INTERNA
BUS _
INTERNO
D
LATCH
P O .X
O
_
Y -
r
BUS .
INTERNO
D
LA T C H
P 2 .X
Q
CL O " . MUX CL Q
Escribe en Escribe en
el LATCH el LATCH
Pin de Pin de
lectura lectura
1) Un pin del puerto O (PO.X) 3) Un pin del puerto 2 (P2.X)
Funcin alterna de
'TC
lectura
escritura en un puer
to, que generalm en ru d
te se efecta por m e- M0V PX>(DATO)
dio de la instruccin DATO ANTERIOR DATO NUEVO
M O V P x,(D A T O ),
se puede apreciar en Figura 3 0 .3 D iagram a de tiem pos d e la instruccin MOV PX, (DATO)
En la fig u ra 3 0 .6 se
m uestra la arquitectura ge
F ig u ra 3 0 .4 Interfaces para le e r y escrib ir en los n e ra l d e lo s t i m e r s d e l
p u e rto s de l 8051 8 0 5 1 , a ll pued en verse: el
selector (C/T) de la seal
En la fig u ra 3 0 .4 se de reloj del contador, con el cual se elige la fuen
____ A _____ te del reloj a p artir del oscilador interno o desde
Leer puerto PO m uestran dos circu i
tos re c o m e n d a d o s u n a fuente externa; la l gica de h ab ilitaci n por
i
Complementa que pueden ser u ti so ftw a re y por h a rd w a re, que se usa para h abilitar
i ____ lizados para leer d a la cuen ta de pulsos a travs del in terru p to r de
Escribir en P1 tos apropiadam ente, C O N T R O L , cu an d o los estados de las entradas
sin rebote, y m ane T R x , GATE e IN T x son 1, 0 1, respectiva
E TIQ U ETA CDIGO DE PROGRAMA
ja r carg as de h asta m ente; los registros del contador, que llevan la
Inicio MOV A ,P0
600m A . cuenta en todo m om ento y que pueden ser de
CPL A
MOV P 1 ,A 8 ,1 3 \ 6 b its segn el m odo de trabajo; y, el fl ip -
AJMP Inicio
En la figura 30.5 fl o p de la bandera de estado T F x , que se utiliza
F ig u ra 3 0.5 Diagram a de flujo del para in d icar el sobrepasam iento y generar la in
se m uestra el diagra
program a ejemplo, para e l uso de los
puertos m a de flujo del progra terrup cin del tim er.
m a y el segmento de
cdigo del mismo. En M odos de operacin de los tim ers 0 y 1
el program a se ilustra el uso adecuado de los puer La funcin como tem porizador {tim er), o como
tos como entrada y salida de manera sencilla; en l se contador (cou n ter) ,_se selecciona desde el b it de
lee un dato por los 8 bits del puerto 0, se comple control llam ado C /T ; y los cuatro m odos d e ope
m enta su estado y se enva por los pines del puerto 1. racin de estos dos tem porizadores-contadores se
definen con los bits M 0 y M I . Todos estos tres
Los tem po rizado res-con tado res bits, pertenecen al registro de control de m odo
ftim ers 0 y ) del M C U 8051 T M O D {T im er/'counterM odeC ontrolR egister) que
Esta fam ilia de m icrocontroladores posee dos hace parte de los SFR. En las figuras 3 0 .7 y 3 0 .8
tem porizadores-contadores (tim er 0 y tim e r 1). se m uestran los registros de control y de modo
C u an d o opera com o tem porizador, el contador T M O D y T C O N {tim erJcounter co n tro l register),
se in crem enta con cad a ciclo de m q uin a hasta asociados con el com portam iento de los dos ti-
sobrepasar el valor prefi
jad o ; por este m otivo, se [sc] Q- CONTROL
puede decir que la cuenta
_______________________ TLx TRx TFx S eal de
se hace con 1/12 de la fre In te r r u p c i n
C /T
cuencia del reloj; m ientras PinTx-
_ 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 estn a uno
Las interrupciones del MCU 8051 Si EA = 0 n o reconoce ninguna interrupcin
racin de la instruccin de salto y, en los dos bytes El proceso de in terru p ci n siem pre se consi
de m em oria siguientes $ 0 0 1 4 y $ 0 0 1 5 , deben dera urgente y, u n a vez in ic iad a su vectorizacin,
guardarse los b ytes de la direccin de salto ms y slo podr ser in terru m p id a o b lo quead a cu an
m enos significativos respectivam ente. En la fi do una in struccin o una in terrupcin de m ayor
g u ra 3 1 .3 se representa este ejem plo. o igu al prioridad se est ejecutando, o cuan d o se
est accedien do a los registros de control IP IE,
SFFFF , cuando se est ejecutando una instruccin de
retorno de in terru p ci n RETI.
Nota:
Toda rutina de atencin a una interrupcin debe
Rutina de servicio a
la interrupcin In ic io term inar con la instruccin d e retorno d e in te
$0777-1 ' i rrupcin R E T I; con sta se inform a a la C P U
que la rutina ha concluido para que descargue
$0015 de la pila la direccin de dos bytes a partir de la
$0014 cual debe continuar la ejecucin del program a
$0013 princip al, y la cargue en el registro contador de
program a (P C ). Las rutinas de servicio de las
RESET $0000 interrupciones deben hacerse breves, para ga
rantizar que slo se experim entar u na prdida
F ig u r a 3 1 .3 Salto a una ru tina de interrupcin en m em oria de
program a
de tiem po relativam ente pequea durante la eje
cucin del program a principal al m om ento de
Para com prender el proceso de in terru p ci n atender la interrupcin.
en los m icro co n tro lad o res 8 0 5 1 , se ha in clu id o
el d iag ram a de tiem p o s sim p lificad o bajo con
diciones ideales q u e se m uestra en la fig u ra 3 1 .4 ,
ste est representado en trm ino s de los esta En el cu ad ro 3 1 .2 se m u estra el registro para el
dos (S) y de las fases (P) de cad a ciclo de m control de p rio rid ad de las in terru p cio n es IP
q u in a (C ). En el d iag ram a p u ed e verse que las (in te r r u p tp r io r ity register) que tam bin hace par
ban deras de in terru p ci n se co n su ltan en la fase te de los S F R ; con l se pued en p ro gram ar dos
2 del estado 5 (S 5 P 2 ) de c ad a ciclo de m q u in a niveles de p rio rid ad (a lta y baja) de m anera in
y q u e los resu ltado s son evaluados d u ran te el d ep en d ien te para cada una de las fuentes de in
sig u ie n te ciclo ; y tam b in , q u e luego de la eva terru p ci n . A l p o ner en uno l gico el corres
lu aci n y si h a y alg u n a so lic itu d de in terru p p o n d ien te b it de la in terru p ci n se h a b ilita la
ci n activa se gen era u n llam ad o (L C A L L ) al p rio rid ad alta, y al po n erlo en cero l gico se h a
vecto r correspondien te. b ilita la p rio rid ad baja.
C1 C2 C3 C4 C5
S5P2 S6
E v a lu a c i n d e V e c to riz a c i n R u tin a d e
in te rr u p c io n e s d e la in te rr u p c i n s e r v ic io d e la
in te rr u p c i n
In te rr u p c i n C o n s u lta d e
a c tiv a d a in te rr u p c i n
Interrupciones internas IE M P O R IZ A D O R /C O N T A D O R 0 EN M O D O 0:
de los TIMER 0 y 1
P u esto q u e los tim e r s y su s in te rru p c io n e s y a
se e stu d ia ro n en la lecci n an te rio r, a q u slo
re c o rd a re m o s b re v e m e n te q u e las b a n d e ras
TFO y T F l de sto s, son las e n c arg ad a s de
g en e ra r la s o lic itu d de in te rru p c i n re sp e c ti
va a la C P U y q ue se p o n en en 1 l g ico , c u a n
do se d e sb o rd an los c o rresp o n d ien tes re g is
tro s d e conteo.
C o m o un re su m en d e los p rin c ip a le s as
pecto s q u e se h an e stu d ia d o de las in te r ru p
c io n e s ta n to in te rn a s com o e x tern as, a c o n ti
Figura 3 1 .5 Banderas de interrupcin de ios tim ers d e l 8051
n u a c i n , en la f ig u r a 3 1 .6 , se m u e stra u n es
q u e m a sim p lific a d o de la a rq u ite c tu ra d e l sis
tem a de in te rru p c io n e s d e l m ic ro c o n tro la d o r in te r ru p c i n , y con l g ic a sim p le , la fu n c i n
8 0 5 1 ; a ll se re p resen tan el h a r d w a r e y la l de los reg istro s de c o n tro l d e las in te r ru p c io
g ic a aso c ia d a con c a d a u n a d e las fu en tes de n es (IP e IE ).
SECUENCIA DE
EVALUACIN
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 cin F ig u ra 3 2.1 B uffe r de datos serial def puerto de com unicaciones
S e a c tiv a p o r hardw are a l fin a liz a r la re ce p ci n d e l 8o b it
d e l 8051
e n el M odo 0 o hacia la m ita d d e i in te rv a lo de tie m p o del
b it de S to p e n los o tro s M o d o s (e x c e p to v e r SM 2)
C onfiguracin de la velocidad de
D ebe s e r d e sa c tiva d o p o r softw are
com unicacin
Bt T I B an dera d e in te rru p c i n d la tran sm isi n
Se activa p o r hardwareal fin al de la transm isin del 8o ftrfe n
La v elo cid ad d e la c o m u n ic a c i n , en b its p o r
e l M o d o 0 o al com ienzo del b it de Stop e n los o tro s M odos segu n d o o b au d io s, est en fu n c i n d el m odo
D ebe s e r de sa c tiva d o por softw are de c o m u n ic ac i n activ o , as: en M O D O O , la
B2 R B] En los M o d o s 2 y 3 e s e l 9 o v '/q u e s e re cib e v e lo c id a d se d e te rm in a s im p le m e n te p o r la
En M o d o 1 , s i S M 2 = 0 . R B 8 e s el b it d e Stop ecuacin 3 2 .1 q u e d iv id e la frecu en cia d el os
En M odo 0 n o se u tiliza
c ila d o r de la C P U en tre 12; en M 0 D 0 2 est
B3 T B 8 C orrespon de al 9 o b it de da to s en los M odo s 2 y 3
Es p ro g ra m a b le p o r el u s u a r io . H a b itu a lm e n te e s e l b it
en fu n c i n d e l v alo r d el b i t 7 , SM O D , d el re
d e p a rid a d gistro de c o n tro l de p o ten cia PC O N { pow er
B4 REN S i REN = 1 (p o r softw are) h a b ilita la re c e p c i n c o n t r o l r eg ister) que p erten ece a los S F R . C u a n
Si REN = 0 n o re cib e do el b it d u p lic a d o r de b au d io s (S M O D ) est
B5 | En M o d o 2 y 3 , s i S M 2 = 1 e n to n c e s Rl n o se a c tiv a r en cero , la v e lo c id a d es 1/64 d e la frecu en cia
si e l 9o b it d e d a to s (R B 8) e s ig u a l a ce ro
d el o scilad o r, y cu an d o est en u n o , es 1/32 de
En M o d o 1 . s i S M 2 = 1 e n to n c e s Rl n o s e a c tiv a r s i el
b it d e S to p n o se h a re c ib id o la frecu en cia d el o scilad o r; sto se expresa en
En M o d o 0 , S M 2 d e b e e s ta r e n ce ro la ecuacin 3 2 .2 . En e l cuadro 3 2 .2 se m u es
B 6 -B 7 S M O -S M 1 E sp e cific a e l M o d o se gn la ta b la tra el registro P C O N .
SMO S M l MODO OfSCKIPClON
D e s p la fa 8 M 5 O s c n a d o r 2
UART d e 8 wCs P ro g ra m a re Frecuencia del oscilador
O sctfador/64 o O sctlador/32 BAUDIOS e n M o d o 0 =
UART(Je 9 Ms P ro g ra m a re 12
B it 7 B it 6 B it 5 B it 4 B it 3 B iti B it t B it 0
MOOOO de com unicacin
SM O D - - - | GF1 GFO PD ID L C o n ios bits SMO y S M 1 puestos en cero, se acti
va el MO DO O de com un icacin serial, en ste
B IT N O M B R E Y C O M EN TAR IO
la en trad a y salid a de los datos se hace a travs
B0 ID L B it M o d o Id le (ra le n tiza d o )
del p in 10 (R X D ) del m icrocontrolador, m ien
Si ID L = 1 se activa
tras q ue por el p in l 1 (T X D ) se generan los p u l
B1 PD B it P o n e r D o w n (b a ja po te n cia )
sos de desplazam iento (sh ift d o c k ) ; la transm i
Si PD = 1 se activa
sin o recepcin del dato d e 8 bits se hace em pe
B2 GFO e m b a n d e ra d e p ro p s ito g e n e ra l
zando por el b it m enos significativo (LSB) y a
B3 GF1 B it b a n d e ra de p ro p s ito g e n e ra l una velocidad fija e ig u al a 1/12 de la frecuencia
B 4 -B 5 -B 6 R eservados
del oscilador. En la fig u ra 3 2 .2 se m uestra la ar
q u itectu ra sim p lificad a que adopta el puerto se
B7 SM O D ffid u p lic a d o r d e ba udios
Si SMOD = 1 se d u plica la fre c u e n cia d e re lo j de l tim er 1
rial cuand o se activa el M O D O O , y en la fig u ra
c u a n d o s te se u tiliz a co m o g e n e ra d o r d e ba u d io s en los 3 2 .3 se m uestra el d iagram a de tiem pos (o cro-
m odo s de co m u n ica c i n 1 ,2 y 3
nogram a) q u e le corresponde y ijrie adem s des
Si se a c tiva n s im u lt n e a m e n te PD e ID L el m ic ro c n tro la d o r a s u m e e ! M odo
cribe d etallad am en te el proceso de transm isin y
P ow e r Do wn, q u e tie n e p rio rid a d so b re el M o d o Idle
D e sp u s d e la o p e ra c i n feset. PCON to m a el s ig u ie n te v a lo r 0X X X 0000 recepcin en dich o m odo.
E n io s d is p o s itiv o s H M O S. PCON c o n tie n e s o la m e n te el b it SM O D
E S C R IB E
EN SBUF
R X D (P 3 .0 )
START SH IFT
CONTROL DE TX
S6 T X CLO CK TI SEND
INTERRUPCIN
PUERTO SERIAL
TXD (P3.1>
"CK1
R X C LO C K Rl RECE,VE wk 1
CONTROL OE RX
REN-
STAR T 1 1 1 1 1 1 1 0 SH IFT
R l-
R X D (P 3 .0 )
E S C R IB E E N S B U F
LE E E L S B U F
I
BUS INTERNO DEL 8 052/51
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
INTERRUPCIN DEL
PUERTO SERIAL
MUESTREO
ESCRIBE EN SBUF
Nota:
TCLK, RCLK y e l T im er 2 estn presentes
solo en e l m ic ro co n tro la d o r 8052
F ig u ra 3 2 .5 A rq uite ctu ra de l
BUS INTERNO DEL 8052751
p u e rto se ria l en M O D 0 1
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 unicacin y form ato de palabra d o s, la tra n sm isi n se in ic ia cu an d o c u a lq u ie r
en M 0 D 01 in stru c ci n u tiliz a al reg istro SB U F com o des
tin o , tras esta ac c i n se c a rg a el b i t 3 ( T B 8 )
En la fig u ra 3 2 .8 se m u estra el cro n o gram a d e l reg istro S C O N en la p o sic i n d e l noveno
q u e le co rresponde y q u e adem s d escrib e d e b i t d e l re g istro de d e sp la z a m ie n to (co m o u n
ta lla d a m e n te el proceso de tran sm isi n y re b i t d e p a rid a d ) y lu e g o , se d a paso a la tran s
c e p c i n en el M 0 D 0 2 de c o m u n ic a c i n , m isi n en serie.
m ien tras q u e en la fig u ra 3 2 .9 se ap re cia el
(1 0) RXD
P 3 .0
j o n n_
8051
DO (H ) TXD
J] TL J I L r . 11
Start BitO Bif l 8 /g AJI3 Bit* B iti BitO BitT Pmg Stop
ieae>
nx
j iu a J1 0 !L ji n a n il
ESCRIBE
EN SBUF
TXD
INTERRUPCIN DEL
PUERTO SERIAL
T ESCRIBE EN SBUF
RXD
ESCRIBE EN SBUF
Nota:
TCLK, RCLK y el Timer 2 estn presentes
solo en el microcontrolador 8052 LEE EL SBUF
F ig u ra 3 2 .1 0
BUS INTERNO DEL 8052/51
A rq uite ctu ra d e l pue rto *1
serial en M 0 D 0 2
, *
Curso p rctico sobre M icrocontroiadores
Lus iieuffim U ultiiiuU rS lk\ 11 # t* i/ug il; /tifiOL I
ATMEL Seguro de p ro gram aci n para las m em orias
Es una com paa que desde 1984 es ld er y pio FLA SH y EE PRO M
nera en el diseo y desarrollo de sem iconducto 15 lneas I/O program ables
res avanzados con alta escala de in tegraci n ; en T im er/C ounters de 8 y 16 bits con preescalador
tre los princip ales productos de esta em presa se in d ivid ual
in clu yen los m icrocontroiadores y m icroproce C o m p arad o r anlogo
sadores AVR, los conjun tos lgicos y analgicos W atctbdog program able
program ables de alta densidad (PAL y PAA), las Interfaz serial SPI
m em orias no voltiles, los m ezcladores y am p li U A R T fn ll-d u p lex
ficadores de seal, y los circuitos integrados de D os m o d o s d e b a jo c o n s u m o : ID L E y
co m un icaci n RF. Por su tecnologa de fabrica PO W E R-D O W N
cin de circuitos integrados con alta densidad Interrupciones externas e internas
(w a fer p r o cesses), A T M E L es tam bin considera V oltaje de alim en taci n entre 2 ,7 y 6 ,0 V
d a com o una em presa de van gu ard ia; sus tcn i
cas se orientan a las estructuras C M O S , B iC - D escripcin de pines del AT90S2313
M O S y SiG e (S ilico n G erm a n iu m ).
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 configuracin 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
tn localizados entre las posicio
0 0 Entrada No Estado de alta impedancia (tercer estado Hi-Z)
nes $ 0 0 0 (0 ) y $ 0 0 A (1 0 ).
0 1 Entrada Si Con un cero lgico extemo suministrar corriente
1 0 Salida No Salida en cero (toggle)
1 1 Salida No Salida en uno (toggle) En la ta b la 3 3 .7 se descri
Nota: * puede ser uno d e los pines entre el 0 y 7 ben todas las fuentes de in te
Tabla 3 3 .5 Configuracin de lo s p in e s d e l p u e rto B rrupcin acom paadas por sus
direcciones y niveles de priori
dad. C om o es l gico , el reset
siem pre tiene reservada la posi
cin in icial ($ 0 0 0 ) de la m em o
ria de program as y, adem s, es
la interrupcin con m ayor prio
ridad para la C P U ; en este m i
crocontrolador, la p rioridad a la
atencin de las interrupciones
est organizada lin ealm en te en
orden descendente dentro del
rea de vectorizacin y, por lo
tanto, el vector 11 (el de la in
terrupcin del com parador an
logo A N A _ C O M P ), que es el
m s alto, es el que goza de la
m enor prioridad.
D ire c c io n e s
V e c to r N de M e m o ria F uente de D e fin ic i n de la s in te rru p c io n e s P rio rid a d
de p ro g ra m a in te rru p c i n
1 $000 RESET Pin externo de reset, del reset a la conexin (POR) y del watchdog m m m
2 $001 INTO Solicitud de interrupcin extema cero (pin INTO)
H
3 $002 INTl Solicitud de interrupcin externa uno (pin IIMT1)
4 $003 TIMER1 CAPT1 Evento de captura del TIMER/COUNTER 1
5 $004 TIMER1 C0MP1 Evento de igualacin con el TIMER/COUNTER 1
6 $005 TIMER1 0VF1 Sobrepasamiento del registro del TIMER/COUNTER 1
7 $006 TIMERO 0VF0 Sobrepasamiento del registro del TIMER/COUNTER 0
8 $007 UART, RX Recepcin completa (RX) de la UART
9 $008 UART, UDRE Registro de datos de la UART vaco
10 $009 UART, TX Transmisin com pleta (TX) de la UART
11 $OOA ANA_C0MP Comparacin anloga Baja
*
Curso p r ctico sobre M icrocontroladores ^ M /K /n n i # 3 i 7
Luis UlLHUinmUEUlls 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
operacin delA T90S 2313