Muitos dos aplicativos de microcontroladores exigem a contagem de eventos externos, como frequência dos trens de pulso e geração de atrasos de tempo internos precisos entre as ações do computador. Ambas as tarefas podem ser implementadas por técnicas de software, mas os loops de software para contagem e o tempo não darão o resultado exato, em vez de funções mais importantes não serem realizadas. Para evitar esses problemas, os temporizadores e contadores nos microcontroladores são as melhores opções para aplicações simples e de baixo custo. Esses temporizadores e contadores são usados como interrupções no microcontrolador 8051 .
Existem dois temporizadores e contadores de 16 bits em Microcontrolador 8051 : temporizador 0 e temporizador 1. Ambos os temporizadores consistem em um registro de 16 bits no qual o byte inferior é armazenado em TL e o byte superior é armazenado em TH. O temporizador pode ser usado como um contador, bem como para a operação de temporização que depende da origem dos pulsos do relógio para os contadores.

Cronômetros e contadores
Contadores e temporizadores no microcontrolador 8051 contêm dois registros de função especial: TMOD (Registro de modo de temporizador) e TCON (Registro de controle de temporizador), que são usados para ativar e configurar cronômetros e contadores .
Controle do modo temporizador (TMOD): TMOD é um registrador de 8 bits usado para selecionar o temporizador ou contador e o modo dos temporizadores. 4 bits inferiores são usados para operação de controle do temporizador 0 ou contador 0, e os 4 bits restantes são usados para operação de controle do temporizador 1 ou contador 1. Este registro está presente no registro SFR, o endereço para o registro SFR é 89º.

Controle do modo temporizador (TMOD)
Portão: Se o bit de gate for definido como '0', podemos iniciar e parar o temporizador de 'software' da mesma maneira. Se a porta estiver definida como '1', podemos executar o temporizador de hardware.
C / T: Se o bit C / T for ‘1’, então ele está atuando como um modo de contador, e da mesma forma quando definido C +
= / T bit é '0' e está agindo como um modo de temporizador.
Bits de seleção de modo: M1 e M0 são bits de seleção de modo, usados para selecionar as operações do temporizador. Existem quatro modos de operar os temporizadores.
Modo 0: Este é um modo de 13 bits que significa que a operação do temporizador é concluída com pulsos “8192”.
Modo 1: Este é um modo de 16 bits, o que significa que a operação do temporizador é concluída com pulsos de clock máximos de “65535”.
Modo 2: Este modo é um modo de recarga automática de 8 bits, o que significa que a operação do temporizador é concluída com apenas “256” pulsos de clock.
Modo 3: Este modo é um modo de temporizador dividido, o que significa que os valores de carregamento em T0 e inicia automaticamente o T1.

Bits de seleção de modo
Valores de seleção de modo de temporizadores e contador em 8051

Valores de seleção de modo de temporizadores e contadores
Registro de controle de temporizador (TCON): TCON é outro registro usado para controlar operações de contador e temporizadores em microcontroladores. É um registrador de 8 bits em que quatro bits superiores são responsáveis por temporizadores e contadores e bits inferiores são responsáveis por interrupções.

