 | Photo du module I2C "afficheur LCD" |
Le principe de fonctionnementCe 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 ).
Registre | Fonction du registre | reg0 | Registre de commande | reg1 | Registre de donnée | reg2 | inutilisé | reg3 | inutilisé | reg4 | inutilisé | reg5 | inutilisé | reg6 | inutilisé | reg7 | inutilisé |
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 commande | Fonction du LCD | 0 | Aucune commande n'est envoyée au LCD.Le registre de commande est remis a zéro automatiquement aprés chaque commande valide. | 1 | Affiche le caractêre dont le code ASCII se trouve dans le registre de donnée | 2 | Envoie 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 | 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 ! ).
 | 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
LogicielsLe 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 )
 | 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 16907 fois
Prévisualiser la page
Imprimer la page
|