Anda di halaman 1dari 242

LA MEMORIA EN LOS

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

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

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

;.a. Curso prctico sobre Microcontroladores


Teora

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

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

7FF

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

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

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

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

Curso prctico sobre Microcontroladores


La memoria en los microcontroladores PIC

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

Memoria de programa

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

Figura 9.4 Direccionamiento usado p o r llamado a subrutinas

.a. Curso prctico sobre Microcontroladores


Teora

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


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

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


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

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


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

Curso prctico sobre Microcontroladores m u tu T s


La memoria en los microcontroiadores PIC

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

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

Curso prctico sobre Microcontroiadores


Teora

La Memoria de Datos Los registros de propsito general representan


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

INDF OOh INDF 80h INDF 10Oh INDF 180h


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

Figura 9 .8 Estructura general de la RAM

Curso prctico sobre Microcontroladores m iK <H Ts


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

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


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

caractersticas de cada disposi


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

m a z u T s . Curso prctico sobre Microcontroladores


Teora

inform acin del cdigo


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

Curso prctico sobre Microcontroladores


Direccin
he*. Contenidos
00

Instruccin orientada a b it o a byte

nos dice que el


se usa como aputador
7F
80

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

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

Fig ura 9.11 Modo de direccionamiento indirecto

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

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

la direccin (en 8 bits) del registro que se


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

cualquier punto del mapa de m em oria


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

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

Curso prctico sobre Microcontroladores


24LC01

Ctodo comn

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

2N 3906

LA EEPROM DE DATOS EN LOS


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

Curso prctico sobre Microcontroladores


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

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


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

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


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

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


Teora

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

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


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

Los bits de control RD y W R inician la lec


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

