請教,關(guān)于STC89C52的EEPROM扇區(qū)問題,根據(jù)數(shù)據(jù)手冊,該型有10個 扇區(qū),每扇區(qū)512字節(jié),第一扇區(qū)起始地址0X2000,結(jié)束地址0X21FF。程序
將1扇區(qū)的512個字節(jié)分別寫入0~511,然后驗證其中一個字節(jié),或前幾個字節(jié)都正確,驗證0X20FF處為255正確,問題是驗證0X2100處不是256,驗證該扇區(qū)最后一個字節(jié)0X21FF處也不是511。請問為何?
下面是部分內(nèi)容
void main()//
{
WORD i;//
P1=0xfe;//
Delay(10);
IapEraseSector(0x2000);//清除扇區(qū)
for(i=0;i<512;i++)
{
if(IapReadByte(0x2000+i)==0xff//清除完畢后,每個字節(jié)都應是0XFF
P1=0xfc;
}
Delay(10);
for(i=0;i<512;i++)
{
IapProgramByte((0x2000+i),i);//該扇區(qū)512字節(jié)地址,分別寫入0~511
}
for(i=0;i<512;i++)
{
if(IapReadByte(0x21ff)==511)//第0x21ff處應為511,為真則P1前三個燈亮
P1=0xf8;//
}
while(1)
;
}
|