Temporizadores e Contadores (Timer/Counter) O 85 possui 2 T/C internos de 6 Bits programáveis e com capacidade de operação independente da CPU. Contadores crescentes (up-counter) que geram sinal de interrupção na ocorrência de overflow. Podem ser habilitados ou desabilitados por Software ou por Hardware. Dois registradores comandam a programação dos T/C Temporizadores e Contadores Temporizadores e Contadores (Timer/Counter) Esquemático geral simplificado Temporizadores e Contadores (Timer/Counter) Registradores na área dos SFR que mostram os valores dos T/C T TH TL T TH TL F8 F B E8 E ACC D8 D PSW C8 T2CON T2MOD RCAP2L RCAP2H TL2 TH2 C B8 IP B P A8 E A P2 programáveis por software 98 9 88 8 SCON P P SBUF SP TL DPL TL DPH TH TH PCON
Temporizadores e Contadores (Timer/Counter) Temporizadores e Contadores (Timer/Counter) Registrador TF (Timer/Counter Control) Endereçável a Bit TR TF TR IE IT IE IT Registrador (Timer/Counter Mode) Não endereçável a Bit TF TR TF TR IE IT IE IT.7.6.5.4..2.. Flag de overflow do. Ativado por hardware quando o transborda. Zerado por hardware assim que o processador salta para a rotina de atendimento da interrupção Bit de controle do. Ativado/zerado por software para Ligar/Desligar o. Flag de overflow do. Ativado por hardware quando o transborda. Zerado por hardware assim que o processador salta para a rotina de atendimento da interrupção Bit de controle do. Ativado/zerado por software para Ligar/Desligar o. Flag de borda da interrupção Externa. Ativado por hardware quando uma borda na Interrupção Externa é detectada. Zerado por hardware quando a interrupção é processada. Bit de controle da Interrupção Externa. Ativado/zerado por software para especificar se a Interrupção Externa é sensível à descida de borda/nivel baixo. Flag de borda da Interrupção Externa. Ativado por hardware quando uma borda na Interrupção Externa é detectada. Zerado por hardware quando a interrupção é processada. Bit de controle da Interrupção Externa. Ativado/zerado por software para especificar se a Interrupção Externa é sensível à descida de borda/nivel baixo. M M SETB TR ; Dispara(liga) o T CLR TR ; Pára (Desliga) o T SETB TR ; Dispara(liga) o T CLR TR ; Pára (Desliga) o T Controle de Disparo para o T Controle por Hardware Controle de Disparo para o T Controle por Software TF TR TF TR IE Quando o Bit TR (em ) é e =, o T contará enquanto o pino INT na CPU for. IT M IE IT M Exemplo: MOV M M,#xxxxxxxb ; programa o T para controle ; por Software MOV Exemplo:,#xxxxxxxb ; Programa o T ; para ; controle por ; Hardware SETB TR CLR TR ; Liga o T ; Desliga o T SETB TR ; Liga o T 2
Controle de Disparo para o T Controle por Hardware MOV,#xxxxxxxb ; Programa o ;T para Seleção de Função M M ; controle por SETB TR ; Hardware ; Liga o T = (Timer) Temporizador = (Counter) - Contador Controle por Software MOV,#xxxxxxxb ; programa o T para controle por Software SETB TR ; Liga o T CLR TR M ; Desliga o T M Timer (Temporizador) entrada de pulsos através do clock interno ((freqüência do oscilador)/2). Counter (Contador) entrada de pulsos externa através dos pinos T ou T da CPU. Obs: A freqüência externa deve ser no máximo a metade da freqüência da CPU. Seleção de Modo Modo Contador / Temporizador de Bits 8 Bits + 5 Bits de prescaler M M TH ou TH Contagem TL ou TL Ignorar Prescaler 5 4 2 9 8 7 6 5 4 2 Leitura / Escrita em TH Leitura / Escrita em TL Exemplo : M Contador / Temporizador de bits (8 bits + 5 bits de prescaler) Contador / Temporizador de 6 bits MODOS DE OPERAÇÃO Usar o T como contador no Modo, para contar de 2 em 2 pulsos vezes e, após a contagem acionar um mecanismo que liga um motor conectado ao bit da porta P. Contador é crescente (UP Counter) 2 Contador / Temporizador de 8 bits auto-recarregável Para o T: TL é um Contador / Temporizador de 8 bits controlado pelos bits de controle do T e TH é um Contador / Temporizador de 8 bits controlado pelos bits de controle do T O T não funciona no modo contagens 9BH até FFH (FFh 9Bh = 64h d)
O T conta em TL 2 pulsos. A cada 2 pulsos é incrementado o valor de TH. Depois de x 2 pulsos, ocorre um overflow em TH ocasionando TF=. TF TR TF TR IE IT IE IT ORG SJMP Prog ORG Bh ; Endereço da sub-rotina do T Sub: CLR EA ; Evita Interrupção da Interrupção SETB P. ; Aciona o mecanismo SETB EA ; Re-habilita as Interrupções MOV TH,#9Bh ; contar cem vezes RETI ;Retorna M M Prog: SETB ET ;habilita Interrupção do T MOV TH,#9Bh ; contar cem vezes MOV TL,#h ; contar trinta e dois pulsos MOV,#4 ;T no modo como Contador e ;disparo por software SETB EA ;habilita as interrupções SETB TR ;Dispara o T Loop: CLR P. ; Desliga o mecanismo SJMP Loop ; Permanece em Loop Obs: Toda a vez que a contagem atingir x 2 pulsos o programa desvia para Sub e aciona o mecanismo Contador/Temporizador de 6 Bits O valor inicial pode ser programado por Software Exemplo : ) Programar o T como um Temporizador (Timer) no Modo com controle por Software para gerar um pulso positivo de ms na Porta P.. (Se o Cristal for de 2 MHz, a freqüência será 2 MHz/2 = MHz) Modo Programação do T M ms contar de 8ACFh a FFFFh (555 a 6555 =. us) M período = us ORG SJMP Prog Sub: ORG Bh ; Sub-rotina do T CLR EA CLR P. ; Fim do Pulso depois de ms RETI Prog: CRL P. ; Zera a saída de pulso SETB ET ; Habilita a interrupção do T MOV,#h ;T no Modo, temporizador e ;controle por software MOV TH,#8Ah ;Contar de 8ACFh até FFFFh MOV TL,#CFh SETB EA ;habilita as interrupções SETB TR ;Inicia a contagem SETB P. ; Início do pulso SJMP $ 4
Exemplo 2: Programar o T como Contador (Counter) no Modo com controle por Software. A entrada de pulsos deverá ser aplicada em T. Modo 2 Contador/Temporizador de 8 Bits Auto-recarregável Programação do T M M Os pulsos a serem contados devem entrar através do pino T da CPU em freqüência inferior à metade do Cristal. MOV,#5h ; SETB TR ; Inicia a contagem Deve-se armazenar em THx o Valor de Recarga. O resultado da contagem pode ser lido em TH(MSB) e TL(LSB) Exemplo: )Temporizador de 8 Bits no Modo 2 (de 7Fh a FFh) para o T. Controle por software. Programação do T M M Modo O T não funciona no Modo. O T no Modo estabelece TL e TH como dois contadores separados de 8 Bits cada. MOV,#2h ; Programa o T/C no Modo 2 como ;Temporizador e controle por Software MOV TH,#7Fh MOV TL,#7Fh SETB TR ;Inicia a contagem Quando o T chegar em FFh, recomeça de 7Fh (valor de TH). 5
Modo Como o T não opera neste modo, TH gera uma solicitação de Interrupção através de TF. O T pode ser programado em outro modo, mas aí, não gera overflow em TF para solicitação de Interrupção. TH só funciona como Temporizador (Timer) pois só usa a freqüência interna (/2 oscilador) 6