Nimm doch die Lib von Peter Fleury, binde sie in Deinen Code ein und benutze die Schreib- und Lesefunktionen, die dort implementiert sind.

i2c_init();

while(1)
{
busy = i2c_start(PCF8574-Addresse + I2C_READ);

// address I2C device with read access
if (busy == 0)
{
input = i2c_readNak(); // read one byte
i2c_stop(); // release I2C bus
}

if (input & 0b00000100)
{
PORTB = 0x01;
}
else
{
PORTB = 0x00;
}
}
}