0% ont trouvé ce document utile (0 vote)
25 vues2 pages

TD 2 876-877

Le document présente un TD sur le microcontrôleur PIC16F877, abordant des questions sur la durée d'instruction, des sous-routines de temporisation et l'utilisation de la fonction _delay en langage C. Il demande de calculer des temporisations précises en fonction de différentes fréquences d'horloge et d'évaluer le nombre de cycles machine exécutés. Les exercices incluent des calculs pour des temporisations de 50µs et 100µs ainsi que la création d'une fonction de temporisation de 10 millisecondes.

Transféré par

anaslaaroussi666
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)
25 vues2 pages

TD 2 876-877

Le document présente un TD sur le microcontrôleur PIC16F877, abordant des questions sur la durée d'instruction, des sous-routines de temporisation et l'utilisation de la fonction _delay en langage C. Il demande de calculer des temporisations précises en fonction de différentes fréquences d'horloge et d'évaluer le nombre de cycles machine exécutés. Les exercices incluent des calculs pour des temporisations de 50µs et 100µs ainsi que la création d'une fonction de temporisation de 10 millisecondes.

Transféré par

anaslaaroussi666
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

UNIVERSITE HASSAN II

ECOLE SUPERIEURE DE TECHNOLOGIE DEPARTEMENT : GE


- CASABLANCA - GEII /GET/RLI

TD n° 2

I- Quelle est la durée d’une instruction (avec saut) sur un PIC16F876 ( ou16F877) cadencé
avec un quartz à la fréquence :
a) 4MHz
b) 8MHz
c) 12MHz
d) 20MHz

II- On considère la sous routine de temporisation décrite par le programme suivant :

Tempo_nµs

movlw d ’n’ ; n compris entre 0 et 255

movwf vartempo

boucle1

decfsz vartempo , 1

goto boucle1

return

1°) Déterminer en fonction du paramètre n le nombre de cycles machine exécutés à la sortie de la


routine (On prendra en considération l’instruction d’appel call et l’instruction de retour return).

2°) Quelle est la durée totale de cette routine pour les 4 fréquences du quartz citées précédemment .

3°) Comment doit-on prendre la valeur de n et ajouter éventuellement des instructions nop pour avoir
exactement une temporisation de 50µs puis une temporisation de 100µs avec un quartz de 4Mhz.
– Quelles seraient les durées de ces 2 routines dans le cas d’une horloge cadencée à 8Mhz.

4°) Quelle est la durée approximative de la routine suivante ( Fosc = 4Mhz ):

Tempo2

MOVLW D'189'

MOVWF vartempo2

Boucle2 CALL tempo_50µs

DECFSZ vartempo2,1

GOTO boucle2

RETURN

- En déduire une routine qui fournit une temporisation de l’ordre d’une seconde.

TD Microcontrôleur PIC16F877 1 A. EL JOUNAIDI


UNIVERSITE HASSAN II
ECOLE SUPERIEURE DE TECHNOLOGIE DEPARTEMENT : GE
- CASABLANCA - GEII /GET/RLI

III-

En langage C ( compatible XC8) la fonction prédéfinie _delay (n) permet d’introduire une
temporisation d’une durée de n cycles machine. ( tn = n*Tcycle avec Tcycle = 4*Tosc = 4/Fosc )

1°) Quelle valeur doit-on affecter à n si on veut réaliser une temporisation de 100us dans les trois cas
suivants :

- Fosc = 4Mhz
- Fosc = 8Mhz
- Fosc = 20Mhz

2°) Comment peut-on réaliser une fonction de temporisation appelée delay_ms (m) qui introduit une
temporisation d’environ 10 millisecondes à partir de la fonction _delay(n) dans les 3 cas cités
précédemment.

TD Microcontrôleur PIC16F877 2 A. EL JOUNAIDI

Vous aimerez peut-être aussi