Regardez le tutoriel vidéo

Les écrans LCD sont des afficheurs alphanumériques (ou graphiques). Ils sont fréquemment utilisés dans des applications à base de microcontrôleur. Il existe plusieurs modèles sur le marché qui se présentent sous différentes formes et tailles.

Pour les afficheurs de type textes ou alphanumérique qui permettent d’afficher des lettres, des chiffres et quelques caractères spéciaux, on retrouve le plus fréquemment le format 2 lignes par 16 colonnes. Il en existe cependant de nombreux autres avec une seule ligne, ou 4 (ou plus) et 8 colonnes, ou 16, ou 20 ou encore plus. vous pouvez choisir la taille en fonction des besoins de vos projets. Beaucoup de ces écrans LCD intègrent le rétroéclairage afin qu’ils puissent être vus dans des conditions faiblement éclairées.

Figure 1: Un écran LCD de 2×16 (2 lignes par 16 colonnes)

Il existe d’autres types d’écrans LCD, comme les afficheurs graphiques monochromes. Avec ces d’écrans vous avez accès à chacun des pixels et vous pouvez donc afficher pas seulement des caractères tels que les chiffres et les lettres comme les écran LCD alphanumérique mais aussi produire des dessins beaucoup plus évolués. Ils sont cependant légèrement plus onéreux que les écran LCD alphanumérique.

Figure 2: Un écran LCD graphiques monochromes (240×128)

Les afficheurs graphiques couleur de l’autre côté sont l’évolution des afficheurs graphiques monochromes la couleur en plus (soit 3 fois plus de pixels à gérer : un sous-pixel pour le rouge, un autre pour le bleu et un dernier pour le vert, le tout forme la couleur d’un seul pixel).

En termes de communication avec l’écran, on peut les regrouper en deux catégories: les écrans LCD parallèles et les écrans LCD série.

Les écrans LCD parallèles sont les plus largement utilisés comme la série populaire Hitachi HD44780. Ils sont connectés au circuit de microcontrôleur de telle sorte que les données sont transférées à l’écran LCD en utilisant plus d’une ligne et généralement quatre lignes de données (mode 4 bits) ou huit lignes de données (8- mode de bits) sont utilisés.

Les écrans LCD série sont connectés à un microcontrôleur en utilisant une ligne de données, ce qui est bon quand vous avez très peu de broches disponibles. Les écrans LCD série sont généralement beaucoup plus facile à utiliser, mais ils sont plus coûteux que ceux parallèles. Dans cet article, nous allons discuter seulement les écrans LCD parallèles, car ils sont moins chers et sont utilisés plus souvent dans des projets à base de microcontrôleurs.

La programmation de bas niveau d’un écran LCD parallèle est généralement une tâche complexe et nécessite une bonne compréhension du fonctionnement interne de l’écran LCD, y compris une compréhension des diagrammes de synchronisation. La bonne nouvelle est qu’il ya beaucoup de bibliothèques lcd que nous pouvons utiliser pour communiquer avec le contrôleur d’écrans LCD HITACHI HD44780. Ce module est monochrome et se présente sous différentes formes et tailles habituellement avec des longueurs de caractère de 8, 16, 20, 24, 32 et 40 et 1, 2 ou 4 lignes. Chaque caractère est composé de 5×8 ou 5×11 de matrice de points.

Connexion de l’écran LCD

Cet écran LCD a généralement 14 broches qui sont marqués sur le circuit imprimé, mais certains modèles ont 16 broches si le dispositif a un rétro-éclairage intégré

No Rôle Nom 
1 Masse VSS
2 Alimentation VDD
3 Réglage du contraste Vee
4 Sélection du registre (commande ou donnée) RS
5 Lecture ou écriture R/W
6 Entrée de validation E
7 à 14 Bits de données D0 à D7
15 Anode du rétroéclairage (+5V) A
16 Cathode du rétroéclairage (masse) K

Tableau 1: description des broches

