Você está na página 1de 4

SENAI Curso Microcontroladores 8051

TEMPORIZADORES E CONTADORES
Nos microprocessadores em geral, os temporizadores so utilizados para gerar peridicos
pedidos de interrupo, medir largura de pulsos externos, contagem de tempo, e muitas outras
funes.
O microcontrolador 8051 possui internamente !ontadores"#emporizadores denominados como
#$%&O'()*+O' 0 $ #$%&O'()*+O' 1. *m,os podem ser configurados para operar como
temporizador ou contador de e-entos e ter a operao .a,ilitada por soft/are ou .ard/are.
Descri!o
Na funo de temporizador, um registro ser0 incrementado a cada ciclo de m01uina.
!onsiderando 1ue cada ciclo de m01uina consiste em 1 per2odos do cloc3, a taxa de contagem
ser0 de 1"1 da fre145ncia do cloc3.
Na funo de contador, um registro ser0 incrementado em resposta a uma transio de 617 para
608 9,orda de descida: de seu correspondente pino de entrada externa, #0 9&;.<: e #1 9&;.5:.
Nesta funo, os pinos externos 9#0 e #1: so amostrados a cada ciclo de m01uina. =uando uma
amostragem indicar um n2-el alto em um ciclo de m01uina e um n2-el ,aixo no prximo cicio, o
contador ser0 incrementado.
* taxa m0xima de contagem > de 1"< da fre145ncia do cloc3, pois so necess0rios dois ciclos de
m01uina para o recon.ecimento de uma transio de 618 para 608.
Modos de O"era!o do C#T
?0 1uatro modos poss2-eis de operao dos !ontadores"#emporizadores.
* seleo de #emporizador ou !ontador e os modos de operao so realizados por meio do
registro de funo especial #%O+ 9%odo do #emporizador:.
#%O+ @ #imer %O+$ @ 8A .
B*#$C1 !"#.1 %1.1 %0.1 B*#$C0 !"#.0 %1.0 %0.0
Dit E Dit F Dit 5 Dit < Dit ; Dit Dit 1 Dit 0
!ontrole do !"# 1 !ontrole !"#0
O registro #%O+ > di-idido em duas partes iguais 1ue controlam o #$%&O'()*+O' 1 e
#$%&O'()*+O' 0. O registrador #%O+ > acessado pelo endereo 8A. e no > ,it endere0-el.
O registro de controle do modo #emporizador 9#: " !ontador 9!: > feito no #%O+ selecionandoCse
a funo temporizador ou contador e o modo de operao 9modo 0, 1, ou ;:.
$nidade 1 Introdu!o aos %icrocontroladores
Te%"ori&adores e contadores
1
SENAI Curso Microcontroladores 8051
B*#$Cx @ tem como funo escol.er como os #"! sero .a,ilitados 9ati-ados:. Ge B*#$Cx
9B*#$C1 ou B*#$C0: for 0, o #"!.x ser0 .a,ilitado 9estar0 contando: se #'x e (N#x 9(N#0 ou
(N#1: forem 1. *ssim, medeCse a largura de pulsos externos.
!"#.x @ Geleciona a funo de cada #"!. Ge !"#.x for 0 ir0 funcionar como temporizador, se !"#.x
for 1, ento ir0 funcionar como contador.
%1.x e %0.x @ selecionam o modo de operao dos !"#s.
Re'istro TCON
*ntes de detal.ar o modo de operao do !"#, > preciso con.ecer o 'egistro #!ON 9!ontrole de
#emporizao:.
#!ON @ #imer !ontrol @ 88 .
8H . 8$ . 8+ . 8! . 8D . 8* . 8A . 88 .
#H1 #'1 #H0 #'0
Dit E Dit F Dit 5 Dit < Dit ; Dit Dit 1 Dit 0
#Hx @ Dit de o-erflo/ do temporizador. I ati-ado 9setado: pelo circuito 1uando ocorrer um
o-erflo/ no temporizador, gerando um pedido de interrupo. I resetado pelo .ard/are depois de
finalizar a rotina de interrupo.
#'x @ Dit de controle de operao do temporizador. I o ,it 1ue liga e desliga o !"#. &ara ligar o
temporizador, o soft/are seta este ,it e para desligar resetaCo.
Descri!o detal(ada dos %odos de o"era!o do C#T
Modo 0 Contador ou te%"ori&ador de 8 )its co% di*isor de +re,-.ncia de at/
01 *e&es2 Sendo3 M124 5 0 e M024 5 02
No modo 0 o registro do temporizador > configurado como um registro de 1; ,its. =uando o
registro 9#?1 ou #?0: muda de HH. para 00. ocorre um o-erflo/ 1ue .a,ilita a solicitao de
interrupo do temporizador, por meio do ,it #H1 ou #H0, do registro de funo especial #!ON
988.:.
#?0 ou #?1 #J0 ou #J1
15 1< 1; 1 11 10 A 8 E F 5 < ; 1 0
!ontagem (gnorar &rescaler
Contador#te%"ori&ador e% Modo 0
O registro de 1; ,its > composto por todos os ,its de #?1 ou #?0, e pelos 5 ,its menos
significati-os de #J1 ou #J0. $stes 5 ,its possi,ilitam a di-iso por ;. Os ; ,its mais
significati-os de #J1 e #J0 so indeterminados e de-em ser ignorados em caso de leitura. *
.a,ilitao da operao do temporizador atra->s de #'x no limpa estes registros.
Os registros #?1, #?0. #J1 e #J0 esto localizados na regio dos registros de funo especial e
so acessados pelos endereos 8+. 9#?1:, 8!. 9#?0:, 8D. 9#J1: e 8*. 9#J0:. $stes registros
no so ,its endere0-eis.
&ara realizar uma temporizao, o registro #?x rece,e o -alor inicial da contagem, escrito por
soft/are, e podeCse contar at> HH. *o ocorrer o-erflo/ nesse registro 9passar de HH para 00:, o
$nidade 1 Introdu!o aos %icrocontroladores
Te%"ori&adores e contadores
1
SENAI Curso Microcontroladores 8051
!"# faz um pedido de interrupo, 1ue > aceito ou no pela Knidade !entral de &rocessamento
9!&K:. O -alor do registro pode ser lido pelo soft/are, em 1ual1uer momento.
O sinal de contagem 9cloc3 interno ou externo: > di-idido pelo -alor ,in0rio presente nos 5 ,its
menos significati-os de #Jx. +esta maneira, para 1ue o registro #?x seLa incrementado, >
necess0rio um nMmero de pulsos igual ao -alor da contagem aLustada em #Jx.
=uando ocorre o-erflo/ 9na troca de #?x de HH. para OO.: > feito um pedido de interrupo. Ge
a interrupo for .a,ilitada, e se deseLa uma no-a temporizao ou contagem, os registros #?x e
#Jx so no-amente carregados.
!omo > poss2-el di-idir a fre145ncia no m0ximo por ; e contar no m0ximo at> 5F, > poss2-el
contar 81A 95Fx;:.
$xemploN -amos imaginar 1ue se 1ueira contar de AD. at> HH. 9100 contagens: e 1ue a cada ;0
pulsos na entrada externa, o contador 9#"! 0: incremente seu registro, e depois de 100 contagens
uma interrupo seLa gerada e o controle efetuado pela !&K.
#?0 #J0
1 0 0 1 1 0 1 1 0 0 0 1 1 1 1 0
!ontagem (gnorar &rescaler
O registro #?0, por meio de instruo, > carregado com o -alor AD. e o registro #J0 com o -alor
1$. 9;0910::. O #0 9&;.<: faz o contador incrementar cada acionamento. +epois de 0 pulsos o
registro #?0 > incrementado uma -ez, at> atingir HH., 1ue no prximo incremento com o-erflo/,
faz uma interrupo pelo #H0, 9,it 1ue pode ser testado pelo programa:, 1ue informa o programa
para realizar o e-ento deseLado.
!om este sistema simples > poss2-el a cada ;000 pulsos gerar uma interrupo. (magine, por
exemplo, uma lin.a de produo em 1ue aps ;000 peas produzidas de-e .a-er uma
interrupo para rea,astecimento de mat>ria prima.
Modo 1 Contador ou te%"ori&ador de 16 )its7 sendo3 M124 5 0 e M02451
No modo de operao 1, o contador"temporizador > de 1F ,its, com os registros #?1 e #J1 ou
#?0 e #J0 para formar estes 1F ,its. +esta forma > poss2-el contar de 0000. at> HHHH. 9F55F;
contagens:.
#?0 ou #?1 #J0 ou #J1
15 1< 1; 1 11 10 A 8 E F 5 < ; 1 0
!ontagem (gnorar &rescaler
O -alor inicial da contagem > programado por soft/are. =uando ocorrer o-erflo/ 9passar de
HHHH. para 0000.: > feito um pedido de interrupo. *ssim, como no modo 0, o -alor inicial de
uma no-a contagem de-e ser carregado na rotina de interrupo.
Modo 1 8 Contador ou Te%"ori&ador de 8 )its co% recar'a auto%9tica2 sendo3
M124 5 1 e M024 5 0
No modo , os registros #J1 e #J0 fazem a contagem e #?1 e #?0 ficam com o -alor a ser
carregado nos registros #J1 e #J0, 1uando ocorrer o-erflo/. %esmo com a recarga autom0tica do
-alor da contagem, os registros #?1 e #?0 podem ser alterados a 1ual1uer momento.
Neste modo de funcionamento, no > preciso reescre-er, por soft/are, o -alor a ser contado.
$scre-eCse no registro #Jx. o -alor inicial da contagem, e em #?x o -alor inicial da prxima
$nidade 1 Introdu!o aos %icrocontroladores
Te%"ori&adores e contadores
0
SENAI Curso Microcontroladores 8051
contagem. *o ocorrer o o-erflo/ em #Jx, o sistema gera a interrupo e automaticamente
recarrega em #Jx o -alor contido em #?x. e prossegue incrementando so, comando do sinal
externo 9contador: ou interno 9temporizador:.
TH0 ou TH1 TL0 ou TL1
15 14 1; 1 11 10 A 8 E F 5 < ; 1 0
Valor inicial da prxima contagem Valor inicial da contagem
!omo a recarga > autom0tica, no > necess0rio carregar o -alor inicial na rotina de interrupo.
Modo 0 8 1 Contador ou Te%"ori&ador de 8 )its e 1 Te%"ori&ador de 8 )its7
sendo3 M1245 1 e M024 5 12
O modo ; tem comportamentos diferentes para os dois temporizadores. O temporizador O
esta,elece 1ue #J0 e #?0 sero dois contadores separados.
#J0 usa os ,its de controle do temporizador 0, os ,its !"#.0, B*#$.0, #'0, (H0 e (N#0 e pode
operar tanto como contador como temporizador. #?0 opera somente como temporizador e usa os
,its de controle #'1 e #H1 do temporizador 1. *ssim #?0O controla a interrupo do
temporizador 1.
No modo ;, o temporizador 1 permanece com a sua contagem 9mant>m #?1 e #J1:. Hica
desligado, como se o #'1 esti-esse em 608. *o ser configurado para outro modo ele funciona
normalmente ficando permanentemente ligado como se #'1 O 618.
TH0 TL0
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
pena! tempori"ador de 8 #it! ati$a
interrup%&o do T'( 1
Tempori"ador ou contador de 8 #it! ati$a
interrup%&o do T'( 0
O modo ; atua como se existisse um temporizador extra de 8 ,its. O temporizador 1 > usado em
aplicaes 1ue no necessitem de interrupes, como por exemplo, gerao de taxa de
transmisso para a porta serial.
ODG.N &ara ati-ar as interrupes dos !ontadores"#emporizadores, os ,its $P $#1 e $#0 do
registro $ 9(nterrupt $na,le: de-em ser aLustados. &ara .a,ilitar a interrupo do !"# 1, al>m do
,it $* O1, $#1 O 1 e para o !"# 0, $* O1 e $#0 O 1.
$nidade 1 Introdu!o aos %icrocontroladores
Te%"ori&adores e contadores
:

Você também pode gostar