Jste zde

Inteligentní displeje a jejich připojení k PC

Sbírka všech informací pro práci s LCD displeji ovládanými inteligentním řadičem. Tabulka znaků,

software pro připojení k PC, popis komunikace, časové diagramy.

    Obsah:
    1. Úvod
    2. Stručná charakteristika
    3. Důležité maličkosti
    4. Význam jednotlivých vývodů displeje
    5. Připojení 8- a 4-bitovým interface k paralelnímu portu PC
    6. Komunikační protokoly
    7. Organizace paměti řadiče
    8. Znakový generátor
    9. Příkazy řadiče displeje
    10. Použité materiály


    1. Úvod:

    V následujícím článku zevrubně probereme řízení inteligentních displejů na bázi populárního řadiče HD44780 a jejich čtyřbitové a osmibitové připojení k PC.

    2. Stručná charakteristika:

    LC 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ě.

    3. Podstatné maličkosti

    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ě.

    4. 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í.

    5. Připojení k PC

    Zde uvedená připojení jsou pouze jednou z mnoha možností. Slouží však jako názorný příklad a návod pro konstrukci. Obě byla vyzkoušena a odladěna.

    Osmibitový interface

    Autor: Tomáš Dresler
    Pozn.: Zapojení bylo převzato z článku How to control HD44780-based Character-LCD Peera Ouwehanda a mírně upraveno.

    Pripojeni displeje k paralelnimu portu PC

    Přiložený software obsahuje zazipovanou jednotku pro Borland Pascal verze 7.0. Jednotka je koncipována jako objekt, což umožňuje její snadnou modifikaci a vícenásobné použití. Komentována by měla být na úrovni zdrojového textu. Omluvte prosím její nedokonalost :)
    LCD_SRC.ZIP (3231 bytes)

    Čtyřbitový interface

    Autor: Jan Parkman

    Jan Parkman pro tento článek poskytl svůj software, který obsahuje program pro interaktivní řízení displeje, editor uživatelsky definovaných znaků a několik utilit. Balík obsahuje i zdrojové kódy výše uvedených programů. Naleznete jej zde: PARKMAN.EXE (58 062 bytes)

    6. 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ě.

    7. 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

    8. 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.

     

    9. Příkazy řadiče displeje

    PříkazKódPopisDélka vykonání příkazu**
    RSR/WDB7DB6DB5DB4DB3DB2DB1DB0
    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 a  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
    Nasatvií pojyb 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 bituVý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

    10. Použitá literatura a dokumenty

    Peer Ouwehand (C) , How to control HD44780-based Character-LCD
    www.powertip.cz

    Děkujeme Petru Novotnému a několika dalším lidem z konference HW-NEWS za podnětné připomínky.

    Hop na začátek stránky!


    Napsal :  Tomáš Dresler
Hodnocení článku: