Vous êtes sur la page 1sur 7

Lycée Secondaire : Chapitre A3 : LES MICROCTROLEURS

EJRISSA.KEF Leçon 3 : NOTIONS D’INTERRUPTIONS


Laboratoire :
Génie électrique
Matière : Technologie
Professeur : Messek Haythem Classe : 3ème Génie électrique Durée : 4 heures Année scolaire : 2017/2018
Objectifs :
* Identifier la nécessité d’une interruption.
* Identifier les types d’interruption
* Identifier les paramètres de registre de configuration
* Mettre en œuvre une interruption
I- MISE EN SITUATION:
1- PROBLEME POSE: Téléphone portatif
a- Présentation
Un enfant est occupé par un jeu sur son téléphone portable. Soudain un appel de sa mère retentit et apparait
sur l’écran. L’enfant doit répondre à l’appel de sa mère sans pour autant perdre la suite de son jeu et améliorer
son score.

Répondre à Reprendre

L’appel Le jeu

Donc le fonctionnement du téléphone portable a permis à l’enfant de répondre à l’appel de sa mère et de


poursuivre son jeu juste après la communication.
D’après vous quelles options à permettent à l’enfant la possibilité de réaliser cette tâche.
………………………………………………………………………………………………………………
b- Constations :
Cet exemple fait apparaître la nécessité d’un autre programme (sous programme) qui permet d’interrompre
momentanément (instantanément) le déroulement d’un programme principal (le jeu) pour exécuter un autre
programme (la réponse à l’appel de la mère) à la fin duquel le programme principal reprend son exécution à
l’endroit où il a été interrompu.
c- Conclusion :
La solution de ce problème fait appel à l’interruption

- Qu’est-ce que une interruption ? et comment utiliser une interruption ?


- Quelles sont les types interruptions ? Comment configurer une interruption ?
- Comment mettre en œuvre une interruption ?

LES MICROCONTROLEURS Page 1


2- APPLICATION : Tableau d’affectation
 Cahier des charges : Entrées Sorties
Sur le tableau de bord d’un système technique la Système µC Système µC
signalisation de la marche en mode normal est assurée
par le clignotement d’une lampe verte à une période de Réarmement RB1 Lampe vert RA0
1 seconde. ………………… …..… Lampe rouge RA1
Lors de l’apparition d’un défaut, une lampe rouge
s’allume.
Une fois le défaut supprimé, un bouton de réarmement permet de reprendre le cycle normal.
 Travail demandé :
1- Compléter l’organigramme de programme principale « clignotement de la lampe verte » ci-dessous et
sur FLOWCODE (à base de PIC 16F84a)
2- Intercaler l’icône interruption dans le programme principale
3- Simuler le fonctionnement sur FLOWCODE.
N.B : Enregistrer le travail sur (Bureau/3T1/groupe…/tableau de bord),
Réponse :
1-

LES MICROCONTROLEURS Page 2


2-
1 Insérer l’icône
interruption Double clique BG sur interruption il apparait
2
l’icône « Propriétés : Interruption » pour activer
l’interruption sur RB0/INT

4 Nommé « Macro Appelée » par Taper OK ,


s’affiche

5 La l’interruption est active sur 7


la broche RB0/INT, s’affiche
Compléter le sous programme
9
Interruption (voir page suivante)

Double clique BG puis sur , une nouvelle


