Amusez-vous avec PIC Assembly - Episode 12 (2 / 2 étapes)

Étape 2: 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.

Tel que mentionné dans la section matériel, l’écran LCD démarre en mode 8 bits et doit être commandé au mode 4 bits. Si vous regardez la section d’initialisation de LCD, vous verrez que les quatre premières commandes sont envoyés alors que l’écran LCD est en mode 8 bits. Parce que l’écran LCD verra les motifs sur les lignes de quatre données plus bas, nous envoyons uniquement le grignotement supérieur des données. Par exemple, dans la version de l’interface de 8 bits, nous enverrions octets hexadécimaux 30, 30, 30 à dire l’écran LCD de vouloir réinitialiser. Dans la version de 4 bits, nous envoyons hex grignote 3, 3, 3, mais l’écran LCD voit 30, 30, 30. Le quatrième nibble que nous envoyons est 2, qui voit dans l’écran LCD 20. Il lui dit de passer en mode 4 bits. Après ce point, nous devrons envoyer chaque octet de données comme une paire d’amuse-bouches et l’écran LCD va les assembler en interne avant leur traitement. Le reste des commandes d’initialisation ont les mêmes valeurs que dans la version 8 bits sauf que nous envoyons 28 au lieu de 38 pour la fonction commande set. C’est parce que « 2 » signifie mode 4 bits, tandis que « 3 » signifie mode 8 bits.

Parce que nous devons envoyer chaque octet consécutifs comme amuse-gueules, nous ajoutons quelques lignes de code à la routine « Write_LCD ». L’écran LCD attend le grignotement supérieur tout d’abord nous faire un échange de nibble pour mettre le grignotement supérieure dans les quatre bits inférieurs et puis masquer les quatre bits supérieurs. Quand nous envoyons le grignotement inférieur nous ne faire l’échange et simplement masquer les quatre bits supérieurs. Assez des modifications simples mais pendant très longtemps que je ne pouvais pas faire correctement afficher mes messages de données. J’ai pensé que quelque chose doit être un problème avec la routine « Write_LCD », mais la chose déroutante c’est que la routine a très bien fonctionné lors de l’envoi des commandes d’initialisation. Il a seulement foiré quand j’ai essayé de changer l’écran LCD au mode de saisie de données. Ce que j’ai finalement opté pour qu’une solution était d’ajouter un retard 50us juste avant l’impulsion enable qui indique à l’écran LCD pour capturer la première nibble. Une fois que j’ai eu il fonctionne j’ai essayé moins délai (il a travaillé jusqu'à environ 25us). J’ai aussi essayé de mettre le retard juste avant de l’activer pour le deuxième nibble, mais qui n’a pas fonctionné. Fait intéressant, mettre le délai à l’intérieur de la première impulsion d’enable fonctionnait. J’ai parcouru les spécifications de la puce de contrôleur LCD Hitachi mais rien trouvé qui explique la nécessité du délai supplémentaire – uniquement en mode données, et aussi longtemps que le premier Quartet de chaque octet est en cours de traitement. Il a simplement dit que vous devez vérifier le « Flag Busy » après chaque morceau de données envoyé mais qui exige la complexité du basculement de l’écran LCD pour le mode lecture. Il s’avère que des millions d’exemples sur le web ont été d’aucun secours soit et beaucoup d'entre eux m’a laissé vous vous demandez si ils ont vraiment travaillaient comme écrit. J’ai plusieurs versions différentes de l’écran LCD donc il ne semble pas être une anomalie dans un seul d'entre eux. Il me rend toujours un peu fou de ne pas savoir « pourquoi ».

Dans l’intérêt d’être complet, je dois mentionner que les trois premières commandes "Spécial Public Function Set" (la 3, 3, 3) ne sont probablement pas nécessaire. Si l’écran LCD s’allume correctement puis la spec dit que vous pouvez aller directement à l’envoi de la commande pour mode 4 bits. Il ne fait pas mal de quitter ces premiers jeu de commandes là-dedans et ils peuvent aider si l’écran LCD n’alimente pas place correctement à l’occasion. C’est pourquoi je les ai mis là. Eh bien, c’est tout pour l’épisode 12 de « Fun avec PIC Assembly ». Restez à l’écoute des autres épisodes.

Articles Liés

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