Archiv verlassen und diese Seite im Standarddesign anzeigen : ein PC8574 für LCD und Taster?
highbeta
27.07.2005, 15:17
kann man eigentlich jeden Pin eines I2C-I/O- Expander unabhängig als Input und Output benutzen?
Wenn ich zum Beispiel ein LCD im 4-bit-Modus mit einem PCF8574 betreibe, habe ich folgende Belegung.
P0 - D4
P1 - D5
P2 - D6
P3 - D7
P4 - RS
P5 - RW (not used, set to 0 to ground for write)
P6 - E2 (on 1 or 2 line display nc)
P7 - E1
das heisst bei einem 2 zeiligen LCD sind Pin 5 und 6 frei. Können dort z.B.2 Taster angeschlossen werden, um Eingaben zu machen? Wenn ja, hat jemand vielleicht einen Codeschnippsel an dem man erkennt, wie es in Bascom aussehen könnte?
Danke
kann man eigentlich jeden Pin eines I2C-I/O- Expander unabhängig als Input und Output benutzen?
Ja, kann man.
Wenn ich zum Beispiel ein LCD im 4-bit-Modus mit einem PCF8574 betreibe
Wenn ja, hat jemand vielleicht einen Codeschnippsel an dem man erkennt, wie es in Bascom aussehen könnte?
Mit einem Schnipsel ist es nicht getan, du musst dir dann eine eigene Routine zum Ansteuern des LCD schreiben.
Nimm für das LCD besser Portpins des Controller.
highbeta
27.07.2005, 20:17
Das LCD läuft schon über den PCF8574. Ich verwende dafür die Lcd_i2c.lib.
Die Ansteuerung funktioniert einfach über den Befehl "LCD "text"".
Es gibt auch eine Lib für die Eingabe über ein Keypanel aber das eben nur mit einem zweiten PCF8574.
Wie der direkte Lesezugriff auf den Chip mit Bascom funktioniert, weiss ich leider nicht.
Grund für die Verwendung des I2C ist, dass Anzeige und Bedieneinheit von der Steuerungseinheit (mit AVR) getrennt werden und über ein möglichst einfaches Kabel verbunden werden sollen.
Mein Plan B sieht die Verwendung von 2 Tastern mit Widerständen vor. Die Auswertzung geht über einen ADC (wie auf dem RN-Board). Das ist eine Ader mehr und sollte bis zu einer gewissen Kabellänge gut funktionieren. Die zwei ungenutzten Pins am PCF8574 erscheinen mir aber als eine elegantere Lösung.
i2creceive $H40 , X '1 Byte vom PCF in X einlesen
X=X And &B01100000 'Zustand von Pin5 und 6 rausfiltern
Angenommen deine Taster mit Pullup schalten gegen GND:
X=96 - beide Taster offen
X=64 - Taster Pin5 geschlossen
X=32 - Taster Pin6 geschlossen
highbeta
28.07.2005, 10:53
genau das habe ich gesucht.
vielen Dank
Hallo,
meine Schaltung I2C--> LCD läuft nicht, ich frage mich nur, warum im Anschlussplan der Pin INT nicht belegt ist und das Beispielprogramm darauf zugreift, kann mir mal jemand sein funktionierendes Prog mailen ?
Gruss
A. Arndt
Das Beispielprogramm läuft schon. Habe meinen Code daraus destilliert. Überprüfe nochmal alle Deine PINs am PCF 8574, LCD und auch SDA und SCL am Controller.
Am Interrupt arbeite ich gerade, natürlich muss er dazu angeschlossen sein. Für das Testprogramm am LCD hat er aber keine Bedeutung.
Gruß und viel Glück
Higbeta
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.