基于单片机电梯控制系统设计课程设计实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计实验报告
课程名称:课程设计
实验项目:基于单片机的电梯控制系统设计
专业班级:通信1103班
姓名:季义强学号: 110404312
实验时间: 19周-20周指导教师:唐云雷
课程设计题目:基于单片机的电梯控制系统设计
目录
一、摘要 (2)
二、绪论 (2)
三、设计目的任务及要求 (4)
四、总设计方案及系统框图 (4)
五、设计原理 (5)
六、各单元模块设计 (10)
1单片机最小系统模块 (10)
2 开关控制模块 (11)
3电机驱动模块 (12)
4显示模块 (14)
5报警模块 (16)
6电路总图 (17)
七、心得体会 (18)
八、参考文献 (18)
附录一 (19)
一、摘要
交流双速电梯是采用继电接触器控制的最普通.最大量的一种电梯控制类型.这
种控制使用继电器数量大,保护联锁触点多.电气线路复杂.维护工作量大,可靠性
差.随着微电子技术的发展,采用无触点控制来代替有触点控制已势在必行.本文基于
单片机89SC51来控制各部分电路,采用单片机构成控制系统,可大大降低成本,而
且做成专用控制系统,程序被固化,加强了性,提高了可靠性。

二、绪论
电梯的概述
电梯进入人们的生活已经150年了。

一个半世纪的风风雨雨,翻天覆地的是历史
的变迁,永恒不变的是电梯提升人类生活质量的承诺。

1854年,在纽约水晶宫举行的世界博览会上,美国人伊莱沙·格雷夫斯·奥的
斯第一次向世人展示了他的发明。

他站在装满货物的升降梯平台上,命令助手将平台
拉升到观众都能看得到的高度,然后发出信号,令助手用利斧砍断了升降梯的提拉缆
绳。

令人惊讶的是,升降梯并没有坠毁,而是牢牢地固定在半空中——奥的斯先生发
明的升降梯安全装置发挥了作用。

“一切安全,先生们。

”站在升降梯平台上的奥的斯
先生向周围观看的人们挥手致意。

谁也不会想到,这就是人类历史上第一部安全升降
梯。

生活在继续,科技在发展,电梯也在进步。

150年来,电梯的材质由黑白到彩
色,样式由直式到斜式,在操纵控制方面更是步步出新——手柄开关操纵、按钮控制、
信号控制、集选控制、人机对话等等,多台电梯还出现了并联控制,智能群控;双层
轿厢电梯展示出节省井道空间,提升运输能力的优势;变速式自动人行道扶梯的出现大大节省了行人的时间;不同外形——扇形、三角形、半菱形、半圆形、整圆形的观光电梯则使身处其中的乘客的视线不再封闭。

如今,以美国奥的斯公司为代表的世界各大著名电梯公司各展风姿,仍在继续进行电梯新品的研发,并不断完善维修和保养服务系统。

调频门控、智能远程监控、主机节能、控制柜低噪音耐用、复合钢带环保——一款款集纳了人类在机械、电子、光学等领域最新科研成果的新型电梯竞相问世,冷冰冰的建筑因此散射出人性的光辉,人们的生活因此变得更加美好。

中国最早的一部电梯出现在,是由美国奥的斯公司于1901年安装的。

1932年由美国奥的斯公司安装在利酒店的电梯至今还在安全运转着。

1951年,党中央提出要在天安门安装一台由我国自行制造的电梯,从庆生电机厂荣接此任,四个月后不辱使命,顺利地完成了任务。

十一届三中全会后,沐浴着改革开放的春风,我国电梯业进入了高速发展的时期。

如今,在我国任何一个城市,电梯都在被广泛应用着。

电梯给人们的生活带来了便利,也为我国现代化建设的加速发展提供了强大的保障。

电梯是高层建筑中安全、可靠、垂直上下的运载工具,对改善劳动条件、减轻劳动强度起到很大的作用。

电梯的应用围很广,可用于宾馆、饭店、办公大楼、商场、娱乐场所、仓库以及居民住宅大楼等。

在现代社会中,电梯已成为人类必不可少的垂直运输交通工具。

人类社会已经进入信息化时代,信息社会的发展离不开电子产品的进步。

单片机的出现使人类实现利用编程来代替复杂的硬件搭建电路,它靠程序运行,并且可以修改。

通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的。

