8051 E SEUS TIMERS
Existem variações com relação ao numero de timers disponíveis entre os "intregrantes" dessa família, porem, originalmente o 8051 possui 2 timer de 16 Bits que podem trabalhar em 4 modos distintos, a ser configurado pelo usuário (Programador).
Para trabalharmos com os timers, precisaremos configurar 2 registradores de modo a informarmos o microcontrolador o modo de cada timer, e tambem quais interrupções deverão ser habilitadas, sendo os registradores TMOD e IE respectivamente os responsáveis por estas configurações.
Vamos então as informações básicas sobre os timers T0 e T1.
O REGISTRADOR ## TMOD ## (Endereço 89H)
| TIMER 1 | TIMER 0 |
---------- ------ ----- ------ --------- ------ ------ -----
| GATE | C/T | M1 | M0 | GATE | C/T | M1 | M0 |
---------- ------ ----- ------ --------- ------ ------ -----
| | | | | | | |__Define o modo de operação dos Timer0/Contador0
| | | | | | |______Define o modo de operação dos Timer0/Contador0
| | | | | |_________=0: Timer0 (clock interno - fcristal/12) // =1: Contador (clock pelo pino externo TX).
| | | | |______________=0: habilit sempre // =1: habilitado pelo pino INT0 =1 e TR0=1
| | | |___________________Define o modo de operação do Timer1/Contador1
| | |_______________________Define o modo de operação dos Timer1/Contador1
| |___________________________=0: Timer1 (clock interno - fcristal/12) // =1: Contador (clock pelo pino externo TX).
|_________________________________=0: habilitado sempre TR1=1 ( software) // =1: habilitado pelo pino INT1 = 1 e TR1 =1 (software e hardware )
Conforme visto acima, os bits M0 e M1 são responsaveis pela configuração do modo de operação dos 2 timers, e a configuração dos 4 modos através destes bits é mostrada abaixo.
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
MODO | M1 | M0 | Descrição |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
0 | 0 | 0 | Timer de 13 bits (THX8=xxxx xxxx TLX5= ***x xxxx) |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
1 | 0 | 1 | Timer/Contador de 16 bits (THX8 TLX8) |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
2 | 1 | 0 | Timer/Contador de 8 bits com recarga automática. (TLx é recarregado automaticamente com o valor de THx) |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
3 | 1 | 1 | TL0= TIMER DE 8 BITS usando TR0 e TF0 // TH0= TIMER DE 8 BITS usando TR1 e TF1 //TIMER 1 NãO PODERá SER USADO |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
O REGISTRADOR ## IE ##