Úvod
 Význam jednotlivých vývodů displeje
 Komunikační protokoly
 Znakový generátor
 Příkazy řadiče displeje
 Konkrétní příklady zapojení
 Usnadnění tvorby uživatelsky definovaných znaků

      LCD displeje se vyskytují ve velkém množství aplikací. Obecně, jejich výhodou je malý odběr zobrazovací matice (řádově desítky mikroampérů), malé rozměry a nízká hmotnost ve srovnání s klasickou elektronovou obrazovkou, lepší geometrie a ostrost zobrazení, delší životnost, stálost obrazu (LC displeje mají mnohem vyšší kmitočet obnovení informace a jejich fyzikální princip umožňuje mnohem delší "dosvit", takže odpadá klasické blikání, nešvar to elektronových obrazovek a displejů) atd. Nevýhodou, která je však již u některých displejů odstraněna (na úkor ceny), je teplotní závislost, kdy kapalné krystaly při záporných a vysokých kladných teplotách ztrácejí své fyzikální vlastnosti a displej přestává dočasně pracovat.

     Bavme se však nyní o řadě displejů s řadičem HD44780 a kompatibilními. Výhodou těchto displejů je rozšířenost mezi konstruktéry, relativně snadné ovládání, možnost definice až osmi uživatelských znaků (např. čeština), různorodost ve výběru velikosti (1x16 až 4x40 znaků) při zachování jednotného ovládání a v neposlední řadě se jejich specifikace zavádí jako průmyslový standard, včetně zapojení vývodů . To usnadňuje ladění na HW i SW úrovni a případnou výměnu displeje (např. za větší, podsvětlený apod.) Za cenu mírného zkomplikování protokolu lze s displejem komunikovat buď osmi- nebo čtyřbitově. Prvních osm znaků ve znakové sadě lze nastavit, což umožní na displeji tvořit různé efekty, grafické symboly, češtinu nebo animace.
     Pro češtinu však mnohdy osm znaků nepostačuje, což si vynucuje měnit dynamicky generátor znaků podle konkrétní potřeby grafických znaků. Použitá zobrazovací matice displeje a nastavený režim určují, zda k zobrazení uživatelsky definovaných znaků bude použit rastr 5x7 nebo 5x10 pixelů. Velikost znaku, které nahráváte je logicky 8x8 pixelů, takže v rozlišení 5 šířka x 7 výška se osmé slovo v generátoru znaků ignoruje a sedmé se používá i jako podtržení znaku. V módu 5x10 je k definici znaku použito 8 řádků, devátý se nepoužívá a desátý slouží k zobrazení kurzoru. Displej lze nastavit (pokud to umožňuje hardware) do módu jednořádkového, dvou- nebo čtyřřádkového. Bohužel organizace paměti rozložení znaků neumožňuje i přes automatickou inkrementaci čítače přímý přechod mezi řádky, protože řádky na sebe přímo nenavazují. Díky tomu je scrollování textu po displeji nutno vždy obsluhovat softwarově.


Význam jednotlivých vývodů displeje:
Číslo
vývodu
Označení V/V Význam
Vss  0V (napájení) 
Vcc  +5V (napájení) 
Vee  Nastavení kontrastu 
RS  Vstup  0 = vstup je instrukce
1 = vstup jsou data 
R/W  Vstup  0 = zápis dat do LCD
1 = čtení dat z LCD 
Vstup  Aktivace displeje 
DB0  V/V  Data, bit 0 (nejnižší) 
DB1  V/V  Data, bit 1 
DB2  V/V  Data, bit 2 
10  DB3  V/V  Data, bit 3 
11  DB4  V/V  Data, bit 4 
12  DB5  V/V  Data, bit 5 
13  DB6  V/V  Data, bit 6 
14  DB7  V/V  Data, bit 7 (nejvyšší) 
15 (**) Napájení podsvětlení, anoda 
16 (**) Napájení podsvětlení, katoda 
(*) Před prvním připojením displeje si zkontrolujte zapojení vývodů v dokumentaci výrobce ke konkrétnímu displeji!
(**) Vývody nemusí být osazeny, nemá-li displej podsvětlení.


Komunikační protokoly:
Komunikace řídicího systému s displejem po osmibitové sběrnici:

Osmibitová komunikace - časový průběh



Čtyřbitová komunikace:

Čtyřbitový interface - časový průběh



Posloupnost posílaných slabik při čtyřbitové komunikaci:

Čtyřbitový interface - přenos dat

Pozn. Po zapnutí se displej nachází v režimu osmibitové komunikace. Aby bylo možné s ním komunikovat čtyřbitově, je nutné poslat mu nejdříve řídicí sekvenci (0100 xxxx) "jakoby osmibitově" a pak s ním lze komunikovat čtyřbitově.



Organizace paměti řadiče:
     Paměť displeje pro uložení pozice znaků na zobrazovacím médiu se označuje jako DDRAM (Display Data Random Acces Memory). Níže jsou uvedeny pozice, na kterých jsou uloženy znaky pro zobrazení na řádcích (nižší adresa odpovídá znaku více vlevo).
Jednořádkové displeje

 Počet znaků   Pozice v DDRAM 
1 x 8
00h..07h
1 x 16
00h..0Fh
1 x 20
00h..13h
1 x 24
00h..17h
1 x 32
00h..1Fh
1 x 40
00h..27h

