从单片机基础到程序框架(全集 2019pdf版).pdf - 第691页
Gu8Wd=1; / /返回设置 数据的窗 口 Gu8WdUpd ate=1; //整屏更 新一次显示 } vGu8BeepTi merFlag=0 ; vGu16BeepT imerCnt=V OICE_TIME; //蜂鸣 器发出“ 滴”一声 vGu8BeepTi merFlag=1 ; vGu8KeySec =0; break; case 3 : //按键 K3[减键]与[开始 健] if(0!=Gu8P art) //处于“ 闪…

{
Gu8EditData_4++; //编辑“千位”个体的中间变量
}
PartUpdate(Gu8Part); //当前局部更新显示输出到数码管
break;
case 2: //局部 2 被选中,代表右起第 3 位数码管被选中。
if(Gu8EditData_3<9)
{
Gu8EditData_3++; //编辑“百位”个体的中间变量
}
PartUpdate(Gu8Part); //当前局部更新显示输出到数码管
break;
case 3: //局部 3 被选中,代表右起第 2 位数码管被选中。
if(Gu8EditData_2<9)
{
Gu8EditData_2++; //编辑“十位”个体的中间变量
}
PartUpdate(Gu8Part); //当前局部更新显示输出到数码管
break;
case 4: //局部 4 被选中,代表右起第 1 位数码管被选中。
if(Gu8EditData_1<9)
{
Gu8EditData_1++; //编辑“个位”个体的中间变量
}
PartUpdate(Gu8Part); //当前局部更新显示输出到数码管
break;
}
break;
}
}
else //处于“没有闪烁”的时候,是[复位健]
{
Gu8EditData_4=Gu32SetData_Countdown/10000%10; //分解成“十秒”个体
Gu8EditData_3=Gu32SetData_Countdown/1000%10; //分解成“个秒”个体
Gu8EditData_2=Gu32SetData_Countdown/100%10; //分解成“百毫秒”个体
Gu8EditData_1=Gu32SetData_Countdown/10%10; //分解成“十毫秒”个体
Gu8RunStatus=0; //倒计时返回停止的状态
Gu8RunStart=0; //倒计时的运行步骤的停止
Gu8RunStep=0; //总运行步骤归零。建议跟 vGu8RunStart 成双成对出现

Gu8Wd=1; //返回设置数据的窗口
Gu8WdUpdate=1; //整屏更新一次显示
}
vGu8BeepTimerFlag=0;
vGu16BeepTimerCnt=VOICE_TIME; //蜂鸣器发出“滴”一声
vGu8BeepTimerFlag=1;
vGu8KeySec=0;
break;
case 3: //按键 K3[减键]与[开始健]
if(0!=Gu8Part) //处于“闪烁模式”的时候,是[减键]
{
switch(Gu8Wd) //在某个窗口下
{
case 1: //在窗口 1 下
switch(Gu8Part) //二级支点的局部选择
{
case 1: //局部 1 被选中,代表右起第 4 位数码管被选中。
if(Gu8EditData_4>0)
{
Gu8EditData_4--; //编辑“十秒”个体的中间变量
}
PartUpdate(Gu8Part); //当前局部更新显示输出到数码管
break;
case 2: //局部 2 被选中,代表右起第 3 位数码管被选中。
if(Gu8EditData_3>0)
{
Gu8EditData_3--; //编辑“个秒”个体的中间变量
}
PartUpdate(Gu8Part); //当前局部更新显示输出到数码管
break;
case 3: //局部 3 被选中,代表右起第 2 位数码管被选中。
if(Gu8EditData_2>0)
{
Gu8EditData_2--; //编辑“百毫秒”个体的中间变量
}
PartUpdate(Gu8Part); //当前局部更新显示输出到数码管
break;

case 4: //局部 4 被选中,代表右起第 1 位数码管被选中。
if(Gu8EditData_1>0)
{
Gu8EditData_1--; //编辑“十毫位”个体的中间变量
}
PartUpdate(Gu8Part); //当前局部更新显示输出到数码管
break;
}
break;
}
}
else //处于“没有闪烁”的时候,是[开始健]
{
if(0==Gu8RunStatus) //在停止状态下
{
vGu8CountdownTimerFlag=0;
vGu32CountdownTimerCnt=Gu32SetData_Countdown; //从“设置值”开始倒计时
vGu8CountdownTimerFlag=1; //允许倒计时的软件定时器的启动
Gu8RunStatus=1; //倒计时处于工作状态(并且,这一瞬间才正式启动倒计时)
Gu8RunStart=1; //倒计时的运行步骤的总开关开启
Gu8RunStep=0; //总运行步骤归零。建议跟 vGu8RunStart 成双成对出现
Gu8Wd=2; //进入倒计时运行的窗口
Gu8WdUpdate=1; //整屏更新一次显示,确保在启动的时候能显示到最新的数据
}
}
vGu8BeepTimerFlag=0;
vGu16BeepTimerCnt=VOICE_TIME; //蜂鸣器发出“滴”一声
vGu8BeepTimerFlag=1;
vGu8KeySec=0;
break;
case 4: //K1 按键的“长按”,具有进入和退出“闪烁模式”的功能。“退出”隐含“确定”
switch(Gu8Wd) //在某个窗口下
{
case 1: //在窗口 1 下
if(0==Gu8Part) //处于“没有闪烁”的时候,将进入“闪烁模式”
{