本科毕业设计(基于单片机的电梯控制模拟系统设计)

更新时间:2024-05-10 06:51:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

本科毕业设计(论文)

基于单片机的电梯控制模拟系统设计

学院名称: 专 业: 班 级: 学 号: 姓 名: 指导教师姓名: 指导教师职称:

二〇一五年 六 月

江苏理工学院毕业设计(论文)

基于单片机的电梯控制模拟系统设计

摘 要:随着我国人口老龄化的进程,目前的低层建筑对电梯的需求会日趋增加,因

此本文设计一种基于AT89S52的电梯模拟控制系统,本系统成本低、通用灵活,可以大面积推广。本控制系统模拟电梯的基本功能,电梯的内外按键使用户可以选择电梯到达的楼层,数码管可以显示电梯的当前所在楼层,电梯的升降通过发光二极管显示,通过电机的正反转模拟电梯的上下行。本系统主要分为硬件部分和软件部分,硬件部分主要有单片机模块、电梯内外按键模块、电梯状态指示灯模块、楼层显示模块、电机驱动控制模块、报警模块等。软件部分使用C语言编程实现,移植性强,便于修改和调用。

关键词:单片机;电梯控制;步进电机;AT89S52

I

江苏理工学院毕业设计(论文)

Design of Elevator Control System Based on MCU

Abstract: As the process of population aging in china, the elevator needs of the low rise building will be increased. So this article introduces the elevator control system based on AT89S52. This system is general purpose and flexible as well as low cost which can promote to larger areas. This control system simulates the basic functions of the elevator. The users can use the buttons inside and outside to choose which floor to get to. LED Segment displays can show which floor the elevator stops at at present. The LEDs show the rise or descend of the elevator which simulated by the motor rotating in forward or backward direction. This system is mainly divided into hardware part and software part. The hardware part consists of single-chip module, the buttons inside and outside of elevator module, the LED display module, the floor indicator module, electric motor drive module and alarm module. The software part uses C language to program that can solve portability problem. It is easy to modify and invoke the programs

Key words: MCU;Elevator control;Stepper motor;AT89S52

II

江苏理工学院毕业设计(论文)

目 录

前言 ........................................................... 1 第1章 方案设计 ................................................ 2

1.1 设计要求........................................................ 2 1.2 方案的比较和论证................................................. 2

1.2.1 控制核心选择 ............................................................................................................... 2 1.2.2 键盘选择 ..................................................................................................................... 2 1.2.3电动机选择 .................................................................................................................... 3

1.3 系统结构框图..................................................... 3

第2章 硬件电路设计与实现 ...................................... 4

2.1 单片机控制模块................................................... 4

2.1.1主控芯片 ............................................................ 4 2.1.2时钟电路设计 ........................................................ 5 2.1.3复位电路设计 ........................................................ 5

2.2 电源设计......................................................... 6 2.3单片机端口扩展设计 ............................................... 6 2.4电梯内外按键模块设计 ............................................. 8

2.4.1电梯内按键设计 ...................................................... 8 2.4.2电梯外按键设计 ...................................................... 8 2.4.3电梯内按键指示灯设计 ................................................ 9 2.4.4电梯外按键指示灯设计 ............................................... 10

2.5楼层显示模块设计 ................................................ 11

2.5.1当前楼层显示设计 ................................................... 11 2.5.2电梯运行状态指示灯设计 ............................................. 12

2.6 报警模块设计................................................... 13

2.6.1报警按键设计 ....................................................... 13 2.6.2蜂鸣器电路设计 ..................................................... 13

III

江苏理工学院毕业设计(论文)

2.7电机驱动控制模块设计 ............................................ 14

第3章 系统软件设计方案 ...................................... 15

3.1 程序设计思路.................................................... 15 3.2 主程序流程图.................................................... 16 3.3部分子程序流程图 ................................................ 17

3.3.1上下行指示灯子程序 ................................................. 17 3.3.2寻找目标楼层子程序 ................................................. 18

第4章 系统软硬件调试方案 .................................... 19

4.1硬件电路的制作与调试 ................................................. 19

4.1.1硬件电路的制作 ..................................................... 19 4.1.2硬件电路的调试 ..................................................... 19

4.2软件调试 ............................................................. 20

