基于51单片机的电梯控制设计.docx
- 文档编号:3495430
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:28
- 大小:244.84KB
基于51单片机的电梯控制设计.docx
《基于51单片机的电梯控制设计.docx》由会员分享,可在线阅读,更多相关《基于51单片机的电梯控制设计.docx(28页珍藏版)》请在冰豆网上搜索。
基于51单片机的电梯控制设计
基于51单片机的电梯控制设计
摘要
随着社会的不断发展,楼房越来越高,而电梯则成了高层楼房的必须设备。
电梯从手柄开关操纵电梯、按钮控制电梯发展到了现在的群控电梯,为高层运输做出了不可磨灭的贡献。
单片机在电梯升降控制上的应用主要体现在它的逻辑开关控制功能。
由于单片机具有逻辑运算,计数和定时以及数据输入输出的功能,在电梯升降过程中,各种逻辑开关控制与单片机很好的结合,很好的实现了对升降的控制。
本文主要讨论研究利用Atmel公司的51系列单片机AT89C51和四相步进电机对电梯的升降进行控制,形成电梯控制系统。
关键词:
电梯AT89C51电梯升降控制四相步进电机C语言程序设计
第一章绪论
1.1单片机简介
近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。
在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用。
本系统采用Atmel公司的51系列单片机AT89C51作为主控芯片。
其特征如下:
单片机AT89C518位微控制器8K字节在系统可编程Flash
主要性能
●与MCS-51单片机产品兼容
●8K字节在系统可编程Flash存储器
●1000次擦写周期
●全静态操作:
0Hz~33Hz
●三级加密程序存储器
●32个可编程I/O口线
●三个16位定时器/计数器
●八个中断源
●全双工UART串行通道
●低功耗空闲和掉电模式
●掉电后中断可唤醒
●看门狗定时器
●双数据指针
●掉电标识符
功能特性描述
AT89C51是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89C51为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
AT89C51具有以下标准功能:
8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,AT89C51可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
1.2电梯的定义与简介
一种以电动机为动力的垂直升降机,装有箱状吊舱,用于多层建筑乘人或载运货物。
也有台阶式,踏步板装在履带上连续运行,俗称自动电梯。
服务于规定楼层的固定式升降设备。
它具有一个轿厢,运行在至少两列垂直的或倾斜角小于15°的刚性导轨之间。
轿厢尺寸与结构形式便于乘客出入或装卸货物。
习惯上不论其驱动方式如何,将电梯作为建筑物内垂直交通运输工具的总称。
按额定速度又可分为低速电梯(1米/秒以下)、快速电梯(1~2米/秒)和高速电梯(2米/秒以上)3种。
19世纪中期开始采用液压电梯,至今仍在低层建筑物上应用。
1852年,美国的E.G.奥蒂斯研制出钢丝绳提升的安全升降机。
80年代,驱动装置有进一步改进,如电动机通过蜗杆传动带动缠绕卷筒、采用平衡重等。
19世纪末,采用了摩擦轮传动,大大增加了电梯的提升高度。
现代电梯主要由曳引机(绞车)、导轨、对重装置、安全装置(如限速器、安全钳和缓冲器等)、信号操纵系统、轿厢与厅门等组成。
这些部分分别安装在建筑物井道和机房中。
通常采用钢丝绳摩擦传动,电动机驱动曳引轮使轿厢升降。
电梯要求安全可靠、输送效率高、平层准确和乘坐舒适等。
电梯的基本参数主要有额定载重量、可乘人数、额定速度、轿厢外廓尺寸和井道型式等。
第二章硬件设计
2.1系统整体方案论证
按照题目要求,电梯控制系统由中心控制模块、用户呼叫信号输入模块、电机控制与驱动模块、位置检测模块和显示等组成。
方案一采用CPLD器件作为控制中心,对整个系统的运作进行统一管理,但这种方案要求平时有很多的知识积累和较强的专业水平,实现起来比较困难且器件较贵,不符合经济要求,而且升降电机的控制,运行时间的测量、显示等还需要单片机的配合。
方案二采用单片机为核心,扩展相关的接口电路,实现全系统的控制,由于单片机技术目前较为成熟,自身资源丰富,硬件设计简单,并且我们在设计中尽量用软件代替硬件,可以节约成本,提高可靠性。
另外单片机最小系统价格便宜,符合经济性要求。
同时电梯采用步进电机进行驱动,因为步进电机可经直接接收数字信号,用单片机控制非常方便,定位准确,调速简单。
比较适合此控制系统的要求。
2.2单片机最小系统
图2-2单片机的最小系统
单片机最小系统电路如图2-2所示,单片机采用ATMEL公司的AT89C51,晶体振荡器选12MHz,C1、C2为30p瓷片电容,与晶体振荡器构成时钟电路。
电容C3按键RESET构成上电复位和手动复位电路。
2.3电梯及系统电路
如下图所示,此部分电路是提供给处于各个楼层电梯外的用户发出上下楼请求。
按键与单片机的P1.0-P1.5分别相连,指示灯通过P0.0-P0.5来控制。
其中R52、R55、R56、R59、R60和R62是上拉电阻,其作用是保证按键未按下时,端口P1.0~P1.5为高电位。
当按键按下时,端口P1.0~P1.5通过按键接地,使得P1.0~P1.5变为低电平。
电容C51~C56的作用是消除抖动和抗干扰。
各楼层电梯间的升降选择按键均与单片机P1口连接,上升按键与P1口的P1.0—P1.2连接,下降按键与P1口的P1.3~P1.5连接。
即由P1口可以读到电梯间升、降按键的状态。
每个上升、下降按键均有一只发光二极管作为指示灯与之配合,发光二极管与PO口的P0.0~P0.5连接。
每个发光二极管通过一只阻值为470Ω的限流电阻接电源(VCC),这样流经发光二极管的电流约为7.5mA,有适当的亮度,同时单片机的端口在不加驱动的情况如下图所示,此部分电路是提供给处于各个楼层电梯外的用户发出上下楼请求。
图2-3一层按键电路图
22-4二层按键电路
图2-4三层按键电路
图2-5四层按键电路
电梯内电路如图2-7所示,提供给电梯内的乘客用户使用,四个目标楼层选择按键F1、F2、F3、F4和4个与之配合的发光二极管作为指示灯,即FS1、FS2、FS3和FS4。
按键与P3口的P3.0~P3.3连接,指示灯与P2口的P2.0~P2.3相连。
上拉电阻R11~R14和电容C41~C14的作用同上。
图2-7电梯内电路
控制台电路如下图所示。
发光二极管Power是电源指示灯,用以显示供电是否正常。
采用共阴极数码管来显示当前楼层,采用CD4511作译码器,LE接VCC,译码器处于锁存状态。
经R31~R37(阻值为470Ω)对数码管限流。
‘UP、DOWN’两只发光管用来显示电梯运行的方向。
START与STOP分别与单片机的P1.6、P1.7连接,用来控制电梯的起停。
如图3-9所示,CD4511的A0-A3分别与P3.4-P3.7相连,R31-R37为限流电阻。
图2-8电梯控制台电路
图2-9电梯控制台显示电路
2.4楼层检测
在本设计当中,光电传感器电路连接图如下所示:
图2-10楼层检测电路
如图所示,D1,T1组成红外发射-接受对管,D1通电后发出红外信号,光槽若未挡住,T1将导通,比较器LM339输出低电平,光槽光线若被挡,T1截止,LM339输出高电平。
利用电梯行至楼层标志处光槽光线被电梯遮挡所带来的电平变化发送到单片机P2.6计数即可实现楼层检测。
直流电动机驱动电路主要是用来控制直流电动机的转动方向,通过改变直流电动机两端的电压可以控制电动机的转动方向。
电路采用功率三级管8050和8550,以满足电动机启动的瞬间的大电流要求。
如图所示输入端分别与单片机P2.4和P2.5相连,电梯上升时,P2.4输出为低电平,P2.5输出为高电平,晶体管功率放大器VT3,VT2导通,VT1,VT4截止。
VT3,VT2与直流电动机一起形成回路,驱动电机正转。
电梯下降时,P2.4输出为高电平,P2.5输出为低电平,晶体管功率放大器VT3,VT2截止,VT1,VT4导通,VT1,VT4与直流电动机形成回路,驱动电动机反转。
4个二极管起到保护晶体管的作用。
功率晶体管采用TP521光耦器驱动,将控制部分与电动机驱动部分隔离。
光耦器的电源为+5V,H型驱动电路中的晶体管功率放大器VT3,VT1的发射极所加的电源为12V。
第三章软件设计
由于本设计采用单片机实现控制,所以软件设计部份的程序编写用汇编语言来完成。
其中主程序部分主要完成系统的初始化,如中断方式的设置,开中断,存储单元的清零等。
在中断子程序中完成,按键查询等,其它的如数码管的显示,键盘的响应,转动电机的控制,延时等均由相应的子程序来完成。
软件编程是实现多功能、智能化、操作方便的关键。
在本设计中,可以把程序的各部分相互结合起来,达到完成各项设计的功能。
软件设计思想:
采用模块化的分层次设计方法,将软件系统功能由多个实现单一功能的子程序实现。
通过调用不同的子程序,实现了复杂功能控制。
这样便于调试、修改。
主流程图如图3-1所示.
图3-1系统主流程图
在本设计当中,键盘采用独立式按键,按键由P1口和P3.0-P3.3控制,采用定时器T1中断查询按键状态,当有键按下时,即转入相应功能程序。
键盘程序流程图如图4-2所示:
图3-2键盘查询程序流程图
程序清单如下:
定时器T1中断服务程序:
按键状态检查
TIME1:
MOVTH1,#0ECH;每10s检查一次按键
MOVTL1,#78H
MOV6EH,A
MOV30H,P1;读入所有按键状态
MOV31H,P3
JBP1.6,TIME11;若Stop键未按下,则正常运行
MOVR3,#0FFH;Stop键按下,标志R3置非0数
MOV20H,#0;清除全部电梯间上升请求
MOV21H,#0;清除全部电梯间下降请求
MOV 22H,#0;清除全部电梯内目标楼层请求
MOV30H,#0FFH;修改读入的按键状态,使之为
MOV31H,#0FEH;电梯内目标为一楼
CLRTR1;并关闭T1,不再读取按键
TIME11:
MOVA,30H
CPLA
ANLA,#07H;取得电梯间上升请求
ORL20H,A
MOV A,20H;取得上升指示灯状态
CPLA
ANLA,#07H
MOV32H,A
MOVA,30H
CPLA
ANLA,#38H;取得电梯间下降请求
RRA
RRA
ORL21H,A
MOVA,21H
CPLA
ANLA,#0EH
RL A
RLA
ORL 32H,A
MOVA,P0
ANLA,#0C0H
ORLA,32H
MOVP0,A;刷新上升、下降请求指示灯
MOVA,31H
ANLA,#0FH ;取得电梯内目标楼层请求
ORL 22H,A
MOVA,22H
CPLA
MOV P2,A ;刷新电梯内目标楼层指示灯
TIME12:
MOV A,6EH
RETI
3.1楼层选择按键功能程序
(1)存储单元分配:
20H——电梯间上升请求:
20H.0——1楼;20H.1——2楼;20H.2——3楼,20H.3——4楼
21H——电梯间下降请求:
21H.0——1楼;21H.1——2楼;21H.2——3楼;21H.3——4楼。
22H——H电梯内目标楼层请求:
22H.0——1楼;22H.1——2楼;22H.2——3楼;21H.3——4楼。
20H——22H:
0=无请求;1=有请求。
堆栈栈底:
70H单元。
T1中断服务程序中6EH单元保护累加器A的内容。
30H,31H单元分别临时存放P1,P3按键状态。
32H作为单元按键及指示灯处理的中间单元。
R3作为Stop键曾经按下过的记录。
(2)如图4-3电梯模型上电后,系统一直等待,电梯的起始位置为一楼,等待控制台Start按键按下,数码管显示“1”。
当Start按键按下后,电梯开始向上运动,电动机开始转动,控制台的上升指示灯UP亮。
到达二楼,电梯运行经过楼层检测传感器时,R4计数加1,送到数码管显示“2"并在二楼停留5s,然后继续上升。
每楼层停留5s,直到四楼后,在四楼停留5s后开始下降,控制台的下降指示灯DOWN亮。
每层楼停留5s,直到一楼。
然后重复上述过程。
(3)如果按下过Stop键,强制电梯直接下降到一楼,然后电梯停止工作。
直到再次按下Start键后重新恢复工作。
(4)中断服务程序每10ms一次检查所有按键状态,并记录在相应存储单元,同时控制相应指示灯。
(5)定时器T0定时100ms,R2作为5s定时的计数器。
T0每中断一次R2加1,当R2=50时,5s计时完成。
程序清单如下:
;*********START启动程序***********
START:
MOVTMOD,#11H
MOVIE,#8AH
MOVTH0,#3CH;定时100ms
MOVTL0,#0B0H
MOVTH1,#0ECH;定时10ms
MOVTL1,#78H
SETBTR0
MOVSP,#6FH
;*********STOP停止程序***********
STOP:
CLRP0.6
CLRP0.7
MOVR3,#0
MOVP3,#1FH;数码管显示“1”
JBP1.7,$;等待开始工作指令
SETBP0.6
SETBTR1;启动T1
;10ms一次读取按键
;*********一楼上升按键选择程序***********
UP1:
MOVA,20H;目前在1楼
ORLA,21H;取得>1楼请求情况
ORLA,22H
ANLA,#0EH
JZUP1;无请求,则等待
CLRP0.7;上升指示灯亮
ACALLDLY;上升2s
;*********二楼上升按键选择程序***********
UP2:
MOVP3,#2FH;到达2楼,数码管显示“2”
JB20H.1,UP21;是2楼电梯间的上升请求,转UP21
JB22H.1,UP21;是电梯内目标2楼请求,转UP21
SJMPUP22
UP21:
CLR20H.1;清二楼电梯间上升请求标志位
CLR22H.1;清电梯内目标2楼请求标志位
SETBP0.7;上升指示灯灭
MOVR2,#0;5s定时开始
CJNER2,#50,$;等待5s延时
UP22:
MOVA,20H
ORLA,21H
ORLA,22H
ANLA,#0CH;取得>2楼请求情况
JNZUP23
AJMPDOWN22;>2楼无请求,转2楼下降
UP23:
CLRP0.7;上升指示灯亮
ACALLDLY;上升2s
;*********三楼上升按键选择程序***********
UP3:
MOVP3,#3FH;到达3楼,数码管显示“3”
JB20H.2,UP31;是3楼电梯间的上升请求,转UP31
JB22H.2,UP31;是电梯内目标3楼请求,转UP31
SJMPUP32
UP31:
CLR20H.1;清3楼电梯间上升请求标志位
CLR22H.1;清电梯内目标3楼请求标志位
SETBP0.7;上升指示灯灭
MOVR2,#0;5s定时开始
CJNER2,#50,$;等待5s延时
UP32:
MOVA,20H
ORLA,21H
ORLA,22H
ANLA,#08H;取得>3楼请求情况
JNZUP33
AJMPDOWN32;>3楼无请求,转3楼下降
UP33:
CLRP0.7;上升指示灯亮
ACALLDLY;上升2s
UP34:
MOVP3,#4FH;到达4楼,数码管显示“4”
;*********四楼下降按键选择程序***********
UP41:
CLR20.H3;清4楼电梯间下降请求标志位
CLR22H.3;清电梯内目标4楼请求标志位
SETBP0.7;上升指示灯灭
MOVR2,#0;5s定时开始
CJNER2,#50,$;等待5s延时
UD4:
MOVA,50H
ORLA,21H
ORLA,22H
ANLA,#07H;取得<4楼的请求情况
JNZDOWN4
AJMPUD4
DOWN4:
CLRP0.6;下降指示灯亮
ACALLDLY;下降2s
;*********三楼下降按键选择程序***********
DOWN3:
MOVP3,#3FH;到达3楼,数码管显示“3”
JB21H.2,DOWN31;是3楼电梯间的下降请求DOWN31
JB22H.2,DOWN31;是电梯内目标3楼请求,转DOWN31
SJMPDOWN32
DOWN31:
CLR21H.2;清3楼电梯间下降请求标志位
CLR22H.2;清电梯内目标3楼请求标志位
SETBP0.6;下降指示灯灭
MOVR2,#0;5s定时开始
CJNER2,#50,$;等待5s延时
DOWN32:
MOV A,20H
ORLA,21H
ORL A,22H
ANLA,#03H;取得<3楼的请求情况
JNZDOWN33
AJMPUP32;<3无楼请求,转3楼上升
DOWN33:
CLRP0.6;下降指示灯亮
ACALLDLY
;*********二楼下降按键选择程序***********
DOWN2:
MOVP3,#2FH;到达2楼,数码管显示“2”
JB21H.1,DOWN21;是2电梯间的下降请求,转DOWN21
JB22H.1,DOWN2;是电梯内目标3楼请求,转DOWN21
SJMPDOWN22
DOWN21:
CLR 21H.1;清2楼电梯间下降请求标志位
CLR22H.1;清电梯内目标2楼请求标志位
SETBP0.6;下降指示灯灭
MOV R2,#0;5s定时开始
CJNER2,#50,$;等待5s延时
DOWN22:
MOV A,20H
ORLA,21H
ORLA,22H
ANL A,#02H;取得<2的请求情况
JNZDOWN23
AJMPUP22;<2楼请求,转2楼上升
DOWN23:
CLR P0.6 ;下降指示灯亮
ACALL DLY
DOWN1:
MOVP3,#1FH;到达1,数码管显示“1”
DOWN11:
CLR21H.0;清电梯内目标1请求标志位
SETBP0.6 ;下降指示灯灭
MOVR2,#0 ;0s定时开始
CJNE R2,#50,$ ;5s延时
CJNER3,#0,DOWN12 ;Stop键是否按下过
AJMPUP1
DOWN12:
CLR P0.6 ;若Stop键按下过,转S1停止工作
CLRP0.7
AJMPS1;定时器T0中断服务程序:
5s计时
TIME:
MOVTH0,#3CH
MOVTL0,#0B0H
INCR2;R2计数器
RETI
3.2电机控制与楼层检测部分
本设计只是对电梯运行状况的简单模拟,对电机驱动这部分要求不是很严格,只需要实现电机的正反转就可以了,所以选择直流电机及常用的H桥式驱动。
如第三章中图3-13所示,当用户提出上升或下降要求时,单片机P2.4输出为低电平,P2.5输出为高电平,电机正转上升,反之电机反转下降。
当到达目标楼层时,P2.4跟P2.5全部清零,则电动机停止。
程序详见附录主程序清单。
利用光电传感器检测楼层,电梯行至楼层标志处(装有光电传感器)时,光槽光线被遮挡,引其电平变化,通过P2.6发送到单片机中R4计数,实现楼层检测。
并实时的,通过P3.4-P3.7,送到CD4511译码,用数码管显示当前楼层数。
程序详见主程序清单。
第四章系统调试
4.1软件调试
在软件调试中,我采用伟福仿真软件进行程序调试。
首先分别调试各个功能程序,再对整个程序进行调试,以便修改错误码。
具体的调试方法如下:
首先在伟福软件模拟器中选择V5/L仿真器,选择AT89C51作为CPU,将晶振频率设置为12MHZ,然后新建一个.ASM文件,将各个功能程序录入,先检查程序有无明显错误,保存过后编译程序,当有错误时就根据提示加以修改,当各个功能程序编译完成后,再对整个程序全速执行,查看程序有哪些地方出现错误,对应错误提示逐步调整程序,纠正错误直到程序正确无误,调试结束后有图5-1的软件调试界面如下:
4.2硬件调试
硬件仿真使用的是ProteusPRO6.7SP3,Proteus是目前最好的模拟单片机外围器件的工具,它可以仿真51系列、AVR,PIC等常用的MCU及其外围电路(如LCD,RAM,ROM,键盘,马达,LED,AD/DA,部分SPI器件,部分IIC器件...)。
首先利用Proteus中的器件库完成电路的连接,如下图所示:
--
然后右键AT89C51再左键,出现“EditComponet”,在ProgramFile中单击出现文件浏览对话框,找到89C51_C.hex文件,单击确定.完成添加文件,在ClockFrequency中把频率改为12MHz,单击OK退出。
单击仿真按钮,开始仿真,按下Start,系统开始工作,通过按F1—F4及各楼层按键,电梯都能完成请求,基本实现了电梯运行的模拟。
第五章设计总结
本文介绍了基于单片机的电梯控制系统,硬件部分主要由单片机最小系统模块、电梯间电路模块、电梯内电路模块、楼层检测模块、电动机驱动模块、报警模块等7部分组成。
该系统采用单片机(89C51)作为控制核心,内外招使用按键按下与否而引起的电平的改变,作为用户请求信息发送到单片机,单片机控制电动机转动,楼层检测使用光电传感器,电动机控制部分采用直流电动机及H桥式驱动,根据楼层检测结果,单片机控制电梯停在目标楼层,基本达到设计目的。
软件部分使用汇编语言,利用中断方式来检测用户请求的按键信息,根据电梯运行到相应楼层时光电传感器产生电平变化,送到单片机计数来确定楼层数,并送到数码管进行显示。
硬件设计简单可靠,结合软件,基本实现了四层电梯运行模拟。
谢辞
本课题的大量研究工作都是在张老师的精心指导下完成的,在我整个研究学业过程中,包括这篇论文的完成,都受到张老师大量的帮助.从论文的选题,研制计划的安排到论文的具体的内容,张老师都给矛了悉心的指导.值此论文完成之际,谨向张老师致以最崇高的谢意!
再一次向
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 51 单片机 电梯 控制 设计