Znakové LCD displeje

Úvod

Jedná se o zobrazovací moduly LCD. Každý znak je zobrazován jako matice 5x8 bodů. Definice jednotlivých znaků je uložena napevno ve vnitřní paměti ROM code: A00.

Prvních 8 znaků (znak 0 až 7) je možno nadefinovat uživatelem třeba jako české znaky nebo různé symboly. Dále je možno zobrazit kurzor, nastavit blikání kurzoru, definovat posouvání zobrazených znaků, smazat displej, zobrazovat na konkrétní pozici apod.

Displej se vyrábí v několika variantách, které se liší počtem sloupců a řádků. 8x2, 10x2, 16x1, 16x2, 16x4, 20x2, 20x4, 24x2, 40x2, 40x4 (sloupce x řádky). Moduly se vyrábí s podsvícením LED nebo výbojkou.

Zapojení vývodů

Komunikace s modulem

Komunikace s modulem probíhá 8-bitově (DB0-DB7) nebo 4-bitově (DB4-DB7). Nastavení na 4bity se provádí v úvodní inicializaci displeje.

Instrukce

Instrukce kód Popis čas prová- dění **
RS R/W DB 7 DB 6 DB 5 DB 4 DB 3 DB 2 DB 1 DB 0
Smazat displej 0 0 0 0 0 0 0 0 0 1 Smaže displej a nastaví adresu DDRAM na 0. 1.64ms
Návrat na pozici 0 0 0 0 0 0 0 0 0 1 * Nastaví adresu DDRAM na 0. Vrátí kurzor na pozici 0 a posune displej zpět do původní pozice. Obsah DDRAM zůstane zachován. 1.64ms
Nastavení módu 0 0 0 0 0 0 0 1 I/D S Nastaví směr pohybu kurzoru, a specifikuje posun displeje. Operace jsou prováděny během zápisu a čtení dat. 40us
Displej zap/vyp 0 0 0 0 0 0 1 D C B Zapne/vypne displej (D), zapne/vypne kurzor (C) a blikání pozice kurzoru (B). 40us
Posun kurzoru, displeje 0 0 0 0 0 1 S/C R/L * * Pohyb kurzoru a posun displeje bez změny obsahu DDRAM. 40us
Nastavení funkce 0 0 0 0 1 DL N F * * Nastavení délku rozhraní (DL), počet řádek displeje (N) a font (F). 40us
Nastavení adresy CGRAM 0 0 0 1 CGRAM adresa Nastaví adresu CGRAM. CGRAM data jsou přenesena po tomto nastavení. 40us
Nastavení adresy DDRAM 0 0 1 DDRAM adresa Nastaví adresu DDRAM. DDRAM data jsou přenesena po tomto nastavení. 40us
Čtení příznaku Busy Flag a adresy 0 1 BF CGRAM / DDRAM adresa Čte příznak (BF), který indikuje provádění vnitřních operací a čte adresu CGRAM nebo DDRAM (v závislosti na předchozí instrukci). 0us
Zapiš data do CGRAM nebo DDRAM 1 0 zápis dat Zapíše data do CGRAM nebo DDRAM. 40us
Čti data z CGRAM nebo DDRAM 1 1 čtení dat Přečte data z CGRAM nebo DDRAM. 40us

Vysvětlivky:

DDRAM - Display Data RAM. (paměť zobrazovaných znaků)
CGRAM - Character Generator RAM.(paměť pro uložení vlastního znaku)
* - Na hodnotě nezáleží.
** - Frekvence oscilátoru 270KHz.

Název bitu Popis
I/D 0 - Snížení 1 - Zvýšení
S 0 - Není posun displeje 1 - Posun displeje při zápisu dat
D 0 - Vypnout displej 1 - Zapnout displej
C 0 - Vypnout kurzor 1 - Zapnout kurzor
B 0 - Vypnout blikání kurzoru 1 - Zapnout blikání kurzoru
S/C 0 - Posun kurzoru 1 - Posun displeje
R/L 0 - Posun doleva 1 - Posun doprava
DL 0 - 4bitová komunikace 1 - 8bitová komunikace
N 0 - 1 řádek 1 - 2 řádky
F 0 - 5x8 bodů 1 - 5x10 bodů
BF 0 - Operace je ukončena 1 - Operace probíhá

 

Popis instrukcí

Smaže displej. Zapíše kód 20H (kód 20H je prázndný znak) do všech adres DDRAM. Potom nastavý DDRAM  adresu 0 adresového čítače a návrat displej k jeho originálnímu stavu, jestliže byl posunutý. Jinými Slovy, displej zmizí a kurzor nebo blikání směřuje displej doleva (v 1řádce 2řádkového displeje). To také nastaví I / D na 1 (zvýšení) v nastavovacím módu. S se v módu nastavení nezmění.

Vrátí se na začátek. Nastaví adresu DDRAM na 0 a vrátí displej do jeho originálnímu stavu jestliže byl posunut. Nezmění se obsah DDRAM. Kurzor nebo blikání směřuje displej doleva (v 1řádce 2řádkového displeje).

I / D: Zvětší (I / D = 1) nebo zmenší (I / D = 0) adresu DDRAM o 1, když kód znaku je zapsán  do nebo čten z DDRAM. Kurzor nebo blikající pohyby doprava zvětšen o 1 a doleva zmenšený o 1. Stejné platí při zápisu a čtení z CGRAM.