Le tableau 1 donne la description de chaque broche de l’écran LCD, une résistance variable 10K peut être reliée à la broche centrale du potentiomètre et la broche 3 (VEE) de l’écran pour régler le contraste de l’écran LCD. Une résistance série de 220 ohms est utilisé pour le rétroéclairage de l’écran LCD comme le montre la figure 3 ci-dessous

LCD connection to Port B of PIC Microcontroller

Figure 3: écran LCD Connecté au PORTB du Microcontrôleur PIC 

Téléchargez la fiche technique du contrôleur LCD HD44780 pour plus d’informations.

Bibliothèque LCD de mikroC Pro pour PIC  

La bibliothèque LCD de mikroC PRO pour PIC offre un grand nombre de fonctions pour contrôler les écrans LCD à texte avec interface de données 4 bits.

Connexions de l’écrans LCD

Avec mikroC, la première chose à faire est de définir les connexions du module LCD, en précisant quelle broche du PIC à utiliser pour quelle ligne de données.

Commande Description Exemple de code
extern sfr sbit LCD_RS: Register Select line. sbit LCD_RS at RB4_bit; // Utiliser RB4 pin comme RS
extern sfr sbit LCD_EN: Enable line. sbit LCD_EN at RB5_bit;  // Utiliser RB5 pin comme EN
extern sfr sbit LCD_D7; Data 7 line. sbit LCD_D7 at RB3_bit;   // Utiliser RB3 pin comme D7
extern sfr sbit LCD_D6; Data 6 line. sbit LCD_D6 at RB2_bit;    // Utiliser RB2 pin comme D6
extern sfr sbit LCD_D5; Data 5 line. sbit LCD_D5 at RB1_bit;   // Utiliser RB1 pin comme D5
extern sfr sbit LCD_D4; Data 4 line. sbit LCD_D4 at RB0_bit;    // Utiliser RB0 pin comme D4
extern sfr sbit LCD_RS_Direction; Register Select direction pin. sbit LCD_RS_Direction at TRISB4_bit;
extern sfr sbit LCD_EN_Direction; Enable direction pin. sbit LCD_EN_Direction at TRISB5_bit;
extern sfr sbit LCD_D7_Direction; Data 7 direction pin. sbit LCD_D7_Direction at TRISB3_bit;
extern sfr sbit LCD_D6_Direction; Data 6 direction pin. sbit LCD_D6_Direction at TRISB2_bit;
extern sfr sbit LCD_D5_Direction; Data 5 direction pin. sbit LCD_D5_Direction at TRISB1_bit;
extern sfr sbit LCD_D4_Direction; Data 4 direction pin. sbit LCD_D4_Direction at TRISB0_bit;

Tableau 2: les connexions du module LCD

Routines de la bibliothèque

Ci-dessous sont de courtes descriptions de la bibliothèque LCD, Pour plus d’informations, s’il vous plaît visitez la de la bibliothèque LCD sur le site web de mikroC pro pour PIC.

Lcd_Init
Cette fonction initialise le module LCD.
Avant de pouvoir utiliser cette fonction, les connexions du module LCD doivent d’abord être définies comme indiqué ci-dessus dans le tableau 2.

Exemple:

Lcd_Out
Cette fonction imprime du texte sur Lcd à partir d’une position que vous avez spécifiée.
Les variables de chaîne de caractère et les littéraux peuvent être transmis sous forme de texte.
Avant d’utiliser cette fonction, l’écran LCD doit être initialisé. (Vérifier la fonction Lcd_Init ()).

Prototype: void Lcd_Out (ligne char, colonne char, char * text);
Paramètres: ligne: Le numéro de ligne de la position de départ
Colonne: Le numéro de colonne de la position de départ
Text: texte à écrire, peut être une chaîne de caractères ou un texte sous guillemets

Exemple:

Lcd_Out_Cp

