《电梯控制系统的仿真设计论文00724.doc》由会员分享,可在线阅读,更多相关《电梯控制系统的仿真设计论文00724.doc(42页珍藏版)》请在三一文库上搜索。
1、 学学 位位 论论 文文 电梯控制系统的仿真设计电梯控制系统的仿真设计 申请学位专业:计算机科学与技术 电梯控制系统的仿真设计电梯控制系统的仿真设计 摘摘 要要 本课题是以现有的建筑中电梯控制及运行的情况为设计电梯控制系统的参 照准则,设计仿真系统。目的在于深刻理解电梯的运行控制过程,熟练掌握运 用单片机设计仿真系统的过程,且能更好的理解电梯调度的算法。在已有的电 梯群控算法研究中,选择适合的调度算法用于本系统,在此基础上,加入自己 的理解和改进,这是本课题设计的意义所在。以两台六层楼电梯为仿真设计对 象,以 AT89C51 单片机为核心,辅以相应的软硬件,设计仿真电路图,用 LED 和数码管
2、输出显示,以此来表征电梯的各种运行状态及规律。利用电梯群 控算法的一些思想来实现双路电梯的控制,较为真实的模拟出用于 6 层建筑的 双路电梯的控制系统。该系统体积小,运行稳定,在传统“忙梯”算法上有一 定的改进。软件的设计过程采用模块化的编程思想,条理清晰,模块功能分明。 关键词关键词:双路电梯;电梯调度;单片机仿真;并联电梯算法 The Simulation Design of Elevator Control System Abstract This issue is based on the reference criteria of the elevator control and o
3、peration of the elevator control system in existing building to design the simulation system. The aim is to deeply understand the operational control process of lift, and master the design process of simulation system with microcontroller and the various scheduling algorithm of elevator. On the basi
4、s of existing elevator group control algorithm, I select the appropriate algorithm and improve it, which is the significance of the design. We choose two parallel connection elevators of six floors as the simulation design object, the 80C51 microcontroller as the core, supplemented by the appropriat
5、e hardware and software, then design simulation circuit, setting the output display with LED, in order to show the characterization of the various running. Using a number of ideas of elevator Group Control algorithm achieve reasonable control to the two parallel connection elevators, actual simulati
6、ng the control system for two parallel connection elevators in six-storey building. The system is small, stably operated, and has some improvements based on the traditional “busy staircase“ algorithms. The design process of the software adopted the modularization programming ideas, and rather be cle
7、ar consecution, distinct function. Key words: dual lifts; elevator scheduling; microcontroller simulation; parallel connection elevator algorithm 目目 录录 论文总页数:36 页 1 引言1 1.1 课题背景1 1.2 国内外研究现状1 1.3 本课题研究的意义2 1.4 本课题的研究方法2 2 开发工具简介3 2.1 AT89C51 单片机.3 2.2 编程软件3 2.3 模拟软件3 3 需求描述4 3.1 模拟对象4 3.2 按钮情况4 3.3
8、运行状态显示情况4 3.4 电梯控制系统功能要求4 3.4.1 响应外部请求功能4 3.4.2 响应内部请求.5 3.4.3 显示信息功能.5 3.5 用户特点5 3.6 使用频度5 3.7 处理流程6 4 仿真电路图设计7 4.1 设计仿真电路图7 4.2 仿真图说明7 5 系统结构设计9 5.1 模块设计9 5.2 系统处理流程10 5.3 系统结构描述11 5.4 功能与程序的关系11 6 单片机编程12 6.1 单片机引脚使用情况12 6.1.1 从机引脚使用说明.12 6.1.2 主机引脚使用说明.12 6.2 串行通信12 6.2.1 需求概述12 6.2.2 串行通信概述.13
9、6.2.3 本设计中的串行通信具体说明.13 6.3 中断13 6.3.1 需求概述.13 6.3.2 中断概述.13 6.3.3 串行通信中断.14 6.3.4 定时/计数器中断14 6.4 定时器设置14 6.4.1 串行通信定时设置.14 6.4.2 定时/计数器设置14 6.5 行列式键盘15 6.5.1 段数码管动态扫描显示15 6.5.2 LED 灯泡显示16 7 软件设计概述17 7.1 软件设计总体流程17 7.2 电梯群控概述18 7.3 忙梯算法18 7.3.1 算法概述18 7.3.2 算法评价.19 7.3.3 算法的改进之处.19 7.4 电梯调度算法流程21 7.5
10、 程序代码及说明21 7.5.1 确定请求类型函数.21 7.5.2 运行参数设置函数.23 7.5.3 外部请求处理函数.24 7.5.4 电梯调度算法.25 8 测试27 9 评价32 9.1 总体评价32 9.2 缺陷与不足32 9.3 需改进之处32 结束语32 参考文献34 致 谢35 声 明36 第 1 页 共 36 页 1 1 引言引言 1.11.1 课题背景课题背景 电梯是现代生活中必不可少的高层建筑垂直交通的工具。随着生活水平 的不断提高,高层建筑规模的不断扩大,出现越来越多的电梯公寓,电梯办 公楼,且人们对电梯运行的效率要求也越来越高。电梯客流量的不断增多, 单部电梯已经远
11、远不能满足及时高效的要求。因此,高层建筑的电梯大多采 取双路或多路电梯共同作业的方式。然而仅靠电梯数量的增加,不仅不能满 足现代楼宇的多种要求,还会带来诸如环境污染、能源消耗、运行效率低的 问题。于是,多路电梯并联的控制问题则成了首要应解决的问题。为了进一 步的提高电梯运载效率,更好的为乘客服务,合理的电梯的调度算法,则成 为了研究的重点问题。电梯群控技术,则是在这样的背景下提出的,用来解 决复杂的、非线性、不确定性的多目标随机决策问题。 电梯群控技术对改 善电梯控制方式,提高运载效率有很大的意义,能在提高系统服务质量和运 营效率的同时降低能耗 。当前电梯群控技术的研究有丰富的成果,比如基于
12、神经网络算法控制的,基于模糊算法的解决方案,考虑乘客混杂度的电梯智 能群控算法,多目标优化的群控算法等等。本课题基于现有楼宇中的双路电 梯控制系统和前人群控算法研究的背景来设计实施的。 1.21.2 国内外研究现状国内外研究现状 从有关的文献看,对于电梯控制系统的单片机仿真设计不太多,注重单片 机等有关电子器件的使用和电路设计。另一方面,由于现代高层楼宇的电梯 大都采用两台或三台甚至多台电梯集中排列并列调度的方法,所以电梯群控 技术成为这一领域研究的重点问题。电梯群控系统是通过对电梯群的运行状 态进行实时监测与分析 ,再根据不同的实际情况对各电梯进行优化调度和合 理分配,进而实现电梯系统对乘客
13、的服务质量和服务效率的改善和提高的目 标。国内外对于电梯群控技术的研究有较为丰富的成果。在中国期刊全文数 据库中,及中国优秀硕士论文全文数据库中可以找到的有关电梯群控技术的 相关文章较多,大体分为以下几种研究方向,基于遗传算法的电梯群控系统 研究、基于模糊神经网络的电梯群控系统研究,多目标优化的智能调度算法 研究及人工智能在电梯群控系统中的应用等。国外也有众多关于电梯群控技 术的相关文献,在 MERL 的网站上,和 IEEE Explore 的网站上都可以查阅到 第 2 页 共 36 页 许多关于电梯群控技术的文献。国内外的研究都注重电梯运行效率的提高, 努力达到实时高效运行的目标。 1.31
14、.3 本课题研究的意义本课题研究的意义 本课题的研究有五个方面的意义:首先,仿真图的设计,能提高设计者 对模拟软件的熟练使用程度,且在对电梯仿真的过程中,锻炼设计者尽量使 用简洁明了的方式来表征电梯的运行过程。其次,单片机编程,通过这个细 致的工作过程,能对单片机的各种功能、使用方法、各种规范有进一步的理 解,对其应用也更加熟悉。再次,电梯调度算法的设计和实施,这是本课题 研究的核心部分。通过对电梯运行及控制深入的了解,归纳出电梯运行的规 范,在深刻理解的基础上采用合适的算法解决。通过这个过程,提高的设计 者在算法实现过程中的逻辑思考及模块化的编程能力,而且对于算法的进一 步改进,提高了原有算
15、法的效率,这是在课题研究过程中收获颇大的一个方 面。最后,整个设计过程是逐步有序进行的,需要统筹安排及合理布局,这 样锻炼了设计者在软件设计实现过程中使用软件工程的思想及方法有效完成 工作的能力。 1.41.4 本课题的研究方法本课题的研究方法 由于两部电梯之间的相互关联性很强,程序设计比较复杂,因此在双电 梯联动控制系统的软件部分时,主要采用 8 位单片机编程,用模块化的编程 思想来进行设计。这样有利于突破沿用继电器构成的线路的局限,利用微处理 器强大的算术逻辑运算和通信功能,采用实时调度算法,实现快速服务,达 到较佳的运行效率。 设计过程分为三个步骤进行,一是仿真图设计,二是单片机编程,三
16、是 电梯调度算法。在仿真图设计完成的基础上,采用模块化的编程思想,完成 显示模块,按键模块及通信模块三个与单片机联系密切的模块的编程。然后 在模拟软件上测试连线及各部分输入输出的连线及输入输出正确与否。在这 些工作全部完成的情况下,完成电梯调度算法模块的编程。最后在仿真软件 是上模拟实施,同时测试运行情况,若发现问题,则再修改程序,逐步完善。 由于电梯控制系统实际上是一个人机交互式的控制系统,因此单纯采用顺序 控制或逻辑控制是不能够满足要求的,而应该在设计中采用随机逻辑控制方 式。 第 3 页 共 36 页 2 2 开发工具简介开发工具简介 2.12.1 AT89C51AT89C51 单片机单
17、片机 AT89C51 是一种带 4K 字节闪烁可编程可擦除只读存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能 CMOS8 位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除 100 次。 该器件采用 ATMEL 高密度非易失存储器制造技术制造,与工业标准的 MCS-51 指令集和输出管脚相兼容。由于将多功能 8 位 CPU 和闪烁存储器组合在单个 芯片中,ATMEL 的 AT89C51 是一种高效微控制器,AT89C51 是它的一种精简版 本,其特点是:与 MCS-51 兼容 ,8 位 CPU,片
18、内带振荡器,频率范围 1.2MHz12MHz、片内带 128 字节的数据存储器,片内带 4KB 的程序存储器, 程序存储器的寻址空间为 64KB,片外数据存储器的寻址空间为 64KB,有 21 个字节特殊功能寄存器,4 个 8 位并行 I/O 口,2 个 16 位定时/计数器,2 个 优先级别的 5 个中断源,1 个全双工的串行 I/O 接口,可多机通信。 2.22.2 编程软件编程软件 Keil uVision:Keil uVision 为一款单片机的开发软件,支持汇编语言 及高级语言的开发。Keil 软件是目前最流行开发 MCS-51 系列单片机的软件。 Keil 提供了包括 C 编译器、
19、宏汇编、连接器、库管理和一个功能强大的仿真 调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部 份组合在一起。运行 Keil 软件需要 Pentium 或以上的 CPU,16MB 或更多 RAM,20M 以上空闲的硬盘空间,WIN98、NT、WIN2000、WINXP 等操作系统。 2.32.3 模拟软件模拟软件 Proteus:Proteus 软件是来自英国 Labcenter electronics 公司的 EDA 工具软件,具有原理布图、PCB 自动或人工布线及电路仿真的功能。他的电路 仿真是互动的,针对微处理器的应用,能直接在基于原理图的虚拟原型上编 程,并实现
20、软件源码的实时调试,如有显示及输出,还能看到运行后输入输 出的效果。 第 4 页 共 36 页 3 3 需求描述需求描述 3.13.1 模拟对象模拟对象 仿真设计的模拟对象为学院图书馆的双路电梯,共 6 层及-1 层。 3.23.2 按钮情况按钮情况 每层楼的电梯门外有向上和向下的要梯按钮各一个(6 楼只有向下的要梯 按钮,-1 楼只有向上的要梯按钮) 。按下按钮,按钮灯亮,表示请求已被记录, 再次按下,则灯熄灭,表示请求取消。两个电梯轿厢内有 11 个按钮,分别有 表示-1 楼至 6 楼的共 7 个楼层请求按钮,开/关门按钮 2 个,报警按钮 1 个, 呼叫按钮 1 个。楼层及开/关门按钮都
21、是按下时亮,再次按下时熄灭。报警及 呼叫按钮在异常情况下使用。 3.33.3 运行状态显示情况运行状态显示情况 电梯外部和轿厢内都有显示屏幕,显示电梯运行到哪一层,同时还显示 当前电梯的运动方向。若电梯停在某一层,则电梯运动方向无显示,只显示 当前楼层号。内外对于运行情况的显示是相同的。 3.43.4 电梯控制系统功能要求电梯控制系统功能要求 3.4.13.4.1 响应外部请求功能响应外部请求功能 能响应用户在电梯外的乘梯请求,从两路电梯中选出路径最短,代价最小 的一路电梯到达用户所在楼层。具体细则如下: 1) 外部请求响应规则: (1) 若电梯运行向上,在上行方向上有多个向上用户请求,则按
22、顺序先响应最近端的请求。若为多个向下请求,则按顺序从 最远端开始响应。 (2) 若电梯运行向下,在下行方向上有多个外部向下请求,则从 近端开始响应,多个向上请求,则从最远端开始响应。 2) 电梯响应外部请求时,应先遍历电梯当前楼层以上或以下的楼层 是否有请求信号(若有向下请求,则遍历当前楼层以下的所有楼层,反之, 则相反)按规则 1)响应,到达响应有请求的楼层。 3) 当电梯响应了某楼层的外部请求,此时在相同方向上更高(更低) 第 5 页 共 36 页 的楼层又有请求出现,则作为中断处理,按响应规则,先响应更高层(更 低层)的请求。执行完后,在转回执行之前未完的请求。 3.4.23.4.2 响
23、应内部请求响应内部请求 能响应用户在电梯内的楼层选择,到达乘客想要到达的目的楼层的请求。 能响应单个,也能按顺序响应多个合理请求。具体细则如下: 1) 当用户选择要达到的楼层不在用户所选择的方向上,且该方向上 沿途还有其他用户的相同方向请求(如用户请求到达的楼层高于当前电梯 楼层数,且用户在外部发出的请求是向下的,而且在下行方向是还有其他 用户的向下请求)则不予响应。当用户选择要达到的楼层不在用户所选择 的方向上,且该方向上沿途没有其他用户的相同方向请求,则响应。 2) 当用户选择要达到的楼层为用户所在楼层,视为不合理请求,不 予响应。 3) 若在同一方向上,同时有多个合理请求,则按顺序完成,
24、即若向 上运行,则响应的请求顺序为从低到高,若向下运行,则响应请求顺序为 从高到低。 3.4.33.4.3 显示信息功能显示信息功能 能对电梯的运行状态做实时显示。 1) 在电梯外部能显示电梯当前电梯运行的方向,当前所在楼层。 2) 能显示当前外部的请求。 3) 在电梯内部能显示电梯当前电梯运行的方向,当前所在楼层。 4) 能显示用户在电梯内部的内部请求,即用户目的地。 3.53.5 用户特点用户特点 普通用户:出入图书馆的学生、老师、工作人员及来访者及电梯维护人 员。人员无具体限制, (严重心脏病,高血压,及精神病患者需有人陪同)只 要有乘坐电梯需要的用户,均会使用到该系统,为最终操作人员。
25、 维护人员:需要有电梯维修的技术专长,为被指定的维修人员。 3.63.6 使用频度使用频度 因人流量大,软件使用频率很高。每天从早上 8 点至晚上 10 点,中间不 第 6 页 共 36 页 间断作业。 3.73.7 处理流程处理流程 处理流程主要通过数据流图来表现,如图 3-1 和图 3-2。 图 3-1 数据流图第一层 用用户户 1 判判断断电电梯梯空空闲闲否否 A 外外部部请请求求 2 空空闲闲启启动动 B空空闲闲信信息息 在在用用户户层层停停 接接收收请请求求信信号号 请请求求楼楼层层 用用户户 判判断断空空闲闲否否 外外部部请请求求 楼楼层层信信息息 无无空空闲闲 请请求求方方向向
26、请请求求楼楼层层 正正确确楼楼层层请请求求 判判断断运运行行方方向向 选选择择同同向向电电梯梯响响应应 判判断断请请求求的的合合理理性性 运运行行 到到达达楼楼层层 到到达达楼楼层层 显显示示 故故障障情情况况 故故障障信信息息 故故障障信信息息 报报警警 到到达达楼楼层层 启启动动信信息息 运运行行方方向向及及楼楼层层反反馈馈 到到达达用用户户楼楼层层反反馈馈 不不合合理理请请求求反反馈馈 选选择择楼楼层层 图 3-2 数据流图第二层 电梯 用户 反馈信息 请求信号 故故障障情情况况 第 7 页 共 36 页 4 4 仿真电路图设计仿真电路图设计 4.14.1 设计仿真电路图设计仿真电路图
27、根据考察的电梯运行情况,设计电路图,要求直观,简洁,操作简便。 仿真图如图 4-1 所示。 图 4-1 仿真电路图 4.24.2 仿真图说明仿真图说明 1) 从机:图 4-1 中左边的单片机为从机,负责数据采集。 (1) 两列按键:共 10 个,表示每层电梯外部的向上和向下的要梯请求 按钮。左边一列的 5 个按键表示 1-5 层的外部向上按键。右边一 列的 5 个表示 2-6 层的外部向下按键。这样将对每层按钮的模拟 按键集中在一处,便于操作和模拟时便于观察。实际电梯有 6 层 再加上-1 层。为设计和表示的方便,只取了 6 层,没有设计-1 层。 (2) 两个 4x4 键盘按键:表示电梯的内
28、部按键,左边键盘表示左边电 梯内部按键,右边键盘表示右边电梯内部按键。电梯内部有 1-6 楼的楼层选择按键,还有开/关门的按键,共 8 个。故选用键盘的 XTAL2 18 XTAL1 19 ALE 30 EA 31 PSEN 29 RST 9 P0.0/AD0 39 P0.1/AD1 38 P0.2/AD2 37 P0.3/AD3 36 P0.4/AD4 35 P0.5/AD5 34 P0.6/AD6 33 P0.7/AD7 32 P1.0 1 P1.1 2 P1.2 3 P1.3 4 P1.4 5 P1.5 6 P1.6 7 P1.7 8 P3.0/RXD 10 P3.1/TXD 11 P3
29、.2/INT0 12 P3.3/INT1 13 P3.4/T0 14 P3.7/RD 17 P3.6/WR 16 P3.5/T1 15 P2.7/A15 28 P2.0/A8 21 P2.1/A9 22 P2.2/A10 23 P2.3/A11 24 P2.4/A12 25 P2.5/A13 26 P2.6/A14 27 U3 AT89C51 123 654 89 = 7 + +C ON 0 A B C D 1 2 4 3 123 654 89 = 7 + +C ON 0 A B C D 1 2 4 3 XTAL2 18 XTAL1 19 ALE 30 EA 31 PSEN 29 RST 9
30、P0.0/AD0 39 P0.1/AD1 38 P0.2/AD2 37 P0.3/AD3 36 P0.4/AD4 35 P0.5/AD5 34 P0.6/AD6 33 P0.7/AD7 32 P1.0 1 P1.1 2 P1.2 3 P1.3 4 P1.4 5 P1.5 6 P1.6 7 P1.7 8 P3.0/RXD 10 P3.1/TXD 11 P3.2/INT0 12 P3.3/INT1 13 P3.4/T0 14 P3.7/RD 17 P3.6/WR 16 P3.5/T1 15 P2.7/A15 28 P2.0/A8 21 P2.1/A9 22 P2.2/A10 23 P2.3/A11
31、 24 P2.4/A12 25 P2.5/A13 26 P2.6/A14 27 U2 AT89C51 2 3 4 5 6 7 8 9 1 RP2 RESPACK-8 D1 LED-GREEN D2 LED-GREEN D3 LED-GREEN D4 LED-GREEN D5 LED-GREEN D6 LED-RED D7 LED-RED D8 LED-RED D9 LED-RED D11 LED-RED x为开门。-为关门 2 3 4 5 6 7 8 9 1 RP1 RESPACK-8 2 1 3 4 5 6 6 5 5 4 4 3 3 2 2 1 第 8 页 共 36 页 中间两排,1-6
32、数字按键就表示相应的楼层号,x 表示关门,表 示开门。这里没有设计报警和呼叫按键。其原因是因为:其一、 这两个按钮只在异常情况下使用,不常用。其二、对报警和呼叫 按钮的模拟只需添加一个蜂鸣器,按下键则发出蜂鸣声来表示报 警或者呼叫,设计相对简单。因为两片单片在主要的功能实现完 后,I/O 口已经不够用了,所以就省略了该功能。 2) 主机:图 4-1 中右边的单片机为主机,负责数据处理和显示。 (1) 蓝色八段数码管:共 8 个,一组 4 个。显示的数字表示在电梯内 部用户选择的目的楼层号。左边数码管的显示表示左边电梯用户 的选择,右边的数码管则相应表示右边的楼层选择。电梯内部共 有 6 个楼层
33、选择的按键,实际应是能响应同时 5 个目的楼层的选 择请求(当前层除外) ,但由于单片机 I/O 口有限,只能同时响应 4 个楼层选择请求。由于是仿真软件,重要的是要仿真出电梯系 统的运行和控制过程,所以少一个请求并不会对运行效果有太多 影响。 (2) 红色八段数码管:共两个,用于显示电梯运行到的当前楼层号。 也分左右,分别显示左右两部电梯所在的当前楼层号。电梯在运 行过程中,显示的楼层号,根据其运行到的楼层实时更新。根据 输出要求,电梯内部和电梯外部都应有电梯运行到的当前楼层的 显示,且二者显示的内容是完全相同的,所以为了节约 I/O 口的 使用,将二者用一组数码管显示。 (3) LED 灯
34、管:共 10 个,与左边的 10 个按键对应,是 10 个按键请求 的输出显示表示所有楼层的外部请求。这里将按键与显示分开表 示,与实际梢有不同,但这样表示显得直观,能在仿真过程中, 看到所有楼层要梯请求的情况。灯泡分为向上和向下两组,间隔 排列,从上到下依次为向下,向上如此间隔的顺序。响应的楼层 及请求方向见图上标注。向上显示用红色灯表示,向下的显示用 绿色灯表示。操作时当左边外部按键有键被按下时,对应楼层的 灯就应该被点亮。当电梯响应请求,运行到外部请求所在的楼层 时,该楼的灯就熄灭,表示请求已经被应答。 第 9 页 共 36 页 5 5 系统结构设计系统结构设计 5.15.1 模块设计模
35、块设计 根据需求功能要求描述,电梯控制系统才用模块化的编程思想,将整个 系统大体划分为 4 个模块。数据采集模块,通信模块,数据处理模块和显示 模块。数据采集模块负责采集从机接收的数据,即记录按键的情况。通信模 块负责从机与主机之间的数据传送,从机只传送数据,主机只接受数据。数 据处理模块负责将接受到从机传送来的数据进行处理,利用电梯调度算法, 合理调度,控制电梯运行。显示模块负责显示接收到的请求数据,和处理模 块处理后的结果。模块之间的关系如图 5-1。 数据采集模块串行通信模块 数据处理模块显示模块 原始数据 原始数据 原始数据 处理后结果 图 5-1 模块结构图 第 10 页 共 36
36、页 5.25.2 系统处理流程系统处理流程 系统处理流程如 5-2 处理流程图所示。 开始 按键 键盘按键? 二次按键? (取消请求) N 通信,传递数据 N 显示外部请求 算法1调度 最佳电梯响应请求 到达请求所在楼 层? 显示电梯当前 所在楼层 Y 显示当前楼层, 等待操作 按键? N N Y 初始运行 Y Y 二次按键? (取消请求) N 通信,传递数据 N 显示内部请求 算法2调度 电梯运行 到达目的地? 显示电梯当前 所在楼层 N 所有请求执行完? Y N 结束 Y 图 5-2 处理流程图 第 11 页 共 36 页 5.35.3 系统结构描述系统结构描述 系统结构主要描述系统中不同
37、模块之间的关系,如图 5-3 系统结构图所示。 取得按键扫描码 按键,输入数据 按键数据 转换键码 数据采集模块 通信模块 数据处理模块 编辑楼层数据 识别外部请求数 据 扫描码转换为楼层 数据 按键数据 按键键码 取得楼层数据 按键扫描码 按键扫描码 楼层数据 楼层数据 楼层数据 有效数据 模拟电梯控制系统 有效数据 有效数据 有效数据 有效数据 识别内部请 求数据 外部调度算法 显示 有效数据 外部请求数据 外部请求数据 内部调度算法 有效数据 内部请求数据 内部请求数据 得出最佳响应电梯 外部请求数据 最佳电梯 运行电梯 最佳电梯 判断到达否显示 得出目的地 电梯运行 内部请求数据 目的
38、地 目的地 到达否 状态 到达 到达 状态 到达 到达 图 5-3 系统结构图 5.45.4 功能与程序的关系功能与程序的关系 功能与程序的关系如表 5-1 所示。 表 5-1 功能和程序关系表 按键 程序 通信 中断 外部请 求响应 外部电 梯调度 内部请 求响应 内部电 梯调度 外部请 求显示 内部请 求显示 电梯当前 所在楼层 显示 数据采集 通信 外部数据处理 内部数据处理 外部数据显示 内部数据显示 第 12 页 共 36 页 6 6 单片机编程单片机编程 6.16.1 单片机引脚使用情况单片机引脚使用情况 6.1.16.1.1 从机引脚使用说明从机引脚使用说明 单片机的最小系统电路
39、一般情况不用画出。除此之外,P0 口工作在 I/O 方式下,接收 2-5 层电梯外部按键输入的数据,因为 1 层楼只有向上请求,6 层楼只有向下请求,与其他楼层稍有差别,且 P0 口已经分配完毕,故将 1 层 和 6 层的线单独接到 P3 口。因为 P0 口作为 I/O 输入,所以必须接上拉电阻。 P1 口工作在 I/O 方式下,接收左边电梯内部键盘按键输入的数据。因为电梯 内部按键只设计了 8 个,故 4x4 的键盘,只选取了中间的两行使用。为方便 行列式键盘编程,两条列线接 P1.1 和 P1.2。P1.0 和 P1.3 悬空,默认为高电 平。四条行线依次接 P1.4-P1.7。P2 口工
40、作在 I/O 方式下,接收右边电梯内 部键盘按键输入的数据,其电路连接情况与 P1 口相同。P3 口的 P3.6 和 P3.7 工作在 I/O 方式下,接收电梯外部按键 6 层和 1 层的请求。P3.0 和 P3.1 采用 的是其第二功能 RTD 和 TXD,分别用于串行通信的输出和输入。 6.1.26.1.2 主机引脚使用说明主机引脚使用说明 P0 口工作在 I/O 方式下,作为 2 个红色八段数码管的显示段选输出,由 于没有用到小数点,故 cp 悬空,P0.7 默认为高电平。P1 口工作在 I/O 方式 下,作为 8 个蓝色八段数码管的片选输出。P2 口工作在 I/O 方式下,将 2-5
41、楼层的接收外部请求的输出显示。P3 口的 P3.4 和 P3.5 工作在 I/O 方式下, 将电梯外部按键 6 层和 1 层的请求输出。P3.6 和 P3.7 工作在 I/O 方式下,作 为 2 个红色八段数码管的片选输出。P3.0 和 P3.1 采用的是其第二功能 RTD 和 TXD,分别用于串行通信的输出和输入。 6.26.2 串行通信串行通信 6.2.16.2.1 需求概述需求概述 在设计过程中,由于仿真 6 层电梯,每层都需要有对应的向上或向下要梯 的 10 个输入按钮,每个轿厢内要有 8 个按钮,对按钮的显示相应有 LED 显示, 一个单片机的 I/O 口不够用,所以设计中采用两快单
42、片机,这就涉及两块单 片机的通信问题。 第 13 页 共 36 页 6.2.26.2.2 串行通信概述串行通信概述 串行通信是指数据一位一位的按顺序传送的通信方式,其突出优点是只 需一根传输线,大大降低了传输成本,特别适用于远距离通信,通信线路简 单。缺点是传送速度较低。有同步传送和异步传送两种方式。串行通信可通 过串行接口来实现。 单片机内部有一个可编程的,全双工的异步串行接口 SBUF,有两个独立 的发送缓冲和接受缓冲器,对外也有两条独立的收、发信号线 RXD 和 TXD,可 以同时发送、接受数据,实现全双工传送。发送、接受数据可通过查询或中 断方式处理,使用十分灵活,可实现双机、多机通信
43、,有四种工作方式。 6.2.36.2.3 本设计中的串行通信具体说明本设计中的串行通信具体说明 由于只有两块单片机,只需双机通信,且单片机的电器特性决定传输数 据误差很少,可以不需要奇偶校验,所以本设计利用串行接受在工作方式 1 下进行异步串行通信。工作方式 1 是 8 位异步通信方式,波特率可变。这里 波特率由定时/计数器 T1 的溢出率和电源控制寄存器 PCON 中的 SMOD 决定, 所以在工作方式 1 下,要对定时/计数器 T1 进行初始化。编程过程中设定波 特率为 1200bps,振荡频率为 12MHz。设计中通信的数据格式都有一定的规定, 相应的位数有特殊的意义,是为配合算法来规定
44、的,在后面调度算法中详细 介绍。 6.36.3 中断中断 6.3.16.3.1 需求概述需求概述 由于电梯控制系统实际上是一个人机交互式的控制系统,因此单纯采用 顺序控制或逻辑控制是不能够满足要求的,而应该在设计中采用随机逻辑控 制进行实时控制。实时控制自然需要用到中断完成。另一方面,串行通信采 用中断方式,也能节约 CPU 查询等待的时间,提高运行效率。 6.3.26.3.2 中断概述中断概述 AT89C51 单片机提供了 5 个硬件中断源,2 个外部中断源 INTO 和 INT1,2 个定时/计数器 T0 和 T1 的溢出中断 TF0 和 TF1,1 个串行口发送 TI 和接收 RI 中断
45、。AT89C51 的中断系统,是通过以下几个特殊功能寄存器来控 制的。定时器控制寄存器 TCON,中断允许寄存器 IE,中断优先级寄存器 IP, 第 14 页 共 36 页 串行口控制寄存器 SCON。中断过程,是通过操作以上寄存器的各位来控制的。 6.3.36.3.3 串行通信中断串行通信中断 AT89C51 的串行口中断源对应两个中断标志位 RI 和 TI,无论哪个标志位 置“1”都请求串行口中断,到底是发送中断还是接收中断,只有在中断服务 程序中通过指令查询来判断。串行口中断响应后,不能由硬件自动清零,必 须由软件对 TI 或 RI 清零。在程序中,需首先设置中断允许总控位 EA 和串行
46、 口中断允许位 ES 为“1” ,然后才能进行串行通信中断,在发送端(从机)通 过判断 RI 来进行数据传送,在接收端(主机)通过判断 TI 来接收数据。 6.3.46.3.4 定时定时/计数器中断计数器中断 定时/计数器中断是由 TF、ET 两个标志位控制的。当定时/计数器 TO/TI 溢出时,由硬件置 TF 为“1” ,向 CPU 发送中断请求,当 CPU 响应中断后,由 硬件自动清除 TF。ET 为定时/计数器的溢出中断允许位,当 ET 为“1”时, 才允许中断。程序中,中断的初始设置为 ET0=1。TF 由硬件自动设置。 6.46.4 定时器设置定时器设置 6.4.16.4.1 串行通
47、信定时设置串行通信定时设置 串行通信中工作方式 1 需设置波特率,波特率由定时/计数器 T1 的溢出 率和电源控制寄存器 PCON 中的 SMOD 决定,所以在工作方式 1 下,要对定时/ 计数器 T1 进行初始化。串行通信时,定时器通常采用定时器方式 2 即 8 位重 装计数方式,这样不但操作方便,也可避免指令重装时间常数带来的定时误 差。 定时/计数器的工作方式、计数(定时)值、中断控制等都是有程序来设 定的,在 AT89C51 单片机中,是通过特殊功能寄存器 TMOD(定时器方式控制 寄存器)和 TCON(定时器控制寄存器)来设置的。程序中设置 TMOD=0x21, 即定时/计数器 1
48、在工作方式 2 下,定时方式。设置 TCON 中的 TR1=1,表示开 始计数。由于编程过程中设定波特率为 1200bps,振荡频率为 12MHz。 计数初值=256- /(12*波特率*32)=0xe6 osc f SMOD 2 所以 TH1=0xe6,TL1=0xe6。 第 15 页 共 36 页 6.4.26.4.2 定时定时/计数器设置计数器设置 电梯的运行过程首先是 idle(空闲) ,收到一个请求,进行计算,得出要 停靠的地方,然后进入 running,每 5 秒爬升或降低一楼,如果到达目的地, 则进入 opening,并清除有关数据,2 秒后进入 waiting,等待 5 秒进入
49、 closing,2 秒后重新进行计算,得出下次的目的地。这就需要设置电梯的速 度,每 5s 爬一层,等待时间为 5s,等待接受请求的时间为 2s。由于定时/计 数器方式 1 为 16 位计数器,其所能计的最大数值为 65535,计时不能 1s,而 程序中需要的定时都是以 s 为单位的,所以就只有利用定时和计数两种当时 结合来达到定时 5s 或者 2s。由于程序中需要定时的时间不只一个,只使用一 个定时器,要达到要求,采用以下的思路:定时 50ms,计数 20,这样可以达 到 1s 的时间,然后再利用 for 循环,用一个变量来计数到 2 或者 5,表示是 达到了 2s 或者 5s ,这样就能灵活的操作不同状态下的时间了。程序中设置 TOMD=0x21,即定时/计数器 0 在工作方式 1 下,定时方式。设置 TRO=1,开始 计数。计数初值有公式计算得出 TH0=0x3c,TL0=0xb0。 6.56.5 行列式键盘行列式键盘 单片机系统的键盘一般使用非编码键盘,其特点是硬件电路简单,必须 有一套相应的程序与之配合。使用非编码键盘,需要用软件来解决按键识别、 防止
链接地址:https://www.31doc.com/p-3960603.html