S: Posune celý displej o jeden znak doprava (I / D = 0) nebo doleva (I / D = 1) když S je 1. Displej se neposune jestliže S je 0. Jestliže S je 1, bude se zdát jako by se kurzor nepohyboval ale displej pracuje. Displej se neposune, když čte z DDRAM. Také psaní do nebo čtení z vnější CGRAM displej neposune.

D: Displej zapnut když D je 1 a vypnut když D je 0. Když je vypnut, data displeje zůstanou v DDRAM, ale můžou být zobrazena okamžitě tím, že D je 1.

C: Kurzor je zobrazen když C je 1 a nezobrazen když C je 0. Dokonce jestliže kurzor zmizí, funkce I / D nebo jiné specifikace nebudou se měnit během zápisu dat  displeje. Kurzor je zobrazen pomocí 5 teček v 8-mé řádce pro 5x8 bodů a v 11-té řádce pro 5x10 bodů.

B: Znak ukázaný kurzorem bliká když B je 1. Blikání je zobrazováno jako přepíná mezi celým prázdným místem a zobrazovaným znakem rychlostí 409,6 ms, když fcp nebo fosc je 250 kHz. Kurzor a blikání může být zobrazováno současně. (Frekvence blikání podle fosc nebo podobný z fcp . Například, když fcp je 270 kHz, 409,6 x 250 / 270  = 379,2 ms.)

Posun kurzoru nebo displeje změní místo kurzoru nebo displeje doprava nebo doleva bez psaní nebo čtení zobrazovaných dat. Tato funkce opravuje nebo hledá na displeji. Na 2řádek se kurzor přemístí z 1řádky, když bude přes 40-té číslo 1 řady. Poznamenávám, že první a druhá řádka displeje se posouvá zároveň. Když zobrazovaná data jsou posouvána opakovaně každá řádka se pohybuje jenom vodorovně. Z druhé řádky se neposune do první řádky. Čítač adres (AC) nebude měnit obsah jestliže se jenom vykonaná posun displeje.

DL: Nastaví délku datového rozhraní. Data jsou poslaná nebo přijatá 8-bitově (DB7 - DB0) když DL je 1, a 4-bitově (DB7 k DB4) když DL 0. Při vybrání 4-bitové délky, data musí být poslána nebo přijata dvakrát.

N: Nastaví počet řádků displeje.

F: Nastaví velikost znaku.

Poznámka: Provádět Funkci u hlavy programu předtím, než vykonal nějaká instrukce (kromě čtení busy flag a instrukce adres). Od tohoto bodu, nastavení funkce instrukcí nemůže být vykonána změna délky datového rozhraní.

Nastavením adresy CGRAM dá CGRAM binární adresu AAAAAA do adresového čítače. Data jsou pak zapsána nebo čtena od MPU pro CGRAM.

Nastavením adresy DDRAM dá DDRAM binární adresu AAAAAAA do adresového čítače. Data jsou pak zapsána nebo čtena od MPU pro DDRAM. Nicméně, když N je 0 (1-řádkový displej), AAAAAAA může být 00H - 4FH. Když N je 1 (2-řádkový displej ), AAAAAAA může být 00H - 27H pro 1 řádek a 40H - 67H pro 2 řádek.

Čtení busy flag a čtení adresy busy flag (BF) ukazuje, že systém vnitřně pracuje na předchozí přijaté instrukci. Jestliže BF je 1, vnitřní operace je v běhu. Příští instrukce nebude přijata do okamžiku než BF je 0. Kontrolovat BF stav před příštím zápisem operace. U stejný čas, hodnota adresový čítač v binární AAAAAAA je čten ven. Tento adresový čítač je použitý u obou CG a DDRAM adresy a jeho hodnota je předurčená předchozí instrukcí. Adresový obsah je stejný pokud jde o instrukce nastavení adresy CGRAM a nastavení adresy DDRAM.

 Zapisuje data do DDRAM nebo CGRAM.

 Čte data z CGRAM nebo DDRAM.

Poznámka:

Popis instrukcí přeložen z originální dokumentace obvodu HD44780U.

Zobrazení znaků

Názorně si ukážeme zobrazení znaků na displeji 2x16 znaků. Data, která se mají zobrazit jsou uložena v paměti DDRAM. Každý zobrazovaný znak má svojí adresu. Ve skutečnosti je adresa posazena o 80H víš (tabulka nahoře). Hodnota pro 1 řádek 1znak je 080H pro 2 řádek 1 znak je C0H.

DDRAM bez posuvu

pozice LCD 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
adresa DDRAM 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
adresa DDRAM 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F

Pokud je nastaven posun displeje doleva , bude po provedení posunu zobrazeny následující adresy.

Posun doleva

pozice LCD 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
adresa DDRAM 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10
adresa DDRAM 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50

Pokud je nastaven posun displeje doprava , bude po provedení posunu zobrazeny následující adresy.

Posun doprava

pozice LCD 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
adresa DDRAM 27 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E
adresa DDRAM 67 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E

CARA

Poslední změna: 9. října 2000
Copyright DOVEDA BOYS© 1998 - 2000