ok eu vou olhar seu codigo com calma para entender
eu usar assim no Bascom-AVR usando BASIC
**Variavel
Dim Bytearray(1) As Byte
** Saidas
S1 Alias Bytearray(1).0
S2 Alias Bytearray(1).1
S3 Alias Bytearray(1).2
S4 Alias Bytearray(1).3
S5 Alias Bytearray(1).4
S6 Alias Bytearray(1).5
S7 Alias Bytearray(1).6
S1 = 0
S2 = 1
S4 = 1
*** depois mandava assim
' Envias dados PC8574
I2cstart
I2cwbyte Pcf8574
I2cwbyte Bytearray(1)
I2cstop
S8 Alias Bytearray(1).7