LCD modul


      Az LCD modul a meglehetősen elterjedt Hitachi HD44780 vagy azzal kompatibilis kontrollerrel szerelt LCD modulok kezelesehez irodott. A modul hasznalható 8 bites vagy 4 bites adatmódban, es különböző méretű kijelzők esetén is. A modul nem olvassa a BUSY flaget. R/W lábat ezért fixen a GND-re kell kötni. Az HD44780 kompatibilis kijelzök kezeléséről sok hasznos infot itt találsz még: http://home.iae.nl/users/pouweha/lcd/lcd.shtml

Szükséges definiciók a főprogramban

#define         LCD_RS          PORTA,2         ; out
#define         LCD_E           PORTA,3         ; out
#define         LCD_DATAPORT    PORTB

Opcionális definiciók a főprogramban

#define		LCD_SPLITED	; Nehany LCD-nel lesporoltak megegy oszlopmeghajtot,
                                ; igy peldaul a fizikailag 1x16 karakteres kijelzo
                                ; logikailag 2x8-as. Ekkor kell hasznalni ezt a 
                                ; definet, es ujra 1x16-kent kezelhetjuk.

Makrók

Név Paraméter Leirás
LCD_INIT xsize, ysize, mode Inicializalja az LCD modult.
xsize kijelző szélessége (8 .. 40)
ysize kijelző magassága (1, 2, 4)
mode Interface modja:
LCD_8BIT- 8 bites
LCD_4BITLO- 4 bites, az adatport alsó 4 bitjével
LCD_4BITHI- 4 bites, az adatport felső 4 bitjével
LCD_SETMODE mode A kijelző müködési módját lehet vele beállitani (Hasznalata opcionális, mert a beállitásokat az LCD_INIT is megteszi!)
mode 0010x100b
||||||||___ B - kurzor villogás be/ki (1/0)
|||||||____ C - kurzor be/ki
||||||_____ D - kijelzés be/ki
|||||______ x - nem hasznalt
||||_______ S - kijelzés görgetése be/ki
|||________ I/D - kurzor pozició növ./csökkent
||_________ R/L - görgetés jobbra/balra
|__________ S/C - kurzor mozg./képernyö görg.
LCD_SETDISPMODE mode A kurzort, a kurzor villogását és a kijelzőt lehet vele ki be kapcsolni.
mode xxxxx100b
||||||||___ B - kurzor villogás be/ki (1/0)
|||||||____ C - kurzor be/ki
||||||_____ D - kijelzés be/ki
|||||______ x - nem hasznalt bitek
LCD_CLEAR Törli a kijelzőt, a kurzot a bal felső pozicióba mozgatja.
LCD_CLEARREST Az aktuális sorban a kurzortól jobbra levő poziciókat törli a sor végeig. (beleértve a kurzor pozicióját is) A kurzor a következő sor elejére fog állni.
LCD_GOTOX pos A kurzort vizszintesen pozicionálja
pos A kurzor új x poziciója
LCD_GOTOY pos A kurzort függőlegesen pozicionálja
pos A kurzor új y poziciója
LCD_GOTOXY posx, posy A kurzort a (posx, posy) helyre mozgatja.
posx A kurzor új x poziciója
posy A kurzor új y poziciója
LCD_PRINTC A W-ben levő ASCII kódnak megfelelő karaktert kiirja az LCD-re az aktuális kurzorpozicióba.
LCD_PRINTCS cstring Konstans szöveget ir ki az LCD-re.
cstring konstans string pl:
LCD_PRINTCS "Hello World!"
LCD_DEFCHAR firstchar, charnum, label Felhasználó által definiálható karakter definiálása. Példa:
LCD_DEFCHAR 0, 1, LCD_char0 - a 0. karakter definialasa
LCD_char0 dt 31,31,31,31,31,31,31,31 - tele karakter
Az igy definiált karaktereket a 00h-07h (vagy 08h-0Fh) ASCII kódokkal lehet megjeleníteni.
firstchar Hányadik karaktertől kezdve definiálunk (0 .. 7)
charnum Hány saját karaktert definiálunk (1 .. 8)
label cimke, ahol a karakteradatok helyetfoglalnak (bármelyik page-en lehet)