电梯控制程序源代码带流程图功能分解源代码_第1页
电梯控制程序源代码带流程图功能分解源代码_第2页
电梯控制程序源代码带流程图功能分解源代码_第3页
电梯控制程序源代码带流程图功能分解源代码_第4页
电梯控制程序源代码带流程图功能分解源代码_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、综合电子创新训练研究报告研究题目: CTS1600-1 控制技术综合试验专业名称:学生姓名:指导教师:院系名称:xxxx年 xx月 xx日xxxxxxxxxx1 /95目录第一章绪论 1 HYPERLINK l _TOC_250078 课题背景与目的1 HYPERLINK l _TOC_250077 课题研究方法1 HYPERLINK l _TOC_250076 第二章电梯模型硬件设备2 HYPERLINK l _TOC_250075 实验单片机模型与接口定义2 HYPERLINK l _TOC_250074 实验用单片机2 HYPERLINK l _TOC_250073 单片机接口定义3 H

2、YPERLINK l _TOC_250072 I/O 接口 DATA 控制命令表4 HYPERLINK l _TOC_250071 电梯控制命令说明6 HYPERLINK l _TOC_250070 实验用电梯模型8 HYPERLINK l _TOC_250069 第三章与电梯模型相关的实验程序10 HYPERLINK l _TOC_250068 数码管连续显示10 HYPERLINK l _TOC_250067 程序流程图10 HYPERLINK l _TOC_250066 功能简介10 HYPERLINK l _TOC_250065 功能实现过程11 HYPERLINK l _TOC_25

3、0064 问题的解决及收获11 HYPERLINK l _TOC_250063 外部按键灯连续闪烁12 HYPERLINK l _TOC_250062 程序流程图12 HYPERLINK l _TOC_250061 功能简介12 HYPERLINK l _TOC_250060 功能实现过程12 HYPERLINK l _TOC_250059 问题的解决及收获13 HYPERLINK l _TOC_250058 键、灯、数码管14I /95 HYPERLINK l _TOC_250057 程序流程图14 HYPERLINK l _TOC_250056 功能简介14 HYPERLINK l _TO

4、C_250055 功能实现过程14 HYPERLINK l _TOC_250054 问题的解决及收获15 HYPERLINK l _TOC_250053 外部按键上下行16 HYPERLINK l _TOC_250052 程序流程图16 HYPERLINK l _TOC_250051 功能简介17 HYPERLINK l _TOC_250050 功能实现过程17 HYPERLINK l _TOC_250049 问题的解决及收获18 HYPERLINK l _TOC_250048 计算器19 HYPERLINK l _TOC_250047 程序流程图19 HYPERLINK l _TOC_250

5、046 功能简介21 HYPERLINK l _TOC_250045 功能实现过程21 HYPERLINK l _TOC_250044 问题的解决及收获22 HYPERLINK l _TOC_250043 密码锁23 HYPERLINK l _TOC_250042 程序流程图23 HYPERLINK l _TOC_250041 功能简介24 HYPERLINK l _TOC_250040 实现功能过程24 HYPERLINK l _TOC_250039 问题的解决及收获24 HYPERLINK l _TOC_250038 逐层停自动开关门循环25 HYPERLINK l _TOC_250037

6、 程序流程图25 HYPERLINK l _TOC_250036 功能简介27 HYPERLINK l _TOC_250035 实现功能过程27 HYPERLINK l _TOC_250034 问题的解决及收获27 HYPERLINK l _TOC_250033 可记录顺序逐层停自动开关门28 HYPERLINK l _TOC_250032 程序流程图28 HYPERLINK l _TOC_250031 功能简介28 HYPERLINK l _TOC_250030 实现功能过程29 HYPERLINK l _TOC_250029 问题的解决及收获29 HYPERLINK l _TOC_2500

7、28 外部按键电梯30 HYPERLINK l _TOC_250027 主程序30 HYPERLINK l _TOC_250026 开关门模块31 HYPERLINK l _TOC_250025 上下行模块32 HYPERLINK l _TOC_250024 LED模块34 HYPERLINK l _TOC_250023 第四章电梯模型完整控制程序36 HYPERLINK l _TOC_250022 完整控制程序( main 函数)36 HYPERLINK l _TOC_250021 功能说明36 HYPERLINK l _TOC_250020 功能实现过程37 HYPERLINK l _TO