参考文献 ...................................................... 21 致 谢 ........................................................ 22 附录A 整体电路原理图 ......................................... 23 附录B源程序 .................................................. 24

IV

江苏理工学院毕业设计(论文)

前言

1853年的纽约世界博览会,奥的斯向世人展示了其发明的安全升降梯,自此电梯开始在人类社会中得以广泛的运用并深刻影响着人们的生活。中国最早的一部电梯出现在上海,是由美国奥的斯公司于1901年安装的。1932年由美国奥的斯公司安装在天津利顺德酒店的电梯至今还在安全运转着。随着十一届三中全会后改革开放拉开序幕,我国电梯业进入了高速发展的时期。几乎每个城市,我们都可以看到电梯被广泛运用在各行各业。在酒店、办公大厦、购物商场、娱乐场所、仓库以及居民楼都有电梯在默默的辛苦工作。在现代社会中,电梯已成为我们生活不可缺少的一部分[1]。

电梯经过一百六十多年的发展和进步,安全已不再是电梯发展的唯一趋势。目前电梯的发展趋势主要有绿色化、节能化、智能化。绿色理念体现在电梯产品的材料环保性运行的科学性,电梯零部件可回收的利用,从而对环境无污染。节能性主要是控制电梯的能耗,减少电梯系统的惯性和摩擦阻力,合理运用对重和平衡重,而在电梯的运行模式中更注重智能化交通模式,比如如何使电梯运送最大化量的乘客,如何停靠的楼层最少等。智能化是使电梯加入到大厦智能化运行当中,使电梯提供更优质的服务质量,适应不同时间段大厦内部电梯需求的变化。

随着我国人口老龄化的发展,一些建造比较早的小区建筑以及在建的低于七层的建筑对于电梯的需求日益增加,这样的楼层需要简单便宜的电梯控制,可以大面积的推广。而对于目前电梯控制系统,多数是继电器控制或PLC控制,成本较高。基于此本次电梯模拟控制以单片机为核心,结合外围的硬件电路,通过C语言编程控制电梯运行。对于目前低层建筑对电梯的需求而言,单片机系统成本较低、通用灵活、便于控制,能够得以广泛实际的运用。

第 1 页 共 47 页

江苏理工学院毕业设计(论文)

第1章 方案设计

1.1 设计要求

(1)设置电梯的内部和外部按键,电梯内有一到六层的楼层选择按键,每层楼电梯外都有相应的上下行选择按键。电梯的上下方向按用户的需求顺序进行。如果各楼层同时呼叫,则坚持先上行,后下行的原则。

(2)电梯当前所处楼层由数码管显示,电梯的上升和下降时点亮相应的发光二极管以表示。

(3)当长时间无人呼叫电梯时,电梯应停在第一层。当电梯到达呼叫楼层开门时,蜂鸣器鸣叫以提醒。电梯内设有紧急故障报警按键。

(4)电梯实际的上升和下降通过步进电进的正反转模拟。

1.2 方案的比较和论证

1.2.1 控制核心选择

方案一:FPGA。方案二:单片机。

本次系统的控制核心主要在FPGA和单片机中选择。FPGA运行速度快,处理能力强,可以实现很多拓展功能,但硬件复杂,成本较高。单片机设计较简单,C语言编程移植性强,通用灵活,但运行速度相对而言较慢。最终从电梯系统的成本和功能角度考虑,本次设计选择方案二,单片机作为核心控制器即可满足系统的需要。 1.2.2 键盘选择

方案一:矩阵键盘。方案二:独立式按键。

由于系统要求电梯内外都需要按键实现客人达到不同楼层的需要,所需的按键数量较多,虽然独立式按键比较简单,但会占用大量的I/O口。而使用矩阵键盘,可以通过8个I/O控制16个按键,节省I/O口,因此考虑到节省端口的效果,本次设计选择矩阵键盘。

第 2 页 共 47 页

江苏理工学院毕业设计(论文)

1.2.3电动机选择

方案一:三相异步电动机。方案二:四相六线制步进电机。

本次系统使用电机正反转模拟电梯上下行,步进电动机是纯粹的数字控制电动机,它将电脉冲信号转变成角位移,即给一个脉冲,步进电机就转一个角度,适合通过单片机控制。从成本控制和实际效果考虑选择方案二满足要求。

