Étape 2: logiciel
Deux listes de logiciels sont disponibles ci-dessous. Au départ j’ai juste modifié la version dans l’épisode 19 (en laissant les cordes dans la RAM) pour que je puisse obtenir les mises à jour du code de base en place. Cette version n’est pas incluse ici. La plupart du temps les changements requis ont été modifications de certaines s’inscrire les noms et l’ajout de commandes BANKSEL. Les commandes BANKSEL étaient nécessaires parce que les registres de port série qui sont trouvent en Bank0 de la 16F688 sont maintenant dans Bank3 de la 16F1847. Car il faut aussi vérifier le registre de PIR1 (toujours situé en Bank0) dans ces routines nous devons passer de Bank0 Bank3. Les questions que j’ai eu à faire ces changements résultaient principalement de manque juste deux ou trois endroits dans le code où il fallait un BANKSEL.
Une fois j’ai eu cette version va que je me suis déplacé les chaînes qui avaient été copiés dans la mémoire vive à une table définie dans la mémoire de programme (à partir adresse 1000H). C’est semblable à ce que j’ai fait pour définir les données du graphique dans l’épisode 13. Dans ce cas, cependant, j’ai utilisé le DT (définir table) directive pour chacune des cordes au lieu de la directive de données. Qui m’a permis de réellement saisir les données sous forme de chaînes, suivies par les octets individuels pour retour chariot, saut de ligne et le marqueur de fin de données (0 x 00). Les directives DA (Décrivez ASCII) et données permettent également d’entrer dans les cordes, mais ils ne fonctionnent pas pour cette application car ils emballent les caractères ASCII 7 bits deux dans chaque emplacement de mémoire programme 14 bits. La directive DT met un seul caractère par emplacement de mémoire. C’est ce qui est nécessaire pour le MOVIW (mouvement indirecte à W) commande fonctionne car il reprend seulement les 8-bits inférieurs des données de la mémoire dédiée.
Parmi les listes ci-dessous utilise les mêmes chaînes de commande et des messages qui ont été utilisés dans l’épisode 19, donc il agit exactement de la même. L’autre inscription utilise une directive HTML plus élaborée juste pour donner une idée de ce que l'on peut faire avec des chaînes plus longues et l’espace mémoire supplémentaire fourni par le 16F1847. Dans cet exemple, HTML commandes sont utilisées pour dessiner deux cercles qui représentent l’état de l’avant et l’arrière de Sprinklers. Rouge = arrêt et vert = on (un écran shot est reproduite ci-dessus). Ce que j’ai lu en ligne, vous pouvez être en mesure d’envoyer jusqu'à 2048 caractères avec une commande CIPSEND. L’exemple de logiciel est actuellement limitée à 255 caractères, parce qu’un seul emplacement RAM de 8 bits est utilisé pour calculer le nombre de caractères vers le haut.
Eh bien, c’est tout pour l’épisode 20 « Fun avec PIC Assemblée ». Restez à l’écoute des autres épisodes.