Projet à microcontrôleur PIC 16F84A / 16F628A
Horloge à quartz
Il s'agit d'une horloge à quartz parfaitement classique, avec un bouton poussoir qui règle les minutes, et un autre les heures.
- Schéma interne du module d'affichage HDSP-B08G :
Le microcontrôleur PIC utilise une seule source d'interruption (module TMR0 en mode compteur).
Cette interruption est générée toutes les 1/256 seconde exactement (27 =128 périodes du quartz 32,768 kHz).
La routine d'interruption assume la gestion de l'affichage et la gestion des deux boutons poussoir de réglage des heures et minutes.
Le module d'affichage 4 digits est de type HDSP-B08G (Agilent), à commande multiplexée.
Le multiplexage permet de commander les 4 digits avec seulement 7 + 4 = 11 fils (autrement, il faut 7 x 4 = 28 fils).
Cela consiste à alimenter un seul digit à la fois : le premier pendant 1/256 s, le second pendant 1/256 s etc ...
En fait, les digits clignotent (à une fréquence de 64 Hz) mais le phénomène est trop rapide pour l'oeil, ce qui donne l'illusion d'un éclairage continu (c'est le même principe utilisé par l'écran d'un téléviseur ...).
Je vous recommande d'observer le phénomène au ralenti en injectant un signal logique d'environ 1 kHz sur la broche RA4/T0CKI (en ayant au préalable débranché la sortie 4 de la porte NAND).
Le décodeur BCD / 7 segments (74LS47) permet de libérer 3 broches au niveau du microcontrôleur.
En définitive, 12 entrées / sorties (sur 13, ce qui justifie la présence du 74LS47) du PIC 16F84A sont utilisées :
+ 1 sortie pour la commande des segments DP (qui clignotent avec une période de 1 seconde)
La mise en oscillation du quartz 32,768 kHz est délicate : il faut jouer sur les valeurs de R13, R14, C5 et C6 ...
Pour corser le tout, il arrive que l'oscillateur se désynchronise quand on débranche l'oscilloscope ! (C'est comme la radio ou le téléviseur qui se dérègle si on s'en éloigne). Le condensateur C10 devrait résoudre ce problème.
La porte B associée à R15 et C7 réalise une temporisation d'environ 6 secondes : à la mise sous tension, cela laisse le temps à l'oscillateur de 32,768 kHz de se stabiliser.
Pour permettre l'alimentation par un adaptateur sur secteur, un pont de diodes et un régulateur de tension 7805 ont été ajoutés.
Le code source a été écrit en langage assembleur avec l'environnement de développement gratuit MPLAB IDE de Microchip.
© Fabrice Sincère ; Révision 1.4.1