Vous êtes sur la page 1sur 3

1/3 2 ème STE CHAINE D’INFORMATION : TRAITER AZNAG

Les interruptions :
Une interruption provoque l’arrêt du programme principal pour aller exécuter une procédure d'interruption.
A la fin de cette procédure, le microcontrôleur reprend le programme à l’endroit où il s’était arrêté. Le PIC16F84
possède 4 sources d'interruption. A chaque interruption sont associés deux bits: un bit de validation et un
drapeau(Flag). Le premier permet d'autoriser ou non l'interruption, le second permet au programmeur de
savoir de quelle interruption il s'agit. Tous ces bits sont dans le registre INTCON à part le drapeau EEIF de
l'interruption EEI qui se trouve dans le registre EECON1.
De plus, lorsqu'il y a une interruption, le processeur va à l'adresse 0004H.

INTCON(page0 et page1):
GIE EEIE T0IE INTE RBIE T0IF INTF RBIF
Au reset : INTCON = 0000000X
GIE : (Global Interrupt Enable) : autorisation global d’interruption.
1. L'interruption INT (Entrée RB0 du port B) :Cette interruption est provoquée par un
changement d'état sur l'entrée RB0 du port B quand elle est programmée en entrée.Les bits
associés sontINTE(validation),INTF (drapeau) et INTEDG (front de déclenchement voir
registre OPTION).
2. L'i nterruption RBI (RB4 à RB7 du port B) : Cette interruption est provoquée par un
changement d'état sur l'une des entréesRB4 à RB7 du port B, Le front n'a pas d'importance. Les
bits associés sont RBIE (validation) et RBIF (drapeau).
3. L'interruption T0I ( Débordement du Timer TMR0) : Cette interruption est provoquée par le
débordement du timer TMR0(FFH→ 00H). Les bits associés sont T0IE (validation) et T0IF
(drapeau).
4. L'interruption EEI ( Fin d'écriture dans l'EEPROM) :Cette interruption est déclenchée à la fin
d'une écriture réussie dans l'EEPROM. Les bits associés sont EEIE (validation) et EEIF
(drapeau)
Les flags doivent être remis à zéro par programme après interruption.

EEIE : (EEProm Interrupt Enable) .


EEIF: (EEProm Interrupt Flag) .
T0IE : (Timer0 Interrupt Enable) .
T0IF : (Timer 0 Interrupt Flag) .
INTE: ( Interrupt Enable) .
INTF : ( Interrupt Flag) .
RBIE: (RB Interrupt Enable) .
RBIF :( RB Interrupt Flag) .
Registre EECON1(page1) :

- - - EEIF WRERR WREN WR RD

Registre OPTION(page1) :

BBPU INTEDG T0CS T0SE PSA PS2 PS1 PS0


Au reset : OPTION = 11111111

INTEDG (Interrupt Edge) sélection du front actif de l’interruption sur RB0/INT (1 pour front montant
et 0 pour front descendant).
2/3 2 ème STE CHAINE D’INFORMATION : TRAITER AZNAG
EXERCICE 1: Déterminer ce que fait ce programme simple.

ORG H’0000’
GOTO debut

interp ORGH’0004’
BCF INTCON,INTF ; INTF ← 0
NOP ;Pas d’operation.
RETRIE ;Retour après interruption vers le programme
principal

debut BSF INTCON,GIE ; GIE ← 1 (démasque les interruptions).


BSF INTCON,INTE ; INTE ← 1 valider l’interruption INT (front
montant sur RB0).
attente GOTO attente ; Boucle infini en attente de l’interruption.
END ; Fin.

Correction:
Le programme principal autorise l’interruption INT et réalise une boucle ifini en attente d’un front
montant sur RB0 ( ↑).
Le sous programme d’interruption enlève le flag (INTF ← 0) et ne réalise aucune opération.

EXERCICE 2: Proposer un programme qui modifié l’état d’une LED branchée sur RA0 à chaque front
montant vu sur RB0. (Utilisation des interruptions).

Correction :

Algorigrammes :

Debut
Sous programme
d’interruption

Configurer RA0 en
sortie , RB0 en entrée et
autoriser l’interruption INTF ← 0
INT(RB0 ↑)

RA0 ← RA0
Attente de l’interruption

Retour

Fin
3/3 2 ème STE CHAINE D’INFORMATION : TRAITER AZNAG
Programme :

Etiquttes Instructions Commentaires


(Labels)

ORG H’0000’
GOTO debut
interp ORGH’0004’
BCF INTCON,INTF ; INTF ← 0
COM PORTA,f ;PORTA ← PORTA (complémenter RA0)
RETRIE ;Retour après interruption vers le programme
principal

debut BSF INTCON,GIE ; GIE ← 1 (démasque les interruptions).


BSF INTCON,INTE ; INTE ← 1 valider l’interruption INT (front
montant sur RB0)
BSF STATUS,RP0 ; PAGE1
CLRF TRISA ; configurer le PORTA en sortie
BSF TRISB,0 ; configurer le RB0 du PORTB en entrée
BCF STATUS,RP0 ; PAGE0
attente GOTO attente ; Boucle infini en attente de l’interruption
END ; Fin

Vous aimerez peut-être aussi