本帖最后由 wulin 于 2019-12-25 15:33 编辑
16位数据可以按字节存EEPROM同一扇区不同地址,读取后再合并还原为16位数据。
if(STARflag)//如果按下了启动按钮,置位
{
luf[0]=Morebyte_Readluf(0x2200);//读EEPROM保存的低八位放在在luf[0]缓存数组中
luf[1]=Morebyte_Readluf(0x2200+1);//读EEPROM保存的高八位放在在luf[1]缓存数组中
numc=luf[1]<<8|luf[0];//合并为16位数据
numc+=BL;//每按一次按钮numc就增加BL值
if(numc>9998)
{
numc=0;
}
dct[0]=numc; //缓存低八位,高位溢出
dct[1]=numc>>8; //缓存高八位
Sector_Erase(0x2200);//擦除扇区
Morebyte_Program(0x2200,dct[0]);//将numc低八位写入EEPROM中
Morebyte_Program(0x2200+1,dct[1]);//将numc高八位写入EEPROM中
SMGBUFFER[4][0]=DuanMa[numc%10]; //四位数码管待显示数据
SMGBUFFER[4][1]=DuanMa[numc/10%10];
SMGBUFFER[4][2]=DuanMa[numc/100%10];
SMGBUFFER[4][3]=DuanMa[numc/1000%10];
DISPLAY(4);//显示函数
STARflag=0;//按键复位
}
|