0% ont trouvé ce document utile (0 vote)
24 vues8 pages

Timer0 du PIC 16F84 : Configuration et Utilisation

Ce document décrit le fonctionnement du timer0 du microcontrôleur PIC16F84. Il explique les différents modes du timer (compteur et timer), la configuration des registres associés et son utilisation pour la gestion d'interruptions. Un exemple d'application pour le comptage de boutons pressés et le clignotement d'une LED est également présenté.

Transféré par

Selim Rachdi
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
24 vues8 pages

Timer0 du PIC 16F84 : Configuration et Utilisation

Ce document décrit le fonctionnement du timer0 du microcontrôleur PIC16F84. Il explique les différents modes du timer (compteur et timer), la configuration des registres associés et son utilisation pour la gestion d'interruptions. Un exemple d'application pour le comptage de boutons pressés et le clignotement d'une LED est également présenté.

Transféré par

Selim Rachdi
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Module:

Architecture du microcontrôleur PIC 16F84


Chapitre 4: Timer

Niveau: 2A, 2P et 3B

1
PLAN
Définition Timer
Configuration en mode compteur

2
Définition
• Le PIC 16F84 comporte un seul timer, timer0, contrairement à d’autres PIC qui comportent
plusieurs timers.

• Le timer est un compteur à 8 bits qui peut jouer deux rôles:

• Mode compteur: compter les impulsions reçues sur la pin spéciale RA4/T0CKI.

• Mode timer: compter les cycles d’horloge , donc compte le temps en fonction du cycle
de l’horloge.

3
Timer0 : mode COMPTEUR
• Le mode compteur ne compte que les impulsions appliquées sur la broche RA4 /TOCKI
(nombre d’évènements survenus sur RA4)
• Cet évènement est configurable : soit on compte le nombre de fronts montants (nombre de
fois RA4 passe de 0 à1) soit le nombre de fronts descendants.
• Configuration du mode compteur: 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

T0CS: Timer0 Clock Source select bit T0SE : Timer0 Source Edge select bit
T0CS=1 : mode compteur T0SE= 0 comptage si l'entrée RA4/TOCKI passe de 0 à 1
T0CS=0 : mode timer T0SE= 1 comptage si l'entrée RA4/TOCKI passe de 14 à 0
Registre TMR0
• la valeur actuelle du timer0 se trouve dans le registre spécial TMR0.

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

• Ce registre est accessible en lecture ou en écriture.

• Exemple: si le développeur a configuré le timer0 en mode compteur des impulsions


sur la pin RA4/T0CKI, la lecture du registre tmr0 vous donnera ce nombre d’
événements survenus sur cette pin.

• Le registre tmr0 comme tous les registres spéciaux (SFR), est de 8 bits , donc il peut
compter de 0 à 255, et repasse à 0 en cas de débordement.
5
Débordement du registre TMR0
• Dans le cas du débordement du registre tmr0 càd le passage de la valeur 255
(0xFF) à 0 (0x00), le flag T0IF du registre INTCON à 1.
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

GIE EEIE T0IE INTE RBIE T0IF INTF RBIF

• On peut donc utiliser le timer0 en mode interruption:


• T0IE est positionné à 1 dans le registre INTCON,
• et donc à chaque fois que le flag T0IF passe à 1 (débordement), une interruption est
générée.
• La procédure à utiliser est celle vue dans la leçon sur les interruptions.
6
Exercice d’application
• Notre système est principalement
composé d'un bouton connecté à la
pin spéciale RA4 et d'une led
connectée à RA0.
• Ecrire un programme en C permet
de compter 4 appuis sur la pin RA4
avec le timer en mode compteur
comme source d'interruption,
• Le signal d'interruption permet de
changer l'état de la led RA0 pendant
2s.

7
Exemple de mesure de temps
Début
Fonction Interruption
interrupt()
CONFIGURARTION
led: sortie Début
activer interruption TIMER
Initialiser TMR0 Inverser l’état de la led
Pendant 2s
Initialiser TMR0

INITIALISATION
Remettre le FLAG à 0
led éteinte

Vous aimerez peut-être aussi