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

Étape 3: logiciel

Les liens de logiciels sont répertoriées ci-dessous. J’ai inclus ceux pour le 12F683 et le 16F688. Les différences résident surtout dans quelques noms de registre ainsi que les différences attendues dans la version PIC (liste =) et la ligne du fichier INCLUDE et la ligne __CONFIG.

Tel que mentionné précédemment, la ligne de base de logiciels est celle que nous avons utilisé dans l’épisode 7 pour les périodes de long sommeil. En outre, le code d’écriture EEPROM de l’épisode 6 a été ajouté. Dans la version 12F683 la ligne « BCF EECON1, EEPGD » est commentée parce qu’elle ne s’applique qu’à la 16F688. Cette ligne n’est pas utilisée dans le code de 12F683 car le bit EEPGD n’est pas présent dans le registre EECON1. Le 12F683 autorise uniquement l’écriture EEPROM et non de mémoire programme. La majeure partie du reste du nouveau code traite de l’installation de convertisseur A/N et l’utilisation. Une fois les registres appropriés sont mis en place dans le code d’initialisation, la conversion nécessite seulement une paire de drapeaux à définir. Que tout est fait dans le gestionnaire d’interruption quand le PIC se réveille. Vous pouvez aussi voir les points où la puissance est activée ou désactivée pour le capteur de température et le potentiomètre de Vref. Il y a aussi une boucle sans fin dans la dernière partie de la routine d’initialisation si la broche Enable décrite à l’étape de matériel n’est pas fondée. L’EEPROM qui empêche l’écrasement lorsqu’il est assis dans le programmeur Pickit3.

Une nouvelle tournure dans le code est l’utilisation d’une table de choix élargi à une adresse spécifiée pour convertir les valeurs de A/D en valeurs de température. Lorsque vous utilisez des tables de choix comme ça vous avez besoin pour vous assurer que la limite de table n’est pas franchir une limite de la page. Pages sont définis comme tous les 256 octets (100 hex) de départ. Dans cet exemple, nous commençons volontairement le code de table de recherche à une limite de page haut (700 en hexadécimal). Afin de calculer l’adresse de l’appel pour ce code, nous copions les bits supérieurs de l’adresse de la table Registre PCLATH. Les bits de l’adresse puis s’habituer par la PIC lors du calcul de l’emplacement du code lookup table. C’est quelque chose que vous ne devez s’inquiéter lorsque vous utilisez un langage de haut niveau comme le C, car le compilateur ajoute automatiquement les instructions nécessaires pour vous. C’est aussi quelque chose que vous ne normalement besoin de s’inquiéter lors de l’utilisation de microcontrôleurs ou microprocesseurs qui ont une capacité complète adresse de 16 bits.

Il y a deux autres choses à noter concernant la table de choix. Puisque nous limitons nos afficheurs de température à deux chiffres pour plus de commodité, les chiffres de 100 à 109 degrés utilisent ASCII « A » pour l’équivalent décimal « 10 ». L’autre chose à garder à l’esprit est que chaque entrée de la table prend deux octets de mémoire. Un octet est pour l’instruction RETLW et un octet de la valeur retournée. Pour garder à notre limite de page de 255 octets, nous ne pouvons pas dépasser 127 entrées.

OK, donc, nous recevons tout construit et en cours d’exécution mais comment obtenons-nous les données enregistrées sur le PIC ? Avec le 16F688, nous pourrions ajouter une interface série ou même le Bluetooth décrit dans un épisode précédent. Pour ce projet nous garder les choses simples et il suffit d’utiliser les fonctionnalités de notre programmeur Pickit3 et le X de MPLAB IDE. Nous connaissons déjà le bouton pour télécharger (programme) le logiciel dans le PIC, mais juste à côté de ce bouton est l’un pour le téléchargement de la photo. Si vous cliquez sur la flèche à côté de ce bouton, vous pouvez voir les options pour quelles parties du mémoire que vous souhaitez récupérer. L’option du bas est pour l’EEPROM. Lorsque vous cliquez sur ce, il apparaîtra une fenêtre qui permet de déterminer le nom et la destination du fichier hex. Le fichier qui est créé peut être lu à l’aide du bloc-notes de Windows et est formaté comme ceci :

: 020000040000FA
: C 10420000730073007200720072007200720072001
: 104210007200720072007200720072007100710010
|
|
|
: 00000001FF

Les valeurs de données réelles enregistrées début sur la ligne 2. Il y a un total de 32 lignes de données avec 8 valeurs sur chaque ligne. La première valeur sur chaque ligne commence à la position 8. Les entrées de données sont enregistrées en tant que valeurs 16 bits, mais les deux zéros ne sont pas applicables, car l’EEPROM est seules 8 bits large. Les quatre derniers chiffres sur chaque ligne de données sont une somme de contrôle et peuvent être ignorés. La table de choix dans le logiciel définit spécifiquement les valeurs avec la connaissance que le fichier hex va convertir en ASCII. Dans l’exemple ci-dessus, les températures enregistrées sur la première ligne sont 73, 72, 73, 72, etc.. Eh bien, c’est tout pour l’épisode 8 de « Fun avec PIC Assembly ». Restez à l’écoute des autres épisodes.

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 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