Timers/Counters do 8051
Disciplina: Microcontroladores
Prof. Remy Eskinazi, MSc
UPE - POLI
1
Registradores dos T/C’s
7
0
TH1 (0X8D)
T/C 1
TL1 (0X8B)
TH0 (0X8C)
T/C 0
TL0 (0X8A)
TF1
GATE1
TR1
T/C1
TF0
M11
TR0
M10
IE1
GATE0
IT1
T/C0
IE0
M01
IT0
M00
TCON
TMOD
(0X88)
(0X89)
2
Registrador TCON
TF1
Símbolo
TF1
Posição
TCON.7
TR1
TCON.6
TF0
TCON.5
TR0
TCON.4
IE1
TCON.3
IT1
TCON.2
IE0
TCON.1
IT0
TCON.0
TR1
TF0
TR0
IE1
IT1
IE0
IT0
TCON
(0X88)
Nome e Significado
Flag de overflow do Timer /Contador 1
: Setado por
hardware no overflow do
Timer /contador 1. Limpado por
hardware quando o microprocessador vetoriza
(endereça) a sub-rotina de atendimento a fonte de interrupção do
Timer /Contador 1
(001Bh).
Bit de controle de liga/desliga do
Timer /Contador 1 : Setado/Limpado por
software
para ligar ou desligar o
Timer /contador 1.
Flag de overflow do Timer /Contador 0
: Setado por
hardware no overflow do
Timer /contador 0. Limpado por
hardware quando o microprocessador vetoriza
(endereça) a sub-rotina de atendimento a fonte de interrupção do
Timer /Contador 1
(000Bh).
Bit de controle de liga/desliga do
Timer /Contador 0 : Setado/Limpado por
software
para ligar ou desligar o
Timer /contador 0.
Flag de detecção de borda da interrupção externa 1
: Setado/Limpado por
hardware
sempre quando uma borda de descida da fonte de interrupção externa é detectada.
Limpado quando a sub-rotina de atendimento a fonte de interrupção 1 é processada.
Bit de controle do tipo da interrupção 1
: Setado/Limpado por
software para
especificar o tipo de detecção da interrupção externa 1, se é por borda de descida ou
nível baixo.
Flag de detecção de borda da interrupção externa 1
: Setado/Limpado por
hardware
sempre quando uma borda de descida da fonte de interrupção externa é detectada.
Limpado quando a sub-rotina de atendimento a fonte de interrupção 0 é processada.
Bit de controle do tipo da interrupção 0
: Setado/Limpado por
software para
especificar o tipo de detecção da interrupção externa 0, se é por borda de descida ou
nível baixo.
3
Registrador TMOD
GATE1
Símbolo
GATE
C/Tbarra
M1
M0
Posição
TMOD.3
TMOD.7
T/C1
M11
M10
GATE0
T/C0
M01
M00
TMOD
(0X89)
Função
Controle de disparo:
0: O Timer/Contador X é habilitado sempre TRX=1 (contagem controlada por
software);
1: O Timer/Contador é habilitado somente quando o pino INTX = 1 e TRX (em
TCON) =1 (contagem controlada por software e hardware);
TMOD.2 Seletor de Timer ou Contador:
TMOD.6
0: define operação Timer (entrada de clock do sistema interno - fcristal/12);
1: define operação Contador (entrada de clock definido pelo pino externo TX).
TMOD.0/1 Define o modo de operação dos Timers/Contadores, em conjunto com M0.
TMOD.4/5 Define o modo de operação dos Timers/Contadores, em conjunto com M1.
4
Registrador TMOD
GATE1
M1
0
T/C1
M11
M10
M0
0
0
1
1
0
Obs: X = 0 ou 1.
1
T/C0
M01
M00
TMOD
(0X89)
Modo de operação
7654 3210
4 3210
0: Timer de 13 bits de contagem (THX8=xxxx xxxx TLX5= ***x xxxx)
contagem inicial: (
0000 0000
***0 0000)
:
:
contagem final: (
1111 1111
***1 1111)
1: Timer/Contador de 16 bits (THX8 TLX8)16
2: Timer/Contador de 8 bits com recarregamento automático. A cada interrupção, o
registrador de contagem (TLX) é recarregado automaticamente com o valor do
registrador de recarregamento (THX)
Registrador de Contagem
1
GATE0
Registrador de Recarregamento
(TLX8=xxxx xxxx)(THX8= valor a ser recarregado no registrador de contagem)
3:
Timer 0:
- TL0 é um Timer/Contador de 8 bits controlado pelos bits de controle do Timer 0;
- TH0 é simplesmente um Timer de 8 bits controlado pelos bits de controle Timer 1.
Timer 1: parado.
5
Modo 0 dos T/Cs
Oscilador
 12
