Logique séquentielle — 4ᵉ Sciences Techniques 10 Sections52 Lessons9 Quizzes16 Hours
5.1 Du temporisateur au compteur : le TIMER0
Objectifs
- Configurer le registre OPTION_REG pour utiliser TIMER0 en compteur d’impulsions
- Réaliser un compteur et un décompteur de modulo quelconque par programme (mikroC)
- Simuler la solution programmée
En 3ᵉ année, vous avez utilisé le TIMER0 du PIC comme temporisateur : il comptait les cycles de l’horloge interne (Fosc/4). Le même registre TMR0 (8 bits, 0 à 255) peut compter des impulsions extérieures appliquées sur la broche RA4/T0CKI : c’est le mode compteur.

Le registre OPTION_REG
| bit 7 | bit 6 | bit 5 | bit 4 | bit 3 | bit 2 | bit 1 | bit 0 |
|---|---|---|---|---|---|---|---|
| RBPU | INTEDG | T0CS | T0SE | PSA | PS2 | PS1 | PS0 |
| Bit | Rôle | 0 | 1 |
|---|---|---|---|
| T0CS | source du TIMER0 | Fosc/4 (temporisateur) | RA4/T0CKI (compteur) |
| T0SE | front actif sur T0CKI | front montant | front descendant |
| PSA | affectation du prédiviseur | au TIMER0 | au chien de garde (TMR0 compte chaque impulsion) |
| PS2 PS1 PS0 | rapport du prédiviseur | 000 : 1/2 • 001 : 1/4 • 010 : 1/8 • 011 : 1/16 | 100 : 1/32 • 101 : 1/64 • 110 : 1/128 • 111 : 1/256 |
Je manipule le registre
Cliquez sur les bits : l’interprétation de chaque configuration s’affiche.
À retenir
- TIMER0 en compteur : T0CS = 1, T0SE = 0 (front montant).
- Sans prédiviseur : PSA = 1. Avec prédiviseur : PSA = 0 et PS2PS1PS0 fixe le rapport (1/2 à 1/256).
Et ensuite ? Leçon 5.2 : un compteur modulo 5 programmé.
