Electronique > Réalisations > Affichage / Mesure > Horloge 001

Dernière mise à jour : 27/03/2011

Présentation

Ce circuit est une sorte d'amusement, je l'ai réalisé sans en avoir une quelconque utilité. Il repose sur l'emploi d'un PIC 16F628A et de quelques afficheurs LED sept segments fonctionnant en mode multiplexé. C'est en quelque sorte un petit montage d'initiation, qui ne fait pas spécialement mieux que les horloges numériques du commerce. L'affichage se fait au format "24h", je n'ai pas prévu le mode "12h" (13h30 est donc affiché 13h30 et non 1h30). La base de temps est stabilisée par un quartz "horloger" de 32,768 kHz, la précision dépend donc majoritairement de sa stabilité.
Si le mode d'affichage multiplexé vous file des boutons, ou plus sérieusement s'il ne peut convenir pour une application bien précise, merci de vous téléporter vers la page Horloge 001b.

Schéma

J'ai déjà vu un schéma similaire sur ce site, mais où... Peut-être le compteur 005 ?

horloge_001

Principe général
Une partie du code logiciel du PIC est cadencé à une vitesse de 1 Hz et donc une seconde, ce qui est bien pratique pour une horloge. Pour obtenir cette base de temps de 1 Hz, on utilise un quartz de 32,768 kHz et une succession de division par deux de cette fréquence principale. Vous pouvez faire le calcul vous même, si on divise par 2 plusieurs fois de suite la valeur 32768, on finit bien par tomber sur la valeur de 1 Hz. Chaque seconde, une interruption est déclanchée et provoque l'incrémentation de compteurs chargés de stocker la valeur en cours des heures, minutes et secondes.

Affichage
La valeur des compteurs heures et minutes est affichée de façon alternée et à une vitesse suffisement grande pour que l'oeil ne se rende pas compte qu'un seul afficheur est allumé à un instant donné. Principe de la persistance rétinienne et de l'affichage multiplexé. Parce que le PIC utilisé dispose d'un nombre limité de broches d'entrée / sortie et parce que je tenais à conserver mes quatre boutons poussoirs de réglage (voir paragraphe suivant), j'ai du utiliser quatre broches pour la commande des sept segments des afficheurs, imposant l'ajout d'un décodeur BCD (4 fils) vers 7 segments (7 fils). Le décodeur utilisé est de type TTL SN7447 et possède une capacité en courant de sortie suffisante pour attaquer directement les segments des afficheurs. Mais en contrepartie, il n'affiche pas la queue des chiffres 6 et 9, ce qui à mon goût fait un peu moins joli. Simple question d'esthétique.

Réglage de l'heure
A moins d'allumer cette horloge pile à 12h00 (valeur par défaut à la mise sous tension), il faut la mettre à l'heure. Ce qui explique la présence des boutons poussoirs reliés aux broches RB4 à RB7 et qui permettent d'incrémenter ou de décrémenter les heures et les minutes de façon individuelle. J'aurais très bien pu n'utiliser qu'une seule broche du PIC pour le réglage de l'heure et des minutes, mais cette façon de faire qu'on retrouve sur certains radio-réveils m'énerve trop. Donc non, je laisse comme ça, mais rien ne vous empêche de modifier ce mode de fonctionnement.

Remarque : l'affichage fluctue fortement durant la phase de réglage, cela est lié au fait que le multiplexage d'affichage est interrompu temporairement quand les poussoirs de réglage sont enfoncés. Cela n'est visuellement pas très agréable et je pourrais faire mieux, en incluant les routines d'affichage non pas dans le corps principal du programme mais dans une routine d'interruption. Je sais faire et l'ai d'ailleurs déjà fait pour d'autres réalisations, mais je n'ai pas pris le temps de recopier la méthode pour ce projet. Pas bien.

Sauvegarde de l'heure lors d'une coupure d'alimentation

Si l'ensemble est alimenté par une source provenant du secteur EDF - ce qui est conseillé pour un usage permanent, la valeur de l'heure en cours est perdue dès que se produit une coupure d'alimentation secteur. C'est le cas de toute horloge alimentée par le secteur. Pour éviter cela, il convient de prévoir une sauvegarde par pile qui prend la relève uniquement en cas d'absence secteur. Pour une autonomie maximale de la pile de sauvegarde, on ne doit alimenter que le PIC et laisser les afficheurs éteints quand le secteur est absent. Cela est très facile à faire avec des diodes, comme le montre le schéma suivant.

horloge_001_alim

Dans bien des réalisations commerciales, il n'y a qu'un seul régulateur de tension (parfois une simple diode zener avec une résistance de limitation de courant), les afficheurs étant alimenté par une source de tension filtrée mais non régulée. C'est une façon de faire. Pour plus de détails concernant le fonctionnement de ce type d'alim secourue, merci de vous reporter à la page Alimentation secourue par batterie 002.

Logiciel du PIC

Fichier *.hex compilé prêt à l'usage disponible dans l'archive dont le lien suit, avec code source au format MikroPascal Pro V3.80.
Horloge 001 - 16F628A (27/03/2011)
Si vous souhaitez recevoir par la poste un PIC préprogrammé et prêt à utiliser, merci de consulter la page PIC - Sources.

Circuit imprimé

Non réalisé.