云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 基于单片机的智能电梯控制系统设计.doc

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

  • 62 次阅读
  • 3 次下载
  • 2025/7/2 11:43:44

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)) //如果此处优先级未排队并且前面

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

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

Init();(调用初始化函数),elevator_check();(调用电梯检测函数)key_check_all(); elevator_order_check(elevator_layer);四个子程序。其中后三个子程序在while循环中无限循环的一直调用下去。本设计中还包括了定时中断程序。 3.2电梯运行位置检测程序如下: /**************************************************************** * 函 数 名 : elevator_check * 函数功能 : 实时检测电梯位置并用数码管显示,当电梯停止在错误状态或有报警时,输出报警信号,并于电梯门打开3秒后自动关闭 * 输 入 : 无 *

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com