一个不是很复杂的功能要是用美国50年代开发的74系列,或者60年代的CD4000系列这些纯硬件来搞定的话,电路一定是一块大PCB板!但是如果要是用美国70年代成功投放市场的系列单片机,结果就会有天壤之别!只因为单片机的通过你编写的程序可以实现高智能,
高效率,以及高可靠性![1]
单片机应用的主要领域非常广,智能化家用电器、办公自动化设备商业营销设备、工业自动化控制、智能化仪表、智能化通信产品、汽车电子产品、航空航天系统和国防军事、尖端武器等领域。

单片机应用的意义不仅在于它的广阔围及所带来的经济效益,更重要的意义在于,单片机的应用从根本上改变了控制系统传统的设计思想和设计方法。

以前采用硬件电路实现的大部分控制功能,正在用单片机通过软件方法来实现。

以前自动控制中的PID 调节,现在可以用单片机实现具有智能化的数字计算控制、模糊控制和自适应控制。

这种以软件取代硬件并能提高系统性能的控制技术称为微控技术。

随着单片机应用的推广,微控制技术将不断发展完善。

三、设计目的任务及要求
(1)学会单片机的使用来实现电梯系统的智能控制。

(2)熟练C语言编程在单片机中的应用。

(4)掌握电梯控制系统的主要功能与单片机实现的方法。

(5)设计出一个电梯控制系统。

(6)用C语言编程在单片机中应用。

四、总体设计方案
1、设计思路:本次设计的总思想是,用开关来做单片机的控制端来做为输入信号说明人在那一层,采用传感器来说明楼层的实时位置,用单片机来控制三相交流电机的正反转来运行电梯的上下,用LED来显示方向及位置。

2、总体设计框图
五、设计原理
以交流接触器控制的三相电机主拖动系统。

外呼选系统,外部呼叫信号和指示以及轿厢选项层和指示系统。

延时开关门电路。

轿厢状态与外部指示系统,随时显示电梯所在位置。

操作控制系统。

楼层指示采用LED七段数码管,清晰直观,节省能源。

所有的显示运行状态及指示灯均采用发光二及管,大大节约了电能,整个控制箱电源功率在100W以下。

在控制器上可方便的调节延时开关门和换速电阻切换时间,便于安装和现场调试。

电梯的运行的基本过程是:由外部的呼叫信号给出呼叫,控制系统判断电梯目前所处的位置并与呼叫楼层进行对照,同方向还是反方向,若反方向,则改变方向到呼叫层.若同方向直接运行到呼叫层。

为了便于了解控制近况,本系统中设计了运行状态指示电路。

电梯运行的主程序图
正常运行程序段框图
驱动输出接口电路主要是电机主拖动及开关门电机控制.主引电机使用三相380V交流供电,其电机功率约为22KW左右.因此所使用的交流接触器触点电流较大,尤其在刚启动时电流更大,触头引起的火花必然会对单片机的工作产生影响.为了防止这个影响的产生,在输出电路中考虑了两级隔离措施.首先用光电耦合器输出将逻辑TTL电平转换为直流5V电平的驱动电路,从而接通交流电动机工作。

A/D转换芯片0809具有八个模拟量输入通道,每个通道对应的数据围为0-255,将这些数据作为软件中延时时间的常数,通过电位器改变A/D转换数值,达到改变时间的目的.在安装和维护过程中,对停车平层的舒适感,主要靠从快车到三次慢车的延时时间来实现,对启动的舒适感也主要靠调整从三次慢车到快车的延迟时间.这个调整随着电梯运行状态的变化经常运行。

另外,还有延时关门时间,要调节到适当长度才符合实际情况。

这个电路方便可靠地实现了上述调整,节约了电梯高度时间!
本电梯采用了延时电路来控制电梯的开关门,下面是关门控制程序段框图:
关门程序控制程序段框图
控制系统软件在硬件支持下运行,指挥系统进行相应的控制.软件均采用MCS —51汇编语言写成,约点存3.5K左右.由于电梯控制系统实时采集数据量少,没有在系统中扩展随机RAM,只使用了8031片RAM来安排呼叫信号的记录,判断输出状态.并安排有足够的堆栈来满足中断及程序调用的需要。

在程序中设计了停电后重新上电运行时,有自动返回基站功能。

