Bibliothèque C pour contrôleur d’afficheur LCD HD44780 (1 / 4 étapes)

Étape 1: Comment imprimer des caractères spéciaux

SpecialCharacters.c

Regarder par-dessus le code ci-dessous et nous passerons en revue

Ci-dessus est une capture d’écran de l’exemple de code en cours d’exécution sur l’écran :

Notez la ligne à travers les personnages de 5 x 10. Mon écran est un ERM2004-1

En regardant la spécification le sous détail de caractère, pourraient expliquer cette ligne. Mais je ne peux pas dire à coup sûr comme documentation est limitée.

 #include #include "hd44780_4bit_lib.h"/* * This code example uses 5 x 10 character and one line * to display the special characters show in table 4, ROM Code A00 * in the hd44780 specification. * Note using the 5 x 10 characters you can only write to one line on * the display. * */void main() { WDTCTL = WDTPW | WDTHOLD; // Disable watchdog timer // according to spec give the display 10ms to come up to voltage __delay_cycles(10000 * CPUSPEED); // set up data length, number of lines and font // Note 1 line and 5 x 10 characters hd44780_init(N_1LINE, FONT_10); // if needed set up the cursor and blink // hd44780_send_command(HD44780_CMD_DISPLAY_ON_CURSOR); // hd44780_send_command(HD44780_CMD_DISPLAY_ON_CURSOR_BLINK); // set Increment direction and cursor direction hd44780_send_command(HD44780_CMD_INCREMENT); hd44780_send_command(HD44780_CMD_MOVE_CURSOR_RIGHT); // refer to table 4 ROM Code AOO // on how to convert upper 4 bits and // lower 4 bits to formulate the below characters hd44780_write_special_char(0xEB); hd44780_write_special_char(0xEB); hd44780_write_special_char(0xEB); hd44780_write_special_char(0xEF); hd44780_write_special_char(0xEF); hd44780_write_special_char(0xEF); hd44780_write_special_char(0xFF); hd44780_write_special_char(0xFF); hd44780_write_special_char(0xFF); // this character and the next // character takes up the full // 10 dots in height to print the // decending j and g hd44780_write_special_char(0xE7); hd44780_write_special_char(0xE7); hd44780_write_special_char(0xE7); hd44780_write_special_char(0xEA); hd44780_write_special_char(0xEA); hd44780_write_special_char(0xEA); hd44780_write_special_char(0xEB); hd44780_write_special_char(0xEB); hd44780_write_special_char(0xEB);} 

Permet de décomposer le code et l’analyse ligne par ligne :

 // according to spec give the display 10ms to come up to voltage __delay_cycles(10000 * CPUSPEED); // set up data length, number of lines and font // Note 1 line and 5 x 10 characters hd44780_init(N_1LINE, FONT_10); 

La fonction de __delay_cycles() fait une pause de 10 millisecondes pour donner la tension de l’écran pour venir à la plage de fonctionnement. Examinez le fichier hd44780_4bit_lib.h. Il y a certains CPU vitesse constantes connexes qui sont définis pour être utilisés avec la fonction __delay_cycles().
Remarque : __delay_cycles() fonction peut prendre seulement constantes en tant qu’argument vous ne pouvez pas utiliser une variable avec cette fonction.

La fonction hd44780_init() Initialise l’affichage et arguments peuvent être passés afin de déterminer le nombre de lignes et de la taille de la police. Cette fonction définit également l’interface hd44780 utiliser opération 4 bits au lieu de l’opération de 8 bits. Vérifiez les spécifications pour plus de détails.

 // if needed set up the cursor and blink // hd44780_send_command(HD44780_CMD_DISPLAY_ON_CURSOR); // hd44780_send_command(HD44780_CMD_DISPLAY_ON_CURSOR_BLINK); // set Increment direction and cursor direction hd44780_send_command(HD44780_CMD_INCREMENT); hd44780_send_command(HD44780_CMD_MOVE_CURSOR_RIGHT); 

La fonction hd44780_send_command() est utilisée pour envoyer des commandes à l’interface hd44780. Le hd44780 peut accepter les commandes et les données. En changeant quelques morceaux dans l’interface MPU, vous pouvez soit envoyer données ou instructions.
Dans l’exemple suivant, si nous avons un commentaire soit des deux lignes nous pouvons afficher un curseur et clignoter le curseur.

Si vous êtes intéressé, consultez la référence au bit de sélecteur d’enregistrement RS, RS et le RW, lecture/écriture de bits pour plus d’informations.

