微机课程设计电梯控制器

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《微机实验及课程设计》

课程设计报告

FBI Warning:

汇编代码是好几届之前的一个学姐的,我只是修改了一下.修改后完美运行报告是我自己写的

不需要注明出处,就说是你写的

目录

一.课程设计目的与要求 (2)

二.方案论证与原理设计 (3)

三.详细(机理)设计 (3)

四.方案实现与测试(或调试) (6)

五.分析与总结 (7)

一. 课程设计目的与要求

设计目的:

微机课程综合设计用于检验和提高学生在原理与接口综合应用方面分析问题与解决问题的能力,同时也给学生提供更多、更好的训练机会,课程给出了10 道微机硬件应用综合测试题。为完成每道测试题,至少需要选用TPC 微机实验装置中三部分以上的硬件电路(还需将它们有机组合起来)并编制相应的应用。通过试验还能够让学生更好的了解所学知识在实际控制中的运用,增加对本专业的认识和学习兴趣。

设计要求:

1)设计基本要求

用键盘、按钮、八段码和LED 模拟电梯工作过程。楼层设为8 层,键盘数字键1~8 用来键入希望停的楼层,8 个LED 显示希望停的楼层,2 位八段码指示电梯当前所在楼层,按钮用来启、停电梯。电梯正常运行时以每2 秒1层的速度上升或下降。要求“电梯”能按以下方式运行:

(1)设当前电梯停在某层(2 位八段码显示相应楼层,8 个LED 全灭)。键入1~8 数字键,如键入的数字与当前电梯停层同,则什么亦不动作,若不同则相应楼层的LED 亮;如再按运行键,则电梯自动判别上升或下降(在运行过程中八段码显示楼层变化)一直到达希望停的楼层(八段码显示该楼层,相应LED 灭); (2)设当前电梯正在上升或下降运行(此时八段码显示楼层变化,LED 指示希望抵达的楼层),若键入新的希望停的楼层数字(相应的LED 亮),则对同方向(上升或下降)未到的楼层能停,对其它情况则先停原希望停的楼层,然后按运行键后继续运行)。如下几例:

①设电梯当前在2 层,向上运行,LED 指示希望在6 层停,此时若键入4,则电梯将在4 楼停,若再按运行键,则继续运行至6 层停;

②同上情况,若键入的不是4 而是8,则电梯将先停在6 层,再按运行键,运行至8 层停;

③同上情况,若键入的不是4(或8),而是1,则电梯先停在6 层,再按运行键,运行至1层停。

2)进一步设计要求

除运行按钮外,再设计几个按钮,模拟更多的电梯运行功能,如:

①同步在8*8 点阵显示器显示上升与下降箭头,当停止时显示当前所在楼层号.

②直达按钮。若按此按钮,电梯按直达方式运行,即对运行期间新键入的停靠楼层(即使是同方向未到

楼层)亦不停,直达终点楼层;

③急停按钮。电梯运行中,若按此按钮,则电梯立即停在下一到达的楼层;

○4断电待修按钮。按下该钮电梯不能工作,再按一下才能重新工作;

○5设置急停开关(K0-K7 至一),引入中断处理,立即响应,就近停靠;

分工情况:

我跟XXX一组,我主要负责程序框架的构建和大部分代码的编写,XXX负责其他的程序编写和硬件连接等工作。

二.方案论证与原理设计

我们在成熟考虑程序的整体要求和框架后,决定把程序总共分为四个模块,分别为电梯运行模块,电梯接受请求判断模块,显示模块,计时模块。

电梯运行模块是整个程序的主模块,其主要功能就是判断电梯的运行方向和停靠所要去楼层的优先顺序。电梯接受请求判断模块主要是应急停,直达,等待维修等命令。计时模块用于对系统每二秒停一楼层的计数。显示模块则包括所要到的楼层的显示和运行过程中所到楼层的实时显示。

有8个楼层,需要用8个按键模拟电梯中的请求按钮;

当电梯静止状态时,无论外部哪一层有请求,电梯都由静止状态转入向上或向下运行的状态,直到到达请求的楼层;当电梯处于向上运行的状态时,此时高于该楼层向上的请求和部请求级别最高,其次是所有楼层向下的请求,再次是低于该楼层向上的请求;当电梯处于向下运行的状态时则情况相反;

由于中断级别在随着电梯所处楼层的不同而变化,而且中断源比较多。所以用每一个中断源直接和中断控制器相连,需要用到多个8259A级联,很不方便。为解决这个问题,首先定义三个单字节变量REQ_U、REQ_D和REQ_IN分别存储电梯每一层向上、向下和部的请求,每一位代表一层。例如,REQ_U为00000110B,这代表在2层和3层有向上的请求。8253定时器每隔20ms产生一次中断,中断程序便去执行扫描键盘,当扫描到有电梯部或者外部按键时,将请求存储到变量中。每到一个状态时再检查请求变量REQ_U、REQ_D 和REQ_IN的值,根据电梯的运行方向和变量中的请求,来决定电梯下一步的运行。

设电梯的当前楼层为floor(floor=1~8),运行方向为dir(dir=0,向上;dir=1,向下),在电梯运行的工程中,用数码管输出floor值显示当前的楼层。LED输出REQ_IN的值显示电梯已经请求的楼层。

主要的模块如下:

1.可编程定时/计数器8253

定时/计数器8253主要是用于定时20ms,触发中断进行键盘扫描。电路连线是CLOCK0接Q6,分频后频率为46875Hz,OUT0接中断IRQ2,每20ms中断一次,GATE0接5v。计数器的初值应该是3A9H;2.8255并行接口单元

8255主要是用于数码管和发光二极管的数据输出。所以用8255B口8接8个发光二极管,A口接数码管的数据端。

3 LED点阵显示

由于提高要求需要显示上下箭头,所以使用8*8点阵显示箭头。

4 微机控制器

程序在微机上运行,通过总线控制实验箱上各部件的运行。

三.详细(机理)设计

1)软件流程图(总流程图)

本设计的软件设计的思路:通过软件编程使8253输出定时信号申请中断,在中断服务程序中扫描键

相关文档
最新文档