电梯运行模拟控制器
C8051F单片机模拟电梯控制器的设计
C01 85 F系列 8位单 片机 作 为处理 器 , 合 相应 的外 配
围即可实 现 基 本 的 控 制 功 能 。 电梯 模 拟 器 的机 械 部分采 用 了丝杠 传 动 加 步进 电机 驱 动 , 离 移 动 十 距 分精 确 , 加上 零位 开关 , 运行 积累误 差 。 再 无
1 2 总体 设计框 图 .
机 电一体 化 的复 杂运 输 设 备 。它 涉 及 电 子技 术 、 机
械 工程 、 电力 电子技 术 、 电脑 技 术 、 微 电力 拖 动 系统 和 土建工 程 等 多个 科 学 领 域 。作 为 高 层 建 筑 物 上 下 交通运 输 的重要 设 备 , 越来 越 多 的机 电专 业将 参 与 电梯技 术方 面的 工作 , 了掌 握 电梯 的结 构 和控 为 制 技术就 有 必 要 把 这 庞 大 的集 机 械 、 电气 、 感 器 传 于一 体 的产 品模 拟化 , P C、 片机 、 机 、 用 L 单 微 变频 器
中图法分类号
T 2 3 5 P7. ;
文献标志码
A
电梯 是标 志现 代 物 质文 明 的垂 直 运输 工 具 、 是
L D控 制 、 晶 显示 、 讯 电路 以及 控 制 电机 的 隔 E 液 通 离 电路 。考虑 到实 用 性 、 靠 性 、 容 性 、 扩 展 性 可 兼 可 能 以及 开 发 的难 度 和成本 , 用 了与 5 采 1内核 兼容 的
⑥
20 Si eh E g g 0 8 c.T c. nn.
C 01 85 F单 片机 模 拟 电梯 控 制 器 的设 计
龚鲁华
( 南京大学 电子科学 与工程 系, 南京 2 0 9 ) 10 3
摘
高楼电梯自动控制系统电路课程设计用Multisim仿真
高楼电梯自动控制系统电路课程设计用Multisim仿真高楼电梯自动控制系统的整体结构是将控制器,轿厢系统,电梯机房系统以及外部系统四个部分结合在一起而成。
本次课程设计以Multisim为软件设计平台,仿真实现高楼电梯自动控制系统,使用到的系统原理如下:1)运行系统:由本次仿真中,采用的PLC控制器作为整个控制器,PLC控制器根据参数设定,计算出应该运行的速度并发送给控制电路后,便能开始控制电梯的运行。
2)轿厢系统:轿厢系统主要包括安全门,照明设备,按钮等设备,当电梯处于运行状态时,安全门会处于关闭状态,在轿厢内可以看到电梯状态,按钮可以根据不同情况设定电梯的运行方向。
3)电梯机房系统:电梯机房系统需要实现轿厢与机房之间的位置对比,当相对应位置相同时,就会触发电梯机房系统以此实现电梯移动。
4)外部系统:外部系统包括各种信号接口,用来连接电梯系统与外部系统,使外部控制者可以控制电梯运行,并实现系统的安全性。
在Multisim的拓扑设计上,运行系统、轿厢系统、电梯机房系统和外部系统主要分别由八级可编程软件,PLC控制器,电机控制器以及各种信号接口组成。
为此,本次课程设计采用Multisim来仿真实现高楼电梯自动控制系统,并以此方式实现电梯各个部件之间正确的控制与协调。
本次课程设计采用Multisim来仿真高楼电梯自动控制系统,使用到的电路原理是:将PLC控制器、轿厢系统、电梯机房系统以及外部系统等做拓扑设计,使电梯各个部件之间正确的控制与协调,以实现电梯的自动控制功能。
本次课程设计能够让我们更加深入理解电梯自动控制系统,并能够实践让学生掌握控制系统的设计和实现技巧。
通过本次课程设计,我们通过Multisim软件,实现了高楼电梯自动控制系统的仿真,在此基础上,我们可以更好地理解电梯自动控制系统的原理,并能够实践掌握自动控制系统的设计与实现技巧,从而提升实际应用能力。
苏州默纳克控制技术 NICE3000电梯一体化控制器 说明书
第三章 控制系统构成与部件介绍 ……………………………………………………………… 28
3.1 轿顶板(CTB) …………………………………………………………………………………… 28 3.2 指令板(CCB) …………………………………………………………………………………… 31 3.3 显示控制板(HCB) ……………………………………………………………………………… 34 3.4 调试工具 …………………………………………………………………………………………… 48 3.5 提前开门模块(SCB) …………………………………………………………………………… 55 3.6 语音报站器(CHM) ……………………………………………………………………………… 57 3.7 称重传感器(LDB) ……………………………………………………………………………… 59 3.8 短消息控制板(IE) ……………………………………………………………………………… 61 3.9 其他可选组件 ……………………………………………………………………………………… 62
NICE3000电梯一体化控制器是集计算机技术、自动控制技术、网络通讯技术、电机矢量驱 动技术于一体的智能控制系统,具有国际先进水平: ☞ ☞ ☞ ☞ ☞ ☞ ✔ ☞ ☞ ☞ ☞ ☞ ✔ ☞ ☞ 真正以距离控制为原则的直接停靠技术,N条曲线(无段速)自动生成 基于模糊控制理论的8台以下电梯群控算法 多CPU冗余控制、集成先进的Canbus、Modbus、GSM通讯技术 内置精准实时时钟,提供丰富的分时控制功能,方便实现楼宇智能管理 灵活的紧急救援运行方案 短层站自动识别运行 更易用 控制驱动一体,结构紧凑,方便实现小机房、无机房设计 傻瓜式功能参数设计,最大限度方便调试 贴心小键盘设计,使电梯的检验、维修、调试简单易行 任意重量实现称重自学习 支持多种调试手段:计算机监控软件、操作面板 更安全可靠 多重安全保护,紧扣GB7588-2003标准 硬件、软件的容错设计;多类别的故障处理;最大限度杜绝事故(蹲底、冲顶)发生, 保证安全运行 欧盟MP试验室提供专业测试,全面对抗电磁干扰 专业的驱动器制造技术、强大的环境适应能力,全面对抗电网波动、粉尘、高温和雷电 更舒适 无称重技术或专用称重补偿装置,提供了近乎完美的启动补偿 高性能的矢量控制,充分发挥电机性能,从而获得更佳的舒适感
基于单片机的电梯运行控制系统
基于单片机的电梯运行控制系统随着科技的不断进步,基于单片机的电梯运行控制系统成为了现代电梯行业的重要发展方向。
这种控制系统具有智能化、节能、安全可靠等诸多优势,为电梯的运行管理提供了全新的解决方案。
一、单片机在电梯运行控制系统中的应用单片机作为一种集成了微处理器、内存、外设接口等功能的芯片,具有体积小、价格低、可靠性高等特点,因此在电梯控制系统中得到了广泛应用。
基于单片机的电梯运行控制系统可以通过编程实现多种控制功能,如楼层呼叫、定向运行、减速停车等。
此外,单片机还可以结合传感器、变频器等设备,实现对电梯的智能监控和节能控制。
二、电梯运行控制系统的组成部分及工作原理电梯运行控制系统主要由以下几个部分组成:1、控制器:控制器是电梯运行控制系统的核心部分,主要负责接收乘客的呼叫信号,并根据最优路径算法确定电梯的运行方向和速度。
控制器一般由单片机及其外围电路组成。
2、呼叫信号装置:呼叫信号装置设置在各个楼层,用于乘客发送呼叫信号。
当乘客按下呼叫按钮时,相应的楼层信号将被发送到控制器。
3、显示装置:显示装置通常设置在电梯内,用于显示当前楼层、目的楼层等信息,以方便乘客了解电梯的运行状态。
4、传感器:传感器用于检测电梯的运行状态和位置信息,如电梯的上下方向、当前楼层等。
5、变频器:变频器用于控制电机的转速,从而实现电梯的速度控制。
电梯运行控制系统的工作原理如下:当乘客按下呼叫按钮时,控制器接收到楼层信号,并根据最优路径算法确定电梯的运行方向和速度。
变频器根据控制器的指令控制电机的转速,从而控制电梯的速度。
同时,传感器检测电梯的运行状态和位置信息,并将相关信息反馈给控制器。
控制器根据传感器的反馈信息调整电梯的运行状态,确保电梯的稳定运行。
三、现有问题及解决方法尽管基于单片机的电梯运行控制系统具有诸多优点,但在实际应用中仍存在一些问题。
例如,控制器可能出现故障,导致电梯无法正常运行。
为解决这一问题,可在控制器中加入备份电路,以确保在控制器出现故障时电梯仍能正常运行。
基于stm32的电梯控制器 毕业设计
基于stm32的电梯控制器毕业设计毕业设计题目基于STM32的多层电梯控制器的设计学院信息科学与工程学院专业电子信息科学与技术班级电信0902学生邹强学号20091221572指导教师孔祥玉二〇一三年六月七日摘要世界上第一台电梯是由美国的奥的斯公司制造的。
自从这第一台电梯于1987年问世以来,对生活在城市的楼宇中特别是高楼大厦中的人们的生活和工作带来了巨大的便利。
随着社会经济的飞速发展,电梯与人们的生活越来越密不可分。
本设计的电梯系统采用的是stm32微处理器。
STM32处理器是基于Cortex-M3架构的嵌入式微处理器MCU,其中Cortex-M3架构是ARM公司推出的。
STM32处理器具有高速、高集成度、低功耗、高可靠性等优点。
正是由于STM32处理器具有这些优点,它正适合运用于电梯控制。
本设计中的电梯控制系统主要运用了STM32处理器GPIO口操作和其精确地定时功能。
该电梯系统一共分6个部分,它们是STM32处理器、电源系统、数码管显示器、键盘、LED小灯、直流电机驱动模块。
这些部分是直接与STM32的GPIO口连接的,所以它们占用的GPIO口较多。
关键词:STM32处理器;Cortex-M3架构;直流电机驱动模块ABSTRACTThe world's first elevator is manufactured by the United States Otis. Since the first lift inception in 1987, the way of people who live in the buildings in the city especially in the high-rise buildings and work has brought great convenience. With the rapid socioeconomic development, the elevator becomes increasingly inseparable in people's lives.The designs of the elevator system use the STM32 microprocessor. The STM32 processor is based on Cortex-M3-based embedded microprocessor MCU, and Cortex-M3 architecture is ARM introduced. STM32 processor has the advantages of high-speed, high integration, low power consumption, high reliability and so on. Because of the STM32 processor has these advantages; it is suitable used in elevator control. The designs of the elevator control system mainly utilize the STM32 processor GPIO port operation and accurate timing functions. The elevator system is divided into six parts which are STM32 processors, power systems, digital display, keyboard, LED lights and DC motor driver module. These parts are connected directly with the STM32 GPIO ports that take more part of GPIO port.Keywords: STM32 processor; Cortex-M3 architecture; DC motor drive module目录摘要 (I)ABSTRACT (II)第1章绪论 (1)1.1 课题背景 (1)1.1.1 选题背景 (1)1.1.2国内外现状 (1)1.1.3 本课题的意义及研究内容 (2)第2章系统设计方案 (3)2.1 系统硬件总体组成 (3)2.1.1总体框图 (3)2.2 系统硬件方案 (4)2.2.1 STM32选择方案 (4)(2)STM32的原理图及特性 (4)2.2.2 键盘设计方案 (6)2.2.3 LED指示灯设计方案 (6)2.2.4数码管显示器设计方案 (6)2.2.5电机驱动设计方案 (7)第3章系统硬件设计 (8)3.1 硬件系统的总体设计 (8)3.2 硬件系统的部分设计 (8)3.2.1 键盘硬件电路设计 (8)3.2.2 LED指示灯硬件电路设计 (9)3.2.3 八段数码管硬件电路设计 (10)3.2.4电机驱动模块硬件电路 (12)第4章系统软件设计 (14)4.1 主程序设计 (14)4.2 显示程序设计 (22)4.3 LED指示灯程序设计 (23)4.3 键盘查询程序设计 (24)4.3 门控制程序设计 (25)4.3 电机驱动程序设计 (30)结论 (35)参考文献 (36)致谢 (38)附录1 系统运行样式 (39)第1章绪论1.1 课题背景1.1.1 选题背景电梯是一种由电动机作为驱动力的竖直升降设备,装有立方体吊舱并设有电梯门,用于多层建筑乘人或载运货物。
PLC在电梯控制中的应用
PLC在电梯控制中的应用电梯是现代化城市生活中不可或缺的交通工具,其安全性和可靠性直接关系到人们的出行体验和生命安全。
为了确保电梯运行的平稳和高效,自动控制技术被广泛地应用于电梯系统中。
而PLC(可编程逻辑控制器)作为一种高效稳定的控制设备,得到了电梯控制领域的广泛应用。
PLC是一种数字化的电子设备,能够根据指令运行预设的逻辑程序,并进行实时监控和数据处理。
在电梯控制中,PLC可以扮演多种角色,如楼层选择、电机控制、故障检测等,下面我将分别介绍PLC在电梯控制中的应用。
1. 楼层选择控制在传统电梯系统中,乘客需通过按下楼层按钮来选择目标楼层。
而利用PLC,可以将这一过程实现自动化。
当乘客按下楼层按钮时,PLC会接收到这一信号,并根据设定的优先级和楼层情况,自动判断电梯应该前往哪一个楼层。
PLC能够迅速进行计算,减少等待时间,提高电梯的运行效率。
2. 电机控制电梯的上下运行离不开电机的控制,而PLC正是实现这一功能的关键。
PLC可以根据电梯的运行状态和楼层信号,精确地控制电机的转向和速度。
当电梯到达目标楼层时,PLC会及时停止电机的运行,使电梯平稳停靠。
PLC还能够监控电机的运行状态,一旦出现异常,即可通过报警系统及时发出警报。
3. 故障检测和处理电梯系统存在各种潜在的故障隐患,如电路故障、开关失灵等。
PLC可以通过传感器和监控装置实时检测电梯的状态,并在发现故障时进行相应处理。
通过预设的故障诊断程序,PLC能够自动定位故障点并提供解决方案。
这有效减少了人工排查的时间和成本,提高了故障处理的效率。
4. 紧急情况处理在意外情况下,PLC也能发挥重要作用。
当电梯出现火灾、停电等紧急情况时,PLC能够自动切断电源、打开紧急通道门并将电梯送至最近一层的安全地带。
这种应急措施能够最大限度地保护乘客的安全,减少事故的发生。
总结而言,PLC在电梯控制中的应用,大大提高了电梯系统的运行效率和安全性。
其楼层选择控制、电机控制、故障检测和处理、以及紧急情况处理等功能,使得电梯的运行更加智能化、便捷化和可靠化。
电梯控制器 电梯运行控制与安全保护方法介绍
电梯控制器电梯运行控制与安全保护方法介绍电梯控制器——电梯运行控制与安全保护方法介绍电梯是现代城市生活中不可或缺的交通工具之一,为了确保乘客的安全和提高运行效率,电梯控制器起着重要的作用。
本文将介绍电梯运行控制的基本原理以及常用的安全保护方法。
第一部分:电梯运行控制原理电梯运行控制系统主要由电梯控制器和相关传感器组成。
电梯控制器是控制电梯运行的大脑,通过传感器感知楼层信息和乘客需求,实时控制电梯的运行状态和开关门操作。
其基本原理如下:1. 楼层选择系统楼层选择系统是电梯控制器的核心部分,它根据乘客的需求和传感器获取的楼层信息,确定电梯的目标楼层。
一般采用算法来优化电梯的运行效率,例如最短路径算法和分配策略等。
2. 电梯运行状态控制电梯运行状态包括上行、下行、停止等,在运行过程中根据楼层选择系统的指令实时调整电梯的运行状态。
通过电机控制和安全装置的配合,确保电梯平稳运行。
3. 开关门操作开关门操作是电梯控制器的基本功能之一。
它通过传感器感知楼层信息和乘客进出情况,控制电梯门的打开和关闭。
在开关门过程中,需要考虑安全性和效率,避免夹人等意外事件发生。
第二部分:电梯安全保护方法为了保证乘客的安全,电梯控制器还采取了一系列的安全保护方法。
下面介绍几种常见的方法:1. 过载保护电梯在运行中可能会超过额定载荷,这时需要过载保护系统及时发出警报并停止运行,以避免发生事故。
过载保护系统通常采用电子称重传感器来检测载荷情况,并通过电梯控制器控制电梯的停止和报警。
2. 摩擦力保护电梯的运行过程中会产生较大的摩擦力,为了避免电梯的运行过热,控制器会通过传感器实时监测电梯的温度,并控制电梯的运行速度和频率,以保证电梯的安全性。
3. 电力故障保护当电力供应中断或不稳定时,电梯控制器会采取相应的措施,如停止运行并开启应急照明,以保证乘客的安全,并引导乘客尽快离开电梯。
4. 紧急制动系统在发生紧急情况时,如地震或电梯异常运行等,电梯控制器可以通过紧急制动系统迅速停止电梯的运行,以防止进一步的危险发生。
电梯plc原理
电梯plc原理
电梯PLC原理是基于可编程逻辑控制器(PLC)技术,通过
编程控制来实现对电梯操作的自动化控制。
PLC是一种专门
用于工业过程控制的电子设备,其工作原理是基于输入输出信号的感知和逻辑运算,以及对外部设备的控制。
在电梯PLC系统中,输入信号来自于电梯的各种传感器,如
电梯位置传感器、门开关传感器、重载传感器等。
这些传感器将电梯当前状态转化为数字信号输入给PLC。
PLC通过编程
将这些输入信号进行逻辑运算和判断,根据编程逻辑输出控制信号给电梯驱动器和各个执行元件,如电机、门的开闭装置等。
PLC编程的逻辑运算包括判断电梯当前位置、判断是否超载、判断门的开关状态等。
在运行状态下,PLC还需要对输入信
号进行实时监测和处理,以确保电梯的安全性和稳定性。
例如,当电梯超载时,PLC将产生相应的警报信号,并通过控制电
梯停止运行以确保安全。
此外,PLC还可以根据电梯运行状态进行自动控制,如电梯
的上下行控制、楼层到达后的门控制等。
通过编程,可以实现电梯的各种运行逻辑和功能,提高电梯运行的效率和安全性。
总而言之,电梯PLC原理是通过编程控制电梯的自动化运行,通过感知和判断输入信号,输出控制信号来实现对电梯各个元件的控制,从而实现电梯的安全运行和功能实现。
PLC电梯模拟控制(4层简单程序)
产品设计PLC电梯模拟控制教学单位: 机电工程学院专业: 自动化班级:学号:学生姓名:指导教师:完成时间:电子科技大学中山学院机电工程学院课程(产品)设计任务书目录1 题目分析错误!未定义书签。
PLC电梯设计错误!未定义书签。
利用PLC设计电梯系统的目的错误!未定义书签。
利用PLC设计电梯系统意义错误!未定义书签。
利用PLC设计电梯系统优点错误!未定义书签。
电梯概述错误!未定义书签。
电梯的定义及发展错误!未定义书签。
我国电梯发展状况错误!未定义书签。
PLC概述错误!未定义书签。
可编程控制器PLC的概述错误!未定义书签。
可编程控制器PLC的特点错误!未定义书签。
本次设计研究的内容、目的错误!未定义书签。
2 PLC电梯模拟控制系统功能设计错误!未定义书签。
PLC电梯模拟控制系统设计的基本内容错误!未定义书签。
系统的控制要求错误!未定义书签。
3 PLC电梯模拟控制系统硬件设计错误!未定义书签。
元器件清单错误!未定义书签。
I/O地址分配错误!未定义书签。
PLC外部接线图错误!未定义书签。
硬件实物图错误!未定义书签。
4 PLC电梯模拟控制系统软件设计错误!未定义书签。
工作流程图错误!未定义书签。
程序设计错误!未定义书签。
电梯初始化、内呼输入与存储程序错误!未定义书签。
电梯外呼信号输入与存储程序错误!未定义书签。
电梯目标层与本层比较及上升下降错误!未定义书签。
电梯上升下降及达层自动开关门错误!未定义书签。
5 结束语错误!未定义书签。
参考文献错误!未定义书签。
附录:源程序错误!未定义书签。
致谢错误!未定义书签。
1 题目分析PLC电梯设计利用PLC设计电梯系统的目的电梯是高层建筑中垂直上下的运载工具。
电梯对于改善劳动条件、减轻劳动强度、提高人们生活水平有着重要的作用。
电梯目前已经广泛应用于宾馆、酒店、商场、娱乐场所、医院、生产车间和居民住宅大楼等。
在现代社会中,电梯已经成为人们生产、生活中不可缺少的运输工具。
本课题主要对PLC的结构、特点、性能以及与现场控制对象的连线进行具体的研究,并通过PLC实现电梯的自动控制。
默纳克控制技术 NICE1000电梯一体化控制器 说明书
司机可通过专门的按钮选择电梯运行方向。
接收到火警信号以后,电梯不再响应任何召唤和其他楼层 的内选指令,以最快的方式运行到消防基站后,开门停 梯。
电梯不接受外界召唤,不能自动关门(在电梯并联或者群 控时,为了给一些特定的人士提供特别服务,以运载贵宾 或货物。按下独立运行开关,则该电梯脱离群控,独立运 行。)
电梯持续关门一定时间后,若门锁尚未闭合,则电梯自动 开门,然后重复关门。
电梯停靠在层站,大量进出人或货物,电梯会因为钢丝绳 和橡皮的弹性形变,造成平层波动,给人员和货物进出带 来不便,这时系统允许在开着门的状态下以再平层速度自 动运行到平层位置。
在自动无司机运行状态,当轿内满载时(一般为额定负载 的80℅),电梯不响应经过的厅外召唤信号。但是,此时 厅外召唤仍然可以登记,将会在下一次运行时服务(单梯) ,或是由其他梯服务(群控)。 保证轿厢运行时的速度在安全控制范围内,以保证乘客和 货物的安全。
编码器故障保 37 护
38 故障历史记录
39 称重信号补偿
40 预转矩设置
41 全集选
42 门锁短接检测 同步机无称重
43 功能 最佳曲线自动
44 生成 45 上集选 46 下集选 47 门锁短接保护 48 对地短路检测
49 测试运行
标准功能(Standard) 功能介绍
检测到电机的电流大于最大允许值时,系统自动保护。
16 分类设定 同层双厅外召
17 唤
标准功能(Standard) 功能介绍
电梯进入检修状态,系统取消自动运行以及自动门的操 作。按上(下)行按钮可使电梯以检修速度点动向上(向 下)运行。松开按钮电梯立即停止运行。 以距离为原则,自动运算生成从启动到停车的平滑曲线, 没有爬行,直接停靠在平层位置。 当电梯处于非检修状态下,且未停在平层区,此时只要符 合起动的安全要求,电梯将自动以慢速运行至最近平层 区,然后开门。 对于人力操作提升装有额定载重量的轿厢所需力大于400N 的电梯驱动主机,设置紧急电动运行开关及操作,以替代 手动盘车装置。
四层电梯的PLC控制
四层电梯的PLC控制摘要在现代社会和经济活动中,计算机技术、自动控制技术和电力电子技术得到了迅速的发展,电梯已经成为城市物质文明的一种标志。
特别是在高层建筑中,电梯是不可缺少的垂直运输设备。
随着高层建筑飞速发展的今天,电梯行业也随之进入了新的发展时期,电梯控制技术已经发展到了调频调压调速,其逻辑控制也由PLC代替原来的继电器控制,其许多功能是传统的继电器控制系统无法实现的。
本设计针对我国电梯业的现状,将可编程序控制器(PLC)应用于四层电梯进行逻辑控制,通过合理的选择和设计,不但提高了电梯可靠性、可维护性以及灵活性,同时延长了使用寿命,缩短了电梯的开发周期,并提高了电梯的控制水平,改善了电梯运行的舒适感,使电梯达到了较为理想的控制效果。
本文所设计的电梯与传统的电梯相比,在运行上具有良好的舒适感,在生活中可以节约电能,取得了良好的经济效益和社会效益,达到了理想的目的。
该电梯控制系统具有指层、厅召唤、选层选向、手动和自动等功能,具有集选控制的特点。
在介绍电梯基本结构的基础上,深入分析了电梯的工作原理,阐述了PLC的优点及特点,重点分析了电梯的硬件设计和软件设计,研究并提出了基于PLC电梯控制系统设计的实现方案,最后对本论文的研究内容进行了总结与展望。
关键词电梯变频器 PLC控制变频调速Four-storey Elevator PLC ControlABSTRACTIn the modern social and economic activities, computer technology, automatic control technology and power electronic technology has been rapid development, the lift has become a symbol of urban material. Especially in the high-rise building, the elevator is not a lack of vertical transportation equipment. With the rapid development of high-rise buildings of today, the lift industry also has entered a new period of development, elevator control technology has been developed to the FM speed regulator, the logic control by the PLC to replace the original relay control, many of its functions traditional relay control system can not be achieved.The design for the status quo of China's elevator industry will be a programmable logic controller (PLC) used for four-storey elevator control logic, through the rational selection and design, not only to improve the reliability of the elevator, maintainability, and flexibility, while extending the of life and shorten the development cycle of the elevator and the elevator control to raise the level of the elevator operation to improve the comfort, so that the lift to reach a more satisfactory control effect. In this paper, the design of the elevator by the elevator when compared with the traditional, in the run with good comfort, in life can save energy, and achieved good economic and social benefits to achieve the desired purpose. The elevator control system has a mean layer, the Office of calls to the layer selected, manual and automatic functions with a set of features to control the election.In introducing the basic structure of the lift on the basis of the depth analysis of the working principle of the elevator, on the merits and characteristics of PLC, the focus of an analysis of the lift hardware design and software design, research and PLC based control system designed to lift the achievement of the program, Finally, the study of this thesis are summarized and prospects.Keywords elevator PLC control VVVF inverter目录前言 (3)第1章绪论 (6)1.1电梯继电器控制系统的特点及存在问题 (6)1.1.1电梯继电器控制系统的优点 (6)1.1.2电梯继电器控制系统存在的问题1.2 PLC及在电梯控制中的应用特点1.2.1 PLC的特点1.2.2 PLC控制电梯的逻辑关系1.2.3 PLC控制电梯的优点1.3 电梯变频调速控制的特点第2章PLC控制系统硬件设计 ..........................................................2.1 四层电梯主电路.....................................................................2.1.1 四层电梯驱动电机 .......................................................2.1.2 plc外部接线图 ..............................................................2.3工/0点数的分配及机型的选择2.2.1 I/O点数的估算2.2.2输入/输出的分配2.2.3 机型的选择2.4 编码器与PLC的连接2.5系统结构框图第3章软件设计3.1四层电梯梯形图3.1.1外召唤信号登记及消除3.1.2内指令信号登记及消除3.1.2 电梯的平层信号及处理3.1.4 选层定向及反向截梯3.1.5 内指令外召唤信号的保持3.1.6 各楼层停车信号3.1.7 自动开关门3.2 STL语句表第4章软硬件的调试4.1组态王6.5的简介...................................................................4.2组态王的基本操作4.2.1 建立新工程及画面4.2.2 变量的定义及管理4.2.3 组态王的命令语言4.3 四层电梯在组态王中的仿真调试结论 .................................................................................................. 谢辞.................................................................................................... 参考文献 .............................................................................................. 附录 .................................................................................................. 外文资料翻译 ......................................................................................前言电梯是随着高层建筑的兴建而发展起来的一种垂直运输工具。
电梯一体化控制器的构成及控制功能
电梯一体化控制器的构成及控制功能电梯一体化控制器是电梯系统的核心部件,负责协调和控制电梯运行以及安全保护功能。
它由多个模块组成,包括控制模块、驱动模块、通信模块、安全模块等。
在电梯系统中,一体化控制器的主要功能是对电梯进行控制、监测和保护。
一、控制模块控制模块是电梯一体化控制器的核心部分,主要由CPU、存储器、输入输出接口等电子元件组成。
控制模块的主要功能有:1.楼层选择控制:根据乘客或楼梯口的楼层选择信号,控制电梯的运行方向和停靠楼层。
2.电梯调度控制:根据楼层选择信号和电梯当前所在楼层,对电梯调度进行控制,实现多个电梯的协调运行。
3.轿厢内按钮控制:控制轿厢内的按钮信号,实现乘客对电梯运行和停靠楼层的选择。
4.高级控制算法支持:根据需求,支持最优调度、智能学习等高级控制算法,提高电梯系统的效率和乘客体验。
二、驱动模块驱动模块负责控制电梯电机的运行,包括电机的加速、减速、停止等操作。
驱动模块的主要功能有:1.电机控制:控制电机的启动、加速、减速和停止,确保电梯在规定的时间内到达目标楼层。
2.速度控制:控制电梯的运行速度,确保乘客的安全和舒适。
3.制动控制:控制电梯的制动装置,确保电梯在停靠楼层时安全停稳。
4.电气安全:监测电梯电机和驱动系统的工作状态,确保电梯系统的安全运行。
三、通信模块通信模块负责电梯与监控中心之间的通信,以及电梯与其他设备之间的信息交换。
通信模块的主要功能有:1.监控中心通信:与监控中心建立连接,实时传输电梯的状态和故障信息,以保证及时的故障处理和维修。
2.互联互通:支持与其他设备(如门禁系统、楼宇系统等)之间的信息交换,实现整体化的楼宇管理。
3.远程监控:支持远程监控、故障诊断和维修,提高维护效率和电梯系统的可靠性。
四、安全模块安全模块是保证电梯运行安全的重要组成部分,主要功能有:1.故障监测:监测电梯运行中的故障信息,如电机异常、传感器故障等,及时采取措施避免事故的发生。
基于PLC的电梯控制系统的设计与仿真
基于PLC的电梯控制系统的设计与仿真基于PLC的电梯控制系统的设计与仿真一、绪论电梯作为现代建筑物中必备的垂直交通工具,其安全性和效率对用户的使用体验至关重要。
传统电梯控制系统采用传感器和继电器等元件,存在很多问题,如运行不稳定、维护困难等。
而基于可编程逻辑控制器(PLC)的电梯控制系统则可以有效提高电梯的性能和可靠性。
本文将基于PLC的电梯控制系统的设计与仿真进行详细介绍。
二、基本原理基于PLC的电梯控制系统主要由电梯控制器、电梯驱动器和电梯监控器组成。
电梯控制器负责接收用户指令,控制电梯的运行,并协调电梯之间的调度。
电梯驱动器负责控制电梯的运行,通过各种传感器获取电梯的状态信息,并将其传输至电梯监控器。
电梯监控器负责监控电梯的运行状态,并将其显示在控制室的监控屏幕上。
三、设计与实现1. 硬件设计基于PLC的电梯控制系统的硬件设计主要包括PLC选择、输入输出模块设计和传感器选择等。
PLC的选择需要考虑其处理能力、I/O点数和可编程性等因素。
输入输出模块的设计需要根据电梯系统的需求确定其数量和类型。
传感器的选择需要考虑其稳定性、精度和可靠性等。
2. 软件设计基于PLC的电梯控制系统的软件设计主要包括PLC程序设计和仿真环境搭建。
PLC程序设计需要根据电梯的运行逻辑和控制要求编写相应的程序代码。
仿真环境搭建需要利用仿真软件模拟电梯运行过程,并对电梯运行状态进行监控和调度。
3. 系统测试与调试基于PLC的电梯控制系统的测试与调试是确保系统正常运行的重要环节。
测试和调试过程包括系统功能测试、运行稳定性测试和性能测试等。
通过对系统的各项指标进行测试和调试,可以及时发现问题并进行改进。
四、系统仿真基于PLC的电梯控制系统的仿真是验证系统设计的有效手段。
通过仿真可以模拟电梯的运行过程,并对系统的性能和稳定性进行评估。
仿真结果可以用于优化系统设计和改善系统性能。
五、总结与展望基于PLC的电梯控制系统通过采用先进的控制器和传感器等技术,实现了电梯的智能化控制和优化调度。
基于51单片机的电梯仿真系统(仿真程序PPT)
结果分析
性能评估
根据仿真数据,评估电梯系统的性能,如运行稳定性、响应速度等 。
问题诊断
分析仿真过程中出现的问题,如电梯无法响应某些楼层请求、运行 异常等,定位并解决问题。
优化建议
根据分析结果,提出针对性的优化建议,如改进电梯控制算法、调 整电机驱动参数等,以提高电梯系统的性能。
05
电梯仿真系统优化
汇编语言是51单片机的底层编程语言,它直接对应着硬 件的操作。使用汇编语言编程需要对硬件有深入的了解 ,并且编程效率相对较低。但是,汇编语言具有代码紧 凑、执行效率高等优点,在一些对性能要求较高的场合 仍然有应用。
C语言
C语言是51单片机的主流编程语言之一,它具有语法简 单、易于学习、可移植性好等优点。使用C语言编程可 以大大提高开发效率,并且代码可读性较好。同时,C 语言具有丰富的库函数和强大的数据处理能力,可以满 足大多数应用的需求。
3
该仿真系统具有可视化界面,能够直观 地展示电梯的运行过程和状态变化,方 便用户进行操作和观察。同时,该系统 还具有可扩展性和可定制性,可以根据 实际需求进行功能扩展和定制开发。
02
51单片机基础知识
51单片机简介
51单片机的定义
51单片机是对所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8004单片机,后来 随着Flash rom技术的发展,8004单片机取得了长足的进展,成为应用最广泛的8位单片机之一,其代表型号是 ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。很多公司都有51系列的兼容机型推出,今后很长 的一段时间内将占有大量市场。
运行仿真
启动仿真,观察电梯在接收到 不同输入信号时的运行状态和 输出动作。
电梯控制器的操作说明书
电梯控制器的操作说明书本操作说明书适用于电梯控制器的用户,帮助您快速了解如何操作电梯控制器,确保电梯运行的稳定和安全。
一、控制器基本操作1.1 电源开关控制器电源开关位于控制箱右上角,向上拨动为开启电源,向下拨动为关闭电源。
1.2 电梯运行模式切换控制器具有手动和自动两种运行模式,手动模式下由操作人员控制电梯的上升和下降,自动模式下由电梯控制器自主控制电梯的上升和下降。
手动模式和自动模式之间的切换,在电梯正常运行的情况下,可以通过控制箱上的模式切换按钮进行切换。
1.3 停止按钮控制器上的停止按钮用于紧急情况下停止电梯的运行,一旦按下停止按钮,电梯立即停止运行,并处于开门状态。
二、控制器维护2.1 定期检查为确保电梯运行的稳定和安全,建议每半年对电梯控制器进行一次定期检查,检查内容包括电源线路、信号线路、控制板卡、继电器等部件的正常工作情况。
2.2 清洁保养电梯控制器的控制箱需保持干燥整洁,防止进水或者灰尘等物质进入控制箱内部,影响电梯控制器的正常工作。
2.3 故障排查在电梯运行过程中如遇到电梯控制器出现故障的情况,建议立即断开电源,并联系专业的维修人员进行排查和修复。
三、安全注意事项3.1 严格按照说明书操作为了保证电梯的运行稳定和安全,建议操作人员严格按照本说明书的操作方法进行操作,避免出现操作不当或者误操作等情况。
3.2 禁止擅自拆卸为确保控制器的正常运行,禁止非专业人员擅自拆卸电梯控制器,并在控制箱上放置非授权人员不得开启的标识。
3.3 保持干燥电梯控制器需保持干燥,防止水或者其他液体进入控制器内部,建议避免在潮湿的环境中使用电梯控制器。
在使用电梯控制器过程中,如果发现任何异常情况或者不正常的声音,建议立即断开电源,并联系专业的维修人员进行检查和修复。
以上是电梯控制器的操作说明书,如有任何疑问或者需要更多帮助,请随时联系我们的客服人员。
三层电梯控制器实验报告
三层电梯控制器实验报告实验报告:三层电梯控制器一、实验目的本次实验的目的是设计一个能够控制三层电梯的控制器。
通过这个实验,我们可以掌握基本的电梯控制原理,并能够实现电梯的运行、停靠以及乘客上下楼的功能。
同时,通过设计和搭建电梯控制器系统,提升我们的实践操作能力和创新能力。
二、实验原理1.电梯的基本原理电梯的运行基于电动机的驱动和控制,具体来说,电梯的上升和下降是由电动机的旋转方向控制的。
电动机的转向又由控制器控制,控制器通过感应电梯的位置和方向,向电动机发送控制信号,从而实现电梯的运行。
2.电梯控制器的设计电梯控制器是由多个组件组成的系统,包括控制面板、按钮、传感器以及控制器主板等。
控制器主板负责接收传感器信号、处理输入信号、控制电动机运行等功能。
而控制面板和按钮则用于输入电梯运行的指令。
控制器主板的核心是一个单片机,通过编写程序控制电动机的运行、接收输入信号、处理信号等。
其中,传感器用于感应电梯的运动状态和位置,将信号发送给控制器主板。
控制面板和按钮通过线路连接到控制器主板,将输入的指令传递给控制器主板。
三、实验器材和仪器1.模拟电梯2.控制器主板3.控制面板4.按钮5.传感器6.电动机7.电源四、实验步骤和方法1.搭建电梯控制器系统首先,我们需要将控制面板、按钮、传感器和电动机连接到控制器主板上。
具体连线可以参考电梯控制器的电路图进行连接。
2.编写控制器的程序通过编写程序控制电梯的运行、接收输入信号、处理信号等。
程序需要根据传感器的信号来判断电梯的状态和位置,并根据输入的指令来控制电动机的运行。
3.进行实验测试将输入信号输入控制面板和按钮,观察电梯的运行情况,验证电梯控制器的正确性和可靠性。
五、实验结果和分析通过对电梯控制器的搭建和测试,我们成功实现了电梯的正常运行、停靠以及乘客上下楼的功能。
实验结果表明,电梯控制器设计合理,能够准确地根据输入指令来控制电梯的运行。
六、实验总结通过本次实验,我们学习了基本的电梯控制原理,并通过设计和搭建电梯控制器系统,提升了我们的实践操作能力和创新能力。
伺服控制器在电梯控制中的应用
伺服控制器在电梯控制中的应用电梯作为现代城市中不可或缺的交通工具,为人们提供了便利和舒适。
而电梯的安全性和效率则取决于其控制系统的稳定性和精确性。
伺服控制器作为电梯控制系统的重要组成部分,发挥着关键的作用。
本文将探讨伺服控制器在电梯控制中的应用,并讨论其优势和挑战。
伺服控制器是一种用于控制电机的装置,通过接收传感器反馈的信号,并进行计算和调整,以实现对电机的精确控制。
在电梯控制中,伺服控制器主要用于控制电梯的运行速度、楼层位置和平稳性等参数。
首先,伺服控制器可以实现电梯的平稳运行。
电梯运行时,特别是在起动和停止时,会产生较大的震动和冲击力。
伺服控制器通过对电机参数的精确控制,可以使电梯在不同的运行状态下实现平稳加速和减速,从而降低震动和冲击力对乘客的不适感。
其次,伺服控制器可以提高电梯的精确性和定位准确性。
在电梯控制中,精确控制电梯的楼层位置是非常重要的。
伺服控制器可以实时接收电梯的位置信息,并根据预设的控制算法,调整电机的转速和转向,以精确控制电梯的楼层停靠位置,确保乘客安全上下车。
此外,伺服控制器还可以提高电梯的能效和节能性。
伺服控制器可以根据电梯的运行状态和负载情况,智能调整电机的功率输出,以降低能源消耗。
同时,伺服控制器还可以实现能量回馈和再利用,将电梯制动时产生的能量转化为电能并存储起来,以提高能源利用效率。
然而,伺服控制器在电梯控制中应用也面临一些挑战。
首先,伺服控制器的设计需要满足电梯的性能要求,包括速度、精度和安全性等。
这要求控制器具备较高的计算能力和响应速度,以及可靠的系统保护措施。
其次,伺服控制器的稳定性和可靠性是电梯控制的关键。
电梯的安全性是首要考虑的因素,任何故障都可能导致严重的后果。
因此,伺服控制器的设计和制造必须严格遵循相关的安全标准和规范,确保系统的稳定性和可靠性。
此外,伺服控制器在电梯控制中的应用还面临成本和维护等方面的挑战。
虽然伺服控制器可以提供更好的性能和精确度,但其制造和安装成本较高。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录1.课程设计简介 (1)1.1简介 (1)1.2设计总电路图 (2)1.3实物图 (4)2.设计题目 (4)3.总体设计 (6)3.1电梯运行模拟控制器的总体运作流程 (6)3.2电梯运行模拟控制器各模块关系 (6)4.详细设计 (7)6.1基本的IO配置(输入/输出模式) (7)输出模式配置 (7)输入模式配置 (7)6.2外部中断配置 (8)定时器中断 (8)外部按键输入中断 (8)6.3电梯运行逻辑设计(软件编码) (9)数据结构设计 (9)功能接口设计 (9)5.体会与总结 (10)6.附录 (11)源代码 (11)参考文献 (26)1.课程设计简介1.1简介本设计使用STM8S系列作为主控芯片,使用矩阵键盘、若干个LED和两位数码管作为外设。
其中矩阵键盘用来模拟电梯按键,若干个LED灯用来模拟电梯的运动方向、楼层的指示灯(电梯内部楼层对应的按钮),两位的数码管用于显示电梯目前所处楼层。
1.2设计总电路图(基于AD这个平台生成的PCB图与原理图)原理图原理图PCB图PCB图1.3实物图实物图2.设计题目设计一个电梯运行模拟控制器,其系统框图如下图所示:电梯运行模拟控制器框图功能要求:能够模拟控制一个8层楼梯的电梯的运行。
具体要求如下: 1.电梯平时没有接到命令时候或者执行完命令后停在1楼,门关闭.。
2.电梯运行速度2秒一层楼3.电梯门在开启的情况下没有收到命令10秒中后自动关闭。
在运动中门必须关闭,(最后3秒可以设置音响警告信号)4.一句话,电梯控制器满足实际电梯的运行要求,电梯在运行的时候可以最多记住8个命令。
并且综合考虑公平性(先按键先执行)和有效性(完成任务的总的行走路径最短)来执行。
要求完成的内容:1.完成硬件电路的设计与安装调试(可借助单片机实验电路板),并用CAD 软件画出原理电路图。
2.画出流程图,编写并调试驱动程序。
3.撰写设计报告。
MCU1位七段数码管,3个LED 灯(显示当前电梯所处楼层与运行方向以及键盘以及对应的LED 灯(1-8,开门,关门)每个数字按键对应一个LED 灯,按下按键灯亮,8个LE D灯显示电梯所2个灯显示当前电梯8×2-2=14个按键表示每层楼入口的电梯按键3.1 电梯运行模拟控制器的总体运作流程等待外部信号整体配置初始化收到中断信号?执行电梯处理逻辑是否电梯运行模拟控制器整体运作流程3.2 电梯运行模拟控制器各模块关系电梯运行模拟控制器各模块关系图6.1基本的IO配置(输入/输出模式)输出模式配置对于输出模式IO的配置,用到的外设(LED灯,数码管,矩阵键盘),在代码中都有对它们进行对应的配置。
其中将LED的对应的IO口配置成推挽输出模式。
当然数码管也是相同的配置方式,所以不做赘述。
输出模式的引脚的配置输入模式配置对于IO口为输入模式的配置,将矩阵键盘设为输入模式,等待外部去触发。
输入模式的引脚的配置6.2外部中断配置定时器中断此设计使用了定时器中断用于每2s产生一个中断信号,这个信号的作用是让主控芯片知道当前(正在运动的)电梯的所处楼层发生了变化(向上运动了一层或是向下运动了一层)。
定时器中断配置外部按键输入中断此设计使用外部按键输入中断,用来及时检测电梯内部、外部的楼层按钮被按下的情况,每当有按钮被按下就产生信号使主控芯片进行相应的逻辑处理。
外部按键输入中断(部分)6.3电梯运行逻辑设计(软件编码)数据结构设计在电梯运行期间,电梯的运行方向、电梯当前所处楼层、电梯内部的哪几个对应的按钮被按下需要被存储下来。
以及当外部有按钮被按下时,需要记录当前被按下的按钮编号所以设计了以下的数据结构。
数据结构设计功能接口设计为了让模拟电梯的控制器的运作与现实的电梯相似,需要设计相应的接口以便模拟控制器以正确的逻辑正常运作。
功能接口设计5.体会与总结对于这次的课设,我个人认为这是大学以来工程量最大的课设,因为它涉及了软件方便的编码,还有硬件方面的PCB制版还有最后就是要自行编写一个规范的文档报告,总的来说工作的内容还是比较丰富的。
在软件编码方面,由于C语言有一段时间没有去使用了,所以在对单片机进行裸机编程的时候,我去复习了单片机原理和C语言的相关书籍,以便我去选择更好的数据结构用来存储数据。
在软件编码过程中,比较有意思的就是去设计电梯运作逻辑,在设计这个逻辑时,我自己也再次对我们生活中的电梯运作流程进行了进一步的观察。
这个逻辑相对于比较有挑战性的就是,你要让你写的逻辑穿插在硬件层和软件曾中正常运行,所以在DEBUG的时候也比较难去查问题,由于自己也比较懒,在DEBUG的时候懒得用那个仿真调试的功能,导致最后解决BUG的时间花的还是比较多的。
在硬件PCB板制作方面,主要就是去学习怎样去使用AD这个专业的画板软件,自己也第一次去用化学药剂腐蚀的方法去制作最小版,自己动手去做一个小玩意儿的经历也是很有意思的。
在文档编写方面,由于之前上了WORD的选修,所以我也就趁这次机会,把之前所学的只是进行学以致用,这次文档的编写我尽量按照毕业课设的规范来要求自己,以求让文档的格式看起来更加的让人赏心悦目。
6.附录源代码#include "iostm8s105c6.h"#include <stdio.h>#include <stdbool.h>/**宏定义***/#define Floors 8/***全局数组,变量**/int floorState[Floors + 1] = {0,0,0,0,0,0,0,0,0}; /**true表示有该楼层的请求还未处理,false表示在该楼层没有请求**/unsigned char DisDisplay[10] ={0X00,0XF3,0X49,0X61,0X33,0X25,0X05,0XF1,0X01,0X7F};int FloorNow = 1; //电梯所处的楼层unsigned char i = 0; //解决定时器第一次中断问题unsigned char j = 0; //解决电梯按下关门请求后会自动开门的变量unsigned char Temp1 = 0; //计数为两秒用(电梯上升楼层的间隔时间)unsigned char Temp2 = 0; //10s,自动关门用unsigned char FloorPoint = 0; //记忆指针unsigned char FloorStart = 0; //记忆初始位置unsigned char FloorOver = 0; //记忆终止位置unsigned char Index = 0;int bottonNum = -1;int direction = -2; /**初始值为-2**/int floorToGo = -1; /**楼梯将要去的楼层***/void DisBegin(void); //初始化内部数码管和上下说明void LedBegin(void); //初始化内部LED函数声明void KeyBegin(void); //初始化键盘输入函数声明void BreakPoint(void); //键盘中断优先级函数初始化void Running(void); //电梯运行函数声明void TIM1_Init(void); //定时器初始化函数声明void DoorJudge(void); //中断内开关门的判断程序void delay(unsigned int time); //延时函数声明void Floor_To_Go(); //吐出要去的楼层命令void Judge_Direction();void Step_one(int bottonNum);void main(void) {LedBegin(); //LED初始化KeyBegin(); //键盘初始化DisBegin(); //内部数码管初始化__asm("sim");BreakPoint(); //键盘中断初始化TIM1_Init(); //定时器初始化TIM1_CR1 = 0X04; //置CEN零,先不计数//TIM1_CR1 = 0X01; //开始计数__asm("rim"); //开总中断while (1) {Running(); //电梯运行s/**在主循环内要频繁的去对比,电梯运行到的当前楼层是否到达了最近需要去到达的楼层(最迫切去处理的请求)**/if (FloorNow == floorToGo) {floorState[FloorNow] = 0; /**清除当前楼层的请求**/}//上下指示灯的行为步骤if (direction == 0) {PG_ODR = 0XFD;}else if(direction == 1) {PG_ODR = 0XFE;}else {PG_ODR |= 0XFF; //到达楼层,关掉上下指示灯}}}//初始化内部LED函数定义void LedBegin(void) {PD_DDR = 0XFF;PD_CR1 = 0XFF;PD_CR2 = 0X00;PD_ODR = 0XFF;PE_DDR = 0XFF;PE_CR1 = 0XFF;PE_CR2 = 0X00;PE_ODR = 0X00; //初始化开关门指示灯的同时顺便初始化按键使其输出全零扫描码PG_DDR = 0XFF; //初始化方向指示灯PG_CR1 = 0XFF;PG_CR2 = 0X00;PG_ODR = 0XFF;}//初始化内部数码管void DisBegin(void) {PC_DDR = 0XFF;PC_CR1 = 0XFF;PC_CR2 = 0X00;}//初始化键盘输入函数定义void KeyBegin(void) {//初始化键盘输出与输入PA_DDR = 0XFF; //初始化开关门键输出全零扫描码PA_CR1 = 0XFF;PA_CR2 = 0X00;PA_ODR = 0X00;PB_DDR = 0X00; //两个矩阵键盘的输入检测PB_CR1 = 0XFF;PB_CR2 = 0XFF;}//键盘中断初始化函数定义void BreakPoint(void){ITC_SPR2 = 0X03;EXTI_CR1 = 0X08;}//定时器初始化函数定义void TIM1_Init(void) {TIM1_SMCR = 0X00;TIM1_ETR = 0X00;TIM1_SR1 &= 0XEF; //先清除一次更新中断标志TIM1_PSCRH = 0;TIM1_PSCRL = (unsigned char)199; //对2MHz进行200分频,之后频率为10kHzTIM1_IER = 0X01; //开启溢出中断TIM1_ARRH = (unsigned char)(10000 >> 8);TIM1_ARRL = (unsigned char)10000; //数10000次,记为1sTIM1_CNTRH =0 ;//(unsigned char)(20000 >> 8);TIM1_CNTRL =0 ;//(unsigned char)20000; //先溢出一次}//电梯运行函数定义void Running(void) {PC_ODR = DisDisplay[FloorNow];unsigned char FloorLed = 0;for(Index = Floors;Index >= 1; Index --) {FloorLed = FloorLed + floorState[Index];if (Index == 1) break;FloorLed <<= 1;PD_ODR = ~FloorLed;}#pragma vector = 13__interrupt void TIM1_OVF_IRQ(void) {i ++;if(i > 1) {Temp1 ++;if(Temp1 > 1) { //判定为两秒if(floorToGo > 0 && floorToGo < 9) {if(FloorNow < floorToGo) { //去往请求楼层FloorNow ++;PG_ODR = 0XFE; //上指示灯Temp2 = 0;j = 0; //关门bug解决变量回位}else if(FloorNow > floorToGo) {FloorNow --;PG_ODR = 0XFE; //下指示灯Temp2 = 0;j = 0; //关门bug解决变量回位}else if (FloorNow == floorToGo){ //到达楼层DoorJudge();}Temp1 = 0;}else {DoorJudge();}} else;TIM1_SR1 = 0X00; //清除更新中断标志}#pragma vector = 6 //用于判断按下了哪里的按钮__interrupt void KeyScan(void) {TIM1_SR1 = 0X00; //先清除一次更新中断标志TIM1_CR1 = 0X05; //开始计数i = 0;PE_ODR |= 0XFE;PE_ODR &= 0XFD; //内部第一行检测if((PB_IDR & 0X0F) != 0X0F) {delay(50);if((PB_IDR & 0X0F) != 0X0F) {switch (PB_IDR & 0X0F) {case 0X0E:bottonNum = 1;break;case 0X0D:bottonNum = 2;break;case 0X0B:bottonNum = 3;break;case 0X07:bottonNum = 4;break;default:break;}}}PE_ODR |= 0XFE;PE_ODR &= 0XFB; //内部第二行检测if((PB_IDR & 0X0F) != 0X0F) {delay(50);if((PB_IDR & 0X0F) != 0X0F) {switch (PB_IDR & 0X0F) {case 0X0E:bottonNum = 5;break;case 0X0D:;bottonNum = 6;break;case 0X0B:bottonNum = 7;break;case 0X07:bottonNum = 8;break;default:break;}}}PE_ODR |= 0XFE;PE_ODR &= 0XF7; //内部第三行开关请求检测if((PB_IDR & 0X0F) != 0X0F) {delay(50);if((PB_IDR & 0X0F) != 0X0F) {switch (PB_IDR & 0X0F) {case 0X0E: //开门请求{if((FloorNow == floorToGo) || (floorToGo == -1)) {PE_ODR |= 0X01;} else ;}break;case 0X0D: //关门请求PE_ODR &= 0XFE;j ++;break;default:break;}}}PE_ODR |= 0XFE; //用完一次行扫描就关闭本次行扫描码进行其他判断,判断完了重新开就是了PA_ODR = 0XF7; //外部按键第一行检测if((PB_IDR & 0XF0) != 0XF0) {delay(50);if((PB_IDR & 0XF0) != 0XF0) {switch (PB_IDR & 0XF0) {case 0XE0:bottonNum = 1;break;case 0XD0:bottonNum = 2;break;case 0XB0:bottonNum = 3;break;case 0X70:bottonNum = 4;break;default:break;}}}PA_ODR = 0XEF; //外部按键第二行检测if((PB_IDR & 0XF0) != 0XF0) {delay(50);if((PB_IDR & 0XF0) != 0XF0) {switch (PB_IDR & 0XF0) {case 0XD0:bottonNum = 2;break;case 0XB0:bottonNum = 3;break;case 0X70:bottonNum = 4;break;default:break;}}}PA_ODR = 0XDF; //外部按键第三行检测if((PB_IDR & 0XF0) != 0XF0) {delay(50);if((PB_IDR & 0XF0) != 0XF0) {switch (PB_IDR & 0XF0) {case 0XE0:bottonNum = 5;break;case 0XD0:bottonNum = 6;break;case 0XB0:bottonNum = 7;break;default:break;}}}PA_ODR = 0XBF; //外部按键第四行检测if((PB_IDR & 0XF0) != 0XF0) {delay(50);if((PB_IDR & 0XF0) != 0XF0) {switch (PB_IDR & 0XF0) {case 0XE0:bottonNum = 5;break;case 0XD0:bottonNum = 6;break;case 0XB0:bottonNum = 7;break;case 0X70:bottonNum = 8;break;default:break;}}}Step_one(bottonNum);Judge_Direction();Floor_To_Go();//if(HXFloorNow != floorToGo) { //目的楼层亮灯判断if(floorToGo != -1) {PE_ODR &= 0XFE; //电梯移动时的强制关门指令} else;//上下指示灯的行为步骤if (direction == 0){PG_ODR = 0XFD;}else if(direction == 1){PG_ODR = 0XFE;}else{PG_ODR |= 0XFF; //到达楼层,关掉上下指示灯}PE_ODR &= 0X01; //继续输出全零扫描码PA_ODR = 0X00;}//中断内开关电梯门判断程序void DoorJudge(void) {Temp2 ++; //开始计数(10s)PG_ODR = 0XFF; //再次确认关掉上下指示灯if(Temp2 > 5) { //到了10sPE_ODR &= 0XFE; //把门关上Floor_To_Go();}else { //没到10sif(j > 0) { //但是有人按了关门键PE_ODR &= 0XFE; //那就关门Floor_To_Go();}else { //如果没人按键盘PE_ODR |= 0X01; //那就先开着电梯门}}}void delay(unsigned int time) {while(time --);}/**当按钮按下时,将会触发外部中断**//***外部中断的第一步将会修改全局数组*/void Step_one(int bottonNum){if (bottonNum != FloorNow)floorState[bottonNum] = 1;}/***外部中断的第二步将会判断direction变量的取值*/ void Judge_Direction(){int i; bool flag = 0;if (direction == -2) /**此时电梯处于刚开机的状态**/ {direction = 1; /**电梯运行方向为向上**/ }else if (direction == 1) /**当电梯在向上运行时**/ {for (i = FloorNow + 1; i <= Floors; i++)if (floorState[i] == 1){ flag = 1; return; }if (flag == 0)for (i = FloorNow - 1; i >= 1; i--)if (floorState[i] == 1){ flag = 1; direction = 0; return;} if (flag == 0) {direction = -1; return;}}else if (direction == 0) /**当电梯在向下运行时**/{for (i = FloorNow - 1; i >= 1; i--)if (floorState[i] == 1){ flag = 1; return;}if (flag == 0)for (i = FloorNow + 1; i <= Floors; i++)if (floorState[i] == 1){ flag = 1; return;}if (flag == 0) {direction = -1; return;}}else if (direction == -1) /**电梯再次静止**/{int a = 0, b = 0, i, flag1 = 0, flag2 = 0;for (i = FloorNow + 1; i <= Floors; i++)if (floorState[i] == 1){a = i; flag1 = 1;}for (i = FloorNow - 1; i >= 1; i--)if (floorState[i] == 1){b = i; flag2 = 1;}if (flag1 == 1 && flag2 == 1)if (a - FloorNow >= FloorNow - b)direction = 0;elsedirection = 1;if (flag1 == 1 && flag2 == 0)direction = 1;else if (flag1 == 0 && flag2 == 1)direction = 0;else if (flag1 == 0 && flag2 == 0)direction = -1;}return;}/***外部中断的第三步将会反馈此刻电梯应该跑向的楼层的取值*/void Floor_To_Go(){int i = 0;if (direction == -1) { floorToGo = -1; return;}else if (direction == 1) /**当电梯运行方向是向上时,如果发现有一个次对于当前楼层的请求,则返回这个请求数值**/for (i = FloorNow + 1; i <= Floors; i++) { if(floorState[i] == 1) {floorToGo = i; return;}}else if (direction == 0) /**同理于上**/for (i = FloorNow - 1; i >= 1; i--) { if(floorState[i] == 1) {floorToGo = i; return;}}direction = -1;floorToGo = -1;}参考文献[1] 郑诗卫. 印制电路板排版设计. 北京:科学技术文献出版社,1983[2] 潘永雄, 沙何等. 电子线路CAD实用教程.第三版. 西安:西安电子科技大学出版社,2007[3] 潘永雄. 新编单片机原理与应用实验. 西安:西安电子科技大学出版社,2005。