8、C_250019 问题的解决及收获37 HYPERLINK l _TOC_250018 按键扫描模块( getto 函数)38 HYPERLINK l _TOC_250017 功能简介38 HYPERLINK l _TOC_250016 问题的解决及收获38 HYPERLINK l _TOC_250015 当前层判断模块( getat 函数)38 HYPERLINK l _TOC_250014 功能简介38 HYPERLINK l _TOC_250013 问题的解决及收获38 HYPERLINK l _TOC_250012 电梯门的选通、禁止模块(DoorEnable 函数)38 HYPERL

9、INK l _TOC_250011 功能简介38 HYPERLINK l _TOC_250010 问题的解决及收获38 HYPERLINK l _TOC_250009 电梯开关门模块( openandclose 函数)39 HYPERLINK l _TOC_250008 功能简介39 HYPERLINK l _TOC_250007 功能实现过程39 HYPERLINK l _TOC_250006 问题的解决及收获39 HYPERLINK l _TOC_250005 第五章总结与致谢41 HYPERLINK l _TOC_250004 5.1 总结41 HYPERLINK l _TOC_2500

10、03 5.2 致谢41 HYPERLINK l _TOC_250002 附录控制电梯模型相关程序42 HYPERLINK l _TOC_250001 附录一数码管连续显示42 HYPERLINK l _TOC_250000 附录二外部按键灯连续闪烁43附录三外部按键逐个亮灭45附录四键、灯、数码管47附录五外部按键上下行49附录六计算器51附录七密码锁56附录八逐层停开关门循环59附录九可记录顺序逐层停自动开关门64附录十外部按键电梯70附录十一完整电梯程序77 PAGE * ROMAN V /95图目录Figure 1凌阳单片机2Figure 2凌阳单片机接口定义3Figure 3实验用电梯

11、模型9Figure 4数码管连续显示流程图10Figure 5外部按键灯连续闪烁流程图12Figure 6LED1to7 流程图13Figure 7键、灯、数码管流程图14Figure 8外部按键上下行流程图16Figure 9计算器数字扫描函数流程图19Figure 10计算器主函数流程图20Figure 11密码锁流程图23Figure 12逐层停自动开关门循环main 函数25Figure 13逐层停自动开关门循环AtAndTo 函数26Figure 14逐层停自动开关门循环OpenAndClose 函数26Figure 15可记录顺序逐层停自动开关门28Figure 16外部按键电梯主

12、函数流程图30Figure 17外部按键电梯开关门函数流程图31Figure 18外部按键电梯上下行函数流程图32Figure 19外部按键电梯LED函数流程图34Figure 20外部按键电梯btLED 函数流程图35Figure 21电梯完整程序主函数36Figure 22电梯完整程序openandclose 函数流程图39 PAGE 46 /95第一章绪论课题背景与目的现代社会中, 电梯已经成为不可缺少的运输设备。电梯的存在使得每幢高层建筑的交通更为便利。 电梯控制技术的发展主要经历了三个阶段:继电器控制阶段,微机控制阶段,现场总线控制阶段。随着经济的高速发展,微电子技术、计 算机技术和

13、自动控制技术也得到了迅速发展,交流变频调速技术已经进入一个崭新的时代, 其应用越来越广。 电梯是现代高层建筑的垂直交通工具,其设计要求稳定性、安全性及高。随着人们生活水平的不断提高,对电梯的要求的也相应提高,电梯得到了快速发展。电梯模型将机械和电气两方面有机地结合起来,充分体现了机电结合的特点, 同时微机控制即单片机控制的电梯在成本上较低,同时还有着较高的精度, 非常适合在学生机电实验方面得到广泛的应用,可以提高大家的编程能力, 加深对单片机的理解和应用,同时增强创新精神和团队合作精神。课题研究方法参照凌阳 SPCE061A开发的相关资料,加深对控制电梯模型的单片机的了解, 进行 61 板的相

14、关实验,掌握单片机实现基本功能的技术。对单片机编写程序,以达到控制电梯模型的目的。第二章电梯模型硬件设备实验单片机模型与接口定义实验用单片机实验用单片机为凌阳SPCE061A微控制器(简称 61 板),是以凌阳 16 位单片机 SPCE061A为核心的精简开发 -仿真-电路板。 61 板除了具备单片机最小系统电路外,还包括有电源电路、 音频电路、复位电路等, 采用电池供电, 方便携带。SPCE061A 是继 u nSP?系列产品SPCE500A等之后凌阳科技推出的又 一款 16 位结构的微控制器。跟市面上常见的avr 、51 等单片机相比,这款单片机具有一个绝招:语言功能。 与 SPCE500

