我最近在帮别人弄一个事情,现在郁闷的是,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,"保存");
}
} |