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

P1_5=1; //第 2 个灯 灭 P1_6=0; //第 3 个灯 亮 P3_3=1; //第 4 个灯 灭 vGu8RunT imerFlag=0; vGu16Run TimerCnt=Gu 16RunSpeed TimeDate; / /速度时间参数变 量的大小 ,决定了速度 vGu8RunT imerFlag=1; //启动 定时器 //灵活切换 “步骤变量” if(0==Gu 8RunDirecti on) //往右 跑 {…

100%1 / 836
Gu8RunStep=2;
}
else //往左跑
{
if(Gu8RunCounter<99)
{
Gu8RunCounter++; //往左边跑完一次,运行的计数器自加 1
}
Gu8PartUpdate_3=1; //局部 3 的更新变量,更新显示计数
Gu8RunStep=4;
}
}
break;
case 2:
if(1==Gu8RunStatus&&0==vGu16RunTimerCnt) //当前处于“启动”状态,并且定时器等于 0
{
P1_4=1; //第 1 个灯
P1_5=0; //第 2 个灯
P1_6=1; //第 3 个灯
P3_3=1; //第 4 个灯
vGu8RunTimerFlag=0;
vGu16RunTimerCnt=Gu16RunSpeedTimeDate; //速度时间参数变量的大小,决定了速度
vGu8RunTimerFlag=1; //启动定时器
//灵活切换“步骤变量”
if(0==Gu8RunDirection) //往右
{
Gu8RunStep=3;
}
else //往左跑
{
Gu8RunStep=1;
}
}
break;
case 3:
if(1==Gu8RunStatus&&0==vGu16RunTimerCnt) //当前处于“启动”状态,并且定时器等于 0
{
P1_4=1; //第 1 个灯
P1_5=1; //第 2 个灯
P1_6=0; //第 3 个灯
P3_3=1; //第 4 个灯
vGu8RunTimerFlag=0;
vGu16RunTimerCnt=Gu16RunSpeedTimeDate; //速度时间参数变量的大小,决定了速度
vGu8RunTimerFlag=1; //启动定时器
//灵活切换“步骤变量”
if(0==Gu8RunDirection) //往右
{
Gu8RunStep=4;
}
else //往左跑
{
Gu8RunStep=2;
}
}
break;
case 4:
if(1==Gu8RunStatus&&0==vGu16RunTimerCnt) //当前处于“启动”状态,并且定时器等于 0
{
P1_4=1; //第 1 个灯
P1_5=1; //第 2 个灯
P1_6=1; //第 3 个灯
P3_3=0; //第 4 个灯
vGu8RunTimerFlag=0;
vGu16RunTimerCnt=Gu16RunSpeedTimeDate; //速度时间参数变量的大小,决定了速度
vGu8RunTimerFlag=1; //启动定时器
//灵活切换“步骤变量”
if(0==Gu8RunDirection) //往右
{
if(Gu8RunCounter<99)
{
Gu8RunCounter++; //往右边跑完一次,运行的计数器自加 1
}
Gu8PartUpdate_3=1; //局部 3 的更新变量,更新显示计数
Gu8RunStep=1;
}
else //往左跑
{
Gu8RunStep=3;
}
}
break;
}
}
void KeyTask(void) //按键的任务函数
{
if(0==vGu8KeySec)
{
return;
}
switch(vGu8KeySec)
{
case 1: //【速度】按键 K1
switch(Gu8Wd) //在某个窗口
{
case 1: //窗口 1。
//每按一次 K1 按键,Gu8RunSpeed 就在 1、2、3 三者之间切换,
//并且根据 Gu8RunSpeed 的数值,对 Gu16RunSpeedTimeDate 赋值
//不同的速度时间参数,从而控制速度档位。
if(1==Gu8RunSpeed)
{
Gu8RunSpeed=2; //“中”
Gu16RunSpeedTimeDate=RUN_TIME_MIDDLE; //赋值“中”档的时间参数
}
else if(2==Gu8RunSpeed)
{
Gu8RunSpeed=3; //“快”档
Gu16RunSpeedTimeDate=RUN_TIME_FAST; //赋值“快”档的时间参数
}
else
{
Gu8RunSpeed=1; //“慢”档
Gu16RunSpeedTimeDate=RUN_TIME_SLOW; //赋值“慢”档的时间参数
}