1.3 系统结构框图

基于单片机的电梯控制系统如图1-1所示,其中主要包括单片机模块、电梯内外按键模块、电梯状态指示灯模块、楼层显示模块、电机驱动控制模块、报警模块。单片机模块主控芯片为AT89S52,其为系统的核心模块[2-3],控制系统的输入输出及数据的分析处理;电梯内外按键是指电梯内有一到六层的楼层选择按键,每层楼外都有相应的上下行选择按键,满足不同的需求;电梯状态指示模块通过发光二极管显示当前电梯运行状态,每个内外按键配一只发光二极管,作为指示灯,两只发光二极管作为电梯上升和下降的指示灯,另一只发光二极管作为电梯门的状态指示灯,蜂鸣器在电梯开门时鸣响以提醒。楼层显示就是通过数码管显示电梯当前所处的楼层。电机驱动模块是接收单片机的脉冲信号来控制步进电机的正反转,模拟电梯的上下行。报警模块使用独立式按键,在紧急情况下实现电梯一键停止运行,同时蜂鸣器鸣响。

电梯内外按键模块 控制核心 楼层显示模块 报警模块 电机驱动控制模块

图1-1 基于单片机的电梯控制模拟系统设计框图

电梯状态指示模块

第 3 页 共 47 页

江苏理工学院毕业设计(论文)

第2章 硬件电路设计与实现

2.1 单片机控制模块

2.1.1主控芯片

本次电子系统设计采用AT89S52作为主控芯片。

AT89S52是一种低功耗、高性能CMOS8位微控制器[4],具有8K系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。AT89S52芯片引脚图如图2-1所示。

图2-1 AT89S52芯片引脚图

AT89S52有1000次擦写周期,三级加密程序存储器,32个可编程I/O口线,三个16位定时器/计数器,8个中断源,全双工UART串行通道,低功耗空闲和掉电模式,掉电后中断可唤醒,有看门狗定时器。

单片机中Vcc(40脚)、GND(20脚)为单片机的电源引脚,AT89S52接入+5V电压即可正常工作。XTAL1(19脚)、XTAL2(18脚)[5,6]为外接时钟引脚,XTAL1为片内振荡电路的输入端,XTAL2

为片内振荡电路的输出端。RST(9脚)为单片机的复位引脚。

EA/Vpp(31脚),当EA接高电平时,单片机读取内部程序存储器[3];当EA接低电平时,单片机直接读取外部(ROM)。

第 4 页 共 47 页

江苏理工学院毕业设计(论文)

2.1.2时钟电路设计

时钟电路主要由一个12MHz的晶振和两个22pF电容组成,如图2-2所示,时钟电路一端和单片机的18端口和19端口连接,另一端接地。这种使用晶振配合产生时钟信号的方法称为外部时钟方式。

图2-2 时钟电路

2.1.3复位电路设计

单片机的第9管脚是复位端,当向RST端输入一个短暂的高电平单片机就会复位(维持在2个机器周期以上),复位后单片机就从头开始执行程序。如果单片机执行程序的过程中触发复位,则单片机立即放弃当前操作而被强行从头开始执行程序。AT89S52的复位是由外部的复位电路来实现的。复位电路如图2-3所示,当时钟频率选用12MHz时,C1取10uF,R1取1KΩ,R2取10KΩ,电容C1充放电时间τ=R1*C1=0.1s>2us(2个机器周期)。

[7]

图2-3 复位电路

第 5 页 共 47 页

江苏理工学院毕业设计(论文)

3.2 主程序流程图

开始8255初始化子程序中断初始化子程序显示电梯当前楼层是向下变量=1否是向上变量=1否判断报警子程序是电梯运行并指示灯亮否搜索楼层子程序电梯停止是电梯停靠楼层5s上下行指示灯子程序电梯门指示灯灭,电梯开始运行否电梯逆时针转动子程序电梯顺时针转动子程序

图3-1 主程序流程图

如图3-1所示,系统进行初始化,设置8255A工作方式,对定时器和中断有关的寄存器初始化。当程序中上升的标志变量为1有效时,调用电机顺时针转动子程序,当程序中下降的标准变量为1有效时,调用电机逆时针转动子程序。然后调用子程序判断有无报警需求,当电梯当前运行且指示灯亮时,开始调用扫描楼层子程序和电梯上下行指示灯子程序。当电梯停止时,启动定时器0,等待电梯停留达到5s后关闭定时器0和电梯门指示灯,电梯开始运行。

