//--------------------write-------------------
AT24C256_SCL=0;
AT24C256_SDA=1;
AT24C256_SCL=1;
AT24C256_SDA=0;
Write8Bit(0xa0);
Write8Bit(0x00);
Write8Bit(0x10);
Write8Bit(0xaa);
AT24C256_SCL=0;
AT24C256_SDA=0;
AT24C256_SCL=1;
AT24C256_SDA=1;
Delay_xMs(100);
//-------------------read---------------------
AT24C256_SCL=0;
AT24C256_SDA=1;
AT24C256_SCL=1;
AT24C256_SDA=0;
Write8Bit(0xa0);
Write8Bit(0x00);
Write8Bit(0x10);
AT24C256_SCL=0;
AT24C256_SDA=1;
AT24C256_SCL=1;
AT24C256_SDA=0;
Write8Bit(0xa1);
temp=Read8Bit();
AT24C256_SCL=0;
AT24C256_SDA=0;
AT24C256_SCL=1;
AT24C256_SDA=1;
;---------------------------------------------
/***************************************************************************/
bit Write8Bit(unsigned char input) {
unsigned char i;
for(i=0;i <8;i++) {
input < <=1;
AT24C256_SCL=0;
AT24C256_SDA=CY;
AT24C256_SCL=1;
}
AT24C256_SCL=0;_nop_();
AT24C256_SDA=1;_nop_();
AT24C256_SCL=1;_nop_();
CY=AT24C256_SDA;
return(1);
}
/***************************************************************************/
unsigned char Read8Bit() {
unsigned char temp,rbyte=0;
for(temp=8;temp!=0;temp--) {
rbyte=rbyte < <1;
AT24C256_SCL=0;
AT24C256_SCL=1;
rbyte=rbyte|((unsigned char)(AT24C256_SDA));
}
AT24C256_SCL=0;
AT24C256_SDA=0;
AT24C256_SCL=1;
AT24C256_SCL=0;
AT24C256_SDA=0;
return(rbyte);
}
上面的程序我用仿真器仿可以将24C256的地址0010处写入aa正常而用下面的读程序读出0010的内容为FF不正确.
因为我用上面的程序写后再用汇编编的程序读出来的数值是对的aa
我不知上面的C51程序读程序错在哪里?求教!