从单片机基础到程序框架(全集 2019pdf版).pdf - 第690页

{ Gu8EditD ata_4++; //编辑 “千位” 个体的中间 变量 } PartUpdate (Gu8Part) ; //当前局部更 新显示输出到 数码管 break; case 2: //局部 2 被选 中,代表 右起第 3 位数码管被 选中。 if(Gu8Edit Data_3<9) { Gu8EditD ata_3++; //编辑 “百位” 个体的中间 变量 } PartUpdate (Gu8Part) ; //当…

100%1 / 836
else
{
return; //其余的按键则拦截退出
}
}
switch(vGu8KeySec)
{
case 1: //按键 K1 的“短按”。切换数码管闪烁的位。
switch(Gu8Wd) //在某个窗口
{
case 1: //在窗口 1
if(0!=Gu8Part) //处于“闪烁模式”的时候,是“切换局部”
{
PartUpdate(Gu8Part); //切换之前的局部进行更新
Gu8Part++; //切换局部
if(Gu8Part>4)
{
Gu8Part=1;
}
PartUpdate(Gu8Part); //切换之后的局部进行更新
vGu8BeepTimerFlag=0;
vGu16BeepTimerCnt=VOICE_TIME; //蜂鸣器发出“滴”一声
vGu8BeepTimerFlag=1;
}
break;
}
vGu8KeySec=0;
break;
case 2: //按键 K2[加键]与[复位健]
if(0!=Gu8Part) //处于“闪烁模式”的时候,是[加键
{
switch(Gu8Wd) //在某个窗口下
{
case 1: //在窗口 1
switch(Gu8Part) //二级支点的局部选
{
case 1: //局部 1 被选中,代表右起第 4 位数码管被选中。
if(Gu8EditData_4<9)
{
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;