从单片机基础到程序框架(全集 2019pdf版).pdf - 第581页
Su8RunSt ep=4; } else //往左跑 { Su8RunSt ep=2; } } break; case 4 : if(1==Gu 8RunStatus& &0==vGu16R unTimerCnt) / /当前处于“启 动”状态 ,并且定时器 等于 0 { P1_4=1; //第 1 个灯 灭 P1_5=1; //第 2 个灯 灭 P1_6=1; //第 3 个灯 灭 P3_3=0; //第 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) //往右跑
{
Su8RunStep=3;
}
else //往左跑
{
Su8RunStep=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) //往右跑
{

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=Gu16RunSpeedTimeDate; //速度时间参数变量的大小,决定了速度
vGu8RunTimerFlag=1; //启动定时器
//灵活切换“步骤变量”
if(0==Gu8RunDirection) //往右跑
{
Su8RunStep=1;
}
else //往左跑
{
Su8RunStep=3;
}
}
break;
}
}

第一百一十一节: 工业自动化设备的开关信号的运动控制。
【111.1 开关信号的运动控制。】
上图 111.1.1 独立按键
上图 111.1.2 LED 电路
上图 111.1.3 有源蜂鸣器的电路
本节涉及的知识点有,switch 的过程控制,时间延时,开关感应器的软件滤波,工件计数器,以及整体
的软件框架。
现在有一台设备,水平方向有一个滑块,能左右移动,滑块上安装了一个能垂直伸缩的“机械手”。按
下启动按键后,滑块先从左边往右边移动,移到最右边碰到“右感应器”后,滑块上的“机械手”开始往下