Commande Afficheur LCD 16x2

Introduction

Les afficheurs LCD avec controleur HD44780 sont une solution intéressante lorsque le montage a besoin d'afficher des résultats. L'interface, cependant, nécessite un nombre relativement important de fils de connexion qu'il est possible de réduire en utilisant une interface série or i2C.

Ce projet se propose de réaliser une interface série 5 V sur les pins Tx et Rx du micro, utilisant l'uart interne, et sur ces mêmes pins, une interface I2C logicielle appelé aussi TWI. C'est le premier protocole utilisé après la mise sous tension qui détermine le mode de foctionnement. L'intérêt de l'I2C est de pouvoir connecter sur le même bus plusieurs processeurs.

Description

Le montage est basé sur le processeur AT80C2051 de Atmel. Ce processeur est un 8031 de la famille MCS-51 d'Intel avec 2kB de flash dans un boitier 20 broches. La documentation d'Intel concernant la programmation de la MSC-51 est donc applicable. En 2016 on peut trouver ce circuit pour moins de 1 euro. Un clavier de 5 touches utlise les pins non utilisées par l'afficheur.

Schéma du montage

Utilisation

Le montage se comporte comme un périphérique I2C esclave, en conséquence il essaie de suivre la fréquence de bus imposée par le maitre mais compte tenu de la fréquence du quartz, de la division par 12 de l'horloge en interne il ne faut espérer une fréquence de bus mieux que 5 à 10 kHz.

La vitesse de la communication sur la liaison série est fixée dans le logiciel à 9600 bits/s.

L'adresse I2C est fixée dans le code à 0x22, ce qui donne un octet d'adresse 0x44 pour l'écriture vers le bus et 0x45 pour la lecture du clavier.

La commande de l'afficheur se fait à partir d'un processeur hôte et consiste à envoyer le message à afficher précédé d'un octet de format ou de positionnement.

Dans la mesure du raisonnable, le format général du message envoyé est le suivant:

    msg | msg 0A msg | msg 0A msg 0A ... msg

Voici la liste des charactères de format et positionnement:

Le processeur hôte doit lire le bus pour obtenir le code des touches qui ont été appuyées. Les touches sont Right, Val, Left, Up, Down et correspondent respectivement aux codes 1, 2, 3, 4, 5 et le bit 7 est positionné à 1 si la touche est relachée.

      4       U
    3 2 1   L V R vue de face
      5       D

Logiciel

Le logiciel est écrit en assembleur A51 et utilise la série de Cross Assembler ASxxxx pour la production du binaire qui doit être installé au préalable.

Après extraction de l'archive, se déplacer dans le répertoire créé et exécuter la commande make.

tar Jxvf afflcd-yyyymmdd.tar.xz
cd afflcd-yyyymmdd
make

Références

  1. ASxxxx Cross Assemblers.
  2. Atmel at89c2051 datasheet.
  3. host part of the programming system.
  4. I2C-bus specification and user manual.

License

The afflcd software is licensed under the terms of the GNU General Public License as published by the Free Software Foundation. See the file "COPYING" in their respective directory.

Download