|
各位師傅您們好,我用STC15W404AS和TM1650編程兩路延時(shí)程序,不能存儲(chǔ)兩個(gè)時(shí)間,哪位師傅幫我看看,怎樣修改,非常感謝。
if(key_timeto)//如果按鍵掃描時(shí)間到,此變量在定時(shí)器中會(huì)被每隔60ms置1一次
{
key_L = key;
key_timeto = 0; //清0
key = Scan_Key();//讀按鍵
//第一個(gè)按鍵按下
if(key == 0x44) //此鍵值和數(shù)據(jù)手冊(cè)上對(duì)應(yīng)
{
if(key_ok==0) //按鍵按下
{
key_ok = 1;
mode = (mode+1)%2;//切換模式
}
}
//第二個(gè)按鍵按下
else if(key == 0x4c)
{ if(mode == 0)//模式0為設(shè)置模式
{
if(time2<999)
time2 = (time2+1);//按此鍵加時(shí)間
}
if(mode == 1)//模式1為設(shè)置模式
{
if(time1<999)
time1 = (time1+1);//按此鍵加時(shí)間
}
timea=time1;
IapEraseSector(0);//保持改變后的時(shí)間值
IapProgramByte(0,(timea>>8));
IapProgramByte(1,(uchar)timea);
timeb=time2;
IapEraseSector(1);//保持改變后的時(shí)間值
IapProgramByte(1,(timea>>8));
IapProgramByte(2,(uchar)timea);
}
//第三個(gè)按鍵按下
else if(key == 0x54)
{ if(mode == 0)//模式0
{
if(time2>0)
{
time2--;//減時(shí)間
}
}
if(mode == 1)//模式1
{
if(time1>0)
{
time1--;//減時(shí)間
}
}
timea=time1;
IapEraseSector(0); //保存時(shí)間
IapProgramByte(0,(timea>>8));
IapProgramByte(1,(uchar)timea);
timeb=time2;
IapEraseSector(1); //保存時(shí)間
IapProgramByte(1,(timeb>>8));
IapProgramByte(2,(uchar)timeb);
}
else
{
key_ok = 0;
}
}
if(update_dis) //30ms到,更新顯示
{
update_dis = 0;
TM1650_Set(0x48,0x11);
if(stat ==0)
{
if(mode == 1)//如果是模式1
{
TM1650_Set(0x68,CODE[timea/100]); //顯示
TM1650_Set(0x6A,CODE[timea/10%10]);
TM1650_Set(0x6C,CODE[timea%10]);
}
else if(mode == 0)
{
TM1650_Set(0x68,CODE[timeb/100]);
TM1650_Set(0x6A,CODE[timeb/10%10]);
TM1650_Set(0x6C,CODE[timeb%10]);
}
}
else if(stat == 1)//最后倒計(jì)時(shí)完后顯示的內(nèi)容
{
timea=time1;
TM1650_Set(0x68,CODE[timea/100]);
TM1650_Set(0x6A,CODE[timea/10%10]);
TM1650_Set(0x6C,CODE[timea%10]);
stat=0;
}
}
}
|
|