📄 run.c
字号:
#include <spce061a.h>
extern int key_code[16];
extern int next_floor; //下一次要到达的层
extern int floor; //层位置
extern int flag; //运行方向标志 0为上 1为下 2为停止
void run() //已到了某层,判断下一个运动方向
{
*P_Watchdog_Clear=0x0001;
if(flag==1) //上次为向下运动
{
if(floor==1) //在第一层时
{
if(key_code[10]||key_code[2]) //第二层有呼叫信号,且要向上,或要上第二层
next_floor=2;
else if(key_code[12]||key_code[3]) //第三层有呼叫信号,且要向上,或要上第三层
next_floor=3;
else if(key_code[14]||key_code[4]) //第四层有呼叫信号,且要向上,或要上第四层
next_floor=4;
else if(key_code[15]||key_code[5]) //第五层有呼叫信号,且要向下,或要上第五层
next_floor=5;
else if(key_code[13]) //第四层有呼叫信号,且要向下
next_floor=4;
else if(key_code[11])
next_floor=3; //第三层有呼叫信号,且要向下
else if(key_code[9]) //第二层有呼叫信号,且要向下
next_floor=2;
else next_floor=1; //下一层为第一层,即不动
}
if(floor==2) //在第二层时
{
if(key_code[8]||key_code[1]) //下一层为第一层
next_floor=1;
else if(key_code[12]||key_code[3]) //下一层为第三层,即要向上行
next_floor=3;
else if(key_code[14]||key_code[4]) //下一层为第四层
next_floor=4;
else if(key_code[15]||key_code[5]) //下一层为第五层
next_floor=5;
else if(key_code[13])
next_floor=4;
else if(key_code[11])
next_floor=3;
else next_floor=2; //下一层为第二层 ,即不动
}
if(floor==3)
{
if(key_code[9]||key_code[2]) //下一层为第二层
next_floor=2;
else if(key_code[8]||key_code[1]) //下一层为第一层
next_floor=1;
else if(key_code[10])
next_floor=2;
else if(key_code[14]||key_code[4]) //下一层为第四层,即要向上行
next_floor=4;
else if(key_code[15]||key_code[5]) //下一层为第五层
next_floor=5;
else if(key_code[13])
next_floor=4;
else next_floor=3; //下一层为第三层,即不动
}
if(floor==4)
{
if(key_code[11]||key_code[3]) //下一层为第三层
next_floor=3;
else if(key_code[9]||key_code[2]) //下一层为第二层
next_floor=2;
else if(key_code[8]||key_code[1]) //下一层为第一层
next_floor=1;
else if(key_code[10])
next_floor=2;
else if(key_code[12])
next_floor=3;
else if(key_code[15]||key_code[5]) //下一层为第五层,即要向上行
next_floor=5;
else next_floor=4; //下一层为第四层,即不动
}
}
else if(flag==0) //上次为向上运行
{
if(floor==2)
{
if(key_code[12]||key_code[3]) //下一层为第三层
next_floor=3;
else if(key_code[14]||key_code[4]) //下一层为第四层
next_floor=4;
else if(key_code[15]||key_code[5]) //下一层为第五层
next_floor=5;
else if(key_code[13])
next_floor=4;
else if(key_code[11])
next_floor=3;
else if(key_code[8]||key_code[1]) //下一层为第一层,要下行了
next_floor=1;
else next_floor=2; //下一层为第二层,即不动
}
if(floor==3)
{
if(key_code[14]||key_code[4]) //下一层为第四层
next_floor=4;
else if(key_code[15]||key_code[5]) //下一层为第五层
next_floor=5;
else if(key_code[13])
next_floor=4;
else if(key_code[9]||key_code[2]) //下一层为第二层,要下行了
next_floor=2;
else if(key_code[8]||key_code[1]) //下一层为第一层
next_floor=1;
else if(key_code[10])
next_floor=2;
else next_floor=3; //下一层为第三层,即不动
}
if(floor==4)
{
if(key_code[15]||key_code[5]) //下一层为第五层
next_floor=5;
else if(key_code[11]||key_code[3]) //下一层为第三层,要下行了
next_floor=3;
else if(key_code[9]|key_code[2]) //下一层为第二层
next_floor=2;
else if(key_code[8]||key_code[1]) //下一层为第一层
next_floor=1;
else if(key_code[10])
next_floor=2;
else if(key_code[12])
next_floor=3;
else next_floor=4; //下一层为第四层,即不动
}
if(floor==5)
{
if(key_code[13]||key_code[4]) //下一层为第四层
next_floor=4;
else if(key_code[11]||key_code[3]) //下一层为第三层,要下行了
next_floor=3;
else if(key_code[9]|key_code[2]) //下一层为第二层
next_floor=2;
else if(key_code[8]||key_code[1]) //下一层为第一层
next_floor=1;
else if(key_code[10])
next_floor=2;
else if(key_code[12])
next_floor=3;
else if(key_code[14])
next_floor=4;
else next_floor=5; //下一层为第五层,即不动
}
}
else if(flag==2) //停止了,
{
if(floor==1) //在第一层时
{
if(key_code[9]||key_code[10]||key_code[2]) //下一层为第二层
next_floor=2;
else if(key_code[11]||key_code[12]||key_code[3]) //下一层为第三层
next_floor=3;
else if(key_code[13]||key_code[14]||key_code[4]) //下一层为第四层
next_floor=4;
else if(key_code[15]||key_code[5]) //下一层为第五层
next_floor=5;
else next_floor=1; //下一层为第一层,即不动
}
if(floor==2) //在第二层时
{
if(key_code[8]||key_code[1]) //下一层为第一层
next_floor=1;
else if(key_code[11]||key_code[12]||key_code[3]) //下一层为第三层
next_floor=3;
else if(key_code[13]||key_code[14]||key_code[4]) //下一层为第四层
next_floor=4;
else if(key_code[15]||key_code[5]) //下一层为第五层
next_floor=5;
else next_floor=2; //下一层为第二层 ,即不动
}
if(floor==3)
{
if(key_code[9]||key_code[10]||key_code[2]) //下一层为第二层
next_floor=2;
else if(key_code[13]||key_code[14]||key_code[4]) //下一层为第四层
next_floor=4;
else if(key_code[8]||key_code[1]) //下一层为第一层
next_floor=1;
else if(key_code[15]||key_code[5]) //下一层为第五层
next_floor=5;
else next_floor=3; //下一层为第三层 ,即不动
}
if(floor==4)
{
if(key_code[15]||key_code[5]) //下一层为第五层
next_floor=5;
else if(key_code[11]||key_code[12]||key_code[3]) //下一层为第三层
next_floor=3;
else if(key_code[9]||key_code[10]||key_code[2]) //下一层为第二层
next_floor=2;
else if(key_code[8]||key_code[1]) //下一层为第一层
next_floor=1;
else next_floor=4;
}
if(floor==5)
{
if(key_code[13]||key_code[14]||key_code[4]) //下一层为第四层
next_floor=4;
else if(key_code[11]||key_code[12]||key_code[3]) //下一层为第三层
next_floor=3;
else if(key_code[9]||key_code[10]||key_code[2]) //下一层为第二层
next_floor=2;
else if(key_code[8]||key_code[1]) //下一层为第一层
next_floor=1;
else next_floor=5;
}
}
*P_Watchdog_Clear=0x0001;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -