- 16x2 matrični LCD kontroler IC HD44780:
- Prikazivanje prilagođenog znaka na LCD-u 16x2:
- Programiranje i radno objašnjenje:
- Spojevi i ispitivanje strujnih krugova:
U našem prethodnom tutorialu naučili smo kako povezati LCD 16 * 2 s PIC mikrokontrolerom. Ako ste početnik u PIC mikrokontroleru, preporučujemo vam da ga prođete prije nego što nastavite. Prethodno smo također naučili osnove PIC-a pomoću LED programa za treptanje i odbrojavanja u PIC mikrokontroleru. Ovdje možete provjeriti sve vodiče o učenju PIC mikrokontrolera pomoću MPLABX i XC8 kompajlera.
U ovom vodiču učinimo ga zanimljivijim stvaranjem vlastitih prilagođenih znakova i prikazivanjem na našem LCD zaslonu pomoću PIC16F877A PIC mikrokontrolera. Također postoje neki unaprijed definirani uglavnom korišteni prilagođeni znakovi koje daje sam HD44780A IC, a vidjet ćemo i kako ih možemo koristiti. Kao što je objašnjeno u našem prethodnom vodiču, naš LCD ima ugrađen kontroler Hitachi HD44780 koji nam pomaže da prikazujemo znakove. Svaki znak koji prikazujemo već je unaprijed definiran unutar ROM-a HD44780 IC. Naučit ćemo o LCD kontroleru IC HD44780, prije prikazivanja karaktera na LCD-u.
16x2 matrični LCD kontroler IC HD44780:
Da bismo prikazali prilagođeni znak, moramo nekako reći IC-u kako će izgledati prilagođeni znak. Da bismo to učinili, trebali bismo znati o tri vrste uspomena koje se nalaze unutar IC44 IC LCD kontrolera:
ROM generatora znakova (CGROM): To je memorija samo za čitanje koja, kao što je ranije rečeno, sadrži sve uzorke unaprijed definiranih znakova unutar nje. Ovaj ROM će se razlikovati od svake vrste IC sučelja, a neki mogu imati neki unaprijed definirani prilagođeni znak.
Prikaz podataka RAM-a (DDRAM): Ovo je memorija s slučajnim pristupom. Svaki put kad prikažemo znak, njegov će se uzorak dohvatiti iz CGROM-a i prenijeti u DDRAM, a zatim će biti postavljen na zaslon. Pojednostavljeno, DDRAM će imati uzorke svih znakova koji se trenutno prikazuju na LCD zaslonu. Na ovaj način za svaki ciklus IC ne mora dohvaćati podatke iz CGROM-a i pomaže u dobivanju kratke frekvencije ažuriranja
RAM generatora znakova (CGRAM): Ovo je također memorija s slučajnim pristupom, tako da iz nje možemo pisati i čitati podatke. Kao što naziv implicira, ova memorija će se koristiti za generiranje prilagođenog znaka. Moramo oblikovati obrazac za lik i zapisati ga u CGRAM, ovaj obrazac se može pročitati i prikazati na zaslonu kada je to potrebno.
Sad, budući da smo stekli osnovno razumijevanje vrsta memorije prisutnih u IC-u sučelja HD44780. Pogledajmo njegovu tablicu podataka da bismo razumjeli malo više.

