Você está na página 1de 7

3) LE TIMER

3.1) Dfinition
LeTimer du PIC 16F84 est en fait un. 1 compteur 8 bits comptant jusqu' !!" ce#ui$ci est
cadenc% soit au r&t'me de #''or#o(e interne )issue de #a fr%quence du *uart+ di,is%e par
quatre-" soit par rapport une entr%e de compta(e e.terne.
/n effectuant une #ecture de ce compteur" nous pou,ons ainsi d%terminer #e 0temps qui
s'%cou#e0 et faire des actions des moments pr%cis. Le TI1/2 sera uti#is% #orsque nous
aurons besoin de temporisations pr%cises. 3n autre a,anta(e du TI1/2 est que ce#ui$ci
une fois initia#is%" fonctionne en mode autonome et ne 0ra#entit0 pas #e pro(ramme en
cours.
3.2) Synoptique interne du TIMER
Le Timer est compos% principa#ement d'un pr% di,iseur" d'une entr%e de compta(e
e.terne" d'un compteur ainsi que d'un s&st4me d'ai(ui##a(e pi#ot% par des bits de
confi(uration (Figure1 et Figure1a).
156
3.3) Mise en uvre et principe de fonctionnement
Comme repr%sent% sur #es Fi(ures 1 et 1a" #'entr%e de compta(e peut 7tre issue8
$ 9oit d'une fr%quence app#iqu%e sur #a broc'e 2:4" on par#era a#ors de mode
0C;3<T/20 .
$ 9oit de #a fr%quence du quart+ di,is%e par 4 )#e PIC di,ise #ui$m7me par 4 #a
fr%quence du quart+" dans #e cas d'un quart+ de 4 1=+ nous aurons une p%riode de
1>s-" ce sera a#ors #e mode 0TI1/20.
Le ?it RTS permet de s%#ectionner #a source de compta(e. 9i ce bit est @" a#ors en sortie
de mu#tip#e.eur )13A1-" nous aurons #e si(na# Freq ;9C54" si ce bit est 010" a#ors on
retrou,era #e si(na# pro,enant de #a broc'e 2:4 )Fi(ures1 et-. I# est %(a#ement possib#e
d'in,erser #e si(na# issu de #a broc'e 2:4" c'est #e bit 2T/ qui est c'ar(% d'effectuer cette
op%ration. 9i ce#ui$ci est 0@0" a#ors en sortie du ;3 e.c#usif" nous aurons #e si(na#
pro,enant de #a broc'e 2:4" dans #e cas contraire nous aurons #e si(na# 2:4 in,ers%
)Fi(ure-.
/n fait on d%finit ainsi #e t&pe de front )montant ou descendant- qui d%c#enc'era #e
compta(e.
/nfin" #e bit PSA permet de s%#ectionner ou non #e pr% di,iseur. 9i ce bit est 0@0" a#ors
on retrou,era en sortie du mu#tip#e.eur )13A- #e si(na# pro,enant de #a sortie de 13A1
pr% di,is% par un nombre pro(rammab#e dans #e pr% di,iseur )par #es bits PSO" PS1,
PS2-.9i #e bit PSA est positionn% 010" a#ors #e si(na# en sortie de 13A sera ce#ui issu
de #a sortie de 13A1)on ne pr% di,ise pas dans ce cas-.
Tous ces bits que nous ,enons de ,oir sont dans #e re(istre ;PTI;< du PIC" nous ,errons
bien sBr comme d''abitude un e.emp#e pour i##ustrer #'uti#isation du TI1/2. Cans #e cas
d'uti#isation du pr% di,iseur" #es trois bits nomm%s P9;" P91" P9 permettent de d%finir
56
une di,ision du si(na# d'entr%e de ce#ui$ci. Le tab#eau en Fi(ureD r%sume #es diff%rentes
possibi#it%s de pr% di,ision. Comme ,ous #e constate+" #e tau. ma.imum de di,ision sera
#orsque #es bits P9;" P91et P9 seront positionn%s 010" ce qui si(nifie que #e si(na#
app#iqu% en entr%e de pr% di,iseur sera dans ce cas di,is% par !6 en sortie.
La pro(rammation des diff%rents bits de confi(uration du fonctionnement du TI1/2 sera
effectu%e dans #e re(istre ;PTI;< dont #a fi(ure4 rappe##e #es bits positionner.
I# est noter qu' c'aque fois que #'on remettra jour #e TI1/2 ou bien que #'on
modifiera un bit de confi(uration" a#ors deu. c&c#es d'instructions seront n%cessaires
a,ant que #e compta(e ne commence )pour s&nc'ronisation-.
9i" dans ,otre pro(ramme" ,ous d%sire+ #ire #a ,a#eur du compteur )T12@-" ce#a ne
perturbera pas #e compta(e.
3.4) Gnrtion d!interruption pr "e TIMER
Comme nous #'a,ons ,u dans une pr%c%dente #eEon" #e T#1/2 ,a pou,oir (%n%rer une
interruption en passant #e f#a( T;IF du re(istre I<TC;< 1et ceci d4s que #e compteur
passera de #a ,a#eur !! #a ,a#eur @. 9i ,ous a,e+ autoris% #es interruptions (%n%ra#es
)bit FI/- et si ,ous a,e+ autoris% #es interruptions sur #e Timer )bit T;I/-" a#ors #e
pro(ramme se d%route d4s #e d%bordement du compteur #'adresse @4 te# que nous #'a,ons
pr%c%demment d%tai##% )Fi(ure!-.
D56
Pour i##ustrer #e fonctionnement et #'uti#isation du TI1/2" nous ,ous proposons de
r%a#iser un pro(ramme qui aura pour but de faire c#i(noter une #ed une fr%quence issue
de #'uti#isation du TI1/2 )Fi(ure6-.
3.#) $ti" du pro%rmme&
<ous passons rapidement sur #es d%c#arations ainsi que sur #es directi,es que nous a,ons
d%j comment%es #ors de pr%c%dentes #eEons. Pour r%a#iser une temporisation de 'uit
secondes )te# que dans notre e.emp#e de pro(ramme-" nous a##ons commencer par d%finir
#es bits du re(istre ;PTI;<.
Les #i(nes sui,antes8 1;GLH @.@6 et 1;GHF ;PTI;<I2/F ont pour effet de
positionner #e re(istre ;PTI;< #a ,a#eur 6 soit en binaire @@@@@111.
9i nous reprenons #es e.p#ication sur #es bits du re(istre ;PTI;< on s'aperEoit que8
$ Le bit 2T9J @ donc on uti#ise #a fr%quence interne du quart+ 5 4"
$ Le bit P9:J @ donc on uti#ise #e pr% di,iseur #es bits P9" P91" P9; J 1 donc on pr%
di,isera par !6 ),oir tab#eau Figure3). 9i on pr% di,ise par !6 #a fr%quence du quart+"
)e##e$m7me di,is%e par 4 en interne- on aura donc si #e quart+ est de 4 1=+8 4 1=+ 5 4 J
11=+ en entr%e de pr% di,iseur et 11=+ 5 !6 J DK@6"!=+ en sortie du pr% di,iseur.
Les proc'aines instructions e.p#iquer sont #es sui,antes 8 1;GLH @.@6 et 1;GHF
T12@" ces instructions sont pour effet d'initia#iser #e compteur du TI1/2 a,ec #a ,a#eur
6.
456
Cans #a suite de notre pro(ramme" on ,%rifiera que #e compteur du TI1/2 n'est pas
0@0" ce qui si(nifie que ce#ui$ci comptera jusqu' !6 $ 6 soit !@" donc notre si(na# de
DK@6"! =+ sera encore di,is% par !@ soit une fr%quence de 1!"6!=+.
<ous uti#isons ensuite un re(istre temporaire nomm% 0retard10. Ce#ui$ci est initia#is% #a
,a#eur 6C soit 1! en d%cima#" cette ,a#eur de re(istre nous permet d'effectuer une
bouc#e.
Pour conc#ure" nous a,ons un si(na# de 1!"6!=+ que nous a##ons encore di,iser par 1!
)puisque nous a##ons effectuer #a bouc#e 1! fois- donc en sortie de #a bouc#e de
temporisation nous aurons compt%8
1!"6!=+ 5 1! soit @.1!=+ ce qui repr%sente une p%riode de 1 5 @.1!J 8 secondes
)Fi(ure6-. Les #eds connect%es sur #e port ? s'a##umeront pendant 8 secondes et resteront
%teintes %(a#ement 8 secondes. 9i ,ous a,e+ compris #e principe" i# est tr4s faci#e de
modifier #es temps obtenus en jouant sur #e pr% di,iseur et #e nombre de bouc#es
effectuer pour a,oir d'autres temporisations.
!56
656
656

Você também pode gostar