16
Prentice Hall Microcontroladores 8051 1 Capítulo 7 Capítulo 7 Os “Timers”/Contadores da Os “Timers”/Contadores da família de microcontroladores família de microcontroladores MCS-51 da Intel MCS-51 da Intel

Capítulo 7 Os “Timers”/Contadores da família de microcontroladores MCS-51 da Intel

  • Upload
    hue

  • View
    18

  • Download
    0

Embed Size (px)

DESCRIPTION

Capítulo 7 Os “Timers”/Contadores da família de microcontroladores MCS-51 da Intel. Capítulo 7. Interrupções :. Capítulo 7. Capítulo 7. Capítulo 7. Oscilador.  12. Flag de Inter. Controle. C/Tbarra=0. THX 8. TLX 5. TFX. C/Tbarra=1. TX pino. Registradores de contagem. - PowerPoint PPT Presentation

Citation preview

Page 1: Capítulo 7 Os “Timers”/Contadores da família de microcontroladores MCS-51 da Intel

Prentice Hall Microcontroladores 8051 1

Capítulo 7Capítulo 7

Os “Timers”/Contadores da Os “Timers”/Contadores da família de microcontroladores família de microcontroladores

MCS-51 da IntelMCS-51 da Intel

Page 2: Capítulo 7 Os “Timers”/Contadores da família de microcontroladores MCS-51 da Intel

Prentice Hall Microcontroladores 8051 2

Capítulo 7Capítulo 7

Interrupções:

Instrução Bytes Ciclos Codificação RepresentaçãoSimbó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çovetor 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

Page 3: Capítulo 7 Os “Timers”/Contadores da família de microcontroladores MCS-51 da Intel

Prentice Hall Microcontroladores 8051 3

Capítulo 7 Capítulo 7 Item Fonte de Interrupção Nível dentro da mesma prioridade

1 IE0 (++++++) Maior2 TF0 (+++++)3 IE1 (++++)4 TF1 (+++)5 RI+TI (++)6 TF2+EXF2 (+) Menor

Fonte de Interrupção Nome da Fonte de Interrupção Endereço VetorRESET Reset 0000h

IE0 Fonte de Interrupção Externa 0 0003hTF0 Fonte de Interrupção do Timer/Contador 0 000BhIE1 Fonte de Interrupção Externa 1 0013hTF1 Fonte de Interrupção do Timer/Contador 1 001Bh

RI + TI Fonte de Interrupção do Canal de Comunicação Serial 0023hTF2 + EXF2 Fonte de Interrupção do Timer/Contador 2 + Externa 2 002Bh

Page 4: Capítulo 7 Os “Timers”/Contadores da família de microcontroladores MCS-51 da Intel

Prentice Hall Microcontroladores 8051 4

Capítulo 7Capítulo 7

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

Timer 1 Timer 0TMOD = GATE C/Tbarra M1 M0 GATE C/Tbarra M1 M0

Símbolo Posição FunçãoGATE TMOD.3

TMOD.7Controle de disparo:

0: O Timer/Contador X é habilitado sempre TRX=1 (contagem controlada porsoftware);1: O Timer/Contador é habilitado somente quando o pino INTX = 1 e TRX (emTCON) =1 (contagem controlada por software e hardware);

C/Tbarra TMOD.2TMOD.6

Seletor de Timer ou Contador: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.

Page 5: Capítulo 7 Os “Timers”/Contadores da família de microcontroladores MCS-51 da Intel

Prentice Hall Microcontroladores 8051 5

Capítulo 7Capítulo 7

M1 M0 Modo de operação0 0 7 6 5 4 3 2 1 0 4 3 2 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)

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, oregistrador de contagem (TLX) é recarregado automaticamente com o valor doregistrador 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.

Page 6: Capítulo 7 Os “Timers”/Contadores da família de microcontroladores MCS-51 da Intel

Prentice Hall Microcontroladores 8051 6

Capítulo 7Capítulo 7Oscilador 12

TX pino

C/Tbarra=0

C/Tbarra=1

THX8 TLX5 TFX

Controle

GATE

PortaAND

INTXbarra

Porta OR

TRX

Interrupção

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

Registradores decontagem

Flag de Inter.

Page 7: Capítulo 7 Os “Timers”/Contadores da família de microcontroladores MCS-51 da Intel

Prentice Hall Microcontroladores 8051 7

Capítulo 7Capítulo 7bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

(TCON) = TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0

Símbolo Posição Nome e SignificadoTF1 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 softwarepara ligar ou desligar o Timer/contador 1.

TF0 TCON.5 Flag de overflow do Timer/Contador 0: Setado por hardware no overflow doTimer/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 softwarepara ligar ou desligar o Timer/contador 0.

IE1 TCON.3 Flag de detecção de borda da interrupção externa 1: Setado/Limpado por hardwaresempre 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 paraespecificar o tipo de detecção da interrupção externa 1, se é por borda de descida ounível baixo.

IE0 TCON.1 Flag de detecção de borda da interrupção externa 1: Setado/Limpado por hardwaresempre 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 paraespecificar o tipo de detecção da interrupção externa 0, se é por borda de descida ounível baixo.

