Utilizarea bibliotecii pentru a lucra cu lcd hd44780 - microcontrolere și tehnologii

În acest articol, vă voi arăta cum să utilizați o bibliotecă destul de comună pentru a gestiona ecranul LCD de la baza controlerului HD44780 și a obține informații despre acesta. Biblioteca este alcătuită din două fișiere lcd_lib.h și lcd_lib.c pentru a fi utilizate cu un afișaj conectat pe o magistrală de date pe patru biți. Fișierul antet afișează setările conexiunii de afișare pentru controler, pe care le puteți modifica la discreția dvs., precum și variabilele și funcțiile.







Mai jos sunt funcțiile de bază ale controlului și afișării informațiilor pe ecranul LCD.

lcd_com - trimiterea unei comenzi pe ecranul LCD

exemplu:
lcd_com (0x01); // ștergeți afișajul
lcd_com (0x38); // interfață 8 biți 2 linii

lcd_dat - trimite un caracter la poziția curentă

exemplu:
lcd_dat ("U"); // extrageți caracterul "U"
lcd_dat (0xB0); // ieșirea simbolului "Y" (conform tabelului simbolurilor afișajului)

lcd_init - Inițializare LCD

Iată un exemplu de secvență comună pentru inițializarea ecranului LCD: 0x38, 0xOC, 0x06.
0x38 stabilește modul de afișare a 2 linii cu o matrice de 5 x 8 pixeli și funcționează cu o magistrală de date pe 8 biți;
0xOC pornește afișajul LCD-mozyulya, fără afișarea cursorilor;
0x06 stabilește modul de mișcare automată a cursorului de la stânga la dreapta după fiecare ieșire de caractere.

lcd_clr - Curățarea ecranului LCD

lcd_home - mută cursorul la început

lcd_string - ieșiți șirul lungimii specificate în poziția curentă

Exemplu: lcd_string ("TEST", 4); // tipăriți un șir TEST de 4 caractere

lcd_gotoxy - deplasează cursorul în poziția specificată

Exemplu: lcd_gotoxy (12, 1); // cursorul în a treisprezecea poziție a liniei a doua

lcd_definechar - scrie o imagine particularizată a caracterului în memoria de afișare







Pentru a afișa afișarea pe ecran propriul personaj trebuie să știți codul de caractere, înregistrați codul în memoria software-ului microcontroler (PROGMEM), apoi pune-l într-o celulă de memorie liberă LCD (CGRAM) și afișa pe ecran utilizând funcția lcd_dat ().

Pentru a crea un simbol este mai convenabil în format binar, de exemplu, vom crea un simbol dreptunghi, codul va fi după cum urmează:

lcd_shift_right - Mută ​​imaginea la numărul specificat de caractere din dreapta

lcd_shift_Left - Mută ​​imaginea la numărul de caractere specificat spre stânga

lcd_cursor_on - Activează cursorul subliniat

lcd_cursor_blink - activează cursorul intermitent

lcd_cursor_off - dezactivează cursorul

lcd_blank - dezactivează imaginea, dar nu se șterge

lcd_visible - include imaginea

lcd_cursor_left - Mută ​​cursorul la numărul de caractere specificat la stânga

lcd_cursor_right - Mută ​​cursorul la numărul specificat de caractere din dreapta

lcd_progress_bar - vă permite să afișați o scală dinamică, vom vorbi mai multe despre această funcție într-un exemplu practic.

lcd_num_to_str - permite afișarea unei variabile de până la 4 cifre

Exemplu: void lcd_num_to_str (ADC, 4); // Afișați variabila ADC pe 4 biți

Vom face proiectul "Voltmetru analogic" în care informația despre tensiunea măsurată va fi afișată pe ecran sub forma unei scări dinamice orizontale. Tensiunea măsurată se aplică la intrarea ADC0, maxim 5V. fără a folosi un divizor. Folosim microcontrolerul atmega8 pentru acest proiect, care este tactat de un oscilator intern de 8 MHz. Afișajul este conectat pe o magistrală pe 4 biți, în conformitate cu setările din fișierul lcd_lib.h. Când creați un proiect în 2 AVRSTUDIO copia fișierul bibliotecă în dosarul de proiect, în Arborele de proiect adăuga aceste fișiere (lcd_lib.c și lcd_lib.h).

Pentru producția la scară dinamică corespunde funcției lcd_progress_bar (uint8_t progres, maxprogress uint8_t, lungime uint8_t). în funcție de variabilele de stare ale acestei funcții, scala modifică nivelul său, progresul - nivelul la 0 la 255, maxprogress - nivelul maxim este limitat de un număr de la 0 la 255, lungime - scara de lungime de la 0 la 16 celule (în funcție de tipul de afișare). Deoarece tensiunea maximă la valoarea de intrare ADC este de 1024, împărțiți această valoare cu 4, și atribuiți-l la o variabilă „u“, iar variabila „U“, cu ajutorul funcției de ieșire void progres scala dinamic ().

Textul complet al programului pe care l-am postat mai jos:







Articole similare

Trimiteți-le prietenilor: