5.6. Les instructions du 16F876/877
Tous les PICs Mid-Range ont un jeu de 35 instructions. Chaque
instruction est codée sur un mot de 14 bits qui contient le code
opération (CO) ainsi que l'opérande. Toutes les instructions sont
exécutées en un cycle d'horloge, à part les instructions
de saut qui sont
exécutées en 2 cycles d'horloge. Sachant que
l'horloge système est égale à fosc/4, si on utilise un
quartz de 4MHz, on obtient une horloge fosc/4 = 1000000 cycles/seconde, cela
nous donne une puissance de l'ordre de 1MIPS (1 Million d' Instructions Par
Seconde). Avec un quartz de 20MHz, on obtient une vitesse de traitement de 5
MIPS [10].
a) Les instructions « orientées
Registre»
Ce sont des instructions qui manipulent un octet se trouvant
dans la RAM. Ça peut être un registre de configuration SFR ou une
case mémoire quelconque (Registre GPR)
b) Les instructions « orientées bits
»
Ce sont des instructions destinées à manipuler
directement un bit d'un registre que ce soit un registre de configuration SFR
ou une case mémoire quelconque (registre GPR). Tous les bits de la RAM
peuvent être manipulés individuellement.
c) Les instructions opérant sur une
constante
Ce sont les instructions entre l'accumulateur W est une
constante K
d) Les instructions de saut et appel de
procédures
Ce sont les instructions qui permettent de sauter à une
autre position dans le programme et de continuer l'exécution du
programme à partir de cette position.
5.7 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 principal
à l'endroit où il l'a laissé. A chaque interruption sont
associés deux bits, un bit de validation et un drapeau. Le premier
permet d'autoriser ou non l'interruption, le second permet au programmeur de
savoir de quelle interruption il s'agit [10].
Sur le 16F876/877, l'es interruptions sont classées en
deux catégories, les interruptions primaires et les interruptions
périphériques. Elles sont gérées par les
registres.
Le microcontrôleur dispose de plusieurs sources
d'interruptions.
· Une interruption externe, action sur la broche
INT/RB0.
· Débordement du TIMER0.
· Changement d'état logique sur une des broches du
PORTB (RB4 à RB7).
· Une interruption d'un des périphériques
(PEIE).
· Fin de programmation d'une case mémoire de
l'EEPROM.
·
Chapitre 2
Les microcontrôleurs
26
Changement d'état sur le PORTD
(PSPIE).
· Fin de conversion analogique numérique
(ADIE).
· Réception d'une information sur la liaison
série (RCIE).
· Fin d'émission d'une information sur la liaison
série (TXIE).
· Interruption SPI ou I2C
du module MSSP (SSPIE).
· Interruption du registre de capture et/ou de comparaison
1 (CCPI1E).
· Interruption du registre de capture et/ou de comparaison
2 (CCPI2E).
· Débordement du TIMER1
(TMR1E).
· Débordement du TIMER2
(TMR2E).
· Collision de BUS (BCLIE)
? Mécanisme générale d'une
interruption :
Nous pouvons dire, sans nous tromper de beaucoup, qu'une routine
d'interruption est un sous-programme particulier, déclenché par
l'apparition d'un événement spécifique. Cela a l'air un
peu ardu, mais vous allez voir que c'est très simple.
Figure 2.17 : synoptique des modes
d'interruptions
|