发布时间 : 星期五 文章基于单片机的智能电梯控制系统设计.doc更新完毕开始阅读5231004974c66137ee06eff9aef8941ea66e4b58
TimerConfiguration(); //调用定时配置函数
temp(1,1,0,3);
order_ctrl(0); //命令移动一次
}
order_check_t(2); //命令临时变量检测函数 order_check_t(8); //命令临时变量检测函数
}
else
if
((elevator_up_out==1)&&(elevator_down_out==0)) //如果电梯在下降过程中经过2楼
{
if (order_layer==2) //判断前一个排队命令如果是
到2楼停止的请求
{
TimerConfiguration(); temp(1,1,0,3);
order_ctrl(0); //命令移动一次
}
order_check_t(3); //命令临时变量检测函数 order_check_t(8); //命令临时变量检测函数
}
else if (layer==3)
//如果电梯在三层
}
{
if (elevator_goto==0) //电梯继续运行标志为零时
{
if
((elevator_up_out==1)&&(elevator_down_out==1))
//如果电梯停在二楼并且前面未有任何排队命令
{
elevator_door_key(); //电梯门按键检测函数
elevator_3_stop (); //调用电梯停在三楼函数
}
}
if ((elevator_up_out==0)&&(elevator_down_out==1)) //如果电梯在上升过程中经过3楼
{
if (order_layer==3) //判断前一个排队命令如果是
到3楼停止的请求
{
TimerConfiguration(); temp(1,1,0,3);
order_ctrl(0); //命令移动一次
}
order_check_t(4); //命令临时变量检测函数 order_check_t(9); //命令临时变量检测函数
}
else
if
((elevator_up_out==1)&&(elevator_down_out==0)) //如果电梯在下降过程中经过3楼
{
if (order_layer==3) //判断前一个排队命令如果是
到3楼停止的请求
{
TimerConfiguration();
temp(1,1,0,3);
order_ctrl(0); //命令移动一次
}
order_check_t(5); //命令临时变量检测函数 order_check_t(9); //命令临时变量检测函数
}
else if (layer==4)
//如果电梯在四层
}
{
if
((elevator_up_out==1)&&(elevator_down_out==1))
//如果电梯停四楼并且前面未有任何排队命令
{
elevator_door_key(); //电梯门按键检测函数 楼
{
elevator_4_stop (); //调用电梯停在四楼函数
} else
if
((elevator_up_out==0)&&(elevator_down_out==1)) //如果电梯上升到4
TimerConfiguration(); //调用定时配置函数
temp(1,1,0,0); }
3.6初始化子程序如下:
初始化就是把变量赋为默认值,把控件设为默认状态,把没准备的准备好。 但是如果是整个系统初始化那就不一样了。在汇编语言中,为变量分配空间时,初始化过的变量的初值位于可执行文件代码段数据后,会占用一定空间,不必要的初始化会造成磁盘空间的浪费。在C语言等高级语言中,为每一个变量赋初值被视为良好的编程习惯,有助于减少出现Bugs的可能性。因此,是否对不必要的变量初始化依情况而定。我们这里将一些主要参数都进行了数据初始化处理。具体可参照程序注释。
}
}
/**************************************************************** * 函 数 名 : Init * 函数功能
: 初始化函数,将程序中参数初始化
* 输 入 : 无 * 输 出 : 无
****************************************************************/ void Init() {
Time=0; //初始化参数 Time_target=0;
elevator_up_out=1; //电梯上升输出停止 elevator_down_out=1; zero=0; //队列0 one=0; //队列1 two=0; //队列2 three=0; //队列3 four=0; //队列4 five=0; //队列5 six=0; //队列6 seven=0; //队列7 eight=0; //队列8 nine=0; //队列9
order_layer=0; //命令层变量
elevator_goto=0; //电梯继续运行标志 order_ctrl_s=0; //命令移动执行标志赋值0 order_ctrl_s1=11; //命令移动执行标志初值为11常数 }
//电梯下降输出停止