A DisplayTech 204b 4x20 karakteres LCD kijelző használata PC-vel

Hello!

(If you don't speak Hungarian but still, want to learn about this LCD display module, just contact me. I am not an expert at all, but I will help you if I can...)

Ezen az oldalon a címben jelzett LCD kijelző használatáról szeretnék néhány szót szólni azokhoz, akik hozzám hasonlóan elektronikával foglalkoznak, és valamilyen mikroprocesszoros környezetben akaják használni a modult. Sajnos a hivatalos gyártói dokumentáció eléggé hiányos, ráadásul az angol helyesírással is vannak még gondjaik. Úgy gondolom, talán másnak is hasznos lesz ez a néhány info, amit egynapos használat után el tudok mondani.

A modul eredeti dokumentációját, illetve egyéb doksikat is erről az oldalról tudtok letölteni:
http://www.displaytech.com.hk/pdf/char/ 204B ezt mindenképp töltsétek le és olvassátok át, bár mint írtam, nem tökéletes.

A modul kivezetései (pinout)
 Kivezetés Megnevezés Funkció
1VssTápfeszültség, GND
2VddTápfeszültség, +5V
3Vo(??)Az LCD egység engedélyezése*
4RSAdat (H)/parancs (L) választó jel
5R/WOlvasás (H)/Írás (L)
6EBeírás engedélyető (aktív H)*
7..14D0..D7Adatbusz
15AA háttérvilágítás anódja*
16KA háttérvilágítás katódja*

* Ez a vonal nincs részletesen leírva a doksiban, így próbálgatnom kellett, hogy mit is akar csinálni. Végül azt találtam, hogy földpotenciálra kell húzni ahhoz, hogy valami egyáltalán megjelenjen. Én egy 2K2 ellenálláson keresztül kötöttem GND-re.
* Eltérően a legtöbb eszköztől, aktív szintje H, H->L átmenetre ír/olvas a modul.
* A háttérvilágítás nekem 12V feszültségről ment jól, itt kb 330-470 ohm közötti ellenállást kell használni, bár a 330-al már vigyázni kell, mert ekkor az áramfelvétel 25mA felett van, és ez a doksi szerint a felső határérték.


Az itt található kis DOS-os (Borland Pascal 7.0) program a párhuzamos porton keresztül programozza az egységet. Kétirányú port esetében a modul olvasása is megvalósítható a BF (busy flag) miatt, de ezt ebben a programban nem alkalmaztam. A parancskészlet benne van a doksiban, az alkalmazott összekötés pedig meglehetősen egyszerű:


PC - 204B LCD modul összekötése
 204B kivezetés PC kivezetés
VssDrive tápkébel, GND (fekete)*
VddDrive tápkábel, +5V (piros)*
VoMint fentebb írtam, egy 2K2 ellenálláson keresztül GND-re
RSPárhuzamos port, -STROBE jel
R/WPárhuzamos port, -AUTO FD jel
EPárhuzamos port, -SEL IN jel
D0..D7Párhuzamos port, D0..D7

* A tápfeszültség sajnos nincs kivezetve a párhuzamos porton, ezért azt a drive tápról vettem.


Még néhány dolog a modulról, csak úgy találomra, ahogyan eszembe jut. Ha valami a gyári dokumentáció alapján nem világos, talán ezek az infók segítenek:

* A modul szoftveres inicializálása a következő (egy lehetséges megoldás):
   Set function parancs: 8 bites interfész, két soros display, 5x7-es mátrix beállítása,
   Entry mode set parancs: I/D=H címnövelés, SH=L a kép nem tolódik,
   Display Clear parancs: képtörlés,
   Cursor Home parancs,
   Display On parancs: display on, cursor off, blinking off,
   Set DDRAM address parancs: a DD RAM számlálót 00-ra állítjuk, így az első kiírt karakter a bal felső sarokban jelenik majd meg.
* CG RAM: Character Graphics RAM, a modulban 64 bájt található 8 darab felhasználói karakter számára. Ezek egyenként 8 bájtot igényelnek, mivel a szegmensek 5x8 pixel szervezésűek, a beírt bájtok alsó 5 bitje jeleik meg. A fenti pascal programban van példa a karakterek definiálására (DefChar eljárás)
* DD RAM: Display Data RAM, a kijelző karaktereinek memóriája. A kijelző 4 sor/20 oszlop szervezésű, a memóriacímeket az eredeti doksi megadja. A szervezése tulajdonképpen 2x40 címfolytonos pozíció, az első és a harmadik, valamint a második és a negyedik karaktersor logikailag egy-egy tartomány.
* A Write Data parancs minden esetben egy adatot ír a megfelelő pozícióba, majd az Entry Mode Set parancs I/D bitjének megfelelően egy belső címszámlálót növel vagy csökkent. Ennek megfeleően a karaktereket sorban lehet kiírni a kijelzőre, de az első karakter előtt a címet a Set DDRAM Address paranccsal meg kell adni. (Lásd a példaprogramban)
* Cursor: Ki-/bekapcsolható, valamint villogni is tud. A pozíciója automatikusan változik az Entry Mode Set parancs I/D bitjének megfelelően. A kurzort a Display on/off parancs állítja be.

bye,
   joco