L'afficheur LCD

 

 
    Année de développement : 2002
 
Liaison avec le système : I2C "maison"
 
Composant utilisé : Pic 16F84
 

 
  L'afficheur LCD nous permet de communiquer avec le robot : visualisation des variables du PicBasic, des E/S, sélection des scénarios etc.
La carte a été développée en utilisant un afficheur LCD du commerce connecté à un Pic 16F84, qui effectue la conversion des données I2C venant du PicBasic vers l'afficheur LCD (liaison parallèle). La carte, qui n'est pas d'une extraordinaire complexité, a été construite avec un morceau de platine d'essai à bandes.

 

 
  Le schéma
 
   
  Le PicBasic envoie les caractères à afficher les uns après les autres. Chaque caractère est codé sur un octet (codage ASCII), une phrase à afficher n'est donc rien d'autre qu'une série d'octets.
Les octets sont transmis du PicBasic vers le Pic de façon série synchrone, c'est-à-dire avec un signal d'horloge et un signal de donnée comme sur le dessin ci-dessous.

 
 
   
  Le côté sympathique de la chose, c'est que le PicBasic peut gérer ce genre de transmission grâce à une seule commande simple : SHIFTOUT.
La commande SHIFTOUT peut être utilisée avec n'importe quel port du PicBasic. Bien évidemment il faut en utiliser 2 (un pour l'horloge et un pour les données), les ports à utiliser sont des arguments de la commande : par exemple SHIFTOUT1,2,0,&H55 ordonne au PicBasic d'utiliser le port 1 pour l'horloge et le port 2 pour les données. Le 0 en troisième argument indique que le bit de poids faible sera envoyé le premier. &H55 est l'octet à envoyer.
Ce mode de transmission n'est pas vraiment de l'I2C car on ne respecte pas toutes les parties du protocole (comme la génération des ACK par exemple), cependant la commande SHIFTOUT peut être paramétrée pour le faire (ça peut parfois servir).
 
Une fois que le Pic a reçu tous les caractères, il les envoie un par un à l'afficheur mais cette fois avec une liaison parallèle sur 8 bits. Le Pic est aussi chargé de gérer d'autres fonctions de l'afficheur. Pas plus d'explication là dessus car les commentaires dans le code source du Pic sont assez explicites.

 

 
  Le programme du Pic a été développé en assembleur :
Télécharger les sources du programme.
 
Du côté PicBasic, voici la routine qui nous permettait d'afficher des caractères sur l'afficheur :
Voir la routine PicBasic.