Čeština / English
Login

Aplikace / Test instrukcí LCD

Autor: Josef Strnadel ()

Abstrakt: Aplikace umožňující seznámit se s principy ovládání LCD displeje pomocí instrukcí jeho řadiče.

Update: 20090415

1. Popis aplikace

Jednoduchá aplikace umožňující bez nutnosti jakéhokoliv programování otestovat činnost instrukcí podporovaných LCD. Vhodné pro základní seznámení se s LCD.

lcd_app.png

Obrázek 1.1: Výchozí stav LCD

2. Instrukce LCD

K ovládání LCD je možno využít následujících instrukcí kódovaných na 8 bitech dle následující tabulky:

lcd_instr.png

Obrázek 2.1: Formát LCD instrukcí

Pomocí těchto instrukcí je možno např. smazat obsah LCD, vypnout/zapnout LCD či kurzor, měnit chování kurzoru, posouvat kurzor či obsah LCD doleva/doprava. Aby mohla být instrukce LCD provedena, je nutno v okně terminálu odeslat kód instrukce pomocí příkazu CMD (viz níže).

Bude-li třeba na LCD zapsat data (vždy se tak děje na aktuální pozici kurzoru, a to bez ohledu na to je-li či není-li viditelný), existují dvě možnosti, a to použití příkazu DTA nebo příkazu DTB (viz níže). Příkaz DTA umožňuje zaslat na LCD přímo znak vepsaný do terminálového okna, zatímco druhý příkaz umožňuje zaslat na LCD znak určený v terminálovém okně jeho adresou v tabulce znaků LCD.

Do DDRAM paměti LCD je možno uložit až 80 znaků, z nichž však LCD dokáže (v daném režimu) zobrazit pouhých 16 znaků - které to jsou, závisí na aktuální pozici kurzoru. Důležité: znaky zobrazované na LCD jsou ukládány do DDRAM paměti (adresa A6:A0) LCD takto:

od 0h (nejlevější znak levé poloviny) až po 40h-1 = 63 (nejpravější znak levé poloviny) - před zápisem znaku do levé poloviny LCD je tedy třeba nejprve nastavit adresu v rámci levé poloviny (bit A6 je nulový, bity A5:A0 udávají ofset v rámci levé poloviny),

od 40h (nejlevější znak pravé poloviny) až po 80h-1 = 127 (nejpravější znak pravé poloviny) - před zápisem znaku do pravé poloviny LCD je tedy třeba nejprve nastavit adresu v rámci pravé poloviny (bit A6 je jedničkový, bity A5:A0 udávají ofset v rámci pravé poloviny).

lcd_charset.png

Obrázek 2.2: Implicitní mapa znaků zobrazitelných na LCD

3. Zprovoznění aplikace

  1. přeložte aplikaci

  2. naprogramujte MCU a FPGA a spusťte terminálový program.

Aplikace nevyžaduje ke své činnosti nastavit kromě propojek umožňujících programování další propojky.

4. Příkazová řádka aplikace

Po navázání komunikace mezi PC a FITkitem je LCD displej možno řídít přímo z terminálového okna, a to pomocí příkazů:

CMD X  ... zaslani instrukce X (8-bitova binarni data) do LCD
       ... priklad pro smazani LCD displeje: CMD 00000001
       ... priklad pro posun kurzoru do vychozi pozice: CMD 00000010
DTA X  ... zaslani dat X (znak z tabulky znaku LCD) do LCD
       ... priklad pro zaslani znaku '3' na LCD: DTA 3
       ... priklad pro zaslani znaku '*' na LCD: DTA *
DTB X  ... zaslani dat X (8-bitovy kod znaku z tabulky znaku LCD) do LCD
       ... priklad pro zaslani znaku '3' na LCD: DTB 00110011
       ... priklad pro zaslani znaku '*' na LCD: DTB 00101010

Binarni data odpovidaji (zleva doprava) hodnotam bitu DB7:DB0 rozhrani LCD

Ilustrace k použití příkazové řádky

Následující obrázek ilustruje obsah LCD po provedení posloupnosti příkazů

DTA H
DTA I
DTA !

odeslání řetězce HI! na LCD; stav LCD po přijetí příkazu řadičem LCD je:

lcd_ex1.png
CMD 00000010

tj. zaslání instrukce 00000010 (posun kurzoru do výchozí pozice) do LCD; stav LCD po přijetí příkazu řadičem LCD je:

lcd_ex2.png
CMD 00000001

tj. smazání LCD instrukcí 00000001; stav LCD po přijetí příkazu řadičem LCD je:

lcd_ex3.png
DTB 11100000

tj. zapsání řeckého písmene malá alfa na LCD; stav LCD po přijetí příkazu řadičem LCD je:

lcd_ex4.png
DTA 1
DTA 3
DTB 11011111
DTA C

tj. zapsání údaje o teplotě na LCD; stav LCD po přijetí příkazu řadičem LCD je:

lcd_ex5.png
DTA 6
DTB 11111101
DTA 3
DTA =
DTA 2

tj. zápisu jednoduchého aritmetického výrazu na LCD; stav LCD po přijetí příkazu řadičem LCD je:

lcd_ex6.png
Zobrazeno: 1586x Naposledy: 17.11.2017 16:09:14