基于单片机的电梯控制系统Word文件下载.docx
《基于单片机的电梯控制系统Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于单片机的电梯控制系统Word文件下载.docx(15页珍藏版)》请在冰豆网上搜索。
2方案论证
2.1设计功能要求
本设计是为一六层电梯设计一调度系统,即使电梯能够合理高效地运行,完
成各楼层顾客的接送任务。
形象地说,就是要应对不同楼层顾客的不同需求,作出合理高效的判断,使所有顾客在整体运用时间最短的条件下将其运往各自的目的地。
这个设计的成品应该可以作为真实电梯的控制系统一样,遵守以下两个原则:
一是高效性,二是人性化。
而实际电梯所面临的情况无比复杂,故本设计的难点除了硬件上面外,还有对这些复杂的情况归类化,分为若干个基本情况,另外是用恰当的C语言描述来表达这些复杂的逻辑。
核心处两个步骤:
第一判断电梯是上行还是下行;
第二,判断是去接人还是去送人。
2.2系统的结构框图
图2-1系统的结构框图
如上图2-1所示,楼层电梯呼叫按键就是楼层外面的上行、下行按键,有需求时即可按下;
电梯内呼叫按键就是电梯内部的数字按键,它是内部按键需求的输入;
单片机就是整个系统的核心,接收输入信息,经过处理后输出信息;
楼层显示数码管就是接收单片机处理的信息,显示此时的楼层数;
电梯状态指示灯就是接收单片机处理的信息,显示电梯的状态:
上升、下降、停止。
电动机的驱动和控制就是接收单片机的PWM脉冲信号来控制驱动器,进而控制电动机的正反转,使电动机牵引电梯做上下运动。
3系统的硬件设计
电梯最底层为1楼,因此在1楼仅有上升按键,而电梯最高层为6楼,因此6楼应仅有下降按键。
其他楼层则既有上升按键,也有下降按键。
在电梯内部按键设置方面,则应有1〜6楼的各层选择按键。
按键的一端接地,另一端通过集成电路芯片连至单片机引脚。
这里,由于按键数量很多,又要求电梯控制系统能以最快速度响应按键的需求,因此,所有按键通过与门连接单片机。
用五片双4
输入与门74LS21即可实现16个按键对象的集体与运算的最终结果,按键动作最终是送到单片机的INTO端。
即:
INTO・(P1.0*P1.1*P1.2*P1.3)*(P1.4*P1.5*P1.6*P1.7)*(P3.0*P3.1*P2.0*P3.3)
*(P3.4*P3.5*P2.1*P2.2)
无论哪一个按键有动作,低电平信号就会送到INTO端,从而引发外部中断
0服务子程序运行。
当定时器0中断时,单片机向电动机发送PWM脉冲信号,电动机接到脉冲信号后,经过驱动器的驱动,电动机便牵引电梯上下运动。
电梯的楼层显示用七段数码管完成显示。
本设计电梯只有6层,因此用七段
数码管即可,数码管的显示数据通过单片机的P0口来进行传送。
设计中要求数
码管随着电梯的位置变化而变化,即数码管显示数据要与楼层数同步,因此数码管的片选线直接连接地,而不需要再选择。
电梯升降的状态用上升和下降指示灯来进行显示,通过单片机的P3.7和P3.6引
脚分别连接上升和下降指示灯的负极,其正极均连接至系统正电源处。
3.1单片机最小系统模块
在本设计中,最小系统应该包括:
单片机、晶振电路、复位电路。
如图3-1所示,晶振电路由C3与C2和晶振组成。
C3与C2是两个30pF的瓷片电容接地用来削减偕波对电路的稳定性的影响。
复位电路采取的为手动按键复位电路,由电容
C13,电阻R1、C1和开关RESETS成,当单片机的复位引脚RESETB现2个机器
周期以上的高电平时,单片机就执行复位操作
时钟电路C2
图3-1单片机的最小系统
3.2电动机的选择
我们选用三相异步电动机来做电梯的动力装置,因为国产丫系列的电动机
具有高效、节能、特性好及低噪声等优点,我们将选用国内最先进的丫系列异
步电动机。
这里我们选用Y100L24三相异步电动机,因为它还具有性能好、寿命长、可靠性高、维护方便、启动转矩大等优点,其功能参数为额定电压380V,
额定频率50HZ,额定功率3000W,额定转速1400转/分。
如图3-2,在PROTEUS中,我们选用的普通的MOTOR-BCD代替进行仿真。
图3-2电动机正反控制电路
3.3中断电路
图3-3中断电路图
中断电路如上图3-3所示。
图中外部0中断INTO与74LS21与门相接,低电平有效,所以当单片机接电源后,P1.0〜P1.3引脚此时为高电平,当任一按键按下后,相应的中断输入口直接与地相接,高电平变为低电平,外部0中断立即响应,单片机系统进入中断控制子程序系统,在中断服务子程序中做出相应的执行
指令。
3.4数码管显示模块
图3-4数码管显示电路
七段数码管外形如图3-4所示,即左边的7个引脚跟单片机P0口相接,下边的引脚连接地。
楼层内外分别用一个7段数码管显示,可以共用一个P0口。
3.5按钮控制电路模块
电梯外楼层控制按蛰
■ikI*-I4dliKIIJ4ABI*■
图3-5电梯不同楼层的按钮
如图3-5所示,按键显示电路模块包括电梯内部的按钮和每层楼的上下按钮,这些按钮一端与地相接,一端又与单片机和与门74LS21相接,外部0中断低电
平有效,这样可以实现模拟按键的自如操作。
3.6报警电路
如图3-6所示,电梯内添加手动报警电路,假若电梯发生故障,电梯内的人可自行发出报警信号,向外界求救。
该电路接在单片机的P2.7口。
■■■51■-!
-q」亠亠=亠4.•■■■*■・亠■亠=亠亠亠b>
a亠t二4b-aa、
;
7电梯内报警电路卜:
;
IsHBriH-!
■H_S_J”E.”丄”」””■!
-R■
图3-6电梯不同楼层的按钮
3.7模拟电路图
如下图3-7所示,电路原理图包括状态指示灯模块、内外按键模块、中断电
路模块、单片机的主要外围模块、数码管显示模块和电动机驱动控制模块、报警模块。
P0口的P0.1〜P0.6引脚与数码管模块相接,P2口的P2.4〜P2.7引脚与电动机驱动控制模块相接,P3口的P3.2引脚与中段电路模块相接,P1口的P1.0〜
P1.7引脚、P3.0〜P3.1引脚、P3.3〜P3.5引脚分别与对应的内外按键模块相接,
P3.6〜P3.7引脚与状态指示灯模块相接。
女机:
图3-7模拟电路原理图
4系统的软件设计
从程序功能上来分,本设计的高层软件程序大概可以分为以下几类:
一、运行与决策函数;
二、中断处理函数;
三、置位各状态变量函数;
其中,第一类函数起作用于按键按下的时刻,当有按键按下时,通过74LS21
以中断的方式发送给单片机,此时,单片机即对程序中所用到的各个状态变量进行置位并且点亮相关发光二极管,如置位按键所对应的去向变量等,方便决策函数使用。
第二类函数起作用于电梯到达目标楼层时,这时函数负责把相关发光二极管熄灭,并且及时清除相关状态位,以免影响判别函数作出正确判断。
第三类函数是程序的核心。
它直接负责管理电梯下一次所要到达的楼层,并且要基于短
时间、高效率、人性化等原则。
每当电梯经过一楼层时,此函数即会被调用,然后返回一个变量名为aim的值,它即为下一个电梯要停留的目标楼层值。
4.1单片机中断处理函数
本设计主要用到了单片机的中断系统。
当有按键按下时,利用函数将键值存储起来,并在单片机引脚输出高电平发出中断进行相关处理。
中断的相关设置以及中断处理如图4.1所示。
读取键值
分析键值来源
二极管
置位相应状态
-变量“
图4.1中断处理中的相关操作
4.2电梯判决函数
在电梯经过一个楼层时,就会自动调用该函数。
其流程如图4.2所示
图4-2电梯判决流程图
由图可知,程序中将实际情况分为四种情况来判断:
电梯上行且是去送人、
电梯上行且是去接人、电梯下行且是去送人、电梯下行且是去接人。
电梯各情况下所对应的处理方法,以电梯上行的两种状态为例:
在实际应用中,最简单的情况莫过于电梯当前为闲置状态,然后有一人按下按键呼叫,然后电梯便响应呼叫。
但是,实际情况往往比这复杂的多,往往会有多人呼叫电梯。
那么就必须得为电梯规定好一个特定的优先级规则,以免乱作一团。
若电梯处于上行状态,则在该过程中响应不同顾客的优先级为:
高层呼叫上行顾客>高层呼叫下行顾客>底层呼叫下行顾客>底层呼叫上行顾客。
若上行,且是送人,比如电梯当前在二层,六楼有人呼叫上楼,那么它就要响应这一呼叫,从而把自己的目标楼层锁定为六楼并向上运行,而在六楼呼叫后不久,五楼也有人呼叫上楼(且电梯此刻还未运行到五楼),那么在电梯运行中,每经过一个楼层,会做一次判决,因为五楼也有人呼叫,所以正常情况下,它应该在判决后将目标楼层定位五楼。
而若五楼的顾客按下的是下行键,或者二楼的人按下呼叫键,电梯此时都会暂时不予理会。
在程序中,当五楼有上行键呼叫时,状态变量f5up便会被置位,程序走到判别if((f5up==0)|(present>5))时,里面的内容即为假,则不再继续向下判断,而转向else语句中,里面又有一个判断,当确定此时确实有键按下且电梯当前所处楼层小于五楼时,目标楼层就会被变更到五楼,程序最终返回一个aim值。
由于程序中没有下行键的出现,故下行键的状态是不会影响到该程序的判决的。
此时程序的检测依据两个标准:
第一,由低层像高层开始检查;
第二,对于电梯已经过的楼层和按下下行键所发出的请求,电梯暂时是不予理会的。
这也是很明显的,因为上行送人状态中,低层的优先权大于高层的。
程序就是靠着上面这些if语句的嵌套,来完成这种优先级设置的。
至于上行接人状态时,所坚持的标准是由高层到底层的顺序进行排查,而对于上行键的呼叫暂时不予理会。
下行的状态,恰好与上行相反,在此不再赘述。
4.3电梯运行函数
该函数直接控制电梯的上行与下行、运行与停止。
起关键作用的还是判决函数给它提供的目标楼层值。
其具体的流程如图4.3所示。
它的功能就是判断目标楼层与当前楼层间的关系:
若前者大于后者,则上行;
若前者小于后者,则下行;
若相等,则停止片刻把门打开。
当然,之后它还要做一次判断,因为可能还有其他的楼层需要呼叫,此时程序会自动装入合适的目标楼层值,指挥电梯继续运行下去,直到所有的呼叫都完成为止。
4.5主函数
之所以把主函数放于最后才说,是因为它最为简单,它之上把上面所有的函数按照恰当的顺序排列起来,便于相互调用而已。
首先,各按键按下的信息是通过中断来告知单片机的,故我们要对单片机中断有相应的程序语句加以说明,如开总中断,开外部中断0以及其触发方式等等。
最后就是一个大的死循环了,当电梯运行到这里的时候,就一直执行判决函数,检测有目标楼层有无改变,如果有,就开始调用运行函数,而运行函数没当经过一个楼层又会再次调用判决函数等等。
而当有中断发生时,单片机又可以转而处理相应的中断。
就这样,各子函数间通过主函数形成了一个统一的整体,使得整个系统得以完美运行。
5电路仿真及调试
在画好电路图和将程序导入单片机中后,进行仿真,部分结果如下
图5-1电梯默认停在一楼
解析:
如上图5-1所示,电梯没有其他响应时,默认停在一楼,数码管显示1楼。
此时各内外按键接地的一侧全部为低电平,接单片和74LS21与门一侧全部为高电平,电动机处于停止状态。
图5-2高处5楼呼叫电梯,上行指示灯亮
如上图5-2所示,电梯在1楼,电梯内有上升到5楼的指令,电梯上行,经过四楼且上行指示灯亮,而到一到五楼,五楼按键和指示灯另一侧马上转为高电平,指示灯熄灭,因此截上升到四楼的图。
电的卜
ll■
*■*«
-J"
"
*"
<
>
<
•■**»
»
G_-I……
ri1■i1,baiii■I'
■!
■■■■
\l-
•piD-O0
_1P……
旳二^一
1aiii■a■
■■■・・・・ijiQl*b1…•£
«
ts^r
4F
OF
6F
也檢内楼js空制按til
止
上1
||
2F
3F
尸傅O—o--
:
-
屮0—0■■
上
J=L
■H
1*i5F"
・.■増卜"
«
■
O—―o•
F
r^L^l1
O-■3—=_I---
sJfc.1h:
IL<
1
次《f*#m丄…
「噸删卜楼层控制按吐
:
4
电樣榨二
LT
如上图5-3所示,电梯在接到下行指令要去2楼,经过三楼时,此时6楼外有人呼叫电梯,由于电梯内依然有人,电梯依旧处于下行中,此时电梯内2楼和电梯外6楼指示灯都亮,且电梯下行指示灯也亮,先不理会6楼的向下指令,到达2楼后,直接前往6楼,到达六楼时,六楼指示灯也会立即熄灭。
在这个过程中电动机先反转到2楼,然后正转到6楼。
总结
本文对电梯控制系统这一课程设计做了详细的报告与总结,其中包括硬件部分与软件部分两大模块,而且对其中各个重要的子模块加以了重点详细地说明。
经验证,本设计所设计的电梯完全符合当初的预想,该电梯的调度完全符合高效、省时、人性化的特点。
运行结果完美无误,可以作为真实电梯的调度系统使用。
本毕设的主导思想是:
当有顾客按下按键呼叫电梯时,运用单片机的中断,将该信息传递给单片机,从而单片机置位相关的状态参量,为电梯判决函数的判断提供依据,然后单片机再实时地点亮或者熄灭相关发光二极管。
其中,单片机中断系统是基础,电梯运行函数为主导,电梯目标楼层判决函数为关键与核心。
总的来说,由于精心设计与调试,课设的成品还是很成功的,而且本程序的编写不仅仅是为了应对六层楼的电梯,更多层的电梯也可以实现,比如使用矩阵键盘就可以实现十几层电梯的需求。
当然,如果更高层的电梯,就会受到单片机管脚资源的限制了。
而程序本身的思想本身是可以支持更多层电梯的运行调度的,如果用其他管脚多的处理器的话(如ARM型处理器),则这一设想完全可以实现。
当然,本设计还是有些不足之处的,比如这只是单个电梯在运行,如果某些大楼载客量过多时,当然无法满足需求,故我想以后可以设计出两个轿厢的电梯,这样两者相互补充,可以满足更多要求,使顾客更方便。
当然难度也是有的,它们之间需要共同维护一些变量,都会带来一些未知的麻烦等等,但我想只要去思考,总会可以找到解决之路的。