基于单片机的智能电梯控制系统设计.doc 联系客服

发布时间 : 星期五 文章基于单片机的智能电梯控制系统设计.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常数 }

//电梯下降输出停止