Affichage de chaînes sur LCD graphique avec microcontrôleur 8051 (AT89C52)

Menu Principal

  • Accueil
  • électronique diagrammes de circuits
  • microcontrôleur 8051 projets
  • pic projets de microcontrôleur
  • projets de microcontrôleur Arduino
  • projets de microcontrôleur AVR
  • Tutoriels électronique générale

Recherche sur notre site






Comment faire pour afficher la chaîne sur LCD graphique à l’aide de microcontrôleur 8051 (AT89C52)

16026-Lectures

 

Opérations simples avec LCD graphiques ont été expliquées dans l’article précédent. Cet article illustre les fonctionnalités de graphique LCD pour afficher des chaînes de différentes polices. Il explique le programme pour afficher des chaînes dans les polices 8 x 8 et 5 x 7 et aussi pour les faire défiler verticalement.

Description

L’écran graphique LCD utilisé ici est JHD12864E. Ce LCD est divisé en deux parties qui sont contrôlées par deux contrôleurs différents. Chacune de ces parties est divisée en lignes et colonnes. Pour les instructions de base et la procédure de programmation, consultez interface graphique LCD avec 8051.

Pour afficher les types de polices différentes, les fichiers d’en-tête correspondante ont été créés. Ces fichiers d’en-tête contient les informations d’image bitmap de tous les caractères alphabétiques, numériques et les symboles d’une police particulière. Ces fichiers d’en-tête sont inclus dans le programme principal. (Les déclarations de fichiers d’en-tête sont indiquées entre Code2)

Les chaînes à afficher sont stockées dans un tableau de caractères. Ces chaînes sont passés comme arguments à une fonction définie par l’utilisateur. Les informations d’image bitmap de chaque caractère sont appelées via le pointeur de fichier d’en-tête respectifs. De cette façon la chaîne entière peut être affichée.

Explication de code :
Fonction puts1() :
Cette fonction est utilisée pour afficher la chaîne (avec la police de caractères 8 x 8) directement sur l’écran LCD.

· Tout d’abord, une colonne et un numéros de page sont passés comme arguments par l’intermédiaire de la fonction puts1() dans les variables y et x respectivement.
· y et x sont utilisées pour définir la colonne et page adresses dans la fonction.
· Le pointeur * str reçoit la chaîne (à l’affiche à l’écran) de la fonction principale.
· Puis chaque caractère de la chaîne est prise avec l’aide de la boucle for :
pour (i = 0; str [i]! = 0; i ++)
{
a = (* (str + i)) ;
}
· Le code de l’image bitmap de chaque caractère de la chaîne est tiré de la character8x8 du tableau. Le tableau character8x8 est défini dans le fichier d’en-tête nommé comme <font.h>. Ce tableau contient les codes de l’image bitmap de tous les caractères et ces codes sont disposés dans le même ordre que dans la table ASCII.

· La condition [un * = 8;] est utilisé pour augmenter l’adresse du caractère dans le tableau character8x8 par 8 parce que la taille du bitmap de chaque caractère est 8 octets qui a besoin d’être séché. Ce tableau est enregistré comme code unsigned char. Unsigned char rend un tableau de caractères non signés et enregistre le code clé flash mémoire du microcontrôleur. Ainsi les tableaux longs (qui ne changent pas en cours de code) peuvent être sauvegardés avec petit RAM de 8051 (ici AT89C52 a été utilisé qui a 128 octets de mémoire vive et mémoire flash de 8 K octets).

Fonction puts2() :
Cette fonction est utilisée pour afficher la chaîne ((avec la police de caractères 5 x 7) directement sur l’écran LCD. Cette fonction fonctionne de la même fonction de puts1() avec de légères différences qui sont expliqués ci-dessous.

· Dans la condition [a=(*(str+i)-32);], « 32 » est soustraite car la valeur ASCII du premier caractère de la gamme font5x7 est 32.
· La condition [un * = 5;] est utilisé parce que la taille de l’image bitmap de chaque caractère est 5 octets (et non 8 comme nous l’avons) qui a besoin d’être séché.

Le texte de défilement :
Pour faire défiler les chaînes, la ligne de départ doit être sélectionné. Les étapes suivantes sont à suivre pour écrire la fonction startline :
un) Mettez ces valeurs dans le registre de données

DB7

DB6

DB5

DB4

DB3

DB2

DB1

DB0

1 1

Z5

Z4

Z3

Z2

Z1

Z0

b) CS1 = 1, CS2 = 1 (affichage des données sur les deux moitiés de l’écran LCD)
c) RS = 0, R/W = 0 (pour sélectionner le mode d’instruction)
d) fr = 1
e) delay
f) fr = 0 (pour verrouiller les données dans le registre d’entrée)

Pour faire défiler les chaînes verticalement suffit de passer les valeurs de ligne successives à la fonction setstartline(). Cela peut être fait facilement à l’aide d’un certain temps en boucle (Voir Code). Pour clignoter l’affichage, vient interrompre l’affichage et afficher sur fonctions successivement avec un certain retard. Les connexions de l’écran LCD avec contrôleur sont indiquées dans le schéma de câblage. Voir également afficher des images sur écran LCD graphique.

Schéma de câblage

 

16026-Lectures

Composants

26,191-Lectures

Graphique LCD

Le personnage de 16 x 2 écrans LCD ont leurs propres limitations ; ils peuvent uniquement afficher les caractères de certaines dimensions. Les écrans LCD graphique sont ainsi utilisées pour afficher ch personnalisée…

23,905-Lectures

AT89C51 microcontrôleur

AT89C51 est un microcontrôleur 8 bits et appartient à la famille 8051 Atmel. ATMEL 89C 51 a 4 Ko de Flash programmable et effaçable mémoire morte (…



    Serrure à code électronique avec utilisateur défini le mot de passe en utilisant le microcontrôleur 8051 (AT89C51)

    Comment l’interface Port de l’ordinateur de série (RS232) avec microcontrôleur 8051 (AT89C51)

    Comment l’interface 16 x 2 LCD avec microcontrôleur 8051 (AT89C51)

    Connecteur de téléphone

    Serrure à code électronique avec utilisateur défini le mot de passe en utilisant le microcontrôleur 8051 (AT89C51)

    Thermomètre digital Celsius échelle à l’aide de microcontrôleur 8051 (AT89C51)

    Compteur de visiteurs automatique bidirectionnelle à l’aide de microcontrôleur 8051 (AT89C51)

    LCD fonction horloge digital avec thermomètre numérique à l’aide de microcontrôleur 8051 (AT89C51)

    Comment faire pour interface Module GSM avec microcontrôleur 8051 (AT89C51) à l’aide de PC

    Comment faire pour interface LEDs avec microcontrôleur 8051 (AT89C51)

    Mesure de la distance à l’aide de capteur infrarouge avec ADC0804 & 8051 microcontrôleur (AT89C51) r ADC0804.

    Comment l’interface clavier avec microcontrôleur 8051 (AT89C51)

Tweet
Share on Myspace

Copyright © 2013. All Rights Reserved.

Leave a comment