图5 单片机的主要功能和各引脚功能
主要特性:
◆与MCS-51 兼容◆4K字节可编程闪烁存储器
◆全静态工作:0Hz-24Hz ◆三级程序存储器锁定
◆ 128*8位部RAM ◆32可编程I/O线
◆两个16位定时器/计数器◆ 5个中断源
◆可编程串行通道◆低功耗的闲置和掉电模式
◆片振荡器和时钟电路◆寿命:1000写/擦循环◆数据保留时间:10年
管脚说明:
VCC:供电电压。

GND:接地。

P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。

当P1口的管脚第一次写1时,被定义为高阻输入。

P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。

在FIASH编程时,P0 口作为原码输入口,当FIASH 进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:P1口是一个部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。

P1口管脚写入1后,被部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于部上拉的缘故。

在FLASH编程和校验时,P1口作为第八位地址接收。

P2口:P2口为一个部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被部上拉电阻拉高,且作为输入。

并因此作为输入时,P2口的管脚被外部拉低,将输出电流。

这是由于部上拉的缘故。

P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。

在给出地址“1”时,它利用部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的容。

P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:P3口管脚是8个带部上拉电阻的双向I/O口,可接收输出4个TTL门电流。

当P3口写入“1”后,它们被部上拉为高电平,并用作输入。

作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

P3口也可作为AT89C51的一些特殊功能口,如下表所示:
口管脚备选功能
P3.0 RXD(串行输入口)
P3.1 TXD(串行输出口)
P3.2 /INT0(外部中断0)
P3.3 /INT1(外部中断1)
P3.4 T0(记时器0外部输入)
P3.5 T1(记时器1外部输入)
P3.6 /WR(外部数据存储器写选通)
P3.7 /RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。

RST:复位输入。

当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。

在FLASH编程期间,此引脚用于输入编程脉冲。

在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。

因此它可用作对外部输出的脉冲或用于定时目的。

然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE 脉冲。

如想禁止ALE的输出可在SFR8EH地址上置0。

此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。

另外,该引脚被略微拉高。

如果微处理器在外部执行状态ALE禁止,置位无效。

/PSEN:外部程序存储器的选通信号。

在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。

但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有部程序存储器。

注意加密方式1时,/EA将部锁定为RESET;当/EA端保持高电平时,此间部程序存储器。

在FLASH编程期间,此引脚也用于施加12V编程电
源(VPP)。

XTAL1:反向振荡放大器的输入及部时钟工作电路的输入。

XTAL2:来自反向振荡器的输出。

六、各单元模块设计
1、单片机最小系统模块
图3.2.1单片机最小系统
单片机最小系统包括主芯片,复位电路和晶振脉冲产生电路。

X1为12MHz晶振,与30Pf电容并联,产生1us的脉冲信号作为单片机的“心脏”部分。

复位电路是开关与10uf电容并联组成的上电自动复位电路,在RST端为高电平时单片机清零,也
即开关按下会产生清零信号。

RP1为排阻,作为P0端的上拉电阻,接此原因是P0端口是由OC门组成。

U1为数据输入端口,通过电脑编程能将程序通过此接口烧录入单片机中。

2 、开关控制模块
图3.2.2 开关控制模块
开关控制模块采用4*4矩阵形式电路可以减少单片机接口的使用。

写键盘代码时运用的是逐行扫描判断键值按下与否。

