• Nenhum resultado encontrado

Medição da freqüência de um sinal periódico

No documento Microcontroladores Família MCS51 (páginas 33-37)

A freqüência corresponde, por definição, ao número de ciclos por segundo de um dado sinal. Para medir freqüência utiliza-se um dos temporizadores/contadores na função de contador, inicializando-se os registradores de contagem a 0. Utiliza se o sinal exterior como relógio do contador. O outro temporizador/contador gera um atraso de 1s. A contagem obtida ao fim de 1s corresponde à freqüência do sinal (em Hz). Em seguida é apresentado um exemplo.

Colégio Técnico de Campinas – Cotuca – Disciplina - TDM II

3- Utilize os Timers 0 e 1 para medir a freqüência de um sinal desconhecido. Suponha que a freqüência é inferior a 65535 Hz. O Timer 0 será utilizado para fazer a contagem de ciclos e o Timer 1 para definir o intervalo de 1s. Deve proceder-se à ligação do sinal externo ao pino T0.

Algoritmo:

1- Configurar Timer 0 para operar como contador em modo 1 sem sinal externo de

gating.

2- Configurar Timer 1 para operar como temporizador em modo 1 sem sinal externo de gating.

3- Inicializar registradores de contagem de Timer 0 a 0.

4- Utilizar Timer 1 para criar um a atraso de 1s. Colocar o valor 3CAFH nos registradores de contagem do Timer 1 para criar um atraso de 50ms.

5- Esperar 1s. Parar a contagem do Timer 1. O valor contido nos registradores de contagem do Timer 1 corresponde à freqüência do sinal.

Código:

t1_ovc SET R0 ; registrador para guardar a contagem de overflow. freq_1 SET R1 ; byte inferior da freqüência.

freq_h SET R2 ; byte superior da freqüência.

ORG 0000H ; início do programa principal. SETB P3.4 ; ativação da função T0.

MOV TMOD,#15H ; configura Timers 0 e 1.

MOV t1_ovc,#20 ; inicializa a variável t1_ovc a 20. MOV TH0,#0 ; inicializa TH0 = 0.

MOV TL0,#0 ; inicializa TH0 = 0

MOV TH1,#3CH ; valores iniciais de contagem para geração de um MOV TL1,#AFH ; atraso de 50ms.

CLR ET1 ; desativa a interrupção do Timer 1. SETB TR1 ; inicia operação de Timer 1.

SETB TR0 ; inicia operação de Timer 0. rep:

CLR TF1 ; TF1 = 0.

MOV TH1,#3CH MOV TL1,#AFH esp:

JNB TF1,esp ; espera ativação da flag TF1.

DJNZ t1_ovc,rep ; espera até que o atraso de 50ms seja repetido 20 ; vezes.

MOV freq_l, TL0 ; guarda byte inferior do valor obtido. MOV freq_h, TH0 ; guarda byte superior do valor obtido. END

12.1.3- Timer 2

O Timer 2 é um temporizador/contador de 16 bits, com aplicações diferentes das dos Timers 0 e 1 e que, para além destes, integra alguns dos microcontroladores da família MCS-51 (8052, entre outros). Este temporizador/contador pode ser utilizado para temporização ou contagem e possui três modos de operação distintos. Os registradores de contagem designam se TH2 e TL2 e existem ainda dois registradores adicionais RCAP2L e RCAP2H, designados registradores de captura. A seleção da função e do modo de operação deste temporizador faz-se nos registradores T2CON e T2MOD. T2CON é endereçável bit a bit. T2MOD não é endereçável bit a bit. Os registradores T2CON e T2MOD são apresentados nas figuras 30 e 31, respectivamente.

Colégio Técnico de Campinas – Cotuca – Disciplina - TDM II

Figura 30- Registrador T2CON (endereço C8H).

TF2 é a flag de overflow do Timer 2. Esta flag é ativada na ocorrência da

condição de overflow nos registradores de contagem do Timer 2. TF2 tem que ser desativada por software. Se RCLK = 1 ou TCLK = 1, a flag nunca é ativada. EXF2 é a flag externa do Timer 2. EXF2 é ativada quando é feita uma captura ou recarga devida à ocorrência de uma transição negativa no sinal aplicado no pino T2EX, se EXEN2 = 1. RCLK é a flag do relógio de recepção, quando igual a 1 faz com que a porta série utilize a condição de overflow do Timer 2 para relógio de recepção, quando programada nos modos de operação 1 e 3. Se RCLK = 0 o relógio de recepção da porta série é dado pelo overflow do Timer 1. TCLK é a flag do relógio de transmissão. Esta flag tem significado semelhante à RCLK referindo-se à transmissão. EXEN2 é a flag de ativação externa do Timer 2. Quando igual a 1 permite a captura ou recarga do valor dos registradores de contagem na ocorrência de uma transição negativa no pino T2EX (se o Timer 2 não estiver ser utilizado como relógio da porta série). EXEN = 0 faz com que as transições em T2EX sejam ignoradas. TR2 é o bit de controle do arranque/parada do Timer 2. TR2 = 1 provoca o arranque enquanto que TR2 = 0 faz a parada. C/T2 é o bit de seleção da função do Timer 2. CP/RL2 é a flag de captura/recarga. Quando a 1 provoca a captura dos valores contidos nos registradores de contagem para os registradores de captura na ocorrência de uma transição negativa no pino T2EX se EXEN2 = 1. Se CP/RL2 = 0, é feita a recarga do valor contido nos registradores de captura para os registradores de contagem quando ocorre a condição de

