* *
* *
Electronique
+ Arduino
 -  Bus I2C
+ Divers
+ Game Boy Advance
+ Robotique
+ Z80
Informatique
+ Commande numérique
+ Les DLL
+ Mon Guppy
+ divers
Mathématiques
Astronomie
Webmaster - Infos
Ecrire à Grosse Christophe  Webmestre
Ajouter aux favoris  Favoris
Recommander ce site à un ami  Recommander
Version mobile   Version mobile
Recherche




Préférences

 Nombre de membres 30 membres


Utilisateurs en ligne

( personne )
Module I2C : Afficheur LCD 1*16 caractêres


 lcd.jpg
Photo du module I2C "afficheur LCD"

Le principe de fonctionnement

Ce module se connecte sur l'interface i2c universelle pour PC décrite sur ce site grace a un cable muni de connecteurs 6P/4C.La base du montage est le module "interface I2C pour PIC16C84" décrit sur ce site auquel a été ajouté un écran LCD alphanumérique pouvant afficher 16 cractêres. Une fois connecté sur le bus et alimenté via celui-ci ,le PIC16F84 se comporte comme un composant I2C possédant 8 registres internes 8 bits accessibles individuellement en lecture et en écriture.Pour commander l'afficheur,seul deux de ses registres seront utilisés ( voir le tableau ci-dessous ).

RegistreFonction du registre
reg0Registre de commande
reg1Registre de donnée
reg2inutilisé
reg3inutilisé
reg4inutilisé
reg5inutilisé
reg6inutilisé
reg7inutilisé
Les registres du PIC16F84 et leur fonctions.

Le registre de commande permet d'accéder aux différentes fonctions du LCD comme le montre le tableau ci-dessous.

Valeur du registre de commandeFonction du LCD
0Aucune commande n'est envoyée au LCD.Le registre de commande est remis a zéro automatiquement aprés chaque commande valide.
1Affiche le caractêre dont le code ASCII se trouve dans le registre de donnée
2Envoie une commande au LCD dont le n° se trouve dans le registre de donnée. Voici les valeurs pouvant se trouver dans le registre de donné et la fonction associée :

1 : Pour effacer l'écran
2 : Pour faire revenir le curseur au début de la ligne
8 : Pour Etteindre l'écran LCD
12 : Pour Allumer l'écran LCD
16 : Pour déplacer le curseur vers la gauche
20 : Pour déplacer le curseur vers la droite

Les commandes du modules LCD

Ce module pourra être détecté automatiquement grace à sa chaine d'identification ( voir interface I2C pour PIC16C84 pour plus de précisions ) qui vaut :

Chaine d'identification = LCD16
Numéro de version = 1.0

Schéma et réalisation pratique

lcd.gif
Shémas du module LCD


Comme d'habitude , les lignes SDA et SCL sont directement reliées aux broches bidirectionnels RB0/RB1. L'utilisation de RB0/INT permet de déclencher une interruption logicielle du PIC16F84 lors de l'arrivé d'une trame I2C.Les broches RB4,RB5 et RB6 sont des entrées qui possède des résistances de pull-up vers le +5V. Un dip-switch à 3 interrupteur permet de forcer celles-ci à l'état bas.Il est ainsi possible de personaliser l'adresse I2C de la platine ( même lorque le montage est alimenté ! ).L'adresse de base étant 24. Un oscillateur à quartz cadencé à 4Mhz est connecté sur les entrés OSC1 et OSC2.L'alimentation du montage se fait directement à partir du bus I2C. Les broches RA0,RA1,RA2,RA3 sont reliées aux lignes de données B4,B5,B6,B7 de l'afficheur. Comme le sugère le schémas, l'afficheur est controlé grâce à un bus de donnée de 4 bits. Cette possibilité permet de simplifier le cablage et limite le nombre d'entrées/sorties nécessaires au prix d'un léger surcroit de programmation. Les lignes RS et E de l'afficheur sont reliées aux broches RB2,RB3. L'ajustable VR1 permet de régler le contraste du LCD. La broche R/W du LCD est directement reliée à la masse : l'afficheur se trouve donc constament en mode écriture il ne sera donc pas possible de lire ces registres d'état ( Cela ne représente d'ailleur pas un grand intérêt ! ).

conecb.gif
Brochage du module vu de dessus


Les deux modular jack ont un brochage différent repéré par les symboles comme sur la photo ci-dessus. Pour avoir plus de précision sur la connection de ce module à l'interface allez voir sur la page de cette dernière. Tous les composants prennent place sur une platine d'expérimentation ELEX N°1 ( voir la photo du début ).

Nomenclature


Résistances

VR1 : 22K ajustable

Condensateurs


C1,C2 : 20 pF
C3 : 100 nf

Circuits Intégrés

IC1 : PIC16F84
LCD 1*16 : Un afficheur LCD une ligne de 16 caractêres type HITACHI HD44780
ou LTN111 SHARP ou équivalent...
Divers :

Un quartz 4Mhz
Un porte circuit 6 broches
Un porte circuit 18 broches
Deux connecteur modular jack 6P/4C à souder sur CI.
Le cordon de laison 6P/4C.
Un dip-switch à 3 interrupteurs

Logiciels

Le source LCD.ASM devra être compilé par l'assembleur MPASM de MICROCHIP.Le résultat obtenu est le fichier LCD.HEX qui servira a programmer le PIC16C84.
Une unité écrite en Turbo Pascal permet de gérer ce module.Vous pouvez librement télécharger le source ( LCD.PAS ) de cette unité , ou directement l'unité compilée ( LCD.TPU ) a intégrer dans vos projets futurs. Le listing étant documenté , je ne m'attarderais pas sur le fonctionnement de cette unité.

Une DLL ( 16 bits ) sera bientot disponible pour ceux qui désirerait programmer sous windows.

A titre d'exemple, le programme TLCD.EXE permet de tester ce module. Vous pouvez également télécharger le source TLCD.PAS ( nécessite les fichiers BUSI2C.TPU , PIC.TPU et TACHY.TPU )

tlcd.gif
Illustration du programme de test


Date de création : 28/10/2005 @ 17:25
Dernière modification : 31/01/2008 @ 07:43
Catégorie : Bus I2C
Page lue 13118 fois


Prévisualiser la page Prévisualiser la page     Imprimer la page Imprimer la page

react.gifRéactions à cet article


Personne n'a encore laissé de commentaire.
Soyez donc le premier !


^ Haut ^

GuppY - http://www.freeguppy.org/    Site créé avec GuppY v4.5.8 © 2004-2005 - Licence Libre CeCILL   GuppY - http://www.freeguppy.org/

Document généré en 0.27 seconde