Anda di halaman 1dari 16

Captulo 7 Os Timers/Contadores da famlia de microcontroladores MCS-51 da Intel

Prentice Hall

Microcontroladores 8051

Captulo 7
Interrupes:
Instruo
LCALL addr16 (sub-rotina)

Bytes
3

Ciclos
2

Codificao
0001 0010 addr15-8 addr7-0

Representao Simblica
(PC) (PC) + 3 (SP) (SP) + 1 ((SP)) (PC7-0) (SP (SP) + 1 ((SP)) (PC15-8) (PC) addr16 (PC) (PC) + 3 (SP) (SP) + 1 ((SP)) (PC7-0) (SP (SP) + 1 ((SP)) (PC15-8) (PC) addr16

LCALL endereo vetor de interrupo (definido pelo fabricante)

Prentice Hall

Microcontroladores 8051

Captulo 7
Item Fonte de Interrupo Nvel dentro da mesma prioridade 1 IE0 (++++++) Maior 2 TF0 (+++++) 3 IE1 (++++) 4 TF1 (+++) 5 RI+TI (++) 6 TF2+EXF2 (+) Menor
Fonte de Interrupo RESET IE0 TF0 IE1 TF1 RI + TI TF2 + EXF2 Nome da Fonte de Interrupo Reset Fonte de Interrupo Externa 0 Fonte de Interrupo do Timer/Contador 0 Fonte de Interrupo Externa 1 Fonte de Interrupo do Timer/Contador 1 Fonte de Interrupo do Canal de Comunicao Serial Fonte de Interrupo do Timer/Contador 2 + Externa 2 Endereo Vetor 0000h 0003h 000Bh 0013h 001Bh 0023h 002Bh

Prentice Hall

Microcontroladores 8051

Captulo 7
bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0

TMOD =
Smbolo GATE

GATE
Posio TMOD.3 TMOD.7

Timer 1 C/Tbarra

M1

M0

GATE
Funo

Timer 0 C/Tbarra

M1

M0

C/Tbarra

M1 M0

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 operao Timer (entrada de clock do sistema interno - fcristal/12); 1: define operao Contador (entrada de clock definido pelo pino externo TX). TMOD.0/1 Define o modo de operao dos Timers/Contadores, em conjunto com M0. TMOD.4/5 Define o modo de operao dos Timers/Contadores, em conjunto com M1.

Prentice Hall

Microcontroladores 8051

Captulo 7
M1 0 M0 0 Modo de operao
7654 3210 4 3210

0 1

1 0

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 automtico. A cada interrupo, 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) 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

Captulo 7
Oscilador 12 Controle Flag de Inter.

C/Tbarra=0
C/Tbarra=1 TX pino

THX8

TLX5

TFX

Registradores de contagem TRX Porta AND

Interrupo

Figura 1: Timer/Contador no Modo 0 de operao (13 bits de contagem).

GATE Porta OR
INTXbarra

Prentice Hall

Microcontroladores 8051

Captulo 7
bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

(TCON) =

TF1

TR1

TF0

TR0

IE1

IT1

IE0

IT0

Smbolo TF1

Posio TCON.7

TR1 TF0

TCON.6 TCON.5

TR0 IE1

TCON.4 TCON.3

IT1

TCON.2

IE0

TCON.1

IT0

TCON.0

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 (enderea) a sub-rotina de atendimento a fonte de interrupo 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 (enderea) a sub-rotina de atendimento a fonte de interrupo 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 deteco de borda da interrupo externa 1: Setado/Limpado por hardware sempre quando uma borda de descida da fonte de interrupo externa detectada. Limpado quando a sub-rotina de atendimento a fonte de interrupo 1 processada. Bit de controle do tipo da interrupo 1: Setado/Limpado por software para especificar o tipo de deteco da interrupo externa 1, se por borda de descida ou nvel baixo. Flag de deteco de borda da interrupo externa 1: Setado/Limpado por hardware sempre quando uma borda de descida da fonte de interrupo externa detectada. Limpado quando a sub-rotina de atendimento a fonte de interrupo 0 processada. Bit de controle do tipo da interrupo 0: Setado/Limpado por software para especificar o tipo de deteco da interrupo externa 0, se por borda de descida ou nvel baixo.

Prentice Hall

Microcontroladores 8051

Captulo 7

Modo 1:
um Timer/contador de 16 bits. Apresenta o mesmo hardware da figura 1, porm o seu registrador de contagem de 16 bits (8 bits do registrador THX e tambm 8 bits do registrador TLX). Usado para gerar tempos maiores que o modo 0.

Prentice Hall

Microcontroladores 8051

Captulo 7
Oscilador 12 Controle C/Tbarra=0 C/Tbarra=1 TX pino
Interrupo

Registrador de contagem TLX8

Flag de Inter. TFX

Recarregamento
TRX Porta AND GATE Porta OR INTXbarra THX8

Figura 2: Timer/Contador no Modo 2 de operao (8 bits de contagem).


Microcontroladores 8051 9

Prentice Hall

Captulo 7
Oscilador 12 Controle Registrador de contagem

C/Tbarra=0
C/Tbarra=1 T0 pino

TL08

Flag de Inter. TF0

Interrupo

TR0
Porta AND Porta OR INT0barra

GATE

Figura 3: Timer/Contador 0 no Modo 3 de operao (8 bits de contagem).


Controle Flag de Inter. TF1

Oscilador

12

TH08

Interrupo Prentice Hall TR1 Microcontroladores 8051 10

Captulo 7
Inicializao (set-up) dos Timers/Contadores:
Modo 0 1 2 3 Funo do Timer/Contador 0 Timer/Contador de 13 bits Timer/Contador de 16 bits 8 bits com recarregamento automtico 2 Timers/Contadores de 8 bits TMOD Controle Interno Controle Externo (nota 1) (nota 2) 04h 0Ch 05h 0Dh 06h 0Eh 07h 0Fh

Modo 0 1 2 3

Funo do Timer/Contador 0 Timer/Contador de 13 bits Timer/Contador de 16 bits 8 bits com recarregamento automtico 2 Timers/Contadores de 8 bits

TMOD Controle Interno Controle Externo (nota 1) (nota 2) 00h 80h 10h 90h 20h A0h 30h B0h

Prentice Hall

Microcontroladores 8051

11

Captulo 7

Modo 0 1 2 3

Funo do Timer/Contador 0 Timer/Contador de 13 bits Timer/Contador de 16 bits 8 bits com recarregamento automtico 2 Timers/Contadores de 8 bits

TMOD Controle Interno Controle Externo (nota 1) (nota 2) 40h C0h 50h D0h 60h E0h 70h F0h

Prentice Hall

Microcontroladores 8051

12

Captulo 7
Rotina de atendimento a fonte de interrupo 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

(0040h) T0INT: PUSH PUSH MOV MOV RL MOV POP POP


RETI

ACC PSW TH0,#0FFh A,P1 A P1,A PSW ACC

RETI

Prentice Hall

Microcontroladores 8051

13

Captulo 7
Rotina de atendimento a fonte de interrupo 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

(0060h) T1INT: PUSH PUSH MOV MOV RL MOV POP POP RETI

ACC PSW TH1,#0FFh A,P2 A P2,A PSW ACC

RETI

Prentice Hall

Microcontroladores 8051

14

Captulo 7
Sub-rotina (A) (P0) (A) (A) + 1 (P0) (A) (A) not (A) (P3) (A) (0080h) SUBROT:MOV INC MOV CPL MOV RET RET

A,P0 A P0,A A P3,A

Prentice Hall

Microcontroladores 8051

15

Captulo 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)

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

Chama sub-rotina SUBROT

LOOP:

ACALL SJMP END

SUBROT LOOP

Figura 4: Fluxograma e programa fonte estruturado do exerccio resolvido 1.


Prentice Hall Microcontroladores 8051 16