Acheter un écran LCD de téléphone portable ou un écran OLED, c'est mieux
Dans notre vie quotidienne, nous ne sommes pas étrangers aux écrans à cristaux liquides. Le module d'affichage à cristaux liquides a été utilisé comme beaucoup de produits électroniques à travers des appareils, tels que dans la calculatrice, le multimètre, la table électronique et de nombreux produits électroniques ménagers peuvent être vus, l'affichage est principalement numérique, des symboles spéciaux et des graphiques. Dans l'interface homme-machine MCU, les méthodes de sortie générales sont les suivantes : tube lumineux, tube numérique LED, affichage à cristaux liquides. Le tube électroluminescent et le tube numérique LED sont couramment utilisés, et leur matériel et logiciel sont relativement simples. Ils ont été présentés dans les chapitres précédents, mais ne sont pas présentés ici. Ce chapitre se concentre sur l'application de l'écran LCD de type caractère.
L'application de l'affichage à cristaux liquides en tant que périphérique de sortie dans un système de micro-ordinateur à puce unique présente les avantages suivants :
Haute qualité d'affichage
Parce que les LCD conservent cette couleur et cette luminosité à chaque point après avoir reçu un signal, ils brillent constamment, contrairement aux écrans à tube cathodique (CRTS) qui doivent être constamment rafraîchis. Par conséquent, l'écran LCD a une qualité d'image élevée et ne scintille pas.
Interface de type numérique
L'écran LCD est numérique et l'interface du système de micro-ordinateur à puce unique est plus simple et fiable, et l'opération est plus pratique.
Petite taille et poids léger
L'écran LCD affiche l'affichage en contrôlant l'état des molécules de cristaux liquides à travers les électrodes sur l'écran d'affichage, ce qui est beaucoup plus léger que l'affichage traditionnel avec la même zone d'affichage.
Basse consommation énergétique
Relativement parlant, la consommation d'énergie de l'écran LCD est principalement consommée dans ses électrodes internes et son circuit intégré de pilotage, de sorte que la consommation d'énergie est bien inférieure à celle des autres écrans.
10.8.1 Présentation de l'écran LCD
â principe d'affichage à cristaux liquides
Le principe de l'affichage à cristaux liquides est d'utiliser les caractéristiques physiques des cristaux liquides, à travers la tension pour contrôler la zone d'affichage, il y a un affichage de puissance, de sorte que vous pouvez afficher le graphique. L'affichage à cristaux liquides a les caractéristiques d'une épaisseur mince, adapté à l'entraînement direct de circuit intégré à grande échelle, facile à réaliser un affichage couleur, a été largement utilisé dans les ordinateurs portables, les appareils photo numériques, les outils de communication mobile PDA et de nombreux autres domaines.
(2) Classification de l'affichage à cristaux liquides
Il existe de nombreux types de méthodes de classification d'affichage à cristaux liquides, qui peuvent généralement être divisées en segments, caractères, matrice de points, etc. En plus de l'affichage noir et blanc, de l'affichage à cristaux liquides et de l'affichage couleur multi-gris. Selon le mode de conduite, il peut être divisé en Static, SimpleMatrix et ActiveMatrix.
(3) affichage LCD divers principe d'affichage graphique :
Affichage des segments de ligne
Le LCD sous forme de diagramme matriciel est composé de MxN unités d'affichage. En supposant que l'écran d'affichage LCD a 64 lignes, chaque ligne a 128 colonnes, et chaque colonne 8 correspond à 8 bits de 1 octet, c'est-à-dire que chaque ligne est composée de 16 octets, un total de 16 × 8 = 128 points, et 64×16 unités d'affichage sur l'écran correspondent à 1024 octets de zone RAM d'affichage. Chaque octet correspond à la lumière et à l'obscurité de la position correspondante sur l'affichage. Par exemple, la luminosité et l'obscurité de la première ligne de l'écran sont déterminées par le contenu de 16 octets de 000H -- 00FH dans la zone RAM. Lorsque (000H) =FFH, une courte ligne lumineuse d'une longueur de 8 points s'affiche dans le coin supérieur gauche de l'écran. Lorsque (3FFH) =FFH, une courte ligne lumineuse s'affiche dans le coin inférieur droit de l'écran ; Lorsque (000H) =FFH, (001H) =00H, (002H) =00H... Lorsque (00EH) =00H, (00FH) =00H, une ligne pointillée composée de 8 lignes claires et de 8 lignes sombres s'affichera à le haut de l'écran. C'est le principe de base de l'affichage LCD.
Affichage des caractères
Il est plus compliqué d'afficher un caractère avec LCD, car un caractère est composé d'une matrice de points 6×8 ou 8×8. Il est nécessaire de trouver les 8 octets de la zone RAM d'affichage correspondant à certaines positions sur l'écran d'affichage, et de faire en sorte que les différents bits de chaque octet soient "1" et les autres soient "0", qui est la lumière de "1" et la lumière de "0". Et c'est ce qui fait un personnage. Cependant, pour le contrôleur avec générateur de caractères, il est relativement simple d'afficher des caractères. Vous pouvez faire fonctionner le contrôleur en mode texte, connaître l'adresse correspondant à la RAM d'affichage en fonction du numéro de ligne et du nombre de colonnes dans chaque ligne affichée sur l'écran LCD, configurer le curseur et envoyer le code correspondant au caractère ici.
Affichage des caractères chinois
L'affichage des caractères chinois adopte généralement la voie graphique, à l'avance du micro-ordinateur pour extraire le code de points du caractère chinois à afficher (généralement à l'aide d'un logiciel de police), chaque caractère chinois représentait 32B, divisé en deux moitiés, chacune représentant 16B, le côté gauche est 1, 3, 5... A droite sont 2, 4, 6... L'adresse correspondant à la RAM d'affichage peut être trouvée en fonction du numéro de ligne et du nombre de colonnes dans chaque ligne affichée sur l'écran LCD, placez le curseur, envoyez le premier octet du caractère chinois à afficher, ajoutez 1 à la position du curseur, envoyez le deuxième octet, modifiez
Les lignes sont alignées sur les colonnes et le troisième octet est envoyé... Jusqu'à l'affichage 32B, vous pouvez obtenir un caractère chinois complet sur l'écran LCD.
10.8.21602 Vue d'ensemble de l'écran LCD des caractères
Le module d'affichage à cristaux liquides de type caractère est une sorte d'écran LCD à matrice de points spécialement utilisé pour afficher des lettres, des chiffres, des symboles, etc. À l'heure actuelle, 16* 1,16 *2, 20*2 et 40*2 lignes sont couramment utilisées. Ce qui suit à Changsha Sun People Electronics Co., LTD. LCD 1602 caractères comme exemple, pour présenter son utilisation. La Figure 10-53 montre un écran LCD typique de 1602 caractères.
Figure 10-531602 vue physique de l'écran LCD de caractères
10.8.2.11602 Paramètres de base LCD et fonctions des broches
Le 1602LCD peut être divisé en deux types : avec et sans rétroéclairage. La plupart des contrôleurs de base sont HD44780. Celui avec rétroéclairage est plus épais que celui sans rétroéclairage.
Figure 10-541602Dimensions LCD
Principaux paramètres techniques du 1602LCD :
Capacité d'affichage :16 x 2 caractères
Tension de fonctionnement de la puce : 4,5-5,5 V
Courant de fonctionnement : 2,0 mA (5,0 V)
Meilleure tension de fonctionnement du module : 5,0 V
Taille des caractères : 2,95 x 4,35 (L x H) mm
Description de la fonction de broche
Le 1602LCD utilise des ports standard à 14 broches (sans rétroéclairage) ou à 16 broches (avec rétroéclairage). Le Tableau 10-13 décrit les ports de broches :
Numéro de série
symbole
Description de la broche
Numéro de série
symbole
Description de la broche
1
VSS
Le pouvoir de
9
D2
Les données
2
VDD
positif
10
D3
Les données
3
LV
Biais d'affichage à cristaux liquides
11
D4
Les données
4
RS
Sélection de données/commandes
12
D5
Les données
5
L/E
Options de lecture/écriture
13
D6
Les données
6
E
Peut faire le signal
14
D7
Les données
7
D0
Les données
15
BLA
Pôle positif de la source de lumière arrière
8
D1
Les données
16
NOIR
Électrode négative de la source de rétroéclairage
Tableau 10-13 : Ports de broche
Pied 1 : VSS est l'alimentation au sol.
Pied 2 : VDD est connecté à une alimentation positive de 5 V.
Le troisième pied: VL pour l'extrémité de réglage du contraste LCD, connecté au contraste de puissance positif est le plus faible, le contraste au sol le plus élevé, le contraste est trop élevé produira un "fantôme", peut être utilisé via un potentiomètre 10K pour régler le contraste.
Le quatrième pied : RS pour la sélection du registre, niveau de tension élevé pour sélectionner le registre de données, niveau de tension bas pour sélectionner le registre d'instructions.
Pied 5 : R/W est la ligne de signal de lecture/écriture. L'opération de lecture est effectuée à haute tension et l'opération d'écriture est effectuée à basse tension. Lorsque RS et R/W sont tous deux de bas niveau, des instructions ou des adresses d'affichage peuvent être écrites ; lorsque RS est de niveau bas, R/W est de niveau haut, le signal occupé peut être lu ; lorsque RS est de haut niveau, R/W est de bas niveau, les données peuvent être écrites.
Broche 6 : l'extrémité E est l'extrémité d'activation. Lorsque l'extrémité E passe du niveau haut au niveau bas, le module LCD exécute les commandes.
Broches 7 à 14 : D0 à D7 sont des câbles de données bidirectionnels 8 bits.
Pied 15 : pôle positif de la source de lumière arrière.
Pied 16 : pôle négatif de la source de lumière arrière.
10.8.2.31602 Description de la commande LCD en séquence temporelle
Le contrôleur du 1602 LCD dispose de 11 commandes de contrôle, comme indiqué dans le Tableau 10-14 :
Le numéro de série
instruction
RS
L/E
D7
D6
D5
D4
D3
D2
D1
D0
1
Affichage clair
0
0
0
0
0
0
0
0
0
1
2
Le curseur revient
0
0
0
0
0
0
0
0
1
*
3
Définir le mode de saisie
0
0
0
0
0
0
0
1
IDENTIFIANT
S
4
Affiche le contrôle marche/arrêt
0
0
0
0
0
0
1
D
C
B
5
Curseur ou changement de caractère
0
0
0
0
0
1
S/C
R/L
*
*
6
Définir la fonction
0
0
0
0
1
DL
N
F
*
*
7
Définir l'adresse mémoire d'occurrence de caractère
0
0
0
1
Adresse mémoire d'occurrence de caractère
8
Définir l'adresse de la mémoire de données
0
0
1
Affiche l'adresse de la mémoire de données
9
Lire le signe occupé ou l'adresse
0
1
BF
Adresse du comptoir
10
Écrire des nombres dans CGRAM ou DDRAM)
1
0
Le contenu des données à écrire
11
Lire depuis CGRAM ou DDRAM
1
1
Le contenu des données de la lecture
Tableau 10-14 : Tableau des commandes de contrôle
Les opérations de lecture et d'écriture du module LCD 1602, les opérations d'écran et d'étiquette optique doivent être réalisées grâce à la programmation d'instructions. (Remarque : 1 correspond au niveau haut, 0 au niveau bas)
Instruction 1 : effacement de l'affichage, code de commande 01H, réinitialisation du curseur à l'adresse 00H.
Instruction 2 : Réinitialisation du curseur, le curseur revient à l'adresse 00H.
Commande 3 : Curseur et mode d'affichage Réglages I/D : direction du mouvement du curseur, décalage haut niveau vers la droite, décalage bas niveau vers la gauche S : si tout le texte à l'écran se déplace vers la gauche ou vers la droite. Un niveau haut est valide, un niveau bas est invalide.
Instruction 4 : Affichez la commande de l'interrupteur. D : contrôle l'activation et la désactivation de l'affichage général. Le niveau haut indique l'affichage ; le niveau bas indique l'affichage éteint. C : contrôle l'activation et la désactivation du curseur. Le niveau haut indique le curseur ; un niveau bas indique qu'il n'y a pas de curseur.
Commande 5 : Décalage du curseur ou de l'affichage S/C : Déplacer le texte affiché aux hautes tensions et déplacer le curseur aux basses tensions.
Commande 6 : Commande de réglage des fonctions DL : bus 4 bits à haute tension, bus 8 bits à basse tension N : affichage une ligne à basse tension, affichage double ligne à haute tension F : caractères matriciels 5x7 à basse tension, 5x10 caractères matriciels à haute tension.
Instruction 7 : réglage de l'adresse RAM du générateur de caractères.
Instruction 8 : Réglage de l'adresse DDRAM.
Commande 9 : Lire le signal d'occupation et l'adresse du curseur BF : indique le bit d'indicateur d'occupation. Le niveau haut indique occupé. À ce stade, le module ne peut pas recevoir de commandes ou de données.
Instruction 10 : Écrire des données.
Instruction 11 : Lire les données.
Le tableau de synchronisation des puces compatibles avec HD44780 est le suivant :
Lire l'état
L'entrée
RS=L, R/W=H, E=H
Le résultat
D0 - D7 = mot d'état
Consignes écrites
L'entrée
RS=L, R/W=L, D0 -- D7= code instruction, E= impulsion haute
Le résultat
Il n'y a pas
Lire les données
L'entrée
RS=H, R/W=H, E=H
Le résultat
D0 - D7 = données
Ecrire les données
L'entrée
RS=H, R/W=L, D0 -- D7= données, E= impulsion haute
Le résultat
Il n'y a pas
Tableau 10-15 : Liste de séquence des opérations de base
Les figures 10-55 et 10-56 montrent la synchronisation des opérations de lecture et d'écriture.
Figure 10-55 Séquence de temps de l'opération de lecture
Figure 10-56 Séquence temporelle des opérations d'écriture
10.8.2.41602 Mappage d'adresse RAM LCD et table de polices standard
Le module LCD est un dispositif d'affichage lent, donc avant d'exécuter chaque instruction, il est nécessaire de confirmer que le drapeau occupé du module est bas, indiquant que le module n'est pas occupé, sinon l'instruction sera invalide. Pour afficher les caractères, saisissez d'abord l'adresse du caractère d'affichage, c'est-à-dire pour indiquer au module où afficher les caractères. La figure 10-57 est l'adresse d'affichage interne du 1602.
Figure 10-571602 Adresse interne affichée sur l'écran LCD
Par exemple, si l'adresse du premier caractère de la seconde ligne est 40H, peut-on positionner le curseur à la position du premier caractère de la seconde ligne en écrivant directement 40H ? Cela ne fonctionnera pas, car le bit D7 le plus élevé doit être constant au niveau élevé 1 lors de l'écriture de l'adresse d'affichage, de sorte que les données réelles écrites doivent être 01000000B (40H) +10000000B(80H)=11000000B(C0H).
Lors de l'initialisation du module LCD, le mode d'affichage doit être défini en premier. Lorsque le module LCD affiche des caractères, le curseur se déplace automatiquement vers la droite sans intervention manuelle. Avant chaque commande d'entrée pour déterminer si le module LCD est dans l'état occupé.
La mémoire de génération de caractères (CGROM) à l'intérieur du module LCD 1602 contient 160 graphiques de caractères matriciels différents, comme illustré à la Figure 10-58. Ces caractères sont : Chaque caractère a un code fixe A, par exemple, le code de la lettre majuscule anglaise « A » est 01000001B (41H). Lorsque le module affiche le graphe de caractères matriciels à l'adresse 41H, on peut voir la lettre "A".
Figure 10-58 Correspondance entre les codes de caractères et les chiffres
10.8.2.51602 Processus général d'initialisation (réinitialisation) de l'écran LCD
Retard 15 ms
Commande d'écriture 38H (le signal occupé n'est pas détecté)
Retard 5 ms
Commande d'écriture 38H (le signal occupé n'est pas détecté)
Retard 5 ms
Commande d'écriture 38H (le signal occupé n'est pas détecté)
À l'avenir, le signal occupé devrait être détecté pour chaque instruction d'écriture et opération de lecture/écriture de données
Commande d'écriture 38H : réglage du mode d'affichage
Instruction d'écriture 08H : l'affichage est éteint
Commande d'écriture 01H : afficher un écran clair
Instruction d'écriture 06H : Afficher les paramètres de déplacement du curseur
Instruction d'écriture 0CH : affichage ouvert et réglages du curseur
10.8.31602 Exemple de conception matérielle et logicielle d'un écran LCD
Sur le 1602LCD, la première ligne affiche le nom du site Web : www.hificat.com et la deuxième ligne affiche le numéro de téléphone de contact : 0571-85956028. Le commutateur d'affichage doit être commuté sur l'état de fonctionnement de l'écran LCD avant l'expérience.
Figure 10-591602Diagramme de démonstration LCD
10.8.3.1 Diagramme schématique du matériel
Le module LCD 1602 peut être directement connecté au micro-ordinateur monopuce AT89C51, comme illustré à la Figure 10-60.
Figure 10-60 Diagramme schématique du matériel
10.8.3.2 Organigramme du programme
Figure 10-61 Processus logiciel
10.8.3.3 Code logiciel
#comprendre
#comprendre
sbitrs=P2^0 ;
sbitrw=P2^1 ;
sbitep=P2^2 ;
unsignedcharcodedis1[]={"www.hificat.com ;
unsignedcharcodedis2[]={"0571-85956028 ;
voiddelay (charmes non signés)
{
chari non signé ;
tandis que (ms)
{
pour(i=0; i<250; i++)
{
_nop_();
_nop_();
_nop_();
_nop_();
}
}
}
bitlcd_bz()
{
résultat binaire ;
rs=0 ;
rw=1 ;
ep=1 ;
_nop_();
_nop_();
_nop_();
_nop_();
résultat=(bit)(P0&0x80);
e