用W78E516如何实现掉电保持菜单数据

[复制链接]
3589|10
 楼主| sz_kk 发表于 2008-8-22 00:13 | 显示全部楼层 |阅读模式
本人正在用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;
}
跬步 发表于 2008-8-22 08:35 | 显示全部楼层

它里面好像有类似于EEPROM的存储区域

可以将设置参数写到里面
zuoyou 发表于 2008-8-22 09:30 | 显示全部楼层

re

我还以为是菜单的数据呢,原来是配置数据

 
rm125khz 发表于 2008-8-22 09:46 | 显示全部楼层

我可以帮你搞定,但要收工钱

 楼主| sz_kk 发表于 2008-8-22 11:56 | 显示全部楼层

ff

2楼: 它里面好像有类似于EEPROM的存储区域 

可以将设置参数写到里面
 ====================================
这位老兄能不能讲详细一点啊?具体怎么操作啊?谢谢.
 楼主| sz_kk 发表于 2008-8-24 00:52 | 显示全部楼层

up

晕,没有大虾做过吗?
koolean 发表于 2008-8-24 23:33 | 显示全部楼层

应该是这样

首先得保证你的电能足够让516写完数据。协同在初始地址写好ISP程序,在IC最后空间留出保存菜单可能的最大存放空间,然后再检测到掉电以后,立刻调用ISP程序将ram里面的数据写入保存菜单暂存空间,然后睡眠,下次上电再读出来;
 楼主| sz_kk 发表于 2008-8-25 00:22 | 显示全部楼层

7楼

To koolean :
首先谢谢你的回复.仍然有疑惑如下:
1 难道一定要等到掉电才能去保存数据到LDROM区吗?能不能在我设置菜单后,我就可以保存设置数据到LDROM??
2 对于具体的实现如我原贴所写,还是不太清楚具体的做法.因为以前没做过,查了一些资料也不全.
还是希望哪位大虾有做过的经验,请指导.万分感谢!!
 楼主| sz_kk 发表于 2008-8-25 18:15 | 显示全部楼层

up

没哪位大虾做过?
koolean 发表于 2008-8-31 00:32 | 显示全部楼层

楼主,在调用ISP的时候,系统是不能进行任何其他反应的。

所以如果你的菜单空间不大,在其他事件响应时间内完成是可以这样处理,但是如果菜单的需求容量偏大。则容易导致该段时间不相应;而且重复刷写FLASH可不是什么好事,很容易导致516损坏;楼主想清楚;
至于如何实现ISP,你可以参考其datasheet,ISP响应一定要是最高级别中断;
王紫豪 发表于 2008-8-31 02:26 | 显示全部楼层

用铁电 eeprom,实时存储状态。楼主赶紧谢我

您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

6

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部