- Composants requis:
- LCD graphique:
- Affichage d'une image sur l'écran LCD graphique à l'aide du 8051:
- Explication du circuit:
- Explication de la programmation:
Dans notre vie quotidienne, nous voyons de nombreux types d'appareils pour afficher du texte, des images et des graphiques. Les écrans LCD sont l'un des dispositifs d'affichage les plus populaires en électronique et utilisés dans la plupart des projets qui affichent une sorte d'informations. Il existe de nombreux types d'écrans LCD utilisés dans les projets électroniques. Nous avons déjà utilisé un écran LCD 16X2 dans beaucoup de nos projets et également utilisé un écran LCD TFT avec Arduino. Vous pouvez trouver tous nos projets liés à l'écran LCD 16X2 en suivant ce lien, y compris l' interfaçage avec 8051, AVR, Arduino et bien d'autres.
Dans ce tutoriel, nous allons faire l' interface graphique LCD avec le microcontrôleur 8051. Dans ce projet, nous montrerons comment afficher une image sur un écran LCD graphique (GLCD).
Composants requis:
- LCD graphique
- Microcontrôleur AT89c52 8051
- Régulateur de tension 7805
- Condensateur 1000 uf
- Condensateur 10 uF
- Résistance 10K
- POT 10K
- Oscillateur à cristal 12 MH
- Fil de connexion
- Planche à pain
- Burg bandes mâle
- Source de courant
- LED
- Résistance 220 Ohm
- Résistance 1K
LCD graphique:
Un simple écran LCD 16x2 a 16 broches, mais l' écran LCD graphique a 20 broches. La description de la broche est donnée ci-dessous selon sa fiche technique:
N ° de broche | Nom de la broche | La description | Fonction |
1 | VSS | Sol | 0 Volt |
2 | VDD | Source de courant | 5 volts |
3 | V0 | Réglage du contraste de l'écran LCD | |
4 | RS | Sélection du registre de commande / données | RS = 0: sélection de commande et RS = 1: sélection de données |
5 | R / W | Registre de lecture / écriture | R / W = 0: Ecrire la sélection et R / W = 1: Lire la sélection |
6 | E | Activer le signal | |
sept | DB0 | Broche d'entrée / sortie de données (DB0-DB7) | 8 bits (DB0-DB7) |
8 | DB1 | ||
9 | DB2 | ||
dix | DB3 | ||
11 | DB4 | ||
12 | DB5 | ||
13 | DB6 | ||
14 | DB7 | ||
15 | CS1 | Sélection de puce | CS1 = 1, Signal de sélection de puce pour IC1 |
16 | CS2 | Sélection de puce | CS2 = 1, Signal de sélection de puce pour IC2 |
17 | RST | Réinitialiser | Réinitialiser GLCD |
18 | VEE | Tension négative pour le pilote LCD | |
19 | UNE | Rétroéclairage LED | 5 volts |
20 | K | Rétroéclairage LED | Sol |
Affichage d'une image sur l'écran LCD graphique à l'aide du 8051:
Pour afficher une image sur un écran LCD graphique, nous devons d'abord convertir cette image en code d'assemblage, afin que le microcontrôleur 8051 puisse la comprendre et la lire. Nous devons donc suivre les étapes ci-dessous pour convertir une image en code HEX:
Étape 1: Nous devons d'abord télécharger une application qui convertit l'image (format BMP) en code d'assemblage. Alors téléchargez l' application de conversion d'image BMP2ASM à partir de ce lien, faites un clic droit sur le lien, puis cliquez sur Enregistrer le lien sous…
Étape 2: Ensuite, sélectionnez l'image que vous souhaitez afficher sur l' écran LCD graphique et convertissez-la en BMP, (si elle n'est pas déjà au format BMP) en utilisant n'importe quelle application comme MS Paint, Photoshop, etc. Ou vous pouvez trouver de nombreux sites Web en ligne pour la conversion du format d'image. Nous avons ci-dessous l'image BMP, avec une taille de 128x64:
Étape 3: Extrayez maintenant le fichier BMP2ASM.zip, que nous avons téléchargé à l'étape 1, ouvrez Bmp2asm.exe à l'intérieur, puis sélectionnez l'image BMP.
Étape 4: Maintenant, appuyez sur «Convertir» dans la fenêtre de l'application BMP2ASM.
Étape 5: Copiez ensuite le code généré et collez-le dans le programme de 8051 dans Keil uVision. Faites quelques modifications et compilez le code.
Votre code est maintenant prêt à être téléchargé dans 8051 Microcontroller.
Explication du circuit:
Les connexions de circuits, pour l' interfaçage de l'écran LCD graphique avec le microcontrôleur 8051, sont faciles et presque identiques à celles de la connexion d'un écran LCD 16x2 à 8051. Mais l'écran LCD 16x2 a 16 broches et GLCD a 20 broches.
Un pot de 10K est utilisé pour définir le contraste du GLCD. Broches de commande de GLCD RS, R / W et E sont directement connectés au 89C52 nombre broche P1.0, P1.1 P1.2 et. Les broches de sélection de puce CS1 et CS2 de l'écran LCD sont respectivement connectées aux broches P1.3 et P1.4. Les broches de données DB0-DB7 sont directement connectées au PORT P2. Un régulateur de tension 7805 est utilisé pour une alimentation régulière de 5 volts. En vidéo de démonstration, j'ai utilisé une alimentation Arduino.
Explication de la programmation:
Tout d'abord, nous incluons les fichiers d'en-tête requis dans le programme et définissons les bits pour les broches de contrôle et de données de GLCD.
#comprendre
Après cela, nous avons créé une fonction de retard.
délai vide (int itime) {int i, j; pour (i = 0; i
La fonction void lcd_disp_on () est utilisée pour allumer l'écran.
La fonction void setCursorY (int y) est créée pour définir la colonne dans GLCD et la fonction void setCursorX (int x) est créée pour définir la page sur le GLCD. Le fichier de code complet est donné dans la section Code ci-dessous.
Après avoir défini la colonne et la page, nous avons écrit une fonction pour envoyer la commande et les données à GLCD.
void lcdprint (char dat, int size) {unsigned int i; pour (i = 0; i
Dans la fonction void main () , nous avons effacé GLCD puis défini Colonne et Page. Ensuite, envoyez les données à l'écran LCD en utilisant la fonction void lcdprint (char dat, int size) .
void main () {int x, y; P3 = 0xff; tandis que (1) {lcdclear (); pour (y = 0; y <8; y ++) {pour (x = 0; x <128; x ++) {lcd_disp_on (); setCursorX (y); setCursorY (x); lcdprint (image, x); }}…………………..
Flux de code:
- Tout d'abord, lorsque nous mettons le système sous tension, le programme efface le GLCD et allume l'affichage.
- Ensuite, placez le curseur sur Colonne, d'où nous voulons écrire les données.
- Ensuite, placez le curseur sur Page, à partir de laquelle nous voulons écrire les données.
- Maintenant, le programme envoie les données à l'emplacement sélectionné un par un jusqu'à 128X8 fois. Parce qu'un GLCD a 8 pages et 128 colonnes.