Hola gracias por responder , aqui les pego el codigo que encontre y estube probando para grabar y leer la memoria es para un pic16f628a
AllDigital
Dim addr As Word
Dim data As Byte
Symbol sda = PORTA.2
Symbol scl = PORTA.3
TRISA = %00001100
TRISB = 00000000
PORTB = 00000000
'aqui se escribe en la memoria externa
For addr = 0 To 1023
data = addr + 1
I2CWrite sda, scl, 0xa0, addr, data
WaitMs 50
PORTB = data
Next addr
WaitMs 50
For addr = 0 To 1023
I2CRead sda, scl, 0xa0, addr, data
WaitMs 50
PORTB = data
Next addr
End
este el codigo con el que he estado probando grabar la memoria, probe con una 24c04, 24c08 y luego una 24c256 con el mismo resultado, se graba numeros consecutivos en la memoria mientras estos se muestran en el portb del 16f628 y luego se lee el contenido dela memoria y tambien se muestra por el portb, pero funciona bien mientras que el bucle es de 0 a 255, en cuanto empieze a probar con valores altos el resultado fue que la salida permanecia todos en nivel alto en el portb, asi que no entiendo cual es el problema con esas instrucciones de I2CRead sda, scl, 0xa0, addr, data o es que solo sirven para direcciones de 1 byte?
aunque a pesar de este percance podria seguir continuando con los demas modulos del teclado y el lcd quizas , pero quiero seguir haciendolo en el codigo basic del pic simulator ide