Projet à microcontrôleur PIC 16F88
Clignotant à LED ; mise en oeuvre de l'oscillateur interne
Ce circuit fait clignoter une LED à une fréquence de 1,91 Hz ou bien 7,63 Hz (suivant la position de l'interrupteur SW1).
Ce projet met en oeuvre l'oscillateur interne du PIC 16F88.
Schéma électrique avec un PIC 16F88 (18 broches) :
On utilise l'oscillateur interne du PIC 16F88 : on fait ainsi l'économie d'un quartz ou d'un circuit RC.
La base de temps du microcontrôleur PIC 16F88 est fixée par son registre OSCCON :
IRCF2 (bit 6 du registre OSCCON) |
IRCF1 (bit 5 du registre OSCCON) |
IRCF0 (bit 4 du registre OSCCON) |
Fréquence nominale f OSC |
0
|
0
|
0
|
31,25 kHz
|
0
|
0
|
1
|
125 kHz
|
0
|
1
|
0
|
250 kHz
|
0
|
1
|
1
|
500 kHz
|
1
|
0
|
0
|
1 MHz
|
1
|
0
|
1
|
2 MHz
|
1
|
1
|
0
|
4 MHz
|
1
|
1
|
1
|
8 MHz
|
Le registre OSCCON est configuré pour avoir f OSC = 1 MHz.
f OSC2 = f OSC / 4 = 250 kHz ou 250 000 cycles par seconde.
Le microcontrôleur utilise une source d'interruption : celle du module TMR0.
Le module TMR0 (8 bits) est configuré en mode timer.
L' interruption a donc lieu tous les 256*256 = 65 536 cycles (prescaler 1:256), ce qui correspond à 262 144 µs.
La routine d'interruption inverse le niveau logique de la sortie RA1 : la LED clignote donc avec une période de 524 288 µs (soit une fréquence nominale de 1,9073 Hz).
Le registre OSCCON est configuré pour avoir f OSC = 4 MHz.
La LED clignote 4 fois plus vite (7,629 Hz).
Le code source a été écrit en langage assembleur avec l'environnement de développement gratuit MPLAB IDE de Microchip.
(C) Fabrice Sincère ; Révision 1.0.4