Цитата(Via4eslav @ Apr 2 2007, 06:23)

в А1 содержится номер блока, а адрес блока передается раньше. почему не обновляется регистр данных??? А1 предыдущее содержимое регистра..
Дайте весь минимально необходимый код. В ваших строчках не видно ожидания окончаний обмена. и еще:
I2CONCLR=(1<<I2C_SI); // сброс бита прерывания
I2CONCLR=(1<<I2C_STA); // чистим бит старта
лучше объединить в одну команду I2CONCLR=(1<<I2C_SI)|(1<<I2C_STA);