电梯控制系统设计兰州交通大学Word文档下载推荐.docx
- 文档编号:16699991
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:19
- 大小:60.96KB
电梯控制系统设计兰州交通大学Word文档下载推荐.docx
《电梯控制系统设计兰州交通大学Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《电梯控制系统设计兰州交通大学Word文档下载推荐.docx(19页珍藏版)》请在冰豆网上搜索。
首先,对实际的电梯系统进行模拟,一般情况下,一个电梯应该具备相关按键、显示二极管、数码管等,由于这是一个调度模块,故没有设计具体的轿厢等机械部分。
由于其有诸多按键和显示环节,而单片机的I/O口管脚资源实在有限,故需要I/O口扩展,用以管理二极管;
同时要有专门的按键控制芯片,从而便于按键管理。
同时,如果每个选层按钮都采用独立的按键设置,可以很大程度上简化扫描按键程序,采集信号也容易得多,但是由于单片机接口有限,模拟电梯自动控制系统所需按键较多,如此会有接口不足的问题,所以本设计采用4×
4按键矩阵开关电路作为外呼内选呼叫控制。
出于同样问题,显示楼层电路采用数码管从串口输出。
为了更接近实际的电梯控制系统,设计中还添加电梯外上下行请求显示,可用五个发光二极管表示目的请求按键是否按下,有则亮,无则灭。
2设计方案及原理
2.1设计方案
本次设计的基本思想是采用AT89C52单片机作为核心,利用其丰富的I/O接口与外围电路配合进行控制。
采用延时函数来控制电梯的位置校验,采用数码管静态显示来实时显示电梯所在楼层。
采用行列式矩阵键盘矩阵作为外呼内选电路,由于是5层楼,故选用4×
4矩阵键盘。
当电梯到达目的楼层时电机停止,此时即可进、出乘客,乘客进入电梯之后可选择去哪一层,然后电梯根据乘客的选择判断去哪一层,继续运行。
通过单片机控制电梯在上升过程中只响应上升呼叫,下降过程中只响应下降呼叫。
电梯的正常运行通过单片机的控制来实现。
2.2设计原理
本设计主要由6大部分电路组成:
键盘电路、单片机最小系统电路、楼层显示电路、电机驱动显示电路、目的楼层显示电路、警报电路。
其中单片机最小系统主要由复位电路组成。
电路复位后楼层显示数字1表示电梯此时在一楼,显示电路数码管显示,电梯楼层位置是由延时电路控制的,延时电路包括1秒延时和2秒延时,每层之间通过2秒延时控制即每延时2秒表示电梯走了一层,1秒延时是控制电梯的开门时间,1秒延时后电梯关门继续运行。
电梯状态是通过两个发光管显示的,上行灯亮表示电梯在向上运行,下行灯亮表示电梯在向下运行。
键盘电路采用4×
4键盘矩阵共16个按键分,其中8个按键是各层楼外呼按键,5个按键是电梯内部的选择键。
电梯的正常工作是通过对单片机写入程序控制的。
系统组成框图如图1所示。
图1系统组成框图
3硬件设计
用AT89C52单片机作为核心,利用其丰富的I/O接口与外围电路配合进行控制。
在本设计中,最小系统应该包括:
单片机、晶振电路、复位电路等。
晶振电路由C1与C2和晶振组成,晶振是给单片机提供工作信号脉冲的。
它的速率就是单片机的工作速率,简单地说,没有晶振,就没有时钟周期,没有时钟周期,就无法执行程序代码,单片机就无法工作。
并在晶振的两引脚处接入两个10pF-50pF的瓷片电容接地用来削减偕波对电路的稳定性的影响。
复位电路采取的为手动按键复位电路,由电容C3,电阻R1、R2和开关RESET组成,当单片机的复位引脚RESET出现2个机器周期以上的高电平时,单片机就执行复位操作。
如果RST持续为高电平,单片机就处于循环复位状态。
每次复位后,单片机的程序都会从第一条开始从新执行。
根据上述分析,设计出基于A89C52单片机电梯控制的电路仿真图如附录2所示。
4软件设计
4.1软件分析
软件设计是智能化系统进行数据采集、处理、控制等工作的基础。
系统的软件设计直接影响整个系统的运转和硬件作用的发挥。
本设计由于采用键盘矩阵来代替外呼内选按钮,而电梯的运行方向是根据这些呼叫按键和选择按键来决定的,所以单片机要不断的扫描键盘来获取各层呼叫状态。
从而来控制电梯的运行。
故键盘矩阵扫描是本系统软件设计的重要一部分,另外要把键盘扫描到的各层的按键信息存储起来,然后和电梯的运行状态比较,判断是否响应各层呼叫(电梯只响应同方向呼叫),最后就是楼层显示部分和警报部分了。
整个软件设计包括以下几部分:
(1)初始化程序使数码管显示“1”表示电梯处在一楼。
(2)主程序主要包括:
①判断乘客进入电梯后选择去哪一层,根据判断情况来控制电梯运行;
②电梯在运行过程中要不断的扫描键盘,从而来判断各楼层有无呼叫请求;
③电梯在运行过程中只响应同方向的呼叫请求;
④实时显示电梯所在位置及运行状态(上行/下行);
⑤开关门有一定的延时来保证乘客走出/进入电梯。
4.2系统流程图
软件流程图如图2所示。
图2软件流程图
4.3实验源程序
判断乘客进入电梯后选择去哪一层,根据判断情况来控制电梯运行,电梯在运行过程中要不断的扫描键盘,从而来判断各楼层有无呼叫请求,电梯在运行过程中只响应同方向的呼叫请求,实时显示电梯所在位置及运行状态(上行/下行),开关门有一定的延时来保证乘客走出/进入电梯。
程序如附录1。
5系统仿真及实际调试
系统仿真调试的过程中,根据操作电梯的实际情况进行了测试,数码管作出与测试一致的显示。
测试条件:
电梯位于1楼,进入三人,其中一人要到3楼,另两人到4楼。
电梯运行后,3楼和4楼有人向上呼叫,3楼有人向下呼叫到1楼。
在该测试部分,外部按钮和内部按钮都有涉及,能充分的考验单片机对所有按钮的区分和响应。
测试结果如表1所示。
表1综合测试
停止楼层电梯方向显示
3上3楼内部和向上呼叫注销,内部4楼呼叫
4上4楼向上呼叫注销
3下3楼向下呼叫注销,内部1楼呼叫
1下内部1楼呼叫注销
测试结论:
系统具有方向优先、距离优先的功能,基本模拟了实际电梯运行,完成题目设计指标。
6总结
本次课程设计对电梯控制系统这一设计做了详细的报告与总结,其中包括硬件部分与软件部分两大模块,而且对其中各个重要的子模块加以了重点详细地说明。
总的来说,本程序的编写不仅仅是为了应对五层楼的电梯,而且更多层的电梯也可以实现,如果对单片机的其他I/O再进行扩展的话,可以实现十几层电梯的需求。
当然,如果更高层的电梯,就会受到单片机管脚资源的限制了。
而程序本身的思想本身是可以支持更多层电梯的运行调度的,如果用其他管脚多的处理器的话(如ARM型处理器),则这一设想完全可以实现。
参考文献
[1]陈宏希.51单片机应用技术(C语言版)[M].兰州石化职业技术学院出版社,2011.10.
[2]李学礼.基于Proteus的8051单片机实例教程[M].北京:
电子工业出版社,2008.03.
[3]王思明,张金敏,苟军年等.单片机原理及应用系统设计[M].北京:
科学出版社,2012.05.
附录1
实验源程序
#include<
reg52.h>
#defineucharunsignedchar
#defineuintunsignedint
sbitalarm1=P1^0;
sbitalarm2=P0^0;
sbitfz=P1^1;
sbitzz=P1^2;
sbitL1=P1^3;
sbitL2=P1^4;
sbitL3=P1^5;
sbitL4=P1^6;
sbitL5=P1^7;
ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x00};
uintshang[6]={0,0,0,0,0,0};
uintxia[6]={0,0,0,0,0,0};
uintnei[6]={0,0,0,0,0,0};
uintnum,temp,flag=0,lc=1,i,n;
//函数声明语句
voiddelay(uintz);
voiddelay1();
voiddelay2();
voidkeyscan();
voiddisplay(uintaa);
voidinit();
voidzhishideng();
//主函数
voidmain()
{
init();
while
(1)
{
keyscan();
zhishideng();
if(flag==0)
{
zz=fz=0;
shang[lc]=0;
xia[lc]=0;
nei[lc]=0;
n=lc;
for(i=n+1;
i<
=5;
i++)
{
keyscan();
zhishideng();
if(shang[i]==1||xia[i]==1||nei[i]==1)
{
flag=1;
break;
}
}
for(i=n-1;
i>
=1;
i--)
zhishideng();
flag=2;
}
}
if(flag==1)
{
keyscan();
zz=1;
fz=0;
delay5();
lc++;
display(lc);
if(shang[lc]==1||nei[lc]==1)
shang[lc]=0;
nei[lc]=0;
fz=0;
zz=0;
delay3();
}
flag=0;
break;
if(flag==0||lc>
=5)
n=lc;
if(shang[n]==0&
&
nei[n]==0)
{
fz=0;
zz=0;
delay3();
}
xia[n]=0;
for(i=n-1;
keyscan();
zhishideng();
if(shang[i]==1||xia[i]==1||nei[i]==1)
{
flag=2;
break;
}
}
}
if(flag==2)
zz=0;
fz=1;
lc--;
if(xia[lc]==1||nei[lc]==1)
xia[lc]=0;
n=lc;
}
if(flag==0||lc<
=1)
if(xia[n]==0&
shang[n]=0;
for(i=n+1;
flag=1;
}
}
}
}
//端口初始化函数。
voidinit()
P0=0xff;
P1=0xf8;
P2=table[lc];
P3=0x00;
//二极管点亮熄灭函数。
voidzhishideng()
{
L1=!
nei[1];
L2=!
nei[2];
L3=!
nei[3];
L4=!
nei[4];
L5=!
nei[5];
//数码管显示函数。
voiddisplay(uintaa)
P2=table[aa];
//延迟二秒函数。
voiddelay2()
uintx,y;
for(x=120;
x>
0;
x--)
for(y=110;
y>
y--)
{
keyscan();
zhishideng();
}
//延迟一秒函数。
voiddelay1()
for(x=80;
//ms级延函数。
voiddelay(uintz)
for(x=z;
y--);
//键盘扫描函数。
voidkeyscan()
num=0;
P3=0xfe;
temp=P3;
temp=temp&
0xf0;
while(temp!
=0xf0)
delay(5);
temp=P3;
temp=temp&
while(temp!
temp=P3;
switch(temp)
case0xee:
num=1;
break;
case0xde:
num=2;
case0xbe:
num=3;
case0x7e:
num=4;
temp=P3;
temp=temp&
P3=0xfd;
case0xed:
num=5;
case0xdd:
num=6;
case0xbd:
num=7;
case0x7d:
num=8;
P3=0xfb;
case0xeb:
num=9;
case0xdb:
num=10;
case0xbb:
num=11;
case0x7b:
num=12;
P3=0xf7;
case0xe7:
num=13;
case0xd7:
num=14;
case0xb7:
num=15;
case0x77:
num=16;
switch(num)
case1:
shang[1]=1;
break;
case2:
shang[2]=1;
case3:
shang[3]=1;
case4:
shang[4]=1;
case5:
xia[2]=1;
case6:
xia[3]=1;
case7:
xia[4]=1;
case8:
xia[5]=1;
case9:
nei[1]=1;
case10:
nei[2]=1;
case11:
nei[3]=1;
case12:
nei[4]=1;
case13:
nei[5]=1;
case14:
case15:
case16:
alarm1=1;
alarm2=0;
zz=fz=0;
while
(1);
附录2
电梯控制系统仿真图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电梯 控制系统 设计 兰州 交通大学