从单片机基础到程序框架(全集 2019pdf版) - 第710页
Gu8PartU pdate_1=1; //局部 1 更新显示 break; case 4 : //窗口 4。修改“秒” 的“3-SS”窗口 。 if(Gu8Ed itData_3<59 ) //“秒” 的范围是 0 到 59 { Gu8EditD ata_3++; } Gu8PartU pdate_1=1; //局部 1 更新显示 break; } vGu8BeepTi merFlag=0 ; vGu16BeepT imerCn…

{
case 1: //按键 K1 的“短按”。在“闪烁模式”下切换数码管的窗口。
switch(Gu8Wd) //在某个窗口下
{
case 2: //窗口 2。修改“时”的“1-HH”窗口。
Gu8Wd=3; //切换到窗口 3 的“2-MM”窗口
Gu8WdUpdate=1; //整屏更新
break;
case 3: //窗口 3。修改“分”的“2-MM”窗口。
Gu8Wd=4; //切换到窗口 4 的“3-SS”窗口
Gu8WdUpdate=1; //整屏更新
break;
case 4: //窗口 4。修改“秒”的“3-SS”窗口。
Gu8Wd=2; //切换到窗口 2 的“1-HH”窗口
Gu8WdUpdate=1; //整屏更新
break;
}
vGu8BeepTimerFlag=0;
vGu16BeepTimerCnt=VOICE_TIME; //蜂鸣器发出“滴”一声
vGu8BeepTimerFlag=1;
vGu8KeySec=0;
break;
case 2: //按键 K2[加键]
switch(Gu8Wd) //在某个窗口下
{
case 2: //窗口 2。修改“时”的“1-HH”窗口。
if(Gu8EditData_1<23) //“时”的范围是 0 到 23
{
Gu8EditData_1++;
}
Gu8PartUpdate_1=1; //局部 1 更新显示
break;
case 3: //窗口 3。修改“分”的“2-MM”窗口。
if(Gu8EditData_2<59) //“分”的范围是 0 到 59
{
Gu8EditData_2++;
}

Gu8PartUpdate_1=1; //局部 1 更新显示
break;
case 4: //窗口 4。修改“秒”的“3-SS”窗口。
if(Gu8EditData_3<59) //“秒”的范围是 0 到 59
{
Gu8EditData_3++;
}
Gu8PartUpdate_1=1; //局部 1 更新显示
break;
}
vGu8BeepTimerFlag=0;
vGu16BeepTimerCnt=VOICE_TIME; //蜂鸣器发出“滴”一声
vGu8BeepTimerFlag=1;
vGu8KeySec=0;
break;
case 3: //按键 K3[减键]与[开始健]
switch(Gu8Wd) //在某个窗口下
{
case 2: //窗口 2。修改“时”的“1-HH”窗口。
if(Gu8EditData_1>0)
{
Gu8EditData_1--;
}
Gu8PartUpdate_1=1; //局部 1 更新显示
break;
case 3: //窗口 3。修改“分”的“2-MM”窗口。
if(Gu8EditData_2>0)
{
Gu8EditData_2--;
}
Gu8PartUpdate_1=1; //局部 1 更新显示
break;
case 4: //窗口 4。修改“秒”的“3-SS”窗口。
if(Gu8EditData_3>0)
{
Gu8EditData_3--;
}
Gu8PartUpdate_1=1; //局部 1 更新显示

break;
}
vGu8BeepTimerFlag=0;
vGu16BeepTimerCnt=VOICE_TIME; //蜂鸣器发出“滴”一声
vGu8BeepTimerFlag=1;
vGu8KeySec=0;
break;
case 4: //K1 按键的“长按”,具有进入和退出“闪烁模式”的功能。“退出”隐含“确定”
switch(Gu8Wd) //在某个窗口下
{
case 1: //窗口 1。时钟正常工作的窗口。
vGu8ClockTimerFlag=0; //停止时钟的定时器
Gu8EditData_1=vGu32ClockTimerCnt/3600000; //分解成“时”个体
Gu8EditData_2=vGu32ClockTimerCnt%3600000/60000; //分解成“分”个体
Gu8EditData_3=vGu32ClockTimerCnt%3600000%60000/1000; //分解成“秒”个体
Gu8Wd=2; //切换到窗口 2 的“1-HH”的闪烁窗口
Gu8WdUpdate=1; //整屏更新
break;
case 2: //窗口 2。修改时钟时间的“1-HH”的闪烁窗口
case 3: //窗口 3。修改时钟时间的“2-MM”的闪烁窗口
case 4: //窗口 4。修改时钟时间的“3-SS”的闪烁窗口
//把个体合并还原成当前时钟时间的数据
vGu32ClockTimerCnt=Gu8EditData_1*3600000+Gu8EditData_2*60000+Gu8EditData_3*1000;
vGu8ClockTimerFlag=1; //启动时钟的定时器
Gu8Wd=1; //切换到窗口 1 的正常工作的窗口
Gu8WdUpdate=1; //整屏更新
break;
}
vGu8BeepTimerFlag=0;
vGu16BeepTimerCnt=VOICE_TIME; //蜂鸣器发出“滴”一声
vGu8BeepTimerFlag=1;
vGu8KeySec=0;
break;