Programmation d'un LCD

Fermé
haidar - 26 févr. 2014 à 17:41
dbclickinfo Messages postés 1 Date d'inscription mardi 25 février 2014 Statut Membre Dernière intervention 26 février 2014 - 26 févr. 2014 à 18:07
Bonjour, tout les amis je vous demande un programme pour la commande d'un afficher LCD 2*16 pour affiche un message



1 réponse

dbclickinfo Messages postés 1 Date d'inscription mardi 25 février 2014 Statut Membre Dernière intervention 26 février 2014
26 févr. 2014 à 18:07
L'interface avec la version parallèle comporte 16 ports (voir la photo).

1 masse
2 +5V
3 références pour le contraste (mettez à la masse, ça marche, ou alors un potard avec le +5V)
4 RS (Choix donnée ou instruction)
5 R/W (Choix read ou write)
6 E (Enable - validation)
7 Data 0 (D0)
8 Data 1 (D1)
9 Data 2 (D2)
10 Data 3 (D3)
11 Data 4 (D4)
12 Data 5 (D5)
13 Data 6 (D6)
14 Data 7 (D7)
15 LED A (non utilisé, en tout cas dans la version que j'ai)
16 LED K (idem)


Pour utiliser le LCD, il faut bien sûr l'alimenter (+5V, masse, contraste).
Ensuite il va falloir relier les ports RS, R/W et E (qui sont obligatoires) au µc.
Puis les ports D4, D5, D6 et D7 au µc aussi.
Les ports de D0 a D3 sont facultatifs ! Et on va s'en passer pour économiser des ports sur le µc.
En résumé il y a besoin de 7 ports sur le µc (éventuellement un ON/OFF supplémentaire si vous voulez, mais vérifiez bien la consomation de votre LCD si vous voulez l'alimenter directement par le µc - un port du PIC ne peut délivrer que 25mA max).

Utilisation des ports pour envoyer une instruction
Pour envoyer une instruction à l'afficheur,
il faut régler le bit Read/Write (généralement à Write), spécifier le bit RS (si c'est une commande ou une donnée), mettre les bits de poids fort de la commande ou la donnée en question sur les bits D7 D6 D5 D4, et enfin valider pour que l'afficheur en tienne compte.
La validation se fait en mettant le bit E à 1. Puis on le remet à 0.
Rebelotte ensuite avec les bits de poids faibles sur D7 D6 D5 D4. Nouvelle validation.
Ca y est, la commande est enregistrée par le LCD, en 2 coups pour éviter d'utiliser D3 D2 D1 D0.

Il y a tout de même des contraintes de temps à respecter (il faut un certain temps au LCD pour comprendre et exécuter une requête).
Ces contraintes sont des temps minimums. On peut prévoir large et les dépasser.

Les commandes
Apres avoir alimenté le LCD, il vous faudra envoyer une série de commande pour l'initialiser.
Vous allez pouvoir régler le mode 4 bits, l'aspect du curseur, le défilement, le nombre de pixels par caractères, etc ...
Cette phase d'initialisation terminée, vous pouvez envoyer directement des codes ascii pour que le LCD les affiche.
Vous pouvez aussi envoyer d'autre commandes, comme effacer l'écran, placer le curseur à tel ou tel endroit, et même relire les informations contenues dans sa mémoire.

Je ne vais pas tout re-détailler, certaines pages très bien faites expliquent tout ça en détail.
En voici une, en anglais. Ou en local ici.
0