Académique Documents
Professionnel Documents
Culture Documents
Les Interruptions
Les Interruptions
du 68HC11
Les interruptions sont des événements qui provoquent l’arrêt d’un programme en
cours de traitement et le passage à un autre programme.
Les domaines d’utilisation d’un processus d’interruption sont assez vastes, nous
retiendrons par exemple les interruptions de programme (instruction ou adresse
incorrecte, division par zéro…) ; les interruptions d’entrée-sortie (besoin d’échange
d’informations entre le micro et les périphériques (clavier, écran de visualisation,
capteurs…).
1
NOTION DE PILE
2
STRUCTURE DE LA PILE :
Une pile est donc une zone mémoire utilisée pour stocker temporairement une ou
plusieurs informations. Elle est quelquefois appelée LIFO (Last In, First Out ). Cette
appellation est justifiée par le fait que le dernier événement stocké dans la pile sera le
premier ressortie.
3
RÉALISATION D’UNE PILE
Deux techniques sont utilisées pur réaliser une pile : la pile en matériel ou la pile en logiciel.
Le pile en matériel :
Est constituer par un ensemble de registres internes au micro. L’avantage est bien sûr une grande
rapidité dans l’utilisation des ces registre, le désavantage ets leur capacité limitée.
La pile dite programmée :
Elle consiste simplement en une zone réservée dans la mémoire vive du système la position de
cette pile dans la mémoire est choisie par le programmeur. Pour définir l’adresse de la pile, il
existe à l’intérieur du micro un compteur spécial appelé pointeur de pile (stack pointer : SP).
dans tout programme utilisant la pile, ou prévoyant une interruption, il faut commencer par
initialiser le pointeur de pile : indiquer l’adresse du sommet de la pile. Lors d’une opération de
chargement, il y a transfert du données vers la pile puis décrémentation de SP ( il se déplace
4
vers les adresses décroissantes).
DIFFÉRENTS TYPES D’INTERRUPTION :
Interruptions prioritaires :
Il existe dans certains micro, une entrée d’interruption prioritaire. Dés qu’une
demande d’interruption est faite sur cette borne, l’unité de commande termine
d’exécuter son instruction en cours, puis automatiquement transfert dans la pile les
information à sauvegarder.
5
INTERRUPTION MASQUABLE PAR
PROGRAMME :
Tous les micro possèdent une entrée d’interruption masquable. Cette interruption
n’aura lieu que si une bascule interne au micro, positionnable par des instructions.
Cette bascule porte le nom de masque d’interruption et peut se trouver dans le
registre d’état ou indépendant de ce registre.
6
INTERRUPTION LOGICIELLE :
Parmi les instructions dont sont dotées les microprocesseurs, certaines d’entre elles
provoquent une interruption. Ces instructions par programme sont, en général, non
masquables. Le retour au programme initial s’effectue par l’instruction RTI.
7
INTERRUPTIONS VECTORISÉES :
8
PROPRIÉTÉS DES INTERRUPTIONS :
9
MODE DE TRANSFERT PAR INTERRUPTION
Une ligne spéciale dite d’interruption est mise en œuvre .le périphérique d’entrée/sortie
prendra l’initiative de demande de l’interruption. Le processeur doit alors accepter
l’interruption au bon moment, l’identifier puis la traiter.
Mémoires
Microprocesseur
INT
Interface d’E/S
C’est une ligne physique
existante
Demande d’interruption
Reprise du programme
Programme interrompu interrompu
Fin
Instruction STOP
Lorsqu’elle est autorisée (S=0) arr^rte l’horloge interne et par conséquent tout programme en
cours d’exécution
Si S=1, elle sera considérée comme une instruction de type NOP
Instruction WAI
Cette instruction lorsqu’elle est programmée sauvegarde en premier lieu les registres
internes du 68HC11 (A, B, X, Y, CCR) dans la pile puis elle se met en attente d’une
interruption de type IRQ, XIRQ ou une interruption interne.
VECTEURS des INTERRUPTIONS
Exemple : Initialisation de IRQ en mode BOOT:
ORG $FFF2
FDB ETIQ-SPIRQ
DIRECTIVES ASSEMBLEUR
ORG : Fixe l'origine des adresses pour l'assemblage.
Ex: ORG $B600
FCB : Réserve une adresse mémoire et l'initialise à une valeur.
Ex : ORG $xxxx
FCB $7E ;La valeur $7E sera écrite à l'adresse $xxxx
FDB : Réserve deux adresses (un mot ) et les initialise.
Ex : ORG $xxxx
FDB ETIQ ;La valeur de ETIQ est écrite à l'adresse $xxxx. Comme ETIQ est une
adresse sur 16 bits son MSB sera mis en $xxxx et son LSB en $xxxx + 1
FCC : Réserve plusieurs adresses et les initialise avec le code ASCII des caractères du texte.
Ex : ORG $xxxx
FCC "TEXTE’’ Le code ASCII de T sera mis à l'adresse $xxxx puis celle de E en
$xxxx +1
RMB : Réserve des adresses mémoires mais sans les initialiser à une valeur particulière.
Ex: ORG $xxxx
RMB $06 Les 6 cases mémoires à partir de l'adresse $xxxx sont réservées.
Exercice 2:
En utilisant les lignes d’interruptions IRQ et XIRQ, établir un programme qui incrémente le
contenu de l’adresse ($0600) à l’activation de la ligne IRQ et le décrémente à l’activation de
la ligne XIRQ.