Étape 3: logiciel
Le lien du logiciel est répertorié ci-dessous. Alors qu’il est visé pour le 12F683, il est facilement porté à plus grandes versions de l’image. Pour la plupart il nécessite un changement des noms comme TRISIO TRISA et GPIO à PORTA. Vous devrez également modifier la ligne qui identifie la version PIC (liste =) et le fichier INCLUDE, mais ceux sont les changements intuitives. La ligne __CONFIG devez également peaufiner tout simplement parce qu’un ou deux des étiquettes utilisées soient orthographiés différemment dans certains des fichiers INCLUDE. Comme nous l’avons vu précédemment, le 16F688 (PIC de 14 broches) peut être utilisé avec les mêmes branchements broches physiques comme le 12F683 si vous voulez plus de broches e/s.
Le logiciel commence par code I2C écrit pour l’interface LCD à l’épisode 22. Dans cet exemple, tous nous inquiète écrivait au serial bus I2C. Avec l’ajout de la RTC et EEPROM, nous disposons d’inclure des fonctionnalités pour la lecture du serial bus I2C. Un I2C lire opération commence par écrire l’adresse du périphérique I2C (nous avons maintenant trois périphériques sur le bus). Qui est suivi en écrivant la mémoire ou enregistrer l’emplacement pour le RTC ou l’EEPROM. À ce moment-là, le PIC passe la ligne SDA pour être une entrée et utilise la ligne SCL à l’horloge de bits de données hors de la RTC ou EEPROM. À la fin de chaque octet reçu, le PIC envoie un accusé de réception au périphérique esclave.
En plus de l’I2C nouvelles routines de lire, il y a beaucoup de routines d’interfacer avec le CCF et l’EEPROM. CCF capacités incluent écrire des données d’initialisation, la lecture des registres temps et lire les registres de température. La température semble être une fonctionnalité bonus mais il manque de précision par rapport aux capteurs de température dédiée. Même si nous avons accès à l’entière et partie fractionnaire de la température, que nous obtenons encore que la précision de +/-3 degrés. En outre, la température n’est pas de l’air ambiant. C’est la température interne de la puce qui sert à compenser l’oscillateur de l’horloge. Le CCF comprend quelques registres autres que les informations de date et l’heure utilisée ici. Ils comprennent quelques alarmes et aussi un registre pour contrôler la fréquence de la sortie de l’onde carrée (SQW) sur le module. Il y a aussi un registre de contrôle qui vous permet de changer de mode de l’heure 24 heures à 12 heures.
Les routines de contrôle just EEPROM lire et écrire des opérations. La taille de la mémoire est de 32 k octets et est organisée en 128 pages, chaque page contenant 256 octets. Cela signifie que l’adresse envoyée à l’EEPROM est deux octets, le premier octet étant la page et le second octet étant l’emplacement dans la page. Dans l’exemple de code, la valeur entière de la température est écrit à l’EEPROM une fois par minute. La température inclut un bit de signe, donc chaque stockage utilise deux emplacements de mémoire parce que, à ce moment-là, la température et le signe ont été convertis en caractères ASCII. Cela fait pour un maximum de points de 16384 données mais, par souci de simplicité, que le nombre est limité à 9999. La façon dont le logiciel est actuellement écrit l’adresse de l’écriture se réinitialise à chaque mise sous tension du PIC. Qui pourrait être modifiée afin que la dernière adresse connue d’écriture est également enregistrée dans la mémoire EEPROM et lire puis retour à l’allumage.
Tel que mentionné dans la section matériel, chacun des deux interrupteurs ne double devoir. Lorsqu’on appuie sur l’interrupteur 1 le logiciel passe en mode de temps d’initialisation. Une fois dans le mode d’initialisation, commutateur 2 échelons à travers les valeurs pour chaque partie de l’heure et la date. Par exemple, vous pouvez basculer à 0-23 pour les heures. Lorsque la valeur désirée est définie pour une option, appuyez sur l’interrupteur 1 se qualifieront pour l’option heure/date suivante. Lorsque toutes les options sont terminées (jour de la semaine est la dernière option) une autre pression sur l’interrupteur 1 provoquera une sortie du mode d’initialisation.
Pendant l’affichage de l’heure/la date normale, la pression de l’interrupteur 2 entraînera le logiciel entrer dans l’EEPROM, le mode lecture. L’écran affiche un compteur sur la ligne 1 qui indique quelle entrée est lu (1-9999) et le nombre total d’entrées ont été entreposées depuis marche. Ligne 2 de l’écran affichera la valeur de température pour cet emplacement de stockage. Chaque pression sur l’interrupteur 1 passeront à la prochaine valeur stockée dans l’EEPROM. Si toutes les valeurs enregistrées ont été lus, l’écran affichera « DONE ». Une pression sur le commutateur 2 sera provoquent la sortie de l’EEPROM, le mode à tout moment pendant le processus de lecture.
Eh bien, c’est tout pour l’épisode 23 « Fun avec PIC Assemblée ». Restez à l’écoute des autres épisodes.