//考虑易读,使用3个标志
char flag=0; //修改状态=1
char f_change=0; //日期修改标志=1,时间修改标志=2,var修改标志=3
char num_on=0; //数字键盘
//按键:
//11=修改, 10=退出修改
//1=date,2=time,3=var为多功能键,必须使用num_on来切换
//按键还需有个keydown()判断键是否按下
/*****************************************************/
//判断键是否按下
/*****************************************************/
int keydown(void)
{
}
void proc_key(void)
{
switch(f_change)
{
case 1:funDate(K);break;
case 2:funTime(K);break;
case 3:funVar(K);break;
default:break;
}
}
main()
{
.....
while(1)
{
if(keydown())
{
K=keyscan();
switch(K)
{
case 4:
case 5:
case 6:
case 7:
case 8:
case 9:
if(num_on)
{
proc_key();
}
break;
case 1:
case 2:
case 3:
if(num_on)
{
proc_key();break;
}
if(!f_change && flag)
{
f_change=K;
num_on = 1;
}
break;
case 10:f_change=0;flag=0;break; //结束修改
case 11:f_change=0;flag=1;break;
default:break;
}
}
}
}
可以用键盘来实现中断,达到改变程序里面的数据,具体的我也不知道,这只是我的一个想法而已,可以参考。