PIC 16F84A
Le
mode SLEEP
1- Préambule
L'utilisation
du mode SLEEP (Power-down mode) n'a d'intérêt que dans les applications
alimentées par piles ou batteries.
En effet,
en mode SLEEP la consommation électrique du µC devient très
faible.
2- Mise en mode Sommeil
Le
µC est placé en mode SLEEP après une instruction SLEEP.
L'instruction
SLEEP provoque :
- La mise à 0 du bit /PD
du registre STATUS
- La
mise à 1 du bit /TO du registre STATUS
- L'inhibition
de l'horloge (broches OSC1/CLKIN et OSC2/CLKOUT) ce qui a pour conséquence
d'arrêter le programme (d'où une consommation d'énergie
électrique réduite)
- Le mise à
0 du timer du watchdog (chien de garde)
Attention
: le timer du watchdog continue de fonctionner pendant le mode SLEEP (si le watchdog
est actif).
3- Réveil (Power-up)
Le
µC se réveille, et reprend une activité normale, quand :
- Il
y a un RESET externe (niveau bas sur la broche /MCLR) : le programme est réinitialisé
(adresse H'0000' de la mémoire de programme).

- La
temporisation du watchdog est dépassée (si le watchdog est actif) : le programme
reprend à l'instruction qui suit l'instruction SLEEP.
- Une
interruption RB0/INT, RB ou EEPROM survient (si ces interruptions sont autorisées)
même quand le bit GIE (du
registre INTCON) est égal à 0
:
- si GIE = 0 : le programme reprend
à l'instruction qui suit l'instruction SLEEP
- si
GIE = 1 : l'instruction qui suit l'instruction SLEEP est exécutée
puis le programme saute à la routine d'interruption (adresse H'0004' de
la mémoire de programme)
Remarque
: l'interruption TMR0 ne peut pas réveiller le µC.