overflow no temporizador ou quando ocorre uma transição negativa no pino T2EX se

EXEN2 = 1. Quando RCLK = 1 ou TCLK = 1 este bit é ignorado e é forçada a recarga quando ocorre overflow.

Figura 31- Registrador T2MOD (endereço C9H).

T2OE é o bit de output enable do Timer 2 e DCEN o bit de ativação da contagem decrescente. Os modos de operação do Timer 2 são definidos através da programação dos bits referidos na tabela 18.

Tabela 18- Modos de operação do Timer 2.

No modo de auto-recarga, o Timer 2 pode fazer contagens crescentes ou decrescentes. Se DCEN = 0, a contagem é crescente e se EXEN2 = 0, a flag TF2 é ativada por overflow do registrador de contagem. A condição de overflow provoca ainda a carga do valor de 16 bits contido em RCAP2H e RCAP2L nos registradores de contagem TH2 e TL2. Se EXEN2 = 1, a carga dos valores contidos em RCAP2H e RCAP2L é feita na ocorrência da condição de overflow ou quando ocorre uma transição de 1 para 0 na entrada externa T2EX. Esta transição ativa a flag EXF2.

Colégio Técnico de Campinas – Cotuca – Disciplina - TDM II

A ativação de TF2 e/ ou EXF2 pode ser usada para gerar interrupções, se necessário. A figura 32 apresenta o diagrama de blocos do Timer 2 em modo de auto-recarga para DCEN = 0.

Figura 32- Diagrama de blocos do Timer 2 no modo de auto-recarga para DCEN = 0. No modo de auto-recarga, para DEN = 1, a contagem pode ser crescente ou decrescente. Se o sinal aplicado no pino T2EX estiver no nível lógico baixo, a contagem é crescente e a flag TF2 é ativada quando ocorre overflow. Esta condição provoca ainda a carga dos valores contidos em RCAP2H e RCAP2L nos registradores TH2 e TL2, respectivamente. Se o sinal aplicado no pino T2EX estiver no nível lógico alto, a contagem é decrescente. A condição de underflow ocorre quando o valor nos registradores de contagem igualar o valor contido nos registradores RCAP2H e RCAP2L. Esta condição ativa a flag de TF2 e provoca a carga do valor 0FFFFH nos registradores de contagem TH2 e TL2. A figura 33 apresenta o diagrama de blocos do Timer 2 no modo de captura para DCEN = 1.

Figura 33- Diagrama de blocos do Timer 2 em modo de auto recarga para DCEN = 1. No modo de captura, se EXEN2 = 0, o Timer 2 comporta-se como um temporizador de 16 bits com ativação da flag TF2 na ocorrência da condição de overflow. Se EXEN2 = 0, o Timer 2 comporta-se como descrito na situação anterior. A ocorrência uma transição do nível lógico alto para o nível lógico baixo na entrada externa T2EX provoca a captura do valor contido nos registradores de contagem TH2 e TL2 para os registradores de captura RCAP2H e RCAP2L, respectivamente. A transição referida ativa a flag T2EX do registrador T2CON. A ativação das flags TF2 e EXF2 pode ser utilizada para gerar pedidos de interrupção. A figura 34 apresenta o diagrama de blocos do Timer 2 no modo de captura.

Colégio Técnico de Campinas – Cotuca – Disciplina - TDM II

Figura 34- Diagrama de blocos do Timer 2 em modo de captura.

No modo para geração de taxas de transmissão a ativação de RCLK ou TCLK força a porta série a utilizar a flag de overflow do Timer 2 para relógio de recepção ou transmissão, respectivamente, quando programada nos modos 1 ou 3. Nos casos dos

bits RCLK e/ou TCLK estarem à zero será o overflow do Timer 1 a determinar a

taxa da recepção e/ou transmissão da porta série. A figura 35 apresenta o diagrama de blocos do Timer 2 no modo de geração de taxas de transmissão ou recepção.

Figura 35- Digrama de blocos do Timer 2 em modo de geração de taxas de transmissão.

No documento Microcontroladores Família MCS51 (páginas 33-37)

Documentos relacionados