0% ont trouvé ce document utile (0 vote)
66 vues1 page

Timer en Mode 1

Le document décrit le fonctionnement du timer0 en mode 1 sur un microcontrôleur. Le timer0 utilise deux registres de 8 bits (TH0 et TL0) pour compter de 0 à 65536 en incrémentant à chaque microseconde. Le débordement du compteur se produit après exactement 216 microsecondes, soit 1/16 de seconde.

Transféré par

Assia Benabid
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)
66 vues1 page

Timer en Mode 1

Le document décrit le fonctionnement du timer0 en mode 1 sur un microcontrôleur. Le timer0 utilise deux registres de 8 bits (TH0 et TL0) pour compter de 0 à 65536 en incrémentant à chaque microseconde. Le débordement du compteur se produit après exactement 216 microsecondes, soit 1/16 de seconde.

Transféré par

Assia Benabid
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

Timer en mode 1

Le timer choisi (timer0 ou timer1) utilise un compteur de 16 bits pour le comptage. Ce compteur de
16 bits est en fait constitué de 2 registres SFR de 8bits chacun.

Pour le timer0, ces 2 registres sont TH0 et TL0. Pour le timer1, ces 2 registres sont TH1 et TL1.

Supposons qu’on utilise par exemple le timer0. Une fois que TMOD est chargé par la valeur 01h, pour
lancer le comptage, il faut mettre à 1 le bit TR0 du registre TCON . Le timer0 commence alors le
comptage : le compteur de 16 bits constitué des 2 registres TH0 et TL0 (initialement à 0) va alors
s’incrémenter à la fréquence du CPU divisée par 12 (si on a choisit C/T = 0). Si la fréquence du CPU
est de 12Mhz par exemple, alors le compteur 16bits va s’incrémenter toutes les 1µs.

TH0 TL0

00000000 00000000

00000000 00000001

00000000 00000010

00000000 00000011 Débordement du timer : TF0 sera mis automatiquement à 1

- -
- -
- -

11111111 11111111

Ainsi, si le timer0 commence à compter à partir de 0, il débordera après exactement 216 µs.

216 µs = 65536 µs

La fraction de seconde la plus proche de 216 µs c’est 1/16 seconde.

En effet, 1/16 seconde =( 106 /16) µs = 62500 µs

Si on veut que le timer0 déborde après exactement 1/16 seconde, il faut donc, avant de lancer le
comptage, initialiser au départ TH0 et TL0 par la valeur que l’on va calculer :

216 - (106 /16 )= 65536 – 62500 = 3036 = (0BDC)16

On doit donc initialiser TH0 par la valeur 0Bh et TL0 par la valeur DCh si on veut que le timer0
déborde après exactement 1/16 seconde.

Ainsi, si on veut réaliser une temporisation de 1 seconde, il suffit de faire déborder 16 fois le timer0.

Si on veut réaliser une temporisation de N secondes, il suffit de faire déborder N × 16 fois le timer0.

Vous aimerez peut-être aussi