本人正在用W78E516做一个小项目,通过操作菜单需要做一些系统设置和 一些数据设置,这些数据大约44个字节,我需要能够在下次系统开电时候 能保留上次的设置。我看了W78E516的SPEC和上网查了一些资料,应该可以利用W78E516的在线编程技术(ISP)实现的,但是具体怎么实现我还有很多疑惑: 1 我看了一些参考程序如下,好象是用4KB的LDROM来保存数据。 但对这段代码有很多疑惑:
1 在真正开始保存数据前,他先调用EraseLDROM() 去擦除4KLDROM。 2 在通过设置SFRAH,SFRAL,SFRCN 进行写/擦除操作时,为啥要用到TIMER1?定时时间怎么定? 为啥要设置PCON = 0x01?? 3 在保存数据时,他好象是去重新写整个60K(APROM)+44Byte(LDROM),岂不是把原代码覆盖掉了吗?为啥不只是简单的写44个BYTE 到LDROM? 请各位大虾指点。万分感谢!!
void WriteData(WORD address,BYTE bData) { SFRAH = HiWord(address); SFRAL = LoWord(address); SFRFD = bData; TH1 = 0xFE; TL1 = 0x59; SFRCN = 0x61; TR1 = 1; PCON = 0x01; }
void EraseLDROM() { TH1 = 0x5A; TL1 = 0xA0; SFRCN = 0x62; TR1 = 1; PCON = 0x01; } |