基于单片机的电梯控制系统方案 联系客服

发布时间 : 星期四 文章基于单片机的电梯控制系统方案更新完毕开始阅读674dbe9ba31614791711cc7931b765ce05087aad

word格式文档

图3-7 模拟电路原理图

4系统的软件设计

从程序功能上来分,本设计的高层软件程序大概可以分为以下几类:一、运行与决策函数;二、中断处理函数;三、置位各状态变量函数;

其中,第一类函数起作用于按键按下的时刻,当有按键按下时,通过74LS21以中断的方式发送给单片机,此时,单片机即对程序中所用到的各个状态变量进行置位并且点亮相关发光二极管,如置位按键所对应的去向变量等,方便决策函数使用。第二类函数起作用于电梯到达目标楼层时,这时函数负责把相关发光二极管熄灭,并且及时清除相关状态位,以免影响判别函数作出正确判断。第三类函数是程序的核心。它直接负责管理电梯下一次所要到达的楼层,并且要基于短时间、高效率、人性化等原则。每当电梯经过一楼层时,此函数即会被调用,然后返回一个变量名为aim的值,它即为下一个电梯要停留的目标楼层值。

4.1 单片机中断处理函数

本设计主要用到了单片机的中断系统。当有按键按下时,利用函数将键值存储起来,并在单片机引脚输出高电平发出中断进行相关处理。中断的相关设置以及中断处理如图4.1所示。

专业整理

word格式文档

读取键值分析键值来源点亮相应发光二极管置位相应状态变量图4.1 中断处理中的相关操作

4.2 电梯判决函数

在电梯经过一个楼层时,就会自动调用该函数。其流程如图4.2所示。

开始按键标识全为0?否是电梯不再运行电梯向上运行电梯向下运行电梯上楼接人电梯上楼送人电梯下楼接人电梯下楼送人相关处理1相关处理2相关处理3相关处理4 图4-2 电梯判决流程图

由图可知,程序中将实际情况分为四种情况来判断:电梯上行且是去送人、电梯上行且是去接人、电梯下行且是去送人、电梯下行且是去接人。电梯各情况下所对应的处理方法,以电梯上行的两种状态为例:

在实际应用中,最简单的情况莫过于电梯当前为闲置状态,然后有一人按下按键呼叫,然后电梯便响应呼叫。但是,实际情况往往比这复杂的多,往往会有

专业整理

word格式文档

多人呼叫电梯。那么就必须得为电梯规定好一个特定的优先级规则,以免乱作一团。

若电梯处于上行状态,则在该过程中响应不同顾客的优先级为:高层呼叫上行顾客>高层呼叫下行顾客>底层呼叫下行顾客>底层呼叫上行顾客。

若上行,且是送人,比如电梯当前在二层,六楼有人呼叫上楼,那么它就要响应这一呼叫,从而把自己的目标楼层锁定为六楼并向上运行,而在六楼呼叫后不久,五楼也有人呼叫上楼(且电梯此刻还未运行到五楼),那么在电梯运行中,每经过一个楼层,会做一次判决,因为五楼也有人呼叫,所以正常情况下,它应该在判决后将目标楼层定位五楼。而若五楼的顾客按下的是下行键,或者二楼的人按下呼叫键,电梯此时都会暂时不予理会。

在程序中,当五楼有上行键呼叫时,状态变量f5up便会被置位,程序走到判别if((f5up==0)|(present>5))时,里面的内容即为假,则不再继续向下判断,而转向else语句中,里面又有一个判断,当确定此时确实有键按下且电梯当前所处楼层小于五楼时,目标楼层就会被变更到五楼,程序最终返回一个aim值。由于程序中没有下行键的出现,故下行键的状态是不会影响到该程序的判决的。

此时程序的检测依据两个标准:第一,由低层像高层开始检查;第二,对于电梯已经过的楼层和按下下行键所发出的请求,电梯暂时是不予理会的。这也是很明显的,因为上行送人状态中,低层的优先权大于高层的。程序就是靠着上面这些if语句的嵌套,来完成这种优先级设置的。

至于上行接人状态时,所坚持的标准是由高层到底层的顺序进行排查,而对于上行键的呼叫暂时不予理会。下行的状态,恰好与上行相反,在此不再赘述。

4.3 电梯运行函数

该函数直接控制电梯的上行与下行、运行与停止。起关键作用的还是判决函数给它提供的目标楼层值。其具体的流程如图4.3所示。它的功能就是判断目标楼层与当前楼层间的关系:若前者大于后者,则上行;若前者小于后者,则下行;若相等,则停止片刻把门打开。当然,之后它还要做一次判断,因为可能还有其他的楼层需要呼叫,此时程序会自动装入合适的目标楼层值,指挥电梯继续运行下去,直到所有的呼叫都完成为止。

专业整理

word格式文档

开始是当前楼层与目标是否相等?否当前楼层小于目标楼层?是否判决目标楼层是否改变?否停止判决目标楼层是否改变?是改变目标楼层判决目标楼层是否改变?是改变目标楼层否清零相应状态变量与二极管是开门上行下行当前楼层加1当前楼层减1否

图4.3 运行函数流程图

4.5 主函数

之所以把主函数放于最后才说,是因为它最为简单,它之上把上面所有的函数按照恰当的顺序排列起来,便于相互调用而已。

首先,各按键按下的信息是通过中断来告知单片机的,故我们要对单片机中断有相应的程序语句加以说明,如开总中断,开外部中断0以及其触发方式等等。最后就是一个大的死循环了,当电梯运行到这里的时候,就一直执行判决函数,检测有目标楼层有无改变,如果有,就开始调用运行函数,而运行函数没当经过一个楼层又会再次调用判决函数等等。而当有中断发生时,单片机又可以转而处理相应的中断。就这样,各子函数间通过主函数形成了一个统一的整体,使得整个系统得以完美运行。

5 电路仿真及调试

在画好电路图和将程序导入单片机中后,进行仿真,部分结果如下

专业整理