15、A不同的是, 在存储器资源方面考虑到用户的较少资源的需求以及便于程序调试等功能,SPCE061A里只内嵌 32K 字的闪存( FLASH)。较高的处理速度使u nSP?能够非常容易地、快速地处理复杂的数字信号。SPCE061A主要包括输入 / 输出端口、定时 / 计数器、数 / 模转换、模 / 数转换、串行设备输入 / 输出、通用异步串行接口、低电压检测和复位等部分,且内置在线仿真电路 ICE接口,较高的处理速度使其能够快速地处理复杂的数字信号。本电梯模型就是采用此单片机进行程序编写和实现电梯的运行控制。Figure 1凌阳单片机单片机接口定义实验用单片机接口定义如图,其中A 口为输入, B

16、口为输出。+A0A8A1A9A2A10A3A11A4A12A5A13A6A14各去一层三层下楼层电按梯去二层四层下键内按去三层一层到达键去四层二层到达一层上三层到达楼各二层上四层到达层按二层下开门电键梯三层上+10A7A1530内关门实按键验单片+机各电梯上下运行( 1 上 0 下)B0接B8B1口B9三层下灯楼层按电梯运行选通( 1 行 0 停)四层下灯键灯开关门运行( 1 开 0 关)开关门选通( 1 行 0 禁)一层上灯各楼二层上灯层键按二层下灯灯B2B10B3B11B4B12B5B13B6B14开门到位关门到位三层上灯20B7B1540Figure 2凌阳单片机接口定义I/O接口 DA

17、TA控制命令表*P_IOA_Data接口编号电梯动作A 口(信号输入)单片机 A 口 DATA 控制命令表0 x0001A0去一层(内部按键)0 x0002A1去二层(内部按键)0 x0004A2去三层(内部按键)0 x0008A3去四层(内部按键)0 x0010A4一层上(外部按键)0 x0020A5二层上(外部按键)0 x0040A6二层下(外部按键)0 x0080A7三层上(外部按键)0 x0100A8三层下(外部按键)0 x0200A9四层下(外部按键)0 x0400A10一层到达(外部按键)0 x0800A11二层到达(外部按键)0 x1000A12三层到达(外部按键)0 x2000

18、A13四层到达(外部按键)0 x4000A14开门(内部按键)0 x8000A15关门(内部按键)单片机 A 口 DATA 控制命令表*P_IOB_Data接口编号电梯动作0 x0001B0电梯上下运行( 1 上 0 下)0 x0002B1电梯运行选通( 1 行 0 停)0 x0004B2开关门运行( 1 开 0 关)0 x0008B3开关门选通( 1 行 0 禁)0 x0010B4一层上灯0 x0020B5二层上灯0 x0040B6二层下灯A 口0 x0080B7三层上灯(信号输入)0 x0100B8三层下灯0 x0200B9四层下灯0 x0400B10开门到位0 x0800B11关门到位0

19、 x1000B12数码管0 x2000B13数码管0 x4000B14数码管0 x8000B15单片机接口属性设置:*P_IOA_Dir=0*P_IOA_Attrib=0*P_IOA_Data=0(设 A0-A15 口为输入 )*P_IOB_Dir=0 xf3ff*P_IOB_Attrib=0 xf3ff(设 B0-B9 口为输出, B10、B11 口为输入)*P_IOB_Data=0;电梯控制命令说明一层上按钮按下, *P_IOA_Data输入值为 0 x0010;使一层上按键灯亮起的命令为:*P_IOB_Data=0 x0010,同时其它层按键灯熄灭;如果要使其它层按键灯不受此按键灯影响,

20、保持原来的状态,则输入的命令应为: *P_IOB_Data=0 x0010| P_IOB_Dat;a二层上按钮按下, *P_IOA_Data输入值为 0 x0020使二层上按键灯亮起的命令为:*P_IOB_Data=0 x0020同时其它层按键灯熄灭; 如果要使其它层按键灯不受此按键灯影响,保持原来的状态,则输入的命令应为: *P_IOB_Data=0 x0020|P_IOB_Data;二层下按钮按下, *P_IOA_Data输入值为 0 x0040使二层下按键灯亮起的命令为:*P_IOB_Data=0 x0040时其它层按键灯熄灭; 如果要使其它层按键灯不受此按键灯影响,保持原来的状态,则输