Cette fonction imprime du texte sur Lcd à la position actuelle du curseur. Les variables de chaîne de caractère et les littéraux peuvent être transmis sous forme de texte.
Avant d’utiliser cette fonction, l’écran LCD doit être initialisé. (Vérifier la fonction Lcd_Init ()).

Prototype: void Lcd_Out_Cp(char *text);
Paramètres: text: texte à écrire

Exemple:

Lcd_Chr

Cette fonction imprime un caractère sur Lcd à partir d’une position que vous avez spécifiée.

Les variables de chaîne de caractère et les littéraux peuvent être transmis sous forme de texte.
Avant d’utiliser cette fonction, l’écran LCD doit être initialisé. (Vérifier la fonction Lcd_Init ()).

Prototype: void Lcd_Chr(char row, char column, char out_char);
Paramètres: row: numéro de la ligne de départ. column: numéro de colonne de la position de départ.. out_char: caractère à écrire, peut être un seul caractère sous apostrophes

Exemple:

Lcd_Chr

Cette fonction imprime le caractère sur Lcd à la position actuelle du curseur. Les variables de chaîne de caractère et les littéraux peuvent être transmis sous forme de texte.
Avant d’utiliser cette fonction, l’écran LCD doit être initialisé. (Vérifier la fonction Lcd_Init ()).

Prototype: void  Lcd_Chr_Cp(char out_char);
Paramètres: Out_char: caractère à écrire

Exemple:

Lcd_Cmd

Cette fonction envoie une commande à l’écran LCD. Avant d’utiliser cette fonction, l’écran LCD doit être initialisé. (Vérifier la fonction Lcd_Init ()).

Prototype: void Lcd_Cmd(char out_char);
Paramètres: Out_char: commande à envoyer

Exemple:

Commandes Lcd disponibles

Commandes Lcd                            Usage

  • _LCD_FIRST_ROW                        Déplacer le curseur sur la 1ère rangée
  • _LCD_SECOND_ROW                  Déplacer le curseur sur la 2ème rangée
  • _LCD_THIRD_ROW                      Déplacer le curseur sur la 3ème rangée
  • _LCD_FOURTH_ROW                  Déplacer le curseur sur la 4ème rangée
  • _LCD_CLEAR                                    Effacer l’affichage
  • _LCD_RETURN_HOME              Retourner le curseur à la position initiale, retourne un affichage déplacé à sa position d’origine. La RAM des données d’affichage n’est pas affectée.
  • _LCD_CURSOR_OFF                      Désactiver le curseur
  • _LCD_UNDERLINE_ON                Souligner le curseur
  • _LCD_BLINK_CURSOR_ON       Activer le curseur clignotant
  • _LCD_MOVE_CURSOR_LEFT    Déplacer le curseur vers la gauche sans modifier les données d’affichage RAM
  • _LCD_MOVE_CURSOR_RIGHT  Déplacer le curseur vers la droite sans changer les données d’affichage RAM
  • _LCD_TURN_ON                    Activer l’affichage Lcd
  • _LCD_TURN_OFF                 Désactiver l’affichage Lcd
  • _LCD_SHIFT_LEFT              Déplacer l’affichage vers la gauche sans modifier les données d’affichage RAM
  • _LCD_SHIFT_RIGHT           Déplacer l’écran vers la droite sans changer les données d’affichage RAM

Exemple:

Afficher les mots «Hello World» sur la première ligne de l’écran LCD et les mots «LCD Display» sur la deuxième ligne comme indiqué dans le schéma de circuit de la figure 4 ci-dessous.

Figure 4: Connexion LCD au microcontrôleur PIC

Vous pouvez télécharger tous les fichiers de projet (mikroC Pro pour PIC et Proteus schématique) ci-dessous. Tous les fichiers sont compressés, vous aurez besoin de les décompresser (Télécharger une version gratuite de l’utilitaire Winzip pour décompresser les fichiers).

Télécharger:  LCD mikroC Source code

Télécharger:  LCD Tutorial Proteus project