Codevision avr

Indicatorii LCD sunt o parte integrantă a echipamentului radio electronic pentru afișarea diverselor informații. În acest articol, hai să vorbim despre unele dintre cele mai aplicabile funcții ale bibliotecii LCD.h







Fișierul antet LCD.h are funcțiile setate pentru lucrul cu ecranul LCD, care sunt asociate cu library.l.lib, scris în asamblare. Prin urmare, scriind o funcție, întregul cod de asamblare este executat. Bibliotecile ușurează un programator să scrie un cod constant și repetitiv.

Biblioteca LCD.h vă permite să lucrați cu afișaje LCD de până la 40x2. Pentru a lucra cu biblioteca LCD 40x4 LCD4x40.h este utilizată. susține lucrul la a doua linie de comandă E2 (controale duale cu afișaj LCD). Acest indicator LCD este un model al companiei Winstar WH4004A.


Sub codul de program puteți afișa textul pe afișajul LCD 16x2. A fost testat pe un panou cu indicator WH1602D-YYB-CTK și Atmega8535:

void principal (void) / * Funcția principală "principală", din care întregul program începe procedura * /

lcd _init (16); / * inițializare pentru 16 caractere * /

lcd _ clar (); / * curățarea afișajului * /

lcd _ gotoxi (4,0); / * linia de sus, 4 poziție * /

lcd _ putsf ("LCD 16 x 02"); / * afișează inscripția în coordonatele specificate * /

lcd _ gotoxi (0,1); / * linia de jos, 0 poziție * /

Exemplu de program în simulatorul Proteus 7.5 SP3:

Codevision avr

Înainte de a afișa o linie pe ecranul LCD, trebuie să o inițializați. Pentru aceasta folosim funcția lcd_init:

lcd_init (caractere nespecificate lcd_columns);

În paranteze indicați numărul de caractere pe care este conectat indicatorul LCD:

lcd _init (8); / * inițializare pentru 8 caractere * /

lcd _init (16); / * inițializare pentru 16 caractere * /

lcd _init (20); / * inițializare cu 20 de caractere * /

lcd _init (40); / * Inițializare 40 de caractere * /

Realizăm curățarea afișajului. Folosim funcția lcd_clear ();

Ei bine, am făcut inițializarea, am curățat indicatorul în prealabil, acum îl puteți imprima. Deși lcd_gotoxy: pentru moment, este imposibil. Înainte de a trimite textul, trebuie să specificați ce linie să ieșiți și din ce poziție, astfel încât să folosim funcția:







lcd_gotoxy (nesemnate caractere nesemnate);

x - de la care poziție să ieșiți primul caracter (depinde de tipul indicatorului)

y - în ce linie (depinde de tipul indicatorului)

Conform fișierului antet LCD.h, putem extrage text de la 0 la 39 de caractere și de la 0 la 3 linii. Însă în procesul de utilizare se dovedește că funcționează cu indicatoare LCD de până la 40x2 (Tip Winstar WH4002A). Utilizați indicatorul WH4004A, în general, nu funcționează.

Codevision avr

lcd _ gotoxi (10,2);

Codevision avr

Un text cu mai mult de 10 caractere va fi tradus la următoarea linie. Textul se emite folosind funcția lcd_putsf ():

lcd_putsf (char flash * str);

Textul care este argumentul funcției poate fi scris direct:

Lcd _ putsf ("Hello World!");

Caractere nesemnate char * txt = "Hello World!";

Lcd _ putsf (txt);

Funcție pentru afișarea textului pe indicatorul LCD care necesită definirea textului în variabila - funcția lcd_puts:

Funcția lcd_putchar (char c); vă permite să ieșiți caractere din tabelul Coduri de caractere:

lcd _ putchar (0 x 41); / * caracterul literei engleze A * /

lcd _ putchar (0 x 5 b); / * caractere pătrate de caractere [* /

lcd _ putchar (0 xff); / * caracterul de familiaritate umplut * /

Mai jos este un cod de program, care umple rândul de jos, cu o poziție de la 0 la 15 caractere completat tabelul de coduri familiaritatea (0xFF cod de caractere).

caracterele nesemnate j = 0; / * defini o variabilă pentru a stoca un număr pozitiv de la 0 la 255 * /

void principal (void) / * Funcția principală "principală", din care întregul program începe procedura * /

lcd _ putsf ("inițializare");

în timp ce (1) / * efectuăm o buclă în timp ce operatorul nu îndeplinește condiția j == 16 * /

lcd_gotoxy (j-1,1); / * completați a doua linie de la 0 la 15 * /

lcd_putchar (0xff); / * Caracterul familiarității umplută din tabelul cu coduri de simboluri * /

dacă (j == 16) se rupe;> / * dacă condiția if este îndeplinită, atunci vom întrerupe în timp ce *

Codevision avr

Pentru a afișa literele rusești pe ecranul LCD, se folosește directiva #pragma rl + / rl-:

equ __lcd_port = 0x12; PORTD

lcd_putsf ("Indicator 16 x 02");

lcd_putsf ("Testarea LCD-ului");

De fapt, directiva funcționează prin comutarea codării și de fapt vă permite să ieșiți litere rusești. În cursul lucrărilor practice a devenit clar că, fără această directivă, textul rusesc este afișat ca un set de "kazyablikov" de neînțeles. În ceea ce privește programul - simulare Proteus (cel puțin, dovedită în versiunea 7.2 și 7.5), nu există nici un suport pentru retragerea textului rus și majoritatea simbolurilor de masă.







Trimiteți-le prietenilor: