Vous êtes sur la page 1sur 7

Cours : GE Niveau 3ème année sciences techniques

Chapitre A4 : LOGIQUE PROGRAMMÉ


Leçon A4-4 : Le Timer TMR0 des Pic(s)

A-Mise en situation:
Exemple:

H = 0,5Hz

Pour un cycle de comptage complet déduire :


1- Le nombre d’impulsions d’horloge : N = …………
2- La durée d’un cycle : T = ……………………………

Le compteur

Fonction :……………………………………. Fonction :…………………………………….

B-Étude du TMR0 :
1-Définition: Le timer TMR0 est un module intégré dans les microcontrôleurs de type PIC. Il
assure la fonction d’un compteur (d’événement ou du temps) à 8 bits qui peut être chargé
avec une valeur initiale quelconque. Il s’incrémente à chaque front d’horloge (interne ou
externe) jusqu’à ce que le débordement (passage de FF à 00) ait lieu (TOIF = 1 ).

2-Différents modes de fonctionnement :


Le TMR0 assure deux fonctions :
 Temporisateur ou contrôle du temps : son entrée d’incrémentation est alors l’horloge qui
correspond au cycle instruction (FOSC/4 ).
 Compteur d’évenements : dans ce cas les impulsions d’entrée du TMR0 sont fournies par
la broche RA4/T0CK1
3-Configuration du TMR0 : Le choix du mode de fonctionnement se fait par programmation
du registre OPTION_REG.

1/7
RBPU:Mode Pull up Ce bit est utilisé sauf si le PortB est configuré en entrée (trisB:=$FF)
 RBPU=1:Le mode est désactivé (PortB fonctionne avec la logique positive:1)
 RBPU=0:Le mode est activé (PortB fonctionne avec la logique négative:0)
 INTEDG:Choisir le type du front de RBO/INT pour provoquer une interruption
 INTEDG=1:Front montant sur RB0
 INTEDG=0:Front descendant sur RB0
 TOCS:Choisir la source d’horloge du TMR0 (ou le mode de fonctionnement)
 TOCS=1:L’horloge externe (RA4) « mode compteur »
 TOCS=0:L’horloge interne « mode temporisateur »
 TOSE:Choisir le type du front de RA4 en mode compteur
 TOSE=1:Le TMR0 s’incrémente à chaque front descendant sur RA4
 TOSE=0:Le TMR0 s’incrémente à chaque front monta nt sur RA4
 PSA:Affecter le Pré-diviseur
 PSA=1:Le pré-diviseur est affecté au watchdog
 PSA=0:Le pré-diviseur est affecté au TMR0
 PS2, PS1 et PS0:Choisir le pré-diviseur selon le tableau suivant

C-Mise en oeuvre du TMR0 :


1-Mode compteur :
Exemple1:
On désire rélaiser un compteur modulo M=256 à l’aide du TMRO son incrémentation est
assuré par la source d’horloge externe RA4/T0CK1, sensible à chaque front montant.

RPBU INTEDG T0CS T0SE PSA PS2 PS1 PS0


X X
Option_Reg
=D’..................’

=B’...................’

=H’..................’

TrisA=D’.........................’ TrisA=B’.........................’ TrisA=H’.........................’

2/7
TrisB=D’.........................’ TrisB=B’.........................’ TrisB=H’.........................’

*Compléter le programme ci-dessous.


A l’aide de l’éditeur graphique Logipic.
*Etablir l’organigramme décrivant le fonctionn-
ement d’un compteur modulo 256.
*Compiler
*Réaliser le schéma sur ISIS.
*Simuler le fonctionnement.

Exemple2:
On désire rélaiser un compteur modulo M=32 à l’aide du TMRO son incrémentation est assuré
par la source d’horloge externe RA4/T0CK1, sensible à chaque front descendant.

RPBU INTEDG T0CS T0SE PSA PS2 PS1 PS0


X X
Option_Reg
=D’..................’

=B’...................’

=H’..................’

TrisA=D’.........................’ TrisA=B’.........................’ TrisA=H’.........................’

3/7
TrisB=D’.........................’ TrisB=B’.........................’ TrisB=H’.........................’
*Compléter le programme ci-dessous.

A l’aide de l’éditeur graphique Logipic.


*Etablir l’organigramme décrivant le fonctionn-
ement d’un compteur modulo 32.
*Compiler
*Réaliser le schéma sur ISIS.
*Simuler le fonctionnement.

4/7
Exemple3:
On désire rélaiser un compteur modulo M=300 à l’aide du TMRO son incrémentation est
assuré par la source d’horloge externe RA4/T0CK1, sensible à chaque ………. fronts
montants.
RPBU INTEDG T0CS T0SE PSA PS2 PS1 PS0
X X
Option_Reg
=D’..................’

=B’...................’

=H’..................’

TrisA=D’.........................’ TrisA=B’.........................’ TrisA=H’.........................’

TrisB=D’.........................’ TrisB=B’.........................’ TrisB=H’.........................’

*Compléter le programme ci-dessous.

5/7
A l’aide de l’éditeur graphique Logipic.
*Etablir l’organigramme décrivant le fonctionn-
ement d’un compteur modulo300.
*Compiler
*Réaliser le schéma sur ISIS.
*Simuler le fonctionnement.

2-Mode temporisateur :
Exemple:
On désire clignoter une lED, branchée sur RB0 du 16F84A, avec une fréquence de 1Hz
Sachant que la fréquence du quartz est 4Mhz

RPBU INTEDG T0CS T0SE PSA PS2 PS1 PS0


X X
Option_Reg
=D’..................’

=B’...................’

=H’..................’

TrisB=D’.........................’ TrisB=B’.........................’ TrisB=H’.........................’

Solution:

F = 1Hz  T = 1s  Ton = Toff = Th = …….


1- Calcul de n : Posons P = ………. et N0 = ……

Th = 4.P.(256 - N0).n / Fosc = ………………………………………………..

= …………………………… (en s) Th = 65536.n  n = 500000 / 65536 = ….. Soit n …………..


(par majoration)
2- Calcul de N0 Th = 4.P.(256 - N0).n / Fosc  N0 = 256 - (Th. Fosc / 4.P.n) =
……………………………………………… Soit N 0 …………… (par majoration)
3- Vérification : Th = 4.P.(256 - N0).n / Fosc = ………………………………………………
= ……………………………………..………..

6/7
16 17
A l’aide de l’éditeur graphique Logipic. 15
OSC1/CLKIN
OSC2/CLKOUT
RA0
RA1
18
1
*Etablir l’organigramme décrivant le 4
RA2
2
MCLR RA3
fonctionnement du LED clignotante. RA4/T0CKI
3

*Compiler RB0/INT
6
7
*Réaliser le schéma sur ISIS. RB1
RB2
8

*Simuler le fonctionnement. RB3


9 LED
10
RB4
11
RB5
12
RB6
13
RB7
R1
PIC16F84A 100R

7/7

Vous aimerez peut-être aussi