21、入的命令应为: *P_IOB_Data=0 x0040|P_IOB_Data;三层上按钮按下, *P_IOA_Data输入值为 0 x0080使三层上按键灯亮起的命令为:*P_IOB_Data=0 x0080;同时其它层按键灯熄灭;如果要使其它层按键灯不受此按键灯影响,保持原来的状态,则输入的命令应为: *P_IOB_Data=0 x0080| P_IOB_Dat;a三层下按钮按下, *P_IOA_Data输入值为 0 x0100,使三层下按键灯亮起的命令为:*P_IOB_Data=0 x0100,同时其它层按键灯熄灭;如果要使其它层按键灯不受此按键灯影响,保持原来的状态,则输入的命令应为:

22、*P_IOB_Data=0 x0100| P_IOB_Dat;a四层下按钮按下, *P_IOA_Data输入值为 0 x0200,使四层上按键灯亮起的命令为:*P_IOB_Data=0 x0200,同时其它层按键灯熄灭;如果要使其它层按键灯不受此按键灯影响,保持原来的状态,则输入的命令应为: *P_IOB_Data=0 x0200| P_IOB_Dat;a电梯内部开门按钮按下,*P_IOA_Data输入值为 0 x4000, 使电梯开门的命令为: *P_IOB_Data=0 x000c;电梯内部关门按钮按下,*P_IOA_Data输入值为 0 x8000; 使电梯关门的命令为: *P_IOB_

23、Data=0 x0008。我们为了能够简化我们的程序, 我们在头文件 define.h 中定义了直观易懂的单词来表示数字指令, 这样使得编程过程更加容易直观,并且使得程序的可读性更强,但是这种方法是在之前不断地尝试的基础上才逐渐摸索出来的,因而在后来编写的程序中普遍用到了这种方法,而在开始训练阶段编写的程序还往往是使用数字型的指令,具体的定义如下:#ifndef DEFINE_h #define DEFINE_h #define IOA *P_IOA_Data #define IOB *P_IOB_Data #define uint unsigned int #define uchar uns

24、igned char #define ulong unsigned long #define stop 0 x0000#define down 0 x0002 #define up 0 x0003#define bt1up 0 x0010 #define bt2up 0 x0020 #define bt2down 0 x0040 #define bt3up 0 x0080 #define bt3down 0 x0100 #define bt4down 0 x0200#define btin1 0 x0001 #define btin2 0 x0002 #define btin3 0 x0004

25、 #define btin4 0 x0008#define btopen 0 x4000 #define btclose 0 x8000 #define openok 0 x0400 #define closeok 0 x0800#define down 0 x0002 #define up 0 x0003 #define close 0 x0008 #define open 0 x000c#define L1 0 x1000 #define L2 0 x2000 #define L3 0 x3000 #define L4 0 x4000#define L1up 0 x0010 #define

26、 L2up 0 x0020 #define L2down 0 x0040 #define L3up 0 x0080 #define L3down 0 x0100 #define L4down 0 x0200#define at1 0 x0400 #define at2 0 x0800 #define at3 0 x1000 #define at4 0 x2000 #endif同时由于看门狗在程序中频繁出现,故定义看门狗函数dog 方便使用:#include spce061A.h #include dingyi.h void dog()*P_Watchdog_Clear=0 x0001;实验用电

27、梯模型Figure 3实验用电梯模型第三章与电梯模型相关的实验程序数码管连续显示程序流程图Figure 4数码管连续显示流程图功能简介程序初始化完成后,数码管从0 连续变化到 7,再从 7 连续变化到 1。功能实现过程通过定义一个指示当前数码管显示数值的变量,以该变量为循环条件, 每次循环结束后变量自动加1,即指示下一个数码管显示数值,并且通过延时函数使 得输出持续一段时间一边观察现象。(代码详见附录一)问题的解决及收获该程序较为简单,但是通过该程序我们对软件的运行、 调试有了初步的认识, 对采集输入数据、 设置输出命令的基本方法的认识更加清晰直观, 同时对控制命令部分有了更加深刻的了解。外部

