Le 8051 est doté de deux timers 16 bits qui se présentent
chacun sous forme de deux octets : TH0, TL0 et TH1, TL1.
Un timer peut assurer deux fonctions : le comptage
(d'évènements extérieurs) ou la temporisation (incrémenté à
partir d'un signal d'horloge). Les 2 timers sont configurables à
l'aide des deux registres TMOD et TCON.
TMOD : Registre de contrôle du mode: (89H)
Le quartet de poids fort de ce registre s'adresse au Timer 1
et celui de poids faible au Timer 2.
Ces deux quartets sont identiques, à savoir : GATE, C/T, M1, M0.
- GATE = 1 & INTx = 1 & TRx = 1 -----> TIMERx
validé.
- GATE = 0 & TRx = 1 -------------------> TIMERx
validé.
- C/T = 0 -----------------------------------> fonction
Temporisateur (incrémenté à chaque cycle machine)
- C/T = 1 -----------------------------------> fonction
Compteur à partir des évènements sur broche Tx (front
descendant)
- Choix du mode de fonctionnement :
| M1 |
M0 |
Mode |
| 0 |
0 |
compteur 13 bits |
| 0 |
1 |
compteur 16 bits |
| 1 |
0 |
compteur 8 bits à rechargement auto. Si TLx
passe à 0, il est rechargé avec THx |
| 1 |
1 |
TIMER0 : TL0 compteur 8 bits contrôlé par
les bits de contrôle de TIMER0
et TH0 devient temporisateur 8 bits contrôlé
par les bits de contrôle de TIMER 1 |
| 1 |
1 |
TIMER 1 est alors à l'arrêt. |
TCON : Registre de contrôle : (88H)
Seuls les quatres bits de poids fort concernent les TIMERS 1
et 2 (les autres concernent les INT externes) : ils sont : TF1,
TR1, TF0, TR0.
- TF1 : indicateur de débordement du TIMER1 (overflow).
Mis à 1 lorsque le compteur passe à 0. Si
l'interruption lui correspondant est validée, il est
remis à 0 automatiquement lorsque le sous-programme
d'int. est exécuté.
- TR1 : bit de déclenchement du TIMER1. Mise à 1 pour
valider le TIMER1.
- TF0 : indicateur de débordement du TIMER0. Même
fonctionnement que TF1.
- TR0 : bit de déclenchement du TIMER0. Même
fonctionnement que TR0.
Le TIMER2 du 8052 et son registre de contrôle T2CON (C8H)
Trois modes de fontionnement sont possibles : capture,
rechargement et générateur de fréquence pour communication
série. T2CON a ses 8 bits dédiés à la configuration du TIMER2
:
- TF2 : Indicateur de débordement du TIMER2. Même
fontionnement que TF1 et TF0.
- EXEN2 : -- Si mode capture : si EXEN2 = 0, fonctionnement
identique à TIMER1 ou 0. Si EXEN = 1, fonctionnement en
mode capture : Si front descendant sur la broche T2EX,
les contenus de TH2 et TL2 sont alors recopiés dans
RCAP2H et RCAP2L. En même temps, EXF2 est positionné à
1 et peut permettre le déclenchement d'un interruption.
-- Si mode rechargement : si EXEN2 = 0, lors d'un
dépassement de capacité, TH2 et TL2 sont rechargés
avec RCAP2H et RCAP2L. Si EXEN = 1, le fontionnement est
le même mais un front descendant sur la broche T2EX
provoque le rechargement.
- EXF2 : cf. EXEN2
- RCLK : bit de contrôle de l'horloge de réception. Si
RCLK = 1 et si le port série est en mode 1 ou 3, ce
dernier utilise l'impulsion de dépassement du TIMER2. Si
RCLK = 0, c'est le bit de dépassement du TIMER1 qui joue
ce rôle.
- TCLK : bit de contrôle de l'horloge d'emission. Même
fontionnement que RCLK.
- TR2 : même fontionnement que TR0 et TR1.
- C/T2 : même fonctionnement que C/T.
- CP/RL2 : CP/RL2 = 1, mode capture sélectionné. CP/RL2 =
0, mode rechargement : cf EXEN2
Le TIMER2 des 80C535/7 et son fonctionnent :
UNDER CONSTRUCTION ...........