- 16x2 punktu matricas LCD kontroliera IC HD44780:
- Parādot pielāgotu rakstzīmi 16x2 LCD ekrānā:
- Programmēšana un darba skaidrojums:
- Ķēdes savienojumi un pārbaude:
Iepriekšējā apmācībā mēs esam iemācījušies, kā saskarni 16 * 2 LCD ar PIC mikrokontrolleru. Ja esat PIC mikrokontrollera iesācējs, iesakām to iziet pirms turpmākas darbības. Iepriekš mēs esam iemācījušies arī PIC pamatus, izmantojot LED mirgojošo programmu un taimerus PIC mikrokontrollerī. Šeit varat pārbaudīt visas apmācības par PIC mikrokontrolleru apgūšanu, izmantojot MPLABX un XC8 kompilatoru.
Šajā apmācībā darīsim to interesantāku, izveidojot savas pielāgotās rakstzīmes un parādot tās mūsu LCD ekrānā, izmantojot PIC16F877A PIC mikrokontrolleru. Ir arī dažas iepriekš definētas pārsvarā lietotas pielāgotas rakstzīmes, ko sniedz pati HD44780A IC, mēs arī redzēsim, kā mēs tās varam izmantot. Kā paskaidrots mūsu iepriekšējā apmācībā, mūsu LCD ir iebūvēts Hitachi HD44780 kontrolieris, kas palīdz mums parādīt rakstzīmes. Katra mūsu parādītā rakstzīme jau ir iepriekš definēta HD44780 IC ROM. Pirms rakstzīmju parādīšanas uz LCD, mēs uzzināsim par LCD kontrolieri IC HD44780.
16x2 punktu matricas LCD kontroliera IC HD44780:
Lai parādītu pielāgotu rakstzīmi, mums kaut kā jāpasaka IC, kā izskatīsies pielāgotais raksturs. Lai to izdarītu, mums vajadzētu zināt par trim atmiņu veidiem, kas atrodas HD44780 LCD kontroliera IC:
Rakstzīmju ģeneratora ROM (CGROM): tā ir tikai lasāmā atmiņa, kurā, kā jau minēts iepriekš, ir visi tās iekšienē iepriekš definēto rakstzīmju modeļi. Šis ROM būs atšķirīgs no katra interfeisa IC veida, un dažiem tiem var būt kāds iepriekš noteikts pielāgots raksturs.
Displeja datu RAM (DDRAM): šī ir brīvpiekļuves atmiņa. Katru reizi, kad mēs parādīsim rakstzīmi, tā modelis tiks iegūts no CGROM un pārsūtīts uz DDRAM, un pēc tam tiks ievietots ekrānā. Vienkāršāk sakot, DDRAM būs visu rakstzīmju paraugi, kas pašlaik tiek parādīti LCD ekrānā. Šādā veidā katram ciklam IC nav jāiegūst dati no CGROM, un tas palīdz iegūt īsu atjaunināšanas biežumu
Rakstzīmju ģeneratora RAM (CGRAM): Šī ir arī brīvpiekļuves atmiņa, tāpēc mēs varam tajā ierakstīt un lasīt datus. Kā norāda nosaukums, šī atmiņa būs tā, kuru var izmantot, lai izveidotu pielāgoto rakstzīmi. Mums ir jāveido rakstzīmes paraugs un jāieraksta CGRAM, šo modeli vajadzības gadījumā var nolasīt un parādīt ekrānā.
Tagad, kopš mēs guvām pamatzināšanu par atmiņas veidiem, kas atrodas HD44780 interfeisa IC. Apskatīsim tās datu lapu, lai saprastu mazliet vairāk.
Kā norāda datu lapa, HD44780 IC ir nodrošinājis kā 8 atrašanās vietas, lai saglabātu mūsu pielāgotos modeļus CGRAM, arī labajā pusē mēs varam redzēt, ka ir dažas iepriekš definētas rakstzīmes, kuras var parādīt arī mūsu LCD ekrānā. Ļaujiet mums redzēt, kā mēs to varam izdarīt.
Parādot pielāgotu rakstzīmi 16x2 LCD ekrānā:
Lai parādītu pielāgotu rakstzīmi, mums vispirms ir jāģenerē tās paraugs un pēc tam tas jāsaglabā CGRAM. Tā kā mums jau ir bibliotēkas funkcijas, to vajadzētu viegli izdarīt, izmantojot dažas vienkāršas komandas. Šeit ir LCD funkciju bibliotēka, taču šeit mēs esam kopējuši un ielīmējuši visas bibliotēkas funkcijas pašā programmā, tāpēc nav nepieciešams iekļaut šo galvenes failu mūsu programmā. Pārbaudiet arī šo rakstu par pamata LCD darbību un tā stiprinājumiem.
Pirmais solis ir ģenerēt modeli vai pielāgoto rakstzīmi. Kā mēs zinām, katra rakstzīme sastāv no 5 * 8 punktiem. Mums ir jāizvēlas, kuram punktam (pikseļiem) vajadzētu būt augstam un kuram palikt zemam. Vienkārši uzzīmējiet lodziņu, piemēram, zemāk, un ēnojiet reģionus, pamatojoties uz savu raksturu. Mans varonis šeit ir nūjas cilvēks (ceru, ka tas izskatās kā viens). Kad tas ir aizēnots, vienkārši uzrakstiet katra baita ekvivalentu bināro vērtību, kā parādīts zemāk.
Katram baitam vienkārši ielieciet “1” uz ēnotā apgabala un “0” uz neapēnotā reģiona, un tas ir tas, ka mūsu pielāgotais modelis ir gatavs. Līdzīgi es esmu izveidojis 8 pielāgotus modeļu kodus mūsu 8 atmiņas telpām, parādot to CGROM. Tie ir uzskaitīti zemāk esošajā tabulā.
S.NO: |
Pielāgots raksturs |
Raksta kods |
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 |
Piezīme. Nav obligāti jāielādē visas 8 vietas, kas paredzētas CGRAM.
Programmēšana un darba skaidrojums:
Tagad mūsu modeļu kodi ir gatavi, mums tie vienkārši jāielādē LCD CGRAM un jāparāda, izmantojot PIC mikrokontrolleru. Lai tos ielādētu CGRAM, mēs varam izveidot 5 * 8 elementu masīvu un ielādēt katru baitu, izmantojot “ for loop ”. Modeļa koda masīvs ir parādīts zemāk:
const neparakstīts īss Custom_Char5x8 = {0b01110,0b01110,0b00100,0b01110,0b10101,0b00100,0b01010,0b01010, // CGRAM atmiņas vietas kods 1 0b00000,0b00000,0b01010,0b00100,0b00100,0b10001,0b01110,0b00000, CGRAM atmiņas telpa 2 0b00100,0b01110,0b11111,0b11111,0b01110,0b01110,0b01010,0b01010, // CGRAM atmiņas vietas kods 3 0b01110,0b10001,0b10001,0b11111,0b11011,0b11011,0b11111,0b00000, // kods space 4 0b01110,0b10000,0b10000,0b11111,0b11011,0b11011,0b11111,0b00000, // CGRAM atmiņas vietas kods 5 0b00000,0b10001,0b01010,0b10001,0b00100,0b01110,0b10001,0b00000, // CGRAM atmiņas vietas kods 6 0b00000,0b00000,0b01010,0b10101,0b10001,0b01110,0b00100,0b00000, // CGRAM atmiņas vietas kods 7 0b11111,0b11111,0b10101,0b11011,0b11011,0b11111,0b10001,0b11111 // CGRAM atmiņas vietas kods 8};
Katra atmiņas vieta ir ielādēta ar tās ievēroto rakstzīmju modeli. Lai ielādētu šo modeli HD44780 IC, ir jānorāda HD44780 datu lapa, taču tikai komandrindas var izmantot, lai iestatītu CGRAM adresi
// *** Ielādējiet pielāgoto simbolu CGROM *** ////// Lcd_Cmd (0x04); // Iestatīt CGRAM adresi Lcd_Cmd (0x00); //.. iestatiet CGRAM adresi (i = 0; i <= 63; i ++) Lcd_Print_Char (Custom_Char5x8); Lcd_Cmd (0); // Atgriezties mājās Lcd_Cmd (2); //.. atgriešanās mājās // *** Pielāgotas rakstzīmes ielāde pabeigta *** //////
Šeit iekšpusē “ for loop” katra binārā vērtība tiek ielādēta CGROM. Kad raksts ir ielādēts, pielāgotās rakstzīmes var likt parādīt, vienkārši izsaucot raksta atrašanās vietu, izmantojot tukšo Lcd_Print_Char (char dati) funkciju, kā parādīts zemāk.
Lcd_Print_Char (0); // Parādīt pielāgoto rakstzīmi 0 Lcd_Print_Char (1); // Parādīt pielāgoto rakstzīmi 1 Lcd_Print_Char (2); // Parādīt pielāgoto rakstzīmi 2 Lcd_Print_Char (3); // Parādīt pielāgoto rakstzīmi 3 Lcd_Print_Char (4); // Parādīt pielāgoto rakstzīmi 4 Lcd_Print_Char (5); // Parādīt pielāgoto rakstzīmi 5 Lcd_Print_Char (6); // Parādīt pielāgoto rakstzīmi 6 Lcd_Print_Char (7); // Parādīt 7. pielāgoto rakstzīmi
Drukāt iepriekš noteiktu īpašo rakstzīmi:
HD44780 IC ir dažas iepriekš definētas īpašās rakstzīmes, kas saglabātas DDROM. Šīs rakstzīmes var tieši izdrukāt uz ekrāna, atsaucoties uz tās bināro vērtību datu lapā.
Piemēram: rakstzīmes "ALPHA" binārā vērtība ir 0b11100000. Kā to iegūt, var saprast no zemāk redzamā attēla, tāpat jūs varat iegūt vērtību jebkuram īpašam rakstzīmei, kas iepriekš definēta IC.
Kad binārā vērtība ir zināma, atbilstošo rakstzīmi var izdrukāt ekrānā, vienkārši izmantojot tukšo Lcd_Print_Char (char dati) funkciju, kā parādīts zemāk, Lcd_Print_Char (0b11100000); // alfa binārā vērtība no datu lapas
Pilns šī projekta kods ir norādīts zemāk sadaļā Kods, kā arī pārbaudiet detalizētu Video skaidrojumu šīs apmācības beigās.
Ķēdes savienojumi un pārbaude:
Šim projektam nav nepieciešamas papildu aparatūras prasības. Mēs vienkārši izmantojām tos pašus savienojumus no iepriekšējās LCD saskarnes apmācības un izmantojām to pašu dēli, kuru esam izveidojuši LED mirgojošajā apmācībā. Kā vienmēr simulēsim programmu, izmantojot Proteus, lai pārbaudītu mūsu produkciju.
Kad simulācija darbojas kā paredzēts, ļauj tieši ierakstīt kodu aparatūras iestatījumos. Programmas iznākumam jābūt apmēram šādam:
Tā jūs varat parādīt jebkuru pielāgoto rakstzīmi 16x2 LCD ekrānā, izmantojot PIC mikrokontrolleru ar MPLABX un XC8 kompilatoru. Šeit pārbaudiet arī visu mūsu PIC mikrokontrolleru mācību sēriju.