Amusez-vous avec PIC Assembly - Episode 6 (3 / 4 étapes)

Étape 3: logiciel

Le lien du logiciel est répertorié ci-dessous. Alors qu’il est visé pour le 16F688, il est facilement porté à d’autres versions de la photo. Vous devrez 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.

La plupart des logiciels se rapporte à la manipulation de l’écran LCD et les routines de retard donc les parties devraient être familiers si vous avez regardé à certains des épisodes précédents. Une chose à noter dès le départ, c’est que la section de déclaration de variable (UDATA) est un peu différente. Parce que les registres de contrôle EEPROM sont tous en mémoire de la Banque 1, j’ai décidé de placer également les variables EE_Addr et EE_Data à la Banque 1. Cela exige l’utilisation d’étiquettes dans le cadre des déclarations UDATA début adresse. Données de la Banque 0 commencent à hex adresse 20 tandis que banque 1 données démarre à adresse A0 hexagonales. Il faut aussi garder à l’esprit tout au long du programme quant à quelle banque de mémoire nous sommes en lors de la lecture et l’écriture. Mon général, comme indiqué dans l’en-tête, doit toujours sortir une sous-routine dans Banque 0.

Parce que nous utilisons registres spécifiques de l’EEPROM pour lit et écrit, il n’y a aucune nécessité pour nous de s’inquiéter sur l’emplacement dans l’adresse de la carte l’EEPROM. Qui rend la vie un peu plus facile car nous fournissons essentiellement juste un indice de 00 à FF hex. Beaucoup des photos ont 256 octets d’EEPROM, mais certains ont seulement 128 octets (par exemple le 16F627/8) pour être conscient de cela pour vos applications.

Le code pour lire et écrire l’EEPROM est dérivé de ce qui est indiqué dans la fiche technique, mais il y a quelques différences importantes, en particulier dans la section de l’écriture. Pour une lecture, nous simplement mis en place l’adresse souhaitée dans EEADR, pointez sur la mémoire de données (par opposition à la mémoire de programme en flash), commande une lecture et puis lire les données du Registre EEDAT. Le processus d’écriture suit certaines des mêmes étapes, mais avec des différences notables dans le milieu de la séquence. Encore une fois, nous commençons en définissant l’adresse souhaitée dans EEADR et puis remplir EEDAT avec l’octet de données, que nous voulons écrire. Ensuite nous devons définir un indicateur « enable write ». Vous pouvez considérer cela comme la broche R/W sur des puces de mémoire ou de l’écran LCD. Comme mentionné précédemment, nous devons permettre le processus d’écriture se termine sans interruption si c’est le point auquel nous ouvrirait le drapeau GIE. Si vous regardez dans la feuille de données, il y a des code là qui efface réellement GIE et ensuite une boucle jusqu'à ce que le GIE est clair. Qui est mis là en raison de la possibilité qu’une interruption peut se produire avant le clair du GIE prend réellement effet (horloge quatre cycles ou cycle d’une seule instruction). Parce que le retour à partir du gestionnaire d’interruption réactive automatiquement GIE, notre commandement claire peut obtenir rendue caduque. Ce qui est recommandé consiste donc à simplement exécuter une boucle sur la commande clear jusqu'à ce que nous en fait effectuer une lecture du GIE et vérifier qu’il est clair.

Voici le code pour exécuter la poignée de main secrète nécessaire pour les écritures. Vraiment, ne nous est d’abord écrire 55 hex et puis écrire hex AA dans EECON2. Je vais le laisser comme exercice pour l’élève de calculer la probabilité de cette séquence qui passe par hasard. Après la poignée de main secrète, nous définir l’indicateur de commande d’écriture réelle et puis attendez que le commandant de bord effacer l’indicateur. Il le fera lorsque l’écriture est terminée. Étant donné que nous ne pouvons pas faire autre chose pendant le temps d’écriture, interrogation de cet indicateur est vraiment la meilleure façon d’accomplir cette tâche. L’exemple de feuille de données montre une commande de sommeil avec l’hypothèse étant que nous réveiller et nous continuerons quand nous obtenons une interruption (EEIR) à la fin de l’écriture. Ce qu’il ne montre pas, cependant, est la configuration pour cette interruption et la gestion de l’interruption avant de continuer l’exécution. Une fois de plus, le triomphe de manière paresseuse.

La routine Test_EEPROM envoie juste trois octets de données EEPROM et ensuite leur lit. Chaque octet qui est écrit ou lu est envoyé à l’écran LCD pour l’affichage. Rien de trop utile à ce point, mais il montre comment nous pouvons accéder à l’EEPROM pour de futurs projets.

Articles Liés

Amusez-vous avec PIC Assembly - Episode 12

Amusez-vous avec PIC Assembly - Episode 12

OK, donc je suis un de ceux qui est heureux quand j'aurai Enfin quelque chose ne fonctionne mais il me ronge si je ne comprends pas les détails de pourquoi ça marche. Tel est le cas avec cet épisode. Le fond est que je travaille sur un petit projet p
Amusez-vous avec PIC Assembly - Episode 1

Amusez-vous avec PIC Assembly - Episode 1

