16×2 LCD se tak jmenuje proto, že má 16 sloupců a 2 řádky. K dispozici je mnoho kombinací, například 8×1, 8×2, 10×2, 16×1 atd. Ale nejpoužívanější je 16*2 LCD, proto jej zde používáme.
Všechny výše uvedené LCD displeje budou mít 16 pinů a stejný je i přístup k programování, a proto je volba ponechána na vás. Níže je uvedeno rozložení vývodů a popis pinů 16×2 LCD modulu:
Číslo vývodu |
Číslo pinu. |
Název pinu |
Typ pinu |
Popis pinu |
Připojení pinu |
Pin. 1 |
Zemnění |
Zdrojový kolík |
Jedná se o zemnící kolík LCD |
Připojeno k uzemnění MCU/zdroje napájení |
|
Pin 2 |
VCC |
Pin zdroje |
Jedná se o pin napájecího napětí LCD displeje |
Připojen k napájecí kolík zdroje napájení |
|
Kolík 3 |
V0/VEE |
Řídicí kolík |
Nastavuje kontrast LCD. |
Připojen k proměnnému POT, který může být zdrojem 0-.5V |
|
Kolík 4 |
Výběr registru |
Řídicí kolík |
Přepíná mezi příkazovým/datovým registrem |
Připojen ke kolíku MCU a dostává buď 0 nebo 1. 0 -> Příkazový režim 1-> Datový režim |
|
Pin 5 |
Čtení/zápis |
Řízení Pin |
Přepíná LCD mezi operací čtení/zápisu |
Připojen k pinu MCU a dostává buď 0 nebo 1. 0 -> Operace zápisu 1-> Operace čtení |
|
Pin 6 |
Enable |
Control Pin |
Musí být držen vysoko pro provedení operace čtení/zápisu |
Připojen k MCU a vždy držen vysoko. |
|
Pin 7-14 |
Datové bity (0-7) |
Datový/příkazový pin |
Pin slouží k odeslání příkazu nebo dat na LCD. |
V režimu 4-Wire Pouze 4 piny (0-3) jsou připojeny k MCU V režimu 8-Wire Všech 8 pinů(0-.7 jsou připojeny k MCU |
|
Pin 15 |
LED pozitivní |
LED pin |
Normální provoz LED jako osvětlení LCD |
Připojeno k +5V |
|
Pin 16 |
LED Negativní |
LED Pin |
Normální LED jako operace k osvětlení LCD připojená s GND. |
Připojen k zemi |
Nevadí, pokud nerozumíte funkci všech pinů, podrobně vysvětlím níže. Nyní se vrátíme zpět k našemu LCD displeji:
Okay, co jsou ty dva černé kruhy jako věci na zadní straně našeho LCD displeje?
Tyto černé kruhy se skládají z integrovaného obvodu rozhraní a jeho přidružených součástek, které nám pomohou používat tento LCD displej s MCU. Protože náš LCD je 16*2 bodový maticový LCD, a tak bude mít (16*2=32) celkem 32 znaků a každý znak bude tvořen 5*8 pixelovými body. Jeden znak se všemi povolenými pixely je zobrazen na následujícím obrázku.
Takže nyní víme, že každý znak má (5*8=40) 40 pixelů a pro 32 znaků budeme mít (32*40) 1280 pixelů. Dále by měl být LCD displej také poučen o poloze pixelů.
Bude to hektický úkol zvládnout vše pomocí MCU, proto se používá IC rozhraní, jako je HD44780, které je namontováno na samotném LCD modulu. Úkolem tohoto integrovaného obvodu je přijímat příkazy a data od jednotky MCU a zpracovávat je tak, aby se na obrazovce našeho LCD displeje zobrazovaly smysluplné informace.
Probereme si různé typy režimů a možností, které má náš LCD displej k dispozici a které je třeba ovládat pomocí našich řídicích pinů.
4bitový a 8bitový režim LCD displeje:
LCD displej může pracovat ve dvou různých režimech, a to ve 4bitovém a 8bitovém režimu. Ve 4bitovém režimu posíláme data nibble po nibble, nejprve horní nibble a poté dolní nibble. Pro ty z vás, kteří nevědí, co je to nibble: nibble je skupina čtyř bitů, takže spodní čtyři bity (D0-D3) bytu tvoří spodní nibble, zatímco horní čtyři bity (D4-D7) bytu tvoří vyšší nibble. To nám umožňuje posílat 8bitová data.
Protože v 8bitovém režimu můžeme poslat 8bitová data přímo jedním tahem, protože využíváme všech 8 datových linek.
Teď už jste to určitě uhodli, ano, 8bitový režim je rychlejší a bezchybnější než 4bitový. Ale jeho hlavní nevýhodou je, že potřebuje 8 datových linek připojených k mikrokontroléru. Tím nám dojdou I/O piny na našem MCU, proto se hojně používá 4bitový režim. K nastavení těchto režimů se nepoužívají žádné řídicí piny. Mění se pouze způsob programování.
Režim čtení a zápisu LCD:
Jak již bylo řečeno, samotný LCD se skládá z IC rozhraní. MCU může z tohoto IC rozhraní buď číst, nebo do něj zapisovat. Většinou budeme do IC pouze zapisovat, protože čtení by bylo složitější a takové scénáře jsou velmi vzácné. Informace jako pozice kurzoru, stav dokončení přerušení atd. lze v případě potřeby číst, ale to je mimo rozsah tohoto tutoriálu.
Interface IC přítomný ve většině LCD je HD44780U, abychom mohli naprogramovat náš LCD, měli bychom se naučit kompletní datasheet tohoto IC. Datasheet je uveden zde.
Příkazy LCD:
V LCD jsou přednastaveny některé příkazy instrukcí, které musíme poslat do LCD prostřednictvím některého mikrokontroléru. Některé důležité příkazové instrukce jsou uvedeny níže:
Hex kód |
Příkaz do instrukčního registru LCD |
0F |
LCD ON, kurzor zapnut |
Vymazat obrazovku displeje |
|
Vrátit zpět domů |
|
Snížení kurzoru (posun kurzoru doleva) |
|
Zvětšení kurzoru (posun kurzoru doprava) |
|
Posun zobrazení doprava |
|
Přesun displeje doleva |
|
0E |
Zapnutí zobrazení, kurzor bliká |
Přesun kurzoru na začátek prvního řádku |
|
C0 |
Přesun kurzoru na začátek druhého řádku |
2 řádky a matice 5×7 |
|
Kurzor na prvním řádku pozice 3 |
|
3C |
Aktivovat druhý řádek |
Zobrazení vypnuto, kurzor VYPNUTÝ |
|
C1 |
Přejít na druhý řádek, pozice 1 |
OC |
Zobrazení ZAPNUTÉ, kurzor vypnutý |
C1 |
Přesun na druhý řádek, pozice 1 |
C2 |
Přesun na druhý řádek, pozice 2 |
.