UNIVERSITE IBN ZOHR Année Universitaire
ECOLE SUPERIEURE DE TECHNOLOGIES 2024-2025
D'AGADIR
EESA-2
TP5 d'Informatique Industrielle
Chenillard commandé par Interruption sur RB0
I. Objectif du TP
La fiche de TP décrite ci-dessous a pour but de permettre à l'utilisateur, d'établir le schéma d'une application et la
simuler par le logiciel ISIS ensuite de programmer en C le PIC16F84A. L'application permet de simuler
l'allumage, à tours de rôle, d'une seule LED parmi celles reliées au Port B, grâce à l'interruption générée par le
bouton poussoir BP1 relié à la broche RB0 (voir schéma). Au départ aucune Led n'est allumée et dès la 1ère
interruption la Led reliée à RB7 s'allume puis l'interruption qui suit allume la Led reliée à RB6, …, jusqu'à RB0
et le cycle se répète. Le sous-programme d'interruption se charge d'allumer les Leds une après l'autre en
effectuant un décalage à droite du Port B, (voir les organigrammes).
II. Travail à faire
1- Créer votre dossier de travail dans le bureau.
2- Lancer le logiciel Isis de PROTEUS, réaliser et compléter le schéma donné ci-dessous. Les terminaux : Masse (Ground)
et Vcc (Power) sont accessibles via la barre d'outils .
3- Enregistrer votre schéma dans votre dossier de travail.
4- Lancer MikroC PRO for PIC, puis créer un nouveau projet dans votre dossier (Processeur 16F84A, Quartz 4 MHz).
5- Compiler le programme afin de générer le fichier [Link].
6- Embarquer dans le microcontrôleur du schéma le fichier [Link], tester enfin l'application en la simulant par ISIS.
7- Dans votre compte rendu, expliquer les différentes étapes et procédure en donnant une conclusion.
III. Schéma du circuit de commande de Leds par l'interruption RB0.
1
IV. Organigrammes associés à la commande de LEDs par l'interruption sur RB0
D
Début S-prg. Interruption
Configurer la broche RB0 du Port B en
entrée et les autres broches en sortie RAZ du Flag d'interruption
Configurer OPTION_REG : Oui
…………………. & ………………….. PORTB=0
Non PORTB=0x80
Configurer INTCON :
Activer les Interruptions générales & Décalage à droite
celle venant de la broche RB0 & d'un bit du PORTB
RAZ du Flag d'interruption
Oui
Eteindre LEDs PORTB=1
Attente Non PORTB=0x80
Attente infinie d'interruption
Fin Fin S-prg. Interruption
V. Squelette de programme en C associé à la commande de Leds par l'interruption sur RB0
/* TP5_InterRB0.c sous MikroC PRO for PIC ************************************************************
Programme utilisant un sous-programme associé à l'interruption RB0 du PIC16F84A.
Ce programme assure l'allumage, par l'état 1, d'une seule Led à tour de rôle parmi les 7 reliées à RB7, RB6, …, RB1.
Le passage de l'allumage de la Led (RB7) à la Led suivante (RB6), …, est déclenché par une interruption venant de RB0
provoquant le décalage du port B.
Oscillateur : XT, 4 MHz.
***************************************************************************************************/
/***************************************************************************************************
Sous-Programme d'interruption
***************************************************************************************************/
void Interrupt ()
{
……………………………………………….
……………………………………………….
……………………………………………….
……………………………………………….
}
/***************************************************************************************************
Programme Principal
***************************************************************************************************/
void main ()
{ // Bits de OPTION_REG : RBPU - INTEDG - T0CS - T0SE - PSA - PS2 - PS1 - PS0
// Bits de INTCON : GIE - REIE - T0IE - INTE - RBIE - T0IF – INTF - R0IF
……………………………………………….
……………………………………………….
……………………………………………….
……………………………………………….
……………………………………………….
……………………………………………….
……………………………………………….