Page 8: Capítulo 7 Os “Timers”/Contadores da família de microcontroladores MCS-51 da Intel

Prentice Hall Microcontroladores 8051 8

Capítulo 7Capítulo 7

Modo 1:

É um Timer/contador de 16 bits. Apresenta o mesmo hardware da figura 1, porém o seu registrador decontagem é de 16 bits (8 bits do registrador THX e também 8 bits do registrador TLX). Usado para gerartempos maiores que o modo 0.

Page 9: Capítulo 7 Os “Timers”/Contadores da família de microcontroladores MCS-51 da Intel

Prentice Hall Microcontroladores 8051 9

Capítulo 7Capítulo 7

Oscilador 12

TX pino

C/Tbarra=0

C/Tbarra=1

THX8

TLX8 TFX

Controle

GATE

PortaAND

INTXbarra

Porta OR

TRX

Interrupção

Figura 2: Timer/Contador no Modo 2 de operação (8 bits de contagem).

Registrador decontagem Flag de

Inter.

Recarregamento

Page 10: Capítulo 7 Os “Timers”/Contadores da família de microcontroladores MCS-51 da Intel

Prentice Hall Microcontroladores 8051 10

Capítulo 7Capítulo 7Oscilador 12

T0 pino

C/Tbarra=0

C/Tbarra=1

TH08

TL08 TF0

Controle

GATE

PortaAND

INT0barra

Porta OR

TR0

Interrupção

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

Registrador decontagem Flag de

Inter.

Controle

Oscilador 12

TR1

TF1

Interrupção

Flag de Inter.

Page 11: Capítulo 7 Os “Timers”/Contadores da família de microcontroladores MCS-51 da Intel

Prentice Hall Microcontroladores 8051 11

Capítulo 7Capítulo 7

Inicialização (set-up) dos Timers/Contadores:

TMODModo Função do Timer/Contador 0 Controle Interno

(nota 1)Controle Externo

(nota 2)0 Timer/Contador de 13 bits 04h 0Ch1 Timer/Contador de 16 bits 05h 0Dh2 8 bits com recarregamento automático 06h 0Eh3 2 Timers/Contadores de 8 bits 07h 0Fh

TMODModo Função do Timer/Contador 0 Controle Interno

(nota 1)Controle Externo

(nota 2)0 Timer/Contador de 13 bits 00h 80h1 Timer/Contador de 16 bits 10h 90h2 8 bits com recarregamento automático 20h A0h3 2 Timers/Contadores de 8 bits 30h B0h

Page 12: Capítulo 7 Os “Timers”/Contadores da família de microcontroladores MCS-51 da Intel

Prentice Hall Microcontroladores 8051 12

Capítulo 7Capítulo 7

TMODModo Função do Timer/Contador 0 Controle Interno

(nota 1)Controle Externo

(nota 2)0 Timer/Contador de 13 bits 40h C0h1 Timer/Contador de 16 bits 50h D0h2 8 bits com recarregamento automático 60h E0h3 2 Timers/Contadores de 8 bits 70h F0h

Page 13: Capítulo 7 Os “Timers”/Contadores da família de microcontroladores MCS-51 da Intel

Prentice Hall Microcontroladores 8051 13

Capítulo 7Capítulo 7

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

(0040h)T0INT: PUSH ACC

PUSH PSWMOV TH0,#0FFhMOV A,P1RL AMOV P1,APOP PSWPOP ACC

RETI

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

RETI

Page 14: Capítulo 7 Os “Timers”/Contadores da família de microcontroladores MCS-51 da Intel

Prentice Hall Microcontroladores 8051 14

Capítulo 7Capítulo 7

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

(0060h)T1INT: PUSH ACC

PUSH PSWMOV TH1,#0FFhMOV A,P2RL AMOV P2,APOP PSWPOP ACC

RETI

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

RETI

Page 15: Capítulo 7 Os “Timers”/Contadores da família de microcontroladores MCS-51 da Intel

Prentice Hall Microcontroladores 8051 15

Capítulo 7Capítulo 7

(0080h)SUBROT:MOV A,P0

INC AMOV P0,ACPL AMOV P3,A

RET

(A) (P0)(A) (A) + 1

(P0) (A) (A) not (A)

(P3) (A)

RET

Sub-rotina

Page 16: Capítulo 7 Os “Timers”/Contadores da família de microcontroladores MCS-51 da Intel

Prentice Hall Microcontroladores 8051 16

Capítulo 7Capítulo 7

Programa Principal:

(0100h)PROGP: MOV SP,#30h

MOV TMOD,#10hMOV TH0,#0FFhMOV TL0,#00hMOV TH1,#0FFhMOV TL1,#00hMOV IE,#8AhMOV TCON,#50hMOV P0,#7FhMOV P1,#0FEhMOV P2,P1

LOOP: ACALL SUBROTSJMP LOOPEND

(SP) #30h(TMOD) #10h(TH0) #0FFh(TL0) #00h

(TH1) #0FFh(TL1) #00h(IE) #8Ah

(TCON) #50h(P0) #7Fh

(P1) #0FEh(P2) (P1)

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

Chama sub-rotina SUBROT