Académique Documents
Professionnel Documents
Culture Documents
Microprocesseurs et Microcontrôleurs
RST(S6)-ENSA
EEA(S3)-EST-KENITRA
-KENITRA 1
Plan
Timer TMR0
Introduction
Block Diagram du TIMER0
Choix de l’horloge
Choix du pré-diviseur
Applications
Application
RST(S6)-ENSA
EEA(S3)-EST-KENITRA
-KENITRA 2
1
07/11/2019
Timer TMR0
RST(S6)-ENSA
EEA(S3)-EST-KENITRA
-KENITRA 3
Introduction
Le Timer TMR0 est un timer/compteur 8 bits ayant les caractéristiques suivantes :
• Il est incrémenté en permanence soit par :
Une horloge interne Fosc/4 fonctionnement mode timer
Une horloge externe appliquée à la broche RA4 du port A fonctionnement
mode compteur
Son adresse dans la mémoire de données est 01h
Le contenu du timer est accessible par le registre spéciale TMR0
Le Timer provoque une interruption lorsqu'il déborde (passage de FF à 00)
La valeur (sur un format de 8 bits) de la pré-division software programmable de
fréquence est possible
Quand on écrit sur Le Timer0 l’incrémentation est inhibé pendant deux cycles
machine
En mode compteur le Timer0 s’incrémente par front montant ou descendant de
l’horloge appliquée sur la pin RA4/T0CKI.
RST(S6)-ENSA
EEA(S3)-EST-KENITRA
-KENITRA 4
2
07/11/2019
RST(S6)-ENSA
EEA(S3)-EST-KENITRA
-KENITRA 5
Choix de l’horloge
RST(S6)-ENSA
EEA(S3)-EST-KENITRA
-KENITRA 6
3
07/11/2019
Choix de l’horloge
Dans le cas de l'horloge externe, on peut choisir le front sur lequel le TIMER
s'incrémente
• TOSE = 0 incrémentation sur fronts montants
• TOSE = 1 incrémentation sur fronts descendants
RST(S6)-ENSA
EEA(S3)-EST-KENITRA
-KENITRA 7
Choix du pré-diviseur
RST(S6)-ENSA
EEA(S3)-EST-KENITRA
-KENITRA 8
4
07/11/2019
Choix du pré-diviseur
RST(S6)-ENSA
EEA(S3)-EST-KENITRA
-KENITRA 9
Applications
Application 1:
Nous voulons mettre en œuvre le Timer TMR0, en fonctionnement Timer, pour fixer
la fréquence de clignotement d’une LED. Cette fréquence est soit
approximativement proche de 1Hz. La fréquence de l’oscillateur est Fosc=4 MHz.
L’horloge du Timer0 est interne.
1. Calculer la temporisation d’allumage ou d’extinction de la LED ?
2. Quelle est la temporisation générée par TMR0 sans pré-division ?
3. Quelle la temporisation générée par TMR0 avec une pré-division de 256 ? Quelle
est alors le contenu du registre OPTION_REG ?
4. Par quelle valeur faut-il multiplier la temporisation de la question 3 pour avoir une
temporisation de 500ms ?
RST(S6)-ENSA
EEA(S3)-EST-KENITRA
-KENITRA 10
5
07/11/2019
Applications
Application 1:
Nous voulons mettre en œuvre le Timer TMR0, en fonctionnement Timer, pour fixer
la fréquence de clignotement d’une LED. Cette fréquence est soit
approximativement proche de 1Hz. La fréquence de l’oscillateur est Fosc=4 MHz.
L’horloge du Timer est interne.
RST(S6)-ENSA
EEA(S3)-EST-KENITRA
-KENITRA 11
Applications
Application 2: Programmation sous MPLAB X IDE
RST(S6)-ENSA
EEA(S3)-EST-KENITRA
-KENITRA 12
6
07/11/2019
Applications
RST(S6)-ENSA
EEA(S3)-EST-KENITRA
-KENITRA 13
Applications
RST(S6)-ENSA
EEA(S3)-EST-KENITRA
-KENITRA 14
7
07/11/2019
RST(S6)-ENSA
EEA(S3)-EST-KENITRA
-KENITRA 15
Introduction
RST(S6)-ENSA
EEA(S3)-EST-KENITRA
-KENITRA 16
8
07/11/2019
Choix du pré-diviseur
L'horloge du WDT est ajustée pour que Le Time-Out arrive toutes les 18 ms
Il est cependant possible d'augmenter cette durée en faisant passer le signal
Time-Out dans un prédiviseur programmable (partagé avec le timer TMR0)
l'affectation se fait à l'aide du bit PSA du registre OPTION_REG
• PSA = 1 on utilise le prédiviseur
• PSA = 0 pas de prédiviseur (affecté à TMR0)
RST(S6)-ENSA
EEA(S3)-EST-KENITRA
-KENITRA 17
Mise en service
RST(S6)-ENSA
EEA(S3)-EST-KENITRA
-KENITRA 18
9
07/11/2019
Application
RST(S6)-ENSA
EEA(S3)-EST-KENITRA
-KENITRA 19
Application
RST(S6)-ENSA
EEA(S3)-EST-KENITRA
-KENITRA 20
10