Modul LCD displeje se čtyřmi tlačítky a piezoelementem

Milan Horkel, Jakub Kákona

Modul LCD2L4P obsahuje dvouřádkový LCD displej s obvyklým Hitachi řadičem a čtveřici tlačítek. Dále je vybaven piezoelementem s oddělovačem 74HC04. Modul se používá jako univerzální uživatelský interfejs při pokusech s mikroprocesorovými konstrukcemi.

Pohled na modul displeje

Acrobat PDF verze

Technické parametry

Parametr Hodnota Poznámka
Napájení +5V nebo +3V/-2V Záporné napětí pro řízení kontrastu
Spotřeba cca 1mA Při +5V (dle displeje, bez zvuku)
Displej LCD, 2 řádky po 16 znacích Hitachi řadič
Tlačítka 4 spínací tlačítka do země Volitelný pull-up odpor
Piezoelement 1ks Buzený z obvodu 74HC04 protitaktně
Rozměry 61 x 101 x 22 mm Výška nad nosnou deskou

Popis konstrukce

Úvodem

Na modulu je osazen obyčejný standardní dvouřádkový LCD displej s Hitachi řadičem (to jsou skoro všechny dostupné řádkové displeje). Z displeje je vyveden jen 4 bitový interfejs a příslušné řídící signály. Pomocí propojek je možné připojit trimr pro řízení kontrastu displeje a trvale nastavit řídící signál RW na režim jen zápis (v obvyklých konstrukcích se z LCD displeje nic nečte, ušetří se vývod procesoru).

Pod displejem jsou umístěna 4 velká spínací tlačítka do země. Pomocí řady propojek označené „PULL UPS“ je možné připojit pull-up odpory do plusu (hodnota 10k).

Pod displejem je schovaný piezoelement, který je buzený protitaktně z obvodu 74HC04.

Zapojení modulu

Schéma zdroje

Dioda D1 je ochranná dioda proti přepólování napájení.

Schéma displeje

Standardní napájení je +5V, ale v případě potřeby může být napájení menší. Aby bylo na displeji něco vidět, je třeba dosáhnout rozdílu kladného napájecího napětí a napětí pro kontrast (označené Vo) cca 5V. Napětí pro kontrast pak bude záporné. Napájecí proud pro řízení kontrastu je velmi malý a dá se snadno nastřídat. Při sníženém napájecím napětí je podstatně snížena spotřeba. Spotřebu lze u některých displejů dále snížit zvětšením odporů na displeji (dělič pro výrobu interních napětí pro displej, odpory jsou zapojené v sérii a někdy mají zbytečně malou hodnotu).

Odpory 1k jsou zapojeny proto, aby při experimentech nebylo tak snadné poškodit výstupy z displeje. Pokud se do displeje jen zapisuje je třeba uzemnit signál RW. Proto je J4 tam, kde je.

Podsvícení je jen propojeno na displej. Podsvícení bývá realizováno LED diodami zapojenými v sérii a je jej třeba budit zdrojem proudu.

Schéma tlačítek

Zapojení tlačítek je přímočaré. Odpory R6 až R9 jsou volitelné (propojkami J9) pull-up odpory. Tlačítka jsou napevno zapojená „do země“.

Piezoelement (pod displejem) je buzen protitaktně přímo z výstupů obvodu U2. Aby volný vstup nechytal rušení (brum), je zapojení doplněno odporem RX, který zajišťuje stabilní úroveň na vstupu, pokud není buzen z vnějšku.

Schéma budiče piezoelementu

Osazení a oživení

Osazení

Před osazením LCD displeje nezapomeneme osadit piezoelement. Ten se lepí na mezikruží vystřižené z oboustranně lepící samolepky. Vznikne tak tlaková komůrka a výsledný zvuk je mnohem silnější. Mezikruží musí být nalepeno tak, aby dírka byla uvnitř.

Nalepené mezikruží      Nalepený piezoelement