Flag de
Inter.
Controle
C/T=0
TLX5
THX8
TFX
C/T=1
TX pino
Registradores de
contagem
TRX
Porta
AND
Interrupção
Timer/Contador no
Modo 0 de operação
(Prescaler: 13 bits de
contagem).
GATE
Porta
OR
X = 0 ou 1
INTX
6
Modo 1 dos T/Cs
Oscilador
 12
Flag de
Inter.
Controle
C/T=0
TLX8
THX8
TFX
C/T=1
TX pino
Registradores de
contagem
TRX
Porta
AND
Interrupção
Timer/Contador no
Modo 1 de operação
(Contagem plena: 16 bits
de contagem).
GATE
Porta
OR
X = 0 ou 1
INTX
7
Modo 2 dos T/Cs
Oscilador
 12
Controle
C/T=0
Registrador de
contagem
TLX8
Flag de
Inter.
TFX
C/T=1
Interrupção
TX pino
Recarregamento
TRX
Porta
AND
THX8
X = 0 ou 1
GATE
Porta
OR
INTX
Timer/Contador no Modo 2
de operação (8 bits de
contagem com recarga).
8
Modo 3 dos T/Cs
Oscilador
 12
Controle
C/T=0
Registrador de
contagem
TL08
Flag de
Inter.
TF0
C/T=1
T0 pino
Interrupção
TR0
X = 0 ou 1
Porta
AND
GATE
Timer/Contador 0 no Modo 3
de operação (8 bits de
contagem).
Porta
OR
INT0
Controle
Oscilador
TH08
 12
Flag de
Inter.
TF1
Interrupção
TR1
9
M1x M0x
CKint
0
CK
TLx
Prescaler Bits 04
THx
15
TFx
Contagem
Tx
0 0
Modo 0: Contador 8 bits c/ preescaler
C/T
0
TRx
TLx
Contagem
THx
15
TFx
Contagem
GATEx
0 1
Modo 1: Contagem plena
INTx
TFx
(X =1 ou 0)
0
TLx
Contagem
1 0
TF1
TR1
TF0
TR0
IE1
IT1
IE0
THx
15
Recarga
Modo 2: Recarga automática
IT0
TF0
TCON
15
0
GATE1
T/C1
M11
M10
GATE0
T/C0
M01
TL0
M00
TF1
TH0
TMOD
TR0
CK
TR1
Timers / Counters - 8051
1 1
10
Modo 3: 2 Contadores Independentes 8 bits
INÍCIO
Geração de Delay de 1s
R0  20d
T1  15.535d
65.535
- 50.000
15535
Liga Timer
TF = 1 ?
N
S
R0  R0 - 1
N
R0 = 0 ?
S
RET
11
INÍCIO
Geração de Delay de 1s
T1  15.000d
R0  20d
65.536
- 50.000
15536
Liga Timer
TF = 1 ?
N
S
R0  R0 - 1
Repetir utilizando
interrupções
N
R0 = 0 ?
S
RET
12
Download

Aula_5_timers8051