INFO - FAQ - CC2-Forum - CCPro-Forum |
> > > > > > > Hallo, > > > > habe eine M-Unit2.0 und habe ein LCD-Display über einen PCF8574 angeschlossen. > > Funktioniert soweit alles, blos die Ansteuerung ist etwas sehr umständlich. > > Gibt es eine Möglichkeit, die Munit2.0 internen LCD-Befehle auf den PCF8574 umzuleiten? > > > > Mfg > > > > Falk > > Hallo.... > Ja, ich weiss, das ist recht umständlich. > Es geht aber leider nicht anders weil PRINT"xyz" > schon auf dem IIC-Bus geschickt wird, aber als Byte. > Und das LCD läuft ja im NIBBLE-Mode, d.h dass die Hälfte > der 8 Bit Steuersignale sind und die andere Hälfte ist das halbe > Datenbyte. > Es würde mit 2x PCF8574, gehen da das LCD normal einen 8Bit > Datenbus hat. Der 2. PCF erzeugt die Steursignale. > ciao...... > > Hallo, erst mal vielen Dank für die schnelle Antwort, hab aber noch ein Problem, und zwar hab ich ein 4Zeilen Display mit 2 getrennten Controllern wie kann ich in dem unten stehenden Programm eine Umschaltung realisieren wenn Enable 1 auf Port6 und Enable2 auf Port 7 liegt? (dieses Programm ist nicht von mir, hab ich auf der Conrad-Seite gefunden) 'Hier sehen Sie, welche PCF 8574 Ports dem LCD zugeordnet sind: 'Port 0 LCD DB4 'Port 1 LCD DB5 'Port 2 LCD DB6 'Port 3 LCD DB7 'Port 4 LCD R/W 'Port 5 LCD RS 'Port 6 LCD EN '------------------------------------------------------------------- '-------------------------- '------ I/O PORTS --------- '-------------------------- '--- IIC INTERFACE ------- define SDA port[9] define SCL port[10] define EXTPORT byteport[10] '-------------------------- '------ SYSTEM MEMORY ----- '-------------------------- '--- IIC INTERFACE ------- define OUTBYTE byte[2] define LCDDATA byte[3] define BUF byte[4] '---- ZEICHENSATZ DEFINITION ------------- define Z0&H30:define Z1&H31:define Z2&H32:define Z3&H33 define Z4&H34:define Z5&H35:define Z6&H36:define Z7&H37 define Z8&H38:define Z9&H39 define A&H41:define B&H42:define C&H43:define D&H44 define E&H45:define F&H46:define G&H47:define H&H48 define I&H49:define J&H4A:define K&H4B:define L&H4C define M&H4D:define N&H4E:define O&H4F:define P&H50 define Q&H51:define R&H52:define S&H53:define T&H54 define U&H55:define V&H56:define W&H57:define X&H58 define Y&H59:define Z&H5A:define BLK&H20 print"#ON_LCD#"; print"#INIT#"; print"#OFF#"; '---------- IICBUS INIT ------------------ SDA=on:SCL=on 'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII 'II PCF 8574 PORTERWEITERUNG FÜR LCD II 'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII pause 20 gosub lcd_init '----- WRITE CHARACTERS LINE 1 --------------- LCDDATA=4:gosub L1_GOTOPOS 'LINE 1 POS 4 LCDDATA=D:gosub lcd_writechar LCDDATA=E:gosub lcd_writechar LCDDATA=M:gosub lcd_writechar LCDDATA=O:gosub lcd_writechar LCDDATA=BLK:gosub lcd_writechar LCDDATA=M:gosub lcd_writechar LCDDATA=BLK:gosub lcd_writechar LCDDATA=Z2:gosub lcd_writechar LCDDATA=&H2E:gosub lcd_writechar LCDDATA=Z0:gosub lcd_writechar '----- WRITE CHARACTERS LINE 2 --------------- LCDDATA=3:gosub L2_GOTOPOS 'LINE 2 POS 3 LCDDATA=P:gosub lcd_writechar LCDDATA=C:gosub lcd_writechar LCDDATA=F:gosub lcd_writechar LCDDATA=BLK:gosub lcd_writechar LCDDATA=Z8:gosub lcd_writechar LCDDATA=Z5:gosub lcd_writechar LCDDATA=Z7:gosub lcd_writechar LCDDATA=Z4:gosub lcd_writechar LCDDATA=BLK:gosub lcd_writechar LCDDATA=L:gosub lcd_writechar LCDDATA=C:gosub lcd_writechar LCDDATA=D:gosub lcd_writechar #LOOP goto LOOP 'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII '------------------------------------------------------- '--- PCF 8574 LCD DRIVER AT ADDR 7 / EXT BYTEPORT 10 --- '------------------------------------------------------- #LCD_INIT EXTPORT=0 LCDDATA=&H38:gosub LCD_WRITECMD EXTPORT= &B00000010:EXTPORT= &B01000010:EXTPORT= &B00000010: LCDDATA=&H28:gosub LCD_WRITECMD:LCDDATA=&H0C:gosub LCD_WRITECMD #LCD_CLR LCDDATA=&H02:gosub LCD_WRITECMD:LCDDATA=&H01:gosub LCD_WRITECMD:pause 20:return #L1_GOTOPOS LCDDATA=LCDDATA +&H7F:goto LCD_WRITECMD #L2_GOTOPOS LCDDATA=LCDDATA +&HBF:goto LCD_WRITECMD #LCD_WRITECMD BUF = off:goto LCD_WRITE #LCD_WRITECHAR BUF = &B00100000 #LCD_WRITE '--------- ------WRITE HI NIBBLE ------------------------ OUTBYTE=BUF or (LCDDATA shr 4) EXTPORT=OUTBYTE or &B01000000:EXTPORT=OUTBYTE and &B10111111 '--------------- WRITE LO NIBBLE ------------------------ OUTBYTE=BUF or (LCDDATA and &H0F) EXTPORT=OUTBYTE or &B01000000:EXTPORT=OUTBYTE and &B10111111 return '------------------------------------------------------- > |
Antwort schreiben |