Displej je přichycen šrouby M2.5 a mezi desku displeje a plošný spoj modulu musíme vložit distanční válečky, například 1 nebo 2 matičky M3. Displej nesmí být opřen o plošný spoj ani o piezoelement.

Propojovací hřebínek na LCD je vhodné zapájet až po přišroubování displeje.

Osazený rezistor RX

Odpor RX bohužel nemá na plošném spoji plošky a musí se tak přibastlit pomocí kousku drátu. Obrázek napoví. Když se neosadí, bude piezoelement chytat brumy z nepřipojeného vstupu. Vyzkoušejte si to, CMOS obvody jsou proklatě citlivé.

Při mytí desky pozor na tlačítka. Pokud do nich zateče rozpuštěná kalafuna je třeba je opatrně rozebrat (snadné) a vyčistit.

Osazení, pohled ze strany součástek

Osazení, pohled ze strany spojů

Počet Reference Hodnota Pouzdro
Odpory
4x R1, R2, R3, R4 1k R0805
4x R6, R7, R8, R9 10k R0805
1x R5 47k R0805
1x RX 1M R0805
Odporové trimry
1x P1 47k PT10V
Keramické kondenzátory
1x C1 100nF C0805
Tantalové kondenzátory
1x C2 4u7/16V ELYTB
Polovodiče
1x D1 1N4004 DO41
1x U1 LCD_MODULE LCD_SC1602A
1x U2 74HC04/SO SO14_150
Mechanické součástky
4x SW1,SW2,SW3,SW4 P-DT6GE PUSH120
1x J4 JUMP1 JUMP1
3x J2, J5, J7 JUMP2 JUMP2
1x J6 JUMP3 JUMP3
1x J1 JUMP2X3 JUMP2X3
2x J8, J9 JUMP2X4 JUMP2X4
1x J3 JUMP2X8 JUMP2X8
1x SP1 KBI-2734 JUMP2
Konstrukční součástky
2x   Jumper
4x   Šroub M2.5x8, válcová hlava
4x   Matice M2.5
4x   Matice M3
4x   Šroub M3x12, křížový, válcová hlava
4x   Podložka M3
4x   Sloupek M3x5

Oživení

Pokud je plošný spoj a součásti v pořádku, není co oživovat. Pro otestování je vhodné použít některý z příkladů z tohoto webu. Jsou připraveny příklady v jazyce C pro procesory PIC i AVR.

Ovládání LCD displeje s HD44780

Úvodem o řadiči

Většina jednořádkových, dvouřádkových a čtyřřádkových LCD displejů je řízena stařičkým Hitachi řadičem HD44780 nebo některým z jeho klonů.

Řadič obsahuje paměť RAM (nazývanou DD RAM) pro zapisované znaky o kapacitě 2x40 znaků.

Dále obsahuje paměť RAM (nazývanou CG RAM) pro definici 8 uživatelských znaků.

K řadiči může být připojen vlastní LCD displej (sklo) s různě zapojenými segmenty. Některé delší jednořádkové displeje jsou ve skutečnosti dvouřádkové (levá polovina displeje je první řádka a pravá polovina displeje je druhá řádka). Čtyřřádkové displeje jsou ve skutečnosti dvouřádkové s tím, že segmenty jsou fyzicky na skle umístěny do dvou řádek.

Řadič samotný umí jen režim jednořádkový a dvouřádkový. Po resetu je nastaven jednořádkový režim a proto po zapnutí napájení u dvouřádkového displeje svítí první řádka dokud nedojde ke správné inicializaci.

Řízení

LCD displej se ovládá zápisem do řídících registrů (RS=0), do paměti pro zobrazovaný text (DD RAM) nebo do paměti definice znaků (CG RAM). Z pamětí DD RAM a CG RAM je možné rovněž číst ale tato funkce nebývá potřebná a je možné trvale čtení deaktivovat (RW=0).

Zápis (i čtení) může buď probíhat najednou po 8 bitech nebo nadvakrát po 4 bitech. Druhý způsob je výhodný z hlediska snížení počtu portů procesoru, ke kterému je displej připojen. Pozor, pro čtyřbitový provoz se používají vývody D7 až D4.

