打印

请教单片机变量参数修改后存储问题

[复制链接]
1761|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
陈小二|  楼主 | 2009-10-31 13:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位大哥,小弟自学51单片机不久,碰到个问题,请大家帮忙解惑,小弟先行谢过。问题是这样的:
单片机为AT89C52,有段程序为:
void savepar()
{
        uchar idata *dis;
        uchar idata i,d;
        if(setv[0]>99999.0)   setv[0] =99999.0;
        if(setv[1]>99999.0)   setv[1] =99999.0;
        if(setv[2]>99999.0)   setv[2] =99999.0;
        if(setv[7]>99999.0)   setv[7] =99999.0;
        if((setv[3]>11.00)||(setv[3]<9.00))    setv[3] =10.00;
        if((setv[4]>16.00)||(setv[4]<14.00))   setv[4] =15.00;
        if((setv[5]>6.00)||(setv[5]<4.00))     setv[5]=5.0;
        if((setv[6]>2000.0)||(setv[6]<200.0))   setv[6] =1000.0;
        for(i=0;i<8;i++)
        {
                 dis=ftostr(setv[i]);  //将浮点数存入到一个dis数组中,返回数组的首地址
                 XBYTE[0xf000+i*6]=dis[0];
                 for(d=0;d<200;d++) d=d;
                 XBYTE[0xf000+i*6+1]=dis[1];
                 for(d=0;d<200;d++) d=d;
                 XBYTE[0xf000+i*6+2]=dis[2];
                 for(d=0;d<200;d++) d=d;
                 XBYTE[0xf000+i*6+3]=dis[3];
                 for(d=0;d<200;d++) d=d;
                 XBYTE[0xf000+i*6+4]=dis[4];
                 for(d=0;d<200;d++) d=d;
                 XBYTE[0xf000+i*6+5]=dis[8];
                 for(d=0;d<200;d++) d=d;
        }
}

这段程序的意思应该是将修改后的setv[8]数组的8个元素保存到外部数据储存器中,以便使仪表重新加电时载入修改后的参数。但是小弟不解的是在仪表中没有类似于eeprom的器件,而且AT89C52本身也没有eeprom,仪表板子上的外围器件只有8279,x25045等器件。那如何能保证参数修改后掉电能保存呢?

相关帖子

沙发
5880527| | 2009-10-31 15:47 | 只看该作者
x25045,去一个个查也能查出来呀

使用特权

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

本版积分规则

1

主题

19

帖子

0

粉丝