1、聊城大学本科毕业论文(设计)本科毕业论文(设计)题目:基于单片机的双电梯控制系统的设计专业代码:071201作者姓名:阮 志 刚学号:2006201283单位:物理科学与信息工程学院指导教师:王宝兴2010年5月26日目 录摘要4关键词:4ABSTRACT5KEYWORDS5引言61。 总体方案设计与论证71。1 双电梯控制模型(五层),示意图如下图所示。71。2 控制器选择71.3 动力选择71.4并联电梯的调度原则82硬件电路设计92.1 整体电路设计92。2 对电机的控制设计92。3报警模块设计102。4传感器模块设计112。4.1重力传感器模块112。4。2 光传感器模块132。5 A
2、/D转换模块设计132。6系统板(二)I/O的分配143。 软件设计153.1整个系统程序设计思路(流程图)153.2 电机控制部分163.2。1轿厢运行部分:163。2。2平层部分163。3 显示及报警部分173.3。1楼层显示173。3.2电梯外部按键显示173。3。3超重报警173。3。4紧急报警18总结18参考文献19附录20谢辞26摘 要本系统采用两片单片机(89C52)作为内外招信号的检测和控制核心。内外招使用按键按下与否带来的电平的改变来控制对应的单片机输入或输出口工作。楼层检测使用光传感器;轿厢负载采用精密压力传感器;速度控制采用易控的步进电机外加微小误差转子;在竖井的侧面固定
3、了轨道以防止轿厢的晃动。基于这些完备而可靠的硬件设计,使用了一套独特的软件算法,实现了并联电梯的调度以及电机在运动和加速经及减速过程的精确控制。关键词:单片机;步进电机;A/D转换;555定时器;施密特触发器;传感器;C语言编程;流程图ABSTRACTInside and outside this system uses two piece of monolithic integrated circuits (89C52) to take the move of signal examination and the control core. The inside and outside mo
4、ve of use pressed key presses down the level change which or not brings to control corresponding the monolithic integrated circuit input or the outlet work。 Floor examination use reflection type infrared sensor; The sedan theater box load uses the precise pressure transmitter; The speed control uses
5、 easily to control stepbysteps the electrical machinery in addition light error rotor; Fixed the track in the shaft side to prevent the sedan theater box rocking. Based on these complete and reliable hardware design, has used a set of unique software algorithm, has realized the electrical machinery
6、in the movement and the acceleration after and the moderating process accuracy control.Keywords:MCS-51。89C52。 Step-bysteps the electrical machinery; A/D transformation; 555 timers; Schmitt trigger; Sensor; C language programming; Flow chart.基于单片机的双电梯控制系统引言电梯作为一种电力拖动的特殊升降设备,是现代生活所不可缺少的,也是应用最为广泛的垂直交通运
7、输工具。早在1889年,美国的奥的斯公司制造的有直流电动机通过蜗杆涡轮减速器带动卷筒卷绕绳索悬挂并升降轿厢的电动升降机,成为现代电梯的鼻祖。由于电梯拖动技术从直流电动机驱动,到交流单速、交流双速电动机驱动,到交流调压调速(ACVV)控制,交流调压调频调速(VVVF)控制,使得电梯控制技术不断成熟,加上电子技术、电子计算机技术、自动控制技术在电梯中的广泛应用,使电梯运行的可靠性、安全性、舒适感、平层精度、运行速度、节能降耗、减少噪声等方面都有了极大改善.在电梯拖动技术发展的同时,由于现代建筑高度的不断增加,电梯的速度也在不断的提升。电梯速度提升的同时,其平稳性和安全性能也需要得到提高,以保障电梯
8、性能的平衡。近年来,这一直是电梯研究的一个热点问题.然而随着当前高楼大厦涌现,虽然单纯依靠提高电梯速度、增加电梯数量,可以在一定程度上提高电梯的运送能力和服务质量,但提高电梯运送能力和服务质量的关键在于电梯群的调度,即根据轿厢内的人数、上下方向的停靠次数、层站召唤以及电梯轿厢所处的位置等情况,合理地选择电梯的最优方案来运送客流,因此电梯群控应运而生。电梯群控系统(简称EGCS)是在建筑物内同时控制多台电梯,实现电梯群的优化调度,有效运送乘客,改善服务质量的系统。1949年由继电器逻辑控制为主组成电梯群控系统首次安装在联合国大厦,大大提高了电梯的运行效率和服务质量.到现在,电梯群控系统已经大量出
9、现在建筑的电梯控制系统中,并且新技术也不断得到创新和应用。1。 总体方案设计与论证1。1 双电梯控制模型(五层),示意图如下图所示。电梯间竖井部分由有机玻璃粘成无上盖板的六面体ABCDEFGH,高度AE为1.2m;电梯桥厢模型J通过滑轮悬挂并由步进电机1牵引,电梯轿厢模型K通过滑轮悬挂并由步进电机2牵引,两个轿厢都可在电梯间竖井模型的空间内上下运动.该电梯间竖井模型每隔20cm自下向上分成5层,其楼层编号如图所示。1。2控制器选择本系统的系统板主要由MCS51系列单片机AT89C52组成。AT89C52有8K字节的片内ROM、256字节的片内RAM、3个16位定时器和六个中断源,其有8K字节的
10、ROM足够本系统中的编程部分。此最小系统除了具有一般单片机最小系统的功能如地址锁存、输入输出控制外,另外它的主要特点是它的输出口部分接有液晶显示,可以数字显示各要输出的状态和数据,系统板的P1,P2,P3口经过三级管和发光二级管相接,可以显示各口线的实时工作状态。1。3 动力选择本设计用步进电机及其驱动器BY2HB03M。首先,步进电机具有良好的可控性:起停迅速,控制简单,避免了惯性带来的误差,在低速情况下仍然具有良好的驱动力;其次,步进电机性价比较高,更安全可靠.故我们采用此步进电机和其配套的驱动器。1。4并联电梯的调度原则A,两台电梯都遵守集选规则,即将呼叫信号先进行登记,对与电梯运行同向
11、的呼叫信号逐一应答,当同向指令和召唤应答完毕后电梯可以自动换向。B,除此以外,电梯并联运行还遵循的相应的调度原则:正常情况下,当电梯使用以后,二号电梯作为忙梯会首先自动上升至第三层待命,一号电梯则作为基站电梯在第一层楼待命。当某层站有门厅呼叫信号时,则“忙梯立即启动并定向运行去接该层站的乘客。C,当两台电梯因轿厢内指令而到达基站后关门待命时,则应按照有效利用的原则,执行相互交替程序段。原先充当忙梯的电梯现在即作为基站电梯来使用,而原先作为基站电梯使用的电梯此时即成为忙梯.不论是一号电梯还是二号电梯均停留在最后停靠的层站待命.D,当忙梯正在上行时,若其上方出现任何方向的门厅呼叫信号或是其下方出现
12、向下的门厅呼叫信号,则均由忙梯在一周行程中去完成,而基站电梯不予应答运行。但是,若在忙梯的下方出现向上的门厅呼叫信号,则由基站电梯来应答信号而发车运行接客。E,当忙梯正在下行时,若其下方出现任何方向的门厅呼叫信号,则均由忙梯在一周行程中去完成,而基站电梯不予应答运行。但是,若在忙梯的上方出现任何向上或是向下的门厅呼叫信号,则由基站电梯来应答信号而发车运行接客。F,当其中一台电梯由于故障而停止运行,另一台电梯则自动承担全部的运行任务,遵循单台电梯的运行规则。G,无论是作为一号电梯还是二号电梯,由于轿内呼叫信号而使电梯定向的,电梯都必须启动运行。电梯停用以后,不论当前处在哪一层,都会自动下降至底层
13、。2硬件电路设计2.1整体电路设计系统板(二)系统板(一)步进电机1步进电机2轿厢1轿厢2出界保护上下楼选择 (外招)显示楼层选择(内招)楼层显示(吊厢内)楼层显示(电梯外)显示轿厢内警报光传感器1重力传感器超重警报当外部人为操作电梯的指令发出,经过A/D转换和系统板二的处理后发出信号到系统板一,系统板一通过指令来控制步进电机的工作从而带动轿厢的运动.由于控制2个步进电机的程序比较复杂,故专门用一片系统板。系统板二则负责按键的控制、LED、数码管的显示、电动机的转动、传感器经A/D转换后输出的信号的处理等等。2。2 对电机的控制设计 由以上论证知,本部分设计采用MCS51-AT89C52单片机
14、来完成,通过I/O口 输出的具有时序的方波作为步进电机的控制信号,信号经过芯片BY2HB03M驱动步进电机。BY2HB03M驱动器具有恒流控制,极低的电源损耗,极高的开关效率,电机运行平稳、低振动、低噪音;驱动器的工作电压:直流电压2440V;驱动电流2。5A.通过BY2HB03M构成步进电机的驱动电路,电路图如下图所示.52的25-28口接BY-2HB03M的14输入端.所示。2.3报警模块设计本方案采用555做成的多谐振荡器产生的方波信号来控制小功率的蜂鸣器工作,电路如图2。3。1所示。工作原理:当电梯未到达指定的楼层或未超重时,555的第4脚一直处于低电平状态,当到达指定楼层或因为负重过
15、大而超重时,555的第四脚将转向高电平,此时振荡器开始工作,产生高频的方波,从而使蜂鸣器发声。电路分析:我们知道,只要将555定时器的Vi1和Vi2接在一起可以接成施密特触发器。我们把施密特触发器的反相输出端经RC积分电路接回到它的输入端,就构成了多谐振荡器。在电路的设计过程中,为了减轻555中的门G4的负载,我们特在电路中将TD与R1接成了一个反相器,它的输出与原输出在高低电平状态上完全相同。将其输出经R2和C组成的积分电路接到施密特触发器的输入端。详具体电路见图2。3。1。由图分析计算可知此多谐振荡器的周期理论上为:故其频率为:2。4传感器模块设计2。4.1重力传感器模块重力传感器部分我们
16、采用典型的压力测量电路,电路如图2.4.1示:电路中,我们选择OP07作为仪用放大电路的放大器件,参数与通用运放NE5532比较如下:共模抑制比(CMRR)噪声电压供电电压OP07D9011010.33V18VUA741CP707V36V由于传感器输出信号是用于A/D采样,所以要求精度较高的放大器,而且输出信号的噪声电压在10mV以内,输出信号峰峰值在05V之间,通过对桥式传感电路的测试,放入500g的砝码,可以得到100mV的电压,放大400倍,即可用于A/D采样.选用OP07D组成两极反相放大器。第一级U10A,U10B,U11A组成仪用放大器.第二级U11B为反相放大器,放大倍数为20倍
17、。C28,C31,C30是输出去耦,AN0为输出端,由于电路中积累了电荷,使得AN0电压变化缓慢,所以在AN0端接入R=10K的电阻作负载。电路中的D5、D6组成限幅器,C7,C8,C2,C1是电源去耦电路.电压放大倍数计算如下:即整个电路的放大倍数约为400倍。2。4.2光传感器模块我们在轿厢底部装置光传感器,用于检测轿厢是否到达指定的位置。光传感器的选择,采用单光束反射取样式光电传感器ST278.ST278特点有:1,采用高发射功率红外光电二极管和高灵敏度光电晶体管组成;2,双光电晶体管,可用于检测被测物的运动方向;3,检测距离可调整范围大,近距离2mm可用;4,采用非接触检测方式。ST2
18、78的参数如下:我们把光电传感器固定在轿厢的底部,并在竖井的对应位置放置反光的薄板。这样当轿厢到达我们定义的位置时,将会有光被反射回来,这样光电传感器将会接收到,并将其转换为低电平,再由电路传至单片机中,从而控制轿厢的制动。2。5 A/D转换模块设计芯片选择:本系统主要有二个A/D转换模块,将传感器得到的信号转换为单片机可以处理的数字信号.本系统的A/D转换我们选用的芯片为MAX191。MAX191是12位低功率的转换器,它的平均转换时间为7.58.125us,即采样速率可以达到120K左右,而我们以前常用的A/D0809的平均转换时间只有90115us,采样速率远小于MAX191。另MAX1
19、91除了具有上述优点外,它自身带有触发脉冲,和状态位,可以进行状态查询,这些都是ADC0809所没有的性能,故我们选择MAX191作为本实验用的A/D转换器.关于此A/D的转换部分,我们仍采用查表法编著程序.转换波形如下:2。6系统板(二)I/O的分配P0.0P0.3 :14层的上呼信号输入.P0。4P0.7 :25层的下呼信号输入.P1。0P1。3 : 接数码显示管,用于楼层显示。P2。0P2。4 : 用于轿厢类的楼层选择信号输入。P2。5 : 开门按钮。P2。6 :关门按钮。P2.7 : 接报警模块.P1。4 : 开门到位信号。P1.5 :关门到位信号。P1。6: 电梯停好信号输入。P1。
20、7 :接重力传感器。P3。2 :光传感器信号输入。P。3。0P3.1 : 用于两机通信.3.软件设计3.1整个系统程序设计思路(流程图)3.2 电机控制部分3。2。1轿厢运行部分:我们知道,任何从静止开始的运动过程都要经过加速和减速的过程。故我们在程序的设计过程中把电机的运行过程分为加速、匀速和减速三个阶段。我们调节方波的频率大小来控制步进电机的转速,调节方波信号的个数来控制步进电机的转过的角度,达到控制轿厢移动高度.整个电机的运行过程大致如图3。1.1所示:3。2.2平层部分平层过程由A、B两个部分控制:A: 程序控制电机的步长a)自学习阶段:1)让电机从楼顶到楼底,再从楼底到楼顶来回运动几
21、个回合,查询出竖井的高度和上下边界,记录入TABLE,方便后面使用。2)让电机再来回运行几个回合,通过光耦查询出每层楼的高度和光耦所在的位置,记录入TABLE.b) 实际控制阶段:在自学习阶段测试完整个竖井的高度和每层楼的高度后,将其数据记录入一个专用的表TABLE中.实际程序执行时,程序自动查阅TABLE,找出所要转动的长度,再计算出步进电机要转动的圈数,然后再经过电机的驱动对电机控制。B: 光传感器接收到的信号经过处理后进行制动我们在电梯内的轿厢底部装置单光束反射取样式光电传感器ST278,对平层进行控制,当轿厢到达后会有反射光使ST278的电平改变。其具体工作原理详见光传感器模块。平层过
22、程工作如图3。1。2所示:3。3 显示及报警部分3。3.1楼层显示楼层显示部分命令由系统板一控制实现,由传感器的感应次数来对显示数字的变化进行控制。另外,此部分加了锁存器,对显示的楼层数据进行锁存,以保证电梯显示指定的楼层.3。3。2电梯外部按键显示由于此部分只要求每层只显示上下标志,所以我们采用一般的发光二级管。发光二级管电路简单,易于控制。此外,由于一楼和五楼只能分别上和下,故我们在一楼和五楼都只安装一个发光二级管.3.3.3超重报警当重力传感器检测到超重时,经系统处理后会发出一个持续的高电平,使图2。3。1中的多谐振荡器工作,最终驱动蜂鸣器工作.3。3。4紧急报警轿厢内设紧急报警按钮,当
23、电梯突然发生故障使轿箱内的人被困时,可以通过按下紧急报警按钮,使紧急报警灯亮同时发出音响信号,由于这个部分要求电梯的任何运行状况下都要有效,为保险起见,我们将此作为一个独立的模块.具体电路见附图,控制过程如下:附加:防冲顶和防撞底我们在轿厢顶快接近竖井顶部和位置和轿厢底快接近竖井底部的位置也同样放置反光片,用于对电梯进行保护防冲顶和防撞底.当轿厢在超过规定的楼层内感应到光后,程序设定其马上制动。具体电路和编著的程序和平层部分相差不大。总结经过近三个月的研究工作,通过在图书馆查阅有关资料,了解了电梯的起源和发展过程,并且加深了对电梯的运行过程、控制系统的认识.熟悉了电梯的各机械装置所起到的作用.
24、并且在所学知识的基础上利用已有的电梯控制系统的设计,尝试了对电梯控制系统的研究.并且,使我将原来所学的知识系统化、理论化、实用化,对如何使用已有知识及获取相关资料方面的能力又有了提高。通过这次设计,我还认识到无论做什么,都需要踏实、勤奋、严谨的工作态度这对我以后的工作产生深远的影响。参考文献1 王宝兴等编单片机原理与应用技术北京大学出版社 20082 吴金戌等编8051 单片机实践与应用清华大学出版社 20013 童诗白等主编,模拟电子技术基础 第三版,高等教育出版社,2006。124 阎石主编,数字电子技术基础,高等教育出版社,20075 陈家盛编电梯结构原理及安装维修机械工业出版社,199
25、06 陈杰 黄鸿著,传感器与检测技术,高等教育出版社,2008。27 张汉杰,王锡仲编现代电梯控制技术哈尔滨工业大学出版社,2001附录呼叫标志变量MB轿厢在所在层变量 DQ 判断是否开门算法 (mbdq1)=dq1判断是否上升算法 (!down)&(dq1(0x10dq1)mb)判断是否下降算法 (!up)&((mbdq1)&(mb!=0))#include ”reg52.h”#define uchar unsigned char#define uint unsigned intsbit P3_0=P30;sbit P3_1=P31;sbit P3_2=P32;sbit P3_4=P34;s
26、bit P3_5=P35;sbit P3_3=P33;sbit P3_7=P37;sbit P0_7=P07;uchar mb=0,up=0,down=0,mbz=1,dq1=1;void delay() uint x,i; for(i=0;i6;i+) for(x=0;x15000;x+) ;void km()mbz = 0 ;P0 = 0x00;delay(); P0 = 0x18; delay(); P0 = 0x3c; delay(); P0 = 0x7e; delay();P0 = 0xff;void gm()mbz= 1 ;P0 = 0xff;delay() P0 = 0x7e;
27、delay(); P0 = 0x3c; delay(); P0 = 0x18; delay(); P0 = 0x00;void ss() dq1 = dq1 1;P3_0 = 1; P3_1 = 0; delay(); delay(); switch (dq1) case 0x01 :P2=0x9f;break; case 0x02 :P2=0x25;break; case 0x04 :P2=0x0d;break; case 0x08 :P2=0x99;break;case 0x10 :P2=0x9b;break; void xj() dq1 = dq1 1; P3_0 = 0; P3_1 =
28、 1; delay(); delay(); switch (dq1) case 0x01 :P2=0x9f;break; case 0x02 :P2=0x25;break; case 0x04 :P2=0x0d;break; case 0x08 :P2=0x99;break;case 0x10 :P2=0x9b;break; void anjian() interrupt 0 uchar jz; jz = P1; if((jz&0x10)=0) mb = mb 0x01; P3_4=0; if((jz0x20)=0) mb = mb | 0x02; P3_5=0; if(jz0x40)=0)
29、mb = mb 0x04; P3_3=0; if(jz0x80)=0) mb = mb 0x08; P3_7=0; if((jz&0x10)=0) mb = mb | 0x10; P3_7=0; if(jz0x01)=0) mb = mb | 0x01; if((jz0x02)=0) mb = mb 0x02; if(jz0x04)=0) mb = mb | 0x04; if(jz&0x08)=0) mb = mb | 0x08;if(jz0x10)=0)mb=mb|0x10void main() P0=0x00; EX0=1; IT0=0; P1=0xff; P3_2=1; EA=1; P2
30、=0x9f; if(mb!=0) while(1) if((mb&dq1)=dq1) delay(); delay(); delay(); km(); delay(); delay(); delay(); gm(); P3_0=1; P3_1=1; switch(dq1) case 0x01:mb=mb&0xfe;P3_4=1;break; case 0x02:mb=mb0xfd;P3_5=1;break; case 0x04:mb=mb&0xfb;P3_3=1;break; case 0x08:mb=mb&0xf7;P3_7=1;break; case0x10:mb=mb&0xef;P0_7
31、=1;break; if(!down)&(dq1((0x10dq1)&mb)) up=1; ss(); switch (dq1) case 0x01:if(mb0xfe)=0) up=0;break; case 0x02:if(mb0xfc)=0) up=0;break; case 0x04:if(mb0xf8)=0) up=0;break; case 0x08:if(mb&0xf0)=0) up=0;break; case0x10:up=0;break; if((!up)&(mbdq1)&(mb!=0)) down=1; xj(); switch (dq1) case 0x01:if((mb
32、0xff)=0)down=0;break; case 0x02:if(mb&0xf7)=0)down=0;break; case 0x04:if((mb0xf3)=0)down=0;break; case 0x08:if(mb0xf1)=0)down=0;break; case 0x10:down=0;break; 谢辞毕业设计师我大学生涯交上的最后一个作业。想借此机会感谢四年以来给我帮助的所有的老师、同学和朋友们.你们的友谊是我人生的财富,是我生命中难以忘怀的一部分。感谢我的指导老师,他对我所选的论题都耐心作出解释。除了指导老师,在此我还要感谢所有大学期间帮助过我们的老师,如果不是他们的谆谆教诲。就没有我们的现在。最后谢谢老师们平时的耐心教导,才能使我能教好地完成这次大作业。鉴于本人所学知识有限,经验不足,又是初次研究这种复杂的设计。在此过程中难免存在一些错误和不足之处,恳请各位老师给予批评和指正。17