Académique Documents
Professionnel Documents
Culture Documents
com 1/7
Rappel :
Toujours 2 cycles
Une boucle simple de temporisation est basée sur l''initialisation d’une variable à une
valeur donnée et ensuite la décrémenter (ou l’incrémenter) en boucle jusqu'à ce qu'elle
atteigne 0. Connaissant le temps d'exécution de chaque instruction, on peut calculer le
temps de la boucle.
Exemple 1
Sous-programme :
movwf X
boucle decfsz X,f
Le nombre de cycles est : 3N - 1
goto boucle
Le tableau suivant énumère les instructions exécutées.
Tb = 3 x (N – 1) + 2 = 3 x N -1
La valeur max que l'on peut donner à N est : 0 ≡ 256, ce qui donne
Avec un quartz = fosc = 4 Mhz, 1 cycle = fosc/4 = 1 μs, ce qui donne une
temporisation max : T = 1 + 1 + 3 x 256 - 1 = 769 cycles = 769μs.
Exemple 2
movwf X
boucle nop
M x N ici M = 1 + 1 = 2 (2 x nop)
nop
decfsz X,f
3N - 1
goto boucle
Nombre de cycles : T = 1 + 1 + M x N + (1 + 2) x (N – 1) + 2
T = 1 + 1 + M x N + 3 x N – 1 = 1 + (M + 3) x N
N. ROUSSAFI electroussafi.ueuo.com Boucles de délai
electroussafi.ueuo.com 3/7
Exercice 1
1) COUNT = 10
2) Décrémenter COUNT de 1 (COUNT = COUNT -1)
3) Si : COUNT = 0 ?
Alors : retour de sous-programme
Sinon : aller à 2
Exercice 2
1) CNT2 = 10
2) CNT1 = 0
3) Pas d’opération
4) Décrémenter CNT1 de 1 (CNT1 = CNT1 -1)
5) Si CNT1 = 0 ?
Alors : décrémenter CNT2
Sinon : aller à 3
6) Test CNT1 = 0 ?
Alors : retour de sous-programme
Sinon : aller à 2
Exercice 3
Exercice 4
On désire faire clignoter la led (allumer la led et éteindre la led d’une façon continue).
1) Allumer la led
2) Attendre (wait) (utiliser le sous-programme de l’exercice 3)
3) Eteindre la led
4) Attendre (wait)
5) Aller à 1
1. Donner l’organigramme
2. Ecrire un programme en assembleur
3. Ecrire un programme en mikroC
Exercice 5
1. Donner l’organigramme
2. Ecrire un programme en assembleur
3. Ecrire un programme en mikroC
Exercice 6
1) PORTB = 0
2) Attendre (wait) (utiliser le sous-programme de l’exercice 3)
3) Incrémenter PORTB
4) Aller à 2
1. Donner l’organigramme
2. Ecrire un programme en assembleur
3. Ecrire un programme en mikroC