Kao što je navedeno u tablici podataka, HD44780 IC osigurao je 8 lokacija za pohranu naših prilagođenih uzoraka u CGRAM, također s desne strane možemo vidjeti da postoje neki unaprijed definirani znakovi koji se također mogu prikazati na našem LCD zaslonu. Da vidimo kako to možemo učiniti.
Prikazivanje prilagođenog znaka na LCD-u 16x2:
Da bismo prikazali prilagođeni znak, prvo moramo generirati obrazac za njega, a zatim ga spremiti u CGRAM. Budući da već imamo funkcije knjižnice, to bi trebalo biti lako učiniti pomoću nekih jednostavnih naredbi. Ovdje je Knjižnica za LCD funkcije, ali ovdje smo kopirali sve funkcije Knjižnice u sam program, tako da nema potrebe za uključivanjem ove datoteke zaglavlja u naš program. Također pogledajte ovaj članak za osnovni rad LCD-a i njegove pinoute.
Prvi korak je generiranje uzorka ili prilagođenog znaka. Kao što znamo, svaki je znak kombinacija 5 * 8 točaka. Moramo odabrati koja točka (piksel) treba ići visoko, a koja treba ostati niska. Jednostavno nacrtajte okvir kao dolje i zasjenite regije na temelju vašeg lika. Moj lik ovdje je čovjek koji se drži (nadam se da će tako izgledati). Jednom zasjenjeno, jednostavno napišite ekvivalentnu binarnu vrijednost svakog bajta kao što je prikazano dolje.

