没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
模拟电梯的设计与实现
一、实验目的
.了解电梯调度算法。
.利用微机实验系统来模拟电梯。
.进一步掌握微机接口的设计方法。
二、实验内容与要求
1.设计基本要求
用键盘、发光二极管和 LED 显示单元来模拟电梯工作过程。楼层设为 8 层,用键盘
键入希望停的楼层, 5 个 发光二极管显示希望停的楼层,LED 指示电梯当前所在楼层,
回车键用来启、停电梯。电梯正常运行时以每 2 秒1层的速度上升或下降。
三、电梯的工作方式
电梯工作按以下方式运行:
.假设当前电梯停在某层( 显示相应楼层, 个发光二极管全灭)。键入数字
键,如键入的数字与当前电梯停靠层相同,则什么也不做,若不同则相应楼层的发光二极
管亮;电梯自动判别上升或下降(在运行过程中用八段码来显示楼层变化)一直到达希望
停的楼层(八段码显示该楼层,相应灭)。
.假设当前电梯正在上升或下降运行(此时八段码显示楼层变化,指示希望抵
达的楼层),若键入新的希望停靠的楼层数字(相应的亮),则对同方向(上升或下
降)未到的楼层能停靠,对其它情况则先停靠原先希望停的楼层,然后继续运行)。
如下几例:
) 设电梯当前在 层,向上运行, 指示希望在 层停,此时若键入 ,则电梯
将在 楼停,然后继续运行至 层停;
) 同上情况,若键入的不是 而是 ,则电梯将先停在 层,然后运行至 层停;
) 同上情况,若键入的不是(或 ),而是 ,则电梯先停在 层,然后运行至1
层停。
四、总体设计思路
本设计主要是利用微机应用实验平台来模拟电梯的运行,用到了平台上的一个非编码
键盘、 显示器、八段数码管等模块。
有 个楼层,需要用 个按键模拟电梯中的请求按钮, 个按键模拟 个楼层每层向
上请求的按钮,再用 个模拟 个楼层每层向下请求的按钮。使用键盘数字键 表示电
梯内部请求,非编码键盘中上面 个表示每个楼层向上的请求,下面的 个表示每个楼层
向下的请求。当电梯静止状态时,无论外部哪一层有请求,电梯都由静止状态转入向上或
向下运行的状态,直到到达请求的楼层;当电梯处于向上运行的状态时,此时高于该楼层
向上的请求和内部请求级别最高,其次是所有楼层向下的请求,再次是低于该楼层向上的
请求;当电梯处于向下运行的状态时则情况相反。
由于中断级别在随着电梯所处楼层的不同而变化,而且中断源比较多。所以用每一个
中断源直接和中断控制器相连,需要用到多个 级联,很不方便。为解决这个问题,
首先定义三个单字节变量 、 和 分别存储电梯每一层向
上、向下和内部的请 求,每一个变 量 用 位,每一位代表一层。例如, 为
,这代表在 层和 层有向上的请求。 定时器每隔 产生一次中断,中
断程序便去执行扫描键盘,当扫描到有电梯内部或者外部按键时,将请求存储到变量中。
每到一个状态时再检查请求变量 和 的值,根据电梯的
运行方向和变量中的请求,来决定电梯下一步的运行。
设电梯的当前楼层为 ,运行方向为 (,向上;,向下),
在电梯运行的工程中,用数码管输出 值显示当前的楼层。 输出的值显示电
梯内已经请求的楼层。
五、系统硬件电路设计
系统利用了微机平台上的 定时计数器、 并行接口单元、 单元、非编码
键盘、数码管显示单元以及 机内部的 等等。
系统结构框图,如图 所示。
图 1 系统结构框图
主要的模块如下:
!"#
$
口
口
口
显示
模块
%
%
非编码键盘
个发光二
极管
片选
.可编程定时计数器
定时计数器 主要是用于定时 ,触发中断进行键盘扫描。
. 并行接口单元
主要是用于键盘的扫描和发光二极管的数据输出。 口、 口输出, 口输入,
方式 , 口 位接 段数码管数据线上, 口低四位接数码管位选线上(也是键盘列选
线), 口 位接发光二极管, 口低四位接键盘行选线上
.非编码键盘
本系统采用的是行反转法来扫描键盘的,调用键盘扫描的程序 %& 后,程序中
的变量 & 的值就是按下的键的值,如果 & 为 ' 则表示无键盘输入,为 ~则
按照上往下从左往右的顺序分别代表每一个按键按下的信息。不过此扫描程序没有考虑到
多个按键同时按下的情况。又因为模拟电梯的按键一般不会有两个按键同时按下的情况,
所以,多个按键的情况可以不予考虑。
六、软件设计
本设计的软件设计的思路:通过软件编程使 输出定时信号申请中断,在中断服务
程序中扫描键盘,如果有按键,修改相应的变量位,并输出内部请求变量 到
发光二极管显示当前的内部请求楼层。在主程序中,查询变量的值,根据电梯调度算法运
行电梯。
.主要设计模块
程序主要包括以下主要模块:键盘扫描程序、 显示程序、电梯调度算法。
( 键盘扫描程序:采用的是行反转法来扫描键盘的
( 显示程序:本设计只用到了一个 ,只要将 )"**+ 转换为相应的段码。先输出
位码,再输出段码,循环输出就可以动态显示。为了循环的显示,将 显示程序放
在中断服务程序中。相应的程序设计请参考实验指导书上实验 中的相关介绍。
( 电梯调度算法:在设计时将电梯一次从下到上视为一次运行(注意不一定从底层到顶
层),同理,电梯一次从上到下也视为一次运行(注意不一定从顶层到底层)。 ,
当电梯向上运行时:
-( 位于当前层以下的向上请求都被忽略留到下次向上运行时处理。
.( 位于当前层以上的向上请求都被记录留到此次运行处理。
!( 无论哪层的向下请求都被忽略留到下次向下运行时处理。
当电梯向下运行时:
-( 位于当前层以上的向下请求都被忽略留到下次向下运行时处理。
.( 位于当前层以下的向下请求都被记录留到此次运行处理。
!( 无论哪层的向上请求都被忽略留到下次向上运行时处理。
.程序流程图
)主程序框图如图
图 2 主程序框图
)中断服务程序框图如图
剩余15页未读,继续阅读
资源评论
- liuyuan1142014-03-22我也是唐都pitp++,可以运行
lzcc19910207
- 粉丝: 0
- 资源: 7
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- IMG_0694.GIF
- 基于图像的三维模型重建C++源代码+文档说明(高分课程设计)
- 基于聚焦法的工件立体测量方案,根据数据进行三维重建 使用HALCON处理图像,MATLAB拟合数据+源代码+数据集+效果图
- 锄战三国村 修改:货币使用不减 v1.10(2) 原创 (中文).apk
- 基于python实现的单目双目视觉三维重建+源代码+图像图片(高分课程设计)
- 基于C+++OPENCV的全景图像拼接源码(课程设计)
- 基于Python+OpenCV对多张图片进行全景图像拼接,消除鬼影,消除裂缝+源代码+文档说明+界面截图(高分课程设计)
- 基于C++实现的全景图像拼接源码(课程设计)
- 基于SIFT特征点提取和RASIC算法实现全景图像拼接python源码+文档说明+界面截图+详细注释(95分以上课程大作业)
- 基于matlab实现眼部判别的疲劳检测系统+源代码+全部数据+文档说明+详细注释+使用说明+截图(高分课程设计)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功