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

} if(0==vG u16BlinkTim erCnt) //某位 被选中的数 码管跳动 闪烁的定时器 { vGu8Blin kTimerFlag= 0; vGu16Bli nkTimerCnt= BLINK_TIME ; //重设定时器 的定时时间 vGu8Blin kTimerFlag= 1; switch(G u8Part) //某个 局部被选中, 则闪烁跳动 { case 1: if(0==Su 8BlinkFlag) //两…

100%1 / 836
Gu8PartUpdate_2=1 ;//局部 2 更新显示
Gu8PartUpdate_3=1; //局部 3 更新显示
Gu8PartUpdate_4=1; //局部 4 更新显示
}
if(1==Gu8PartUpdate_1) //局部 1 更新显示
{
Gu8PartUpdate_1=0; //及时清零,只更新一次显示即可,避免一直进来更新显示
Su8Temp_4=Gu8SetData_4; //显示左起第 1 个数据 Gu8SetData_4
//上面先分解数据之后,再过渡需要显示的数据到底层驱动变量里,让过渡的时间越短越好
vGu8Display_Righ_4=Su8Temp_4; //过渡需要显示的数据到底层驱动变量
}
if(1==Gu8PartUpdate_2) //局部 2 更新显示
{
Gu8PartUpdate_2=0; //及时清零,只更新一次显示即可,避免一直进来更新显示
Su8Temp_3=Gu8SetData_3; //显示左起第 2 个数据 Gu8SetData_3
//上面先分解数据之后,再过渡需要显示的数据到底层驱动变量里,让过渡的时间越短越好
vGu8Display_Righ_3=Su8Temp_3; //过渡需要显示的数据到底层驱动变量
}
if(1==Gu8PartUpdate_3) //局部 3 更新显示
{
Gu8PartUpdate_3=0; //及时清零,只更新一次显示即可,避免一直进来更新显示
Su8Temp_2=Gu8SetData_2; //显示左起第 3 个数据 Gu8SetData_2
//上面先分解数据之后,再过渡需要显示的数据到底层驱动变量里,让过渡的时间越短越好
vGu8Display_Righ_2=Su8Temp_2; //过渡需要显示的数据到底层驱动变量
}
if(1==Gu8PartUpdate_4) //局部 4 更新显示
{
Gu8PartUpdate_4=0; //及时清零,只更新一次显示即可,避免一直进来更新显示
Su8Temp_1=Gu8SetData_1; //显示左起第 4 个数据 Gu8SetData_1
//上面先分解数据之后,再过渡需要显示的数据到底层驱动变量里,让过渡的时间越短越好
vGu8Display_Righ_1=Su8Temp_1; //过渡需要显示的数据到底层驱动变量
}
if(0==vGu16BlinkTimerCnt) //某位被选中的数码管跳动闪烁的定时器
{
vGu8BlinkTimerFlag=0;
vGu16BlinkTimerCnt=BLINK_TIME; //重设定时器的定时时间
vGu8BlinkTimerFlag=1;
switch(Gu8Part) //某个局部被选中,则闪烁跳动
{
case 1:
if(0==Su8BlinkFlag) //两种状态的切换判
{
Su8BlinkFlag=1;
Su8Temp_4=10; //左起第 1 个显示“不显示”10 代表不显示
}
else
{
Su8BlinkFlag=0;
Su8Temp_4=Gu8SetData_4; //左起第 1 个显示数据 Gu8SetData_4
}
break;
case 2:
if(0==Su8BlinkFlag) //两种状态的切换判
{
Su8BlinkFlag=1;
Su8Temp_3=10; //左起第 2 个显示“不显示”10 代表不显示
}
else
{
Su8BlinkFlag=0;
Su8Temp_3=Gu8SetData_3; //左起第 2 个显示数据 Gu8SetData_3
}
break;
case 3:
if(0==Su8BlinkFlag) //两种状态的切换判
{
Su8BlinkFlag=1;
Su8Temp_2=10; //左起第 3 个显示“不显示”10 代表不显示
}
else
{
Su8BlinkFlag=0;
Su8Temp_2=Gu8SetData_2; //左起第 3 个显示数据 Gu8SetData_2
}
break;
case 4:
if(0==Su8BlinkFlag) //两种状态的切换判
{
Su8BlinkFlag=1;
Su8Temp_1=10; //左起第 3 个显示“不显示”10 代表不显示
}
else
{
Su8BlinkFlag=0;
Su8Temp_1=Gu8SetData_1; //左起第 4 个显示数据 Gu8SetData_1
}
break;
default: //都没有被选中的时
Su8Temp_4=Gu8SetData_4; //左起第 1 个显示数据 Gu8SetData_4
Su8Temp_3=Gu8SetData_3; //左起第 2 个显示数据 Gu8SetData_3
Su8Temp_2=Gu8SetData_2; //左起第 3 个显示数据 Gu8SetData_2
Su8Temp_1=Gu8SetData_1; //左起第 4 个显示数据 Gu8SetData_1
break;
}
vGu8Display_Righ_4=Su8Temp_4; //过渡需要显示的数据到底层驱动变量
vGu8Display_Righ_3=Su8Temp_3; //过渡需要显示的数据到底层驱动变量
vGu8Display_Righ_2=Su8Temp_2; //过渡需要显示的数据到底层驱动变量
vGu8Display_Righ_1=Su8Temp_1; //过渡需要显示的数据到底层驱动变量
}
}
void KeyScan(void) //按键底层的驱动扫描函数,放在定时中断函数
{
static unsigned char Su8KeyLock1;
static unsigned int Su16KeyCnt1;
static unsigned char Su8KeyLock2;