Jednostavno stavite '1' na zasjenjeno područje i '0' na zasjenjeno područje za svaki bajt i to je to što je naš prilagođeni obrazac spreman. Slično tome, napravio sam 8 prilagođenih kodova uzoraka za naših 8 memorijskih prostora koji predstavljaju CGROM. Navedeni su u donjoj tablici.
|
S.NO: |
Prilagođeni lik |
Šifra uzorka |
|
1 |
|
0b01110, 0b01110, 0b00100, 0b01110, 0b10101, 0b00100, 0b01010, 0b01010 |
|
2 |
|
0b00000, 0b00000, 0b01010, 0b00100, 0b00100, 0b10001, 0b01110, 0b00000 |
|
3 |
|
0b00100, 0b01110, 0b11111, 0b11111, 0b01110, 0b01110, 0b01010, 0b01010 |
|
4 |
|
0b01110, 0b10001, 0b10001, 0b11111, 0b11011, 0b11011, 0b11111, 0b00000 |
|
5 |
|
0b01110, 0b10000, 0b10000, 0b11111, 0b11011, 0b11011, 0b11111, 0b00000 |
|
6 |
|
0b00000, 0b10001, 0b01010, 0b10001, 0b00100, 0b01110, 0b10001, 0b00000 |
|
7 |
|
0b00000, 0b00000, 0b01010, 0b10101, 0b10001, 0b01110, 0b00100, 0b00000 |
|
8 |
|
0b11111, 0b11111, 0b10101, 0b11011, 0b11011, 0b11111, 0b10001, 0b11111 |
Napomena: Nije obavezno učitati svih 8 mjesta predviđenih u CGRAM-u.
Programiranje i radno objašnjenje:
Sada su naši kodovi uzoraka spremni, samo ih moramo učitati u CGRAM LCD-a i prikazati pomoću PIC mikrokontrolera. Da bismo ih učitali u CGRAM, možemo oblikovati niz elemenata 5 * 8 i učitati svaki bajt pomoću ' for petlje '. Niz koda uzorka prikazan je ispod:
const unsigned short Custom_Char5x8 = {0b01110,0b01110,0b00100,0b01110,0b10101,0b00100,0b01010,0b01010, // Kôd za memorijski prostor CGRAM 1 0b00000,0b00000,0b01010,0b00100,0b00100,0b10001,0b01110,0b00, // CGRAM memorijski prostor 2 0b00100,0b01110,0b11111,0b11111,0b01110,0b01110,0b01010,0b01010, // Šifra za memorijski prostor CGRAM 3 0b01110,0b10001,0b10001,0b11111,0b11011,0b11011,0b11111,0b00000AM // Code for CGR prostor 4 0b01110,0b10000,0b10000,0b11111,0b11011,0b11011,0b11111,0b00000, // Kôd za memorijski prostor CGRAM 5 0b00000,0b10001,0b01010,0b10001,0b00100,0b01110,0b10001,0b00000, // Kôd za memorijski prostor CGRAM 6 0b00000,0b00000,0b01010,0b10101,0b10001,0b01110,0b00100,0b00000, // Šifra za memorijski prostor CGRAM 7 0b11111,0b11111,0b10101,0b11011,0b11011,0b11111,0b10001,0b11111 // Kôd za memorijski prostor CGRAM 8};
Svaki je memorijski prostor opterećen svojim poštovanim uzorkom znakova. Da bi se ovaj obrazac učitao u IC HD44780, mora se uputiti tehnički list HD44780, ali samo su naredbeni redovi koji se mogu koristiti za postavljanje adrese CGRAM-a
// *** Učitaj prilagođeni char u CGROM *** ////// Lcd_Cmd (0x04); // Postavi CGRAM adresu Lcd_Cmd (0x00); //.. postaviti CGRAM adresu za (i = 0; i <= 63; i ++) Lcd_Print_Char (Custom_Char5x8); Lcd_Cmd (0); // Povratak na početnu stranicu Lcd_Cmd (2); //.. povratak na početnu stranicu // *** Učitavanje prilagođenog znaka dovršeno *** //////
Ovdje se unutar " for petlje" svaka binarna vrijednost učitava u CGROM. Jednom kada se uzorak učita, prilagođeni se znakovi mogu prikazati jednostavnim pozivanjem mjesta uzorka pomoću void funkcije Lcd_Print_Char (podaci s char-om) kao što je prikazano dolje.
Lcd_Print_Char (0); // Prikažemo prilagođeni znak 0 Lcd_Print_Char (1); // Prikažemo prilagođeni znak 1 Lcd_Print_Char (2); // Prikazivanje prilagođenog znaka 2 Lcd_Print_Char (3); // Prikaži prilagođeni znak 3 Lcd_Print_Char (4); // Prikaži prilagođeni znak 4 Lcd_Print_Char (5); // Prikaži prilagođeni znak 5 Lcd_Print_Char (6); // Prikaži prilagođeni znak 6 Lcd_Print_Char (7); // Prikaz prilagođenog znaka 7
Ispis unaprijed definiranog posebnog znaka:
IC HD44780 ima neke unaprijed definirane posebne znakove pohranjene u DDROM-u. Ti se znakovi mogu izravno ispisati na zaslon pozivanjem na njegovu binarnu vrijednost u podatkovnom listu.
Na primjer: Binarna vrijednost znaka "ALFA" je 0b11100000. Kako to dobiti može se shvatiti sa donje slike, isto tako možete dobiti vrijednost za bilo koji poseban znak koji je unaprijed definiran u IC-u.

Jednom kada je binarna vrijednost poznata, odgovarajući znak može se ispisati na zaslon jednostavnom upotrebom funkcije voc Lcd_Print_Char (podaci o charu) kao što je prikazano dolje, Lcd_Print_Char (0b11100000); // binarna vrijednost alfa iz tehničkog lista
Potpuni kod ovog projekta je dano u nastavku u poglavlju Code, također provjerite detaljne video objašnjenja na kraju ovog vodiča.
Spojevi i ispitivanje strujnih krugova:
Ovaj projekt nema dodatnih hardverskih zahtjeva, već smo jednostavno koristili iste veze iz prethodnog vodiča za povezivanje LCD-a i koristili istu ploču koju smo stvorili u vodiču za treptanje LED-a. Kao i uvijek, simulirajmo program pomoću Proteusa da provjerimo naš izlaz.

Jednom kad simulacija radi prema očekivanjima, omogućuje izravno sagorijevanje koda u našu postavku hardvera. Rezultat programa trebao bi biti otprilike ovako:

Dakle, na taj način možete prikazati bilo koji prilagođeni znak na LCD-u 16x2 pomoću PIC mikrokontrolera s MPLABX i XC8 kompajlerom. Ovdje također provjerite našu cjelovitu seriju učenja PIC mikrokontrolera.








