Timer
-
Upload
jose-lopez-lopez -
Category
Documents
-
view
78 -
download
0
Transcript of Timer
![Page 1: Timer](https://reader030.fdocuments.us/reader030/viewer/2022020803/5571fd5e497959916998eec1/html5/thumbnails/1.jpg)
5/11/2018 Timer - slidepdf.com
http://slidepdf.com/reader/full/timer-55a0c914377ba 1/11
·\jRA-MA
o
' Ie.
~iiar,cnsamblar,
Comprobar su
i uede introducir
mtaun contador
JS del PIC y es
ntaun contador,
)s del PIC, y se
.rcjcmplo 13), a
uito, aparecc un
o a grabar.
)" habituales en
actual. Este se
\4. La memoria
rma que ante un
f
CAPITULO 15
TIMER 0
Muchos sistemas necesitan un estricto control de los tiempos que duran sus
distintasacetones. En todos los programas disefiados hasta ahara
estose ha realizadomediante subrutinas de retardo. Otro proccdimiento mas eficaz y preciso consistc en la
uti lizacion de un timer.
15.1 EL TIMER 0 (TMRO)
Un timer se implementa por media de un contador que deterrnina un tiempo
preciso entre cl momento en que el valor es cargado y el instante en el que se produce su
desbordamiento. Un timer tipico se describe de forma simplificada en la figura 15-1.
Consiste en un contador ascendente (tambien podria ser desccndente) que, una vez
inicializado con un valor, su contenido se incrementa con cada impulso de entrada hasta
l1egara su valor maximo b' 11.... 1 1 ' , desbordando y volviendo a comenzar desde cero.
Carga inicial del con1ador
~
Impulsos SU " I Ie entrada -----1- ....Contador Ascenden1e "'---I"~in de contaje.
• (TOIF)
Figura 15-1 Esquema simplificado de un timer
[I PICI6FR4 dispone de un timer principal denorninado Timer 0 a TMRO que es un
contador asccndcntc de 8 bits. EI TMRO se inicializa con un valor, que se incrementa can
cada impulso de entrada hasta Sll valor maximo h' 1 1 1 I 1 1 1 1 ' : con cl siguiente impulso de
![Page 2: Timer](https://reader030.fdocuments.us/reader030/viewer/2022020803/5571fd5e497959916998eec1/html5/thumbnails/2.jpg)
5/11/2018 Timer - slidepdf.com
http://slidepdf.com/reader/full/timer-55a0c914377ba 2/11
!T1 :
224 WCROCONTROLADOR ?ICI6F84. DESARROLLO DE PROYECTOS { ) RA .- ¥A .i,
entrada el contador se desborda pasando a valer b'OOOOOOOO', circunstancia que se
advierte mediante 1a activacion del flag de fin de contaje TOIl<' localizado en el rcgistro
INTCON.
Los impulses aplicados al TMRO, pueden provcnir de los pulsos aplicados al pin
TOCKI 0 de 1a sefial de rcloj intema (Fosc/4), 1 0 que le pennite actuar de dos fo rmas
difcrentes (figura 15-2):
• Como contador de los impulses que Ie llegan por el pin RA4/TOCKL• Como temporizador de tiempos.
!.
EI actuar de una u otra forma dependc del bit TOeS del registro OPTION:
• Si TOCS = I, el TMRO actua como contador,
• Si TOCS =0, el TMRO actua como ternporizador.
15.2 TMRO COMO CONTADOR
Cuando cl TMRO trabaja como contador se le introducen los impulsos desde cl
exterior por cl pin RA4/TOCKI (TMRO Externa! Clock Input), Su mision cs "contar" el
nurnero de acontccimientos externos representados por los impulsos que se aplican al pin
TOCK!. La figura 15-3 muestra un ejemplo.
EI tipo de flanco activo se eligc mediante el bit TOSE del registro OPTION:
• Si rOSE = I, cl flanco activo es desccndente.
• Si rOSE =0, cl flaneo activo es ascendente.
15.3 TMRO COMO TEMPORIZADOR
Cuando el TMRO trabaja como temporizador cuenta los impulsos de Fosc!4. Sc usa
para detenninar intervalos de tiempo concretos. Estos impulsos ticnen una duracionconocida de un cicio maquina que es cuatro voces el periodo de la seiial de rc1oj. Para una
frecucncia de reloj igual a 4 MHz el TMRO se incrementa cada 1 I lS , tal como se calculo
en el capitulo 12.
Como se trata de un contador ascendente el TMRO debe ser cargado con el valor de
los impulsos que se dcsean contar restados dc 256 que cs eI valor de desbordamiento, Por
ejemplo, para contar cuatro impulsos, se carga al TMRO con 256-4 =252:
• Numero de pulsos a con tar: 4 iO =b' 00000 I 00' .
• Nume ro a cargar: 25610 - 4 l1 )= 25210 =b ' 11111100 '.
• Incremento a cada ciclo de instruccion: b' 11111 100', b' 111 1 110 1 " h' 1 1111110',
b' 11111111 " aqui se desborda pasando a b '0000000' y activando el flag TOIF.
p
D
alcanzand
4 JlS si lo
15.4
de la RAal bus de
La
cualquicr
sobre TM
se retrasa
Pin
RA4/TOCKI
15.5
A
impulsos
programab
utilizada
En
• E
• E
e
n
e
El
Watchdog
frecuencia
![Page 3: Timer](https://reader030.fdocuments.us/reader030/viewer/2022020803/5571fd5e497959916998eec1/html5/thumbnails/3.jpg)
5/11/2018 Timer - slidepdf.com
http://slidepdf.com/reader/full/timer-55a0c914377ba 3/11
"0RA-MA
unstancia que se
ado en el registro
s aplicados a1 pin
ia r de dos formas
CKI .
PTION:
impulses desdc cl
io n cs "contar" el
e se aplican al pin
OPTION:
. de Fosc/4. Se usa
len una duracionde reloj. Para una
L ! como se calculo
do con el valor de
sbordamiento. Por
2 :
Ol'.b'11ltttlO',
10 el flag TOIF.
TCAPiTULO 15: TIMER 0 225
De esta manera, con la llegada de cuatro impulsos, el timer se ha desbordado
alcanzando el valor b'OOOOOOOO'que determina el tiempo de temporizacion, en este caso
4 us si los impulsos se hubieran aplicado cada microsegundo.
15.4 EL TMRO ES UN REGISTRO DEL SFR
El TMRO cs un registro de propos ito especial ubicado en la posicion 1 del area SFR
de 1a RAM de datos (figura 4-1). Puede ser lei do y escrito al cstar eonectado directarnente
al bus de datos.
La figura 15-2 ofrece cl esquema de funcionamiento del TMRO. Se puede leer en
cualquicr momento para eonocer el estado de la cuenta, Cuando se escribe un nuevo valor
sobre TMRO para eomenzar una nueva temporizacion, e l siguiente incremento del mismo
se retrasa durante los dos ciclos de reloj postcriores,
Bus de Datos
FOSCI4
Pi n 1 2 }
RMITOCKI 51 nero n Ismo co 11
reloj Inlerno
(Retraso de 2 del as)Flag TOIF
(Oesbordarruento)
TOSE T o e s PS2. PS 1. PSO PSA
Figura 15-2 Esquema defuncionamiento del timer principal TMRO
15.5 DIVISOR DE FRECUENCIA (PRESCALER)
A veccs es necesario controlar tiempos largos y aumentar la duracion de los
impulsos que incrementan el TMRO. Para cubrir esta neccsidad se dispone de un circuito
programable llamado Divisor de Frecuencia0
Prescaler que divide Ia frccuenciautilizada por divcrsos rangos para poder conseguir temporizaciones mas largas (fig. 15-2).
En realidad el PICI6F84 dispone de dos temporizadores:
• El TMRO, que actua como temporizador principal.
• EI Watchdog (perro guardian), que vigila que el programa no se "cuelgue", Para
ello, cada cierto tiempo comprueba que el programa esta ejecutandose
nonnalmente y, si no es asi, reinicializa todo e1 s istema. E1 Watchdog se analizara
en el proximo capitulo.
El Prescaler puede apliearse a uno de los dos temporizadores, al TMRO 0 al
Watchdog. Cuando se asigna al TMRO los impulses pasan primero por cl divisor de
fre cu en cia y una vez aumentada su duracion se aplican a TMRO (f igura 15-2).
![Page 4: Timer](https://reader030.fdocuments.us/reader030/viewer/2022020803/5571fd5e497959916998eec1/html5/thumbnails/4.jpg)
5/11/2018 Timer - slidepdf.com
http://slidepdf.com/reader/full/timer-55a0c914377ba 4/11
l'-I
i ~226 MICROCONTROLADOR PIC 16FR4_DESARROLLO DE PROYECfOS ©RA·MA
15.6 BITS DE CONFIGURACION DEL TMRO
Para controlar el comportamiento del TMRO sc utilizan algunos bits de los
registros OPTION e INTCON.
15.6.1 Del registro INTCON
El registro TNrCON es un rcgistro localizado en la direccion OBh del Banco 0 y
duplicado en la 8Bh del Banco 1. Conticne los 8 bits que se muestran en la tabla 15-1, de
los cuales sc utilizara par ahora unicamente el TOIF (figura 15-2):
GTE EEIE TOlE INTE RBIE rOlf INTF RBIF
Bit? Bit 6 BitS Bit4 Bit3 Bit2 Bit 1 Bit 0
Tabla J 5-/ Bit del registro INTCON utilizado por eI Timer 0
• TOIF (TMRO Overflow interrupt Flag bit). Flag de intcrrupcion del TMRO.
Indica que se ha producido un desbordamiento del rimer 0, que ha pasado de
b' 11111 tIl' a b'OOOOOOOO'.o TOIF = O . El TM RO no se ha desbordado,
o TOIF = I: El TMR 0 sc ha desbordado. (Debe borrarse par software).
15.6.2 Del registro OPTION
La mision principal del registro OPTION es gobemar el comportamiento del
TMRO. Algunos microcontroladores PIC tienen una instruccion denominada tambien
option, por ello, el fabricante Microchip recomienda darle otro nombre a estc registro. Asi
en el fichero de definicion de etiquetas PI6F84A.INC se Ienombra como OPTION_REG.
Los bits utilizados par los timers son (tabla 15-2):
IRBPU INTEDG roes rOSE PSA PS2 PSI PSO
Bit? Bit6 Bit 5 Bit 4 Bit 3 B it 2 Bit 1 Bit 0
Tabla 15-2 Bits del registro OPTiON utilizados par el Timer ()
• PS2:PSO. (Prescaler Rate Select bits), Bits para seleccionar los valorcs del
Prescaler 0rango con el que actua el divisor de frecuencia, segun la tabla 15-3,
• PSA (Prescaler Assignment bit). Asignacion del divisor de frecuencia
o PSA 7"7 O.El divisor de frecucncia se asigna al TMRO,
o PSA = 1. El divisor de frccuencia sc asigna al Watchdog.
p
{"RA-MA
•
• TOo
a
15.7
Un e
referido al e
de impulso
proporcionan
,
; E ste pro gram
; aplicado s a la
; e l p uls ad ar s e
; C om o e s u n i
; d i vi so r de f re c
,
; ZONA DE D
_CO
LIST
IN CL
CBL
![Page 5: Timer](https://reader030.fdocuments.us/reader030/viewer/2022020803/5571fd5e497959916998eec1/html5/thumbnails/5.jpg)
5/11/2018 Timer - slidepdf.com
http://slidepdf.com/reader/full/timer-55a0c914377ba 5/11
©RA-MA ~ _ 0 _ M _ - ~ _ l A C A _ P _ j _ T U _ L _ O _ 1 _ 5 _ : - _ r J _ M _ E _ R _ O _ _ 2 2 _ 7
I
n o s bits de los
1del Banco 0 y
la tabla 15-1, de
IF RBIF
I BitO
- 0
. ion del TMRO.
ie ha pas ado de
software).
iportamiento del
minada tambien
este rcgistro. ASI
,OPTION_REG.
' S l PSO
it 1 Bit 0
;r 0
los valores del
\ la tabla 15-3.
e n c r a
PS2 PSI PSO Divisor del TMRO Divisor del WDT
000 1:2 1:1
001 1:4 1:2
010 1:8 1:4
o 1 I 1 : 1 6 1 :8
1 00 1:32 1 :1 6
101 1:64 1:32I 1 0 I : 12 8 l:64
1 1 1 1:256 1:128
Tabla 15-3 Seleccion del rango del divisor defrecuencia
• TOSE (TMRO Source Edge Select bit). Selecciona flanco de I a se rial de entrada
del TMRO.
o TOSE = o . TMRO se incrementa en cada flanco aseendente de la sefial
aplicada al pin RA4!TOCKJ.
o TOSE = 1. TMRO se incrementa en cada flanco descendente de la scfial
aplicada al pin RA4/TOCKL
• TOeS (TMRO Clock Source Select bit). Seleceiona la fuente de sefial del TMRO.
o TOCS =O. Pulsos de reloj intemo Fosc/4 (TMRO como temporizador).
o TOCS =1. Pulsos introducidos a traves del pin RA4/TOCKI (TMRO como
contador).
15.7 EJEMPLO DEL TMRO COMO CONTADOR
Un ejemplo de programaci6n del TMRO como eontador se describe a continuacion,
r e fe r ido al esquema de Ia f igu ra 15 -3 . Se trata de visualizar en el display LCD el numero
de impulsos que sc apliean al pin TOCKT (Timer () Clock Input). Estos pulsos se
proporeionan por media de la pulsacion de S 1.
; E ste p ro gra ma co m pru eb a e l fu ncio nam ie nto d el T im e r 0 c om o c on ta do r d e lo s im pu lso s
; a pl ic ad o s a la l inea RA4fTOCKJ, d ond e se h a co ne ctad o u n pulsador, Cada v ez q ue p re sio n a
; e l p u lsa da r s e in crem e nta u n c on ta do r visuatizado e n e l d isp la y L CD .
; C o mo e s u n in cre me nto p or c ad a im pu lso a plica do a l p in TOCKJ n o e s n e ce sa ri o a si gn ar le
; d iv is or d e fre e ue nc ia a l TMRO , p or ta nto , e l P re sc ale r se a sig na a l W a tc hd o g.
,; ZO NA DE D ATO S "'''' ' ' '' ' '. . ' ' ' ' ' '••••• " ' * " ' * " ' ' ' ' . ' ' ' . . ' '' * * . .** " ' * " ' * * • • • " ' * * .
_CONFIG _CP_OFF & _WDT_OFF &_PWRTE_ON &_XT_OSC
LIST P=16F84A
INCLUDE <P16F84A.INC>
CBLOCKO" ,OC
![Page 6: Timer](https://reader030.fdocuments.us/reader030/viewer/2022020803/5571fd5e497959916998eec1/html5/thumbnails/6.jpg)
5/11/2018 Timer - slidepdf.com
http://slidepdf.com/reader/full/timer-55a0c914377ba 6/11
228 MICRQCONTROLADOR PIC 16F~4. DESARROLLO DE PROYEClOS ~RA-MA
ENOC
ORO 0
; Z O NA D E C 6D IG OS * * * * * * * " '* " " 1 .* * * * . * * * * * * * * " ' ' ' ' ' ' ' * ** * * * * * . U **** * * ** • • ** ** .
Inicio
call
bs f
movlw
movwfbcf
ch f
LCD Inicial iza
STATUS,RPO
b 'OO I 1 1 0 00 '
O PTIO N REGSTATUS,RPO
TMRO
; A cce so al Banco 1.
; TMRO com o c on ta do r p or fla nc o d esce nd en te d e
; R A4/TO CK l. P re scale r asignad o al Watchdog .; A cce so al Banco O.
; I nic ia liz a e l c on ta do r.
Principal
; La scccion "Principal" e s de manten i rn ien to . S610 se dedica a visua lize r e l T im er O .
call
mov f
call
call
goto
LCD_Lineal
TMRO,W
BIN_a_BCD
LCD_.Byte
Principal
; S e po ne a l p rin cip io d e la lin ea J.
; Le e el T im er O .
; S e d eb e v isu aliz ar e n B CD .
; V is ua li za a pa ga nd o la s decenas e n caso d e qu e sean O .
IN CL UD E <R ET A RD OS . IN C>
INCLUDE <BIN _BCD .I NC>IN CL UD E <L CD 4BIT ,IN C>
END
5V
RAO
RAt
'----------:!--I RA2RA3
+----........A4 ITOCK I
5V
J S1
1 RA4 I TOCK I
1
.------_0 5V
IC 2
P IC16FS4A
I~ 8>
Rt
10k
p
[)
'"o
RBOIINT
RB1
R82R83R84 f--!J'_~t./
RB5 t--L...._~1../
R86I--!-'i-~c/
S 1 J , 8 7
'" '">
15.8 E
Cl22p .I
C 2
.I 22p
Don
•
Figura 15-3 Contador de los impulses introducidos por el pin TOCKl
•
••
us si se u til
Solu
de do
Asi p
TMRO _Carga
o tam
TMRO _Carga5
A l tra
TMRO _C a rg aS
En e s
e jem plo pud
; P or la line a 3
; semiperiodo d
; u tiliza ci6 n d el
![Page 7: Timer](https://reader030.fdocuments.us/reader030/viewer/2022020803/5571fd5e497959916998eec1/html5/thumbnails/7.jpg)
5/11/2018 Timer - slidepdf.com
http://slidepdf.com/reader/full/timer-55a0c914377ba 7/11
~·RA·MA
lentede
adog.
: I e q ue s ea n O.
5V
Rl
10k
:1MQ16L
(.K}
CAPjTU.o 15: TIMER 0 229
15.8 EJEMPLO DEL TMRO COMO TEMPORIZADOR
El principal problema euando se configura el TMRO como temporizador es el
calculo de los tiempos de temporizacion, Se puedc utilizar la siguiente formula:
Temporizacion = TeM · Prescaier (256-Carga TMRO)
Donde:
• Temporizacion, es el tiempo deseado.
To.1, es el periodo de un cicIo maquina e igual a TeM =4 Tosc- Para 4 MHz ya se
ha calculado en anteriores ocasiones TeM = 4 . 1If=4 . ~ = 1us .
Prescaler, es c1 rango de divisor de frecuencia c1cgido.
(256-Carga TlVfRO), es el numero total de impulsos a contar por el TMRO antes
de desbordarse en la euenta ascendente. "Carga TMRO" es el valor cargado
inicialmente en el TMRO tal como se ha explicado en 1aseccion 15.3
•
••
EJEMPLO. lQue valor hay que cargar en el TMRO para lograr un tiempo de 500
Ilssi se utiliza un Prescaler de 27
Soluci6n: Sustituyendo en la ecuaci6n anterior queda:
Temporizacion = Tcu Prescaler (256 - Carg a TMRO )
500 = 1 x 2 (256 - Carga TMRO )
de donde se deduce que el valor a cargar tiene que ser:
Carga TMRO = 6
Asi pues el valor de carga se podria poner en el programa:
TM RO _CargaS OO us E QU d'6' ; N um e ro a c arg ar para contar 250 pulsos antes de desbordarse.
o tambien se puede poner:TM RO_CargaSOOus EQU d'256'-d'250' ; Igua l a d'6' =b 'OOOOOllO '
Al trabajar can 8 bits es mejor ponerlo de esta forma m a s rapida:
TMRO _CargaSOOus EQU -<1'250' ; d '250' '" ' b' 11111010' y --<1'250' = b 'OOOOOllO '
En esta ecuacion sc desprecian los pequefios tiempos de carga, saitos, etc. Un
ejemplo pudiera ser el siguiente programa para el esquema de la figura 15-4.
,; P O t la lin ea 3 d e l p ue rto B se g en era u na onda cuadrada de 1 kHz, por tanto, cada
; s emiperi odo dura 5 00 u s, Los tie m po s d e tem po riz ac i6 n s e c on sig ue n m e dia nte 1 a
; util izaci6n del Timer 0 de l PIC.
![Page 8: Timer](https://reader030.fdocuments.us/reader030/viewer/2022020803/5571fd5e497959916998eec1/html5/thumbnails/8.jpg)
5/11/2018 Timer - slidepdf.com
http://slidepdf.com/reader/full/timer-55a0c914377ba 8/11
230 MICROCONTROlADOR PIC 16F84. DESARROLLO DE PROYECTOS
; A la line a de salid a se pu ed e co nectar un altavo z, tal como se ind ica en e l e squema
'; co rre sp on die nte , co n 10 que se e scuchara un pitido .
; E I calcu lo de la carga de l TMRO se hara de fo rm a simple despre ciando e l tiem po que
; tard an e n ejecutarse la s instrucciones .
r ,
_CONFIO _CP_OFF& WDT_OFF& PWRTE ON & _XT OSC
LIST P=>I6F84A
INCLUDE <PI6F84A.INC>
CBLOCKOxOC
ENOC
#DEFINE Salida PORTS ,}
ORO 0
Inicio
bsf STATUS ,RPO ; Acce so al Banco 1.
be f S alida ; E sta line a se conf igura co m o s alid a.
movlw b'OOOOOOOO'
rnovwf OPTION_REG ; Prescaler de 2 asignado al TMRO
bef STATUS ,RPO ; Acce so al Banco O .
Principal
bsf S alida ; La salida pasa a nivel alto
call T i rn e rO _ 50 0u s ; d u ra nt e este t i empo.
be f S alida ; L a salida pasa a nive l bajo
call Timerf 500us ; durante este tiempo,
goto Principal
; S ub r u ti n a "T ime rO _ 500us" - -- -- -- -- -- -- -- -- -- -- -- -~ - -- -- -- -- -- -- -- -- -- -
; C omo e l P IC trabaja a una f recuencia d e 4 M Hz, e l T MR O evo lu cio na carla m icro se gu nd o.
; Para co nsegu ir un re tardo de 500 us co n un pre scale r d e 2 e l TMRO debe co ntar 250
; impul so s . Efec t ivamente : I us x 25 0 x 2 '" 50 0 us,
; C ompro bando co n la ventana S to pwatch" de l sim ulado r se o btiene a uno s tiem po s para la onda
; cuadrada de 511 ps pa ra e1 n iv el a lto y S 13 us para e1 bajo.
TMRO_Carga50Ous EQU d'2S6'-d'250'
T im erO _SODus
rnovlw TM RO _CargaSoOns
movw f TMRO
bcf INTCON ,TOIF
T im erO _ R e b o sam ie n to
btfss INTCON ,TOIF
go to T im crO _ Rebosam iento
return
; C arga e l Tim er O .
; Resetea e l f lag de desbordamiento d el lM R O.
; ;_ Se h a p ro d uc id o d cs bo rd am ie nto ?
; To davia no . R epite ,
ps
IC,RA-MA
; Comproban
; c u a dr a da d
EN
El p
para la ma
precisas ha
valor de
instruccion
simulador
siguiente p
. * * * " ' ' ' ' * ' ' ' . + +
; P or J a l in e a
; semiperiodo
; u tiliz ac io n d
; A e sta linea
; c o r re spond ie n
; E I cale u lo d
; las instru ccio; d el TMRO h
![Page 9: Timer](https://reader030.fdocuments.us/reader030/viewer/2022020803/5571fd5e497959916998eec1/html5/thumbnails/9.jpg)
5/11/2018 Timer - slidepdf.com
http://slidepdf.com/reader/full/timer-55a0c914377ba 9/11
ctRA-MA
• •• •• • * .* ** • •• * *
'. n .* * * • • •• • •• • •
1 0 ,
aonda
i e l TMRO.
- 1 : , RA.-\tA C AP iT UL O 15: T1MERO 23 1
; C om probando con la ve ntana S to pw atch d e l sim ulado r sc o btie ne n uno s tiem po s para la onda
; c uad rad a d e 51 1 u s para e ! nive l alto y 51 3 ). IS para e l bajo,
END
5V
C0
IC1
- - - t <IC16F84A B
B0135
I gQQ
E>
RAO RBO/INT EGBRA1 RB1RA2 RB2 B0135RA3 RB3 B0137RMfTOGKI RB4 5V 80139
RB5RB6
[) N RB7
R11(f)
(/) (/) (f) 10k0 0 > LS1
80hmios
G122p .I. I
G222p
Figura 15-4 Generador de ondas cuadradas utilizando el Timer 0
E1 procedimiento cxplicado para hallar el tiernpo de ternporizacion es suficiente
para la mayoria de las aplicaciones, Sin embargo en caso de requerir temporizaciones
precisas hay que tener en cuenta el tiempo de ejecucion de las instrucciones, saltos, etc. EI
valor de carga del TMRO sera algo menor y habra que hacer un ajuste fino con
instrucciones nop. La forma mas scncilla de calcularlo cs cxperimentando con el
simulador del MPLAB y el reloj de la ventana Debugger> Stopwatch (figura 12-3). El
siguiente programa es un ejemplo de ello.
;* ** ** . * * * * * * • •• •• * ** ** ** ** * •• ••• •• * * ** T ime rO _ 03 .a sm ***** * * .
; Po r la line a 3 d e l pue rto B se gene ra una onda cuad rad a de 1 kl 'Iz, p or ta nto , c ar la
; s em ipe rio do dura 500 us. Lo s tie mpo s d e tem po rizaci6n se co nsigue n m ed ian te la
; u tilizac io n de l T im er 0 de l P IC .
; A esta linea d e salida se pu ede co ne ctar un altavo z, tal com o se ind ica en e l e sque ma
; c o rr esp on die nte , c on 10 qu e se e scuchara un pitido .
; E l c alcu lo d e la carga d e l TM RO se hara d e fo rm a que se tenga en cue nta lo s tiempo s d e
; l a s in stru cc io ne s p ara c on se gu ir tie m po s exactos, Para calcu lar lo s valo re s de carga; d el T MR O hay qu e ayudarse de l s im ulado r de l M PLAB y de la v en ta na d e r e! oj S to pw atc h.
![Page 10: Timer](https://reader030.fdocuments.us/reader030/viewer/2022020803/5571fd5e497959916998eec1/html5/thumbnails/10.jpg)
5/11/2018 Timer - slidepdf.com
http://slidepdf.com/reader/full/timer-55a0c914377ba 10/11
,iI
232 MICROCONTROLAOOR PIC 16H4_ DESARROLLO DE PROYECTOS ~;RA-MA
CONFlG _CP_OFF& _WDT_OFF&_PWRTE_ON&_XT_OSC
UST P=-16F84A
I NCLUDE < P16 F8 4A .I NC >
CBWCKOxOC
ENDC
#D EFIN E S alida" pO RTB,3
ORG 0Inicio
bsf STATUS,RPO ; Acceso at Banco I ,
bcf Salida ; Esta linea se conf igura COI I1O salida.
mov lw b ' O O O O O O O O '
rnovwf OPTION_REG ; Pre scale r de 2 para e l TMRO
bef STATUS,RPO ; A cc e so al Banco O.
Principal
bsf Sal ida ; La salida pasa a nivel alto
call T imerO_500us ; d ur an te e ste tie m po .n o p ; D os ciclo s m ed ian te "no p" para compensa r
nop ; la instruceien " go to P ri nc ip al" d el a iv el b ajo .
bef Sal ida ; La salida pasa a n iv el b ajo
call Timerf) _500us ; durante este tiempo.
goto Principal
,; Subrut ina "TimetO _500us" ------------------------------
; C o n e l sim ulad or se co mpru eba que se o btie ne n u no s tie mpo s para la o n da c ua dr ad a
; de 1kHz exaetos, 50 0 I1 S tanto pa ra e l n ive l alto co mo para e l b ajo .
TMRO_Carga500us EQU
TimerO_500usnop
no p
m ovlw T MR O_ Carga500us
movw f TMRO
bef INTCON,TOIF
Timer t )_Rebosamiento
btfss INTCON,TOIF
goto Timeru_Rebosamiento
re turn
-d'242' ; Este v alo r s e h a o b te n id o e x pe rim en ta lm e n te
; con ayuda de l simulador d el M PLAB.
; A lg uno s "n op" p ara a ju star a 5 00 ).IS exactos,
; C a rg a e l T im er O .
; R e se te a e l fla g de d es bo rd am ie nto d el T hiRD .
; i,Se h a p ro d u ci do d e sb o rd ami en to ?
; T o da vfa n o. R e pi te ,
END
p
~1R"-_\1A
15.9
Respe
simular y
correcto fun
todas las me
Timer
kHz, asi pu
realizaran m
conectar un
escuchara u
despreciando
MPLAB los
Time-
had de form
tiernpos exa
simulador de
tiempos reale
TimerO
500 us en alt
TimerO
1 segundo, re
TimerO
frccuencia m
realizar un fr
dcsarrollarlo
![Page 11: Timer](https://reader030.fdocuments.us/reader030/viewer/2022020803/5571fd5e497959916998eec1/html5/thumbnails/11.jpg)
5/11/2018 Timer - slidepdf.com
http://slidepdf.com/reader/full/timer-55a0c914377ba 11/11
l.lRA·MA
p c n s a r
e l bajo,
t a 1 m e n t e3 .
e x a c t o s .
e ITMRO.
CAPiTULO 15: TIMFR (I 233
15.9 pRACTICAS DE LABORATORIO
Respetando el procedimiento descrito en los tcmas anteriorcs, discfiar, ensamblar,
sirnular y grabar e l microcontrolador can los siguientes programas. Comprobar su
corrccto func ionamiento con e1 csquema de la f igura 13-1o . El lector puede introducirtodas las mejoras que considere convenicnte.
TimerO_01.asm: Cada vez que se actue sobrc e I pulsador conectado a la lineaRA4/TOCKlse incrementa un contador que se visualiza en la pantalla del modulo LCD.
T im er O _ 02.asm: Por la linea 3 del Puerto B se genera una onda cuadrada de
kHz, asi pues, cada serniperiodo durant 500 us, Los tiempos de temporizacion se
realizaran mediante la utilizacion del Timer 0 del PIC. A esta linea de salida se puede
conectar un altavoz, tal como sc indica en el esquema correspondiente, COil 1 0 que se
escuchara un pitido, El calculo de la carga del TMRO se hara de forma simple,
despreciando el tiempo que tarda en cjecutarse las instrucciones. Comprobad con el
MPLAB los ticmpos reales obtenidos en alto yen bajo.
TimerO_03.asm: Jgual que el anterior pero eJ calculo de la carga del TMRO se
ham de forma que se tenga en cuenta los tiempos de las instruccioncs para conseguir
tiempos exactos. Para calcular los valores de carga del TMRO hay que ayudarse del
simulador del MPLAB y de la ventana de reloj Stopwatch. Cornprucbe can el MPLAB los
tiempos rcales obtenidos en alto y en bajo.
TimerO_04.asm: Par la linea 3 del Puerto B se genera una onda rectangular de
500 us en alto y 300 us en bajo.
T im er O _ OS.asm: Cuenta el numcro de veces que sc presiona un pulsador durante
Isegundo, rebates incluidos.
TimerO_06.asm: Frecucncimetro elemental pam la scfial aplicada al pin RA4. La
frccuencia maxima a medir sera 255 Hz. Este programa muestra e l fundamento para
realizar un frecuencimetro digital complcto can diferentcs cscalas. Se anima al lector a
desarrollarlo como proyecto.