Capítulo 7
Os “Timers”/Contadores da
família de microcontroladores
MCS-51 da Intel
Prentice Hall
Microcontroladores 8051
1
Capítulo 7
 Interrupções:
Prentice Hall
Instrução
Bytes
Ciclos
Codificação
Representação
Simbólica
LCALL addr16
(sub-rotina)
3
2
0001 0010 addr15-8 addr7-0
(PC)  (PC) + 3
(SP)  (SP) + 1
((SP))  (PC7-0)
(SP  (SP) + 1
((SP))  (PC15-8)
(PC)  addr16
LCALL
“endereço
vetor de
interrupção”
(definido pelo
fabricante)
0
2
-
(PC)  (PC) + 3
(SP)  (SP) + 1
((SP))  (PC7-0)
(SP  (SP) + 1
((SP))  (PC15-8)
(PC)  addr16
Microcontroladores 8051
2
Capítulo 7
Item Fonte de Interrupção Nível dentro da mesma prioridade
1
IE0
(++++++)
Maior
2
TF0
(+++++)
3
IE1
(++++)
4
TF1
(+++)
5
RI+TI
(++)
6
TF2+EXF2
(+)
Menor
Fonte de Interrupção
RESET
IE0
TF0
IE1
TF1
RI + TI
TF2 + EXF2
Prentice Hall
Nome da Fonte de Interrupção
Reset
Fonte de Interrupção Externa 0
Fonte de Interrupção do Timer/Contador 0
Fonte de Interrupção Externa 1
Fonte de Interrupção do Timer/Contador 1
Fonte de Interrupção do Canal de Comunicação Serial
Fonte de Interrupção do Timer/Contador 2 + Externa 2
Microcontroladores 8051
Endereço Vetor
0000h
0003h
000Bh
0013h
001Bh
0023h
002Bh
3
Capítulo 7
TMOD =
Símbolo
GATE
C/Tbarra
M1
M0
bit 7
bit 6
GATE
Timer 1
C/Tbarra
Posição
TMOD.3
TMOD.7
bit 5
M1
bit 4
M0
bit 3
bit 2
bit 1
bit 0
GATE
Timer 0
C/Tbarra
M1
M0
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.
Prentice Hall
Microcontroladores 8051
4
Capítulo 7
M1
0
M0
0
0
1
1
0
Modo de operação
7654 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
1
4 3210
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.
Obs: X = 0 ou 1.
Prentice Hall
Microcontroladores 8051
5
Capítulo 7
Oscilador
 12
Flag de
Inter.
Controle
C/Tbarra=0
THX8
TLX5
TFX
C/Tbarra=1
TX pino
Registradores de
contagem
TRX
Porta
AND
Interrupção
Figura 1:
Timer/Contador no
Modo 0 de operação (13
bits de contagem).
GATE
Porta
OR
INTXbarra
Prentice Hall
Microcontroladores 8051
6
Capítulo 7
(TCON) =
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
Prentice Hall
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
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.
Microcontroladores 8051
7
Capítulo 7
Modo 1:
É um Timer/contador de 16 bits. Apresenta o mesmo hardware da figura 1, porém o seu registrador de
contagem é de 16 bits (8 bits do registrador THX e também 8 bits do registrador TLX). Usado para gerar
tempos maiores que o modo 0.
Prentice Hall
Microcontroladores 8051
8
Capítulo 7
Oscilador
 12
Registrador de
contagem
Controle
C/Tbarra=0
TLX8
Flag de
Inter.
TFX
C/Tbarra=1
Interrupção
TX pino
Recarregamento
TRX
THX8
Porta
AND
GATE
Porta
OR
INTXbarra
Prentice Hall
Figura 2: Timer/Contador no
Modo 2 de operação (8 bits
de contagem).
Microcontroladores 8051
9
Capítulo 7
Oscilador
 12
Registrador de
contagem
Controle
C/Tbarra=0
TL08
Flag de
Inter.
TF0
C/Tbarra=1
T0 pino
Interrupção
TR0
Porta
AND
GATE
Figura 3: Timer/Contador 0
no Modo 3 de operação (8
bits de contagem).
Porta
OR
INT0barra
Controle
Oscilador
TH08
 12
Flag de
Inter.
TF1
Interrupção
Prentice Hall
TR1
Microcontroladores 8051
10
Capítulo 7
 Inicialização (set-up) dos Timers/Contadores:
Modo
Função do Timer/Contador 0
0
1
2
3
Timer/Contador de 13 bits
Timer/Contador de 16 bits
8 bits com recarregamento automático
2 Timers/Contadores de 8 bits
Modo
Função do Timer/Contador 0
0
1
2
3
Timer/Contador de 13 bits
Timer/Contador de 16 bits
8 bits com recarregamento automático
2 Timers/Contadores de 8 bits
Prentice Hall
TMOD
Controle Interno Controle Externo
(nota 1)
(nota 2)
04h
0Ch
05h
0Dh
06h
0Eh
07h
0Fh
TMOD
Controle Interno Controle Externo
(nota 1)
(nota 2)
00h
80h
10h
90h
20h
A0h
30h
B0h
Microcontroladores 8051
11
Capítulo 7
Modo
Função do Timer/Contador 0
0
1
2
3
Timer/Contador de 13 bits
Timer/Contador de 16 bits
8 bits com recarregamento automático
2 Timers/Contadores de 8 bits
Prentice Hall
TMOD
Controle Interno Controle Externo
(nota 1)
(nota 2)
40h
C0h
50h
D0h
60h
E0h
70h
F0h
Microcontroladores 8051
12
Capítulo 7
Rotina de atendimento a fonte de
interrupção do Timer/Contado 0
Salvar (ACC) e (PSW) na pilha
(TH0)  #0FFh
(A)  (P1)
Rotaciona o (A) um bit para a esquerda
(P1)  (A)
Recupera (PSW) e (ACC) da pilha
ACC
PSW
TH0,#0FFh
A,P1
A
P1,A
PSW
ACC
RETI
RETI
Prentice Hall
(0040h)
T0INT: PUSH
PUSH
MOV
MOV
RL
MOV
POP
POP
Microcontroladores 8051
13
Capítulo 7
Rotina de atendimento a fonte de
interrupção do Timer/Contado 1
Salvar (ACC) e (PSW) na pilha
(TH1)  #0FFh
(A)  (P2)
Rotaciona o (A) um bit para a esquerda
(P2)  (A)
Recupera (PSW) e (ACC) da pilha
ACC
PSW
TH1,#0FFh
A,P2
A
P2,A
PSW
ACC
RETI
RETI
Prentice Hall
(0060h)
T1INT: PUSH
PUSH
MOV
MOV
RL
MOV
POP
POP
Microcontroladores 8051
14
Capítulo 7
Sub-rotina
(0080h)
SUBROT:MOV
INC
MOV
CPL
MOV
(A)  (P0)
(A)  (A) + 1
(P0)  (A)
(A)  not (A)
(P3)  (A)
A,P0
A
P0,A
A
P3,A
RET
RET
Prentice Hall
Microcontroladores 8051
15
Capítulo 7
Programa Principal:
(0100h)
(SP)  #30h
(TMOD)  #10h
(TH0)  #0FFh
(TL0)  #00h
(TH1)  #0FFh
(TL1)  #00h
(IE)  #8Ah
(TCON)  #50h
(P0)  #7Fh
(P1)  #0FEh
(P2)  (P1)
Chama sub-rotina SUBROT
PROGP:
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SP,#30h
TMOD,#10h
TH0,#0FFh
TL0,#00h
TH1,#0FFh
TL1,#00h
IE,#8Ah
TCON,#50h
P0,#7Fh
P1,#0FEh
P2,P1
LOOP:
ACALL
SJMP
END
SUBROT
LOOP
Figura 4: Fluxograma e programa fonte estruturado do exercício resolvido 1.
Prentice Hall
Microcontroladores 8051
16
Download

RET