Retour dans les jours anciens, quelle hommes étaient des hommes et disquettes étaient énormes, nous avons programmé les premiers microprocesseurs en langage d'assemblage - et nous l'avons aimé ça. Maintenant que je suis à la retraite, j'ai décidé de
Amusez-vous avec PIC Assembly - Episode 20

Amusez-vous avec PIC Assembly - Episode 20

Dans l'Episode 19 que je l'ai mentionné en passant qu'il serait assez facile au port de la conception à la 16F1837 plus moderne que nous avons utilisé dans l'épisode 13 pour l'affichage de graphiques. Qui pourrait nous sortir de devoir copier les cha
Amusez-vous avec PIC Assembly - Episode 13

Amusez-vous avec PIC Assembly - Episode 13

Il y a quelques mois, j'envisageais de faire un capacimètre à l'aide de la photo. J'ai fait quelques recherches sur le web et vérifié diverses conceptions. Puis j'ai fait l'erreur de vérification d'eBay pour voir combien on coûterait. Les versions mo
Amusez-vous avec PIC Assembly - Episode 14

Amusez-vous avec PIC Assembly - Episode 14

Comme je le disais dans un précédent épisode, je suis bénévole dans un centre de recyclage à but non lucratif. Pour la plupart, nous fixons les ordinateurs et les écrans LCD, mais dernièrement j'ai pris la tâche d'obtenir certains anciens systèmes de
Amusez-vous avec PIC Assembly - Episode 7

Amusez-vous avec PIC Assembly - Episode 7

Avez-vous jamais souhaité que vous aviez un réveil qui vous me réveillais toutes les quelques minutes alors que vous pourriez faire quelque chose de rapide et puis se pour rendormir ? Non, moi ou l'autre. Mais dans le monde du microcontrôleur, une te
Amusez-vous avec PIC Assembly - Episode 2

Amusez-vous avec PIC Assembly - Episode 2

Bien Episode 1 a été un succès retentissant parce que quelqu'un d'autre que moi en fait le regarda. Alors allons-y avec l'épisode 2. Dans ce Instructable nous recherchons quelques données réelles d'entrée pour envoyer à l'écran LCD de 1602 que nous a
Amusez-vous avec PIC Assembly - Episode 21

Amusez-vous avec PIC Assembly - Episode 21

Je ne suis pas un voyageur du monde, mais j'ai été à un certain nombre d'endroits qui diffèrent radicalement de température et d'humidité. Je n'aime pas qu'on en dise, « chaleur sèche » ne veut rien dire lorsque le thermomètre est supérieure à 110 de
Amusez-vous avec PIC Assembly - Episode 18

Amusez-vous avec PIC Assembly - Episode 18

Mots à la mode et les slogans sont toujours être générés, principalement dans les domaines de la technologie ou de la politique. Dilbert même reçu la tendance avec « Buzzword Bingo » en de la 90. Une des phrases actuellement chauds est « Internet des
Amusez-vous avec PIC Assembly - Episode 22

Amusez-vous avec PIC Assembly - Episode 22

Le dicton est que « la nécessité est la mère de l'invention ». En réalité, cependant, il y a beaucoup de « mères » de l'invention. Mon préféré est « paresse » mais parfois trucs obtient inventé juste parce que c'est un plaisir au défi de comprendre u
Amusez-vous avec PIC Assembly - Episode 16

Amusez-vous avec PIC Assembly - Episode 16

Jusqu'à présent j'ai résisté à ajouter aux millions de projets de "Clignoter une LED" qui sont sur le web. Cela ne veut ne pas dire que je n'ai effectivement pas un projet « Clignoter une LED » quand j'ai commencé à déconner avec le PIC parce qu
Amusez-vous avec PIC Assembly - Episode 17

Amusez-vous avec PIC Assembly - Episode 17

Les mauvais vieux jours chaque compagnie de téléphone avait une interface propriétaire et souvent différentes interfaces pour téléphones différents dans leur gamme de produits. De nos jours, cependant, presque tous les téléphones utilise une interfac
Amusez-vous avec PIC Assembly - Episode 8

Amusez-vous avec PIC Assembly - Episode 8

J'ai connu quelques changements intéressants de la température dans ma vie dont un juste il y a quelques années où nous avons mis un record un jour et puis définissez un seuil record le lendemain. La plus intéressante que j'ai vécu était il y a longt
Amusez-vous avec PIC Assembly - Episode 15

Amusez-vous avec PIC Assembly - Episode 15

Une de mes récents projets consistait en la construction d'un petit amplificateur 2.1 à l'aide de quelques chips d'amplificateur de puissance TDA que j'ai grappillé d'après un moulage hors circuit électronique. Depuis que je suis en mesure de décider
Amusez-vous avec PIC Assembly - Episode 19

Amusez-vous avec PIC Assembly - Episode 19

Une de mes phrases favorites est « c'est facile si vous savez comment. » Je ne sais pas si j'ai ramassé que quelque part il y a longtemps ou il inventé moi-même, mais il y a beaucoup de vérité en lui. C'est le genre de ce qui s'est passé quand je sui