第一范文网 - 专业文章范例文档资料分享平台

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

来源:用户分享 时间:2025/10/6 14:11:06 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

Init();(调用初始化函数),elevator_check();(调用电梯检测函数)key_check_all(); elevator_order_check(elevator_layer);四个子程序。其中后三个子程序在while循环中无限循环的一直调用下去。本设计中还包括了定时中断程序。

3.2电梯运行位置检测程序如下:

/**************************************************************** * 函 数 名 : elevator_check * 函数功能

: 实时检测电梯位置并用数码管显示,当电梯停止在

错误状态或有报警时,输出报警信号,并于电梯门打开3秒后自动关闭

* 输 入 : 无 * 输 出 : 无

****************************************************************/ void elevator_check() {

if

((elevator_one_in==0)&&(elevator_two_in==1)&&(elevator_three_in==1)&&(elevator_four_in==1)) //如果停在1楼

{

elevator_layer=1; //电梯层检测变量赋值1层

Layer=Number_Char [1] ;

elevator_alarm_out=1; //取消报警

} else

if

((elevator_one_in==1)&&(elevator_two_in==0)&&(elevator_three_in==1)&&(elevator_four_in==1)) //如果停在2楼

{

elevator_layer=2; //电梯层检测变量赋值2层

Layer=Number_Char [2] ;

elevator_alarm_out=1; //取消报警

} else

if

((elevator_one_in==1)&&(elevator_two_in==1)&&(elevator_three_in==0)&&(elevator_four_in==1)) //如果停在3楼

{

elevator_layer=3; //电梯层检测变量赋值3层

Layer=Number_Char [3] ;

elevator_alarm_out=1; //取消报警 } else

if

((elevator_one_in==1)&&(elevator_two_in==1)&&(elevator_three_in==1)&&(elevator_four_in==0)) //如果停在4楼

{

elevator_layer=4; //电梯层检测变量赋值4层

Layer=Number_Char [4] ;

elevator_alarm_out=1; //取消报警

} else {

Layer=Number_Char [0] ; //显示F,代表错误状态,报警显示

// elevator_alarm_out=0; //报警输出 }

if (Time>Time_target) //定时时间到 {

elevator_open_door_out=1; //关闭电梯门

if (elevator_goto==1) //如果是电梯上升过程中中断,则延时

后继续执行

{

elevator_up_out=0; //电梯上升

elevator_down_out=1; //电梯上升

elevator_goto=0; //恢复初始值 }

else if (elevator_goto==2) //如果是电梯下降过程中中

断,则延时后继续执行

{

elevator_up_out=1; //电梯下降

elevator_down_out=0; //电梯下降

elevator_goto=0; //恢复初始值 }

else if (elevator_goto==3) {

elevator_goto=0; }

Time=0; //清零

Time_target=0; //定时时间清零

}

if (close_door_key==0) //如果电梯门关闭按键按下 { }

3.3按键检测排队程序如下:

/**************************************************************** * 函数名 : key_check_all * 函数功能

: 按键检测函数总调用

elevator_open_door_out=1; //关闭电梯门 }

* 输入 : 无 * 输出 : 无

****************************************************************/

void key_check_all() {

key_check(one_up_key,1); //按键检测 key_check(two_up_key,2); //按键检测 key_check(two_down_key,3); //按键检测 key_check(three_up_key,4); //按键检测 key_check(three_down_key,5); //按键检测 key_check(four_down_key,6);

//按键检测

//按键检测 //按键检测

key_check(elevator_one_key,7); key_check(elevator_two_key,8);

key_check(elevator_three_key,9); //按键检测 key_check(elevator_four_key,10); //按键检测 }

/**************************************************************** * 函数名 : key_check(unsigned char key,unsigned char n) * 函数功能

: 按键检测函数

* 输入 : key,n * 输出 : 无

****************************************************************/ void key_check(unsigned char key,unsigned char n) {

if (key==0) //1楼电梯外按键按下 {

if (zero==0) //如果此处优先级未排队 {

zero=n; }

else if((one==0)&&(zero!=n)) //如果此处优先级未排队并且前面

已经排队序号未有本按键的排队

基于单片机的智能电梯控制系统设计.doc.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c37g8w2v6iu3sk4u09qt56trx0171wu00evs_5.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top