编程如下:
uchar key_scan(void)
{ uchar scode,recode;
P1=0xf0;
if((P1&0xf0)!=0xf0)
{ delay1(2);
if((P1&0xf0)!=0xf0)//有键按下
{ scode=0xfe;//辅助变量,设定行
while((scode&0x10)!=0)
{ P1=scode;//将某一行设为0,从而判断是否为该行
if((P1&0xf0)!=0xf0)
{ recode=P1&0xf0;//列码
scode=scode&0xf0;//行码
return(scode+recode);//按键坐标}
else scode=(scode<<1)|0x01;//下一行判断
}}}
return 0;}
3、电机驱动模块
图3.2.3电机驱动模块
电机驱动采用L297环形计数分配器和L298大功率步进电机驱动器完成。

本次设
计采用步进电机,目的是方便智能控制,可实现调速功能。

电机使用的是二相步进电机,由于仅用来实验,所以电机采用5V电源供电即可,实际中必须使用大电压来供电方能带动重物(人等)。

环形分配器L297引脚图如下图:
L297引脚图
L297功能介绍:
SYNC为斩波器输出端,多个L297一起用时用此端口连接在一起共用一组时钟振荡;HPME端为集电极开路输出端;
A~D为四相输入端;
INIH1,INIH2为控制A~D相驱动,此引脚为低电平时A~D相禁止输入;
ENABLE端为使能输入端,低电平阻止电机驱动;
RESET为复位端;
HALF/FULL为半角全角控制端,高电平时选择半步输入;
CLOCK为时钟输入端,控制电机速度;
CW/CCW为方向控制端;
OSC为斩波器频率输入端;
SEN1和SEN2为电流检测端。

大功率步进电机驱动器L298引脚图如下图
L298引脚图L298功能介绍:
SENA和SENB为电流检测端;
IN1~IN4为A~D相输入控制端;
ENA和ENB为使能输入端,低电平禁止输入;OUT1~OUT4为输出端。

4、显示模块
图3.2.4显示模块
由于点阵和双位数码管耗电流较大,不能直接连接单片机IO口驱动其正常工作,所以加上锁存器74HC573和显示译码器CD4511驱动。

其中利用CD4511模块的另一作用是节省接口,因为本次设计外围电路较多,单片机接口不够,使用此驱动是必要的。

锁存器74HC573引脚图如图
74HC573引脚图
74HC573功能介绍:
D0~D7为输入端;
Q0~Q7为输出端;
OEN为输出使能端,当其输入为高电平时输出关断,输入为低电平时输出正常;DEN为输出输入使能端,当此端口为高电平时,输出跟随D0~D7,当此端口为低电平时,输出保持上一时刻的状态;
显示译码器CD4511引脚图如图
CD4511引脚图
CD4511功能介绍:
A~D为输入端;
QA~QG为输出端;
LT为试灯输入端,当此端口为低电平时,无论其他的状态如何,始终输出数字8,作为判断数码管的好坏端口使用;
LE/STB为灭灯输入端,当此端口输入低电平时数码管灭,输入高电平时数码管正常显示;
BI为动态消零信号输入端,当此端口输入低电平时且LT为高电平时,当输入0000时,输出0熄;
点阵的使用介绍:
点阵是8*8位的,相当于由64个LED组成,8个阳极控制端口,8个阴极控制端口;数码管的使用介绍:
数码管是采用两位共阴极数码管,通过对a~g的编码来显示数字。

5、报警模块
图3.2.5报警模块
本设计采用8550三极管驱动蜂鸣器。

当PO口送高电平时,三极管处于截止状态,三极管Vce电压约为VCC,蜂鸣器只有很少电流流过,没法驱动其发声。

当PO口送低电平时,三极管处于饱和导通状态,三极管Vce约为0.3V,蜂鸣器有较大电流流
过,能驱动其报警发声。

6、电路总图
电路总图
七、心得体会
通过这次单片机的实习,我感觉我的理论知识和实践能力都有了很显著的提高,比如说再写程序的时候遇到了一些问题,或者是说写的程序运行不了,我就会查找大量的资料来解决这些问题,用一些更合适的指令来实现课题要求的功能.从写程序到焊接电路,到调试电路,我付出了很大的努力.同时自己也更深入的了解到了单片机的无穷魅力,我现在对我们的专业更加的热爱了,因为我在实践中能体会到很大的乐趣,虽然有的时候可能遇到了一些困难,但是我最终解决了,或者是说在同学的帮助下解决了,我也会感觉到成功给我带来的喜悦,这种喜悦是其他人难以想象的到的,但是,我知道我不能骄傲,我知道我在专业知识上的掌握还是远远不够的,我还要更加努力的去学习,充实自己的理论知识,提高自己了实践能力。

八、参考文献
[1] 叶挺秀.应用电子学[M].:大学,1994
[2] 朱承高.电工及电子技术手册[M].:高等教育,1990
[3] 阎石.数字电子技术基础(第三版)[M].:高等教育,1989
[4] 廖常初.现场总线概述[J].电工技术,1999.6
[5] 朝青单片机原理及接口技术[M] .:航空航天大学,1994.11
[6] 广弟单片机基础[M]。

.:航空航天大学,1997.7
[7] 巧媛单片机原理及应用[M]..理工大学.1996.5
[8] 光东.单片微型计算机原理与接口技术[M].:华中科技大学。

[9] 德全.mcs51系列单片机接口电路与应用程序实例[M].:航空航天大学
[10] 广弟.单片机基础[M].航空航天, 2001.7
[11] 楼然苗.51 系列单片机设计实例[Mv航空航天, 2003.3
[12] 唐俊翟.单片机原理与应用[M].冶金工业, 2003.9
[13] 瑞新.单片机原理及应用教程[M].机械工业, 2003.7
[14] 吴国经.单片机应用技术[M].中国电力, 2004.1
[15] 何立民.单片机应用系统设计[M].航空航天, 1995
[16] 凯.MCS-51 单片机综合系统及其设计开发[M].科学,1996附录附录1:源程序
ORG 0000H
AJMP START
ORG 000BH
AJMP TIME
ORG 001BH
AJMP TIME1
;*********START启动程序***********
START: MOV TMOD,#11H
MOV IE,#8AH
MOV TH0,#3CH ;定时100ms
MOV TL0,#0B0H
MOV TH1,#0ECH ;定时10ms
MOV TL1,#78H
SETB TR0
MOV SP,#6FH ;
*********STOP停止程序*********** S
TOP: CLR P0.6
CLR P0.7
MOV R3,#0
MOV P3,#1FH ;数码管显示“1”
P1.7,$ ;等待开始工作指令
CLR P2.4
CLR P2.5 ;电动机制动
SETB P0.6
SEBT P2.7 ;蜂鸣器报警
SETB TR1 ;启动T1
;10ms一次读取按键 ;
*********一楼上升按键选择程序***********
UP1: CLR P2.7
MOV A,20H ;目前在1楼
ORL A,21H ;取得>1楼请求情况
ORL A,22H
ANL A,#0EH
JZ UP1 ;无请求,则等待
CLR P0.7 ;上升指示灯亮
CLR P2.4
SEBT P2.5 ;电动机正转上升
ACALL DLY ;上升2s
;*********二楼上升按键选择程序***********
UP2: MOV P3,#2FH ;到达2楼,数码管显示“2”
20H.1,UP21 ;是2楼电梯间的上升请求,转UP21
22H.1,UP21 ;是电梯目标2楼请求,转UP21
SJMP UP22
UP21: CLR 20H.1 ;清二楼电梯间上升请求标志位
CLR 22H.1 ;清电梯目标2楼请求标志位
SETB P0.7 ;上升指示灯灭
MOV R2,#0 ;5s定时开始
CJNE R2,#50,$ ;等待5s延时
UP22: MOV A,20H
ORL A,21H
ORL A,22H
ANL A,#0CH ;取得>2楼请求情况
JNZ UP23
AJMP DOWN22 ;>2楼无请求,转2楼下降
UP23: CLR P0.7 ;上升指示灯亮
CLR P2.4
SEBT P2.5 ;电动机正转上升
ACALL DLY ;上升2s ;
*********三楼上升按键选择程序***********
UP3: MOV P3,#3FH ;到达3楼,数码管显示“3”
20H.2,UP31 ;是3楼电梯间的上升请求,转UP31 22H.2,UP31 ;是电梯目标3楼请求,转UP31
SJMP UP32
UP31: CLR 20H.1 ;清3楼电梯间上升请求标志位
CLR 22H.1 ;清电梯目标3楼请求标志位
SETB P0.7 ;上升指示灯灭
MOV R2,#0 ;5s定时开始
CJNE R2,#50,$ ;等待5s延时 UP32:
MOV A,20H
ORL A,21H
ORL A,22H
ANL A,#08H ;取得>3楼请求情况
JNZ UP33
AJMP DOWN32 ;>3楼无请求,转3楼下降
UP33: CLR P0.7 ;上升指示灯亮
ACALL DLY ;上升2s
UP34: MOV P3,#4FH ;到达4楼,数码管显示“4” ; *********四楼下降按键选择程序***********
UP41: CLR 20.H3 ;清4楼电梯间下降请求标志位CLR 22H.3 ;清电梯目标4楼请求标志位
SETB P0.7 ;上升指示灯灭
MOV R2,#0 ;5s定时开始
CJNE R2,#50,$ ;等待5s延时
UD4: MOV A,50H
ORL A,21H
ORL A,22H
ANL A,#07H ;取得<4楼的请求情况
JNZ DOWN4
AJMP UD4
DOWN4: CLR P0.6 ;下降指示灯亮
CLR P2.4
SEBT P2.5 ;电动机反转下降
ACALL DLY ;下降2s ;
*********三楼下降按键选择程序***********
DOWN3: MOV P3,#3FH ;到达3楼,数码管显示“3”
21H.2,DOWN31 ;是3楼电梯间的下降请求,转DOWN31 22H.2,DOWN31 ;是电梯目标3楼请求,转DOWN31
S JMP DOWN32
DOWN31:CLR 21H.2 ;清3楼电梯间下降请求标志位CLR 22H.2 ;清电梯目标3楼请求标志位
SETB P0.6 ;下降指示灯灭
MOV R2,#0 ;5s定时开始
CJNE R2,#50,$ ;等待5s延时
DOWN32:MOV A,20H
ORL A,21H
ORL A,22H
ANL A,#03H ;取得<3楼的请求情况
JNZ DOWN33
AJMP UP32 ;<3无楼请求,转3楼上升
DOWN33:CLR P0.6 ;下降指示灯亮
CLR P2.4
SEBT P2.5 ;电动机反转下降
ACALL DLY
;*********二楼下降按键选择程序***********
DOWN2: MOV P3,#2FH ;到达2楼,数码管显示“2”
21H.1,DOWN21 ;是2电梯间的下降请求,转DOWN21
22H.1,DOWN2 ;是电梯目标3楼请求,转DOWN21
SJMP DOWN22
DOWN21:CLR 21H.1 ;清2楼电梯间下降请求标志位
CLR 22H.1 ;清电梯目标2楼请求标志位
SETB P0.6 ;下降指示灯灭
MOV R2,#0 ;5s定时开始
CJNE R2,#50,$ ;等待5s延时
DOWN22:MOV A,20H
ORL A,21H
ORL A,22H
ANL A,#02H ;取得<2的请求情况
JNZ DOWN23
AJMP UP22 ;<2楼请求,转2楼上升
DOWN23:CLR P0.6 ;下降指示灯亮
CLR P2.4
SEBT P2.5 ;电动机反转下降
ACALL DLY
DOWN1: MOV P3,#1FH ;到达1,数码管显示“1”
DOWN11:CLR 21H.0 ;清电梯目标1请求标志位
SETB P0.6 ;下降指示灯灭
MOV R2,#0 ;0 s定时开始
CJNE R2,#50,$ ;5s延时
CJNE R3,#0,DOWN12 ;Stop键是否按下过
AJMP UP1
DOWN12:CLR P0.6 ;若Stop键按下过,转S1停止工作
CLR P0.7
AJMP S1
;定时器T0中断服务程序:5s计时
TIME: MOV TH0,#3CH
MOV TL0,#0B0H
INC R2 ;R2计数器
RETI
;********* T1中断服务程序:按键状态检查***********
TIME1: MOV TH1,#0ECH ;每10s检查一次按键
MOV TL1,#78H
MOV 6EH,A
MOV 30H,P1 ;读入所有按键状态
MOV 31H,P3
P1.6,TIME11 ;若Stop键未按下,则正常运行
MOV R3,#0FFH ;Stop键按下,标志R3置非0数
MOV 20H,#0 ;清除全部电梯间上升请求
MOV 21H,#0 ;清除全部电梯间下降请求
MOV 22H,#0 ;清除全部电梯目标楼层请求
MOV 30H,#0FFH ;修改读入的按键状态,使之为
MOV 31H,#0FEH ;电梯目标为一楼
CLR TR1 ;并关闭T1,不再读取按键
TIME11: MOV A,30H
CPL A
ANL A,#07H ;取得电梯间上升请求ORL 20H,A
MOV A,20H ;取得上升指示灯状态
CPL A
ANL A,#07H
MOV 32H,A
MOV A,30H
CPL A
ANL A,#38H ;取得电梯间下降请求
RR A
RR A
ORL 21H,A
MOV A,21H
CPL A
ANL A,#0EH
RL A
RL A
ORL 32H,A
MOV A,P0
ANL A,#0C0H
ORL A,32H
MOV P0,A ;刷新上升、下降请求指示灯 MOV A,31H
ANL A,#0FH ;取得电梯目标楼层请求
ORL 22H,A
MOV A,22H
CPL A
MOV P2,A ;刷新电梯目标楼层指示灯
TIME12: MOV A,6EH
RETI
;********* 2s延时程序***********
DLY: MOV R5,#20
DLY1: MOV R6,#100
DLY2: MOV R7,#250
DJNZ R7,$
DJNZ R6,DLY2 DJNZ R5,DLY1
RET
END。

相关文档
最新文档