Struktura

Inteligentní LCD displeje a jejich řízení

Inteligentní LCD displeje a jejich řízení

     Pro komunikaci mezi zařízením s mikropočítačem a člověkem jsou dnes nejvíce používány inteligentní displeje s označením LCD (Liquid Crystal Display). Jejich výhodou je nízká spotřeba a velký počet znaků, které mohou zobrazovat. Vybrat si můžeme displeje obvykle od velikosti 16x1 znaků (1 řádek po 16 sloupcích), až po 40x4 znaků v mnoha variantách barev a s podsvícení nebo bez. V našich pokusech budeme používat LCD displej LM16X212 (2 řádky, 16 znaků). Komunikaci s displejem a jeho řízení usnadňuje zabudovaný řadič, obvykle HD44780. Jeden znak je tvořen maticí 5x8 bodů, ale ve skutečnosti se používá 5x7 bodů a osmý řádek je ponechán pro kurzor. Řadič umožňuje zobrazit některý z 96 definovaných znaků (včetně mezer), nebo si vytvořit 8 znaků vlastních, např. písmena s diakritikou. Data (zobrazované znaky) mohou být přenášena buď po 4 nebo po 8 datových vodičích. V případě čtyřbitové komunikace probíhá zápis do LCD nadvakrát, nejdříve horní a potom dolní polovina bytu po vodičích označených DB7 až DB4. Komunikaci mezi mikropočítačem a LCD řídí signály RS (příkaz-0 nebo data-1), R/W (čtení-1 nebo zápis dat-0) a E (vstup povolení). Vstup CONTR slouží k nastavení kontrastu displeje, u některých typů stačí zapojit na GND.

Propojení LCD displeje s mikropočítačem při čtyřbitové komunikaci (je výhodnější, protože uspoříme 4 výstupy z mikropočítače) a ošetření ostatních vývodů je patrné ze schématu.

Při programování LCD displeje v jazyku Bascom můžeme volbu propojení provést pomocí knihovny lcd4.lbx, nebo volbou v nastavení Options→Compiler→LCD, nebo vypsáním instrukcí pro konfiguraci LCD (kam je na mikropočítač připojen datový nebo signálový vodič z LCD) ve zdrojovém kódu. Poslední varianta je uvedena ve vzorovém příkladu.

obrazekObr. 1: Schéma zapojení úlohy

obrazek Obr. 2: Realizace úlohy

‘-----------------------------------------------------------------------------------------

’ PROGRAM LCD-1a.bas

’ Program, kterým posíláme na dvouřádkový LCD displej text

’ a podle stisku tlačítka jej zobrazujeme.

’-----------------------------------------------------------------------------------------

$regfile = “m8def.dat”                                       ‘soubor s deklaracemi

$crystal = 12000000                                         ‘kmitočet vnějšího oscilátoru v Hz

Config Lcd = 16 * 2                                           ‘nadefinování LCD - připojení jednotlivých pinů displeje

Config Lcdpin = Pin , Db7 = Portb.0 , Db6 = Portd.7 , Db5 = Portd.6 , Db4 = Portd.5 , E = Portb.1 , Rs = Portb.2

Config Pind.0 = Input

‘aliasing ‘přezdívky

Tl1 Alias Pind.0                                                  ‘nadefinování přezdívky pro tlačítko

’--------------------------  HLAVNI PROGRAM  ------------------------------------

Do                                                                    ‘nekonečná smyčka

If Tl1 = 0 Then                                                  ‘kontrola tlačítka Tl1

Lcd “VOS-SPS Sumperk”                                  ‘text na LCD

Locate 2 , 1                                                      ‘určení kde text zobrazím - druhý řádek, první znak

Lcd “ krouzek E1 “                                            ‘text na druhém řádku

Wait 2                                                               ‘zobrazuj text po dobu 2 sekund

Else

Cls                                                                    ‘když není stisknuto tlačítko, tak vymaž displej

End If

Loop

’---------------------------  KONEC HLAVNIHO PROGRAMU -----------------------

End

‘Popis programu:

‘Připojený LCD displej používá 4-bitovou komunikaci s mikropočítačem,

‘pomocí bitů Db7 až Db4, ostatní bity jsou připojeny na GND.

‘Řízení je prováděno přes vstupy E a RS, nepoužitý vstup R/W se připojí na GND.

‘Pokud se nepoužije řízení kontrastu pomocí trimru, stačí připojit vstup KONTRAST na GND.

‘V hlavním programu je zobrazován 2 sekundy text, když bylo stlačeno tlačítko Tl1.

Pokud provedeme nastavení komunikace LCD displeje v překladači, můžeme vynechat příkazy Config Lcd a Config Lcdpin.

    Obr. 3: Nastavení komunikace s displejem v menu Options

    Některé LCD displeje jsou vybaveny podsvícením a jsou tak dobře čitelné i při nízké hladině okolního světla nebo za tmy. Podsvícení – zapnutí a vypnutí LED diody je možné programově ovládat. Pokud takový LCD displej máte, můžete si vyzkoušet.

Zdroje

Obrázky: 

  • Obr. 1-3: Archiv autora.

Procvič si

  • Na LCD displeji zkus vypisovat různé texty podle vnějších podmínek, například podle stisku tlačítka nebo klávesy na klávesnici.
  • Máš-li k dispozici displej s podsvícením, zkus jej zapínat a vypínat.
Logolink