Nestekidenäyttö eli LCD

Alunperin julkaistu: 11.2.2017

Viimeksi muokattu: lauantai 9.12.2017

Elektroniikan ja tietokone- sekä tietotekniikan yleisin näyttötyyppi lienee nykyisin LCD-näyttö eli Liquid Chrystal Display. Näitä näyttöjä käytetään monissa sulautetuissa laitteissa aina tietokoneen ja television näyttöihin asti.

Monissa laitteissa voi olla käyttäjälle tarpeen näyttää symboleita, kirjaimia ja numeroita, joiden perusteella käyttäjä esimerkiksi tekee tarvittavat toiminnot laitteella. Sovelluksena voi olla esimerkiksi jännitteiden ja lämpötilojen seuranta tietyssä järjestelmissä tai vaikka kellonajan tai muun tarpeellisen tiedon näyttäminen.

LCD Näytön anatomia

LCD näyttö, kuten nimikin jo osoittaa, koostuu mm. nesteestä, missä on pienen pieniä pitkittäisiä kiteitä, joita voidaan ohjata jännitteen avulla. Näytön sisällä oleva neste on kahden ohuen lasin välissä ja päällimmäiseen lasiin on voitu kuvioida erilaisia symboleita, tai vaikka vain pikseleitä. Esimerkiksi autostereoiden näytöt ovat LCD-näyttöjä. Kyseinen kuvio toimii samalla elektrodina, joka ohjaa sähkövirran kulkua ja muodostaa nesteeseen sähkökentän. Kun sähkökenttä on aktiivinen niin neste näyttää muuttuvan tummaksi ja kuvio voidaan nähdä näytöltä. Todellisuudessa neste ei tummu, vaan ainoastaan nesteen pienet molekyylit asettuvat niin, ettei tietynsuuntainen valo pääse kulkemaan sen lävitse sillä hetkellä - puhutaan polarisaatiosta.

Sälekaihdin on hyvä esimerkki tällaisesta polarisaatiosta. Kun sälekaihtimet ovat auki, niin voidaan ajatella että LCD-näytön segmentin tai pikselin kohdalla sähkökenttää ei ole. Tällöin sälekaihtimien ja LCD-näytön toiselta puolelta tuleva valo pääsee lasin läpi ja osuu katselijan silmään muodostaen tietynlaisen kuvion. Kun sälekaihdin on kiinni, niin sähkökenttä on muodostunut eikä valo pääse lasin läpi.

Yksittäisiä näyttösegmenttejä kutsutaan tutummin myös pikseleiksi, kuten aiemmin on mainittu. Aivan kuin tietokoneenkin ruudulla, niin myös LCD-näytön ruudulla kirjaimet, merkit ja numerot koostuvat pienistä pikseleistä, jotka voidaan yksitellen asettaa päälle tai pois päältä.

Pikseleitä ohjaa yleensä aina jokin ulkoinen IC-piiri ja ohjainpiiriä (näytönohjainpiiri) puolestaan komennetaan joko tietokoneelta tai sulautetusta laitteesta käsin (mikro-ohjain). Käytettävä väylä voi olla rinnakkais- tai sarjamuotoinen ohjaus- ja dataväylä.

Tietokoneen kuvaruudun LCD-näyttöä ei kuitenkaan ohjaa tietokone, vaikka näyttö tietokoneeseen kytketäänkin, vaan LCD-näytön sisällä on mikro-ohjain, joka ottaa vastaan tietokoneen näytönohjaimen antamat signaalit ja muuttaa ne väreiksi ja kuviksi LCD-näytölle.

LCD-näyttöjä on monia erilaisia ja valmistajiakin löytyy huima määrä. Alla esitellään lyhyesti niitä näyttöjä, joihin itse olen törmännyt ja jotenkin niitä ohjaillut ja mistä olen kerennyt tänne kirjoittelemaan.

Merkkipohjainen HD44780 LCD-näyttö

LCD-merkkinäyttö. Kuvan lähde.

HD44780-pohjainen näyttömoduuli on kenties yksi yleisimpiä näyttömoduuleita, mitä yksinkertaisissa sulautetuissa laitteissa on käytetty. HD44780 nimike viittaa käytettyyn Hitachin LCD-ohjainpiiriin, joka ohjaa edellä mainittuja yksittäisiä pikseleitä. Muunlaisia ohjainpiirejä on myös olemassa, mutta yleensä jos näyttömoduulissa on 14 tai 16 nastaa, niin se on suurella todennäköisyydellä HD44780 yhteensopiva.

Näyttö muodostuu siis pikseleistä ja näitä pikseleitä hallitaan biteillä. Kun bitti on "1"-tilassa, niin näytön pikseli on päällä ja "0"-tilassa se on vastaavasti pois päältä. Alla olevassa kuvassa (otettu datalehdestä) on esitetty esimerkiksi kirjaimen 'R' esitys bitteinä ja pikseleinä.

Kuvassa "1"-bitit ovat asettaneet R-kirjaimen muodostamiseen tarvittavat pikselit päälle (tummempi alue kuvassa). "0"-bitit puolestaan ovat sammuttaneet kyseiset pikselit, eivätkä esitä mitään.

Tarkkaavainen lukija huomaa, että R-kirjain itse asiassa muodostuu 5 x 7 kokoisesta pikselitaulukosta. R -kirjain on 7 pikseliä korkea ja 5 pikseliä leveä. HD44780 näytöillä merkit ovat aina 5 pikseliä leveitä, mutta korkeus voi olla joko 7 tai 9 pikseliä. Yksi pikselirivi (yleensä alin, kuten yllä olevassa kuvassa) on jätetty tyhjäksi, sillä tälle tyhjälle riville voidaan asettaa kursoriviiva vilkkumaan. Kursori mukaan lukien merkit voivat siis olla 5 x 8 tai 5 x 10 pikselin kokoisia.

Kursori helpottaa ohjelmointia sekä antaa käyttäjälle tiedon jos kirjaimia voi esimerkiksi syöttää - toki ohjelmoijan on tämä itse koodattava. Kursori näkyy näyttörivin alalaidassa alaviivana, mikäli se on otettu käyttöön.

HD44780 näytön nastajärjestys

Alle on listattu yleinen nastajärjestys 14-pinniselle HD44780-näytöille.

Nasta nro: Nimi Toiminto
1 VSS/GND Maa
2 VDD Käyttöjännite
3 VEE Kontrasti
4 RS Rekisterin valinta (Register Select)
5 R/W Luku/Kirjoitus (Read/Write, 0 = Write)
6 E Datan sallinta (Enable)
7 D0 Databitti 0
8 D1 Databitti 1
9 D2 Databitti 2
10 D3 Databitti 3
11 D4 Databitti 4
12 D5 Databitti 5
13 D6 Databitti 6
14 D7 Databitti 7
16-pinniselle näytölle on käytössä vielä kaksi lisänastaa, jotka ohjaavat moduulissa mahdollisesti sijaitsevaa taustavaloa
15 BL+ Taustavalon anodi
16 BL- Taustavalon katodi

HD44780 näytöt voidaan kytkeä niin, että käytetään kaikkia yllä esiteltyjä nastoja. Tämä vie kuitenkin mikrokontrollerin IO-kapasiteettia hyvinkin paljon mutta onneksi HD44780 näyttö voidaan kytkeä niin sanotusti puolitavu-moodiin, missä käytetään DB0 - DB7 nastoista vain toista tavun puolikasta.

"Puolitavu-moodi" tarkoittaa sitä, että ainoastaan neljää ylintä bittiä käytetään tiedonsiirtoon (DB4 - DB7, 4-bit moodi).

R/W-bitti voidaan kytkeä kiinteästi maahan, jos näytölle aina vain kirjoitetaan, mutta luettaessa tämä nasta täytyy olla "1"-tilassa.

Enable -nasta tarvitaan datanastojen lisäksi, sillä se on olennainen nasta kirjoitusoperaatioita tehdessä. Enable-signaali ("1") annetaan näytölle aina silloin, kun datalinjoissa oleva data on valmis kirjoitettavaksi. Komennon tai datan kirjoituksen jälkeen Enable-nasta täytyy palauttaa "0"-tilaan, jotta näyttö toimii varmasti oikein.

RS eli Register Select -nastalla valitaan kirjoitetaanko näytölle vai komennetaanko näyttöä jotenkin muuten (esimerkiksi vaihdetaan näytön asetuksia).

HD44780 näytön osoitteet

Yksi olennainen asia näiden näyttöjen ohjaamisessa on tietenkin myös tieto siitä, mihin osoitteeseen (jokin tietty piste näytöllä) kirjoitetaan haluttu merkki. Käytännössä näytöllä näkyvät pikselit ovat kytketty johonkin ohjainpiirin muistipaikkaan ja muistipaikan sisällön mukaan näytöllä joko näkyy pikseleitä tai ei.

Yllä olevasta käytetään myös termiä muistikartta tai "memory map". Muistikartta kertoo, mitä näytöllä pitäisi olla ja koska muistikartan jokainen pikseli on yksilö, täytyy sillä olla jokin osoite missä näytön muistikartta sijaitsee.

Alla nähdään muistikarttojen osoitteet eri rivisille näytöille.

1-rivinen HD44780 näyttö

Näytön positio (digit) 1 2 3 ... 80
Osoite 0x00 0x01 0x02 ... 0x4F

2-rivinen HD44780 näyttö

Näytön positio (digit) 1 2 3 ... 40
Osoite (ylempi rivi) 0x00 0x01 0x02 ... 0x27
Osoite (alempi rivi) 0x40 0x41 0x42 ... 0x67

Esimerkki 2 x 16 -merkkisestä muistikartasta

Näytön positio (digit) 1 2 3 ... 16
Osoite (ylempi rivi) 0x00 0x01 0x02 ... 0x0F
Osoite (alempi rivi) 0x40 0x41 0x42 ... 0x4F

 

HD44780 näytölle kirjoitus 4-bit moodi

Mikäli käytössä on 4-bittinen data (+ vähintään kaksi ohjaussignaalia E ja RS), niin HD44780 ohjain täytyy alustaa 4-bitin moodiin asettamalla 0x2 eli 0b0010 piirin datanastoihin DB4 - DB7 (eli DB4 = 0, DB5 = 1, DB6 = 0, DB7 = 0). Kun pinnit on asetettu, niin E-signaalia käytetään "1" -tilassa jonka jälkeen se palautetaan "0" -tilaan.

Nyt näytölle voidaan kirjoittaa dataa ja käskyjä ns. "nibble" moodissa, missä ensin kirjoitetaan ohjaus- tai datatavun ylimmät neljä bittiä ja sen jälkeen loput neljä bittiä, näiden välissä käytetään E-signaalia "1" -tilassa.

Kun halutaan kirjoittaa näytölle dataa, asetetaan RS-bitti "1"-tilaan ja kirjoitetaan haluttu data (esim. ASCII:na).

Lähteitä ja lisäinformaatiota:
Wikipedia - LCD näyttö
Step by Step: interfacing a HD44780-compatible LCD display
LCD interfacing with Microcontrollers tutorial