第 16 页 共 47 页

江苏理工学院毕业设计(论文)

3.3部分子程序流程图

3.3.1上下行指示灯子程序

开始是目标楼层=当前楼层否是目标要求向上否显示向下指示灯显示向上指示灯启动楼层定时器返回

图3-2 上下行指示灯流程图

上下行指示灯子程序流程图如图3-2所示,当目前所处楼层和目标楼层不一致时,如果用户所在楼层比当前楼层高,则显示上行小灯,电机正转标志变量赋值1有效;如果用户所在楼层比当前楼层低,则显示下行小灯,电机反转标志变量赋值1有效。开启楼层定时器,间隔楼层间电梯所需时间定为2.5s。

第 17 页 共 47 页

江苏理工学院毕业设计(论文)

3.3.2寻找目标楼层子程序

开始电梯在六楼否是电梯在一楼否电梯方向向上是电梯方向向下处理向下情况当前楼层有需求是否当前楼向下搜索检测楼上是否有下楼的请求否否当前楼层有需求当前楼向上搜索是是否否某楼层有呼叫或内部有需求否电梯搜索到第六层是是方向向下某楼层有呼叫或内部有需求方向向下,目标一楼某楼层有呼叫或内部有需求方向向上是返回

图3-3 寻找目标楼层流程图

寻找下一个楼层子程序流程图如图3-3所示,当目前电梯处于六层时,调整电梯方向为向下。当目前电梯在一楼时,调整电梯方向为向上,并且从上往下检测楼上是否有下楼的请求。当方向标志位变量为零时,处理向下运行的情况,如当前楼层有请求时,先清除当前请求,然后从当前楼依次向下搜索。当某一楼层外有呼叫或电梯内有需求时,目标标志位移到下一位,否则没有向下的请求时,则调整方向为向上。当某一楼层外有呼叫或电梯内有需求时,目标标志位移到下一位。当向上也没有请求时,电梯准备回到一楼。处理向上运行的情况,如当前楼层有请求时,先清除当前请求,然后从当前楼依次向上搜索。当某一楼层外有呼叫或电梯内有需求时,目标标志位移到下一位,扫描到第六层后,电梯方向改为向下。

第 18 页 共 47 页

江苏理工学院毕业设计(论文)

第4章 系统软硬件调试方案

4.1硬件电路的制作与调试

4.1.1硬件电路的制作

根据仿真好的硬件图按步骤进行硬件电路的焊接 (1)焊接单片机控制模块及其时钟电路和复位电路。 (2)焊接单片机端口扩展模块。 (3)焊接电梯内外按键模块。 (4)焊接楼层显示模块。 (5)焊接报警模块。 (6)焊接电机驱动控制模块。

4.1.2硬件电路的调试

首先检查电路板焊接是否有误,对照电路原理图检查元器件安装是否完整,有无漏焊、错焊的出现,使用万用表检查电路中是否出现虚焊、短路,以免上电后损伤元器件。

用万用表检测单片机的18与19脚的电压,如果在2~3V间说明单片机可以正常工作,我检测的结果为2.3V,满足其要求。

编写简单的数码管驱动程序,以检查8255A与数码管显示电路是否能正常工作。 编写一个按键控制led灯点亮的小程序,以检测电梯内外按键模块、电梯运行指示灯模块、报警按键是否能正常工作。

编写控制电机转动的程序,以检测电机驱动控制模块是否焊接正常。

第 19 页 共 47 页

江苏理工学院毕业设计(论文)

4.2软件调试

软件编程之前需要明确系统的整个工作流程,首先要画一个主程序流程图,方便自己编程的时候整体构思。程序相对较大的情况下,我们常常会编写子程序然后调用。我们需要根据具体功能分模块编写子程序,最后与主程序构成完整程序。

本次电梯模拟系统中,电梯所处的状态是整个程序成功运行的核心保证。在电梯每经过一个楼层时,就会自动调用相应的子程序,能够高效率、短时间、人性化对电梯的下一步运行作出规划,是否停靠本楼层,相应的指示灯如何显示,下一步是上升还是下降。

