电梯控制Word下载.docx
《电梯控制Word下载.docx》由会员分享,可在线阅读,更多相关《电梯控制Word下载.docx(27页珍藏版)》请在冰豆网上搜索。
START与STOP分别与单片机的P1.6、P1.7连接,用来控制电梯的起停。
如图2.4.2所示,CD4511的A0-A3分别与P3.4~P3.7相连,R31~R37为限流电阻。
图2.4.1电梯控制台电路
图2.4.2电梯控制台显示电路
2.5楼层检测
在本设计中,光电传感器电路连接图如所2.5示。
D1,T1组成红外发射-接受对管,D1通电后发出红外信号,光槽若未挡住,T1将导通,比较器LM339输出低电平,光槽光线若被挡,T1截止,LM339输出高电平。
利用电梯行至楼层标志处光槽光线被电梯遮挡所带来的电平变化发送到单片机P2.6计数即可实现楼层检测。
图3.12楼层检测电路
2.6电动机驱动
直流电动机驱动电路主要是用来控制直流电动机的转动方向,通过改变直流电动机两端的电压可以控制电动机的转动方向。
电路采用功率三级管8050和8550,以满足电动机启动的瞬间的大电流要求。
如图2.6所示输入端分别与单片机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。
图2.6电动机驱动电路
2.7报警部分
如图3.14所示,此处利用两个常用三极管CS9013,连接成达林顿管结构,此电路与单片机P2.7相连。
其中R为限流电阻,当电梯运行过程中出现故障停止,P2.7输出高电平,蜂鸣器报警,另外用户在电梯中如果遇到紧急情况也可按“HELP”直接报警求救。
图2.7报警电路
2.8电源部分
如图2.8所示
图2.8电源驱动电路
2.9总电路图
如图2.9所示
图2.9总电路图
三软件设计
由于本设计采用单片机实现控制,所以软件设计部份的程序编写用汇编语言来完成。
其中主程序部分主要完成系统的初始化,如中断方式的设置,开中断,存储单元的清零等。
在中断子程序中完成,按键查询等,其它的如数码管的显示,键盘的响应,转动电机的控制,延时等均由相应的子程序来完成。
软件编程是实现多功能、智能化、操作方便的关键。
在本设计中,可以把程序的各部分相互结合起来,达到完成各项设计的功能。
软件设计思想:
采用模块化的分层次设计方法,将软件系统功能由多个实现单一功能的子程序实现。
通过调用不同的子程序,实现了复杂功能控制。
这样便于调试、修改。
主流程图如图3所示.
图3系统主流程图
3.1按键查询部分
在本设计当中,键盘采用独立式按键,按键由P1口和P3.0-P3.3控制,采用定时器T1中断查询按键状态,当有键按下时,即转入相应功能程序。
键盘程序流程图如图3.1所示:
图3.1键盘查询程序流程图
程序清单如下:
定时器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:
MOV A,30H
CPLA
ANLA,#07H;
取得电梯间上升请求
ORL20H,A
MOV A,20H;
取得上升指示灯状态
ANLA,#07H
MOV32H,A
MOVA,30H
ANLA,#38H;
取得电梯间下降请求
RRA
ORL21H,A
MOVA,21H
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
MOV P2,A ;
刷新电梯内目标楼层指示灯TIME12:
MOV A,6EH
RETI
3.2楼层选择按键功能程序
3.2.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楼;
20H——22H:
0=无请求;
1=有请求。
堆栈栈底:
70H单元。
T1中断服务程序中6EH单元保护累加器A的内容。
30H,31H单元分别临时存放P1,P3按键状态。
32H作为单元按键及指示灯处理的中间单元。
R3作为Stop键曾经按下过的记录。
3.2.2电梯模型
电梯上电后,系统一直等待,电梯的起始位置为一楼,等待控制台Start按键按下,数码管显示“1”。
当Start按键按下后,电梯开始向上运动,电动机开始转动,控制台的上升指示灯UP亮。
到达二楼,电梯运行经过楼层检测传感器时,R4计数加1,送到数码管显示“2"
并在二楼停留5s,然后继续上升。
每楼层停留5s,直到四楼后,在四楼停留5s后开始下降,控制台的下降指示灯DOWN亮。
每层楼停留5s,直到一楼。
然后重复上述过程。
(1)如果按下过Stop键,强制电梯直接下降到一楼,然后电梯停止工作。
直到再次按下Start键后重新恢复工作。
(2)中断服务程序每10ms一次检查所有按键状态,并记录在相应存储单元,同时控制相应指示灯。
(3)定时器T0定时100ms,R2作为5s定时的计数器。
T0每中断一次R2加1,当R2=50时,5s计时完成。
;
*********START启动程序***********
START:
MOVTMOD,#11H
MOVIE,#8AH
MOVTH0,#3CH;
定时100ms
MOVTL0,#0B0H
定时10ms
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
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:
*********三楼上升按键选择程序***********
UP3:
MOVP3,#3FH;
到达3楼,数码管显示“3”
JB20H.2,UP31;
是3楼电梯间的上升请求,转UP31
JB22H.2,UP31;
是电梯内目标3楼请求,转UP31
SJMPUP32
UP31:
清3楼电梯间上升请求标志位
清电梯内目标3楼请求标志位
UP32:
MOVA,20H
ORLA,21H
ANLA,#08H;
3楼请求情况
JNZUP33
AJMPDOWN32;
3楼无请求,转3楼下降
UP33:
UP34:
MOVP3,#4FH;
到达4楼,数码管显示“4”
*********四楼下降按键选择程序***********
UP41:
CLR20.H3;
清4楼电梯间下降请求标志位
CLR22H.3;
清电梯内目标4楼请求标志位
UD4:
MOVA,50H
取得<
4楼的请求情况
JNZDOWN4
AJMPUD4
DOWN4:
CLRP0.6;
下降指示灯亮
下降2s
*********三楼下降按键选择程序***********
DOWN3:
JB21H.2,DOWN31;
是3楼电梯间的下降请求,转DOWN31
JB22H.2,DOWN31;
是电梯内目标3楼请求,转DOWN31
SJMPDOWN32
DOWN31:
CLR21H.2;
清3楼电梯间下降请求标志位
CLR22H.2;
SETBP0.6;
下降指示灯灭
MOVR2,#0;
CJNER2,#50,$;
DOWN32:
MOV A,20H
ORL A,22H
ANLA,#03H;
3楼的请求情况
JNZDOWN33
AJMPUP32;
<
3无楼请求,转3楼上升
DOWN33:
ACALLDLY
*********二楼下降按键选择程序***********
DOWN2:
到达2楼,数码管显示“2”
JB21H.1,DOWN21;
是2电梯间的下降请求,转DOWN21
JB22H.1,DOWN2;
是电梯内目标3楼请求,转DOWN21
SJMPDOWN22
DOWN21:
CLR 21H.1;
清2楼电梯间下降请求标志位
MOV R2,#0;
DOWN22:
MOV A,20H
ORLA,21H
ANL A,#02H;
2的请求情况
JNZDOWN23
AJMPUP22;
2楼请求,转2楼上升
DOWN23:
CLR P0.6 ;
ACALL DLY
DOWN1:
到达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停止工作
AJMPS1;
定时器T0中断服务程序:
5s计时
TIME:
MOVTH0,#3CH
INCR2;
R2计数器
3.3电机控制部分
本设计只是对电梯运行状况的简单模拟,对电机驱动这部分要求不是很严格,只需要实现电机的正反转就可以了,所以选择直流电机及常用的H桥式驱动。
如第三章中图3-13所示,当用户提出上升或下降要求时,单片机P2.4输出为低电平,P2.5输出为高电平,电机正转上升,反之电机反转下降。
当到达目标楼层时,P2.4跟P2.5全部清零,则电动机停止。
3.4楼层检测及显示部分
利用光电传感器检测楼层,电梯行至楼层标志处(装有光电传感器)时,光槽光线被遮挡,引其电平变化,通过P2.6发送到单片机中R4计数,可实现楼层检测。
并实时的,通过P3.4-P3.7,送到CD4511译码,用数码管显示当前楼层数。
3.5报警部分
当电梯运行中发生故障停止时,P2.7置1,发出报警,另外还可以通过手动按“HELP”实现报警求救。
3.6总程序流程图
如图3.6所示
3.7总程序清单
程序如下
ORG0000H
AJMPSTART
ORG000BH
AJMPTIME
ORG001BH
AJMPTIME1
CLRP2.4
CLRP2.5;
电动机制动
SETBP0.6
SEBTP2.7;
蜂鸣器报警
CLRP2.7
SEBTP2.5;
电动机正转上升
ACALLDLY;
CLRP2.4
CLR20H.3;
电动机反转下降
CLRP0.6;
ACALLDLY
JB22H.1,DOWN2;
CLR 21H.