最近我在玩stc12c5a60s2单片机,很想尝试用用它的内部EEPROM,于是就像看看Datasheet上的范例,可是有的地方看不明白,恳请大神指点~~~(问题在程序注释里)
void main()
{
uint i;
P1=0xfe;//这个是什么意思?难道P1口可以选择EEPROM的地址??????
Delay10us();
IapEraseSector(IAP_ADDRESS);
for(i=0;i<512;i++)
{
if(IapReadByte(IAP_ADDRESS+i)!=0xff)
goto Error;
}
P1=0xfc;//问题同上
Delay10us();
for(i=0;i<512;i++)
{
IapProgramByte(IAP_ADDRESS+i,(uchar)i);
}
P1=0xf8;//问题同上
Delay10us();
for(i=0;i<512;i++)
{
if(IapReadByte(IAP_ADDRESS+i)!=(uchar)i)
{
goto Error;
}
}
P1=0xf0;//问题同上
while(1);
Error:
P1=P1&0x7f;
while(1);
}
//===============ISP/IAP进入待机模式===============
void IapIdle()
{
IAP_CONTR=0;
IAP_CMD=0;
IAP_TRIG=0;
IAP_ADDRH=0x80;//这是什么意思?????????
IAP_ADDRL=0x00;
}
------解决思路----------------------
P1=0xfe;//这个是什么意思?难道P1口可以选择EEPROM的地址??????
这个只是端口操作,跟eeprom没有关系.
IAP_CONTR=0;
IAP_CMD=0;
IAP_TRIG=0;
IAP_ADDRH=0x80;//这是什么意思?????????
IAP_ADDRL=0x00;
这些都是寄存器操作,可以看头文件和说明书.