Você está na página 1de 16

Os “Timers”/Contadores da

família de microcontroladores
MCS-51 da Intel

Prentice Hall Microcontroladores 8051 1


 Interrupções:

Instrução Bytes Ciclos Codificação Representação


Simbólica
LCALL addr16 3 2 0001 0010 addr15-8 addr7-0 (PC)  (PC) + 3
(sub-rotina) (SP)  (SP) + 1
((SP))  (PC7-0)
(SP  (SP) + 1
((SP))  (PC15-8)
(PC)  addr16
LCALL 0 2 - (PC)  (PC) + 3
“endereço (SP)  (SP) + 1
vetor de ((SP))  (PC7-0)
interrupção” (SP  (SP) + 1
(definido pelo ((SP))  (PC15-8)
fabricante) (PC)  addr16

Prentice Hall Microcontroladores 8051 2


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 Nome da Fonte de Interrupção Endereço Vetor


RESET Reset 0000h
IE0 Fonte de Interrupção Externa 0 0003h
TF0 Fonte de Interrupção do Timer/Contador 0 000Bh
IE1 Fonte de Interrupção Externa 1 0013h
TF1 Fonte de Interrupção do Timer/Contador 1 001Bh
RI + TI Fonte de Interrupção do Canal de Comunicação Serial 0023h
TF2 + EXF2 Fonte de Interrupção do Timer/Contador 2 + Externa 2 002Bh

Prentice Hall Microcontroladores 8051 3


bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
Timer 1 Timer 0
TMOD = GATE C/Tbarra M1 M0 GATE C/Tbarra M1 M0

Símbolo Posição Função


GATE TMOD.3 Controle de disparo:
TMOD.7 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);
C/Tbarra 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).
M1 TMOD.0/1 Define o modo de operação dos Timers/Contadores, em conjunto com M0.
M0 TMOD.4/5 Define o modo de operação dos Timers/Contadores, em conjunto com M1.

Prentice Hall Microcontroladores 8051 4


M1 M0 Modo de operação
0 0 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)
0 1 1: Timer/Contador de 16 bits (THX8 TLX8)16
1 0 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 Registrador de Recarregamento
(TLX8=xxxx xxxx)(THX8= valor a ser recarregado no registrador de contagem)
1 1 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


Oscilador  12
Flag de
Controle Inter.

C/Tbarra=0 THX8 TLX5 TFX

C/Tbarra=1
TX pino Registradores de
contagem
Interrupção

TRX Figura 1:
Timer/Contador no
Porta Modo 0 de operação (13
AND bits de contagem).
GATE
Porta OR

INTXbarra

Prentice Hall Microcontroladores 8051 6


bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
(TCON) = TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0

Símbolo Posição Nome e Significado


TF1 TCON.7 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).
TR1 TCON.6 Bit de controle de liga/desliga do Timer/Contador 1: Setado/Limpado por software
para ligar ou desligar o Timer/contador 1.
TF0 TCON.5 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).
TR0 TCON.4 Bit de controle de liga/desliga do Timer/Contador 0: Setado/Limpado por software
para ligar ou desligar o Timer/contador 0.
IE1 TCON.3 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.
IT1 TCON.2 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.
IE0 TCON.1 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.
IT0 TCON.0 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.
Prentice Hall Microcontroladores 8051 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


Oscilador  12 Registrador de
contagem Flag de
Controle Inter.

C/Tbarra=0 TLX8 TFX

C/Tbarra=1
TX pino Interrupção

Recarregamento
TRX
THX8
Porta
AND
GATE
Porta OR Figura 2: Timer/Contador no
Modo 2 de operação (8 bits
INTXbarra de contagem).

Prentice Hall Microcontroladores 8051 9


Oscilador  12 Registrador de
contagem Flag de
Controle
Inter.
C/Tbarra=0 TL08 TF0

C/Tbarra=1
T0 pino Interrupção

TR0

Porta
AND
GATE
Porta OR Figura 3: Timer/Contador 0
no Modo 3 de operação (8
INT0barra
bits de contagem).

Flag de
Controle
Inter.
TH08 TF1
Oscilador  12

Interrupção
TR1
Prentice Hall Microcontroladores 8051 10
 Inicialização (set-up) dos Timers/Contadores:

TMOD
Modo Função do Timer/Contador 0 Controle Interno Controle Externo
(nota 1) (nota 2)
0 Timer/Contador de 13 bits 04h 0Ch
1 Timer/Contador de 16 bits 05h 0Dh
2 8 bits com recarregamento automático 06h 0Eh
3 2 Timers/Contadores de 8 bits 07h 0Fh

TMOD
Modo Função do Timer/Contador 0 Controle Interno Controle Externo
(nota 1) (nota 2)
0 Timer/Contador de 13 bits 00h 80h
1 Timer/Contador de 16 bits 10h 90h
2 8 bits com recarregamento automático 20h A0h
3 2 Timers/Contadores de 8 bits 30h B0h

Prentice Hall Microcontroladores 8051 11


TMOD
Modo Função do Timer/Contador 0 Controle Interno Controle Externo
(nota 1) (nota 2)
0 Timer/Contador de 13 bits 40h C0h
1 Timer/Contador de 16 bits 50h D0h
2 8 bits com recarregamento automático 60h E0h
3 2 Timers/Contadores de 8 bits 70h F0h

Prentice Hall Microcontroladores 8051 12


Rotina de atendimento a fonte de
interrupção do Timer/Contado 0

(0040h)
T0INT: PUSH ACC
Salvar (ACC) e (PSW) na pilha PUSH PSW
(TH0)  #0FFh MOV TH0,#0FFh
(A)  (P1) MOV A,P1
Rotaciona o (A) um bit para a esquerda RL A
(P1)  (A) MOV P1,A
Recupera (PSW) e (ACC) da pilha POP PSW
POP ACC

RETI RETI

Prentice Hall Microcontroladores 8051 13


Rotina de atendimento a fonte de
interrupção do Timer/Contado 1

(0060h)
T1INT: PUSH ACC
Salvar (ACC) e (PSW) na pilha PUSH PSW
(TH1)  #0FFh MOV TH1,#0FFh
(A)  (P2) MOV A,P2
Rotaciona o (A) um bit para a esquerda RL A
(P2)  (A) MOV P2,A
Recupera (PSW) e (ACC) da pilha POP PSW
POP ACC

RETI
RETI

Prentice Hall Microcontroladores 8051 14


Sub-rotina

(0080h)
(A)  (P0) SUBROT:MOV A,P0
(A)  (A) + 1 INC A
(P0)  (A) MOV P0,A
(A)  not (A) CPL A
(P3)  (A) MOV P3,A

RET
RET

Prentice Hall Microcontroladores 8051 15


Programa Principal:
(0100h)
(SP)  #30h PROGP: MOV SP,#30h
(TMOD)  #10h MOV TMOD,#10h
(TH0)  #0FFh MOV TH0,#0FFh
(TL0)  #00h MOV TL0,#00h
(TH1)  #0FFh MOV TH1,#0FFh
(TL1)  #00h MOV TL1,#00h
(IE)  #8Ah MOV IE,#8Ah
(TCON)  #50h MOV TCON,#50h
(P0)  #7Fh MOV P0,#7Fh
(P1)  #0FEh MOV P1,#0FEh
(P2)  (P1) MOV P2,P1

Chama sub-rotina SUBROT LOOP: ACALL SUBROT


SJMP LOOP
END

Figura 4: Fluxograma e programa fonte estruturado do exercício resolvido 1.


Prentice Hall Microcontroladores 8051 16

Você também pode gostar