- 16x2 pistematriisin LCD-ohjainpiiri HD44780:
- Mukautetun merkin näyttäminen 16x2 LCD: ssä:
- Ohjelmointi ja toiminta Selitys:
- Piiriliitännät ja testaus:
Edellisessä opetusohjelmassa olemme oppineet kuinka 16 * 2 LCD-näyttö liitetään PIC-mikrokontrolleriin. Jos olet aloittelija PIC-mikrokontrollerissa, suosittelemme käymään sen läpi ennen jatkamista. Aikaisemmin olemme oppineet myös PIC: n perusteet käyttämällä LED-vilkkuvaa ohjelmaa ja PIC-mikrokontrollerin ajastimia. Voit tarkistaa täältä kaikki oppaat PIC-mikrokontrollerien oppimisesta MPLABX- ja XC8-kääntäjillä.
Tee tästä opetusohjelmasta mielenkiintoisempi luomalla omat mukautetut merkit ja näyttämällä ne LCD-näytössämme PIC16F877A PIC-mikrokontrollerilla. Lisäksi on joitain ennalta määriteltyjä enimmäkseen käytettyjä mukautettuja merkkejä, jotka itse HD44780A IC antaa, näemme myös, kuinka voimme käyttää niitä. Kuten edellisessä opetusohjelmassa selitettiin, LCD-näyttöön on upotettu Hitachi HD44780 -ohjain, joka auttaa meitä näyttämään merkkejä. Jokainen näytettävä merkki on jo ennalta määritelty HD44780 IC: n ROM-levyllä. Opimme LCD-ohjaimesta IC HD44780, ennen kuin näytämme merkin LCD-näytöllä.
16x2 pistematriisin LCD-ohjainpiiri HD44780:
Mukautetun merkin näyttämiseksi meidän on jotenkin kerrottava IC: lle, kuinka mukautettu merkki näyttää. Tätä varten meidän tulisi tietää HD44780 LCD-ohjaimen IC: n sisällä olevista kolmesta muistista:
Merkkigeneraattorin ROM (CGROM): Se on vain luku -muisti, joka, kuten aiemmin mainittiin, sisältää kaikki sen sisällä ennalta määritetyt merkkikuviot . Tämä ROM vaihtelee jokaisesta Interface IC -tyypistä, ja joillakin voi olla ennalta määritetty mukautettu merkki.
Display Data RAM (DDRAM): Tämä on hajasaantimuisti. Aina kun näytämme merkin, sen malli haetaan CGROM-tiedostosta ja siirretään DDRAM-muistiin ja sijoitetaan sitten näytölle. Yksinkertaisesti sanottuna, DDRAM-muistissa on kaikkien LCD-näytöllä näkyvien merkkien mallit. Tällä tavoin IC: n ei tarvitse hakea tietoja jokaisesta jaksosta CGROM: lta, ja se auttaa saamaan lyhyen päivitystaajuuden
Merkkigeneraattorin RAM (CGRAM): Tämä on myös satunnaismuisti, joten voimme kirjoittaa ja lukea siitä tietoja. Kuten nimestä käy ilmi, tämä muisti on se, jota voidaan käyttää mukautetun merkin luomiseen. Meidän on muodostettava hahmolle kuvio ja kirjoitettava se CGRAM: iin, tämä kuvio voidaan tarvittaessa lukea ja näyttää ruudulla.
Nyt kun olemme saaneet perustiedot HD44780-liitäntäpiirissä olevista muistityypeistä. Katsokaamme sen tietolomakkeeseen ymmärtääksemme hieman enemmän.
Kuten datalehdestä käy ilmi, HD44780 IC on tarjonnut 8 sijaintia mukautettujen kuvioiden tallentamiseen CGRAM: iin, myös oikealla puolella näemme, että on joitain ennalta määriteltyjä merkkejä, jotka voidaan näyttää myös LCD-näytöllä. Katsotaanpa, kuinka voimme tehdä sen.
Mukautetun merkin näyttäminen 16x2 LCD: ssä:
Mukautetun merkin näyttämiseksi meidän on ensin luotava sille kuvio ja tallennettava se sitten CGRAM: iin. Koska kirjastotoiminnot ovat jo mukana, sen pitäisi olla helppo tehdä muutamalla yksinkertaisella komennolla. Tässä on LCD-toimintojen kirjasto, mutta täällä olemme kopioineet kaikki kirjastotoiminnot itse ohjelmaan, joten tätä otsikkotiedostoa ei tarvitse sisällyttää ohjelmaamme. Tarkista myös tämä artikkeli, että LCD-näyttö toimii ja sen kiinnikkeet.
Ensimmäinen vaihe on luoda kuvio tai mukautettu merkki. Kuten tiedämme, kukin merkki on 5 * 8 pisteen yhdistelmä. Meidän on valittava, minkä pisteen (pikselin) pitäisi mennä korkealle ja minkä pitää pysyä matalalla. Piirrä yksinkertaisesti laatikko kuten alla ja varjosta alueet hahmosi mukaan. Hahmoni täällä on keppi mies (toivottavasti se näyttää yhdeltä). Kun se on varjostettu, kirjoita yksinkertainen kunkin tavun vastaava binääriarvo alla olevan kuvan mukaisesti.
Laita yksinkertaisesti '1' varjostetulle alueelle ja '0' varjostamattomalle alueelle jokaiselle tavulle, ja se on se, että mukautettu kuvio on valmis. Vastaavasti olen tehnyt 8 mukautettua mallikoodia 8 muistitilallemme esittelevän sen CGROM: lle. Ne on lueteltu alla olevassa taulukossa.
S.NO: |
Mukautettu merkki |
Kuvion koodi |
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 |
Huomaa: Kaikkia CGRAM-ohjelmassa annettuja 8 tilaa ei ole pakollista ladata.
Ohjelmointi ja toiminta Selitys:
Nyt mallikoodimme ovat valmiita, meidän on vain ladattava ne LCD-näytön CGRAMiin ja näytettävä ne PIC-mikrokontrollerilla. Ladataksesi ne CGRAM: iin voimme muodostaa 5 * 8 -elementtiryhmän ja ladata jokaisen tavun käyttämällä ' for-silmukkaa '. Kuviokoodiryhmä näkyy alla:
const unsigned short Custom_Char5x8 = {0b01110,0b01110,0b00100,0b01110,0b10101,0b00100,0b01010,0b01010, // CGRAM-muistitilan koodi 1 0b00000,0b00000,0b01010,0b00100,0b00100,0b10001,0b01110,0b00000, CGRAM-muistitila 2 0b00100,0b01110,0b11111,0b11111,0b01110,0b01110,0b01010,0b01010, // CGRAM-muistitilan koodi 3 0b01110,0b10001,0b10001,0b11111,0b11011,0b11011,0b11111,0b00000, // Koodi tila 4 0b01110,0b10000,0b10000,0b11111,0b11011,0b11011,0b11111,0b00000, // CGRAM-muistitila 5 0b00000,0b10001,0b01010,0b10001,0b00100,0b01110,0b10001,0b00000, // CGRAM-muistitilan koodi 6 0b00000,0b00000,0b01010,0b10101,0b10001,0b01110,0b00100,0b00000, // CGRAM-muistitilan koodi 7 0b11111,0b11111,0b10101,0b11011,0b11011,0b11111,0b10001,0b11111 // CGRAM-muistitilan koodi 8};
Jokainen muistitila ladataan kunnioitetulla merkkikuviolla. Tämän mallin lataamiseksi HD44780 IC: een on viitattava HD44780: n tietolomakkeeseen, mutta vain komentoriveillä voidaan asettaa CGRAM-osoite
// *** Lataa mukautettu merkki CGROM: iin // ////// Lcd_Cmd (0x04); // Aseta CGRAM-osoite Lcd_Cmd (0x00); //.. aseta CGRAM-osoite (i = 0; i <= 63; i ++) Lcd_Print_Char (Custom_Char5x8); Lcd_Cmd (0); // Palaa kotiin Lcd_Cmd (2); //.. palaa kotiin // *** Mukautetun merkin lataus valmis *** //////
Täällä ' for -silmukan ' sisällä kukin binääriarvo ladataan CGROM: iin. Kun kuvio on ladattu, mukautetut merkit voidaan saada näyttämään yksinkertaisesti kutsumalla kuvion sijainti tyhjällä Lcd_Print_Char (char data) -toiminnolla alla olevan kuvan mukaisesti.
Lcd_Tulosta_Char (0); // Näytä mukautettu merkki 0 Lcd_Print_Char (1); // Näytä mukautettu merkki 1 Lcd_Print_Char (2); // Näytä mukautettu merkki 2 Lcd_Print_Char (3); // Näytä mukautettu merkki 3 Lcd_Print_Char (4); // Näytä mukautettu merkki 4 Lcd_Print_Char (5); // Näytä mukautettu merkki 5 Lcd_Print_Char (6); // Näytä mukautettu merkki 6 Lcd_Print_Char (7); // Näytä mukautettu merkki 7
Tulosta ennalta määritelty erikoismerkki:
HD44780 IC: ssä on joitain ennalta määriteltyjä erikoismerkkejä, jotka on tallennettu DDROM-muistiin. Nämä merkit voidaan tulostaa suoraan näytölle viittaamalla niiden binääriarvoon tietolomakkeessa.
Esimerkiksi: Merkin "ALPHA" binääriarvo on 0b11100000. Kuinka tämä saadaan, voidaan ymmärtää alla olevasta kuvasta, samoin voit saada arvon mille tahansa erikoismerkille, joka on ennalta määritelty IC: ssä.
Kun binaariarvo on tiedossa, vastaava merkki voidaan tulostaa näytölle yksinkertaisesti käyttämällä tyhjää Lcd_Print_Char (char data) -funktiota alla olevan kuvan mukaisesti, Lcd_Print_Char (0b11100000); // alfa-binaariarvo tietolomakkeesta
Koko koodi tässä projektissa on annettu alla Code jaksossa, katso myös yksityiskohtaisesti Video selitys lopussa tämä opetusohjelma.
Piiriliitännät ja testaus:
Tällä projektilla ei ole lisälaitteistovaatimuksia, olemme yksinkertaisesti käyttäneet samoja yhteyksiä edellisestä LCD-liitäntäoppaasta ja käyttäneet samaa korttia, jonka olemme luoneet LED-vilkkumisoppaassa. Kuten aina, simuloidaan ohjelmaa Proteuksen avulla tuotoksen vahvistamiseksi.
Kun simulaatio on käynnissä odotetusti, antaa koodin suoraan polttaa laitteistojärjestelmäämme. Ohjelman tuotoksen tulisi olla jotain tällaista:
Joten näin voit näyttää minkä tahansa mukautetun merkin 16x2 LCD: llä käyttämällä PIC-mikrokontrolleria MPLABX: n ja XC8-kääntäjän kanssa. Tarkista myös täydellinen PIC-mikrokontrollerin oppimissarja täällä.