Tolle Include von Maik Borchard , siehe auch: Display HD44780 ansteuern/ betreiben [...]
Maik Borchardt, URL=www.rgh-soft.de/forum01/read.php?f=6&i=5963&t=820, ZEITPUNKT=15.11.09
Nabend... Für alle die es sich etwas leicher machen wollen mit der ansteuerung, habe ich hier mal ne includedatei gebastelt mit den wichtigsten was man so ggf. brauchen kann. Hier mal die liste der Befehle LCD_INIT PORTADRESSE%, ZEILEN%,ZEICHEN%
SET_LCD PORTADRESSE%, ZEILEN%,ZEICHEN%
LCD_ON
LCD_OFF
LCD_CURSOR_ON
LCD_CURSOR_OFF
LCD_BLINK_ON
LCD_BLINK_OFF
LCD_CLS
LCD_HOME
SCL
SCR
LCD_LOCATE Zeile%, Spalte%
LCD_WRITE Byte%
LCD_WRITECHAR ZEICHEN$
LCD_CMD Byte%
LCD_BARINIT Byte%
LCD_BAR Zeile%, Spalte%,WERT%,MAXWERT%,BARLEN%
LCD_NEWCHAR CharNum%, byte%, byte%, byte%, byte%, byte%, byte%, byte%
LCD_WRITEWORD Zeile%, Spalte%, Text$
LCD_CENTER Zeile%, Text$
LCD_LEFT Zeile%, Text$
LCD_RIGHT Zeile%, Text$
LCD_CLR Zeile%
LCD_SLOW
LCD_NORMAL
LCD_FAST
Man könnte das alles natürlich noch erweitern ect. aber das wichtigste ist glaub ich getan. Eine Kurze Beschreibung und Informationen ist in der include eh dabei. Download: LCD-LPT.INCeinen kurzen Demo Code Der Kompatibilität wegen hier auf 2x16 beschränkt, funktioniert aber im Grunde auch mit anderen Displays bis maximal 4x20 Zeichen $I LCD-LPT.INC
main
einfach mal nen Fenster Öffnen
DECLARE COUNT%,x%
cls
Print Initialisiere das Display an Port $378 mit 2 x 16 Zeichen
LCD_INIT $378,2,16
LCD_FAST
LCD_WRITEWORD 1,3,Hallo Welt
LCD_CENTER 2,wie gehts?
DELAY(2000)
LCD_CLS
LCD_BARINIT 0
while Count%<=30
LCD_BAR 1,3,Count%,30,10
LCD_CENTER 2,str$(COUNT%)+%
inc Count%
endwhile
LCD_WRITEWORD 2,1,[ESC]->Weiter
Count%=rnd(100)
while %scankey<>27
LCD_BAR 1,3,Count%,100,10
case rnd(10)=5:x%=abs(x%-1)
case x%=0:inc Count%
Case x%=1:dec Count%
case COUNT%>=100:x%=abs(x%-1)
case COUNT%<=0:x%=abs(x%-1)
endwhile
LCD_OFF
LCD_CLS
LCD_LEFT 1,LINKS
LCD_CENTER 2,Zentriert
LCD_RIGHT 1,RECHTS
LCD_ON
DELAY(2000)
LCD_CLS
LCD_NEWCHAR 0,%00110,%01111,%11011,%11111,%11110,%11111,%01111,%00111
LCD_NEWCHAR 1,%00110,%01111,%11011,%11111,%11100,%11110,%01111,%00111
LCD_NEWCHAR 2,%00110,%01111,%11011,%11111,%01111,%11111,%11110,%11100
LCD_NEWCHAR 3,%00110,%01111,%11011,%11111,%00111,%01111,%11110,%11100
LCD_CLS
LCD_CENTER 1,Auf
LCD_CENTER 2,Wiedersehen
Count%=30
while count%
LCD_left 1,chr$(0)
LCD_right 2,chr$(2)
delay(100)
LCD_left 1,chr$(1)
LCD_right 2,chr$(3)
delay(100)
dec count%
endwhile
COUNT%=1
while count%<16
LCD_WRITEWORD 1,Count%,chr$(0)
LCD_WRITEWORD 2,(17-Count%),chr$(2)
delay(100)
LCD_WRITEWORD 1,Count%,chr$(1)
LCD_WRITEWORD 2,(17-Count%),chr$(3)
delay(100)
LCD_WRITEWORD 1,Count%,
LCD_WRITEWORD 2,(17-Count%),
inc count%
endwhile
DELAY(2000)
LCD_OFF
Ich hoffe es hilft mal jemanden Gruß maik Xp Home Profan 7.5 |