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

} break; } }

100%1 / 836
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