Man kann I und O schon mischen. Quasi heißt in dem Fall, das es kein
explizites Datenrichtungsregister gibt. Möchte man Ausgänge schalten
schickt man ein komplettes Byte an den Chip, möchte man Eingänge haben
ließt man einfach. Dabei ist nur zu beachten, das die Pins, die als
Eingänge verwendet werden sollen vorher auf 1 gesetzt werden.
Ich hab z.B. mal eine Schaltung mit einem PCF8574 aufgebaut, bei der ich
4 Taster und 4 LED's angeschlossen hab. Wenn ich die LED's ausgebe
schiebe ich für die Pins, an denen die Taster sind, einfach jeweils eine
1 ins Register, wenn ich lese ignoriere ich die LED Pins
Es gibt aber noch einen besseren IO-Expander, den PCA9555. Den gibts
leider nur in SMD, der hat aber 16 IO und ein paar Register. Bei dem
kann man glaub ich richtig selektiv Programmieren, welche Bits Ein- und
welche Ausgänge sein sollen. Ich verwende 2 davon auf dem AppBoard für
das Mega8 Mini Modul. Einen für die Taster und LED's, und einen für
einen Displayport im 8 Bit Modus. Dann hab ich noch 12 IO frei, die auf
einem Sockel verfügbar sind.
Gruß
Markus