程序中将实际情况分为四种情况来判断:电梯上升且是送人(即电梯此时位于底层,而高层有人呼叫要上楼)、电梯上升且是去接人(即电梯此时位于底层,而高层有人呼叫要下楼)、电梯下降且是去送人(即电梯此时位于高层,而低层有人呼叫要下楼)、电梯下将且是去接人(即电梯此时位于高层,而低层有人呼叫要上楼)。

以上四种情况会是电梯面临的大部分实际情况。而首先,我们要了解电梯是如何得知此时它是上面四种的哪一种情况的呢?这可以分为两个步骤:第一判断电梯是上行还是下行;第二,判断是去接人还是去送人。然后对电梯下一步作出判断,是否有人在目前规划好的路线上有上下行的需求。最终,给电梯一条合理的运行路线。

第 20 页 共 47 页

江苏理工学院毕业设计(论文)

MOTOR3 = 0;

Delay_xms(3); //转速调节 MOTOR0 = 0; MOTOR1 = 1; MOTOR2 = 0; MOTOR3 = 0;

Delay_xms(3); //转速调节 MOTOR0 = 1; MOTOR1 = 0; MOTOR2 = 0; MOTOR3 = 0;

Delay_xms(3); //转速调节 }

/* 逆时针转动 */ void MotorCCW(void) {

MOTOR0 = 1; MOTOR1 = 0; MOTOR2 = 0; MOTOR3 = 0;

Delay_xms(3); //转速调节 MOTOR0 = 0; MOTOR1 = 1; MOTOR2 = 0; MOTOR3 = 0;

Delay_xms(3); //转速调节 MOTOR0 = 0; MOTOR1 = 0; MOTOR2 = 1; MOTOR3 = 0;

第 26 页 共 47 页

江苏理工学院毕业设计(论文)

Delay_xms(3); //转速调节 MOTOR0 = 0; MOTOR1 = 0; MOTOR2 = 0; MOTOR3 = 1;

Delay_xms(3); //转速调节 }

void MotorStop(void) {

MOTOR0 = 0; MOTOR1 = 0; MOTOR2 = 0; MOTOR3 = 0; }

/* 处理按键 */ void Deal_Key() {

switch (key_value)

{

/* 1 - 6 代表电梯内部按键 */ case 1 : /* 6 楼 */ {

if ( nf != 6 ) { } else {

up_floor[6] = 0;

第 27 页 共 47 页

up_floor[6] = 1;

inner.floor_led[6] = 1; /* 标志 6 楼的小灯为亮 */

江苏理工学院毕业设计(论文)

} case 3 : {

if ( nf != 4 )

第 28 页 共 47 页

}

}

inner.floor_led[6] = 0; /* 标志 6 楼的小灯为亮 */

stop = 0; break;

case 2 : /* 5 楼 */ {

if ( nf != 5 ) { } else { }

inner.floor_led[5] = 0;

inner.floor_led[5] = 1; /* 标志 5 楼的小灯为亮 */

if ( nf == 6 ) { }

else if ( nf >= 1 && nf <= 4 ) {

up_floor[5] = 1; down_floor[5] = 1;

} stop = 0; break;

江苏理工学院毕业设计(论文)

} case 4 : {

if ( nf != 3 ) { } else { }

第 29 页 共 47 页

{ } else { }

if ( nf >= 5 && nf <= 6 ) { }

else if ( nf >= 1 && nf <= 3 ) { } stop = 0; break;

up_floor[4] = 1; down_floor[4] = 1; inner.floor_led[4] = 0;

inner.floor_led[4] = 1; /* 标志 4 楼的小灯为亮 */

inner.floor_led[3] = 1; /* 标志 3 楼的小灯为亮 */

inner.floor_led[3] = 0;

江苏理工学院毕业设计(论文)

} case 5 : {

if ( nf != 2 ) { } else {

inner.floor_led[2] = 0;

inner.floor_led[2] = 1; /* 标志 2 楼的小灯为亮 */ if ( nf >= 4 && nf <= 6 ) { }

else if ( nf >= 1 && nf <= 2 ) { } stop = 0; break;

up_floor[3] = 1; down_floor[3] = 1;

}

if ( nf >= 3 && nf <= 6 ) { }

else if ( nf == 1 ) {

up_floor[2] = 1; down_floor[2] = 1;

} stop = 0;

第 30 页 共 47 页

江苏理工学院毕业设计(论文)

} case 6 : { }

/* 7 为 1 楼的请求 */ case 7 : { }

case 8 : {

if ( nf != 6 )

第 31 页 共 47 页

break;

if ( nf != 1 ) { } else { } stop = 0; break;

down_floor[1] = 0; inner.floor_led[1] = 0; down_floor[1] = 1;

inner.floor_led[1] = 1; /* 标志 1 楼的小灯为亮 */

if ( nf != 1 ) { } break;

floor[1].led_up = 1;

up_floor[1] = 1; /* 1 楼有向上的请求 */

江苏理工学院毕业设计(论文)

{ } break;

floor[6].led_down = 1;

down_floor[6] = 1; /* 6 楼有向下的请求 */

}

/* 9、10 为 2 楼的请求 */ case 9 : { } case 10 : { }

/* 11、12 为 3 楼的请求 */ case 11 : {

if ( nf != 3 || dir == 0 ) {

第 32 页 共 47 页

if ( nf != 2 || dir == 0 ) { } break;

floor[2].led_up = 1; up_floor[2] = 1;

if ( nf != 2 || dir == 1 ) { } break;

floor[2].led_down = 1;

down_floor[2] = 1; /* 2 楼有向下的请求 */

江苏理工学院毕业设计(论文)

} break;

floor[3].led_up = 1;

up_floor[3] = 1; /* 3 楼有向上的请求 */

} case 12 : {

if ( nf != 3 || dir == 1 ) { } break;

floor[3].led_down = 1;

down_floor[3] = 1; /* 3 楼有向下的请求 */

}

/* 13、14 为 4 楼的请求 */ case 13 : {

if ( nf != 4 || dir == 0 ) { } break;

floor[4].led_up = 1;

up_floor[4] = 1; /* 4 楼有向上的请求 */

} case 14 : {

if ( nf != 4 || dir == 1 ) {

floor[4].led_down = 1;

down_floor[4] = 1; /* 4 楼有向下的请求 */

第 33 页 共 47 页

江苏理工学院毕业设计(论文)

}

/* 显示按键对应的小灯 */ void Disp_LED() {

state.reqA |= inner.floor_led[1] << 0 | inner.floor_led[2] << 1;

第 34 页 共 47 页

}

} break;

}

/* 15、16 为 5 楼的请求 */ case 15 : {

if ( nf != 5 || dir == 0 ) {

floor[5].led_up = 1;

up_floor[5] = 1; /* 5 楼有向上的请求 */

} break;

} case 16 : { }

if ( nf != 5 || dir == 1 ) { } break;

floor[5].led_down = 1;

down_floor[5] = 1; /* 5 楼有向下的请求 */

state.reqA = 0;

江苏理工学院毕业设计(论文)

}

/* 寻找下一个要去的楼层 */ void select_next() {

unsigned char i; /* 当前电梯在6楼 */ if ( nf == 6 ) { }

else if ( nf == 1 ) /* 当前电梯在1楼 */ {

dir = 1; /* 电梯方向为向上 */

/* 停在一楼的时候, 从上往下检测楼上是否有下楼的请求 */ for ( i = 6; i >= 2; i-- ) {

if ( down_floor[i] == 1 ) {

up_floor[i] = down_floor[i]; down_floor[i] = 0;

第 35 页 共 47 页

state.reqA |= inner.floor_led[3] << 2 | inner.floor_led[4] << 3; state.reqA |= inner.floor_led[5] << 4 | inner.floor_led[6] << 5; state.reqA |= floor[1].led_up << 6 | floor[6].led_down << 7; PA = ~state.reqA; state.reqB = 0;

state.reqB |= floor[2].led_up << 0 | floor[2].led_down << 1; state.reqB |= floor[3].led_up << 2 | floor[3].led_down << 3; state.reqB |= floor[4].led_up << 4 | floor[4].led_down << 5; state.reqB |= floor[5].led_up << 6 | floor[5].led_down << 7; PB = ~state.reqB;

dir = 0; /* 调整电梯方向为向下 */

本文来源:https://www.bwwdw.com/article/girg.html

Top