28、按键灯连续闪烁程序流程图Figure 5外部按键灯连续闪烁流程图功能简介程序初始化完成后, 外部按键灯连续闪烁, 即从一层上灯到四层下等逐个亮, 并不断循环。功能实现过程定义一个整形变量,通过该变量对6(外部按键一共有6 个灯,可按顺序定义六个灯分别为0,1,2,3,4,5)取余的结构判断应该哪一个灯亮,同时通过延时函 数使得输出得到持续。(代码详见附录二)问题的解决及收获这个程序的思路非常好, 但是在逻辑上需要通过取余这种方法实现,有些复杂,可以将代码直接描述为外部按键逐个灯亮这样也可以实现,我们用这种思路写了一个让外部按键的灯逐个亮且保持,直到所有的灯都亮了之后, 再逐个灯灭的程序,代码见

29、附录三,程序流程图如下:Figure 6LED1to7 流程图键、灯、数码管程序流程图Figure 7键、灯、数码管流程图功能简介程序运行后, 按下电梯外部按键之后该层外部按键的灯亮,同时数码管显示按下的层数,等待下一次输入。功能实现过程程序初始化完成后, 开始扫描是否有按键按下, 若接收到外部某一按键按下信号后,那么该层按键的灯亮,并且数码管显示对应的层数。(代码见附录四) 现以一层上按键被按下举例:if(t&0 x0010)=0 x0010)/ 如果一层上按键被按下*P_IOB_Data=0 x1011;/ 输出为一层上按键灯亮且数码管显示1*P_Watchdog_Clear=0 x000

30、1;问题的解决及收获通过该程序,我们对多个部件的共同控制方法有了非常清晰的认识,在61中只需要将需要共同控制的部分的数字指令相加即可形成共同协调控制。外部按键上下行程序流程图Figure 8外部按键上下行流程图功能简介程序运行后,当按下电梯外部按键后,电梯从当前层运行至目标层后停止, 等待下一次输入。功能实现过程首先程序定义了一个指示当前所在层的变量at,以及一个指示目标层的变量 to,程序初始化完成后,给变量at 赋上对应的层数值,如若当前所在层为2 层:if(t&0 x0800)=0 x0800)/ 判断当前所在层数,若当前所在层数为2 层at=2;/ 给变量 at 赋当前层数值 2*P_

31、Watchdog_Clear=0 x0001;扫描外部按键是否按下,若按下,则对变量to 赋上对应层数值, 如若三层上或三层下按键被按下:/ 下if(t&0 x0080)=0 x0080)|(t&0 x0100)=0 x0100) /若三层上、三层下按键被按to=3;/ 给变量 to 赋目标层数为 3*P_Watchdog_Clear=0 x0001;进行目标层与当前层的比较判断,若目标层大于当前层,即toat,那么电梯应向上运行,直到获取的当前值at=to之后,电梯停止运行:if(toat)*P_IOB_Data=up;*P_Watchdog_Clear=0 x0001;若目标层等于当前层,

