打印
[国产单片机]

stc EEPROM 数据保存问题

[复制链接]
3718|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dadjun|  楼主 | 2011-5-5 13:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我最近在帮别人弄一个事情,现在郁闷的是,STC12C5A60S2,保存EEPROM 掉电保存由于电容较小,不能保存很多的数据,而我要保存的数据有60多个,只能在人机界面下,用enter键保存,现在的问题是,掉电保存的数据可以,enter键按下保存的老是保存不上。
  我把那个部分代码贴出来,哪位大虾告诉我,问题出在哪里啊。


if(!enter)
   {
    delayms(45);
    if(!enter)
    {  
     if(zf)
    sel_dataz[temp_data]=vol_data; //根据正反转修改相应的数据
     if(!zf)
    sel_dataf[temp_data]=vol_data;

    switch(cir_set)
     {
      case 1:{sel_cir1=cha_data;break;}   
      case 2:{sel_cir2=cha_data;break;}   
      case 3:{sel_cir3=cha_data;break;}
      default:{if(sel_set&&cir_set)sel=cha_data;break;}
     }

     //上面的代码可以不看
      LCD_ShowStr(0,2,"    ");
         
    for(add_1=0;add_1<60;add_1++)  //擦除EEPROM扇区的60个数据
     {
     Sector_Erase(0x0000+add_1);
     
     }
        
    for(add_2=0;add_2<60;add_2++)  //擦除EEPROM第一扇区的60个数据
     {
      if(add_2<30)
     Byte_Program(0x0000+add_2,sel_dataz[add_2]);//写正转数组数据
      else
     Byte_Program(0x0000+add_2, sel_dataf[add_2-30]); //写反转数组数据
     
     }
  

         LCD_ShowStr(0,2,"保存");
       }
    }

相关帖子

沙发
dadjun|  楼主 | 2011-5-5 13:35 | 只看该作者
本来原来按键保存可以的,因为那个时候没做成产品,不能弄掉电保存,现在确掉电保存可以,按键保存不行了,是不是对EEPROM的写操作必须是连续一次性的啊。急!!!

使用特权

评论回复
板凳
autopccopy| | 2011-5-5 13:55 | 只看该作者
奇怪,掉电都可以保存,正常供电时按键却不可以?

贴Byte_Program()上来看看。。。

使用特权

评论回复
地板
dadjun|  楼主 | 2011-5-6 17:39 | 只看该作者
我找到问题了,扇区必须一个个擦除我原来是在一个扇区内操作的,所以……

使用特权

评论回复
5
weixiaoxiaoji| | 2011-11-14 19:09 | 只看该作者
学习,能把整个的程序写上来吗,初学,不会写啊,谢谢了

使用特权

评论回复
6
gpzmvp| | 2011-12-5 14:25 | 只看该作者
stc自带的所谓“eeprom”
貌似超级难用...
真正的eeprom是可以字节操作的...
强烈建议外置eeprom!

使用特权

评论回复
7
autopccopy| | 2011-12-6 00:15 | 只看该作者
stc自带的所谓“eeprom”
貌似超级难用...
真正的eeprom是可以字节操作的...
强烈建议外置eeprom!
gpzmvp 发表于 2011-12-5 14:25


是FLASH,要按扇区擦写,也不算“貌似超级难用”,DS有例程。

外置EEPROM不要钱? :)

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

11

帖子

1

粉丝