estos bits slo pueden ser colocados en uno (no


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

Una operacin de escritura es vlida cuan


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

Curso prctico sobre Microcontroiadores m t:


La EEPROM de datos en los microcontroladores PIC

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


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

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

viene escrituras accidentales en la memoria EE


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

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

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

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

<.A. Curso prctico sobre Microcontroladores


Teora

Bufter 5V perm ite ahorrar pines del microcon


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

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

Curso prctico sobre Microcontroladores


FOTR!
ROM de datos en los microcontroladores PIC

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

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

MCLR 4

0SC 1

0SC2
VSS

1 20pF

Figura 10.6 Ejemplo del manejo de una memoria serial

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

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

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

m jK fV s . Curso prctico sobre Microcontroladores


LECCIN 11

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

Curso prctico sobre Microcontroladores d c E J C lT .


Interrupciones en los microcontroladores PIC

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

Las fuentes de interrupcin ms utilizadas GOTO M A IN


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

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

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

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


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

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


Teora

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


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

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


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

BCF IN TCO N , INTE; int. externa


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

Cuando ocurre un estado de reset todos es


tos bits toman un valor de cero (limpiados).

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


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

Curso prctico sobre Microcontroladores


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

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


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

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

Va. Curso prctico sobre Microcontroladores


Teora

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


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

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

Curso prctico sobre Microcontroiadores m M B T


Interrupciones en los microcontroladores PIC

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

Curso prctico sobre Microcontroladores


Teora

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

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


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

Curso prctico sobre Microcontroladores (103


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

m u H T s . Curso prctico sobre Microcontroladores


LECCIN 12

LOS TEMPORIZADORES El\l LOS


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

Curso prctico sobre Microcontroladores


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

i. Curso prctico sobre Microcontroladores


Teora

Divisor de la
Entradas entrada Salidas

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

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

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

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

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


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

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

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

El prescalador !. C onfigurando el TIMERO.


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

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


Teora

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


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

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


Los tem porizadores en los microcontroiadores PIC

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


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

Figura 12.5 Registros asociados con e l manejo del TMR2

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

<-*. Curso prctico sobre Microcontroiadores


Teora

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

-T~L Entrada .TI J~ L Entrada


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

16 - B its
Figura 12.7 Modos de funcionamiento del TIMER1

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

B it 1 del re g is tr n CON

ito de
Twia
aUCl

Evento especial disparado desde


el mdulo CCP Figura 12.8 Diagrama de bloques del TIMERI

Curso prctico sobre Microcontroladores


Los temporiza dores en los microcontroladores H E f

fico cuyo nom bre dentro del encapsulado es


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

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


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

La seleccin de la fuen te de seal para el


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

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


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

-*. Curso prctico sobre Microcontroladores


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

captura permite hacer mediciones muy precisas b7 bit 0


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

bajan prcticamente de la misma manera.


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

Modo CCP Funcin Nombre genrico CCP1 CCP2 Comentario


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

i. Curso prctico sobre Microcontroladores


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

Modo CCPx Modo CCPy Interaccin


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

Curso prctico sobre Microcontroladores


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

t e prctico sobre Microcontroladores


Teora

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

operacin consiste en 0 0 tiempo de cada flanco de bajada


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

Curso prctico sobre Microcontroladores < M IK < IIT s .


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

do a la aparicin del flan 0SC /4

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

CCPx posee una funcin alterna como pin


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

truccin TRIS para que trabaje como sali


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

Curso prctico sobre Microcontroladores


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

Curso prctico sobre Microcontroiadores


Mdulos CGP (captura/comparaci

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


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

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

10
Pin CCP1 bajo

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

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

PR2 Borrar el temporizador y


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

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


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

Curso prctico sobre Microcontroladores , ( 121


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

Figura 14.1 Comunicacin en paralelo

En trminos generales, hay dos maneras de


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

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

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


Teora

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

Reloj

Datos

Bits de carcter
Figura 14.5 Carcter serial sincrnico

Curso prctico sobre Microcontroladores


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

Curso prctico sobre Microcontroladores


Teora

Tiempo
Estructura del carcter-

Tiempo d e u n M

P-5 o < Estado desocupado

4 Estado ocupado
I " I
B it de datos

Bit de B it de final del


sincronizacin paquete

Figura 1 4.7 Estructura del carcter

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

Bits de datos y
bits de paridad {opcionales)

j Marca (1 lgico)

re Espacio (0 lgico)


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

Curso prctico sobre Microcontroladores


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

Interfaz Interfaz
RS-232 RS-232

Figura 14.11 Canal de comunicacin serial

i. Curso prctico sobre Microcontroiadores


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

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


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

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

Curso prctico sobre Microcontroladores


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

C uando u tilizam o s comunicaciones seria


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

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


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

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

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

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

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

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

Vdd

v ss +5V

MCLR
0SC1
10K
0SC2

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

Figura 14.14 Esquema del circuito para comunicacin serial

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

Curso prctico sobre Microcontroladores


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

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


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

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

Curso prctico sobre Microcontroladores


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

Desde el punto de vista del receptor se pue


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

Los mdulos de softw a re mostrados en la Si


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

i
contador de bits

1 2 3

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

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

Curso p r c tic o sobre M icrocontroladores


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

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

El registro de recepcin toma el dato de la


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

La subrutina de retardo la podemos apre


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

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


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

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


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

Curso prctico sobre Microcontroladores


Teora

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


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

La instruccin RRF: rote el contenido del regis


tro f a la derecha, usando el carry

Sintaxis: RRF f,d


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

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

Curso prctico sobre Microcontroladores m /K tMT


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

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

Curso prctico sobre Microcontroiadores


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

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

Recepcin

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

Transmisin

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

Figura 14.24 Temporizacin de las tareas

Curso prctico sobre Microcontroladores < s m iK iim


Introduccin a las comunicaciones seriales

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


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

Para controlar los distintos estados de la co


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

En la figura 14.26 podemos apreciar el c


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

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

Curso prctico sobre Microcontroladores


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

Figura 14.26 Subrutinas de recepcin y transmisin

Curso prctico sobre Microcontroladores E tC B Y ,l 137


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

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

Figura 14.27 Cdigo fuente del ejercicio

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


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

Curso prctico sobre Microcontroladores


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

Cristal Rata de Ciclos por lazo Ciclos de las tareas


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

8 9600 52 10 Retardo B Retardo C Retardo A

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

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

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

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

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

No
Bit listo? X
Inicializar contador
de bits

Inicializar contador
de lazos de
recepcin

No
stop?

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

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

Figura 14.29 Tarea de recepcin


TXON

140 Curso prctico sobre Microcontroladores


O I1 S

TXON

U suario Figura 14.30 Tarea de transmisin

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


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

Curso prctico sobre Microcontroladores m K lT l


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

Existen nueve registros especiales asociados


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

DTE

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

142 & C IT s l Curso prctico sobre Microcontroladores


le u L t

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

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

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


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

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

1 0 7 6 2 1 0
TRISC
T RCSTA

I___I___ Deben estar en uno para OPDD Error por


la operacinde de la UART sobrepaso

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

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

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

Curso prctico sobre Microcontroladores < S lE K tT s .


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

\
i
Guardar contexto

No Registro de
Tx vaco?
Leer los
carcteres de
receptor

1
J
r

Carcter al registro
deTx Restaurar contexto

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

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

El registro de recepcin que m aneja


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

Los microcontroiadores PIC ofrecen


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

Curso prctico sobre Microcontroiadores 145


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

BIT BANDERA FUNCIN

0 byte recibido (NUBYTE) activada al recibir un byte


borrable por el usuario

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


borrable por el usuario

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


borrable por el usuario

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


borrable por el usuario

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


borrable por el usuario

Tabla 14.3 Registro de banderas

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

Tgm uznm . Curso prctico sobre Microcontroladores


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

MODULO DE T R A N S M IS IO N

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

MODULO DE R EC EPC IO N

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


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

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


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

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

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

S A L IN T R E T F IE

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

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

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

Figura 14.40 Cdigo ejemplo de comunicacin Full-Duplex

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

Datos

Datos vlidos

Figura 14.41 Protocolo serial sincrnico

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

Curso prctico sobre Microcontroladores


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

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

Emplea tres lneas: entrada de datos, salida de


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

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


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

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


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

En un bus PC todos los dispositivos pueden


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

D entro del bus I2C el dispositivo m aes


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

W K M T .: Curso prctico sobre Microcontroladores


o+5V

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

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

Curso prctico sobre Microcontroladores


lllULiuTriHQll Ci lag CULllLLLCaCULlljt SlHtfeUiS

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


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

Despus del INICIO, el pri


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

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

ry
Seal de reconocimiento
desde el receptor ACK

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

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

Desde el esclavo Desde el esclavo


1010 para EPROM Indica lectura

Figura 14.47 Transmisin PC

PARA SABER MS sus productos, logrando una reduccin en cos


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

Curso prctico sobre Microcontroladores


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

TV Radio Audio Telfono Industria Autom vil


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

Tabla 14.4 Cobertura de componentes con bus l2C

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


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

Integrado Funcin D ireccin


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

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

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


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

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


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

Salida d igital

Analicemos el caso de la conversin


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

La seal anloga de entrada al


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

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

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

-S.

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

Figura 15.2 Entradas anlogas con Z = Zn.

Resumamos las principales caractersticas


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

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


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

Curso prctico sobre Microcontroladores M IK < IIT s


LOS CULlVLHiliL-lrS CiLldLU/lLULtdLei

R e g is tro : ADCONO R egistro: ADC0N1

ADSC1 ADSC0 Res. CHS1 CHS0 Go/Done ADIF ADON


u u u u u u PCFG1 PCFGO

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

D ireccin: 08h D ireccin: 88h


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

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

00 canal 0 (AIN0| Figura 15.4 Registro ADCON1


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

s.4. Curso prctico sobre Microcontroladores


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

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

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

No establecidos

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

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


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

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

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

No e s ta b le c id o s

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

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

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

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

Curso prctico sobre Microcontroladores


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

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

Dividir por: Ose. Para obtener un periodo


del reloj del ADC de:

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

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

7 6 5 4 3 2 1 0

Figura 15.6 Consideraciones sobre e l tiempo de muestreo ADCONO


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

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


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

;.4. Curso prctico sobre Microcontroladores


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

Curso p rctico sobre M icrocontroiadores M T,


El w atch d o g y el m odo sleep

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


(WDT) reloj del TM RO

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


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

m entalm ente su vigilancia consis t Al TM RO


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

gram a in icialice nuevam ente su


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

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


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

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


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

M T . l . Curso prctico sobre M icrocontroladores


Teora

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

F ig u ra 16.4 Palabra de configuracin

Curso p rctico sobre M icrocontroladores c i6 3


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

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

m encionado an teriorm ente, m uchos program a-


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

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

IRP: Selector de pgina para direccionamiento indirecto


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

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


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

Registro U n aspecto im portante que se debe tener en


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

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


El w atch d o g y el modo sleep

l i l i

F ig u ra 1 6.7 Despertando m ediante interrupciones

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


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

it :. Curso p rctico sobre M icrocontroiadores


Teora

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

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


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

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


+V
+V

14
VDD RBO

6 80 2 MCLR
17
RAO

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

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

Curso p rctico sobre M icrocontroladores # r


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

TO PD RB1 RB2 Descripcin


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

Tabla 16.2 B its P D y T0

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


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

< M IK < IIT Curso prctico sobre M icrocontroladores


LECCIN 17

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

Curso p rctico sobre M icrocontroladores


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

28-pn PDIP 68HC908JL3CP


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

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


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

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

Curso p r ctico sobre M icrocontroladores


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

s

s

i
gdS =2 g*
5 o U

t
PTB (0:7)

O.
o

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

UJ =
==
3a:
(u;


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

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

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

rs.A. Curso prctico sobre Microcontroiadores


Teora

U na entrada de interrupcin maestra no sincr , que est


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

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


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

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


Escritura

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

Curso prctico sobre M icrocontroladores


Teora

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


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

E s c ritu ra :

R eset
aB it 7

x
6

1
5

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

recciones p articu lares en el PC . X: indeterminado

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


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

Curso prctico sobre M icrocontroladores t M IK IT T .


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

Los m icrocontroladores M otorola, dentro de


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

Curso p r ctico sobre M icrocontroladores


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

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

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

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


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

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


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

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

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


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

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

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

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


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

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


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

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

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

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

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

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

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

r.4. Curso p r ctico sobre M icrocontroladores


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

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

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

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

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

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

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

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

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

1 2 ,1 5 ,

1 7 ,1 8 ,

2 0 ,2 1

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

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

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

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

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

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

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

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

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

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

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

C urso prctico sobre M icrocontroladores


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

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


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

A unque los puertos de los m icrocontroiadores M o


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

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


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

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


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

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


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

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

D ireccin d e l registro PTAPUE: SOOOD


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

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


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

PTAx

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


p a r a te c la d o

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

Curso prctico sobre M icrocontroladores ( M lK ffT . 181


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

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


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

PTBx

Hacia el mdulo de
convertidores A/D

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

1*. Curso p rctico sobre M icrocontroladores


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

ADC8
LED

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

PTDx

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


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

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

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


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

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

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

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


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

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

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

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

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

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

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

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


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

MDULO DEL
Desde el SIM OSCLADOR

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


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

Desde el SIM Hacia el SIM Hacia el SIM

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

MCU

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


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

Curso prctico sobre M icrocontroladores


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

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

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

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

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

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

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

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

Capacidad de carga del cristal Cl


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

Resistencia de realimentacin rb - - 10 10 - MQ

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

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


r ext

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

Tabla 19.2 C aractersticas y especificaciones de com ponentes externos para lo s m dulos osciladores de los m icrocontroladores
68HC08 y 68HRC08.
*
Curso p rctico sobre M icrocontroladores < J M IK I/W .a. 189
Lil c s c O d iu - y e l lh i Lat LiiLaLaaal i a L a a L a a l i L d ll- li'u m u -u l'

w 14'
12
10 \ Tem peratura 25C

O
cc
cc .\
CEXT = 10 PF
------------ Con Vnn = 5V
o
O
3 6
=i

\ Co i V dd = 3V ; rext MCU

0SC1

a CEXT
<
o

10 20 30 40 50
R e s is te n c ia , R ^ x t ( k i* )

F ig u ra 19.3 Curvas d e resistencia externa contra frecuencia d e l oscilador RC, p ara e l clculo de fe x t

d el m icrocontrolador es la fuente de m ayor je to la in terrupcin ser atend id a en cualquier mo


rarq u a, esto significa que su peticin ser aten m en to , in m ed iatam en te despus de recibir un
d id a in m ed iatam en te luego de su reconocim ien nivel de voltaje en nivel bajo por el p i n de reset-,
to y validacin. en la figura 1 9 .4 se aprecia el d iagram a de tiem
pos que representa la ejecucin de un ciclo de
C ada vez que la C P U del m icrocontrolador reset al in terior del m icrocontrolador.
recibe y valida una seal de interrupcin de reset, el
m icrocontrolador es obligado a asum ir un conjun Condiciones iniciales establecidas por
to de condiciones iniciales para sus mdulos inter m edio del ciclo de reset
nos, y a iniciar la bsqueda y ejecucin de las ins U n a vez la condicin de reset externa o in terna
trucciones en un lugar predeterm inado por los fa se reconoce, in m ed iatam en te m uchos registros
bricantes para el inicio {starting address). y bits de control son grabados con los datos ne
cesarios para in iciar la ru tin a de trabajo con el
La en trada de reset no es sincrnica con el m icrocontrolador, a p artir d e una posicin y con
ciclo de ejecucin de instrucciones, y por lo tan unos parm etros definidos; m uchas de estas con-

BUS DE
D IR E C C IO N E S IN D E T E R M IN A D O SFFFE X$FFFF
D E LA C P U

BUS DE DATOS
D E LA C P U
IN D E T E R M IN A D O PCH

P IN D E R E S E T
M U E S T R E O D E L P IN D E R E S E T

F ig u ra 19.4 Diagram a de tiem pos de un ciclo de reset activado externam ente p o r m edio de la correspondiente entrada

a . Curso prctico sobre M icrocontroladores


PARA SABER MS ediciones in iciales son in d ependientes del m odo
El r e lo j y la p o te n c ia d e l m ic r o c o n tr o la d o r de operacin, y algunas estn destinadas a per
En todos los m icrocontroladores M otorola, la po m itir el arran q u e apropiado de algunos m dulos
te ncia consum ida depende directam ente de la fre internos fundam entales para la C P U ; m ientras
cu encia de operacin a la que haya sido co n fig u q u e otras, d efinen puntos de referencia entre el
rado el m dulo del oscilador, para un voltaje de program ador y la C P U q ue deben considerarse
alim entacin definido; y aunque los m icro co n trla - para ejecu tar correctam ente el cdigo de opera
dores de la fa m ilia 68HC08, a m xim a frecuencia, cin de los program as.
slo consum en 15m A, es im portante considerarlo
ya que en m uchas ocasiones el m icro co n tro la do r
Las principales acciones que se desarrollan,
puede ser parte de un gran sistem a, que h a bitu a l
u na vez que el m icrocontrolador es in icializado a
m ente en la in d u stria puede co n tener m s de un
travs del reset, se describen a continuacin .
ce ntenar de m icrocontroladores y poseer lim ita
ciones en su d isponibilidad de energa.

D espus de la ejecucin del ciclo de reset, el


La e leccin de la fre c u e n c ia ad ecu a d a de o p e ra
registro P C es grabado con las posiciones de
ci n , s ie m p re debe se r un c o m p ro m is o e n tre el
co n su m o de p o te n cia y lo s re q u e rim ie n to s en m em oria $FFFE y $FFFF, definidas para el
tie m p o de respuesta de la ta re a po r ejecutar, sta respectivo vector (u n vector representa el con
se debe e va lu a r para c a lc u la r la fre c u e n c ia de tenido de una lo calid ad de m em oria d efinid a
o p eraci n m n im a y luego c o n fig u ra r el o s c ila y asignada a u n evento externo o in terno), y
d o r del m ic ro c o n tro la d o r a ta l valor. O tro fa c to r la C P U in icia el ciclo de ejecucin o decodifi-
im p o rta n te que se debe co n sid e ra r y que est cacin de las instrucciones all contenidas, que
d ire c ta m e n te re la cio n a d o con la fre c u e n c ia del por lo general son instrucciones de salto.
oscilador, e s el d e sga ste o Ja d ism in u c i n de la
vid a til y la co n fia b ilid a d del m icro co n tro la do r, a T am bin el registro SP se g rab a con el dato
c a u sa de un a u m e n to en el co n su m o de p o te n $ 0 0 F F , u b ican d o la p ila en la p rim era p g i
c ia que se tra d u c e en un in cre m e n to de la te m na de la m em o ria d e d atos, m ien tras q u e el
p e ra tu ra del c irc u ito integrado. registro n d ice H es bo rrado a cero lgico
con el ob jetivo de h acer co m p atib le la m i
En la fig u ra se h a n d ib u ja d o las c u rv a s q u e re g raci n del cdigo de p ro gram a en tre las fa
la cio n a n el c o n s u m o de la c o rrie n te de a lim e n m ilias H C 0 5 y H C 0 8 .
ta c i n (lDD) y la fre c u e n c ia del b u s in te rn o de la
CPU (F0P) en lo s m ic ro c o n tro la d o re s 68H C 08, Todos los dems registros de la C P U asumen
p a ra los d o s v o lta je s de a lim e n ta c i n tp ic o s . un estado indeterm inado luego del reset. Sin em
bargo, algunos bits de control del registro del
cdigo de condiciones C C R , tales como la ms
cara de interrupciones I, y las banderas de los
modos de operacin ST O P y "WAIT, son pues
>
MC60HRC08jX* tos en uno y cero lgico respectivamente, para
5V inhabilitar todas las fuentes de interrupcin y
I I llevar la C P U al modo normal de trabajo.
0 7 8 9
fop0 'bus MHz;

F ig u ra 19.5 C om portam iento de la corriente de alim entacin


del m icrocontrolador con todos sus m dulos internos activos
(lDD), frente a la frecuencia de operacin del re lo j d e l bus interno En los m ic ro c o n tro la d o re s M o to ro la , la
de la CPU ( F J C P U 0 8 cu en ta con dos m odos de operacin
I *
Curso prctico sobre M icrocontroladores < E i d f # TT* . ( 191
1=1 a s c B k d i- v e l i i s M z t u Las lu a t ia iL im iliiiia L ic S LiC U c da- [ J u t e im k

d isp o n ib les para el program ador: el m odo


u su ario y el m odo m o n ito r; en el m odo m o Todas las fu en tes de in terru p c i n d el r e s e t de
n ito r la C P U tien e el m ism o co m p o rtam ien tien en in m e d ia ta m e n te la eje cu c i n de c u a l
to q ue en el m odo u su ario , excepto q ue la q u ie r in stru c c i n en curso d en tro d el m ic ro
d irecci n d efin id a para el vector d el r e s e t se c o n tro la d o r, v e cto riz an h a c ia las p o sicio n es
c am b ia p o r las posiciones reservadas $FEFE SFFFE y SFFFF, in ic ian un cic lo de r e s e t in
ySF E F F . terno q u e g rab a todos los registros de la C P U
con sus valores p o r d efecto , y restablecen las
C o n este d e sp lazam ien to la C P U in ic ia los co n d icio n es in ic ia le s en todos los m d u lo s pe
ciclo s de b sq u ed a y eje cu c i n d el c d igo rifrico s in tern o s.
desde el f i r m w a r e in tern o del m d u lo m o
n ito r y no d ire c ta m e n te en el c d ig o del El cic lo d e r e s e t se p u ed e activ ar desde d i
p ro gram ad o r. versas fu en tes in tern as y extern as a l m ic ro c o n
tro lad o r, com o son: el r e s e t externo (p i n R S T ),
El m odo de o p e ra c i n se d e fin e y es m e- el r e s e t a la co n ex i n { p o w e r -o n r e s e t P O R ), el
m o riz ad o p o r la C P U d u ra n te el fla n c o de r e s e t del tem p o rizad o r w a t c h d o g CO P, el r e s e t
su b id a d e l v o ltaje p resen te en el p i n de r e por c d ig o de o p erac i n ile g a l, el r e s e t por d i
s e t (d u ra n te la tra n sic i n d e V ss a V QD); el reccin ileg al y la in te rru p c i n de in h ib ic i n
m o d o u su ario es el m odo d e trab a jo d e fi por bajo v o ltaje LV1.
n id o por d e fec to tras la in ic ia liz a c i n del
m ic ro c o n tro la d o r, p e ro la se le c c i n d el
PARA SABER MS
m o d o m o n ito r se e fec t a lle v a n d o dos de
Validacin del reset externo e interno
su s ln e a s de p u erto s I/O de p ro p sito g e
Para q u e e l c ic lo de re s e t se a a c tiv a d o , la s se
n eral a V ss y a p lic a n d o en la e n tra d a de
ales q u e lo in ic ia n d e b e n c u m p lir c ie rta s c a
in te rru p c i n 1RQ1 un so b re v o lta je ig u al
ra c te rs tic a s de tie m p o que d e p e n d e n del o ri
a l d o b le d e V DD; en la f i g u r a 1 9 .6 se m u e s
gen de la fu e n te de in te rru p ci n . C uando la fu e n
tran g r fic a m e n te y se resu m en en u n c u a
te es e xte rn a , en el p in de r e s e t(RST) se debe
d ro la s c o n d ic io n e s p a ra s e le c c io n a r el
a p lica r un nivel l g ico cero (Vgg) d u ra n te un tie m
m o d o de o p e rac i n .
po m n im o de 7 5 0 n s , c u a n d o VDD es 5V, de
1 ,5ps, c u a n d o VDD es 3V, p a ra q u e el m d u lo
in te rn o del re s e t lo reco n o zca , v a lid e e in icie
Puertox i m u i a j y la s a cc io n e s p ro p ia s de d ic h o ciclo .
PuertoY 777777/7 \
2VDD .......................................r -
En el ca so de las fu e n te s in te rn a s, su re c o n o c i
IRQ1
Vdd ------------------------------- ' m ie n to y v a lid a c i n se in ic ia c u a n d o la CPU co
RST _____ lo c a d e sde el in te rio r y d u ra n te 1 6 p e rio d o s del
S e le c ci n d e l m o d o usuario S eleccin de l m o d o m o n ito r re lo j del bus, la e n tra d a e x te rn a RST en nivel
cero, y o tro s 16 p e rio d o s d e sp u s se in ic ia el
c ic lo in te rn o de re se t. E sta c a ra c te rs tic a del
Pin RQ1 Puerto X Puerto Y M odo
re s e t a c tiv o p o r fu e n te in te rn a , p e rm ite q u e los
- ^DD X X Usuario m ic ro c o n tro ia d o re s de la fa m ilia 6 8 H C 08 pu e
dan in ic ia liz a r s im u lt n e a m e n te , y a tra v s de
2 x V DD 0 0 Monitor
d ic h a e n tra d a , o tro s c irc u ito s in te g ra d o s , p e ri
f ric o s e xte rn os, y m icro co n tro ia d o re s esclavos,
F ig u ra 19.6 Condiciones para la seleccin d e l m odo de operacin in m e rs o s en un s is te m a c o m p le jo .
de la CPU08

Curso prctico sobre M icrocontroiadores


LECCIN 20

ORGANIZACIN DE LA MEMORIA EN
LOS MICROCONTROLADORES HC08
________ DE MOTOROLA
E n e s ta o c a si n se e s tu d ia r e l m a p a d e m e m o r ia d e los
m ic r o c o n tr o la d o r e s M o to r o la d e la f a m ilia 6 8 H ( R ) C 0 8 .
E n l, se m u e s tr a la d is t r ib u c i n d e la m e m o r ia d is p o n i
b le y d ir e c c io n a b le la c u a l e s t c o n f o r m a d a p o r la m e m o
r ia d e d a to s R A M , la d e p r o g r a m a c i n R O M , y e l re a d e
m e m o r ia R O M d e l p r o g r a m a m o n ito r.

U n a c a r a c te r s tic a p a r tic u la r d e los m ic r o c o n tr o la d o r e s d e


e sta f a m ilia , es la d is p o n ib ilid a d p a r a el u s u a r io d e u n p ro
g r a m a m o n ito r re s id e n te e n la m e m o r ia (f i r m w a r e ), q u e
f a c ilit a la e je c u c i n y d e p u r a c i n d e p ro g r a m a s a trav s
d e l p u e r to s e ria l d e u n a P C .

Curso p rctico sobre M icrocontroladores ( g M / K J f T T s . 193


la m em o ria en ios m icroco ntrolad ores HC08 de v

MAPA DE LA MEMORIA
$0000 Registros l/O
64 bytes
S003F
$0040 Reservados por la CPU
f 64 bytes
S007F
$00 80 RAM
128 bytes
SOOFF
$0100 Sin establecer $0100
601 60 bytes Sin establecer
I 607 20 bytes
SEBFF SF5FF
SECOO ROM del usuario ROM del usuario SF600
MC68H(R)C08JL3/JK3 MC68H(R)C08JK1
4 09 6 bytes I
SFBFF 1536 bytes SFBFF
SFCOO ROM del m onitor F ig u ra 20.1 D istribucin d e l rea de la m em oria en los
512 bytes m icrocontroladores 68H(R)C08JK 1/JK3/JL3
SFDFF
SFEOO Registro de estado del break (BSR)
SFE01 Registro de estado del re s e t{RSR) controladores 68H (R)C 08JL3/JK 3, y de 1.536
SFE02 Reservado (UBAR) b ytese n los microcontroladores 68H (R )C 08JK 1.
Registro de banderas de control del >re,a/c (BFCR)
2. El lugar para los 128 b ytes de m em oria de d a
SFE03
tos R A M disponible en las dos subfam ilias de
SFE04 Primer registro de estados de la interrupcin (INT1)
m icrocontroladores JK y JL .
SFE05 Segundo registro de estados de la interrupcin (INT2)
3. El rea de m em oria asignada para la tabla de
SFE06 Tercer registro de estados de la interrupcin (INT3)
vectores definidos por el program ador, la cual
SFE07 Reservado por la CPU
se com pone de 4 8 bytes.
SFE08 Reservado por la CPU
Reservado por la CPU
4. El espacio de memoria de solo lectura (RO M ), dis
SFE09
tribuidos en dos reas de 512 y 448 bytes cada una.
SFEOA Reservado por la CPU
SFEOB Reservado por la CPU
Asignacin de registros dentro del rea
SFEOC Registro de direccin del break alto (BRKH)
de m em oria
SFEOD Registro de direccin del break bajo <RRKL)
El conocim iento del propsito, la ubicacin exac
SFEOE Registro de estado y control del break (BRKSCR)
ta, la disposicin y la funcin definida para cada
SFEOF Reservado por la CPU uno de los bits que conforman los registros de da
SFE10 ROM del monitor tos, control o estado del microcontrolador, se de
44 8 bytes
SFECF ben tener presentes para controlar y supervisar co
SFFDO Vectores del usuario rrectamente todas las funciones programadas en l.
i 48 bytes
SFFFF
En la figura 2 0 .2 se muestra en detalle la distri
O rganizacin de la m em oria bucin y asignacin que se le ha dado al espacio de
La C P U 0 8 de esta fam ilia de m icrocontrolado memoria direccionable por el microcontrolador, con
res posee un bus de direcciones de 16 bits con el tenido entre las direcciones $0000 y $003F; en l se
que se pueden acceder basta 6 4 K b ytes del rea de encuentran contenidos la gran m ayora de registros
la m em oria. El m apa de la m em oria que se pue de control, de estado y de datos. Adicionalmente,
de apreciar en la fig u ra 2 0 .1 , m uestra su o rgan i algunos registros reservados por la C P U y de prop
zacin, y en l se in cluyen las siguientes reas: sito especial, se han ubicado en las ltimas 16 posi
ciones de memoria localizadas entre SFEOO y $FEOE
1. El espacio de m em oria R O M disponible para el y la ltim a posicin SFFFF que corresponde al
usuario, que es de 4.0 9 6 bytes para los micro- registro de control del C O P (C O P C T L ).

< m M u ir s \ Curso prctico sobre M icrocontroladores


REGISTROS DE PROPSITO ESPECIAL

O ireccin N o m b re del reg istro B it 7 6 5 4 3 2 1 B it 0

Lectura:
$0000 Registro de datos del puerto A PTA6 PTA5 PTA4 PTA3 PTA2 PTA1 PTAO
Escritura: I
(PTA)
Reset: N o s e a fe c ta p o r e l r e s e t

Lectura:
$0001 Registro de datos del puerto B PTB7 PTB6 PTB5 PTB4 PTB3 PTB2 PTB1 PTBO
Escritura:
(PTB)
Reset: N o s e a fe c ta p o r e l re s e t

$0002 Sin establecer

$ 00 03 Registro de datos del puerto D 1erlura PTD 7 PTD6 PTD 5 PTD4 PTD3 PTD2 PTD1 PTDO
(P T D ) Esentura:
Reset: N o s e a fe c ta p o r e l re s e t

Lectura: I n I
$0004 Registro de direccin de datos A r ---------------- D D R A 6 DDRA5 DDRA4 DDRA3 DDRA2 DDRA1 DDRAO
(D O R A ) Escn1ura: H d
Reset: 0

$0005 Registro de direccin de datos B Lec,ura: DDRB7 DDRB6 DDRB5 DDRB4 DDRB3 DDRB2 DD R B1 DDRBO
(DDRB) Escritura:

Reset: o

$0006 Sin establecer

Lectura:
$0007 Registro de direccin de datos D DDRD7 D0R D 6 DDRD5 DDRD4 D 0R D 3 DDRD2 DDRD1 DDRDO
Esentura:
(DDRD)
Reset:

$0008
I Sin establecer
$0009

Lectura: 0 I 0
SOOOA Registro de control del puerto D _ SL0W D 7 S L0W D 6 PTDPU7 P TD P U 6
(PDCR) Escrrtura:l
Reset: 0 O

S000B Lectura:
Sin establecer
Escritura:
SOOOC

Registro hbilitador de entradas Lectura: PTA6EN PTAPU E6 PTAPUE5 PTAPU E4


$000D PTAPUE3 P TA P U E 2 PTAPUE1 PTAPUEO
p u ll-u p d el p uerto A Escritura:

Reset: 0

S000E Lectura:
i Sin establecer
Escritura:
$0019

Registro de control y estado del Lectura: | 0


1 0 0 0 KEYF 0 IM A S K K M ODEK
$001A
teclado Escritura: ACKK
(KBSCR)
Reset: 0 0 0 0 0 0 0 0

Registro habilitador de Lectura: 0


S001B interrupciones del teclado Escritura:
_| K B IE 6 K B IE 5 K B IE 4 K B IE 3 K B IE 2 KBIE1 KBIEO

Reset: 0

Curso p rctico sobre M icrocontroladores


_
w*
^
la m em o ria en los m icrocontroladores
m ------ i

D ire c c i n N o m b re d e l re g is tro B it 7 B it O

L e c tu ra :!
$001 c Sin establecer
E scritu ra :!

I 0 I 0 I 0 I 0 I IRQF1 0 IMASK1 M0DE1


S001D ACK1
control de IRQ Escritura:
(INTSCR)
feset: 0

Lectura:
$001E Registro de configuracin 2 IRQPUD R R LVIT1 LVITO R R R
Escritura:
(C0NFIG2)*
Reset: 0 0 0 0** 0 '* 0 0 0
Lectura
$001F Registro de configuracin 1 COPRS R R LVID R SSREC STOP COPD
Escritura:
(CONFIG1)*
0 0 0 0 0 0 0 0
por medio del reset a la conexin (POR) las interrupciones LVITI y LVtTO se colocan en 0 lgico
Lectura: TOF 0
$0020 Registro de estado y control del TIM TOIE TSTOP PS2 PS1 PSO
(TSC)
Escritura: 0 TRST
0 0 1 0 0 0 0 0
| B it 15 | Bit 13 j Bit A2 | B ittO | Bit 9 | Bit 8 |
$0021 Registro alto del contador del TIM Escritura:
(TCNTH) i s y
0 0 0 0 0 0 0 0

^ B i,3 j B it 2 j r j o _ |
$00 22 Registro bajo del contador del TIM Escritura: g g
(TCNTL) E S
0 0 0 0 0 0 0 0

Registro alto del m dufo del Lectura


| Bit 15 | S/f14 | B it 13 B it 12 S /M 1 Bit 10 Bit 9 B it 8
$0023 contador del TIM Escritura:
(TMODH)
1 1 1 1 1 1 1 1

Registro bajo del m dulo del Lectura:


| B it 7 BitS Bit 5 B it A B it 3 Bit 2 B it\ BitO
$0024
contador del TIM Escritura

< D L> Reset: 1 1 1 1 1 1 1 1

Registro de estado y control del Lectura I CHOF ELSOA TOVO CHOMAX


$0025 CHOIE MSOB MSOA ELSOB
canal 0 del TIM Escritura 0
<T S C 0 > ***,: 0 0 0 0 0 0 0 0
Lectura
$0026 Registro alto de! canal 0 del TIM F it B it 15 Bit 14 B it 13 Bit 12 Bit 11 e /n o BitS B it8
(TCHOH)
Reset: Indeterminado despus del reset

$00 27 Registro bajo del canal 0 del TIM Lectura: Bit 7 B it 6 BitS Bit 4 Bit 3 Bit 2 B it 1 Bit O
(TCHOL) Escritura:

Reset: Indeterminado despus del reset

Registro de estado y control del Lectura CH1F CH1IE 1 ~ l MS1A ELS1B ELS1A TOV1 CH1MAX
$0028
canal 1 del TIM Escritura: 0
(TSC1)
Reset: 0 0 0 0
Lectura:
$0029 Registro alto del canal 1 del TIM Escntura: B it 1 5 B it 14 Bit 13 Bit 12 S/11 Bit 10 Bit 9 Bit 8
(IL-rt Irt)
Reset: Indeterminado despus del reset

Registro bajo del canal 1 del TIM Lectura


Bit 7 Bit& Bit 5 B it 4 B it 3 B it 2 Bit 1 B it O
S002A (TCH1L) Escritura:

Reset: Indeterminado despus del reset

Curso prctico sobre M icrocontroladores


Teora

D ire c c i n N om bre del re g is tro BilT B itO

S002B
Sin establecer
i
S003B

Lectura:! COCO
S003C Registro de estado y control del ADC AIEN ADCO CH 4 CH3 CH2 CH1 CHO
Escritura: [
(ADSCR)
R eset: 0

Lectura: I AD7
S003D Registro de datos del ADC E sc ritu ra :!
(ADR)
Reset: In d e te rm in a d o d e s p u s d e l re s e t

Lectura
$0Q3E Registro de entrada de reloj del ADC
(ADICLK) Escritura

R eset o

Lectura:
S003F Sin establecer
Escritura:

Lectura: SB S W
SFEOO Registro de estado del break R R R R R R R
Escritura: V e r n o ta
(BSR)
Reset: 0
NOTA: E scribiendo un 0 lgico se borra e l b it SBSW

Lectura: POR PIN I COP ILOP ILAD M ODRST LVI


SFE01 Registro de estado del reset
Escritura _____ _____
(RSR) I I
R eset: 1

Lectura:
$FE02 Reservado c R R R R R R R R
Escritura:

Lectura:
BCFE
Ll_
LU
o
co

Registro de las banderas de control R R R R R R R


Escritura:
del break
(BFCR) R eset: 0

Lectura: IF 5 IF4 IF3 IF1 0 0


SFE04 Primer registro de estado de las 0 0
interrupciones Escritura: R R R R R R R R
(INT1) Reset: 1 0 0 0 0 0 0 0

Segundo registro de estado de las Lectura: IF 1 4 0 0 0 0 0 0 0


SFE05
interrupciones Escritura: R R R R R R R R
(INT2) R eset: 0 0 0 0 0 0 0 0

Lectura: 0 0 0 0 0 0 0 IF1 5
SFE06 Tercer registro de estado de las Escritura: R R R R R R R R
interrupciones
(INT3) Reset: 0 0 0 0 0 0 0 0

SFE07 Lectura:
Reservado R R R R R R R R
1 Escritura:
SFEOB

Lectura:
$FE0C Registro de direccin del b rea k alto Bit 15 B it 1 4 Bit 1 3 Bit 1 2 Bit 11 B it 1 0 Bit 9 Bit 8
Escritura:
\RDRnKi\Hn1;
Reset: 0 0 0 0 0 0 0 0

Lectura:
B it 7 Bit 6 B it 5 Bit 4 Bit 3 Bit 2 B itt BitO
c/>

Registro de direccin del brea k bajo


TI
m
O
o

Escritura:
(BRKL)
Reset: 0 0 0 0 0 0 0 0

Curso p r ctico sobre M icrocontroladores M IK < IIT > 197


D ire c c i n N o m b re d e l re g is tro B it 7 B it 0

SFEOE Registro de estado y control del Lectura:


break Escritura:
(BRKSCR) Reset: o

SFFFF Registro de control del COP Lectura: B y te b a jo d e l v e c to r d e l re s e t


(COPCTL) Escritura: L a e s c ritu r a d e c u a lq u ie r v a lo r b o rra el c o n ta d o r d e l CO P

Reset: N o e s a fe c ta d o p o r e l re s e t

Sin establecer Reservado

F ig u ra 2 0 .2 Localizacin y asignacin de los registros y bits de control, estado y datos, que conform an e l m apa d e la m em oria de los
m icrocontroladores 68H(R)C08JK 1/JK3/JL3

T a b la d e v e c to re s n a r y recup erar eficazm ente los registros de la


En la ta b la 2 0.1 se m uestran los 16 vectores de C P U d u ran te los llam ad o s, saltos, e in terru p
finidos para las in terrupcion es en los m icrocon ciones. La p g in a cero de la R A M est confor
troladores de esta fam ilia; su funcin, su direc m ada por los prim eros 128 bytes-, sta provee al
cin exacta, y su nivel de prioridad son de gran u su ario de un espacio id eal para el acceso fre
im p o rtan cia a la hora de atender los llam ados de cuen te de v ariab les globales d el p ro gram a y un
in terrupcin internos y externos solicitados por acceso rp id o a las in stru ccio n es por m edio de
la C P U ; estos vectores se encuentran en 48 posi d ireccio n am ien to directo.
ciones de m em oria de 16 bits cada una. En la
tabla se puede ver tam bin la p rioridad de cada M e m o ria d e p ro g ra m a d e so lo le c tu ra
vector la cual es el parm etro q u e define el orden RO M
de atencin que la C P U le dar a cada una de En esta rea de m em oria de 8 bits definida entre
ellas en los casos cuando su activacin pueda lle las direcciones SE C 00 y SFBFF (4 09 6 bytes) para
gar a ser sim u ltn ea ante cu alq u ier evento in ter los m icrocontroladores 6 8H (R )C 08JK 3/ JL 3, o
no o externo. entre las direcciones SF 600 y $FBFF (13 3 6 bytes)
para los 68F 1(R )C 08JK 1, el usuario puede guar
M e m o ria d e d a to s d e le c tu ra y dar los datos que hacen parte del cdigo del pro
e s c ritu ra R A M gram a, as com o las constantes, asignaciones y eti
Las direcciones $ 0 0 8 0 y $00F F definen el espa quetas que se deben preservar dentro de la m em o
cio de m em oria R A M con una lo n gitu d de pala ria por tiem po indefinido y sin m odificacin.
bra de 8 b its ; en ella se albergan todos los datos
tem porales q ue sean requeridos por el program a En esta rea tam bin estn contenidas la ta
dor, y que requieran ser ledos y m odificados en b la de vectores de las interrupciones y el vector
cu alq u ier m om ento. del reset d e 1 m icrocontrolador, entre las direccio
nes $F F D 0 y $FFFF, tal com o se aprecia en la
D entro de esta rea se debe u b ic ar e l espa tab la 20.1.
cio para la p ila de datos (stack ), y a u n q u e su
u b icaci n pu ede ser p ro gram ad a y posea un re M e m o ria R O M del p ro g ra m a m o n ito r
gistro SP de 16 b its que le da m ovilidad dentro (M 0 N )
de los 64 K b y te del rea de m em o ria, su u b ica El p ro g ram a m o n iro r, in a lte ra b le y resid en te
cin siem pre debe estar dentro del espacio R A M , en la m em o ria R O M d en tro del m icro co n tro
y esp ecialm en te en la p g in a cero para alm ace lad o r, se ha in c lu id o en su a rq u ite c tu ra para

< M 0W t : Curso p rctico sobre M icrocontroladores


Teora

P rioridad Sm bolo D ireccin V ector

Ms baja IF15 SFFDE Vector alto de fin de conversin del ADC

SFFDF Vector bajo de fin de conversin del ADC

IF14 $FFE0 Vector alto del teclado

$FFE1 Vector bajo del teclado

IF13 a IF6 Espacio sin uso

IF5 $FFF2 Vector alto de sobreflujo del TIM

$FFF3 Vector bajo de sobreflujo del TIM

IF4 SFFF4 Vector alto del canal 1 del TIM

SFFF5 Vector bajo del canal 1 del TIM

IF3 SFFF6 Vector alto del canal 0 del TIM

SFFF7 Vector bajo del canal 0 del TIM

IF2 Espacio sin uso

IF1 SFFFA Vector aito de la RQ

$FFFB Vector bajo de la IRQ

SFFFC Vector alto de SWI

SFFFD Vector bajo de SWI

SFFFE Vector alto del reset

SFFFF Vector abajo del reset

Tabla 20.1 Tabla d e vectores de las interrupciones en los m icrocontroladores 68H(R)C08JK1/JK3/JL3

q u e el u su ario p u e d a p ro b ar la eje cu c i n co 3 . E fect a la c o m u n ic a c i n a u n a v e lo c id a d


rrecta de un p ro g ram a p o r m edio de u n a in p ro g ra m a b le e n tre 4 .8 0 0 b a u d io s y 2 8 ,8
te rfa z de c o m u n ic a c i n s e ria l d e dos h ilo s K b au d io s, y p u ed e e je c u ta r c d igo s de p ro
R S 2 3 2 y el p u erto de u n a c o m p u tad o ra com o g ra m a d esd e las m e m o rias R A M o R O M .
d isp o sitivo m aestro. Las p rin cip ales c ara cters
ticas d el m odo m o n ito r son: En la f ig u r a 2 0 .3 se m u e stra el c irc u ito
tp ic o q u e se re q u ie re p a ra tr a b a ja r con el
1. M an tien e la funcion abilidad de todos los /ri m ic ro c o n tro la d o r en el m o d o m o n ito r, en l
es, reserva un p i n (PTBO) para establecer la se h a n u s a d o u n d r i v e r de c o m u n ic a c i n
com un icaci n serial entre el m onitor y la PC . R S 2 3 2 (M C I 4 3 4 0 7 ) y u n b u ffe r d e tres e s
2 . U sa un protocolo de com un icaci n estndar tad o s (7 4 1 2 5 ) p a ra c o n tr o la r la d ir e c c i n de
m arca-espacio sin retorno a cero (N R Z ). lo s d ato s.

Curso prctico sobre M icrocontroladores < M IK < IIT s >


>,- 1 W
-- 1 1^ la m em o ria en los m icrocontroiadores

Interruptor de
(Nota 2) V d d + v HI reset
-
RST

RQ

VDD

VSS

0SC1

0SC2

HC08JL3

HC08JK1
HC8JK3
PTB3

PTB0

NOTAS:
1. Con SW1 en posicin A. el reloj del bus es igual
al reloj del oscila dor d ividido por cuatro. PTB1
Con SW1 en p o sicin B, e l re lo j de l bus es
igual al reloj del oscilador d ividido por dos. PT82
2. VH| es aproxim adam ente igual a VDD.

3. El os cila d o r externo debe tene r un ciclo de


se rvicio igua l al 50% .

F ig u ra 2 0 .3 C ircuito tpico para e stablecer e l uso d e l m odo m o nitor

Acceso al m odo m onitor ig u a l a V DD +VHr (V H) p u ed e e sta r en tre


La ta b la 2 0 .2 resum e las c o n d icio n es q u e se 0 ,7 x V dd com o valor m n im o , y V DD com o
deben c u m p lir p ara e n tra r al m odo m o n ito r. m x im o ), excitar la en trad a de reloj externa
Para e n tra r a d ich o m o d o d e trab ajo , de acu er a travs de O S C l con una frecuencia igu al a
do con la fig u ra 2 0 .3 , el m icro co n tro lad o r re 4 ,9 1 2 3 M H z , y llevar el p in de en trad a PT B 3
q u ie re la a p lic ac i n de un r eset a la co n ex i n a un nivel bajo (0 lgico).
(p o w e r -o n r eset P O R ), lu ego de h ab er c u m C o lo ca r la e n tra d a ex tern a de in terru p c i n
p lid o con uno d e los dos c o n ju n to s d e c o n d i IR Q l en un n iv el de v o ltaje ig u a l a V DD
cion es q u e a c o n tin u ac i n se resu m en . +V H|, ex citar la e n tra d a de relo j extern o a
travs de O S C l con u n g en e rad o r de fre
1. C olo car la p rin cip al en trad a externa de in te c u e n c ia ex tern o aju stad o en 9 ,8 3 0 4 M H z ,
rrup ci n I R Q l, lo calizad a en el p in 1 del y llev ar el p in de e n tra d a P T B 3 a un nivel
m ic ro c o n tro lad o r, en un n iv el d e v o ltaje alto (1 l g ic o ).

Curso prctico sobre M icrocontroiadores


Teora

Fuente del reloj

PTB3

PTBO
PTB2
Frecuencia del

PTB1
IRQ1 Comentarios
y frecuencia bus

V DD + V H | 0 0 1 1 OSCl a 2 ,4 5 7 6 M H z E n tra a l m o d o m o n ito r:

4 ,9 1 5 2 M H z El re lo j e x te rn o lle g a d ir e c ta m e n te a
O S C L La c o m u n ic a c i n se e sta b le ce
VDD + Vhi 1 0 1 1 0SC1 a 2,4576 MHz a 9 ,6 0 0 b a u d io s . El te m p o riz a d o r
9,8304 MHz OOP p e rm a n e c e d e s h a b ilita d o .

V DD X X X X F re c u e n c ia d e fin id a en XTALCLK* 4

lo s m d u lo s R CC LK 4 E n tra a l m o d o u s u a rio

o s c ila d o r e s X T A L RC

Tabla 2 0 .2 Requerim ientos y opciones para e n tra r a l modo m o nitor

V ectorizacin en el m odo m onitor d e l estad o d e la e n tra d a P T B 3 , u n a vez se ha


El M C U c am b ia alg u n a s d ireccio n es d efin id as en trad o al m o d o m o n ito r. C u an d o el P T B 3
en el m odo u su ario p ara los vectores d e las in est en estad o a lto se d iv id e por 1 .0 2 4 , m ie n
terru p cio n es d el reset, el S W I, y el b rea k ; stos tras q u e c u a n d o su n iv el es un cero l gico se
son d e fin id o s a lte rn a tiv a m e n te en la p g in a d iv id e p o r 3 1 2 ; el resu m en para la seleccin
$FE , y p erm iten q u e la C P U in ic ia lic e la e je de la rata de tran sm isi n del m odo m o n ito r,
c u ci n d el c digo d el p ro gram a d esde el f i r - de acu erd o con el c irc u ito de la fig u ra 2 0 .3 .
m w a r e d el m o n ito r, y no d esde la m em o ria de
p ro g ram a d el m odo u su ario . Form atos bsicos de com unicacin del
modo m onitor
Velocidad de com unicacin del m odo En la fig u ra 2 0 .4 a , se p u ed e ap reciar que la co
m onitor m un icaci n con el p ro gram a m o n ito r se efecta
L a v e lo c id a d con la que se e fect a la tran sfe en un form ato de datos estndar de m arca-espa
re n c ia d e datos e n tre el m ic ro c o n tro lad o r y la cio sin retorno de cero (N Z R ). La velocidad de
P C , se d e fin e en fu n c i n de la frecu en cia del transm isin puede ser cu alq u ier valor estndar
m d u lo o scilad o r ac tiv o , y d ep en d e tam b in entre 4 .8 0 0 baudios y 2 8 ,8 Kbaudios.

(a) FO R M A T O DE D A TO S D E L M O N ITO R prxim

~\ M a o j ( BITO X BIT 1 )( BIT 2 X BIT 3 j BIT 4 jU r T l BIT 6 j BIT F ^ r D E ^ a o

F O R M A S DE O N D A DE M U E S TR E O D E L M O N ITO R PROXIMO
\ B I T DE i------------- v i------------- 1 i------------- 1 i----------------------------- 1 0B,I1T DE
ufc
SA5 \INICIO / BITO \ BIT 1 / BIT 2 \ BIT3 BIT4 / BIT 5 \ BIT6 / BIT7 rD E ^ INICIO

B R E A K ~ \aNBCio BITO BIT 1 BIT2 BIT3 BIT4 BIT 6 BIT6 BIT7 p a ra d a /p ^ m o '

F O R M A T O D E O N D A S D E L E C T U R A D E L M O N IT O R
E N V IA R A L
M O N IT O R

ECO DEL DATO


( D E V U E L T O A L M O N IT O R )

F ig u ra 2 0 .4 Form ato d e datos y eco durante e l ciclo de lectura desde e l m odo m o nitor

Curso prctico sobre M icrocontroladores C f e


los m icrocontroladores HC08 de M otorola

Para garantizar la transferencia lim p ia de da Com andos del m onitor


tos por m edio del d r iv e r e com unicacin, el pro En las fig u ra s 2 0 .5 se d escrib en g rficam en te
gram a m onitor hace eco de cualquier dato recibi las secuen cias de los seis co m an d o s que se usan
do, envindolo de vuelta hacia el term inal PTBO en e l m o d o m o n ito r : le c tu r a d e m e m o ria
para efectuar el chequeo de error respectivo. Esto R E A D , e sc ritu ra en m em o ria W R IT E , le c tu
se puede apreciar en la fig u ra 2 0 .4 b , all se ve que ra in d ex ad a IR E A D , e sc ritu ra in d ex ad a IW R I-
cualquier resultado de un com ando slo ser trans TE , le c tu ra d el p u n tero de la p ila R E A D S P , y
ferido luego del eco del ltim o byte del m ism o. eje cu c i n del p ro gram a R U N .

E N V IA R A L
M O N IT O R

X READ )( REA D \ A D P R . H IG H \ ADOR. MK3H j["~A D D R -LO W \ ADCTL PATA X

ECO
RESULTADO
F ig u ra 2 0 .5 a Comando de lectura del rea d e m em oria READ
E N V IA R A L
M O N IT O R

X
T
W R ITE ~ ~ X W R IT E X
I
ADOR- H IGH \ A D O R . H IG H LO W ) ^ A P D R LO W ~)( DATA )( DATA )(

ECO I
F ig u ra 2 0 .5 b Com ando d e escritura d e l rea de m em oria WRITE

E N V IA R A L
M O N IT O R '

F ig u ra 2 0 .5 c Comando de lectu ra indexada


X 'READ X X P * 1* X PATA )( d e l rea de m em oria IREAD

ECO RESULTADO

E N V IA R A L
M O N IT O R

F ig u ra 2 0 .5 d Comando de escritura indexada del \ l


rea de m em oria IW RITE X IW R ITE IW R ITE X D A IA
L 0ATA )
ECO . f
E N V IA R A L
M O N IT O R
F ig u ra 2 0 .5e Com ando de lectu ra de l
re g istro apuntador de la p ila SP (Stack
)( READSP WEAPSP X SPW 6W \ SPLO W X Pointer) desde e l m o n ito r READSP

ECO RESULTADO

E N V IA R A L
M O N IT O R

F ig u ra 2 0 .5 f Comando para la ejecucn d e l cd igo de X R UN f~ RUH j


program acin del usuario desde e l m o n ito r RUN

ECO

Figura 2 0 .5 Form ato de datos y eco durante e l ciclo de lectu ra desde e l m odo m o n ito r

i. Curso prctico sobre M icrocontroladores


EL MDULO DMA Y LOS MODOS DE
DIRECCIONAMIENTO EN LOS
MICROCONTROLADORES 68HC08
L os m ic r o c o n tr o la d o r e s M o to r o la d e la f a m ilia 6 8 H C 0 8 ,
a d e m s d e p o s e e r d ie c is e is m o d o s d e d ir e c c io n a m ie n to ,
t ie n e n u n m d u lo e s p e c ia l p a ra el a c c e so d ire c to a m e m o
r ia (D M A ); q u e , ta l c o m o e n lo s g r a n d e s s iste m a s a b ie r to s
d e c m p u to , se u sa p a r a tr a n s f e r ir r p id a m e n te b lo q u e s
d e d a to s e n tre re as y re g is tro s d e m e m o r ia .

L a c a r a c te r s tic a m s im p o r ta n te c o n q u e c u e n ta n los m i
c r o c o n tr o la d o r e s , d e s d e el p u n to d e v is ta d e l p r o g r a m a
d o r y e n c u a n to a l m a n e jo y a l p r o c e s a m ie n to d e los d a to s,
se e n c u e n tr a e n la d is p o n ib ilid a d d e v a rio s m o d o s d e d i
r e c c io n a m ie n to e in s tr u c c io n e s q u e s o p o rta n la tra n sfe
r e n c ia d e d a to s e n tr e los re g is tro s y la m e m o r ia .

Curso p rctico sobre M icrocontroladores


BH ,t..t
El uiiiulu U l A y Le m u t i u e l- d a m l i i u a i i L L m u d i Le luinudiiiiiuliiiui^UtiKt

Acceso directo a m em oria (DMA) transferencia con el D M A se efecte, este m d u


El acceso directo a m em oria D M A (D irect M e lo debe tom ar el control m aestro de todo el siste
m o r y A ccess), es un m todo rpido y eficaz que m a de buses y asu m ir tem poralm ente las fu n cio
perm ite guard ar y retirar grandes volm enes de nes de control d e la C P U ; en trm inos generales,
datos de la m em oria y alguno s registros de datos el D M A op era de dos m aneras diferentes: en ci
especiales, sin la in terven ci n de la C P U . El clo com partid o y con la C P U detenida.
D M A es un m todo que nace con los sistem as
de cm puto grandes y com plejos y los m icro- Para transferir pequeos volm enes de datos
procesadores de alro rango; afo rtunadam ente el el m todo de acceso directo a m em oria que ms
desarrollo de la tecnologa y las exigencias de los se usa es con la C P U detenida; ella le otorga tem
sistem as em bebidos de control en un solo ch ip poralm ente al D M A el control total del sistem a
(circu ito integrado) cada vez m ayores y m s fre de buses y le perm ite hacer la transferencia en el
cuentes, han im pulsado la in tegraci n dentro de m enor tiem po posible; m ientras que cuando se va
la estructura de los M C U (M icro co n tro ller Unit) a transferir un gran bloque de inform acin, el m
de funciones y m dulos perifricos de alto des todo que se usa slo roma el control de u n a parte
em peo, tal com o el D M A . del sistem a de buses y lo com parte con la C P U ,
perm itiendo as que desde sta se desarrollen las
Los m icrocontroladores de 8 bits, de la fa tareas y el procesam iento continuo de los cdigos
m ilia 6 8 H C 0 8 , son un ejem plo de la evolucin de program a sin interrupcin durante la transfe
en el m anejo de la m em oria; stos poseen un m rencia. Bajo esta condicin la velocidad del m ovi
dulo que p erm ite el coprocesam iento de datos m iento de datos se reduce, pero la C P U no detie
por m edio del acceso directo, que se conoce como ne la ejecucin de sus tareas.
el m dulo D M A 08.
El m dulo DM A08
En la fig u ra 2 1 .1 se m uestra un d iagram a de El uso del D M A es im p o rtan te d u ran te el m ovi
bloques sim p lificado de un sistem a general con m iento de datos, porque libera de funciones a la
D M A ; en este caso es claro que la arquitectu ra C P U , reduce el cdigo ejecutable necesario, in
de los buses de datos, direcciones y control, son crem enta la velocidad de respuesta, y perm ite usar
un soporte fundam ental para los m ovim ientos con m ejor eficien cia el espacio de m em oria de
de datos que se apoyan en el D M A . Para que la program a disponible. En los M C U de la fam ilia

BUS DE DIRECCIONES Y DATOS

Espacio de
d ire c c io n e s

BUS DE CONTROL Y ESTADO

Figura 21.1 D iagram a de bloques d e un sistem a sim p le con DMA

te m M in n .4. Curso prctico sobre M icrocontroladores


6 8 H C 0 S , el D M A 08 es un m dulo coprocesa- Operacin del m dulo DM A08
d o r q u e puede tom ar el control de los buses de En la figura 2 1 .3 se representa claram ente en blo
direccin y datos al co n clu ir cu alq u ier ciclo de ques el m odo de operacin del D M A ; los bloques
bus, y est diseado para p erm itir la transferen que representan las direcciones bases de las posi
cia de datos entre dos posiciones cualesquiera que ciones fuente y destino, estn conformados por
puedan ser direccionadas por la C P U . dos registros de 16 bits cada uno, en donde la C P U
coloca la direccin base antes de in iciar la transfe
El acceso al m dulo D M A 08 est basado en rencia con el D M A ; m ientras que el bloque con
una caracterstica m odular de la estru ctu ra in ter tador de b ytes est constituido por un registro que
na del M C U de la fam ilia 6 8 H C 0 8 , que perm ite lleva la cuenta del nm ero de transferencias he
desde fbrica, h ab ilitar y expandir el nm ero de chas. En condiciones norm ales, la A L U del D M A
canales de acceso directo a m em oria D M A , en aum entar en uno el contenido del contador cada
tre uno y siete canales independientes. vez que un byte com plete su transferencia, y tras el
ciclo de reset se borrar.
L a figura 2 1 .2 es u n a representacin sim
p lificad a d el m du lo D M A 0 8 q ue m uestra sus El b loq u e de lo n g itu d d e fin e , p o r m ed io
bloq ues fu ncion ales desde el p u n to de vista del d el registro d e lo n g itu d de b lo q u e, el n m ero
program ador; en l, el sistem a de control lgico de b ytes q u e van a ser tran sferid o s en u n a op e
h a b ilita el D M A y seleccio n a el co n ju n to d e re raci n p a rtic u la r del D M A , y su c o n te n id o se
gistros que se req uieren por el canal activo , m a usa p ara ser co m p arad o con el d el co n tad o r de
neja el in crem ento o d ecrem ento del registro b y tes y as d e te rm in a r el fin de la tran sferen cia.
base ap u n tad o r de d ireccion es de la fuen te y el En el D M A , la A L U es un su b sistem a de 16
d estin o , y co n tro la el m o vim ien to seguro de b its q u e se u sa p ara c a lc u la r r p id a m e n te las
datos (ver figura 2 1 .3 ).

DIRECCION DE PARA
TRANSFERENCIA ii

DIRECCIN I DIRECCIN
o n m u ta d o re s
d e l bus
r
FUENTE BASE I DESTINO BASE

r
BUS INTERNO DE L A CPU DE DATOS Y DIRECCIONES
*
Bus de 16 bits REGISTROS MULTIPLES REGISTROS, UNO
Bus de 8 b its POR CANAL POR CADA CANAL DMA
Lneas de control

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

Curso prctico sobre M icrocontroiadores (gM IK Z IIT


LzLluiiiilu Iv'l/a v lus luudus El1 (iLLiKtmillUliI^lilq cu lus lutciucuiiiiijI lllulcc lUliP

DIRECCIN BASE
DE LA FUENTE

DIRECCIN BASE
DEL DESTINO

DIRECCIN DE
TRANSFERENCIA

BUS INTERNO DE
LA CPU

F ig u ra 2 1 .3 Operacin d e l m dulo DM A08

d irec c io n es ac tu ales de la fu en te y el d estin o 5. O p c i n d e tra n sfe re n c ia d e un s lo b lo


(en un slo c ic lo ), y p ara in crem e n tar el co n q u e , o de b lo q u e s re p e tid o s en lazo de
tad o r de b y tes con cad a tran sferen cia. Bajo la s e g u rid a d .
d irecci n d el m d u lo D M A , la A L U g u a rd a la 6. L o n gitud del bloque de datos program able
d irec c i n d e la p r x im a tran sferen cia en un hasta 2 3 6 bytes.
registro tem p o ral de d ireccio n es, y, en el m o 7. Interrupcin para la C P U del fin de transfe
m en to p re c iso , d e p o s ita en el bus in te rn o rencia de datos del D M A .
(IB U S ) su co n ten id o . 8. N ivel de p rio rid ad de la transferencia con
D M A , program able.

)l ado del
Las caractersticas principales con que cuen ta el
m dulo D M A 08 son: Para describir el conjunto de registros de control y
estado que hacen parte de la configuracin y el
1. A rq u ite c tu ra m o d u la r y e x p a n s ib le p o r el control del m dulo D M A , se har referencia slo
fa b ric a n te , h a sta sie te c a n a le s in d e p e n al canal 0, ya que las funciones y el m odo de ope
d ie n te s. racin de todos los canales son iguales e indepen
2. R ata m xim a de transferencia de datos igual dientes. Estos son:
a 4 M bytes/sec. C o n la frecuencia del bus in
terno igual a 8 M H z, se transfiere un byte
cada dos ciclos de bus. Este registro se usa p ara h a b ilita r in d iv id tia l-
3. Registros separados de direcciones base para m en te c ad a c an a l, la in te rru p c i n d el D M A
la fuente y el destino, de 16 bits cada uno. p ara la C P U , y el p o rc en taje d el bu s in tern o
4. C apacidad de transferencia de un b yte (8 bits), que se va a c o m p a rtir en tre el D M A y la C P U .
o una palabra (1 6 bits). (F ig u ra 2 1 .4 )

206 C l M M U IT s ,. Curso prctico sobre Microcontroladores


PARA SABER MS:
A lg o ritm o b sico p a ra la tra n s fe re n c ia co n el m Paso 5: D efina en el re g is tro de lo n g itu d del b lo
d u lo D M A 08 que del canal 0 (DOBL), el n m e ro de
Para p ro g ra m a r la tra n s fe re n c ia de d a to s , a tra b y te s p o r tra n s fe rir.
vs del m d u lo D M A 08, se p u ede u sar el sig u ie n Paso 6: Use el registro de estado y co n tro l del DMA
te p ro c e d im ie n to co m o u n a gua, y en v is ta de (DSC) para a signar el nivel de prioridad de
que to d o s lo s ca n a le s del D M A o p eran id n tic a la tra n sfe re n c ia , a ctiva r la tra n sfe re n cia
m e n te , ste se d e s c rib ir s lo para el c a n a l 0. cclica, y h abilitar o no el DMA durante el
m odo de espera del MCU (WAIT).
Paso 1: In h a b ilite el ca n a l 0 del DMA. Paso 7: Para co n tro la r desde el so ftw a re la tra n s
Paso 2: E scriba en el re g is tro de d ire c c i n base fe re n cia de datos, coloque en 1 lgico el
de la fu e n te , la d ire c c i n del p rim e r dato /fSWIO del registro 2 de co n tro l del DMA
que debe se r ledo desde la fu e n te (DOSH (DC2). La tra n sfe re ncia com e n za r dos c i
y DOSL). clos despus de la habilitacin del canal 0.
Paso 3: E scriba en el re g is tro de d ire c c i n base Paso 8: F in a lm e n te , p a ra h a b ilita r la tra n s fe re n
del d e s tin o , la d ire c c i n de la p o sicin c ia y m a n e ja rla d e sde un p e rif ric o p o r
en d o nde se de b e e s c rib ir el p rim e r dato m e d io de una in te rru p c i n , se d e b e h a
d e s tin o (DODH y DODL). b ilita r la in te rru p c i n de fin de tra n s fe
Paso 4: A c c e d a el re g is tro de c o n tro l del ca n a l 0 re n cia , s e le c c io n a r el p o rc e n ta je de o c u
(DOC) para h a b ilita rlo , y s e le c c io n a r las pa ci n del bus y h a b ilita r el ca n a l DM A.
fu e n te s del in c re m e n to y d e c re m e n to , y Todo esto, d e s d e el re g is tro l de c o n tro l
la lo n g itu d del d a to . del D M A (DC1).

DC1 $ xx x x
B it 7 6 B it O
0: Inhabilita la interrupcin del canal O
Lectura:
BB1 BBO TECO IEC0
Escritura:
R eset: 0 0 0 0 0 0 0

Reservado Figura 21.4 R egistro 1 de con trol d e l D M A (D C I) C o n este re g istro , se p ro g ra m a n : la


p rio r id a d , el m o d o d e tra n sfe re n c ia ,
Bits BB1 BBO (selectores del ancho de banda y la o p erac i n d el D M A , cu an d o la C P U est
para el DMA) en esp era (o en m odo W A IT ); y en uno de
0 0 : Ocupa el 25% del IBUS sus b its e st la b a n d e ra q u e in d ic a c u a n d o la
de la CPU tra n sfe re n c ia se ha c o m p le tad o . (F ig u ra 2 1 .5 ).
0 1 : Ocupa el 50% del IBUS
de la CPU f/hDMAP (selector de prioridad del D M A y la CPU)
1 0 : Ocupa el 67% del IBUS 1: El D M A tiene la p rio rid ad , y
de la CPU
0: La C P U tiene la prioridad
1 I : Ocupa el 100% del IBUS
de la CPU
DSC $XXXX
5/VTECO (h ab ilitad o r de transferencia
B it7 6 B it 0
del canal 0) Lectura:
1: H ab ilitad o , y 0: Inhabilitado DMAP LO DM AW E IFCO
Escritura:
B it IECO (habilitador de la in terru p Reset:
cin del D M A para la C P U ) Figura 21.5 Registro d e estado y c o n tro l del
R e s e rv a d o DMA (DSC)
1: Habilita la interrupcin del canal 0, y

Curso p rctico sobre M icrocontroladores


EL l l l l i l i l u D LEl/L y l a U U U f e I # L L lr iIC U lU L L L llr L l.U L H l l a L U L n U L 'U L l L L U U l i u i t r S E U l i i n j

B it LO (b it h ab ilitad o r del m odo de transferencia 4. Registro de control del canal 0 del D M A (DOC)
cclica del canal 0) Por medio de los cuatro bits SD C 3 a SD C 0 de este
1: H ab ilita el m odo cclico, y registro, se calculan las direcciones base de la fuente y
0: H abilita el modo bloque (inhabilita el modo del destino para el canal 0. Por medio de l, tambin se
cclico) configura un b yte o una palabra para la transferencia
B it D M A W E (habilitador del D M A d u ran te el de datos, se definen las fuentes para la solicitud del
m odo W A IT) DM A, y se controla el desplazamiento del registro de
1: Transferencia h ab ilitada, y direcciones temporal que el D M A usa como apunta
0: Transferencia suspendida dor del bloque. (Figura 2 1.7 y Tabla 21.1 y 21.2)
B it IFCO (bandera de interrupcin d el canal 0)
1: Transferencia com pleta, y B it B W C ( b it d e control de la lo n gitu d del dato
0: Transferencia incom pleta transferido)
1: El D M A transfiere datos de 16 bits, y
0 : El D M A transfiere datos de 8 bits
Este registro se usa para configurar las DOC $ xx x x
fuentes y el com ienzo de la transferen
cia (F igu ra 2 1 .6 ) B it 7 6 5 4 3 2 1 B it 0
Lectura:
b its S W I 7 a S W I 0 (h a b ilita d o re s por Escritura:
SDC3 SDC2 SDC1 SDC0 BW C DTS2 DTS1 DTSO

s o f t w a r e d e l in ic io d e tra n sfe re n c ia Reset: E s ta d o in d e fin id o d e s p u s d e l r e s e t


d el D M A )
F ig u ra 2 1 .7 R egistro de c o n tro l d e l can al 0 (DOC)
1: Inicia la transferencia, y
0 : Bloquea la transferencia

DC2 S xxxx Por m ed io de estos registro s, el canal


B it 7 6 5 4 3 2 1 B it 0 0 d e l D M A u b ica la p o sici n base del
Lectura:
S W I7 S W I6 S W I5 S W I4 S W I3 S W I2 SW I1 SWIO
d ato de la fu en te antes de in ic ia r la
Escritura:
tran sferen cia. La d irecci n base de 16
Reset:
b i t s se g rab a en dos registros d e 8 b it s ,
F ig u ra 2 1 .6 Registro 2 de con trol de l DMA (DC2) llam ad o s D 0 S H y DOSL (p arte alta y
p arte b a ja ). (F ig u ra 2 1 .8 )

Fuentes de s o lic itu d de In icia iiza d o re s


DTS[2:0]
tra n s fe re n c ia del DMA p o r s o ftw a re
000 Solicitud del DMA por la entrada 0 SWIO

001 Solicitud def DMA por la entrada 1 SWI1

010 Solicitud del DMA por la entrada 2 SWI2

011 Solicitud del DMA por la entrada 3 SWI3

100 Solicitud del DMA por la entrada 4 SWI4

101 Solicitud del DMA por la entrada 5 SWI5


Tabla 21.1 S eleccin de fuentes
110 Solicitud del DMA por la entrada 6 SWI6
para la solicitud de la
111 Solicitud del DMA por la entrada 7 SW7 transferencia desde e l DMA

Curso prctico sobre M icrocontroiadores


tu d d el bloqi
S D C [3 :0 ] D ir e c c i n fu e n t e D ir e c c i n d e s t in o
El nm ero de bytes que sern transferidos en un
1010 In c r e m e n to In c r e m e n to bloque por el canal 0 del D M A , se controlan
desde este registro. A l escribir el valor $ 0 0 en el
1001 In c r e m e n to D e c re m e n to
registro DOBL se define la m ayor lo n gitu d para
1000 In c r e m e n to E s t t ic o el bloque, que es de 2 5 6 bytes.
0110 D e c re m e n to In c r e m e n to DOBL S xxxx
Bit 7 6 5 4 3 2 1 Bit 0
0101 D e c re m e n to D e c re m e n to Lectura:
B L7 B L6 B L5 B L4 B L3 BL2 BL1 B L0
Escritura:

0100 D e c re m e n to E s t t ic o feset: Se b o rra e l re g is tro d e s p u s d e l resel

0010 E s t tic o In c r e m e n to F ig u ra 2 1 .1 0 Registro de longitud del bloque del DMA (DOBL)

0001 E s t tic o D e c re m e n to
8. Registro con tad or de bytes transferidos, del
0000 E s t tic o E s t t ic o canal 0 (DOBC)
T abla 2 1 .2 B its de co n tro l de direcciones base d e l DMA D uran te el proceso de transferencia del D M A ,
en el contenido del registro contador de 8 bits
DOSH Sxxxx DOBC se lleva la cuenta de nm ero de da
Bit 7 6 5 4 3 2 1 B /0 tos de un b y te q ue se han transferido a tra
Lectura:
AD15 AD14 A D13 AD12 AD11 AD10 AD9 AD8
vs del canal 0.
Escritura:

feset: Se borra el registro despus del reset


Este registro co n tad o r se p u e d e b o rrar por
DOSL S xxxx + 1 rres cau sas, q u e so n : p o r un cic lo de reset
Bit 7 6 5 4 3 2 1 Bit 0 in tern o o extern o , cu an d o alcan z a la lo n
Lectura:
Escritura:
AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 g itu d d e fin id a p ara el b lo q u e de d ato s, y
feset: Se borra el registro despus del reset cuand o se escribe u n a nueva d irecci n base
F ig u ra 2 1 .8 R egistros de direccin base fuente (DOSH y DOSL) fu en te o d estin o.
DOBC S xxxx
6. Registros destino del D M A con la direccin
Bit 7 6 5 4 3 2 1 Bit 0
base, del canal 0 (DODH y DO DI Lectura:
BC7 BC6 BC5 BC4 BC3 BC2 BC1 BC0
Teniendo en cu en ta la direccin de 16 bits con- Escrttura
feset: Se b o rra e l r e g is tro d e s p u s d e l reset
ten id a en los registros DODH y DODL (parte
alta y parte baja respectivam ente), el canal 0 es F ig u ra 2 1.11 Registro contador de bytes transferidos del DMA (DOBC)

cribe en la posicin destino base el prim er dato


transferido por el D M A . Los m odos de direccionam iento
en la fa m ilia HC08
DODH Sxxxx En los m icrocontroladores 6 8 H C 0 8 de
B it 7 6 5 4 3 2 1 Bit 0
M otorola, hay disponibles diecisis modos
L ectu ra:
Escritura:
AD15 AD14 AD13 AD12 AD11 A D IO AD9 AD8 de direccionam iento que le otorgan una
feset: Se borra e registro despus del reset gran flexibilidad y eficiencia al m anejo de
daros que el program ador puede efectuar
DODL S xxxx + 1
con estos dispositivos. En trm inos de la
B it 7 6 5 4 3 2 1 BitO
L ectura:
C P U , los m odos de direccionam iento del
AD7 AD 6 AD5 AD4 AD3 AD2 ADt ADD
Escritura: M C U son las opciones con que ella cuenta
feset: Se borra el registro despus del reset para localizar los datos que se requieren para
F ig u ra 2 1 .9 R egistros de direccin base destino (DODHy DODL) ejecutar cualquiera de sus instrucciones.

Curso p rctico sobre M icrocontroladores


Los diecisis modos de direccio CDIGO DE
ETIQUETA
M NEMNICO DE
OPERANDO COMENTARIOS
M QUINA LA OPERACIN
nam ien to son: A657 E X_1 LDA #$57 A = $57
Inherente AB45 ADD #$45 A = $9C
72 DAA A = $02 w /a c a rre o
Inm ediato c o lo c a e l b it en $102
Directo A614 E X_2 LD A #20 LS d iv id e n d o d e A
8C C LR H B o r r a e l MS d e l d i v i d e n d o
Extendido AE03 LD X #3 D iv is o r de X
Indexado sin desplazamien 52 D IV C H : A ) / X A = 0 6 , H = 0 2

to u o ffse t A630 EX_3 LD A #$30 A = $30


87 PSHA G u a rd a e l d a to $ 3 0 en
Indexado con o ffs e t de 8 b its l a p i l a y d e c re m e n ta
e l a p u n t a d o r SP e n 1
Indexado con offset de 16 bits
F ig u ra 2 1 .1 2 Ejem plos de instrucciones de l m odo d e direccionam iento inherente
Del SP con o f f s e t de 8 b its
D el SP con o ffset d e 16 bits En la figura 2 1 .1 2 se m ues D ireccionam iento
Relativo tran tres pequeos segmentos de inm ediato
M em oria a m em oria, inm e programas en lenguaje ensambla Las in stru c cio n e s de d ire c c io
diato a directo dor que son ejemplos del modo n a m ie n to in m e d ia to en los
M em oria a m em oria, direc de direccionam iento inherente; M C U H C 0 8 son 18. So n to
to a directo en sta se destacan con color os d as a q u e lla s que c o n tie n e n el
Memoria a memoria, indexa curo las lneas de program a que o p eran d o en los b y tes que van
do a directo con incremento contienen instrucciones inheren in m e d ia ta m e n te d esp u s del
M emoria a memoria, directo tes. Las instrucciones son: DAA c d ig o d e la o p e ra c i n ; los
a indexado con incremento (ajuste decimal al registro acum u d ato s in m e d ia to s p u e d e n ser
Indexado con in crem en to lador), C L R H (borrar el byte alto de u n o o dos b y tes d e a c u e r
posterior H del registro ndice), y P SH A do con el ta m a o d el registro
Indexado con o ffset de 8 bits (guarda el contenido del acum u in v o lu c r a d o en la in s t r u c
e increm ento posterior lador en la pila). c i n , y p u e d e n rep resen tar
u n v a lo r o a p u n ta r a la d ire c
D ireccionam iento Nota: ci n de u n valor.
inherente En ste y en todos los dems pro
En los M C U H C 0 8 hay 54 ins gramas escritos en lenguaje en El p ro g ram a e je m p lo que
trucciones inherentes. Todas las samblador, se usar el smbolo (#) se m u e stra en la fig u ra 2 1 .1 3
instrucciones que soportan este antes de cualquier nm ero, para c o n tie n e d o s in s tr u c c io n e s
modo de direccionamiento se de indicar que es un operando in in m e d ia ta s : A IX (s u m a un
nominan instrucciones inherentes m ediato; y, de acuerdo con la sin v a lo r in m e d ia to co n sig n o al
y se caracterizan porque no requie taxis definida por los ensam bla r e g is t r o n d ic e ) , y C P H X
ren un ciclo de bsqueda {fitcb ) dores de M otorola, tam bin se (c o m p a ra el re g istro n d ic e
para el operando, trabajan sobre usar el smbolo ($) antes de cada con u n v a lo r in m e d ia to ); en
registros internos de la C P U , tales nm ero para representarlo en ste, p rim ero se b o rra el re
como el acum ulador A, el registro notacin hexadecimal. g istro n d ic e (H :X ) y lu ego se
ndice H:X, el apuntador de la pila
CDIGO DE MNEMNICO DE
ETIQUETA OPERANDO COMENTARIOS
SP, y el registro del cdigo de con MQUINA LA OPERACIN

diciones C C R . La principal ven 5F START CLR X ;X = 0


8C C LR H ;H = 0
taja de las instrucciones inheren AF01 TAG A IX #1 ;C H :X ) = C H :X ) + 1
65FFFF CPHX #$FFFF ; C o m p a ra ( H : X ) c o n
tes, es que no requieren de un d i $ F F F F
26F9 BNE TAG ; E je c u c i n c c l i c a
reccionamiento a m em oria y, por h a s t a s u ig u a ld a d
20F5 BR A START S a lto a i n i c i o
lo tanto, su tiempo de captura y
ejecucin es el menor.
F ig u ra 2 1 .1 3 Ejem plos de instrucciones d e l m odo de direccionam iento inm ediato

< 0 fM Y ,l Curso prctico sobre M icrocontroladores


Teora

CDIGO DE F T ln U cT . MNEMNICO DE n p c R .u n n cio n es q u e son la base d el d i


M Q U IN A ETIQUETA u OPERACIN OPERANDO COMENTARIOS
reccio n am ien to exten d id o .
R AM EQ U $50 A s i g n a c i n a l a RAM
ROM EQ U $6E00 A s i g n a c i n a l a ROM
ORG $R AM C o m i e n z o d e l a RAM
TEM P RMB Z R e s e rv a 2 b y te s Las in stru c c io n e s lla m a
ORG $R0M C o m i e n z o d e l a ROM
5F START CLR X X = 0
das ex ten d id as, p u ed en acce
8C C LR H H = 0 d er a c u a lq u ie r d irecci n del
3550 STHX TEMP H :X = 0 > TEMP
455555 LD H X #$5555 C a rg a H :X c o n $ 5 5 5 5 m ap a d e m em o ria de 6 4 K b
3550 STHX TEM P TEM P=$5555
7550 BAD _P AR T CPHX RAM R A M =T E M P ytes con q u e cu en tan estos m i
26FC BN E B AD _P AR T R A M =T E M P a m e n o s q u e
o c u r r a a lg n e r r o r c r o c o n tr o la d o r e s ; to d a s las
20F1 BRA START I n ic ia de nuevo e l c ic lo
in stru ccio n es son de 3 b ytes de
lo n g itu d y en ellas el p rim er
Figura 2 1 .1 4 Ejem plos de instru ccio ne s d e l m odo de direccionam iento directo
b y te es el c d igo de o p eraci n ;
a u m e n ta en u n o h asta a lc a n re c o n o c e r d o s in stru c c io n e s m ien tras q u e los dos s ig u ie n
zar el v alo r SFFFF. C u an d o la p ro p ias d el m o d o de d irec c io tes son los b y tes m s y m enos
c o n d ic i n de c o m p a r a c i n n a m ie n to d ir e c to , q u e so n : sig n ific ativ o s de la d irecci n
d e f in id a p o r la in s tru c c i n S T H X (g u a rd a r el registro n efectiva d el op eran d o .
C P F IX es v e rd a d e ra , e l p ro d ice en la m e m o ria ), y C P H X
g ra m a salta a la ln e a de in i (c o m p a ra el re g is tro n d ic e En todos los en sam b lad o
cio (S T A R T ) y re p ite el p ro con u n v alo r en m em o ria). res e fic ie n te s, e l p ro g ram ad o r
ceso in d e fin id a m e n te . p u ed e o lv id a rse de d e f in ir si
La p r im e r a in s tr u c c i n la in stru c c i n es d ire c ta o e x
D ireccionam iento directo S T H X lo c a liz a la e t iq u e t a te n d id a , y a q u e el p ro g ram a
Los M C U H C 0 8 de M o to ro T E M P en la p o sici n cero de e n s a m b la d o r a u t o m t i c a
la poseen 3 7 in stru c cio n e s d i la R A M , y la se g u n d a carga en m en te d e c id ir la fo rm a m s
re c tas. En este m odo d e d i d ic h a p o sici n el d ato $ 5 5 5 5 ; c o r ta d e la in s t r u c c i n de
re c cio n am ien to el p rim e r b y te m ie n tra s q u e la in s tru c c i n acu erd o con el lm ite q u e est
es el c d ig o d e la o p erac i n , C P H X co m p ara el v alo r co n d e fin id o p ara la p g in a cero
y el se g u n d o es el b y te b a jo de ten id o en H :X co n el de la po ($ 0 0 F F ).
la d ire c c i n e fec tiv a d el o p e sici n R A M +1 (en este caso,
ra n d o ; ya q u e el b y te m s alto R A M + l= T E M P = p o sicio n es En la f i g u r a 2 1 . 1 5 se
d e l a d ir e c c i n se a s u m e $ 5 0 y $ 5 1 = $ 5 5 5 5 ). m u estran dos ejem p lo s de este
com o $ 0 0 y no se in c lu y e en m o d o d e d ir e c c io n a m ie n to
la in stru c c i n com o un b y te D ireccionam iento u san d o la in s tru c c i n L D X
m s, el tiem p o de e je c u c i n extendido (carga el b y te bajo X d el reg is
es s lo de un c ic lo . El p ro g ram ad o r de los M C U tro n d ic e con el c o n ten id o de
H C 0 8 d isp o n e d e 16 in stru c una lo c a lid a d de m em o ria).
Por lo anterior, el uso del
CDIGO DE M NEM N IC 0 DE
direccion am iento directo que ETIQUETA OPERANDO COMENTARIOS
M AQ UINA LA OPERACIN

d a lim itad o a la p g in a cero o ORG $50 In ic io en $50


FCB $FF ;$ 5 0 = $FF
directa del rea de m em oria que 5F CLR X
BE50 LDX $0050 C a rg a d ir e c ta
com prende las prim eras 2 3 6 lo d e l r e g is tr o X
c o n e l d a to $0050
calidades (entre las posiciones ORG $6E00 In ic io en S6E00
$ 0 0 0 0 y S00F F ). FCB $FF ;$ 6 E 0 0 = SFF
5F CLR X
C E6E00 LDX S6E00 C a rg a e x te n d id a
d e l r e g is tr o X
En el p ro g ram a e je m p lo ,
de la fig u ra 2 1 .1 4 , se p u ed en Figura 2 1 .1 5 Ejem plos de instrucciones del m o do de direccionam iento extendido

A * .
Curso p r ctico sobre M icrocontroladores iM ,IfK H T T s . ? 211
D ireccionam iento CDIGO DE
ETIQUETA M NEM NICO DE OPERANDO
indexado, sin M Q UINA LA OPERACIN OPERANDO COMENTARIOS

desp lazam iento FC JM P ,X ;S IN O FFSET


s a lta a la
En la fa m ilia H C 0 8 h a y 29 ; d i r e c c i n
a p u n ta d a p o r e l
in stru c cio n e s p ara el d ire c c io r e g i s t r o H :X

n am ien to in dexado sin despla


F ig u ra 2 1 .1 6 Ejem plo del m odo de direccionam iento indexado sin o ffset
z a m ie n to u o ffs e t. T o d as las
in s tr u c c io n e s q u e so p o rta n D ireccionam iento Por lo an terio r, este d irec
este m odo son d e u n b y te y se indexado, con c io n a m ie n to q u e d a r lim ita
u san p a ra acced er a datos con desp lazam iento de 8 bits d o a las p rim eras 2 5 6 p o sicio
d irecci n variable, tal com o en Las in stru ccio n es para el d irec n es d e m e m o r ia , p e ro , sin
el caso de las tab las. L as in s c io n am ien to in d exad o con o ff e m b arg o , la ta b la p u ed e lo c a
tru ccio n es in d ex ad as sin o ffset s e t de 8 b its son 29- T odas las liz arse en c u a lq u ie r lu g a r del
se u sa n g e n e r a lm e n te p a ra in stru ccio n es de este m odo de m ap a de m e m o ria al u sar el
m over ap u n tad o res a travs de d ire c c io n a m ie n to son de dos re g istro n d ic e c o m o d ir e c
u n a ta b la de d ato s lo calizad a bytes, y a l ig u a l q u e las q u e no ci n base, y el s ig u ie n te b y te
en m em o ria. u sa n d e s p la z a m ie n to ; stas com o d e sp laz am ie n to .
ta m b i n se usan p ara acced er
En esta fa m ilia se h an d is a datos con d irec c i n variab le. E n la f ig u r a 2 1 . 1 7 se
p u e sto dos re g istro s (H y X ), m u estra com o ejem p lo una l
d e un b y te c a d a u n o , q u e c o n Para d e term in ar la d irec nea d e c d ig o d e p ro g ram a
tie n e n las d irec c io n es c o n d i ci n efectiva del op erand o, la que ilu s tra el m odo de d ire c
c io n ale s a lta y b a ja d el o p e C P U usa el resultado q ue se ob cio n am ien to indexado con o ff
ran d o , y, g racias al registro H , tien e al su m ar los b ytes sin sig s e t de 8 b its, p o r m ed io de la
e s te m o d o d e d ir e c c io n a no del registro n d ic e (H :X ), in stru c c i n de salto in c o n d i
m ie n to no q u e d a lim ita d o a con el b y te sin signo que prece cio n al JM P.
las p rim e ra s 2 5 6 p o sic io n es de al c d igo de op eracin de la
d e m e m o ria, tal com o su ced e in stru cci n . Direccionamiento
en la fa m ilia H C 0 5 . indexado, con
Estas in stru ccio n es se usan desplazam iento de 16 bits
P ara m an te n e r la co m p a a m en udo para seleccio n ar el El M C U H C 0 8 tiene 16 in s
tib ilid a d ab so luta entre las in s dato o elem en to n -esim o d en truccion es de d ireccio n am ien
trucciones de los M C U de M o tro de una tab la de k elem en to in d ex ad o con o ffs e t de 16
torola de las fam ilias H C 0 5 y tos, en este caso el n-esim o v a bits. En este m odo de d ireccio
H C 0 8 , el registro H se m an lo r d e b e r e sta r tp ic a m e n te nam ien to todas las in stru ccio
tien e en cero cu an d o no se usa en el re g istro H :X y la d ire c nes son de tres b ytes y pueden
n in g u n a in s tru c c i n q u e lo c i n de in ic io d e la ta b la d e acced er a c u a lq u ie r d ato con
afecte p o r p arte del H C 0 8 . b e r e sta r en el b y te s ig u ie n te d irecci n variab le en to d a el
al c d ig o d e o p erac i n de la rea de m em o ria; la C P U sum a
En la fig u ra 2 1 .1 6 se m ues in stru c c i n . el co n ten id o d e H :X con la pa-
tra com o ejem p lo u n a ln ea de
CDIGO DE M NEM NICO DE
cdigo de program a que ilustra MQ UINA ETIQUETA LA OPERACIN OPERANDO COMENTARIOS

el m odo de d ireccio n am ien to ECFF JM P $ F F ,X O F F S E T D E 8 - B I T S


; S a lta l a d ir e c c i n
indexado sin o ffset , por m edio ; a p u n ta d a p o r e l
r e g i s t r o H :X + SFF
de la instruccin de salto incon
d icio n al JM P. F ig u ra 2 1 .1 7 E jem plo d e l modo de direccionam iento indexado con o ffset d e 8 bits

m m / rz H T s. Curso prctico sobre M icrocontroladores


Teora

CDIGO DE M NEMNICO DE sici n $ 1 0 , el SP se h ace ig u al


M AQ U IN A ETIQUETA OPERANDO COMENTARIOS
LA OPERACIN
a $ 1 0 +$ F F = $ l0 F , y se efec
D C 10FF JM P $ 1 0 F F ,X O F F S E T DE 1 6 - B I T S
s a lta a l a d ir e c c i n t a el d e crem e n to de la p o si
a p u n ta d a p o r e l
r e g i s t r o H :X + S10FF ci n h a sta cero.

F ig u ra 2 1 .1 8 Ejem plo d e l m odo de direccin am iento indexado con o ffset de 16 bits D ireccio n am ien to del SP,
con d e sp la za m ien to de
lab ra form ada por los dos bytes dor de la p ila con o ffs e t de 8
16 b its
q ue sigu en al c digo de o p era bits. Este m odo de d ire c c io n a
La fam ilia del M C U 6 8 H C 0 8
ci n para en co n trar la d irec m ien to sobre el SP nos p e rm i
tiene disponibles 14 instruccio
ci n efectiva d e l operando. te m o v im ien to s g ile s d entro
nes para el direccionam iento del
de 2 5 6 p o sicio n es de la p ila,
SP con o ffset de 16 bits.
En este d irec c io n am ie n to la C P U e n c u e n tra la d irecci n
in d ex ad o con o ffs e t de 1 6 bits, efectiva del o p eran d o al sum ar
Todas las instrucciones en
las in stru c cio n e s se usan de la el registro SP de 16 b its co n el
este m odo son de cuatro b ytes y
m ism a fo rm a q u e en el d ire c b y te q u e sigu e al o p erand o.
se usan para acceder a datos de
c io n am ie n to an terio r, p ara lo
la p ila u bicad o s en c u a lq u ie r
c aliz ar y c ap tu rar datos d e n En e ste m o d o e l SP se
rea de m em oria; en este caso
tro de u n a ta b la , pero, en este pu ede u sar com o otro registro
la C P U sum a el contenido del
caso, con m o v ilid a d en todos n d ic e de la C P U , siem p re y
SP con los dos bytes que prece
los 6 4 K bytes de m em o ria. cu an d o las in terru p c io n es es
den al cdigo de operacin, para
tn in h ab ilitad a s.
d eterm in ar la direccin efecti
E n la f ig u r a 2 1 .1 8 se
va del operando.
m uestra com o ejem p lo u n a l En la f i g u r a 2 1 . 1 9 se
nea de cdigo de program a que m u e stra u n e je m p lo d e c d i
En la f i g u r a 2 1 . 2 0 se
ilu stra el m odo de d ireccio n a go de p ro g ram a q u e ilu stra el
m uestra un program a de ejem
m ien to in dexado con o ffs e t de m o d o d e d ir e c c io n a m ie n to
plo que ilu stra el m odo d e d i
16 b its , usando la in stru ccin d el SP con o ffs e t de 8 b its, por
reccionam iento d el SP con o ff
d e salto in co n d icio n al JM P . m e d io d e la s in s tr u c c io n e s
s e t de 16 bits, u san d o la in s
ST A (g u a rd a r el a c u m u la d o r
tru c c i n L D A (carga d e l a c u
D ireccionam iento del SP en m em o ria) y D B N Z (d ecre
m u lad o r d esd e m e m o ria ); en
(s ta c k pointer), con m en to d e la p o sic i n de m e
este p ro g ram a e l ac u m u la d o r
d esp lazam iento de 8 bits m o ria y sa lto , si no es ig u a l a
se carg a con el co n te n id o de
H a y 2 4 in stru ccio n es de tres c e r o ); en e ste p r o g r a m a se
la p o sici n de m em o ria $ 2 5 0
b y tes q u e m an ejan el a p u n ta g u a rd a e l v a lo r $ 2 0 en la p o
(S P = $2 5 0 +$ F F = $34F ).

CDIGO DE M NEM NICO DE


D ireccionam iento
ETIQUETA OPERANDO COMENTARIOS
M AQ UINA LA OPERACIN relativo
450100 LD H X #$0100
94 TXS ; R e in ic ia e l a p u n ta d o r
El m odo d e d ire c c io n a m ie n
;d e l a p i l a to re la tiv o , en esta fa m ilia de
; en $00FF
A620 LD A #$20 ;A = $ 2 0 m icro co n tro lad o res, se m an e
9EE710 STA $ 1 0 , SP ; $10F = $20
9E6B10FC LP DBNZ $10,SP,L O ffs e t de 8 - b it s ja con T I in stru c c io n e s. En
P ;d e c re m e n ta e l
; c o n te n id o d e la to das las in stru c cio n e s de sa l
p o s ic i n $10F
h a s ta lle g a r a c e ro to c o n d ic io n a l, la C P U u sa el
d ir e c c io n a m ie n t o r e la t iv o
F ig u ra 2 1 .1 9 Ejem plo del m odo de direccionam iento d e l SP con o ffs e t de 8 bits p a ra d e te rm in a r la d ire c c i n

Curso p rctico sobre M icrocontroladores f M J K H T ,:


CDIGO DE
MQUINA
cTinricTA
ETIQUETA
MNEMNICO OE
OPERANDO COMENTARIOS
D ireccionam iento de
LA OPERACIN
450100 LDHX #$0100
m em oria a m em oria,
94 TXS Reinicia el apuntador in m ediato a directo
de la pila
en S00FF En este m odo de d ireccio n a
9ED60250 LDA $0250,SP Offset de 16-bits
Carga el registro A m iento, el m ovim iento de un
con el contenido operando inm ediato (inm d ) a
de $34F
una posicin directa en m em o
Figura 2 1 .2 0 Ejem plo d e l m odo de direccionam iento del SP con o ffs e t de 16 bits ria se hace por m edio de la ins
truccin de tres bytes y cuatro
efectiv a (e f f e c t i v e a d d r ess ; EA) m al de la p r xim a in stru ccin ciclos de ejecucin M O V inm d;
d e l s a lto , sta e n c u e n tr a el a p u n ta d a p o r el P C . este m odo se usa con frecuencia
d e stin o d e l salto c o n d ic io n a l para inicializar registros y varia
a l su m a r el b y te sig n a d o (en En la figura 21.21 se m ues bles en a pgina cero. La C PU
c o m p le m e n to a dos e n tre - tra un program a de ejem plo que guarda el prim er b yte que sigue
1 2 8 a + 127) q u e sig u e a l c usa dos instrucciones del m odo al cdigo de operacin, en la d i
d ig o d e o p e r a c i n , c o n el de d ireccio n am ien to relativo: reccin de la pgina directa que
c o n te n id o d e l c o n ta d o r de BLT (salto si es m enor que, ope est indicada por el segundo byte
p ro g ra m a (P C ). racin signada), y BR A (salto in de la instruccin.
condicional); en ste, el conte
S i la co n d ici n d el salto nido del acum ulador se com pa En la figura 2 1 .2 2 se mues
se c u m p le, el P C se carg a con ra con -2, y y a que el nm ero tran dos segmentos de programa
la EA, de lo c o n trario , la C P U #1 es m ayor que -2, el salto a que ilustran la disminucin signi
c o n tin a con la ejecuci n nor TAG nunca ocurrir. ficativa, de 9 a 4 ciclos, que resulta
cuando no se usa el acumulador;
C DIG O OE M N E M N IC O DE sto se ilustra con dos operaciones
ETIQ UETA OPERANDO C O M E N TA R IO S
M A Q U IN A L A O PE RACI N
similares de transferencia inmedia
A601 TAG LDA #1 ;A = i
Al FE CMP # -2 Compara c o n - 2 ta a directa de este modo.
91FA B LT TAG Salta si el valor del
registro A

20 FE HERE BRA HERE


;es menor que -2
Salta siempre
D ireccionam iento de
m em oria a m em oria,
Figura 21.21 Ejem plos de instrucciones del m odo de direccionam iento relativo directo a directo
En este modo de direccionamien-
CDIGO DE TIEMPO DE MNEMNICO DE
to, el movimiento de un operan
MAQUINA EJECUCIN LA OPERACIN OPERANDO COMENTARIOS
do directo en memoria a una po
* M o v im ie n to d e d a t o s c o n e l r e g i s t r o a c u m u la d o r
B 750 C2 c i c l o s ) PSHA ; G u ard a e l v a lo r
sicin directa en memoria, se hace
A 622 CZ C i c l o s ) LDA #$22
; a c tu a l d e l r e g is t r o A
;A = $22 por medio de la instruccin de tres
$F0
B7F0 C3 c i c l o s ) STA G u a r d a e l d a t o $ 2 2
d e n t r o d e l a
bytes y cinco ciclos de ejecucin
p o s ic i n $F 0
B 650 C2 c i c l o s ) PULA R e c u p e r a e l v a l o r M O V dd; este modo se usa para
p r e v ia m e n t e g u a rd a d o
d e l r e g is t r o A efectuar transferencias de datos
9 c ic lo s
dentro de la pgina cero. El ope
* M o v im ie n t o d e d a t o s s i n el r e g i s t r o a c u m u la d o r
rando que se encuentra en la posi
6E 22F0 C4 c i c l o s ) MOV # $ 2 2 ,$ F 0 U b ic a c i n d e l d a to
$22 d e n t r o d e l a cin de la pgina cero, indicada
p o s i c i n d e m e m o r ia
$F0 por el prim er byte que sigue al c
digo de operacin, se guarda en la
posicin de la pgina cero indica
Figura 2 1 .2 2 Ejem plo de l m odo de d ireccionam iento inm ediato a directo da por el segundo byte.

s.a. Curso prctico sobre Microcontroiadores


Teora

CDIGO DE TIEMPO DE MNEMNICO DE


OPERANDO COMENTARIOS
Este m odo de d ireccio n a
MAQUINA EJECUCIN LA OPERACIN
* M o v im ie n to d e d a to s c o n e l a c u m u la d o r
m ien to es b astan te til p ara
B750 PSHA
tran sferir un b u jfe r de datos de
(2 c ic lo s ) G u a rd a e l v a l o r d e A
en la p ila la m em o ria R A M a un regis
B6F0 (3 c ic lo s ) LO A SF0 C a p tu r a e l c o n t e n id o
de l a p o s ic i n $F0 tro de tran sm isi n se rial, tal
B7F1 (3 c ic lo s ) STA SF1 S F l = $F0
B650 (2 c ic lo s ) P U LA R e c u p e ra e l v a lo r com o se m uestra en la fig u ra
d e l r e g is tr o A
g u a rd a d o e n l a p i l a
2 1 .2 4 , en d o n d e ap arece un
10 c ic lo s
se g m e n to de u n a r u tin a de
* M o v im ie n to d e d a to s s in e l a c u m u la d o r atenci n a la in terru p ci n de
4-EF0F1 (5 ciclos) MOV SF0,$F1 Mueve el contenido tran sm isi n serial SC I.
de la posicin de
memoria $F0 a la
posicin SF1
D ireccionam iento de
Figura 2 1 .2 3 Ejem plo d e l modo de direccionam iento directo a directo m em oria a m em oria,
directo a indexado con
En la f i g u r a 2 1 .2 3 se efecta con la instruccin de dos increm ento
m u e stra n dos se g m e n to s de b y tes y cuatro ciclos de ejecucin El m ovim iento de m em oria a
p ro gram a que efect an la m is M O V ix+d, y se destina gene m em oria, indexado a directo y
m a o p eraci n d e tran sferen cia ralm ente para transferir tablas de con in crem e n to p o ste rio r se
de d ato s d irecto a d irecto sin datos apuntadas por el registro efecta con la instruccin de dos
y con el ac u m u la d o r, y la d is ndice, hasta los registros de la bytes y cuatro ciclos de ejecucin
m in u c i n co rresp o n d ien te en pgina directa (la tabla puede M O V dix+, y se usa co m n
e l n m ero de c ic lo s de e je c u tener cualquier tam ao y estar m ente para llenar tablas con re
c i n q u e resu lta en cad a caso localizada en cualquier rea den gistros de la pgina cero. El ope
(d e 10 a 5 ciclo s). tro de los 64 Kbytes de m em o rando ap u n tad o en la p gin a
ria). La C P U guarda el operan cero, por el byte siguiente al c
D ireccionam iento de do apuntado por el registro H :X digo de operacin, se guarda en
m em oria a m em oria, en la pgina cero, en la direccin la direccin apuntada por el re
indexado a directo con que se indica en el b yte que si gistro H :X ; y la C P U increm en
increm ento gue al cdigo de operacin de la ta el registro ndice despus del
El m ovim iento de m em o ria a instruccin, e increm enta el re m ovim iento. Com o un ejemplo
m em oria indexado a directo y gistro n d ice despus de cada d e este m odo de d ire c c io n a
con in crem e n to po sterio r, se m ovim iento. m iento se m uestra el program a
de servicio a la interrupcin SCI
CDIGO DE MNEMNICO DE
MAQUINA ETIQUETA LA OPERACIN OPERANDO COMENTARIOS en la figura 21.23.
7E 1 8 MOV x+, ;Mieve un nuevo byte
SCDR ;al registro de
;datos S C I , D ireccionam iento
Borra a TDRE y
posteriormente
indexado con increm ento
incrementa el posterior
registro ndice H :X .
L as in s tr u c c io n e s C B E Q y
65 00 64 CPHX #TX_B + ; H a s i d o f i n a l i z a d o
S IZ E e l b u ffe r c ir c u la r ? M O V son las dos in stru c c io
23 03 BLS N O LO O P S i n o , c o n t in u
45 00 54 LD H X #TX_B d e l o c o n t r a r io nes de dos b y tes en las que se
r e in ic ie p a ra
a rra n c a r e l b u ffe r so p o rta el m odo d e d ire c c io
35 50 N 0L00P STHX PTR _0U T G u a rd a e l n u e v o n am ien to in d ex ad o sin o ffs e t
v a l o r d e l a p u n ta d o r
80 RTI R e to rn o d e y con in c re m e n to p o sterio r.
in te r r u p c i n
En el registro H se g u ard a el
Figura 21 .2 4 Ejem plo d e l modo de d ireccionam iento Indexado a d irecto con Increm ento b y te de la parte a lta d e la direc-

Curso p rctico sobre M icrocontroladores


LEI l l l l i l l l u U Lv'i/A. V l U S LU M (L- t U jC C l i a i u L H U LHl l S U l L L n U U llU llt iL iu llr i:' S L M

CDIGO DE
ETIQUETA
MNEMNICODE n p r H. Mnn COMENTARIOS
c i n d el o p eran d o , m ien tras
MAQUINA LA OPERACIN OPERANDO
q u e el b y te m s bajo se guard a
S IZ E EQU 16 T a m a o d e l b u f f e r
c ir c u la r en X , y, la su m a, es la direc
SCSR1 EQU $16 R e g . l d e e s ta d o SCI cin condicional del operando.
SCDR E(*J $18 R e g is tro re c e p to r S Q
ORG $70
PTR_0UT RMB 2 A p u n ta d o r d e d a to s
d e s a l i d a d e l
Este m odo de direcciona
b u ffe r c ir c u la r miento se usa con frecuencia para
PTR _IN RSE 2 A p u n ta d o r d e d a to s
d e e n t r a d a d e l buscar datos dentro de tablas; la
b u ffe r c ir c u la r
R X.B RMB S IZE B u ffe r c ir c u la r figura 2 1 .2 6 es un segmento de
R u tin a d e in t e r r u p c i n d e l r e g i s t r o r e c e p to r d e d a to s S C I
program a que usa la instruccin
C B E Q (com pare y salte si es
ORG S6E00
5 5 72 R X _IN T LDHX PTR _IN C a rg a e l a p u n ta d o r igual, indexada) para ilustrar este
B6 1 6 LDA SCSR1 L e c t u r a d e SCSR1
cerro p a r t e d e l re s e t tipo de direccionam iento.
5E 1 8 m i SCDR ,X + M ueve un n u e v o b y te
a S C I, b o r r a a RDRF

6 5 0 0 64 CPHX #RX_B + S IZE


; e in c r e m e n t a H :X
; H a f i n a l i z a d o e l
D ireccionam iento
23 03 BLS NOLOOP
b u ffe r c ir c u la r ?
S i n o , c o n t in u
indexado con o ffs e t de 8
4 5 0 0 54 LDHX #RX_B D e l o c o n t r a r i o
i n i c i a l i c a desde e l
b its e increm ento
c o m ie n z o d e l b u f f e r posterior
35 52 NOLOOP STHX PTR _IN G u a rd a e l n u e v o
v a l o r d e l a p u n ta d o r C o n las m ism as in s tru c c io
80 RTI R e to r n a d e l a
in t e r r u p c i n n e s, C B E Q y M O V , p ero
u s a n d o el o f f s e t , se p u e d e
Figura 2 1 .2 5 E jem plo de l m odo de direccionam iento directo a indexado con increm ento m a n e ja r el m o d o d e d ire c c io
n a m ie n to in d e x a d o con d e s
M NEMNICO DE
p laz am ie n to de 8 b its c in c re
CDIGO DE r r in n c T A OPERANDO COMENTARIOS
M AQ U IN A ETIQUETA LA OPERACIN m en to p o ste rio r. Por m ed io
A6FF LDA #$FF A = $FF de estas in stru c c io n e s de tres
B710 STA $10 L O C $10 = $FF
4E1060 MOV $10, $60 L O C $60 = $FF b y tes se p u e d e ac c ed e r a c u a l
5F C LR X X = c e ro
q u ie r o p e ran d o con p o sici n
* C o m p a ra e l c o n t e n id o d e l r e g i s t r o A c o n e l c o n t e n id o d e l a
* p o s i c i n d e m e m o r ia a p u n t a d a p o r e l r e g i s t r o H : X y s a l t a a T A G
v a ria b le , e in c re m e n ta r el re
* c u a n d o s o n ig u a le s g istro n d ic e d esp u s de cada
7102 LO O P CBEQ X + .T A G S IN O F F S E T o p erac i n , y de la m ism a fo r
20FC BR A LO O P E v a l a l a p r x im a
p o s ic i n
m a q u e en el d ire c c io n a m ie n
5F TAG C LR X X = c e ro to sin o ffs e t , la d ire c c i n c o n
d ic io n a l d el o p eran d o se ob
Figura 2 1 .2 6 Ejem plo d e l modo de direccionam iento indexado con increm ento
tien e de la su m a d e los re g is
tro s n d ic e H y X .
CDIGO DE M NEMNICO DE
ETIQUETA OPERANDO COMENTARIOS
M AQUINA LA OPERACIN
A6FF LDA #$FF A = $FF Este m odo de d ire c c io n a
B710 STA $10 ;L 0 C $10 = $FF
4E1060 MOV $10, $60 ; LO C $60 = $FF m ien to se u sa ta m b in para
5F CLR X ;X = c e ro
lo calizar datos d en tro de ta
C o m p a ra e l c o n t e n id o d e l r e g i s t r o A c o n e l c o n te n id o d e l a blas; la fig u ra 2 1 .2 7 es u n seg
p o s i c i n d e m e m o r ia a p u n t a d a p o r e l r e g i s t r o H :X + $ 5 0 y s a lt a
a TG 1 c u a n d o s o n ig u a le s m en to de p ro gram a q u e usa
615002 LO O P 2 CBEQ $ 5 0 ,X + ,T G 1 O F F S E T D E 8 - B I T S la in stru cci n C B E Q (com p a
20FB BRA LO O P2 E v a l a l a p r x im a
p o s ic i n re y salte si es ig u a l, in d ex ad a
20FE TG1 BRA TG1 F in a liz a
y con o f f s e t ) p ara ilu s tra r este
Figura 2 1 .2 7 Ejem plo d e l m odo de direccionam iento indexado con o ffs e t e increm ento tip o de d irec c io n am ie n to .

< M 0M T il Curso prctico sobre M icrocontroladores


US INTERRUPCIONES EN LOS
MICROCONTROUDORES 68HC08
La conexin y com unicacin de un m icrocontro
lador con microprocesadores, con dispositivos elec
trnicos, y con otros m icrocontroladores de dife
rente tecnologa y velocidad de procesam iento, se
hace gracias a las interrupciones.

Por medio de cualquier solicitud de interrupcin, de


origen interno o externo, la C P U detiene temporal
mente la ejecucin del programa principal mientras
ejecuta el programa de servicio a la interrupcin.
Lab' U l L < U l S y |u ll!S LlLLCLUL'ULltluUdLlri lUULd

U n a caracterstica im po rtan te de los m icro la ejecucin de una secuencia de cuatro tareas


controladores, debida a las interrupciones, es la por p a rte d el m d u lo d e in te rru p c io n e s del
flexib ilidad en la conexin con dispositivos ex M C U ; ellas son:
ternos de cu alq u ier tecnologa y rango, as como
tam bin la facilidad para integrarse con otros sis Reconocim iento de la fuente de interrupcin
tem as de caractersticas diferentes. Evaluacin del nivel de prioridad (arbitraje)
A lm acenam iento del estado actu al del m icro
Bajo condiciones de operacin norm al, la controlador
C P U 0 8 de los m icrocontroladores ejecuta secuen- B squeda del vector d e la in terrupcin
cialm en te cada una de las instrucciones d el pro
gram a p rin cip al; pero, con frecuencia, es necesa En la fig u ra 2 2 .1 se m uestran las tareas q ue
rio abandonar el program a princip al y ejecutar, la C P U 0 8 ejecuta d uran te el procesam iento de
un conjun to de instrucciones determ inadas y lo u na in terru p cin ; en ella se in cluyen , adem s de
calizadas en un rea de m em o ria conocida, en la secuencia de operaciones, los tiem pos del bus
respuesta a la so licitu d de in terru p ci n hecha interno en que cada una se desarrolla.
desde uno o varios dispositivos perifricos exter
nos e internos. G eneralm ente, la so licitud para N ota:
la ejecucin del program a, o ru tin a de servicio a El reset externo o interno, es la interrupcin prin
la in terrupcin , llegar al M C U fuera de sincro cipal del m icrocontrolador y se usa para in iciali-
nizacin con los tiem pos de procesam iento del zar los registros prin cip ales; no es enm ascarable,
cdigo de operacin de la C P U , y su solicitud goza del m s alto n ivel de p rio rid ad y por este
deber atenderse en el m enor tiem po posible. m otivo la atencin a su so licitud de interrupcin
es la m s rpida. Esto se logra porque el m dulo
En los m icro co n tro lad o res M o to ro la con de interrupciones, al procesar el reset, slo efec
C P U 0 8 se pueden procesar hasta 128 in terru p t a dos de las cuatro tareas q u e se requieren tp i
ciones de m anera in dep endien te; dentro de stas cam ente p ara el procesam iento de las in terru p
se in cluyen: las fu en tes externas com o el R S T y ciones generales, que son: el reconocim iento de
la interrupcin IR Q 1; y las fuentes internas como la fuen te de in terrupci n y la bsqueda del vec
las in terrupcion es por so ftw a re S W I. tor correspondiente.

C asi todas las in terru pcion es pueden ser en- R econocim iento de la fuente de
m ascarables, y solo alg u n as pocas no, com o por interrupcin
ejem p lo el reset. Las enm ascarables se m an ejan En el caso d el reset, el reconocim iento no es sin
desde el sistem a p erifrico in tern o d estin ad o crnico con el procesam iento de la C P U , y es
p ara tal p ro p sito , por m ed io del b it q u e co n in m ediato; m ientras que la salid a de este estado
tro la la m scara g lo b a l de las in terru p c io n es de in terru p ci n siem pre estar sincronizada con
( B i t I) , el cu al est lo calizad o en la tercera po si los ciclos de ejecucin del bus interno.
ci n d el reg istro d el c d ig o d e c o n d icio n e s
(C C R ). Todas las in terru p cio n es se h ab ilitan Las dem s in terrupcion es siem pre sern re
cuando este b it est en cero lgico. conocidas por la C P U 0 8 so lam ente d u ran te el
ltim o ciclo, de ejecucin de cada in struccin, y
Procesam iento de interrupciones en la cu alq u ier so licitud de in terru p ci n que se haga
CPU08 en este ciclo, ser ignorada, y slo se volver a
La solicitud efectuada de parte de cualquier fuente considerar hasta el ltim o ciclo de la prxim a
de in terru pcin , excepto el reset , se atien d e de instruccin; con lo que queda claro que la C P U 0 8
acuerdo con los resultados que se obtienen tras nunca detiene la ejecucin de un a instruccin

( J E M itm . Curso prctico sobre M icrocontroladores


Teora

NUMERO DE para atend er una ru tin a de in terru p ci n norm al


CICLOS DEL
BUS INTERNO ltim o c ic lo d e la
instru ccin e n curso
(so lam ente cuand o se est usando el m dulo
D M A , ste pu ed e suspender la operacin d e una
B sca la sig u ie n te instruccin en la C P U para atender a un dispo
in s tru c c i n (B)
(red unda nte) sitivo perifrico).

A l reco n o cer u n a in te rru p c i n , la C P U 0 8


c arg a el registro d e co d ific ad o r d e in stru c c io
nes con el c d ig o d e o p eraci n asig n ad o por
s o ftw a r e que le co rresp o n d e a d ic h a in te rru p
ci n (S W I x ), en lu g a r de c arg ar el c d igo de
op eracin de la que deb i h ab er sido la sig u ie n
te in stru cci n en el p ro gram a. El co n tad o r del
p ro g ram a (P C ) es el otro registro q u e se altera
cu an d o se reconoce u n a in te rru p c i n , a ste se
le resta u n o an tes de ser g u ard ad o en la p ila,
y a q u e, d eb id o al m ecan ism o de p reb squ ed a
d el c d ig o de o p eraci n de la C P U , siem p re
est ap u n tan d o a la d irec c i n d e la p r xim a
in stru c ci n m s uno.

Evaluacin del nivel de prioridad


Rutina de interrupcin
(a rb itra je )
Todas las interrupcion es de reset por defecto tie
B sca la sig u ie n te nen la m ism a y la m s alta prioridad, por lo tan
instruccin (redundante)
to para ellas la C P U 0 8 no efecta la operacin
de evaluacin del nivel de p rio rid ad , que se lleva
Descarga
a cabo d u ran te el procesam iento norm al de las
D escarga A
otras interrupciones.

D escarga X Todas las interrupciones que llegan al m i


crocontrolador sim u ltn eam en te, son som etidas
D escarga PCH al proceso de evaluacin del nivel de prioridad
en el m d u lo del sistem a de in tegracin (S IM ),
D escarga PCL
y ste, se basa en el orden de prioridades de los
vectores q ue se m uestran en la tabla 2 2 . 1 . Com o
B sca la prxim a
in s tru c c i n (B) resultado, el m dulo SIM obtiene un valor cons
tan te q ue en su m om ento u tiliza para localizar la
direccin efectiva del vector de interrupcin que
In ic ia e l proce so de
in te rru p c i n debe ser buscado, para poder atender la rutina
de servicio.
I No

Ejecuta el primer d d o de .as interrupciones C u an d o la C P U reconoce una fuen te de in


la prxima instruccin del e ocurren antes de
ptogam a principal (B) e puntose reconocen terru p ci n , el correspond ien te b it de se aliza
cin {flag o bandera) del registro de estado lo
Figura 22.1 S e c u e n c ia d e o p e ra c io n e s d e l p ro c e s a m ie n to in d ic a al ponerse en uno l gico; y, el dise ador
de u n a in te rru p c i n

Curso p rctico sobre M icrocontroladores < rC M T .l <^9^>


Ltifc' L&-HtfllLnULllS: LH1 l lllELnUUJllUuLtilL\S (g*UCUS

d el p ro gram a es el responsable de bo rrar (o co salir de ella. El orden de apilam iento de los regis
lo car en cero l gico) el sealizador, lu ego de eje tros es: primero el contador P C , luego el ndice X,
c u tar ap ro p iad am en te la ru tin a de servicio so li el acum ulador A , y el registro C C R ; m ientras que
c ita d a por la in terru p ci n . el orden de recuperacin de los registros de la pila,
de acuerdo con su estructura LIFO (Last In First
D ireccin In te rru p c i n P rioridad
Out), es al contrario: primero el C C R , y despus,en
FFFE Reset 1 orden, los registros A , X , y PC.
FFFC SWI 2
FFFA FREQ[0] 3 En la fig u ra 2 2 .2 se m uestran las secuencias

de ap ilam ien to y descarga de los registros de la
FF02 p ila, tal com o la C P U 0 8 las ejecuta antes y des
IREQ[124] 127
pus de atend er cu alq u ier in terrupcin .
FF00 IREQ[125] 128

T abla 2 2 .1 T a b la d e n i v e le s d e p r i o r i d a d d e l o s v e c t o r e s d e l a s Enm ascaram iento y anidam ien to de


i n t e r r u p c io n e s d e l a C P U 0 8 las interrupciones
La n ica in terrup cin que no es enm ascarable
A lm acen am iento dei estado actual del es e l reset, las dem s in terrup cion es pueden ser
m icrocontrolador h ab ilitad as e in hab ilitad as por m edio del b it que
Para preservar el estado del M C U despus de retor controla la m scara glo b al de las interrupciones
nar de una rutina de servicio de interrupcin, la { B i t I), localizado en el registro C C R ; o por m e
C P U 0 8 alm acena en la pila los principales registros dio de los b its de las m scaras in d ivid uales de los
antes de atender la interrupcin, y los descarga al registros de control de los perifricos.

PILA TIPO LIFO

Orden de
descarga

5 1 REGISTRO DEL CDIGO DE CONDICIONES CCR


4 2 REGISTRO ACUMULADOR A
3 3 REGISTRO NDICE X ( BYTE BAJO)*
2 4 REGISTRO CONTADOR DE PROGRAMA ALTO PCH
t 5 REGISTRO CONTADOR DE PROGRAMA BAJO PCL

Orden de
a p ila m ie n to

Direccin por defecto del reset $00 FF


* El b y te a lto d e l re g is tro n d ice H n o se a p ila

F ig u r a 2 2 . 2 O r d e n d e a p il a m i e n t o y d e s c a r g a d e l o s r e g i s t r o s p r i n c i p a l e e n ia p ila

<M M C1T.; Curso prctico sobre M icrocontroladores


P ara p e rm itir la e je c u c i n a n id a d a de las C o m o p rim e r e jem p lo , en la fig u ra 2 2 .3
in te rru p c io n e s en esp era, la m o d ific a c i n del se m u estra q u e, si la in te rru p c i n se reconoce
b i t I se e fec t a a l m en o s un c ic lo an tes d el d u ran te la ejecu ci n de la in stru c ci n C L I, la
ltim o cic lo de la in stru c c i n u o p erac i n , C P U 0 8 sa lta r a e je cu ta r la ru tin a de servicio
con esto se g a ra n tiz a q u e su estad o est ya de la in te rru p c i n , y a l term in ar, regresar al
d e fin id o an tes d e e je c u ta r la p r x im a in stru c p ro g ram a p rin c ip a l a e je c u ta r la sig u ie n te in s
ci n . En los tres e je m p lo s s ig u ie n te s se ilu s tru c c i n LD A .
tran casos tp ic o s de re c o n o c im ie n to y e je c u
ci n de in te rru p c io n e s. En el segundo ejem plo, de la figu ra 2 2 .4 , se
m uestra la ejecucin an idada de dos
CU-------------------- rutinas de servicio de interrupciones
IN T1 e IN T 2; en este caso las solici
Programa tudes de interrupcin pueden llegar
principal al m ism o tie m p o , o la s e g u n d a
(IN T 2) llegar durante la ejecucin de
la prim era (I N T l). En cualquier caso
la interrupcin IN T 2 ser atendida
solam ente al term inar la ru tin a de ser
INTl: vicio de la prim era.
Rutina de servicio
de la interrupcin T am b i n es im p o rta n te an o
tar q u e, d u ra n te c ad a in stru c c i n
F ig u ra 2 2 . 3 E je c u c i n e fe in t e r r u p c io n e s d e reto rn o R T I, la C P U 0 8 b u sca

PARA SABER MS:


Apilamiento compatible
Para m a n te n e r la c o m p a tib ilid a d de lo s p ro g ra m a s co n la fa m ilia de MCU 68H C 05, la CPU de la fa m ilia
HC 08 no a p ila el c o n te n id o del re g is tro n dice a lto H d u ra n te el p ro ce so de a te n c i n a las in te rru p c io
nes, y p o r lo ta n to , el p ro g ra m a d o r no debe o lv id a rs e de g u a rd a r y re c u p e ra r e ste re g is tro al e n tra r y
s a lir re s p e c tiv a m e n te de la ru tin a de s e rv ic io de la in te rru p c i n .

U sando la s in s tru c c io n e s PSHH y PULH p a ra el m a n e jo del re a de la p ila , se p u e d e a p ila r y d e s c a rg a r


el c o n te n id o del re g is tro H p a ra p re s e rv a rlo d u ra n te el a c c e s o a u n a ru tin a de in te rru p c i n , ta l com o
se ilu s tra en el s ig u ie n te se g m e n to de c d ig o.

IRQINT PSHH ; Se g u a rd a en la p ila el c o n te n id o del re g is tro H

RUTINA DE SERVICIO
A LA INTERRUPCIN

PULH ; Se d e sca rg a de la p ila el c o n te n id o del re g is tro H


RTI ; R etorna al p ro g ra m a p rin c ip a l

Curso p rctico sobre M icrocontroladores


v v p u iim iv ii M M Bi mmam
L as LiiuHtuicu'i Luura Li uL
ci
qHf
lLU

Retomo de la interrupcin (RTI)


A l te rm in a r la eje cu c i n d e la ru
tin a de servicio de la in terru p ci n ,
Programa
principal 7 a n d en tro de sta, se d eb e u b i
car la in stru ccin de retorno de in
te rru p ci n RTI; sta se en carga de
fin aliz ar la e je c u c i n de la ru tin a
de servicio y d ev o lv er el a p u n ta
INT1: dor de p ro g ram a al p ro gram a
Rutina de
servicio de la p rin c ip al, p ara c o n tin u a r con las
interrupcin tareas in te rru m p id a s.

E sta in stru c c i n ta m b i n se
encarga de ordenar las operaciones
de ap ilam ien to y descarga de todos
INT2: los registros fundam entales para que
Rutina de
servicio de la el M C U reanude la ejecucin del
interrupcin program a principal, exactam ente en
el lugar interrum pido, y con las con-
Figura 22.4 E je c u c i n a n id a d a d e i n t e r r u p c io n e s e n e s p e r a diciones que traa la C P U . A d icio
nalm en te borra el b it de control de
la d ire c c i n de la s ig u ie n te in s tru c c i n d el
todas las interrupciones, y las h a b ilita cada vez
p ro g ra m a p r in c ip a l (L D A ), a u n q u e en el caso
que descarga el registro CCR de la pila.
d el reto rn o de la IN T 1 , s lo es u n a acci n
re d u n d a n te .
M dulo de interrupcin externa (IRQ)
El m dulo de in terrupcin externa IRQ, m ane
El tercer ejem p lo , de la fig u ra 2 2 .5 , nos
ja y nos perm ite controlar la operacin de sta
m u estra que, si una fuen te de in terru p ci n se
por m edio de sus registros. Este m dulo com
d etecta d u ran te la ejecu ci n de la in stru cci n
pleto se m uestra en el diagram a de bloques de la
C L I, sta ser aten d id a an tes de colocar en uno
figu ra 2 2 . 6 ; y las caractersticas con las que cuen
l gico el b it Idel registro CCR, e in h a b ilita r o
ta en los M C U de la fam ilia H C 0 8 , son:
p o n er la m scara sobre todas las in terru p cio n es.
U n p in de e n tra d a ex tern a p ara la in te rru p
CLI-
ci n I R Q l ____
SEI
Bits de control para la entrada IR Q l
U n b u jfe r de entrada con histresis
E ntrada con sen sib ilid ad p rogram able por
flanco, o por flanco y nivel
R econocim iento autom tico
INT1 PSHH Selector program able de resistencia interna
INT1: de p u ll-u p
Rutina de
PLH servicio de la
interrupcin Al aplicar una seal con nivel bajo (un cero
RTI lgico) en el pin IR Q l del m icrocontrolador, se
activa la solicitud de servicio de la interrupcin
F ig u r a 2 2 .5 E je c u c i n y r e c o n o c i m ie n t o d e l a i n t e r r u p c i n d u r a n t e la
e j e c u c i n d e u n a in s t r u c c i n
externa en la C P U y se alm acena en el la tch I R Q l.

Curso prctico sobre M icrocontroiadores


Teora

U na vez reconocida la interrup


cin, el la tch perm anecer en
uno hasta que ocurra algu na de
las siguientes operaciones:

1. La bsqueda de un vector: el
reconocim iento de otra so
lic itu d de in terrupcin o ri
g in ar la bsqueda del vec
tor correspond ien te, y d u
rante este ciclo, el la tch IR Q
ser borrado.

2. U n borrado por software', ste


puede usarse para borrar el
estado m em orizado de la in
terrupcin, si se accede el b it
de reconocim iento (A C K l)
que hace parte del registro de
estado y control de la inte
rrupcin IN T S C R . Al escri
bir un uno lgico en ste, se
borra el la tch I R Q l.

3. La ejecucin de u n resetr. esta


o p eraci n tien e d en tro de
sus tareas el borrado del la
tch de la in terru p ci n ex
tern a I R Q l.

4. El pin de entrad a IR Q l se
in activa si se coloca en nivel
lgico uno, y si previam ente
se ha configurado su sensi
b ilid ad por nivel; bajo esta
condicin, el la tch IR Q l ser
borrado.

Pin de inte rru pcin


externa (IRQ1)
La entrada de la interrupcin ex
terna IR Q l es activa en nivel bajo,
y por defecto responde a los flan
ndo v i aa saNoiooaaia aa o n h i m sna cos de bajada. Sin embargo, por
medio del b it d e control del modo
Figura 22.6 D iagram a de bloques del m dulo de interrupcin externa IRQ de disparo M O D E 1, propio del

Curso prctico sobre M icrocontroladores


U s UllLH-lULdliet- LHl Lut- LlClUL^mUciLLUlUS LitiL-iLniii

registro IN T SC R , se puede program ar la sensibili es ei b it de la bandera de estado de la inte


dad del disparo en dicha entrada; este modo puede rrupcin IR Q l, es de slo lectura, y nos inform a el
configurarse en una de dos formas: para el disparo estado de las solicitudes de interrupcin pendientes.
por flanco de bajada solamente, o para el disparo
por flanco de bajada y nivel bajo. C on 1, indica q ue la so licitu d de interrupcin
IR Q l est pendiente.
C uando el disparo del pin de interrupcin se C o n 0, in d ica que no h ay so licitud de in terrup
configura por flanco de bajada solamente, la solici cin IR Q l pendiente.
tud de interrupcin en la C P U se m antiene activa
hasta que ocurre la bsqueda de un vector, o un es e l b it d e reco n o cim ien to de so licitu d
borrado por softw a re , , la ejecucin de un reset. de la in terru p ci n I R Q l, es de slo escritu ra, y
Pero, cuando se h aya configurado el disparo de nos p erm ite bo rrar el la tch de la in terru p ci n .
la in terrupcin por flanco de bajada y nivel bajo, Este b it in terru p to r se usa con frecuencia en eje
la so licitud de in terrupcin en la C P U se m an cucio nes an id ad as q u e req uieren borrar el la tch
ten d r activa hasta q ue ocurra la bsqueda de un IR Q por so ftw a re. El ciclo de reset siem pre lo
vector, o un borrado por softw a re, o la ejecucin pone en cero.
de un reset, , el p in de la in terru p ci n regrese a
su condicin in activa (uno lgico). C on 1, se borra el la tch de IRQ .

Registro de estado y control de la es el b it de mscara de la interrupcin


interrupcin IRQ (INTSCR) I R Q l; es de lectura y escritura, y nos perm ite habi
En la fig u ra 2 2 .7 se m uestra el registro de estado litarla o inhabilitarla. Luego del reset se borra.
y control de la interrupcin IRQ , llam ado IN T S-
C R . Por m edio de este registro se controla y su C o n 1, se in h a b ilita o en m ascara la so lic itu d
pervisa la operacin del m dulo de interrupcin d e in te rru p c i n de I R Q l.
externa IR Q ; a travs de l se pueden desarrollar C o n 0 , se h a b ilita la so lic itu d de in terru p c i n
las siguientes funciones: de I R Q l.

1. Se vigila la bandera de estado de la in terru p es el b it de m odo de disparo q ue m a


cin IRQ F1 neja la sen sib ilid ad de la in terrupcin I R Q l, es
2. Se borra el la tch IR Q l de la in terrupcin de lectu ra y escritura, y nos perm ite configurar
3 . S e e n m asc ara o se in h ib e el se rv ic io a la la sensibilid ad del p in de in terrupcin I R Q l. El
in te rru p c i n reset lo borra.
4 . Se controla la sensibilidad del disparo del pin
d e in terrupcin IR Q l C on 1, se activa la so licitud de in terrupcin por
m edio de un flanco de bajad a y un nivel bajo.
Los bits de control y estado en el registro C on 0, se activa la so licitud de in terrupcin so
IN T S C R estn definidos com o sigue: lam en te p o r m edio d el flanco de bajada.

D ir e c c i n N o m b r e d e r e g is t r o B it 7 6 5 4 3 2 1 B ita

L e c tu r a : 0 0 0 0 IRQF1 0
S001D R e g is tro d e e s ta d o y c o n tro l ac*i / i i n n c i
uira
v irc m i m uuLi
d e la in te rr u p c i n IRQ E s c r it u r a : ACK1
(IN T S C R )
R eset 0 0 0 0 0 0 0 0

Sin e s ta b le c e r

Figura 2 2 .7 R egistro de estado y con trol de la interrupcin IRQ (INTSCR)

224 S ) H W . a. Curso prctico sobre M icrocontroladores


LOS MDULOS ESPECIALES DEL
G8HC08: COP, LVIY KBI
L os m d u lo s e s p e c ia le s , q u e v ig ila n la e je c u c i n a p r o p ia
d a d e l softw a re d e l m ic r o c o n tr o la d o r y lo p r o te g e n d u r a n
te las c o n d ic io n e s a n o r m a le s d e l v o lta je d e a lim e n ta c i n ,
tale s c o m o los m d u lo s C O P (<Computer operatin gproperly)
y L V I ( low volta ge in hib it), se h a n in c o r p o r a d o d e n tr o d e
la a r q u it e c t u r a d e lo s m ic r o c o n tr o la d o r e s p a r a a u m e n ta r
la c o n f ia b ilid a d d e esto s c ir c u ito s in te g r a d o s .

E l m d u lo q u e m a n e ja la s in te r r u p c io n e s d e d ic a d a s al
m a n e jo d e te c la d o s , y q u e f a c ilit a p a r a e l u s u a rio la ta re a
d e d e c o d if ic a r m a tr ic e s d e te c la s , es e l K B I ( k eyboard in te-
rru p t module)-, y es o tr a h e r r a m ie n t a d e m u c h o u so , o fre c i
d a p o r e s ta f a m ilia d e m ic r o c o n tr o la d o r e s .
Lus luiiuLus e s i L-dtiL-s l i d lLL'd LUL:, LVI y Ivlil

El m dulo COP (C om puter operating que el registro contador del program a P C se altera
property) y el orden de ejecucin del program a se pierde,
Bajo el m ism o concepto operativo del perro guar ocasionando un com portam iento errado o ines
d in ( w a tch d o g ) que se ha venido incorporando perado del M C U . D entro de las principales y ms
en todas las arqu itectu ras m odernas de los m i frecuentes causas que pueden hacer que la secuen
croprocesadores (M P U ) y los m icrocontrolado cia de ejecucin de una rutina o program a se salga
res (M C U ) d e o tro s fa b ric a n te s , la fa m ilia de su curso, se encuentran las siguientes:
6 8 H C 0 8 de M o toro la nos ofrece un m dulo que
form a parte de la arq u itectu ra de estos M C U , y D iseo de algoritm os incorrectos
q u e es el encargado de facilitar al program ador V ectorizacin inapropiada
la tarea de v ig ilar q ue la ejecucin del program a Ejecucin de instrucciones de salto fuera de rango
residente en la m em oria del dispositivo sea efec A lteracin de registros y banderas por ruido
tu ad a en form a cclica y sin interrupciones. elctrico in d ucid o
M o d ificaci n de registros d u ran te la conexin
El m dulo de operacin apropiado de la com y desconexin de la alim en taci n
putadora (C O P ), ha sido diseado con un conta
dor de carrera libre que se encarga de generar una Para evitar q u e el tem p o rizad o r asociado al
seal de reset interna en la C P U 0 8 , cada que se m d u lo CO P, genere un ciclo de reset, se debe
desborda su capacidad de conteo. EL C O P ayuda bo rrar p eri d icam en te y an tes de su desbord a
al softw a re a recuperar su flujo norm al cada vez m ien to ; esto se debe h acer en uno o varios lu-
SIM
CIRCUITO DE RESET DEL SIM
20SC0UT
REGISTRO DE ESTADOS
DEL RESET

FUENTES INTERNAS
DE RESET

BSQUEDA DE UN
VECTOR DE RESET

ESCRITURA
DEL COPCTL

RELOJ DEL COP

MDULO COP

COPEN (Desde SIM)


COPD (Desde C0NF1G1)

RESET

Escritura del COPCTL

Selector de rango del


C0P(C0PRS del
C0NFIG1)
Figura 23.1 D iagram a de bloques del m dulo COP

(S M /te iT s Curso p r ctico sobre M icrocontroladores


gares estratgicos del p ro gram a in sertan d o in s
truccio n es que co lo qu en en ceros el registro de Esta seal es la salida del m dulo oscilador del
este tem p orizador. La caracterstica d el tem p o M C U , y su frecuencia es igual a la del cristal de
rizador de carrera lib re g aran tiza q u e, luego de cuarzo elegido, o a la de la red R C establecida.
su bo rrado, la tem p o rizaci n de form a au to m
tic a se in ic ia nuevam ente.
Por m edio de este registro se pueden borrar los
Funciones del m dulo COP contadores de los m dulos C O P y SIM que
En la fig u ra 2 3.1 se m uestra la estructura en blo intervienen en el tem porizador de vigilancia del
ques sim p lificad a del m du lo de v igilan cia COP, program a; para ello solam ente se requiere escri
en ella se puede observar q ue su contador posee bir un valor cualquiera en el registro C O P C T L ,
un registro de 6 bits, y que esta precedido por el usando alguna de las instrucciones de escritura
contador de 12 bits d el m dulo del sistem a de que form an parte d el conjunto de instruccio
in tegracin (S IM ). Si el program ador no lo bo nes del m icrocontrolador.
rra por so ftw a re , el contador del C O P se desbor
d ar y activar un ciclo de reset fuera de sin cro n i En la fig u ra 2 3 .2 se m uestra el registro de con
zacin despus de haber ejecutado 2 18 - 2 4, o 2 13 - trol del m d u lo C O P (C O P C T L ); ste se en
2 4 ciclos de reloj de la seal 2 0 S C 0 U T , y esto cuen tra localizado en la posicin de m em oria
depende del estado del b it selector de rango del $FFFF, y se sobreescribe en la parte baja del
tem porizador (C O P R S), que se en cuen tra en el vector del re se t. La escritu ra de un nuevo va
registro de configuracin nm ero uno. lor en este registro d eterm in a el in icio de un
nuevo periodo de vigilancia por parte del tem
C u an d o el p ro gram ad o r h a seleccio n ad o la porizador del COP.
opcin de desb o rd am ien to a los 2 18 - 2 4 ciclos
del reloj 2 0 S C 0 U T , se o b ten d r el m xim o pe En cualquier caso, la lectura del registro C O PC T L
riodo de tem p o rizaci n , lo cual sign ifica que, obligar a la C P U a devolver al program ador el
p o r ejem p lo , si usam os u n cristal de 8 M H z , el contenido de la parte m s baja (el b yte menos
m d u lo gen erar un reset cada 3 2 ,7 6 6 m s. Para significativo) del vector del reset, q ue tam bin
in ic ializ a r de nuevo el tem p o rizad o r d el C O P e est ubicado en la posicin $F CFF
im p e d ir la ejecu ci n del reset, es necesario bo
rrar los registros de los contadores d el C O P (6 El reset a la conexin PO R
bits) y del S IM (1 2 b its ) por m edio de u n a o D entro del m dulo S IM se encuentra el c ir
varias in stru ccio n es ub icad as dentro del p ro gra cuito que soporta el reset a la conexin (P o w er -
m a, antes de q ue se c u m p la el tiem p o de des O n R eset, P O R ); en este caso, l se ocupa de
b o rd am ien to program ado. generar u n a seal que borra el contador del
SIM al transcurrir 4 .0 9 6 periodos de la seal
Las seales del m dulo COP 2 0 S C 0 U T , luego de haber conectado la a li
En la fig u ra 2 3.1 p u ed en verse las se ales q u e m en taci n del M C U .
in te r v ie n e n en el m d u lo C O P de la
C P U 0 8 ; stas so n : la e n tra d a d e relo j
D ir e c c i n : SFFFF
2 0 S C 0 U T , la e n t r a d a d e e s c r it u r a
Bit 7 6 1 Bit 0
C O P C T L , la se al de r es et a la co n ex i n
L e c tu ra : BYTE B A JO D E L V EC TO R DE RESET
P O R , el r eset in te rn o , la se al de b sq u e
E s c r it u r a : BO R R A E L CO N TAD O R D E L C OP
d a d el v ecto r de reset, la se al de in h a b i
R eset No es afectado
lita c i n del C O P (C O P D ), y la se al se
le c to ra d el rango d el COP. F ig u ra 2 3 .2 Registro de con trol del m dulo COP (COPCTL)

Curso p r ctico sobre M icrocontroladores G & M in n :


L u s lu iiiiL u s L ^ i ird c il i t i g liliC U : GUI1, LV'l y LvLiL

es el b it selector del ran go del periodo


Los dos contadores que intervienen en el tiem del tem porizador, y tras la ejecucin de u n ciclo
po de v igilan cia del CO P, son borrados tras el de reset ser borrado.
reconocim iento y la ejecucin de cu alq u ier ci
clo de reset interno. C o n l lgico: el periodo program ado ser (213 - 24)
X 2 0 S C 0 U T ciclos.
C on 0 lgico: el periodo program ado ser (2 18 - 24)
C uando la direccin de u n vector de reset se X 2 0 S C 0 U T ciclos.
coloca en el bus de direcciones, se in ic ia un
ciclo de bsqueda del vector y con ste se bo es el b it que nos perm ite habilitar o inha
rrar el contador d el SIM . bilitar el m dulo COP, y su estado ser colocado
en cero luego de la ejecucin de un ciclo de reset.
ab ili on
La entrada C O P D es un reflejo del estado del C on 1 lgico: el m dulo C O P ser inhabilitado.
b it 0 del registro de configuracin nm ero uno C on 0 lgico: el m dulo C O P ser habilitado.
(C O N FIG 1), llam ado tam bin C O P D , y por
m edio del cual se in h ab ilita la operacin del F inalm en te, vale la pena an otar el com por
tem porizador del COP. tam ien to del m dulo C O P d u ran te alguno s de
los estados de op eraci n m s im p o rtan tes del
m icrocontrolador. En el m odo m onitor y en el
m odo de in terru p ci n (BREAK ), el C O P es a u
Por m edio de esta e n tra d a d e l m d u lo C O P to m ticam ente in h ab ilitad o cuando el p in IR Q l
se d e te rm in a el ran go de los co n tad o res, lo R S T es puesto en un nivel de voltaje igu al a
c u a l, de la m an o con la frecu en cia de o p e V DD + V H|. Sin em bargo, no ocurre lo m ism o
ra c i n , nos p e rm ite d e fin ir el m x im o p e d u ran te el estado de espera del M C U (m odo
rio d o p ara el te m p o rizad o r v ig ila n te . El b it W A IT ); en este estado el C O P no se detiene y
7 del registro C O N F IG 1 es el se le c to r de debe usarse una ru tin a de in terru p ci n para bo
ran go d el C O P, llam ad o C O P R S ; y su esta rrar perid icam ente su contador.
do se in fo rm a al m d u lo C O P a travs de
esta e n tra d a. En el otro m odo de operacin de bajo con
sum o, conocido com o estado de paro del M C U
En la f ig u r a 2 3 .3 se p re se n ta el reg istro (m odo S T O P ), el con tador del SIM se borra y la
d e c o n f ig u r a c i n n m e r o u n o (C O N seal de entrada de reloj del m dulo C O P (2 0 S -
FIG 1) d e la C P U 0 8 , y se d e sc rib e n las C O U T ) se desconecta.
fu n c io n e s d e los dos b it s q u e se in v o lu
c ra n en e l f u n c io n a m ie n to d e l m d u lo El m dulo inhibidor por voltaje bajo LVI
C O P, C O P R S y C O P D . (lo w voltage inhibtor)
C uando el voltaje de alim entacin cae abrup
Direccin: $001F tam ente, o el m icrocontrolador se som ete a
B it7 6 5 4 3 2 gt0 conexiones y desconexiones rpidas, es pro
Lectura: bable q ue los datos de registros y banderas
COPRS R R LVID R SSREC STOP COPD
E scritura: de estado resulten alterad o s; esto sucede
R eset
cuando la C P U 0 8 pierde la alim entacin
0 0 0 0 0 0 0 0
durante el transcurso del proceso de ejecu
I Reservado cin de ciertas instrucciones, que involucran
F ig u ra 2 3 .3 P rim e r registro de configuracin fCONFIG1) el m ovim iento de datos dentro del M C U .

G M B C B T ,: Curso p r ctico sobre M icrocontroladores


los registros C O N F IG 1 y C O N F IG 2 ; a con
tin u aci n se describirn los b its que in tervie
nen en l. En la figu ra 2 3 .3 se m uestra el re
gistro C O N F IG 1, m ientras que en la figu ra
2 3 .5 se puede apreciar el registro C O N F IG 2.
* 4 ~

este b it pertenece al registro C O N


DETECTOR DE V D D > LVIj r ip = o LVI RESET
FIG 1, se encuen tra en la posicin del b it A, y
VOLTAJE BAJO es el in terru p to r de habilitacin del in h ib i
e n v dd
VDD < lv ,TRIP = 1 dor por voltaje bajo. Su condicin siem pre
ser cero luego del reset.
F ig u ra 2 3 .4 Diagram a de bloques del
m dulo in h ib id o r p o r voltaje bajo LVI C o n 1 lgico: el m dulo LVI se in h ab ilita.
C on 0 lgico: el m dulo LVI se h ab ilita.
C o n el propsito de evitar esto, los m icro
controladores 6 8 H C 0 8 poseen un m dulo que estos dos bits pertenecen al re
m onitorea continu am en te el nivel d e voltaje pre gistro C O N F IG 2, y por m edio de ellos se puede
sente en el pin de alim en taci n del m icrocontro- program ar el um bral de disparo del voltaje del
lad o r V DD, y genera un ciclo de reset cuando el m dulo in h ib id o r (ZV7 trip volta ge). Por m edio
voltaje cae p o r debajo del u m b ral definido para de u n ciclo norm al de reset su estado no ser afec
el in h ib id o r (LVI trip volta ge). El circu ito LVI tado; sin em bargo, cuand o el reset es generado
puede ser h ab ilitad o o in h ab ilitad o por el usua por el P O R , am bos bits s o n borrados.
rio, y el u m b ral de voltaje del in h ib id o r puede
ser tam bin seleccionado por el program ador. En la ta b la 2 3 .1 se m uestran las opciones
de seleccin q u e p u ed en elegirse por m ed io de
En la figu ra 2 3 .4 se m uestra el diagram a en estos dos bits.
bloques de la estructura del circuito del m dulo LVI,
este modulo contiene un circuito especial (bandgap) El m dulo de interrupciones para
de referencia y un comparador, como partes princi teclado KBI
pales, y por medio de el b it de control LVID se Com o una herramienta de gran utilidad para el pro
puede habilitar o inhabilitar el circuito detector de gramador, y teniendo en cuenta el uso frecuente de
voltaje de alim entacin bajo, cuando se coloca en 0 los microcontroladores en las interfaces de teclados
1 lgico, respectivamente. matriciales, los M C U de esta fam ilia incluyen un
conjunto de siete interrupciones externas que pue
Por medio de los bits de seleccin del voltaje de den ser enmascarables y estn accesibles a travs de
inhibicin el programador le define a la C P U del los siete primeros pines del puerto A (PTAO a PTA6).
microcontrolador cual ser el nivel de voltaje
al cual se proteger, y generar la seal de reset-, Direccin: $001E
m ientras que para activar el ciclo de reset el m Bit 7 6 5 4 3 2 1 BitO
dulo LVI tiene la salida LVI reset que afecta Lectura:
IRQPUD R R LVIT1 LVITO R R R
directamente a la CPU . Escritura:
feset 0 0 0 Nosonfectactes 0 0 0
Registros de control del m dulo POR: 0 0 0 0 0 0 0 0
LVI (C0NFIG2 y C0NFIG 1)
W H Reservado
Todas las acciones de control sobre las fun
ciones del m du lo LVI se efectan desde F ig u ra 2 3 .5 Segundo registro d e configuracin (C0NFIG2)

Curso prctico sobre M icrocontroladores


Lus luiiulus iSiipLilei* el fitUjM: COL-, LVl y Idil

D escripcin del m dulo KBI


V o lta je de
LVIT1 LVITO C o m e n ta rio s En la fig u ra 2 3 .6 se h a representado de
d is p a ro
m anera sim p le el circuito que constituye
0 0 P a ra VD D = 3 V el m dulo KBI; a ll se m uestra que por
VLVR 3 <2 4 V >
0 1 Para VDD = 3V
m edio d e los bits KBIEx del registro habi-
% R 3 < 2 .4 V )
litad o r de las in terrupcion es para teclado
1 0 VLVR 5 (4 .0 V ) P a ra VD D = 5 V (K BIER), se h ab ilitan o in h ab ilitan inde
1 1 Reservado p en d ien tem en te cada una de las entradas
del puerto A disponibles com o in terru p
Tabla 23.1 Tabla de seleccin del umbral de voltaje de inhibicin del mdulo LVl
ciones para teclado. Al h ab ilitar algu n a de
Las p rin c ip ale s caractersticas d el m d u lo estas entradas de in terru pcin , tam bin se
KBI son : h ab ilita la resistencia p u ll-u p que le corresponde
in d ep end ien tem ente del estado de los b its del re
1. Posee siete interrupciones activas en nivel bajo, gistro de control de las resistencias del puerto A
con entradas enm ascarables in d ep en d ien te (PTA PU Ex).
m ente y tam b in de m anera global.
C u an d o u n a entrada de in terru p ci n para
2 . T ie n e c o n fig u ra ci n por s o ftw a r e de las re teclado es h ab ilitad a, y recibe un cero lgico por
sisten cias de p u ll- u p en c ad a e n tra d a de in el correspondiente pin, in m ed iatam en te se me-
terru p ci n . m oriza e in ic ia un proceso de reconocim iento y
so licitu d de in terru pci n , y el m odo de funcio
3 . El nivel de sensibilidad del disparo de la inte n am ien to del KBI define que cada vez q ue uno o
rrupcin puede ser seleccionado por flanco m s de sus pines de en trad a se ponen en cero,
solam ente, o por flanco y nivel. luego de haber estado todos en nivel alto, se me-
m orizar u n a in terrupcin por teclado.
4 . T odas las en trad as de in te rru p c i n p a ra te
clad o rep resen tan u n m ed io eficaz p ara sa L a se n sib ilid a d al d isp aro de la in te rru p
c ar a l m icro co n tro lad o r de c u a lq u ie ra de los ci n d el teclad o q u e se h a y a p ro gram ad o en el
estado s de b ajo co n su m o ST O P y W A IT . resp ectivo b it de co n tro l (M O D E K ) d eb e te-

BUS INTERNO
F ig u ra 2 3 .6 Diagram a en bloques d e l m dulo de interrupciones
p a ra teclado KBI

KBIO

AL HABILITADOR PU U UP

KBI6 SOLICITUD DE
INTERRUPCIN
DEL TECLADO

AL HABILITADOR PUU UP

230 d E M C J T i.4. Curso p rctico sobre M icrocontroladores


Teora

nerse en c u e n ta p a ra ev itar perd er alg u n as so A l escribir un 1 lgico en este b it se borran todas


lic itu d e s de in te rru p c i n , ya q u e cu an d o la in las solicitudes de in terrupcin por teclado pen
te rru p ci n so lo o b edece al flanco d e b ajad a, d ientes en el puerto A, y por m edio del ciclo de
sta p u ed e ser b lo q u e ad a p o r c u a lq u ie ra de las reset es puesto en cero lgico.
otras en trad as de in te rru p c i n que p erm an ez
can en cero. Esto no su ced e cu an d o se ha se es el b it de en m ascaram ien to de to
leccio n ad o el d isp aro p o r flan co y n ivel b ajo , d as las in terru p cio n es del m dulo K BI, puede
pues bajo esta c o n d ic i n la in te rru p c i n ser ser escrito o led o , y por m edio del ciclo de reset
reco n o cid a tan p ro n to com o c u a le sq u ie ra de ser borrado.
sus pines se c o lo q u e en cero.
C o n 1 lgico: se enm ascaran o in h ab ilitan todas
Registro de estado y control del las interrupciones del m dulo KBI.
m dulo KBI (KBSCR) C o n 0 lgico: se h ab ilitan todas las in terru pcio
El registro de estado y control de las in terru pcio nes para teclado del KBI.
nes para teclado llam ado K B SC R , se usa para
h ab ilitar el reconocim iento y el enm ascaram ien es el b it que controla la sensibilidad
to de tales interrupciones, y para configurar el del disparo de las interrupciones del KBI en los
tipo de sensibilidad al disparo. Tam bin uno de pines del puerto A, por m edio del ciclo de reset se
sus bits s e usa com o sealizador de la so licitu d de coloca en cero, y puede ser d e lectura y escritura.
interrupciones.
C on 1 lgico: se activa la sensibilidad de las interrup
En la fig u ra 2 3 .7 se m uestra el registro KBS ciones por flanco de bajada y nivel de voltaje bajo.
C R , y a continuacin se describen las funciones C on 0 lgico: se sensibiliza la solicitud de interrup
de los bits que hacen parte del m dulo KBI. ciones por m edio del flanco de bajada solamente.

Es el b it bandera q ue sealiza el estado de Registro h abilitad or de las


so licitu d de una in terru p ci n por teclado pen interrupciones del m dulo KBI (KBIER)
d iente en el puerto A. Es de slo lectu ra, y el reset Este registro se usa para h ab ilitar o in h ab ilitar de
lo borra. m an era in d iv id u al cada una de las in terru p cio
nes en los pines d e l puerto A , que form an parte
C on 1 lgico: el b it indica q ue h ay u n a in terru p del m dulo K BI. En la fig u ra 2 3 .8 se m uestra el
cin por teclado pendiente. registro de h ab ilitaci n K BIER y en segu id a se
C o n 0 lgico: el b it in d ica que no h ay u n a in te describen las funciones de los b its que hacen par
rrup cin por teclado pendiente. te del m dulo KBI.

es el b it de reconocim iento de la in te con cada uno de estos b its se


rrup cin por teclado y es de slo escritura. p ueden h ab ilitar o no los pines del puerto A, que
se asocian con cada una de las entradas de
D ir e c c i n : $ 0 0 1 A in terrupcin para teclado. Todos son de lec
B it 7 6 5 4 3 2 1 B it 0 tu ra y escritu ra, y por m edio de un ciclo
L e c tu ra : 0 0 0 0 KEYF 0 de reset sern borrados p ara in h a b ilita r las
ii\/iAQii
IIVIAolNft R /in n ri
IVIUUtlS
E s c r it u r a : | ACKK e n trad as K BI, y h a b ilita r el registro d el
R eset 0 0 0 0 0 0
puerto A.
o

|Sinestablecer
C on 1 lgico: cada uno de los bits de con
F ig u ra 2 3 .7 R egistro de estado y con trol de l m dulo KBI (KBSCR) trol KBIx h abilitan el correspondiente pin

Curso p rctico so b re M icrocontroiadores


Lus LiiiLlus esuiSaLes Ed litilC: CUfi LVL y Util

D ir e c c i n : $ 0 0 1 B
Nota:
3 2 1 B itO
B it 7 6 5 4 La programacin de una entrada de in
L e c tu ra : 0
K B IE 6 K B IE 5 KB IE 4 K B E 3 K B IE 2 KB IE 1 KBIEO terrupcin para teclado, no evita que
E s c r it u r a :
deba ser configurada como una entrada.
R e s e t. 0 0 0 0 0 0 0 0 C u an d o el p ro gram ad o r pone en uno
l gico c u a le sq u ie ra de los b its d e h a b i
lita c i n d e la in te rru p c i n p a ra teclad o
Figura 2 3 .8 Registro habilitador de las interrupciones del mdulo KBI (KBIER) KBIEx, o b lig a a q u e el p in d el puerto
de la in te rru p c i n co rresp o n d ien te sea
en el puerto A com o una entrada de in terru p c o n fig u rad o p o r la C P U 0 8 com o u n a
cin para teclado. e n tra d a; sin em b arg o , es im p o rtan te re
C on 0 lgico: cada uno de los b its de control co rd arle al u su ario q u e p ara leer d ich o
KBIx in h ab ilitan el correspondiente p in en el pin no d eb e o lv id ar p o n er en cero l
puerto A com o u n a entrada de in terru p ci n para gico, p o r m edio d e s o ftw a r e , el corres
teclado, y lo definen com o u n puerto de prop p o n d ie n te b i t d el registro de d irecci n
sito general (puerto A ). de d ato s d el p u erto A (D D R A ).

PARA SABER MS:


Inicializacin de las entradas del mdulo KBI
C uando se h a b ilita un p in de in te rru p c i n p a ra te c la d o , le to m a a lg o de tie m p o a lc a n z a r el uno
l g ic o en v irtu d de la c o n e x i n de su re s is te n c ia in te rn a de p u ll-u p , y d u ra n te e s te b re ve p e rio d o
de tie m p o , la CPU08 p u e d e re c ib ir fa ls a s se a le s d e in te rru p c i n . Para e v ita r q u e se p ro d u zca n
in te rru p c io n e s fa ls a s d u ra n te la in ic ia liz a c i n del m d u lo KBI, lo s in te rru p to re s de lo s re g is tro s de
e sta d o y c o n tro l KBSCR y KBIER se de be n a c tiv a r de a c u e rd o co n lo s s ig u ie n te s pasos:

PASO 1. Use el /lM A S K K p a ra e n m a s c a ra r to d a s la s in te rru p c io n e s de te c la d o ,


c o l q u e lo en uno lgico.

PASO 2. Use lo s b its ad e cu a d o s KBIEx p a ra h a b ilita r de m a n e ra in d e p e n d ie n te los


p in e s de la s e n tra d a s de in te rru p c i n e le g id a s p a ra te cla d o .

PASO 3. B o rre c u a lq u ie r s o lic itu d de in te rru p c i n fa ls a y p e n d ie n te p o r m e d io del b it


ACKK, al c o lo c a rlo en uno l g ico

PASO 4. B o rre el b it IM ASKK p a ra h a b ilita r to d a s la s in te rru p c io n e s p o r te c la d o


qu e h a yan s id o e le g id a s.

U na vez h a b ilita d a s la s in te rru p c io n e s , a q u e lla que se p re se n te en un p in s e n s ib le al fla n c o de


b a ja d a s o la m e n te s e r re c o n o c id a de in m e d ia to ; p e ro , c u a n d o lle g e a u n a e n tra d a s e n s ib le al
fla n c o y a l n ive l bajo, el re c o n o c im ie n to de la in te rru p c i n se h a r luego de un tie m p o de re tra so
qu e s e r fu n c i n del tip o de ca rg a e x te rn a a ll p re se n te .

O tra fo rm a de e v ita r in te rru p c io n e s fa ls a s , c o n s is te en c o n fig u ra r lo s p in e s del te c la d o co m o


sa lid a s , p o r m e d io d e lo s b its a d e cu a d o s del re g is tro de d ire c c i n de d a to s del p u e rto A (DDRA),
a n te s de h a b ilita r la s e n tra d a s de in te rru p c i n p a ra el te c la d o p o r m e d io de lo s b its KBIEx.

232 G M IK M T s . Curso p rctico sobre M icrocontroladores


EL MDULO CONVERTIDOR A/D
(ADC) Y EL SIM DEL 68HC08
L a c a p a c id a d d e l m ic r o c o n tr o la d o r p a ra r e c ib ir y p r o c e
sa r s e a le s a n lo g a s , q u e p u e d e n a s u m ir c u a lq u ie r v a lo r
en el tie m p o a trav s d e lo s A D C , h a s id o m u y im p o r
ta n te p o r q u e a m p li la g a m a d e u so s d e esto s d is p o s iti
v o s d e n tr o d e la in d u s t r ia y la in v e s tig a c i n , p e r m it i n
d o le s in tr o d u c ir s e c o n g r a n fu e rz a e n e l d e lic a d o c a m p o
d e la in s tr u m e n ta c i n e le c tr n ic a .

E l S I M es u n m d u lo q u e e n lo s m ic r o c o n tr o la d o r e s d e
M o to r o la c o o r d in a y v ig ila to d a s la s a c tiv id a d e s q u e d e
b e n lle v a rs e a c a b o d e s d e la C P U , a s c o m o el in g re s o y
r e to rn o a d e c u a d o d e lo s m o d o s d e o p e ra c i n e sp e c ia le s.
1
3. L
ui
iLi
lc
dLi
v.ltiql'.
-LQ ^AliC) vLSLLeLdlOI

El m dulo de conversin anloga a c ro co n tro lad o r. La tarea de co n versi n A/D se


d ig ital ADC lleva a cabo a travs de diversas tcn icas, y cu en
Para todos aquellos usos d el m icrocontrolador, ta con u n a a m p lia g am a de c irc u ito s in te g ra
en el cam po de las m edidas, la supervisin, y la d os A D de v ario s fab ric an tes q u e la so p o rtan ;
in strum en tacin de variables fsicas con com por sin em b arg o , con el m d u lo A D C d en tro del
tam iento an al gico (seales que pueden asum ir M C U se o b tie n e n v en tajas pro p ias de la tecn o
in finitos valores en el tiem p o ), q ue son m u y fre lo g a de in te g ra c i n , com o son la red u cci n de
cuentes, los M C U de la fam ilia H C 0 8 de M o to esp acio , el co n su m o de p o ten cia y el costo; ad e
ro la h an in cluido dentro de su arqu itectu ra una m s, se m in im iz a n los riesgos de e fec tu ar y leer
h erram ien ta fu n d am en tal p ara convertirlas en co n versio n es falsas o alterad as, d eb id as a in ad e
seales digitales (seales que slo asum en valores cu ad o s sistem as de tie rra y cablead o.
discretos en el tiem po): el m dulo de conversin
an lo ga a d ig ita l (A D C ). El m d u lo A D C , d en tro del M C U , le per
m ite al u su ario u n con trol total sobre las con
La conversin de u n a se al an lo g a en d i versiones de cad a uno de su s canales p o r m edio
g ita l es u n trab ajo q u e se d eb e h acer p rev ia del cdigo de p ro gram aci n , y se co m u n ica d i
m en te, si se q u ie re re c ib ir y p ro cesar p o r m e rectam en te con la C P U p o r m ed io de seales de
d io de c u a lq u ie r sistem a d ig ita l com o el m i in terru p ci n q u e se generan al fin al de cad a ci-

* Lee los DDRB/DDRD


Inhabilita

C/5
o Escribe en PTB/PTD
ADC x

o
o
z
ce
L
h-U
Z
c/5 Lee los PTB/PTD
=
co

R egistro de
riafn<:
lia iV J o ripf
U C I nADC
l/u II Inhabilita
Canal x del ADC

CH1 CH12

UUUUiiU
SELECTOR DE
CANALES -CH[4:0]
VOLTAJE DE (1 de 12 canales)
ENTRADA DEL ADC
(ADCVIN)
AIEN COCO

RELOJ DEL BUS'

A D IV [2 :0 ] A D IC L K Figura 24.1 D iagram a de bloques d e l m dulo ADC

O m x M T .: Curso p rctico sobre M icrocontroladores


co de conversin; de esta m an era, la C P U no Voltaje de conversin ADCVIN
resu lta desviada de su ru tin a p rin cip al d u ran te Los lm ites p ara el voltaje d e conversin siem pre
el tiem po de conversin de cada can al. Las ca estn definidos por la m ag n itu d de la fuente de
ractersticas de este m d u lo son: alim en taci n del m icrocontrolador; de esta for
m a, para un voltaje de entrada igual o m ayor a
U n convertidor A/D con doce canales de en V DD, el A D C entregar com o resultado de la con
trada de 8 bits, m ultiplexados. versin un dato igual a $FF, m ientras q ue para
T cn ica de conversin an lo ga a d ig ita l por V SS o m enos, el dato ser $ 0 0 . Todos los otros
aproxim aciones sucesivas. valores del voltaje de en trad a que se encuentren
R esolucin de 8 bits por canal. entre V ss y V DD, obtendrn una conversin li
Dos modos de conversin, continua o por ciclos. neal y podrn ser representados por una ln ea es
Dos indicadores de fin de conversin, por se calo n ad a con p en d ien te constante, y d iv id id a en
alizador o p o r interrupcin. 2 5 6 valores discretos ($ 0 0 a $FF).
S e le c to r d e la fu e n te d e l relo j d e m u e s-
treo d e l A D C . Nota;
Para evitar daos perm anentes en los puertos que
se com parten con los canales A/D, la m ag n itu d
El m dulo A D C se m uestra en la figu ra 2 4 .1 , all del voltaje de en trad a anlogo A D C V IN nunca
se ve el diagram a del circuito electrnico de este d e b e e sta r p o r e n c im a ni p o r d e b a jo d e los
m dulo representado en sus principales bloques. u m b rale s de a lim e n ta c i n V DD y V ss, resp ec
tiv a m e n te .
Todos los canales de en trad a anlogos capa
citados para m uestrear seales externas, se en Tiem po de conversin
cuen tran disponibles a travs de los term inales Para com pletar un ciclo de conversin, el m du
d el M C U q ue corresponden con los puertos de lo A D C usa 16 estados de su reloj in terno, y se
p ro p sito g en eral PTBO a P T B 7 , y PTDO a in icia con el prim er flanco creciente de dicho
P T D 3 ; y por m edio del registro de estado y con reloj. Por m edio de la sigu ien te ecuacin se p u e
trol del A D C (A D SC R ) se definen cuales de los de calcu lar el tiem po que tom a una conversin:
doce canales estarn activos y se com portarn
com o entradas anlogas. Tiempo de 1 6 perodos del reloj del A D C
conversin Frecuencia del reloj del A D C
Para resu m ir el co m p o rtam ie n to d el m
d u lo A D C , se p u ed e an o tar, q u e, por m edio
de u n m u ltip le x o r an lo go se e lig e uno de los Por ejem p lo, para una frecuencia de reloj del
doce can ales A/D com o la fu en te de v o ltaje de A D C d efin id a en 1M H z, el tiem po de un ciclo
en trad a (A D C V IN ) del n ico co n vertid o r an de conversin com pleto ser d e l s y la m xim a
logo a d ig ita l d isp o n ib le en el m d u lo , y lu e frecuencia de m uestreo ser ig u al a 6 2 ,5 k H z.
go, este v o ltaje an lo go , p o r m ed io de ap ro x i
m acio n es su cesivas, se c o n v ierte en u n a m ag M odo de conversin continua
n itu d d iscreta rep resen tad a en 8 b its en el re U na vez se activa el m odo de conversin co n ti
g istro de datos d el A D C . Al fin a liz a r u n ciclo nua, el m dulo A D C efecta ciclos consecutivos
de co n versi n el m d u lo A D C g rab a el resul de conversin A/D sobre e l canal de en trad a se
tad o con re so lu ci n de 8 b its en el reg istro de leccionado, y sobrescribe y actualiza el conteni
d ato s d el A D C , llam ad o A D R ; y p o n e en uno do del registro de datos A D R al co n clu ir cada
l gico su co rresp o n d ien te b it b an d era C O C O , tiem po de conversin. Para in terru m p ir el pro
o b ien , g en era u n a so lic itu d de in te rru p c i n . ceso de conversin co n tin u a, se requiere borrar
M *
Curso prctico sobre M icrocontroladores G M IK M T 1 235
13. L u d u la c a iiV L m ic i'A 1 2 ^12C ] y d . SLLvl e l E c lC d c

D ire c c i n : S 003C
el b it de control A D C O q u e hace p arte del
registro de estado y control del A D C . B it 7 6 5 4 3 2 1 B it 0
Lectura: COCO
AfEN ADCO CH4 CH3 CH2 CH1 CHO
E s c ritu ra : |
En este m o d o , el b it de conversin
co m pleta C O C O se coloca en uno despus Reset. 0 0 0 1 1 1 1 1

de cad a conversin exitosa; y el usuario e s ta b le c e r


podr borrarlo p o r so ftw a re escribiendo d i
rectam ente sobre el registro A D S C R , o, le F ig u ra 2 4 .2 Registro de estado y co n tro l d e i ADC (ADSCR)

yen d o el registro de datos A D R.


sin se com pleta, es de slo lectura; y puede
L a s in te rru p c io n e s d e i ADC ser au to m ticam en te borrado al escribir d i
A l colocar un uno lgico en el b it habilitador de la rectam ente en el registro A D S C R , o, al leer el
interrupcin del convertidor A/D, llamado AIEN, registro A D R . El reset lo borra.
el m dulo es capaz de generar una solicitud de inte
rrupcin a la C PU 08 al cabo de cada ciclo de con C u an d o AIEN = 0:
versin. C uando la interrupcin del A D C est acti C on 1 lgico, indica conversin com pleta
va, el b it C O C O no se usa como bandera del fin de C on 0 lgico, in d ica conversin inco m pleta
conversin, sino que se usa para dis
parar la solicitud de interrupcin CH4 CH3 CH2 CH1 CHO Canal ADC Selector de entradas
cuando su estado es cero lgico.
0 0 0 0 0 ADCO PTBO
R e g is tro s d e c o n fig u ra c i n 0 0 0 0 1 ADC1 PTB1
0 0 0 1 0 ADC2 PTB 2
Los registros especiales del microcon 0 0 0 1 1 ADC3 PTB 3
trolador que se usan para definir los 0 0 1 0 0 ADC4 PTB 4
parmetros del m dulo convertidor 0 0 1 0 1 ADC5 PTB 5
A D C, son tres: el registro de estado
0 0 1 1 0 ADC6 PTB6
y control AD SCR, el registro de da
tos A D R, y el registro de configura 0 0 1 1 1 ADC7 PTB 7
cin del reloj ADICLK. En los si 0 1 0 0 0 ADC8 PTD3
guientes prrafos se hace la descrip 0 1 0 0 1 ADC9 PTD2
cin de cada uno de los bits que con 0 1 0 1 0 ADC10 PTD1
forman estos registros. 0 1 0 1 1 ADC11 PTDO
0 1 1 0 0
- No usado
En la fig u ra 2 4 .2 se m uestra el 1 1 0 1 0
registro A D SC R que nos per 1 1 0 1 1 - Reservado
m ite configurar los canales de 1 1 1 0 0 - No usado
conversin activos, habilitar la 1 1 1 0 1 VDD A(N ota1)
in terru p c i n , seleccio n ar su
1 1 1 1 0 VSSA <Nota 1)
m odo de trabajo, y conocer el
1 1 1 1 1 Apagado del ADC
estado de la conversin. -------------------------------
N o ta 1:
es el b it bandera a u e ^S vo*ta)es in te rn o s d e re fe re n c ia se u san p a ra v e rific a r la o p e ra c i n d e l c o n -
* v e r t id o r A D C .
sealiza cu an d o una conver- ja b la 2 4 .1 Tabla de seleccin de canales d e l m dulo ADC

3 m tr.. Curso prctico sobre M icrocontroladores


Direccin: S003D lo A D C , llam ad o A D R ; es
Bit 7 6 5 4 3 2 1 BitO de slo lectura, y su conte
Lectura: AD7 AD6 AD5 AD4 AD3 AD2 AD1 ADO
nido es in m ed iatam en te ac
Escritura: tualizado cada vez que una
c o n versi n te rm in a . D es
R eset Indeterminado despus de reset
pus d e un re s e t su estado
Sin establecer puede ser cualquiera.
F ig u ra 2 4 .3 Registro de datos d e l ADC (ADR)

Direccin: S003E
E n la fig u ra 2 4 .4 se m ues
Bit 7 6 5 4 3 2 1 BitO
Lectura: 0 0 0
tra el registro A D IC L K que
0
ADIV2 ADIV1 nA r w*nu 0 nos p e rm ite seleccio n ar la
Escritura:
frecu en cia d el relo j in tern o
Reset. 0 0 0 0 0 0 0 0
p a ra el m uestreo de las se
Sin establecer ales con el A D C , p o r m e
d io d e lo s b it s AD IVO a
F ig u ra 2 4 .4 Registro de configuracin del re lo j de l ADC (ADICLK) A D IV 2 se p u e d e s e le c c io
n a r e l d iv is o r u sad o p o r
es el b it de control de son los bits del e ste m d u lo p a ra g e n e ra r
la in terru p ci n del A D C , es se le c to r d e c an ale s A D C , el re lo j in te rn o d e l A D C .
de escritura, y cuando se co con los b its CHO a C H 3 se L a ta b la 2 4 . 2 m u e stra las
loca, el m dulo A D C gene e lig e uno de los doce cana o p c io n e s p a r a lo s b i t s
ra u n a in terrupcin al com les disponibles, y con el C H 4 A D IV x .
pletar la conversin. Las con se les asignan algunas funcio
diciones q ue borran este b it nes especiales. La tabla 2 4 .1 El m dulo del sistem a de
son iguales a las del C O C O . resu m e las co n d icio n es de integracin SIM
estos bits. El m d u lo d e l siste m a de in
C on 1 lgico, se h ab ilita la te g ra c i n S IM se rep resen ta
in terrupcin . en b lo q u e s en la fig u ra 2 4 .5 ;
C o n 0 lgico, se in h ab ilita e l S I M es el c o n tro la d o r del
la interrupcin. En la figura 2 4 .3 se m uestra estad o d el siste m a y se e n c a r
el registro de u n b y te que g a de c o o rd in a r to d as las a c
es el b it selector del contien e en todo m om ento tiv id a d e s e n tre la C P U y el
m odo de conversin co n ti el resultado de la ltim a con siste m a de buses. El S IM es
n u a o por ciclos del m dulo versin hecha por el m du- resp o n sab le de:
A D C , es de escritura, y nos
p erm ite elegir entre el m odo
ADIV2 ADIV1 ADIVO D iviso r del re lo j del ADC
d e conversin co n tin u a y la
conversin de un slo ciclo. 0 0 0 Reloj de entrada ADC v1
0 0 1 Reloj de entrada ADC-r 2
Con 1 lgico, se activa el modo 0 1 0 Reloj de entrada ADC t 4
de conversin continua. 0 1 1 Reloj de entrada ADC-r 8
Con 0 lgico, se inactiva la con
1 X X Reloj de entrada ADC-r 16
versin continua y se activa la
conversin de un slo ciclo. Tabla 2 4 .2 Tabla de preescaladores d e l re lo j del ADC (ADIVx)
*
Curso prctico sobre M icrocontroladores G S B M T .l < 237
ELliiiilL
ucuLimitf.E/D (
A.D
.E)yelS
LLv
leLE
fiL
-LG
iif
i

M dulo STOP
M dulo WAIT

CPU STOP (Desde CPU)


CPU WAIT (Desde CPU)

SIMOSCEN (hacia el oscilador)

CONTADOR RELOJ DEL COP


DEL SIM

2OSC0UT (Desde el oscilador)


OSCOUT (Desde el oscilador)

VDD
T
Resistencia pull-up CONTROL DEL RELOJ GENERADOR DE RELOJ Relojes internos
interna

Cdigo de operacin ilegal (Desde la CPU)


CONTROL DEL POR
CONTROL Direccin ilegal (Desde los decodificadores
CONTROL DEL PIN DE RESET i ACCTDT
MAESTRU del m apa de d ire c c io n e s )
REGISTRO DE ESTADO DEL RESET Desbordam iento del tem porizador del COP
DEL RESET O
E Reset del USB

RESET

DECODIFICADOR Y
CONTROL DE LA Fuentes de interrupcin
PRIORIDAD Y DE LA
-Interfaz de la CPU08
INTERRUPCIN

F ig u ra 2 4 .5 Diagram a de bloques del m dulo SIM

C o n tro lar la C P U 0 8 y los perifricos.


DIRECCIN ILEGAL
C o n tro la r la en trad a y sa lid a de los m odos es
CDIGO DE OPERACIN ILEGAL
p eciales d e fu n c io n am ie n to : STO P, W A IT, RESET
RESET DEL COP
RESET, y BREAK. INTERNO
POR
C o n tro lar el reloj interno del bus. LVl
C o n tro lar el reset m aestro, el de la conexin
F ig u ra 2 4 .6 Fuentes de inte rrup ci n internas de la CPU08
(P O R ), y el desbordam iento del COP.
C o n tro lar el procesam iento de todas las in te Todas las interrupciones internas de reset que
rrupciones externas e internas. afectan a la C P U 0 8 se m uestran en la figu ra 2 4 .6 ,
C o n tro lar la arqu itectu ra m o d u lar expansible estas son: direccin ilegal, cdigo de operacin ile
de las fuentes de in terru pcin . gal, desbordam iento del tem porizador del COP,
el reset a la conexin (P O R ), y el inhib idor por
Fuentes internas de interrupcin del reset bajo voltaje (LV l). Todas ellas fuerzan el p in de
Para c o m p le tar n u estro e stu d io d e la in te rru p entrada externa del R S T a un nivel bajo durante
ci n p rin c ip a l d e l M C U , el r eset , en esta o ca 32 periodos del reloj 2 0 S C 0 U T , para perm itir la
sin se h ar n fasis s lo en las cin co fuentes inicializacin de los perifricos externos conecta
in tern as que lo o rig in a n , ya q u e su e stru c tu ra dos alrededor del m icrocontrolador. En la figura
y las fuen tes extern as fu ero n a m p liam e n te tra 2 4 .7 se m uestra el diagram a de tiem pos de la vec-
tad as en o tra o casi n . torizacin de una interrupcin de este tipo.

Curso prctico sobre M icrocontroladores


IR S T
El re s e t de los m dulos
_E1 M C U lo p o n e e n c e ro
COP y LVI
D e estos dos m dulos, y a estudia
20SC0U T dos en detalle en la leccin anterior,
solo se d ir q ue am bos generan un
IA B V e c to r a lto
1 reset interno cada que se desborda
F ig u ra 2 4 .7 Diagram a de tiem pos de un re s e t interno el contador del COP, o cuando V DD
cae por debajo del um bral (V TR IP)
El reset a la conexin de la definido en el m dulo LVI. En cual
alim entacin POR q u ier caso, el proceso de la in terru p ci n slo se
C u an d o se conecta por p rim era vez la alim en in iciar a los 6 4 periodos del reloj 2 0 S C 0 U T , y
taci n al M C U , el m d u lo d el PO R ( p o w er -o n despus la estab ilidad del oscilador.
reset) genera un pulso p ara in d icar a la C P U que
esto ha sucedido, y se d a in icio a la secuencia de Los registros de estado del m dulo SIM
acciones propias del P O R , q ue son: Los registros del SIM son tres y estn localizados
en la m em oria entre las posiciones SFE00 y $FE03,
1. Se reconoce la fuente de reset in terna. por m edio de sus bits el program ador puede co
2. El SIM h ab ilita la salida de reloj 2 0 S C 0 U T . nocer el estado de la C P U 0 8 en todo m om ento.
3. Los relojes internos de la C P U y los m dulos
se d etienen d u ran te 4 .0 9 6 periodos del reloj
2 0 S C 0 U T , m ientras que el m du lo d el os En la fig u ra 2 4 .8 se m uestra el registro B SR ,
cilador se estab iliza. este registro de estado posee un b it bandera
4. El pin de entrada RST, se coloca en nivel bajo q u e in d ic a cu an d o la sa lid a de los m odos
durante el tiempo de estabilizacin del oscilador. ST O P y W A IT se ocasiona por un break, y se
3. El b it PO R del registro de estado del reset del le conoce com o SB SW ; para borrarlo se re
SIM (R S R ), se grab a con uno lgico, m ien quiere de un reset, o, escribir un cero en l.
tras que todos los otros b its de este registro
son borrados. C on 1 lgico, indica que la C P U sali de los
m odos ST O P o W A IT debido a u n a in terru p
El re s e t por cdigo de operacin ilegal cin break.
El S IM deco difica las seales que se o rig in an en C on 0 lgico, in d ica que la C P U no sali de
la C P U 0 8 para d etectar in stru ccio n es ilegales, los m odos ST O P o W A IT debido a una in te
cu alq u ie r in stru cci n ilegal pone en uno lgico rrupcin break.
el b it ILO P del registro R S R , y gen era u n a so li
c itu d de in terru p ci n por r eset interno. El registro d e estad o del reset (R SR ).
En la figura 2 4 .9 se m uestra el registro R SR ,
El reset por direccin ilegal este registro posee los b its band era que infor-
C u an d o el S IM se d a c u e n ta que la C P U
D ire c c i n : S FE00
h a in ic ia d o el ciclo de b sq u ed a de un
c d ig o de o p eraci n desde u n a d irecci n B it 7 6 5 4 3 2 1 B itO

L e c tu ra : SBSW
ileg al (fu era d el rea d el m ap a de m em o R R R R R R R
E sc ritu ra : N o ta t
ria d e fin id o p a ra la C P U 0 8 ), se gen era
un r e set p o r d ire c c i n ile g a l, y el S IM R eset

c o lo c a en u n o l g ic o el b i t de estad o N ota:
|S n e s ta b le c e r Al es crib ir u n cero lgico se borra el SBSW
ILA D d el reg istro R S R , in m e d ia tam e n te
an tes de re in ic ia r el M C U . F ig u ra 2 4 .8 R egistro de estado del m odo brea k (BSR)

Curso prctico sobre M icrocontroiadores < M B C K T ,.


D ire c c i n : SFE01 rante el ciclo de bsqueda de cu alq u ier c
Bit 7 6 5 4 3 2 1 B it O digo de operacin.
L e c tu ra : POR PIN COP ILOP ILAD MODRST LVI O
E sc ritu ra : C on 1 lgico, in d ica que el ltim o reset fu e
POR: 1 0 0 0 0 0 0 0 causado por el ciclo de bsqueda de u n c
establecer digo de operacin en u n a direccin ilegal.
C on 0 lgico, in d ica que el R SR fue ledo,
F ig u ra 2 4 .9 R egistro de estado del reset (RSR')
o se gener un PO R.
m an al usuario sobre la procedencia del lti
mo reset ejecutado. Para borrar todas sus ban es el b it de estado que sealiza el
deras auto m ticam en te (excepto la del PO R), reset del m odo m onitor.
basta leerlo.
C on 1 lgico, in d ica que el ltim o reset fue
es el b it de estado que sealiza al reseta. causado por la entrada al m odo m onitor.
la conexin (P oiver-O n Reset). C on 0 lgico, in d ica q u e el R S R fue led o , o
se gener un PO R.
C on 1 lgico, in d ica q u e el ltim o reset fue
causado por el circuito PO R. es el b it de estado q ue sealiza el reset
C on 0 lgico, indica que el registro R SR fue ledo. causado por el m dulo LVI.

es el b it de estado que sealiza al reset C o n 1 lgico, in d ica que el ltim o reset fue
externo RST. causado desde el circu ito LVI.
C o n 0 lgico, in d ica q u e el R SR fue led o , o
C on 1 lgico, in d ica que el ltim o res e t fue se gener u n PO R.
causado por el pin de en trada externo RST.
C o n 0 lgico, in d ica q ue el R SR fue ledo, o
se gener un PO R.
En la fig u ra 2 4 .1 0 se m u estra el registro
es el b it d e estado que sealiza el desborda B F C R , este registro contien e un b it de lectu
m iento del temporizador de vigilancia del COP ra y escritura que h ab ilita al program ador des
de el so ftw a re para bo rrar los bits de estado
C on 1 lgico, indica que el ltim o reset fue m ientras que la C P U est en estado de break,
causado por el COP. se llam a BC FE. C on el reset se pone en cero.
C on 0 lgico, in d ica q ue el R SR fue ledo , o
se gener u n P O R . C on 1 l gico, se h a b ilita el borrado de todos
los bits de estado d u ran te el break.
es el b it d e estado que sealiza al reset C on 0 lgico, se in h ab ilita el borrado durante
causado por una op eracin ilegal. el estado de break.

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

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


C on 0 lgico, in d ica q u e el R SR fue le L e c tu ra :
BCFE R R R R R R R
do, o se gener un PO R . E sc ritu ra :

R eset. 0
es el b it de estado que sealiza al ^ R e s e rv a d o
reset debido a una direccin ilegal du-
F ig u ra 2 4 .1 0 Registro de co n tro l de la bandera d e l brea k (BFCR)

e m a c a r ,! Curso p rctico sobre M icrocontroladores


ELMDULO DE LA II
DE TEMPORIZACION ( T IM )
DEL 68HC08
La cuenta del tiem po es la tarea ms com n den
tro de las aplicaciones de los m icrocontroladores
en cualesquiera de sus cam pos, y, por ello, el p ri
m er circuito perifrico interno de propsito espe
cial que se incorpor a la arquitectura de estos dis
positivos fue el m dulo temporizador.

Gracias a los m dulos tem porizadores, el progra


m ador puede contar cualquier periodo de tiem po
usando como base el ciclo del reloj interno del
m icrocontrolador, y, sin ocupar a la C PU .

Curso p r ctico sobre M icrocontroladores C W J fC IT . <{{241


1=1mdula i i Le. u ieiid i de taii[ietiieetdn (HM1 del dcLiCdc

La tempo rizacin de los eventos, por m edio aum en tado la eficien cia de los M C U considera
de los lazos de softw a re , fue la prim era forma de blem ente, perm itindonos, adem s de contar pe
contar el tiem po en los microcontroladores; sta es riodos largos de tiem p o, llevar a cabo otras fu n
una tarea simple, pero, no obstante, puede ocupar ciones que se basan en la cuenta del tiem po, ta
durante m ucho tiem po a la C P U e im pedir que les com o la transm isin y recepcin de datos, la
e lla desarrolle otras actividades reduciendo consi v ig ilan c ia de procesos, y el m anejo y control de
derablem ente la eficiencia del dispositivo. Este tipo otros dispositivos por m edio de las tcnicas cl
de temporizacin est adem s lim itada por el ta sicas de m odulaci n de pulsos.
m ao y el nm ero de registros de propsito general
disponibles, y, por lo tanto, slo se recom ienda para El T IM del 68H C 08
contar pequeos periodos de tiempo. En la figura 2 5 .1 se m uestra el diagram a de blo
ques del T IM (tim er in terfa ce m od u le). En esta lec
G racias a la in tegracin de circu ito s tem po- cin estudiaremos la segunda versin del T IM de
rizadores com o dispositivos perifricos dentro de los m icrocontroladores M o to ro la de la fam ilia
la arq u itectu ra de los m icrocontroladores, se le H C 0 8 (T IM 2 , versin B); ste es el m dulo de la
ha facilitado esta tarea al program ador, y se ha interfaz de temporizacin, y est compuesto por

RELOJ DEL SELECTOR DEL


BUS INTERNO PREESCALADOR

TSTOP

LGICA DEL
P PUERT0

r LGICA DE
INTERRUPCIN

LGICA DEL
PUERTO

LGICA DE
INTERRUPCIN

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

242 Js- ^ B iT d .. Curso prctico sobre M icrocontroladores


la m a

un temporizador de dos canales con entrada de cap do un flanco activo program ado se detecta por
tura, salida de com paracin, y funciones de m odu el pin de un canal configurado com o una en
lacin por ancho de pulsos (P W M ). Las principa trada de captura, el T IM guarda el contenido
les caractersticas que posee este m dulo son: del contador en los registros del canal corres
pondiente, T C H x H y T C H xL , y, adicional
Dos canales in dep endien tes con en trad a de m ente, puede generar una solicitud de interrup
cap tu ra y salid a de com paracin cin en la C P U 08.
Generador de salida P W M con b u ffer o sin buffer
Preescalador program able para el reloj del T IM
C o n tado r de carrera-libre, o en m dulo con U sando las funciones definidas para el circu i
tador ascendente to de com paracin del T IM , el M C U puede
B its de paro y reset del contador del T IM generar pulsos peridicos, con po larid ad , d u
A r q u ite c tu r a m o d u la r (e x p a n s ib le h a sta racin, y frecuencia program ables. C u an d o el
ocho can ales) contador igu ala el valor guardado en los re
gistros de un canal configurado com o salida
F u n c io n e s d e l T IM de co m paracin, el T IM puede poner, borrar,
El T IM com parte sus dos canales de entrada y sali o cam b iar el estado del p in asociado a dicho
da con los dos puertos I/O de propsito general, canal; y, ad icio n alm en te, puede generar una
PTD 4 y P T D 5; el principal com ponente del T IM so licitu d de in terrupci n en la C P U 0 8.
es el contador de 16 bits, de l proviene la referencia
para las funciones de captura y comparacin. Usan Cualesquiera de los dos canales programados
do los registros de 8 t s T M O D H y T M O D L el como salidas de comparacin pueden generar pulsos
program ador puede controlar el valor del m dulo directamente sin la intervencin de un buffer, y esto
contador del T IM , y puede leerlo en cualquier quiere decir, que para cambiar el valor de compara
m om ento sin afectar la secuencia de la cuenta. cin de la salida, que est guardado en los registros
del canal del T IM correspondientes, solo se requiere
En la estructura del T IM que se m uestra en sobreescribir el nuevo valor en tales registros.
la figu ra 25.1 se destacan las siguientes partes:
Los canales cero y uno (CHO y C H l) , tam
El preescalador del contador del TIM bin pueden enlazarse para configurar una salida
El bloque preescalador usa los b its P S [2 :0 ], de com paracin con b u ffer disponible a travs de
localizados en el registro de estado y control la salid a del canal cero (pin P T D 4/ T C H 0).
del T IM (T S C ), para se
leccionar la fuente del re
loj, y la salida de reloj pue DESBORDAMIENTO DESBORDAMIENTO DESBORDAMIENTO
de ser elegida entre siete PERIODO -
o p cio n e s de fre c u e n c ia VALOR DEL REGISTRO DEL
que se obtienen al d iv id ir MDULO CONTADOR DEL TIM

el reloj in terno del bus. ANCHO DE


PULSO

La entrada de captura VALOR DEL


Por m edio de las funcio TCHx J REGISTRO DEL
CANAL DEL TIM
nes de este bloque el T IM
puede capturar el tiem po SALIDA DE SALIDA DE SALIDA DE
durante el cual ocurre a l COMPARACIN COMPARACIN COMPARACIN
gn evento externo. C uan- F ig u ra 2 5 .2 Seal PW M generada p o r e l TIM d e l 68HC08

Curso p r ctico sobre M icrocontroiadores S M C iT ,


1=1 i u i