Pozn. Některé jednořádkové displeje se musí inicializovat jako dvouřádkové. Pak i pozice jednotlivých znaků se liší od klasického rozložení. Bližší informace najdete v datasheetu každého displeje.

Dvouřádkové displeje

 Počet znaků   Pozice v DDRAM (po řádcích) 
2 x 16
00h..0Fh
40h..4Fh
2 x 20
00h..13h
40h..53h
2 x 24
00h..17h
40h..57h
2 x 32
00h..1Fh
40h..5Fh
2 x 40
00h..27h
40h..67h


Čtyřřádkové displeje

 Počet znaků   Pozice v DDRAM (po řádcích) 
4 x 16
00h..0Fh
40h..4Fh
14h..23h
54h..63h
4 x 20
00h..13h
40h..53h
14h..27h
54h..67h



Znakový generátor:
     Většina displejů používá zde uvedenou znakovou sadu, odlišují se mutace pro nejrůznější abeceny příliš odlišné od latinky (azbuka..), podrobné informace potom najdete v datasheetu ke konkrétnímu typu.



Příkazy řadiče displeje:

Příkaz Kód Popis Délka vykonání příkazu**
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
Smaže displej 0 0 0 0 0 0 0 0 0 1 Smaže displej a nastaví kurzor na pozici 0. 1.64mS
Nastaví kurzor na začátek 0 0 0 0 0 0 0 0 1 * Nastaví kurzor na pozici 0 a vynuluje posun displeje   1.64mS
Nastaví vstupní režim 0 0 0 0 0 0 0 1 I/D S Určí směr pohybu kurzoru (I/D) a posun displeje (S). Tyto operace se provádějí během čtení/zápisu. 40uS
Zapne/vypne displej, kurzor a jeho blikání 0 0 0 0 0 0 1 D C B Zapíná/vypíná displej (D), kurzor (C) a jeho blikání (B). 40uS
Nastaví pohyb kurzoru/displeje 0 0 0 0 0 1 S/C R/L * * Nastaví pohyb kurzoru nebo displeje (S/C) a směr pohybu (R/L). Obsah DDRAM zůstane beze změny. 40uS
Nastavení interface 0 0 0 0 1 DL N F * * Nastaví délku interface (DL), počet řádků displeje (N) a znakový font (F). 40uS
Nastaví pozici v CGRAM 0 0 0 1 Adresa v CGRAM Po tomto příkazu jsou data ze vstupu zaznamenávána do CGRAM namísto DDRAM. 40uS
Nastaví pozici v DDRAM 0 0 1 Adresa v DDRAM Po tomto příkazu jsou data ze vstupu zapisována do a čtena z DDRAM. 40uS
Čte příznak BUSY a hodnotu adresového čítače 0 1 BF DDRAM address Čte příznak BUSY (BF) indikující, že displej ještě prování některou operaci, a pozici ukazatele adresy . 0uS
Zapíše do DDRAM nebo CGRAM. 1 0 data Zapíše data ze vstupu DDRAM nebo do CGRAM. 40uS
Čte data z DDRAM nebo z CGRAM. 1 1 data Čte data z aktuální adresy DDRAM nebo CGRAM. 40uS

Název bitu Význam nastavení
I/D
0 = Pohyb kurzoru zpět
1 = Pohyb kurzoru dopředu
S
0 = Posun displeje se neprovádí
1 = Displej se posouvá
D
0 = Vypnutí displeje
1 = Zapnutí displeje
C
0 = Vypnutí kurzoru
1 = Zapnutí kurzoru
B
0 = Vypnutí blikání kurzoru
1 = Zapnutí blikání kurzoru
S/C
0 = Pohyb kurzoru
1 = Pohyb displeje
R/L
0 = Posun doleva
1 = Posun doprava
DL
0 = 4-bit interface
1 = 8-bit interface
N
0 = střída 1/8 nebo 1/11 (jednořádkový displej)
1 = střída 1/16 (dvouřádkový displej)
F
0 = 5x7 bodů
1 = 5x10 bodů
BF
0 = Řadič přijímá instrukce
1 = Řadič je zaneprázdněn vykonáváním předchozí operace



A nyní konkrétní příklady připojení inteligentního LCD k MCS 51 a zdrojové soubory:
základní zapojení v 8-bitovém režimu k I/O portu procesoru
připojení pomocí expanderu PCF8574 a sběrnice I2C. Uvedené řešení může být užitečné v případě, že máme nedostatek I/O portů. Nevýhodou je vyšší režie nutná k obsluze.
čtyřbitové připojení a ovládání pomocí portu P2 Pro tentokrát použijeme čtyřbitové připojení a ovládání pomocí portu P2. Uvedené řešení může být užitečné opět v případě, že máme nedostatek I/O portů.
připojení do adresního prostoru V tomto případě se jedná o připojení do adresního prostoru. Po programové stránce rozhodně nejjednodušší, ale za cenu přídavných obvodů a s rizikem, že ne vždy bude funkční.


     Pozor, tyto rutiny jsou stažené z Internetu a proto neručím za funkčnost.Vyzkoušenou a odladěnou rutinu s čtyř vodičovou komunikací s použitím a popisem tvorby českých fontů najdete zde.
Vytisknout stránku

Zpátky Zpátky
© DH servis 2002 -