Registro de controle de cronômetro (TCON)
TF1: O TF1 significa bit de sinalização ‘timer1’. Sempre que calcular o retardo de tempo no temporizador1, o TH1 e TL1 atingem o valor máximo que é “FFFF” automaticamente.
EX: enquanto (TF1 == 1)
Sempre que TF1 = 1, limpe o bit de sinalização e pare o cronômetro.
TR1: O TR1 significa bit de início ou parada do temporizador1. Este início do cronômetro pode ser por meio de instruções de software ou por método de hardware.
EX: portão = 0 (iniciar temporizador 1 por meio de instrução de software)
TR1 = 1 (iniciar cronômetro)
TF0: O TF0 significa 'timer0' flag-bit. Sempre que calcular o atraso de tempo no temporizador1, o TH0 e TL0 atingem um valor máximo que é ‘FFFF’, automaticamente.
EX: enquanto (TF0 == 1)
Sempre que TF0 = 1, limpe o bit de sinalização e pare o cronômetro.
TR0: O TR0 significa 'timer0' iniciar ou parar o bit, este temporizador pode ser iniciado por meio de instrução de software ou método de hardware.
EX: portão = 0 (iniciar temporizador 1 por meio de instrução de software)
TR0 = 1 (iniciar cronômetro)
Cálculos de atraso de tempo para o microcontrolador 8051
O microcontrolador 8051 funciona com frequência de 11,0592 MHz.
Frequência 11,0592 MHz = 12 pules
1 pulso de relógio = 11,0592 MHz / 12
F = 0,921 MHz
Atraso de tempo = 1 / F
T = 1 / 0,92 MHz
T = 1,080506 us (para ciclo '1')
1000us = 1MS
1000ms = 1seg
Procedimento para calcular o programa de atraso
1. Primeiro, temos que carregar o valor do registro TMOD para ‘Timer0’ e ‘Timer1’ em modos diferentes. Por exemplo, se quisermos operar o timer1 no modo1, ele deve ser configurado como “TMOD = 0x10”.
2. Sempre que operamos o temporizador no modo 1, o temporizador leva os pulsos máximos de 65535. Em seguida, os pulsos de atraso de tempo calculados devem ser subtraídos dos pulsos máximos e depois convertidos para o valor hexadecimal. Este valor deve ser carregado no bit superior e nos bits inferiores do timer1. Esta operação do temporizador é programada usando C incorporado em um microcontrolador .
Exemplo: atraso de 500us
500us / 1.080806us
461 pulsos
P = 65535-461
P = 65074
65074 convetado por hexa decimal = FE32
TH1 = 0xFE
TL1 = 0x32
3. Inicie o cronômetro1 “TR1 = 1”
4. Monitore o bit de sinalização “enquanto (TF1 == 1)”
5. Limpe o bit de sinalizador “TF1 = 0”
6. Prenda o cronômetro “TR1 = 0”
Programas de exemplo:

Programa- 1

Programa- 2

Programa- 3
Contadores em 8051
Podemos usar um contador mantendo o bit C / T alto, ou seja, a lógica '1' no registro TMOD. Para melhor compreensão, fornecemos um programa que usa o temporizador 1 como contador. Aqui os LEDs são conectados à porta 2 do 8051 e a chave ao pino P3.5 do temporizador1 e, portanto, se a chave for pressionada, o valor será contado. Caso contrário, um sensor conectado externamente a este pino do contador como entrada realiza esta operação de contagem.

Programa de Contador
Aplicações de temporizadores e contadores em 8051
Contador Digital com 8051
O contador digital com 8051 é obtido programando o microcontrolador conforme discutido acima e anexando um sistema de sensor a ele. Este contador de objetos usa sensor IR que detecta o obstáculo próximo a ele e também habilita o pino do microcontrolador 06. Quando um objeto passa pelos sensores, o microcontrolador obtém um sinal de interrupção dos sensores IR e incrementa a contagem que é exibida no display de 7 segmentos.

Contador Digital com 8051
Circuito de retardo de tempo usando o microcontrolador 8051
A figura abaixo mostra como a operação do temporizador pode ser implementada para alternar os LEDs de maneira eficaz. A operação de retardo para o conjunto de LEDs é programada em um microcontrolador da maneira discutida acima. Aqui, um conjunto de LEDs é conectado à porta 2 com um sistema de alimentação comum. Quando este circuito é ligado com base no atraso de tempo programa no microcontrolador apropriadamente, esses LEDs estão ligados.

Circuito de atraso de tempo
Isso é tudo sobre o temporizador do microcontrolador 8051 e contadores com programação básica e circuitos de aplicação. Esperamos que as informações deste artigo possam ter fornecido dados suficientes para compreender melhor o conceito. Além disso, qualquer dúvida técnica sobre a programação do 8051 e seus circuitos, você pode entrar em contato conosco comentando abaixo.
Créditos fotográficos:
- Contador digital com 8051 por circuito hoje
- Circuito de atraso de tempo por vshamu