Obsah paměti DD RAM definuje (v ASCII kódu + japonské znaky), co se bude zobrazovat. První polovina paměti RAM je vyhrazena pro první řádku a druhá polovina pro druhou řádku. Není-li displej 2x40 znaků (nebo čtyřřádkový 4x20 znaků) je vidět jen kus, výřez, z celé DD RAM paměti.

Uživatelsky definované znaky (celkem 8 kusů) jsou zobrazovány když se do DD RAM zapíše kód 0 až 7 nebo 8 až 15. Tvar znaků je uložen v CG RAM po řádcích.

Je možné volit, zda se při zápisu znaků do DD RAM automaticky zvyšuje adresa do které se zapisuje nebo zda se posouvá okno. Posouvání okna je možné řídit nezávisle a je tak možné snadno realizovat běžící text.

Pozor na časování. Některé instrukce potřebují pro své provedení delší čas. Pokud nečteme stav busy bitu, je třeba počkat příslušnou dobu v čekací smyčce. Některé displeje mohou být o něco pomalejší a pak se nepovede inicializace. Rychlost displeje je také závislý na jeho napájení (5V nebo 3.3V). Konzervativní hodnoty časů jsou uvedeny v tabulce.

Instrukce Řízení Datová sběrnice
RS RW D7 D6 D5 D4 D3 D2 D1 D0
Smaž displej a nuluj adresu DD (2ms) 0 0 0 0 0 0 0 0 0 1
Nuluj adresu DD na 0 a zruš posunutí (2ms) 0 0 0 0 0 0 0 0 1 *
Nastavení pohybu kurzoru (40µs) 0 0 0 0 0 0 0 1 ID S
Nastavení módu displeje (40µs) 0 0 0 0 0 0 1 D C B
Okamžitý posuv kurzoru nebo textu (40µs) 0 0 0 0 0 1 SC RL * *
Nastavení funkce displeje (40µs) 0 0 0 0 1 DL N F * *
Nastavení adresy CG (40µs) 0 0 0 1 A5 A4 A3 A2 A1 A0
Nastavení adresy DD (40µs) 0 0 1 A6 A5 A4 A3 A2 A1 A0
Čtení adresy a busy bitu 0 1 BF A6 A5 A4 A3 A2 A1 A0
Zápis dat (40µs) 1 0 D7 D6 D5 D4 D3 D2 D1 D0
Čtení dat (40µs) 1 1 D7 D6 D5 D4 D3 D2 D1 D0
Bit Popis
S=1 Při zápisu/čtení dat se bude posouvat celý displej (směr určuje bit ID)
S=0 Při zápisu/čtení dat se bude posouvat jen kursor (směr určuje bit ID)
ID=1 Při zápisu/čtení dat je ukazatel adresy inkrementován
ID=0 Při zápisu/čtení dat je ukazatel adresy dekrementován
B=1 Blikající znak na pozici kurzoru
B=0 Znak nebliká
C=1 Zapnutí kurzoru
C=0 Vypnutí kurzoru
D=1 Zapnutí displeje
D=0 Vypnutí displeje
RL=1 Okamžitý posuv doprava
RL=0 Okamžitý posuv doleva
SC=1 Okamžitý posuv textu
SC=0 Okamžitý posuv kurzoru
F=1 Znaky v rastru 5x10
F=0 Znaky v rastru 5x7 (běžné)
N=1 Počet řádek displeje 2 nebo 4
N=0 Počet řádek displeje 1 (některé jednořádkové displeje jsou dvouřádkové – místo řádek mají levou a pravou polovinu)
DL=1 Přenos dat 8 bitů
DL=0 Přenos dat 4 bity (používají se vodiče D7 až D4)
BF=1 Busy – probíhá vnitřní operace
BF=0 Ready – je možné posílat instrukce

Programové vybavení

Na tomto webu jsou připraveny knihovní funkce pro ovládání LCD displeje pro procesory PIC a AVR napsané v jazyce C.