![]() ![]() INFO - FAQ - CC2-Forum - CCPro-Forum |
|
' =========================================================================== ' Selbstdefinierte Zeichen auf dem 4*20-I²C-LCD ' In OCBASIC 1.12a_e1 für Open-Maxi von Dietmar Harlos am 27. September 2018 ' =========================================================================== ' Verwendet wird das 4-zeilige "LCD 204B LED" von Reichelt. Dort gibt es auch ' das Datenblatt DS_4X20.pdf zum LCD. Es können maximal 8 Zeichen selbst ' definiert werden. ' In der Bedienungsanleitung zur Open-Macro und Open-Maxi ist beschrieben, ' wie das LCD mittels Portexpander PCF8574 mit dem I²C-Bus der Open-Maxi ' zu verbinden ist: ' http://om.dharlos.de/doku_omax/index.html ' --- Definitionen für das System ------------------------------------------- INCLUDE "omax.def" 'Definitionen für die Open-Maxi ' --- Definitionen des Anwenders -------------------------------------------- DIM a,b,c BYTE 'einige Variablen DIM w WORD 'eine 16-Bit-Wordvariable ' --- Hauptprogramm --------------------------------------------------------- ?"I2CLCD_DEF.BAS" PrintSpc=ON 'SPACE vor einem dezimalen PRINT End2Host=ON 'Nach Programmende in den Host-Modus ' I²C-Adresse vom PCF8574 und I²C-Bustakt setzen: POKE i2clcdadr,&h40 'Das sind die Defaultwerte POKE i2cdelay,20 ' nach Programmstart ' I²C-LCD ansprechen, initialisieren und Demotext ausgeben: PAUSE 2 'Vorgeschriebene Verzögerung für das LCD LcdLight=ON 'Die Hintergrundbeleuchtung könnte invertiert sein LCDINIT 'Setzt LcdErr auf OFF bei ACK vom PCF8574, IF LcdErr THEN ' sonst auf ON PRINT "NoAck vom I2C-LCD" END END IF LCDCLS 'Löscht den Bildschirm LCDCMD &b00001111 '"Display on", "Cursor on" & "Blinking on" LCDLOCATE 0,0 'Position im 4*20-LCD w=-32768 LCDPRINT "Variable:";w LCDPUT ASC("!") ' Alle acht Zeichen definieren: LCDCMD &b01000000 '"Set CG-RAM address" LCDPUT &b00001110 '1. Selbstdefiniertes Zeichen LCDPUT &b00011111 LCDPUT &b00010101 'nur die unteren 5 Bits definieren das Aussehen LCDPUT &b00011111 LCDPUT &b00011111 LCDPUT &b00011111 LCDPUT &b00010101 LCDPUT &b00000000 LCDPUT &b00001110 '2. Selbstdefiniertes Zeichen LCDPUT &b00011111 LCDPUT &b00010101 LCDPUT &b00011111 LCDPUT &b00010001 LCDPUT &b00011111 LCDPUT &b00010101 LCDPUT &b00000000 LCDPUT &b00000001 '3. Selbstdefiniertes Zeichen LCDPUT &b00000010 LCDPUT &b00000100 LCDPUT &b00001111 LCDPUT &b00000010 LCDPUT &b00010100 LCDPUT &b00011000 LCDPUT &b00011100 LCDPUT &b00001110 '4. Selbstdefiniertes Zeichen LCDPUT &b00011111 LCDPUT &b00011111 LCDPUT &b00001110 LCDPUT &b00000000 LCDPUT &b00000100 LCDPUT &b00001110 LCDPUT &b00000100 LCDPUT &b00000100 '5. Selbstdefiniertes Zeichen LCDPUT &b00001110 LCDPUT &b00001110 LCDPUT &b00000100 LCDPUT &b00000000 LCDPUT &b00000100 LCDPUT &b00001110 LCDPUT &b00000100 LCDPUT &b00000100 '6. Selbstdefiniertes Zeichen LCDPUT &b00001110 LCDPUT &b00001110 LCDPUT &b00001110 LCDPUT &b00000100 LCDPUT &b00000000 LCDPUT &b00000100 LCDPUT &b00000000 LCDPUT &b00001110 '7. Selbstdefiniertes Zeichen LCDPUT &b00001110 LCDPUT &b00001110 LCDPUT &b00000100 LCDPUT &b00011111 LCDPUT &b00000100 LCDPUT &b00001010 LCDPUT &b00010001 LCDPUT &b00000100 '8. Selbstdefiniertes Zeichen LCDPUT &b00001110 LCDPUT &b00010100 LCDPUT &b00001110 LCDPUT &b00000101 LCDPUT &b00000100 LCDPUT &b00001010 LCDPUT &b00010001 ' Selbstdefinierte Zeichen ausgeben: LCDLOCATE 1,0 'Position im 4*20-LCD FOR a=0 TO 15 'Zeichen 0 bis 15 ausgeben LCDPUT a NEXT a ?"Ausgaben müßten erscheinen." END ' --- Ende des Programms --------------------------------------------------- Passender Link: Bedienungsanleitung zur Open-Macro und Open-Maxi Meine Homepage: http://ccintern.dharlos.de |
Antwort schreiben |