Alrededor de los Microcontroladores Capítulo 10.

Periféricos
10 PERIFERICOS
Los Periféricos internos ue se discutir!n son " El con#ersor An!lo$ico%di$ital A/D
Converter& el te'pori(ador Timer& Interface de Co'unicaci)n serial SCI e Interface
periférica serial SPI.
10.1 El Conversor Analógico-Digital del MCU
El con#ersor ue utili(a el MC* es de + ,its - es del tipo de aproximaciones sucesivas
con un error de linealidad de ./% 0 LS1. 2iene en total 13 canales 'ultiple4ados de
los cuales s)lo + est!n conectados a las patas del MC* 56 canales est!n reser#ados -
otros 6 no se pueden usar7. El 'uestreo - retenci)n per'iten 'ini'i(ar los errores de
con#ersi)n causados por los r!pidos ca',ios en la se8al de entrada durante la
con#ersi)n.
Las patas pines 9rl - 9r: del con#ersor son usados para esta,lecer los #olta;es de
referencia para las se8ales de entrada. Estas patas de,en ser conectadas a una fuente de
Pontificia *ni#ersidad Cat)lica del Per< 1 =osé A. >!#alos Pinto
Alrededor de los Microcontroladores Capítulo 10. Periféricos
ali'entaci)n de ,a;o ruido para ase$urar e4actitud en la con#ersi)n A/> - aceptar!
entonces se8ales de entrada en el ran$o de 9rl a 9r:.
El proceso de con#ersi)n es radio'étrico& un #olta;e de entrada anal)$ico i$ual a 9rl se
con#ierte a se8al di$ital de ?00 - un #olta;e de entrada de 9r: se con#ierte a ?FF 5plena
escala7. El ran$o de #olta;e es de 0 a @ #oltios& pero otros #olta;es son per'itidos
sie'pre ue cu'plan ue 9r: es de A.@ a @ #oltios 'a-or ue 9rl .Cada con#ersi)n de
se8al anal)$ica en se8al di$ital reuiere un tie'po e4acto de BA ciclos de relo; E-clock,
con un oscilador a cristal de + M:(. el tie'po de con#ersi)n es de 13 use$s.
La selecci)n de las entradas es controlada por los ,its C> a CA en el re$istro A>C2L.
FIC*RA 10.1 >IACRAMA ED 1LOE*ES >EL COD9ERSOR A/>
Pontificia *ni#ersidad Cat)lica del Per< A =osé A. >!#alos Pinto
Alrededor de los Microcontroladores Capítulo 10. Periféricos
Secuencia de Conversión
Las operaciones del con#ersor A/> son e;ecutadas en secuencias de 6 con#ersiones. *na
secuencia de con#ersi)n puede ser repetida continua'ente o detenida lue$o de una
iteraci)n. La ,andera de con#ersi)n co'pleta CCF es seteada después de la cuarta
con#ersi)n en una secuencia& para 'ostrar la disponi,ilidad del dato en los registros de
resultado.
FIC*RA 10.A SEC*EDCIA >E COD9ERSIOD
Encendido y Selección del Reloj del Conversor
El pro$ra'a puede apa$ar la ener$ía eléctrica del con#ersor A/> - puede restaurarla
nue#a'ente. El ,it A>P* en el re$istro OP2IOD controla la ener$ía del con#ersor.
1orrando el ,it A>P* se apa$a el con#ertidor A/> - acti#ando el ,it A>P* se enciende
el con#ertidor A/>. Al$unos ,its del re$istro OP2IOD son de escritura de una sola #e(
timed-write-once.
Pontificia *ni#ersidad Cat)lica del Per< B =osé A. >!#alos Pinto
Alrededor de los Microcontroladores Capítulo 10. Periféricos
El tipo de relo; se selecciona con el ,it CSEL del re$istro OP2IOD. Los re$istros
usados para el con#ersor son el re$istro de confi$uraci)n de opciones& el re$istro de
control - estado.
Configuración del Conversor (System Configuration Options Register) OPTION
El re$istro de confi$uraci)n OP2IOD es de + ,its - es utili(ado opcional'ente durante
la iniciali(aci)n para confi$urar opciones internas. Con e4cepci)n de los ,its A>P*&
CSEL - CME en los ue se puede escri,ir en cualuier 'o'ento& el re$istro puede
escri,irse s)lo una #e( después del reset - lue$o es de s)lo lectura.
Si no se escri,e en este re$istro en un pla(o de 36 ciclos de relo; después del reset&
entonces los ,its IREE& >LF& CR1 - CR0 se con#ertir!n en s)lo de lectura& para
'ini'i(ar el ries$o de un ca',io accidental de condiciones. Cuando est! en los 'odos
especiales de prue,a& el 'ecanis'o de protecci)n en este siste'a es anulado - se puede
escri,ir en todos los ,its del re$istro OP2IOD.
1itG 1it3 1it@ 1it6 1itB 1itA 1it1 1it0
OP2IOD ?00BH A>P* CSEL IREE >LF CME FCME CR1 CR0
El encendido el conversor A/> 5A/> PoIer%up7 es el ,itG5A>P*7. Este ,it es puesto en
ni#el ,a;o por operaciones de reset de control del con#ersor. Cuando el pro$ra'a
enciende el con#ersor se de,e esperar por lo 'enos 100 use$s. antes de usar el
con#ersor& para per'itir la esta,ili(aci)n del circuito. Cuando este ,it est! en ni#el ,a;o
el con#ersor es apa$ado - las de'andas de con#ersi)n no en#iar!n infor'aci)n
si$nificati#a. Cuando este ,it se pone en ni#el alto se enciende el con#ersor.
La selección de la fuente de relo del A/D 5A/> ClocJ source select7 es el ,it35CSEL7.
Este ,it es puesto en ni#el ,a;o por reset - deter'ina la fuente del relo; para el
con#ersor. El ,it CSEL ta',ién per'ite la pro$ra'aci)n del EEPROM por lo tanto
to'ar las precauciones del caso para e#itar pro,le'as. Cuando este ,it est! en ni#el
,a;o& el relo; del con#ersor es E%relo; del siste'a el cual 5usual'ente est! por enci'a de
Pontificia *ni#ersidad Cat)lica del Per< 6 =osé A. >!#alos Pinto
Alrededor de los Microcontroladores Capítulo 10. Periféricos
1 M:(7& controla al con#ersor. Cuando este ,it est! en ni#el alto& un oscilador RC ue
usual'ente est! por de,a;o de 1 M:( es :a,ilitado - le en#ía la se8al de relo; al
con#ersor. 2o'a cerca de 10 'se$s. después de seleccionar el relo; RC antes de ue se
esta,ilice el con#ersor de 'odo ue el pro$ra'a pueda usarlo. Al usar el relo; RC& el
pro$ra'a no de,ería usar la ,andera CCF para deter'inar cuando las con#ersiones son
co'pletas.
La selección de la sensi!ilidad por flanco o nivel de IRE 5IREK Ed$e/Le#el sensiti#e" es
el ,it@5IREE7. Este ,it de lectura o escritura es puesto en ni#el ,a;o por reset. Cuando
este ,it est! en ni#el ,a;o la pata IREK est! confi$urada para ser acti#a en ni#el ,a;o.
Cuando este ,it est! en ni#el alto la pata IREK est! confi$urada para ser acti#a por
flanco de ,a;ada.
La activación de retardo después de stop 5Stop e4it turn%on >ela-7 es el ,it65>LF7. Este
,it es puesto en ni#el alto durante reset. Controla si es ue se pondr! un retardo o no
antes de continuar con el procesa'iento& después de un periodo S2OP. Si una fuente de
relo; e4terna es su'inistrada este retardo puede ser in:i,ido de 'anera ue el
procesa'iento puede ser ter'inado unos cuantos ciclos desde el 'odo S2OP. Cuando
este ,it est! en ni#el ,a;o el retardo es i$norado. Cuando este ,it est! en ni#el alto una
espera es i'puesta para per'itir la esta,ili(aci)n del oscilador.
La #a!ilitación del monitoreo del relo 5ClocJ Monitor Ena,le7 es el ,itB5CME7. Este
,it de control puede ser leído o escrito en cualuier 'o'ento - controla si es ue el
circuito de 'onitoreo del relo; interno iniciar! una secuencia de reset cuando detecte
ue el relo; es lento o no e4iste. Cuando este ,it est! en ni#el ,a;o el circuito de
'onitoreo del relo; es des:a,ilitado. Cuando este ,it est! en ni#el alto el 'onitoreo es
:a,ilitado.
Los ,its CR1&CR0 seleccionan la tasa de tiempo de C$% 5COP 2i'er Rate Select7,
estos ,its seleccionan la tasa de tie'po de e4piraci)n del COP.
Control y Estado del Conversor A!D Control!status Register" ADCTL
Pontificia *ni#ersidad Cat)lica del Per< @ =osé A. >!#alos Pinto
Alrededor de los Microcontroladores Capítulo 10. Periféricos
El registro de control del con#ersor es lla'ado A>C2L. La 'a-oría de los estados de
los ,its del A>C2L son desconocidos después de un reset de encendido. El con#ersor
inicia una con#ersi)n dentro de un ciclo de relo; después de ue pro$ra'a escri,e un
n<'ero en el re$istro A>C2L. El n<'ero escrito selecciona una o #arias opciones de
co'o lee - $uarda los resultados de la con#ersi)n.
1itG 1it3 1it@ 1it6 1itB 1itA 1it1 1it0
A>C2L ?00B0 CCF 0 SCAD M*L2 C> CC C1 CA
Todos los !its de este registro pueden ser le&dos o escritos, excepto el !it' el cual es un
indicador de estado de solo lectura ( el !it) el cual no est* implementado, siempre se
lee como cero.
La !andera de conversión completa 5Con#ersions co'plete fla$7 es el ,itG5CCF7. Es un
indicador de estado de s)lo lectura& cuando est! en estado alto los 6 re$istros de
resultados del A/> contienen resultados de con#ersi)n v*lidos.
Cada #e( ue el re$istro A>C2L es escrito& este ,it es auto'!tica'ente ,orrado 5puesto
a cero7 - la secuencia de con#ersi)n es iniciada. En el 'odo continuo& las con#ersiones
contin<an de 'anera cíclica - los re$istros de resultados contin<an siendo actuali(ados
con nue#os datos& a<n cuando el ,it CCF per'anece en estado alto.
Se de,e escri,ir en el re$istro A>C2L para iniciar la con#ersi)n . Para suspender una
con#ersi)n en curso& ,asta con escri,ir en el re$istro A>C2L - una nue#a secuencia de
con#ersi)n es iniciada in'ediata'ente.
El modo de !arrido 5Scannin$7 es el ,it@5SCAD7. Cuando el ,it SCAD est! en el estado
,a;o 5modo +nico7& el pro$ra'a inicia la con#ersi)n. Cuando las cuatro con#ersiones
est!n co'pletas& el con#ersor se detiene. Entonces& el resultado del re$istro es
actuali(ado una sola ve,, cada #e( ue el pro$ra'a inicia la con#ersi)n. Cuando el ,it
Pontificia *ni#ersidad Cat)lica del Per< 3 =osé A. >!#alos Pinto
Alrededor de los Microcontroladores Capítulo 10. Periféricos
SCAD est! en estado alto5modo continuo7& el con#ersor repite las con#ersiones
continua'ente sin ue el pro$ra'a inter#en$a.
Cuando las cuatro con#ersiones est!n co'pletas& el con#ersor in'ediata'ente e'pie(a
a leer cuatro nue#as con#ersiones otra #e(& - así sucesi#a'ente. Por lo tanto& los cuatro
re$istros de resultados son actuali(ados continua'ente. La ,andera CCF& entonces& no
responde a nin$<n prop)sito en este 'odo.
La lectura de canal 5Multiple c:annel readin$7 es el ,it65M*L27& el cual define sí se #a
leer un canal o cuatro canales. Cuando el ,it M*L2 est! en ni#el ,a;o -lectura
monocanal", el con#ersor lee un solo canal.
El canal es seleccionado por los !its CD-CA del registro ADCT.. S)lo los pri'eros
oc:o canales pueden leer #olta;es e4ternos& por eso el ,it C> es fi;ado a 0 para la
'a-oría de pro$ra'as.
/i el programa necesita solamente una lectura en un solo canal el resultado estar*
disponi!le en el registro AD01, 23 ciclos de relo despu4s 5ue se escri!a en el registro
de control.
Cuando el ,it M*L2 est! en ni#el alto -lectura multicanal", el con#ersor lee cuatro
canales sucesi#a'ente. S)lo los pri'eros oc:o canales del 'ultiple4or pueden leer
#olta;es e4ternos& pero el ,it C> est! usual'ente co'o 0.
El !it CC selecciona entonces el primer o segundo grupo de cuatro canales 5cuando los
,its C>"CC son 00 se leen los canales de AD0%ADB - cuando los ,its C>"CC son 01 se
leen los canales de AD6%ADG7. Los ,its C1 - CA no tienen efecto cuando el ,it M*L2
est! en ni#el alto.
Los ,its ,itB a ,it0 5C>& CC& C1 - CA7 & seleccionan el5los7 canal5es7 de aduisici)n de
la se8al anal)$ica de entrada5 $eneral'ente una #aria,le física7.
2a,la 10.1 Selecci)n de Canales del A/>
Pontificia *ni#ersidad Cat)lica del Per< G =osé A. >!#alos Pinto
Alrededor de los Microcontroladores Capítulo 10. Periféricos
1its de selecci)n de canal
C> CC C1 CA
Se8ales de entrada Re$istro de Resultados
5 Si el ,it M*L2L 17
0 0 0 0
0 0 0 1
0 0 1 0
0 0 1 1
AD05PE07
AD15PE17
ADA5PEA7
ADB5PEB7
A>R1
A>RA
A>RB
A>R6
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
AD65PE67
AD@5PE@7
AD35PE37
ADG5PEG7
A>R1
A>RA
A>RB
A>R6
1 0 M M Reser#ado A>R1%A>R6
1 1 M M Prue,as de f!,rica A>R1%A>R6
Registro de Resultados del Conversor ADR#-ADR1 ADRx
Los re$istros de resultados del con#ersor son re$istros de s)lo lectura usados para
'antener los resultados de con#ersi)n de oc:o ,its. Escri,ir en estos re$istros no tiene
nin$<n efecto. Los datos en los re$istros de resultados son #!lidos cuando la ,andera
CCF en el re$istro A>C2L est! seteado& indicando ue una secuencia de con#ersi)n
est! co'pleta.
2a,la 10.A Re$istros de resultados 5A>R6% A>R17
A>R1 ?00B1 1itG 1it3 1it@ 1it6 1itB 1itA 1it1 1it0
A>RA ?00BA 1itG 1it3 1it@ 1it6 1itB 1itA 1it1 1it0
A>RB ?00BB 1itG 1it3 1it@ 1it6 1itB 1itA 1it1 1it0
A>R6 ?00B6 1itG 1it3 1it@ 1it6 1itB 1itA 1it1 1it0
E;e'plo 10.1 Aduirir 6 se8ales anal)$icas por los canales AD0%ADB por una <nica #e(
- coloue los resultados a partir de la direcci)n ?0300. Considere ue el E%clocJ es de
0.@6A@ use$.
NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
NO M)dulo " >a6.as'
NO >escripci)n" Aduiere 6 se8ales anal)$icas.
NO Siste'a " Ensa',lador as'I>E - 2ar;eta controladora CC111.
Pontificia *ni#ersidad Cat)lica del Per< + =osé A. >!#alos Pinto
Alrededor de los Microcontroladores Capítulo 10. Periféricos
NO
NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
NOOOOOO >efinici)n de Constantes - #aria,les OOOOOOOOOOOOOOOOOOOOO
ORC ?0600N
Option EE* ?00BH
A>C2L EE* ?00B0
2e'p EE* ?06A0
A>R1 EE* ?00B1
Resultado EE* ?0300
Du'Lec EE* ?06
N OOOO Pro$ra'a principal OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
ORC ?0@00N
L>AA OptionN encendido del con#ersor A/>
ORAA P?+0
S2AA OptionN
L>AA P?11N scanLunico 'ultL'ulticanal entradasLAD0%ADB
S2AA A>C2LN
L>AA PDu'LecN
S2AA 2e'pN
Repite L>M PA>R1N
L>F PResultadoN
L>A1 PA3N AOt.@OtOcontador L 1A+Ot
Retardo >EC1N
1DE RetardoN
la(o L>AA ?00&MN
S2AA ?00&FN
IDMN
IDFN
>EC 2e'pN
1DE la(oN
1RA RepiteN
ED>N
Pontificia *ni#ersidad Cat)lica del Per< H =osé A. >!#alos Pinto
Alrededor de los Microcontroladores Capítulo 10. Periféricos
E;e'plo 10.A Aduirir una se8al anal)$ica por el canal AD0 por una <nica #e( - escri,a
el resultado por el puerto C.
NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
NO M)dulo " >a1.as'
NO >escripci)n" Aduiere una se8al por la entrada PE0 del con#ersor A/> en
NO 'odo de ,arrido <nico - Lectura 'onocanal. Escri,e por el
NO Puerto C5PC0%PCG7.
NO Siste'a " Ensa',lador as'I>E - tar;eta controladora CC111
NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
NOOOOO >efinici)n de Constantes - #aria,les OOOOOOOOOOOOOOOOOOOOOO
ORC ?0600
PortC EE* ?0003
>>RC EE* ?000G
Option EE* ?00BH
A>C2L EE* ?00B0
A>R1 EE* ?00B1
2e'p EE* ?06@0
NOOOOOO Pro$ra'a Principal OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
ORC ?0@00N
L>AAOption N encendido del con#ersor A/>
ORAAP?+0 N
S2AA Option N
L>AAP?FF N confi$uraci)n de las patas del puerto C co'o salidas
S2AA >>RCN
L>A1 P?00 N
S2AA 2e'p N Posici)n donde se encuentra >ato
Sensar =SR 9isuali(arN
L>AAP?00 N ScanLunico M*L2L'onocanal entradaLAD0
S2AA A>C2L N
La(o L>AAA>C2L N
Pontificia *ni#ersidad Cat)lica del Per< 10 =osé A. >!#alos
Pinto
Alrededor de los Microcontroladores Capítulo 10. Periféricos
LSLA N
1CS 2er'ino N Co'pro,a'os si ter'in) la con#ersi)n
1RA La(o N
2er'ino L>AA A>R1 N lee A>R1
S2AA 2e'p N Cuarda el dato aduirido
N %%%%%%%Escri,e el dato por el puerto C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
S2AA PortC N
1RA SensarN
N %%%%%%%Su,rutina %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9isuali(ar L>AA2e'p N
S2AA PortC N
L>M P?FF N
Retardo >EM N
1DE RetardoN
RS2 N
ED> N
10.$ El %e&'ori(ador del MCU Timer
El te'pori(ador del 'icrocontrolador al ser pro$ra'a,le puede e;ecutar #arias tareas
contadoras de tie'po. *na #e( iniciali(ado para una tarea dada de conteo de tie'po& no
reuiere del ser#icio del MP* :asta ue el inter#alo de tie'po es co'pletado. Los
contadores de tie'po pro$ra'a,les se usan para crear retardos de tie'po& $enerar
trenes de pulso& 'antener un relo; en tie'po real - 'edir el tie'po entre e#entos
e4ternos& etc.
Pontificia *ni#ersidad Cat)lica del Per< 11 =osé A. >!#alos
Pinto
Alrededor de los Microcontroladores Capítulo 10. Periféricos
FIC*RA 11.B >IACRAMA ED 1LOE*ES >EL 2EMPORIQA>OR
El te'pori(ador de;a li,re de tareas de conteo al MP*& así el te'pori(ador su'inistra el
tie'po ue de'ora la tarea en reali(arse& - no el MP*N esto es i'portante en
Pontificia *ni#ersidad Cat)lica del Per< 1A =osé A. >!#alos
Pinto
Alrededor de los Microcontroladores Capítulo 10. Periféricos
aplicaciones de control de procesos& en donde #arias tareas de control de,en e;ecutarse
en inter#alos específicos. La estructura del te'pori(ador se ,asa en los re$istros
Contador& Salida de co'paraci)n& Entrada de captura& acu'ulador de pulsos& control -
estado.
Contador del %e&'ori(ador (Timer Counter Register) TCNT
El re$istro contador de tie'po 2CD2 es un contador de carrera li!re de 13 ,its ue
cuenta los pulsos de relo; del 'icrocontrolador 5o deri#ado de escalar el relo;7 en 'odo
ascendente de ?0000 a ?FFFF. Este contador re$resa auto'!tica'ente a ?0000 después
de alcan(ar la cuenta '!4i'a ?FFFFN cada #e( ue el contador se resetea& un ,it de
estado es seteado 5puesto a 17 - esto puede ser usado para $enerar una interrupci)n al
MP*.
El re$istro contador 2CD2 es un re$istro de s)lo lectura. *sando instrucciones de car$a
pode'os colocar el contenido del contador en un re$istro del MP*.

2CD2: ?000E 1it1@ 1it16 1it1B 1it1A 1it11 1it10 1itH 1it+
?000F 1itG 1it3 1it@ 1it6 1itB 1itA 1it1 1it0
Salidas de Co&'aración del %e&'ori(ador (Output Compare Register) TOCx
La funci)n de salida de comparación consta de @ re$istros 2OC4 de 13 ,its cada uno -
se usan co'o salidas para controlar inter#alos de tie'po 5o periodos7 de una onda de
salida del te'pori(ador la cual puede ser usada para co'andar otros dispositi#os..
Inicial'ente& es necesario ue una instrucci)n escri,a un #alor al re$istro de Salida de
co'paraci)n 2OC4. Cuando el re$istro contador 2CD2 #a incre'ent!ndose - alcan(a
al #alor al'acenado en el re$istro de Salida de co'paraci)n 2OC4& el MC* acti#a
5setea7 la ,andera de Salida co'paraci)n OC4F en el re$istro de ,anderas de
interrupci)n del te'pori(ador 2FLC1, este suceso se le llama comparación exitosa.
Si est! acti#a la ,andera OC4I del re$istro 2MSR1& sucede la interrupci)n.
Pontificia *ni#ersidad Cat)lica del Per< 1B =osé A. >!#alos
Pinto
Alrededor de los Microcontroladores Capítulo 10. Periféricos
Ade'!s& la salida OC4 del puerto A puede acti#arse o desacti#arse dependiendo de las
,anderas OM4 - OL4 entonces un ni#el de salida se transfiere a una línea de salida del
te'pori(ador 5 PAG%PAB7.
*sando instrucciones de al'acena'iento de do,le ,-te pode'os colocar un #alor
deseado en un re$istro 2OC4 . Si el #alor de 2OC4 es escrito cuando el 2CD2 tiene un
#alor 'a-or& la ,andera se acti#ar! cuando el re$istro contador 2CD2 des,orde 5paso de
?FFFF a ?00007 - alcance el #alor del 2OC4.
Las ,anderas OC4F ue se acti#aron al producirse la co'paraci)n e4itosa de,en ser
desacti#adas 5puestas a cero7 en la rutina de interrupci)n. Esto se :ace escri,iendo un 1
en los ,its correspondientes a las ,anderas.
2a,la 10.B Re$istros de Salidas de Co'paraci)n del 2e'pori(ador
2OC1 : ?0013 1it1@ 1it16 1it1B 1it1A 1it11 1it10 1itH 1it+
2OC1 ?001G 1itG 1it3 1it@ 1it6 1itB 1itA 1it1 1it0

2OCA : ?001+ 1it1@ 1it16 1it1B 1it1A 1it11 1it10 1itH 1it+
2OCA ?001H 1itG 1it3 1it@ 1it6 1itB 1itA 1it1 1it0

2OCB : ?001A 1it1@ 1it16 1it1B 1it1A 1it11 1it10 1itH 1it+
2OCB ?0011 1itG 1it3 1it@ 1it6 1itB 1itA 1it1 1it0

2OC6 : ?001C 1it1@ 1it16 1it1B 1it1A 1it11 1it10 1itH 1it+
2OC6 ?001> 1itG 1it3 1it@ 1it6 1itB 1itA 1it1 1it0

2OC@/
2IC6 :
?001E 1it1@ 1it16 1it1B 1it1A 1it11 1it10 1itH 1it+
2OC@/
2IC6
?001F 1itG 1it3 1it@ 1it6 1itB 1itA 1it1 1it0
Para usar las funciones del te'pori(ador& salida de co'paraci)n OC@ o captura de
entrada IC6 5 PAB 7 de,e acti#arse el ,it I6/O@ en el re$istro PAC2L.
Pontificia *ni#ersidad Cat)lica del Per< 16 =osé A. >!#alos
Pinto
Alrededor de los Microcontroladores Capítulo 10. Periféricos
Entradas de Ca'tura del %e&'ori(ador (Input Capture Register) TICx
La funci)n de captura de entrada consta de B re$istros 2IC4 de 13 ,its cada uno - se
usan para to'ar el #alor presente del contador durante el flanco en la se8al de entrada
por las líneas 5 PAA%PA07 del puerto A. El ni#el acti#o es definido en el re$istro de
control.
Cuando un nivel activo es detectado en una de las entradas del tempori,ador, la
!andera 6Cx7 se activa -se pone a 1" en el registro de estado, luego se copia el valor
del contador TC8T a el registro de captura de entrada T6Cx.
*na interrupci)n puede o no $enerarse en el MP*. El re$istro de captura de entrada se
puede usar para 'edir el tie'po entre pulsos de entrada& la duraci)n de un pulso& o el
período de una se8al de entrada.
2a,la 10.6 Re$istros de Entradas de Captura del 2e'pori(ador.
2IC1 : ?0010 1it1@ 1it16 1it1B 1it1A 1it11 1it10 1itH 1it+
2IC1 ?0011 1itG 1it3 1it@ 1it6 1itB 1itA 1it1 1it0

2ICA : ?001A 1it1@ 1it16 1it1B 1it1A 1it11 1it10 1itH 1it+
2ICA ?001B 1itG 1it3 1it@ 1it6 1itB 1itA 1it1 1it0

2ICB : ?0016 1it1@ 1it16 1it1B 1it1A 1it11 1it10 1itH 1it+
2ICB ?001@ 1itG 1it3 1it@ 1it6 1itB 1itA 1it1 1it0
Control del Acu&ulador de )ulsos (Pulse Accumulator Register) PACTL
El re$istro de control del Acu'ulador de pulsos PAC2L per'ite contar e#entos - su
ta'a8o al ser de + ,its cuenta :asta A@3. Sa- dos 'odos de tra,a;o de acu'ulaci)n de
pulsos 5ue depende del estado del ,it PAMO> en el re$istro PAC2L 7.
En el 'odo acumulación de eventos& se incre'enta el Acu'ulador de pulsos cada #e(
ue se detecta un ni#el acti#o en la pata de entrada PAI5PAG7. El 'odo acumulación de
tiempo se dispara con un ni#el acti#o en la entrada e inicia la cuenta del acu'ulador -
su,secuente'ente detiene el contador.

Pontificia *ni#ersidad Cat)lica del Per< 1@ =osé A. >!#alos
Pinto
Alrededor de los Microcontroladores Capítulo 10. Periféricos
La frecuencia '!4i'a de la se8al e4terna en el 'odo acu'ulaci)n de e#entos es la
'itad de E%relo; - en el 'odo de acu'ulaci)n de tie'po& una se8al de tra,a;o continuo
E%relo;/36 controla el contador de + ,its :asta ue la pata PAG5PAI7 es acti#ado.
1itG 1it3 1it@ 1it6 1itB 1itA 1it1 1it0
PAC2L ?00A3 % PAED PAMO> PE>CE % I6/O@ R2R1 R2R0
La activación del Acumulador de %ulsos es el ,it35PAED7. Cuando el ,it3 est! en ni#el
,a;o& el acu'ulador de pulsos est! desacti#ado. Cuando el ,it3 est! en ni#el alto& el
acu'ulador de pulsos est! acti#ado.
El modo del Acumulador de %ulsos es el ,it@5PAMO>7. Cuando el ,it@ est! en ni#el
,a;o& act<a co'o Contador de e#entos. Cuando el ,it@ est! en ni#el alto& act<a co'o
Acu'ulador de tie'po.
El control de flanco del Acumulador de %ulsos es el ,it65PE>CE7. Este ,it de
lectura/escritura tiene diferente si$nificado dependiendo del estado del ,it de control
PAMO>. Los ,it1 - ,it0& R2R1 - R2R0 respecti#a'ente seleccionan la tasa de
interrupci)n R2I.
2a,la 10.@ Control de detecci)n de flanco del Acu'ulador de Pulsos
PAMO> PE>CE Acci)n en el relo;
0 0 Flanco de ,a;ada en PAI incre'enta el contador
0 1 T T su,ida T T T T
1 0 Di#el ,a;o en PAI in:i,e la cuenta
1 1 T alto T T T T T
Pontificia *ni#ersidad Cat)lica del Per< 13 =osé A. >!#alos
Pinto
Alrededor de los Microcontroladores Capítulo 10. Periféricos
FIC*RA 11.6 >IACRAMA ED 1LOE*ES >EL AC*M*LA>OR >E P*LSOS
El te'pori(ador tiene 0egistros de Control para controlar la acci)n de salida&
co'paraci)n de salida& captura de entrada& etc.
*or(a&iento de las Salidas de Co&'aración (Compare orce Register) C*+RC
El re$istro CFORC per'ite for(ar la acti#aci)n de las funciones de Salida de
Co'paraci)n OC4. La acti#aci)n for(ada es co'para,le con el funciona'iento nor'al&
e4cepto ue las ,anderas de estado no son acti#adas.
Por e;e'plo para for(ar la salida OC4 sin tener ue esperar la co'paraci)n e4itosa& se
de,e colocar un 1 en el ,it FOC4& del re$istro CFORC.
Pontificia *ni#ersidad Cat)lica del Per< 1G =osé A. >!#alos
Pinto
Alrededor de los Microcontroladores Capítulo 10. Periféricos
1SE2 CFORC&M& ?60 N no afecta la ,andera ni pro#oca interrupci)n.
1itG 1it3 1it@ 1it6 1itB 1itA 1it1 1it0
CFORC ?0001 FOC1 FOCA FOCB FOC6 FOC@ % % %
Los ,its FOC1%FOC@ indican las Salidas de Co'paraci)n por For(a'iento. Cuando el
ni#el est! en ,a;o no afecta - cuando el ni#el est! en alto ocurre. Cuando el ,it FOC4
5de la funci)n del OC4 7 est! acti#ado& la funci)n de OC4 reali(a la acci)n pro$ra'ada.
Registro de M,scaras de +C1 (Output Compare ! "as# Register) OC!"
La funci)n OC1 tiene la capacidad de controlar @ salidas al 'is'o tie'po. Esto
si$nifica ue cuando se cu'ple la co'paraci)n e4itosa es posi!le reali(ar la acci)n
pro$ra'ada en la salida 5 pata PAG%PAB 7.
Los ,its de '!scara OC1M4 especifican ue patas del puerto A 5te'pori(ador7 son
afectados cuando la co'paraci)n e4itosa de OC1 se cu'ple. Los ,its de OC1M4
corresponden a las patas PAG%PAB.
1itG 1it3 1it@ 1it6 1itB 1itA 1it1 1it0
OC1M ?000C 0C1MG OC1M3 OC1M@ OC1M6 OCBMB % % %
Los ,its OC1MG%OC1MB son las '!scaras de OC1. Cuando OC1 est! en ni#el ,a;o&
est! desacti#ado. Cuando est! en ni#el alto& controla la pata respecti#a del puerto A .
Registro de Datos de +C1 (Output Compare ! Data Register) OC!D
Pontificia *ni#ersidad Cat)lica del Per< 1+ =osé A. >!#alos
Pinto
Alrededor de los Microcontroladores Capítulo 10. Periféricos
Este re$istro se usa directa'ente con la funci)n OC1 para especificar los datos ue
ser!n conser#ados en las patas del puerto A afectados después de ue se produ(ca la
co'paraci)n OC1.
1itG 1it3 1it@ 1it6 1itB 1itA 1it1 1it0
OC1> ?000> 0C1>G 0C1>3 0C1>@ 0C1>6 0CB>B % % %
Control del %e&'ori(ador 1 (Timer Control Register !) TCTL !
Este re$istro se usa para controlar la acci)n a to'ar co'o resultado de una co'paraci)n
e4itosa entre el contador 2C2D - el re$istro de co'paraci)n de salida OC4. Este
re$istro controla la :a,ilitaci)n - desacti#aci)n de los @ pines de salida del
te'pori(ador para la operaci)n de salida.
Ade'!s& este re$istro de control deter'ina el tipo se se8al $enerada en esos pines
cuando se acti#an durante una operaci)n de co'paraci)n. Los tipos de se8al son" Alto&
,a;o - flanco.
1itG 1it3 1it@ 1it6 1itB 1itA 1it1 1it0
2C2L1 ?00A0 OMA OLA OMB OLB OM6 OL6 OM@ OL@
2a,la 10.3 Condici)n de la Salida de Co'paraci)n OC4
O'4 OL4 Estado del pin Oc4 5cuando ocurre la co'paraci)n e4itosa7
0 0 >esconectado
0 1 In#ierte estado
1 0 En ,a;o
1 1 En alto
La funci)n de captura de entrada IC6 es acti#ada sola'ente sí el ,itA5I6/O@7 en el
re$istro PAC2L est! acti#ado.
Pontificia *ni#ersidad Cat)lica del Per< 1H =osé A. >!#alos
Pinto
Alrededor de los Microcontroladores Capítulo 10. Periféricos
Control $el Tempori%a$or & (Timer Control Register &) TCTL &
Este re$istro per'ite pro$ra'ar las funciones Entrada de captura IC4 para detectar
flanco de ,a;ada o de su,ida en las patas de entrada del te'pori(ador. 2a',ién puede
desacti#ar la funci)n de Entrada de Captura.
1itG 1it3 1it@ 1it6 1itB 1itA 1it1 1it0
2C2LA ?00A1 Ed$61 Ed$6A Ed$1, Ed$1a Ed$A, Ed$Aa Ed$B, Ed$Ba
2a,la 10.G Condici)n de la Entrada de Captura IC4
E>C41 E>C4A Condici)n para el pin IC4 5Flanco a detectarse7
0 0 >es:a,ilitada
0 1 Flanco de su,ida
1 0 Flanco de ,a;ada
1 1 Cualuier flanco
'nmascaramiento $e Interrupciones ! (Timer Interrupt "as# !) T"S(!
Se usa para :a,ilitar - desacti#ar las interrupciones de salida de co'paraci)n o de la
entrada de captura del te'pori(ador. El re$istro es de + ,its.
Si un ,it dado es seteado& el ti'er es :a,ilitado para interru'pir por la respecti#a
operaci)n del re$istro de Salida de Co'paraci)n o de Entrada de Captura. Si el ,it
OC4I es acti#ado cuando la ,andera OC4F est! acti#a& se produce una petici)n de
interrupci)n por :ardIare.
1itG 1it3 1it@ 1it6 1itB 1itA 1it1 1it0
2MSR1 ?00AA OC1I OCAI OCBI OC6I I6/O@ IC1I ICAI ICBI
Los ,its OC1I%OC@I5I6/O@7 e IC1I%IC6I5I6/O@7 son las ,anderas de interrupci)n.
-anderas de .nterru'ción del %e&'ori(ador 1 (%i&er .nterru't *lag 1" TL)!
Este re$istro consta de + ,its e indican cuando un e#ento :a ocurrido en el siste'a del
te'pori(ador. *na co'paraci)n e4itosa setea un ,it cuando ocurre una acci)n entre el
contador 2DC2 - el re$istro de Salida de Co'paraci)n 2OC4.
Pontificia *ni#ersidad Cat)lica del Per< A0 =osé A. >!#alos
Pinto
Alrededor de los Microcontroladores Capítulo 10. Periféricos
La captura de un ,it seteado se reali(a ta',ién cuando se detecta un ni#el acti#o
5flanco7 durante la operaci)n de captura de la entrada.
Operando en con;unto con los ,its del re$istro 2MSR1& los ,its del re$istro 2FLC1
per'iten al siste'a del te'pori(ador operar en 'odo de interrupci)n. Cada ,it del
re$istro 2FLC1 corresponde a un ,it del re$istro 2MSR1 en la 'is'a posici)n. Los
,its OC1F%OC@F son las ,anderas de OC4 - los ,its IC1F%IC6F son las ,anderas de
IC4.
1itG 1it3 1it@ 1it6 1itB 1itA 1it1 1it0
2FLC1 ?00AB OC1F OCAF OCBF OC6F I6/O@F IC1F ICAF ICBF
Do ol#idar ue las ,anderas OC4F ue se acti#aron al producirse la co'paraci)n
e4itosa de,en ser desacti#adas 5 puestas a cero7 en la rutina de interrupci)n. Esto se
:ace escri,iendo un U 1U en los ,its correspondientes a las ,anderas.
M,scara de .nterru'ción del %e&'ori(ador $ (Timer interrupt mas# &) T"S(&
Este re$istro se usa para per'itir o en'ascarar las interrupciones por des,orda'iento
del te'pori(ador e interrupciones de tie'po real.
1itG 1it3 1it@ 1it6 1itB 1itA 1it1 1it0
2MSRA ?00A6 2OI R2II PAO9I PAII % % PR1 PR0
La m*scara de la interrupción de des!ordamiento del tempori,ador es el ,itG52OI7.
Cuando el ,itG est! en ni#el ,a;o& la interrupci)n 2OF no es per'itida& - cuando el ,itG
est! en ni#el alto& se $enerar! una petici)n de interrupci)n cuando 2OF sea acti#o.
La m*scara de interrupción de tiempo real es el ,it35R2II7. Cuando el ,it3 est! en ,a;o&
la ,andera R2IF es en'ascarada 5in:i,ida7. Cuando el ,it3 est! en alto& $enerar!
petici)n de interrupci)n sí se acti#a R2IF.
Pontificia *ni#ersidad Cat)lica del Per< A1 =osé A. >!#alos
Pinto
Alrededor de los Microcontroladores Capítulo 10. Periféricos
La m*scara de interrupción por des!orde del Acumulador de %ulsos es el ,it@5PAO9I7.
Cuando est! en ni#el alto& se producir! una interrupci)n por :ardIare sí el ,it PAO9F
est! en ni#el alto.
La m*scara de la interrupción de entrada al Acumulador de pulsos es el ,it65PAII7.
Cuando el ,it6 est! en ni#el alto& se producir! una interrupci)n por :ardIare sí el ,it
PAIF est! en ni#el alto.
La frecuencia en el incre'ento del conteo del re$istro 2CD2 puede 'odificarse. Para
ca',iar la frecuencia se de,e 'odificar el ,it15PR17 - ,it05PR07 del re$istro 2MSRA
ue son los selectores del Escala'iento de te'pori(ado
Al iniciali(arse el MC* 5PR1 - PR0 son ceros7 se considera ue el relo;%E es la ,ase de
tie'po. Este escala'iento sola'ente puede reali(arse durante los 36 pri'eros ciclos
lue$o de reiniciado el siste'a.
2a,la 10.+ Escala'iento del relo;%E
PR1 PR0 1ase de tie'po5periodo7 en 5us7 / >uraci)n de un des,orde en 5's7
4talL16.G6@M:( 4talL+.000M:( 4talLG.BGAM:( Factor
0 0 0.AG1 / 1G.GG 0.@0 / BA.GG 0.@6A / B@.@@ relo;%E/5AV07
0 1 1.0+@ / G1.11 A.00 /1B1.0G A.1G /16A.AA relo;%E/5AVA7
1 0 A.1G /16A.AA 6.00 /A3A.16 6.B6 /A+6.66 relo;%E/5AVB7
1 1 6.B6 /A+6.66 +.00 /@A6.AH +.3+ /@3+.++ relo;%E/5AV67
-anderas de .nterru'ción del %e&'ori(ador $ (Timer interrupt flag &) TL)&
Los ,its de este re$istro indican cuando ocurri) cierto e#ento del siste'a te'pori(ador.
Los re$istros 2MSRA - 2FLCA per'iten al siste'a del te'pori(ador $enerar
interrupciones.
1itG ,it3 ,it@ ,it6 ,itB ,itA ,it1 ,it0
2FLCA ?00A@ 2OF R2IF PAO9F PAIF % % % %

Pontificia *ni#ersidad Cat)lica del Per< AA =osé A. >!#alos
Pinto
Alrededor de los Microcontroladores Capítulo 10. Periféricos
La !andera de des!ordamiento del te'pori(ador es el ,itG52OF7. Cada #e( ue el
re$istro 2CD2 des,orda el ,it 2OF se pone en ni#el alto. Para ,orrar la ,andera 2OF el
usuario de,e escri,ir 1 en el ,itG52OF7 de 2FLCA.
La !andera de interrupción en tiempo real es el ,it35R2IF7. El ,it3 es acti#ado
auto'!tica'ente cuando ter'ina el periodo del R2I. Para desacti#ar el ,it R2IF&
escri,ir un 1 en el ,it3 del re$istro 2FLCA.
La !andera de interrupción por des!orde del Acumulador de %ulsos es el ,it@5PAO9F7.
Esta ,andera se pone en alto cuando la cuenta en el Acu'ulador de Pulsos des,orda
5 pasa de ?FF a ?00 7. Para ,orrar este ,it se de,e escri,ir un 1 en el ,it@ del re$istro
2FLCA.
La !andera de interrupción por flanco en la entrada del Acumulador de %ulsos es el
,it6 5PAIF7. Este ,it se pone en ni#el alto cuando un flanco acti#o es detectado en la
pata de entrada PAI. Para ,orrar este ,it se de,e escri,ir un 1 en el ,it6 del re$istro
2FLCA.

.nterru'ción 'or Des/orde del %e&'ori(ador %i&er overflo0"
Cada #e( ue el re$istro 2CD2 des,orda 5pasa de ?FFFF a ?00007 se acti#a 5pone a 17
el ,itG52OF7 del re$istro 2FLCA. Se $enera una interrupci)n por des,orde del
te'pori(ador timer overflow si el ,itG 2OI del re$istro 2MSRA est! acti#o. El vector de
interrupción de la interrupci)n por des,orde es ?FF>E%?FF>F.
En la rutina de interrupci)n de,e desacti#arse el ,itG52OF7& no es auto'!tico. En el
9C: );<C11 de 9otorola, eso se logra escri!iendo un 1 en dic#o !it.
.nterru'ción de %ie&'o Real con el %e&'ori(ador (Real time interrupt) RTI
La ,ase de tie'po para la operaci)n de 2ie'po Real es un relo de carrera li!re el cual
no puede ser interru'pido ni detenido. Este relo; entonces su'inistra una
referencia peri)dica de tie'po. Las interrupciones est!n relacionadas con el
des,orde - los ,its R2R1 - R2R0 del re$istro PAC2L.
Pontificia *ni#ersidad Cat)lica del Per< AB =osé A. >!#alos
Pinto
Alrededor de los Microcontroladores Capítulo 10. Periféricos
2a,la 10.H Escala'iento del >es,orde del te'pori(ador
R2R1 R2R0 Frecuencia del des,orde
MtalL16.G6@3M:( MtalL+.000M:( MtalLG.BGA+M:( 2asa
0 0 A.AA 's 6.01 's 6.66 's relo;%E/5AV1B7
0 1 6.66 's +.1H 's +.++ 's relo;%E/5AV167
1 0 +.++ 's 13.B+ 's 1G.GG 's relo;%E/5AV1@7
1 1 1G.GG 's BA.GG 's B@.@@ 's relo;%E/5AV137
Para :a,ilitar la interrupci)n es necesario poner en 1 el ,it35R2II7 del re$istro 2MSRA.
Al producirse el des,orde& el ,it35R2IF7 del re$istro 2FLCA se acti#ar! 5se pondr! en
Alto 17.
La rutina de interrupci)n de,e desacti#ar el ,it35R2IF7& no es auto'!tico. Esto se lo$ra
escri,iendo un 1 en dic:o ,it. Para utili(ar la interrupci)n de tie'po real se de,e
desacti#ar 5poner en 07 el ,it35R2II7 del re$istro 2MSRA 5de estar :a,ilitado7& lue$o
seleccionar la frecuencia de des,orde 5,its R2R1 - R2R07& final'ente acti#ar 5poner en
17 el ,it35R2II7 del re$istro 2MSRA.
El periodo de R2I se inicia desde la finali(aci)n del periodo pre#io - no desde la
desacti#aci)n de la ,andera R2IF. Cada finali(aci)n del periodo acti#a el ,it R2IF en el
re$istro 2FLCA& - si el ,it R2II est! acti#o& una petici)n de interrupci)n es $enerada.
:n programa puede usar una pata del puerto A-tempori,ador" como una salida de
propósito general siempre 5ue sea antes de configurar la pata $Cx como función del
tempori,ador.
E;e'plo 10.B *sando el te'pori(ador calcular el n<'ero de ciclos '!uina entre
flancos de su,ida de una onda cuadrada por la entrada PAA5IC17.
NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
NO M)dulo " Ciclos.as'
NO >escripci)n" *so de la Entrada de captura IC1 para deter'inar el n<'ero de ciclos
NO '!uina entre flancos de su,ida.
NO Siste'a " Ensa',lador as'I>E - 2ar;eta controladora CC111.
NO
Pontificia *ni#ersidad Cat)lica del Per< A6 =osé A. >!#alos
Pinto
Alrededor de los Microcontroladores Capítulo 10. Periféricos
NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
NOOOOO >eclaraci)n de Constantes - #aria,les OOOOOOOOOOOOOOOOOOOOO
ORC ?0600
REC1AS EE* ?0000 N
2C2LA EE* ?A1 N
2FLC1 EE* ?AB N
2IC1 EE* ?10 N
Cuenta1 RM1 A N
Cuenta RM1 A N resultado
NOOOOOO Pro$ra'a principal OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
ORC ?0@00 N
Inicio L>M PREC1AS N
L>AAP?10 N confi$ura para capturar flancos de su,ida
S2AA 2C2LA& M N
L>AAP?06 N ,orra la ,andera IC1F
S2AA 2FLC1&M N
N Listo para detectar el pri'er flanco de su,ida
Wait1 1RCLR 2FLC1&M ?06 Wait1N
N Pri'er flanco detectado
L>> 2IC1&M N Lee - $uarda la cuenta1
S2> Cuenta1 N
L>AAP?06 N 1orra ,andera IC1F
S2AA 2FLC1&M N
N Listo para capturar el se$undo flanco de su,ida
WaitA 1RCLR 2FLC1&M ?06 WaitAN
NSe$undo flanco detectado
L>> 2IC1&M N Lee la cuentaA
S*1> Cuenta1 N cuenta flancoA X cuenta flanco1
S2> Cuenta N Cuarda resultado
ED> N
E;e'plo 10.6 *sando la salida de co'paraci)n OC1 $enerar un pulso de 10 'se$ en
estado alto cada B0 'se$ . Los pulsos de,en ser escritos por la pata PC0 del puerto C.
NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
NM)dulo " Pulso.as'
NSiste'a " Ensa',lador as'I>E - tar;eta controladora CC111.
N>escripci)n " Cenera pulso de 10 se$s en alto cada B0 se$s usa OC1 - el puerto C
NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
NOOOOOOO >efinici)n de Constantes - #aria,les OOOOOOOOOOOOOOOOOOOOO
ORC ?0600 N
REC1AS EE* ?0000 N
2CD2 EE* ?0E N
2FLC1 EE* ?AB N
2OC1 EE* ?13 N
PortC EE* ?06 N
>>RC EE* ?0B N
NOOOOOOO Pro$ra'a principal OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
Pontificia *ni#ersidad Cat)lica del Per< A@ =osé A. >!#alos
Pinto
Alrededor de los Microcontroladores Capítulo 10. Periféricos
ORC ?0@00 N
Inicio L>M PREC1AS N
L>AAP?+0 N ,orra la ,andera OC1F
S2AA 2FLC1& M N
CLR PortC& M N ,orra el PortC
Repite L>AAP?01 N confi$uraci)n PC0Lsalida
S2AA >>RC N
S2AA PortC& M N PC0L1
L>> 2CD2&M N
A>>>PA0000 N tie'po en alto
S2> 2OC1&M N
Espera 1RCLR 2FLC1&M& ?+0& Espera N
L>AA P?+0 N ,orra la ,andera OC1F
S2AA 2FLC1&M N
CLR PortC& M N PC0L 0
L>F P@G10 N retardo para tie'po en ,a;o
La(o >EF N
1DE La(o N
1RA Repite N se repite
ED>
E;e'plo 10.@ *sando el Acu'ulador de Pulsos $enerar una se8al por la pata PC0 del
puerto C ue ca',ie de estado cada #e( ue ocurre @ flancos de ,a;ada.
NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
NM)dulo " CuentaFlanco.as'
NSiste'a " 2ar;eta controladora CC111 - Ensa',lador As'I>E
N>escripci)n " Ca',ia el estado del ,it0 del puerto C cada #e( ue cuenta @ flancos
N de ,a;ada en la entrada del acu'ulador de Pulsos.
NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
NOOOOOOO >efinici)n de Constantes - #aria,les OOOOOOOOOOOOOOOOOOOOO
PACD2 EE* ?AG
PAC2L EE* ?A3
2MSRA EE* ?A6
2FLCA EE* ?A@
PortC EE* ?000A
>>RC EE* ?000B
ORC ?0@00
L>AA?01 N confi$uraci)n de la pata PC0 Lsalida
S2AA >>RC N
L>M P?0000 N
CLR PACD2&M N ,orra el Acu'ulador de Pulsos
L>AAP?60 N acti#ar el Acu'ulador 5PAED7&
'odoLAcu'ulador& flancoL,a;ada
S2AA PAC2L&M N
Pontificia *ni#ersidad Cat)lica del Per< A3 =osé A. >!#alos
Pinto
Alrededor de los Microcontroladores Capítulo 10. Periféricos
L>AAP?10 N per'ite la interrupci)n del Acu'ulador5PAII7
S2AA 2MSRA&M N
CLI N per'ite la interrupciones
Espera 1RA Espera N
NOOOOOO Rutina de ser#icio a la interrupci)n OOOOOOOOOOOOOOOOOOOOOOO
E#entos 1SE2 2FLCA&M&?10 N ,orra la ,andera 5PAIF7
L>AAPCD2&M N
CMPAP?0@ N
1EE Actuar N
R2I N
Actuar L>AAPortC N ca',ia el estado de la pata PC0
EORA P?60 N
S2AA PortC N
CLR PACD2&M N ,orra el acu'ulador de pulsos
R2I
ORC ?G>03 N instalaci)n de la rsi.
=MP E#entos N
ED>
Pontificia *ni#ersidad Cat)lica del Per< AG =osé A. >!#alos
Pinto