32、即to=at,那么电梯停止运行:if(to=at)*P_IOB_Data=stop;*P_Watchdog_Clear=0 x0001;若目标层小于当前层,即toat,那么电梯应向下运行,直到获取的当前值at=to之后,电梯停止运行:if(toat,那么电梯应向上运行,直到获取的当前值at=to之后,电梯停止运行:if(toat)*P_IOB_Data=up;*P_Watchdog_Clear=0 x0001;若目标层等于当前层,即to=at,那么电梯停止运行:if(to=at)*P_IOB_Data=stop;*P_Watchdog_Clear=0 x0001;若目标层小于当前层,即toat

33、,那么电梯应向下运行,直到获取的当前值at=to之后,电梯停止运行:if(toat)*P_IOB_Data=down;*P_Watchdog_Clear=0 x0001;LED模块程序流程图Figure 19外部按键电梯LED函数流程图Figure 20外部按键电梯btLED 函数流程图功能过程程序初始化完成后, 外部按键灯以及指示层数的数码管根据现在电梯的运行状态正常显示。实现功能过程当外部六个按键按下后, 外部按键的灯亮, 电梯上部的 LED灯显示当前运行的所在层数。问题的解决及收获在程序调试过程中, 我们发现如果在电梯运行的过程中,即电梯不处于某层到位的状态时, 若按下电梯外部的按键后,

34、电梯有可能会卡死在中间部位,并且导致电梯无法运行, 在发现这样的问题之后, 我们对程序进行了修改, 针对上下行部分,我们加入了使得电梯停止的条件,如果电梯没有处于到位状态的话就始 终保持先前上行或下行的状态不变,从而使得问题得到了有效的解决。第四章电梯模型完整控制程序完整控制程序(main函数 )功能说明Figure 21电梯完整程序主函数代码见附录十一功能实现过程在上下行的优先级别判断上,我们没有使用以前的数组或者 at 和 to 大小判断的方式, 而是按照内外部层数按键的个数分别定义了 4 个和 6 个变量, 分别来指示目标层数,而何时选择上下行这一问题,举例如下:如果电梯目前处于二层,

35、首先判断电梯之前的运行方向,如果电梯之前运行方向向下,那么,若外部二层下按键或者内部二层按键被按下,电梯执行开门程序; 若外部按键二层下被按下且外部按键一层上与内部一层按键均未被按下,电梯执行开门程序。之后进行上下行的判断, 如果电梯外部按键一层上或者内部按键一层被按下,那么电梯下行至一层再做出判断; 如果电梯外部按键一层上或者内部按键一层均未被按下,且三、四层按键至少有一个被按下之后,电梯上行至三层再做出判断。如果电梯之前运行方向向上, 那门,如果外部二层上或者内部二层按键被按下,电梯执行开门程序;若外部按键二层下被按下,且三、四层均没有按键被按下,那么电梯也执行开门程序。之后进行上下行的判

36、断, 如果电梯三、 四层有至少一个按键被按下之后,电梯上行至三层再做出判断; 如果电梯外部按键一层上被按下且三、四层都没有按键被按下的情况先,电梯执行下行动作至一层再做出判断。其它功能的实现主要通过主函数调用其它函数实现,例如开关门函数,LED控制函数,外部按键扫描函数,获取目标层函数等等。问题的解决及收获在电梯完整程序中, 我们改变了以往 c 文件过多的特点, 尽量把一些判断都放在了主函数中完成,这也造成了主函数比较复杂。按键扫描模块(getto函数 )功能简介程序初始化完成后, 随时扫描内外部按键从而获得目标层,并通过各层的标志位将其记录下来。问题的解决及收获此次使用的获取目标层的函数虽与

37、以往相同,但是由于实际的电梯会实时记录电梯内外按键的情况, 同时在目标层之后会把相应的层数及方向清零并且对上下行做出判断, 所以在获取目标层与及时清除已到达层这一问题上思路完全是崭新的,而这部分主要是体现在主函数中,在此不做赘述。当前层判断模块(getat函数 )功能简介当程序初始化完成后,实时确定当前所在层数。问题的解决及收获或许当前层数的模块在前面使用也较多,但是在这一部分我们加入了一个判断当前上部 LED指示的部分,即上部LED显示当前所在的层数,并且通过此事state 的状态来判断 LED显示部分箭头的指向。电梯门的选通、禁止模块(DoorEnable函数 )功能简介程序初始化完成后,

38、根据电梯当前的状态判断此时能否开门的一个标志位, 例如当电梯某层的两个按键同时按下且上面层数没有按键被按下的情况下,只开门一次且清掉两个按键的灯和相应的标志位。问题的解决及收获在开关门选通的这一问题上, 由于前期做过很多这方面的训练, 所以解决起来比较容易, 主要是保证它能够在应该可能需要开门的情况下该位是选通的, 在不能开门的情况下该位一定要是禁止的。电梯开关门模块(openandclose函数 )功能简介开门部分的实现相对较为简单,在这里仅对关门模块进行分析,流程图如下:Figure 22电梯完整程序openandclose 函数流程图功能实现过程问题的解决及收获针对开门环节, 由于考虑到

39、真实电梯在开门过程中,电梯可以保持持续开门的状态,但是如果在关门过程中,为保证安全,在电梯内部按下开门键,或者电 梯外部当前层被按下的情况下, 电梯应该是可以立即停止关门动作从而进行开门动作以保证安全或者外部有人要进入电梯的需求。在面对这个问题是我们一度遇到了很多困难, 不知道如何实现在关门动作进行的过程中如何来实现外部当前层按键按下后可以保证电梯转而执行开门动作,最后进过深入的思考之后, 我们引入了一个变量 k,使得如果按下的按键所指示的层数后,我们给变量 k 赋值为 1, 在当 k=1 或者内部开门按键被按下的时候,终止之前的关门动作,转而执行开门动作,直到开门到位。在开关门问题上我们还遇到了另外一个问题,如在上行过程中, 三层的上下均被按下, 且四层的按键又均未被按下的情况下,由于每次只能开门动作清掉一个标志位,而导致电梯会自动开关两次门

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论