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

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=RUN_TIME; //用于控制跑马灯跑动速度的定时器
vGu8RunTimerFlag=1; //启动定时器
//灵活切换“步骤变量”
if(0==Gu8RunDirection) //往右跑
{
Su8RunStep=4;
}
else //往左跑
{
Su8RunStep=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=RUN_TIME; //用于控制跑马灯跑动速度的定时器
vGu8RunTimerFlag=1; //启动定时器
//灵活切换“步骤变量”
if(0==Gu8RunDirection) //往右跑
{
Su8RunStep=1;
}
else //往左跑
{
Su8RunStep=3;
}

}
break;
}
}

第一百一十节: 按键控制跑马灯的速度。
【110.1 按键控制跑马灯的速度。】
上图 110.1.1 独立按键
上图 110.1.2 LED 电路
上图 110.1.3 有源蜂鸣器的电路
之前 109 节讲到跑马灯的启动、暂停、停止、方向,本节在此基础上,把原来的“停止”更改为“速度”,
加深理解输入设备如何关联应用程序的程序框架。
本节例程的功能如下:
(1)【启动暂停】按键 K1。上电后,按下【启动暂停】按键 K1 启动之后,跑马灯处于“启动”状态,4