fenêtre s’ouvre qui porte le nom « RB0INT »
(fenêtre de sous programme interruption

LES MICROCONTROLEURS Page 3


10 Modification de paramètre de boucle

Cliquer sur

3- Simulation sur flowcode :

II- INTERRUPTION :
1- DEFINITION :
Une interruption est un événement qui provoque l’arrêt d’un programme en cours d’exécution pour aller
exécuter un autre programme appelé programme (ou routine) d’interruption.
A la fin du programme d’interruption, le microcontrôleur reprend le programme principal à l’endroit où il s’est
arrêté.
LES MICROCONTROLEURS Page 4
2- DEROULEMENT D’UNE INTERRUPTION
Le programme se déroule normalement. Lorsqu’une interruption survient, le programme exécute les taches
suivantes: Programme Routine
 Termine l’instruction en cours de traitement ; principal interruption
 Saute à l’adresse de la routine d’interruption;
Instruction Traiter
 Traite l’interruption; quelconque
 Revient à l’instruction qui suit immédiatement la l’interruption
dernière instruction exécutée. Événement Instruction xxx Fin de

3- SOURCES ET TYPES D’INTERRUPTION : Objectif :


l’interruption
déclencheur
a- Sources d’interruption Instruction suivante
Le nombre de sources d’interruptions dépend du microcontrôleur utilisé.
Application : compléter le tableau suivant : ( Voir manuel de cours page 178)
Microcontrôleur 16F84A 16F628A 16F88 16F876A 16F877A
Sources d’interruptions 10 12 14 15

b- Différents types d’interruption :


On distingue deux types d’interruption :
 Les interruptions externes : qui sont déclenchées lorsqu’un événement extérieur se produit tels que
le changement d’état d’une entrée destinée à l’interruption.
Exemple : pour le PIC 16F84a

 la broche RB0/int du port B (interruption RB0/INT)


 Entrée RB4 à RB7 du port B (interruption RBI)
 Les interruptions internes : qui sont déclenchées par le déroulement du programme tel que le
résultat d’un calcul ou le débordement d’un Timer.
Exemple : pour le PIC 16F84a
 Fin d’écriture dans l’EEPROM (interruption EEI)
 Débordement du Timer TMR0 (interruption TOI)
Remarque : pour plus d’information voir manuels de cours page 185.
III. REGISTRE DE CONFIGURATION DES INTERRUPTIONS (INTCON) :
1- INTRODUCTION :
Un registre est une zone mémoire, accessible par adressage, réservé pour recevoir des informations faisant
l'objet d'une opération ainsi que le résultat de ces traitements.
Exemple de registre de configuration : Trisa, Trisb, intcon,……..
La broche : RB0/INT peut être configuré comme :
- Entrée ou bien sortie (notation RB0), dans ce cas le registre de configuration est le TRISB
- Source d’interruption (notation INT), dans ce cas le registre de configuration est l’INTCON (à condition
que cette broche soit une entrée)
2- DEFINITION :
Le registre de configuration des interruptions est en lecture et écriture. Il permet de configurer les différentes
sources d’interruption
Exemple : Registre INTCON pour PIC16F84a
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
GIE PEIE TOIE INTE RBIE TOIF INTF RBIF
Au “Reset” : INTCON = 0000000X
Bit 7 : GIE = Autorise/interdit toutes les interruptions (INT, PORTB, TMR0, EEPROM).
Bit 6 : EEIE = Autorise/interdit l'interruption causée par la fin d'écriture en EEPROM.
Bit 5 : TOIE = Autorise/interdit les interruptions du Timer TMR0.

LES MICROCONTROLEURS Page 5


Bit 4 : INTE =Autorise/interdit les interruptions sur la broche : RB0
Bit 3 : RBIE = Autorise/interdit les interruptions par changement d'état du Port B (RB4 à RB7).
Bit 2 : TOIF = Ce bit est un indicateur ou drapeau (Flag); il est mis à 1 si une interruption est générée par le
débordement du TMR0.
1 = Le Timer à débordé.
0 = Le Timer n’a pas débordé.
Ce drapeau doit être remis à zéro par le programme de traitement de l’interruption
Bit 1 : INTF = signaler la présence d’une impulsion sur la broche INT
1 = Une interruption sur la broche RB0 est survenue.
0 = Pas d’interruption sur la broche RB0.
Ce drapeau doit être remis à zéro par le programme de traitement de l’interruption
Bit 0 : RBIF =Ce flag doit être remis à zéro par programme. Ceci n'est possible qu'après une lecture du Port B.
1 = Quand au moins une entrée du port B (de PB4 à PB7) a changé d'état.
0 = Aucune entrée de PB4 à PB7 n'a changé d'état.

Remarque : Au cours de cette leçon on s’intéressera seulement à l’interruption externe sur


la broche RB0/INT, (bit7, bit4, bit1 de registre INTCON)
Registre Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
INTCON GIE PEIE TOIE INTE RBIE TOIF INTF RBIF
Exemple d’interruption externe: (INT/RB0)
L’interruption se produit sur le front montant ou descendant d’une impulsion appliquée sur l’entrée RB0
Indiquer l’état logique de Bit 7, 4, et 1 de registre INTCON dans le deux cas suivants :
- Autoriser L’interruption :
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
GIE PEIE TOIE INTE RBIE TOIF INTF RBIF INTCON=………….…

- Lorsque l’interruption a eu lieu :


Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
GIE PEIE TOIE INTE RBIE TOIF INTF RBIF INTCON=………….…
0 0 0 0 0

A
IV. Evaluation :
APPLICATION : Commande d’un moteur pas à pas 1
 Cahier des charges : D N
4 S 2 B
On désire commander un le moteur pas à pas unipolaire d’une imprimante jet 3
d’encre décrivant le cycle suivant :
C
Broche µC RA3 RA2 RA1 RA0
Phase D C B A Port A en décimal
Pas 1 0 0 0 1 1
Pas 2 0 0 1 0 2
Pas 3 0 1 0 0 4
Pas 4 1 0 0 0 8
L’épuisement du papier détecté par le capteur p déclenche le cycle suivant :
- Le clignotement d’une lampe jaune (sur la broche RB1) indiquant la nécessité du chargement des
papiers. Le clignotement disparait une fois le papier est chargé.
- Puis reprise de cycle moteur
 Travail demandé :
1- Compléter l’organigramme de programme principale ci-dessous et sur FLOWCODE (à base de PIC
16F628a)
2- Compléter le sous programme d’interruption externe
3- Simuler le fonctionnement sur ISIS

LES MICROCONTROLEURS Page 6


N.B : Enregistrer le travail sur (Bureau/3T1/groupe…/moteur pas à pas),

LES MICROCONTROLEURS Page 7