'************************************** ' ' C-Control/BASIC 8574EA.BAS ' ' Aufgabe: ' ' - Ansteuerung eines PCF8574 ' ' Das Programm liest die Eingänge eines ICs und gibt gibt sie dann auf einem ' zeiten wieder aus ' '************************************** ' --- Definitionen -------------------- define SDA port[7] define SCL port[8] define Daten byte define Daten1 byte define Komma byte define Zaehler byte define N byte ' --- Programmoperationen ------------- SDA = ON SCL = ON #Loop gosub Start Daten = 65 '1. Adresse PFC 8574 beim lesen gosub I2C_Write gosub I2C_Read daten1 = daten ' ausgelesenen Wert zwischenspeichern gosub NoAck gosub Stop gosub Start Daten = 66 '1. Adresse PFC 8574 beim schreiben gosub I2C_Write daten = daten1 'zwischengespeicherten Wert übertragen zum schreiben gosub I2C_Write gosub stop ' pause 50 goto loop #Start SDA = OFF SCL = OFF return #Stop SDA = OFF SCL = ON SDA = ON return #I2C_WRITE for N = 1 to 8 sda = off if (Daten AND 128) = 128 then SDA = ON pulse SCL Daten = Daten shl 1 '1 Bit nach links next pulse SCL ' 9. Impuls Ack vom IC return #I2C_READ Daten = 0 deact SDA for N = 1 to 8 Daten = Daten shl 1 SCL = on if SDA then Daten = Daten + 1 SCL = off next return #Ack SDA = 0 pulse SCL return #NoAck SDA = 1 pulse SCL return end