Le PIC16F84 Exemples
◘
1
Le chien de garde
Le chien de garde (Watc dog) est un dispositif matériel et logiciel qui permet de se prémunir
contre les plantages accidentels ou le microprocesseur s’arrête ou exécute n’importe quoi. L’idée est
de provoquer un RESET du CPU si le programme de tourne pas normalement. Une solution
matérielle simple peut être assurée par le circuit représenté sur la figure suivante.
Le programme envoie périodiquement une impulsion positive brève sur l’entrée du circuit
(Port X de la figure ) , le transistor T décharge le condensateur C et la tension de sortie est haute ce
qui permet le fonctionnement normal du CPU.La Cte de temps RC doit être supérieure à la durée
entre chaque top. Si le CPU ‘ se plante ‘ les impulsions n’arrivent plus et le condensateur C , via R
se recharge à +5V, la tension de sortie s’annule ce qui provoque un RESET du microprocesseur .
Le PIC16F84 est muni d’un circuit interne qui assure cette fonction sans qu’il soit besoin de
composants extérieurs. Ce système appelé chien de garde (Watch Dog) doit être activé au niveau
des fusibles accessibles seulement à la programmation du circuit. ( Fusible WDT) , il utilise le timer
interne qui par conséquent ne peut plus dans ce cas être utilisé pour une autre tâche. Lorsque le
registre TMR0 atteint 255 un
RESET est appliqué, il faut
donc éviter qu’il atteigne jamais
cette valeur en le mettant à
zéro périodiquement par le
programme. Cette remise à
zéro est effectuée par
l’instruction CLRWDT
.L’intervalle de temps entre
deux RAZ doit être inférieure à
18mS , il est possible de
l’augmenter en mettant en
œuvre le prédiviseur grâce au
commutateur PSA de STATUS. ( durée choisie par PS2-PS1-PS0 voir tableau dans le chapitre
précédent )
Le WD ne doit jamais être activé (fusible WDT) avant que la mise au point du programme ne
soit achevée.
+5
Port X
T
R
RC=100mS
100nF
10k
39k 100nF
1M
C
MCLR
Reset CPU