Académique Documents
Professionnel Documents
Culture Documents
TD / TP Microcontrôleur N°2
Réalisé par :
Les Boucles de retard et les
Dalia Fendri
Interruptions
Soulaimen Smaoui
Objectif :
Utilisation de temporisation avec boucle de retard (avantages et inconvenants).
Implémentation des interruptions
Sujet :
On désire réaliser un compteur décimal à deux chiffres (figure 1). Nous choisissons le port C pour
designer la valeur à afficher sur deux afficheurs 7 segments. Pour simplifier le montage nous utiliserons
des afficheurs DCB. L’incrémentation du nombre affiché est effectuée chaque cycle d’animation d’un
ensemble de 8 LED connectées au port D et qui forme une barre de progression. Le rythme de
l’animation est cadencé par des boucles de retard. Un bouton poussoir branché sur la broche RB0 est
envisagé pour la mise à zéro du compteur.
1
ENET’com Sfax AU 2016/2017
Travail demandé :
1- Donner un sous-programme en assembleur « Delay » qui permet de créer un retard de 500ms
sachant que l’horloge du PIC est de 1MHz.
2- Donner un sous-programme en assembleur qui permet d’animer l’allumage des diodes LED qui
sont branchées au port D. l’animation est une barre de progression qui allume les LED une par
une jusqu’à avoir toutes les LED allumer. Utiliser le sous-programme Delay pour ralentir
l’animation.
4- Donner une première version du programme principale qui teste l’état du bit RB0, s’il est égale
à 1 il réinitialise le compteur à 00 (reset du port C)
5- Simuler le programme avec le schéma fourni dans le fichier de projet ISIS « ResetCounter.dsn »
2
ENET’com Sfax AU 2016/2017
Solution :
#include "p16f877.inc"
; __config 0xFFFB
__CONFIG _FOSC_EXTRC & _WDTE_OFF & _PWRTE_OFF & _CP_OFF & _BOREN_ON & _LVP_ON &
_CPD_OFF & _WRT_ON
3
ENET’com Sfax AU 2016/2017
4
ENET’com Sfax AU 2016/2017
end