Étape 3: programmation
Démarrage :
Quelle tension le microcontrôleur lit l’horloge et s’assure que le chronomètre tourne en définissant le bit 7 du Registre 0 (oscilloscope activer bits) 0. Comme l’indique la feuille de données, ceci est nécessaire parce que l’état de marche initial des registres n’est pas défini.
Boucle principale :
Une fois le programme entre dans la boucle principale, il va relire l’horloge et convertir les nombres décimaux 3 (minits, heures, secondes) en 6 colonnes.
J’ai utilisé après calcul(voir photo pour les colonnes):
secondes :
valeur / 10 (ignorer les décimales) vous donne colum 2
valeur - (colum2 * 10) vous donne colum 1
minits :
valeur / 10 (ignorer les décimales) vous donne colum 4
valeur - (colum2 * 10) vous donne colum 3
heures d’ouverture :
valeur / 10 (ignorer les décimales) vous donne colum 6
valeur - (colum2 * 10) vous donne colum 5
Une fois terminé, les valeurs de colum sont transmises vers le port C selon la colonne qui est active sur le port B. Ce multiplexage permet d’utiliser moins épingles et maintient le courant inférieur à 100mA.
Après cela la boucle redémarre
Lorsqu’une touche est pressée, l’interruption correspondante est appelée et les heures ou les minits sont augmentés de 1 en conséquence. L’horloge est réglée immédiatement après augmenter une valeur via une sous-routine définie.
J’ai ajouté un hexfile avec le programme.