Timer

11

Transcript of Timer

Page 1: Timer

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

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

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

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

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

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

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

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

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

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

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.