![]() ![]() INFO - FAQ - CC2-Forum - CCPro-Forum |
|
' =========================================================================== ' Demoprogramm: I2C-LCD mittels I2C-Portexpander PCF8574A ansprechen ' In OCBASIC 1.12a_e1 für Open-Maxi von Dietmar Harlos am 14. Januar 2021 ' =========================================================================== ' Die Open-Maxi unterstützt das komfortable Ansprechen von I²C-LCDs. Dazu muß ' ein normales Text-LCD (HD44780-kompatibel, Industriestandard) an einen I²C- ' Portexpander PCF8574 angeschlossen und der Portexpander mit dem I²C-Bus der ' Open-Maxi verbunden werden. Die I²C-Adresse des Portexpanders PCF8574 ist ' änderbar. Dadurch wird das Ansprechen mehrerer LCDs ermöglicht. Außerdem ' kann so auch ein PCF8574A verwendet werden. Die Hintergrundbeleuchtung oder ' die von einigen LCDs verwendete 2. Enable-Leitung lassen sich vom Anwender ' setzen. Dieses Beispielprogramm demonstriert, wie ein PCF8574A anstatt ' eines PCF8574 eingesetzt werden kann, um das LCD anzusprechen. Der Vorteil ' ist, daß dadurch alle 8 Portexpander PCF8574 für die 64 Extended Ports ' der Open-Maxi übrig bleiben. ' --- Definitionen ---------------------------------------------------------- INCLUDE "omax.def" 'Definitionen für die Open-Maxi DIM w WORD 'Eine 16-Bit-Wordvariable ' --- Hauptprogramm --------------------------------------------------------- PrintSpc=ON 'SPACE vor einem dezimalen PRINT End2Host=ON 'Bei Programmende gleich in den Host-Modus wechseln ' I²C-Adresse vom PCF8574A für das I²C-LCD und I²C-Bustakt setzen: POKE i2clcdadr,&h70 'Für PCF8574A mit Adreßpins A2:A1:A0 gleich 0:0:0 POKE i2cdelay,20 'Defaultwert 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 PCF8574A, 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 LCDPRINT "Zahl:";-12345 LCDLOCATE 1,0 w=-32768 LCDPRINT "Variable:";w LCDPUT ASC("!") END 'Zurück in den Hostmodus. Neustart mit RETURN-Taste. ' --- Programmende --------------------------------------------------------- Passender Link: Offizielle Infosite zu den OM-Mikrocontrollern Meine Homepage: http://ccintern.dharlos.de |
Antwort schreiben |