Ecco un semplice programma per gestire un PCF8574 (Datasheet) connesso al bus di estensione cosi come si può vedere dalla foto. Gli 8 segnali di I/O dell’I/O expander, 4 (Da P0 a P3) sono stati utilizzati come uscite logiche per gestire 4 LED e 4 (Da P4 a P7) sono stati utilizzati come ingressi logici per acquisire dei tasti.
Il programma è un semplice FBD (Vedi screeenshot), la funzione SysI2CWrRd gestisce la scrittura e lettura di un byte di dati dall’/IO expander. Per poter utilizzare i pins come inputs occorre settarli a TRUE, ecco quindi che nella creazione del byte WData oltre al comando dei 4 LEDs sono stati settati a TRUE i bit da 4 a 7. In questo modo il byte letto RData contiene nei bits da 4 a 7 lo stato dei 4 tasti. Allego il programma sorgente.