Une des choses cool que vous pouvez faire avec l’interface hd44780 est Déterminez si vous voulez écrire des données de gauche à droite ou de droite à gauche. Ces deux prochaines commandes déterminent ces paramètres. Nous pouvons incrémentent ou décrémentent la direction de déplacement du curseur et déplacer le curseur vers la gauche ou la droite lorsque les données sont envoyées à l’écran.

 // refer to table 4 ROM Code AOO // on how to convert upper 4 bits and // lower 4 bits to formulate the below characters hd44780_write_special_char(0xEB); hd44780_write_special_char(0xEB); hd44780_write_special_char(0xEB); hd44780_write_special_char(0xEF); hd44780_write_special_char(0xEF); hd44780_write_special_char(0xEF); hd44780_write_special_char(0xFF); hd44780_write_special_char(0xFF); hd44780_write_special_char(0xFF); 

Il y a une table dans les spécifications, les tableau 4 ROM Code A00 qui répertorie les caractères et les symboles qui sont pris en charge par le hd44780. Si vous suivez arcoss le haut du tableau pour obtenir la colonne du symbole recherché, (Notez les quatre bits supérieures) puis suivez jusqu'à la ligne qui contient le symbole recherché, notez les 4 bits inférieurs, de ce symbole.
Vous maintenant pouvez construire un symbole plein de 8 bit, convertir ce nombre binaire au sortilège et cette valeur hexadécimale est ce que vous pouvez envoyer à l’aide de la fonction hd44780_write_special{char().

La fonction hd44780_write_special_char() modifie les bits RW et RS dans l’interface MPU et envoie le symbole sur le registre de l’affichage (DDRAM) (DR).

Après avoir écrit au DR enregistré l’AC, compteur d’adresse est incrémentée ou décrémentée basée sur le statut de l’incrémentation/décrémentation, paramètres de curseur curseur de gauche/droite. Une fois que vous définissez le compteur d’adresse assure le suivi de l’adresse de départ où les caractères/symboles sont écrits.

 // this character and the next<br>// character takes up the full // 10 dots in height to print the // decending j and g</p><p>hd44780_write_special_char(0xE7); hd44780_write_special_char(0xE7); hd44780_write_special_char(0xE7);</p><p>hd44780_write_special_char(0xEA); hd44780_write_special_char(0xEA); hd44780_write_special_char(0xEA);</p><p>hd44780_write_special_char(0xEB); hd44780_write_special_char(0xEB); hd44780_write_special_char(0xEB); 

Cette section de code suivante utilise également la fonction hd44780_write_special_char() pour écrire des caractères à l’écran. Deux de ces personnages sont les minuscules « g » et « j ». La chose intéressante à noter est que ces deux personnages sont étendues plus et utilisent le motif à pois intégral 10 du motif 5 x 10 caractères.
Donc lorsque vous imprimez ces caractères, vous devez modifier l’affichage lors de l’appel à la fonction de hd44780_init() ci-dessus. La limitation du réglage de l’affichage en motif de points de 5 x 10 caractères est vous perdez une seule ligne de l’écran, maintenant, vous pouvez imprimer uniquement sur une seule ligne à l’écran.

Articles Liés

Comment utiliser la bibliothèque SRIO pour Arduino

Comment utiliser la bibliothèque SRIO pour Arduino

avec SRIO Library, vous pouvez étendre votre Arduino d'e/s avec registre à décalage 4021 et 74HC595vous pouvez trouver ce tutrorial ici : http://www.e-licktronic.com/en/content/19-tutorial-library-sriohttp://www.e-licktronic.com/en/content/19-tutoria
Sticks personnalisé pour contrôleur sans prendre leur APART

Sticks personnalisé pour contrôleur sans prendre leur APART

facile de faire des Sticks pour les contrôleursÉtape 1: matériaux Ballons d'eauCiseauxContrôleur deEtape 2: Couper les ballons Couper les ballons un peu au-dessus de 2 1/2 cmÉtape 3: Ballon de diapositive sur le stick analogiqueÉtape 4: Profitez Tout
Comment faire pour créer un CD avec les titres de votre bibliothèque iTunes pour écouter dans votre voiture ?

Comment faire pour créer un CD avec les titres de votre bibliothèque iTunes pour écouter dans votre voiture ?

Si vous avez toujours voulu avoir un CD avec votre musique préférée depuis votre bibliothèque iTunes, donc vous pouvez facilement écouter pendant que vous êtes sur un long trajet avec votre voiture, par exemple, c'est la façon de le faire.Étape 1: Ou
Boîte de bibliothèque thread pour bobines maigres--Sulky, Gutermann, Mettler Metrosene (capacité : 175 bobines)

Boîte de bibliothèque thread pour bobines maigres--Sulky, Gutermann, Mettler Metrosene (capacité : 175 bobines)

cet organisateur de thread est supérieur à ce que vous pouvez trouver pré-faites, surtout si vous avez beaucoup des bobines de fil de style maigre.Pourquoi ?Il détient les bobines de fil à haute densité (capacité de 175 par boîte), mais alors que les
Boîte pour contrôleur CNC début

Boîte pour contrôleur CNC début

Liste de matériel :1 laser coupe 6mm acrylique X12.M6 * 15 vis X83.2020R en aluminium X44. 5V Fan X15 interrupteur X26.12V module LED X27. début CNC Controller X1 (acheter chez Alliance bricolage LX)Etape 1: assembler
1 fil contrôleur LCD pour Arduino

1 fil contrôleur LCD pour Arduino

Alors qu'il travaillait sur un projet de ATtiny que j'ai trouvé je manquait le nombre requis de pins et besoin de fixer un écran LCD avec juste 1 filJ'avais trouvé une Instructable sur comment utiliser un registre à décalage pour contrôler l'écran LC
Contrôleur de température Heatbed pour RepRap en utilisant Gen6

Contrôleur de température Heatbed pour RepRap en utilisant Gen6

Merci de vérifier ce petit mode d'emploi de toutes sortes sur ! Je veux juste obtenir ce quelques choses de la route :-Pied, il s'agit en aucune façon une fin tout, soyez tous ! Je n'a pas pris de photos pendant le tournage du, mais c'est très simple
Installation de Grove bibliothèque pour Intel Edison

Installation de Grove bibliothèque pour Intel Edison

Cette instructable va vous apprendre comment faire pour installer la bibliothèque Grove et exécutez base démos pour le bosquet de kit de démarrage plus gen 2 sur la plateforme Intel Edison.Le matériel suivant est nécessaire pour cela instructable :(1
Arduino TFT affichage et polices de la bibliothèque

Arduino TFT affichage et polices de la bibliothèque

Je suis assez fan de l'Arduino comme il y a tellement logiciels déjà disponibles sur l'internet, ce qui rend remplir plus facilement de nouveaux projets !Récemment j'ai acheté quelques écrans TFT 1.8" à bas prix pour un projet, au début je ne pouvais
Construire votre propre contrôleur (bon marché!) multifonctions sans fil caméra.

Construire votre propre contrôleur (bon marché!) multifonctions sans fil caméra.

IntroductionJamais imaginé de construire votre propre contrôleur de caméra ?Remarque importante : Les condensateurs pour le MAX619 sont 470n ou 0.47u.  Le schéma est correct, mais la liste des composants a été mal - mise à jour.Il s'agit d'une entrée
Contrôleur de piscine personnalisé - Arduino et Raspberry Pi

Contrôleur de piscine personnalisé - Arduino et Raspberry Pi

nous avons acheté une maison avec une piscine. Les deux premières semaines, que nous avons fait plusieurs erreurs coûteuses, y compris l'utilisation de l'appareil de chauffage pour chauffer toute la piscine plus de 90 degrés. Je pense que nous avons
Automatisé contrôleur aveugle Horizontal motorisé solaire

Automatisé contrôleur aveugle Horizontal motorisé solaire

J'ai commencé ce projet parce que nous avons certains stores horizontaux situés dans une fenêtre élevée au-dessus de la porte principale à notre maison. Cette fenêtre fait face au sud, et ici, dans le Colorado, qui signifie beaucoup de soleil. Il ser
En utilisant une RPi pour contrôler une LED RGB

En utilisant une RPi pour contrôler une LED RGB

Comme rahulkar mentionné dans son tutoriel, LED de contrôle semble être le « Hello World » de l'électronique. Il est facile de mettre en place, on apprend beaucoup sur le fonctionne électronique et en fin de compte, vous avez un chouette petit morcea
I2C LCD contrôleur partie II

I2C LCD contrôleur partie II

maintenant que nous avons installer et monter le contrôleur ici est un petit projet. Nous allons construire un thermomètre.Liste des pieces1. Arduino1. I2C LCD1. DHT11 Capteur de température1. 1 k résistance7. fils de raccordementÉtape 1 : Connexion