电梯调度模拟系统.docx

上传人:b****9 文档编号:144364 上传时间:2022-10-04 格式:DOCX 页数:15 大小:26.16KB
下载 相关 举报
电梯调度模拟系统.docx_第1页
第1页 / 共15页
电梯调度模拟系统.docx_第2页
第2页 / 共15页
电梯调度模拟系统.docx_第3页
第3页 / 共15页
电梯调度模拟系统.docx_第4页
第4页 / 共15页
电梯调度模拟系统.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

电梯调度模拟系统.docx

《电梯调度模拟系统.docx》由会员分享,可在线阅读,更多相关《电梯调度模拟系统.docx(15页珍藏版)》请在冰豆网上搜索。

电梯调度模拟系统.docx

微机原理与接口技术---课程设计报告

课题:

电梯调度模拟系统完成时间:

2011年12月成员:

信息工程091

信息工程091

信息工程091

目录

第一部分:

需求分析

第二部分:

设计方案

第三部分:

详细设计

第一部分需

求分析

题目要求:

①7段数码管显示当前楼层

②红色发光二极管表示电梯向上运行,绿色二极管表示向下运行

③楼层不少于5层

④每层设置上、下按钮,表示该层用户要向哪个方向走

设计思想:

根据题目要求整理一下大致的思路:

电路连好线后,7段数码管显示当前电梯所处的楼层,当某楼层用按钮按下时,电梯自动运行到该楼层,用户进入电梯后按下要去的楼层数,电梯便可以将用户送到目的楼层。

电梯在运行过程中用红绿发光二极管表示运行的方向,红色表示上行,绿色表示下行,到达目的楼层后灯被熄灭。

对于多个用户需要乘电梯的问题,分析起来较为复杂,因此我们的程序只允许一次运送一个用户,电梯运行时若有其他楼层的用户按键,则电梯到达当前运行状态的目的楼层后返回到其他用户楼层处再根据要求继续运行。

第二部分设

计方案

在QTH-2008PC实验设备上有7段数码管,8个开关,以及一些芯片的实验区。

因为每一楼层上都有2个上行、下行按钮(第一层和第五层除外),实验设备上仅有8个开关,因此这里我们将楼层设置为5层,用开关状态的变化模拟表示哪一楼层上行或者下行按钮被按下。

开关与楼层对应关系如下:

K1:

第一层向上

K2:

第二层向上

K3:

第三层向上

K4:

第四层向上

K5:

第二层向下

K6:

第三层向下

K7:

第四层向下

K8:

第五层向下

可以选用8255A并行接口芯片的PA端口读取开关的状态,题目要

求当电梯运行时,用红色发光二极管表示电梯上行,绿色发光二极管表示电梯下行,因此可以用8255A的PB端口控制两个二极管的亮灭(连线要与控制字一致,且为低电平时灯才亮),在电梯运行过程中保持灯处于点亮的状态,到达目的楼层后将灯熄灭。

用户进入电梯后通过键盘输入目的楼层,电梯继续运行。

同时在电梯运行过程中,用7段数码管表示电梯当前所处的楼层,用7段数码管显示不同数字表示上行或者下行过程,这个过程可以使用8254定时器进行7段数码管定时显示的功能,也可以书写一段延时程序进行延时。

7段数码管显示时需要给它低电平、显示的数、高电平,因此可以用8255A的PC口控制给7段数码管送高低电平和显示的数。

第三部分详

细设计

开关状态

流程图:

8255A(PA口)

N

开关变化

Y

电梯楼层=目的楼层 N

Y

电梯楼层<目的楼层 电梯楼层>目的楼层

8255 PB控制红色二极管亮,上

8255 PB控制红色二极管亮,上

7段数码管显示

N 到达?

8255灭灯

Y

键盘输入目的楼层(上、下)

程序利用8255A的PA口循环读取开关的变化,当开关有变化时跳

出循环,编写程序查找哪个开关变化,并对应记录该楼层处运行的方向。

初始化时电梯在第一层,若为K1开关变化,则等待用户键盘输入目的楼层(模拟用户进入电梯后的按键动作),若为其他开关变化,则进入上行或者下行。

上行时先用8255A的PB口给红色发光二极管送个低电平,点亮红灯,表示上行,将当前的楼层数作为参数传递给7段数码管,然后调用7段数码管显示当前楼层,经过一段延时之后将当前楼层数减1,查看是否到达目的楼层,若没有

到达则继续调用7段数码管显示当前楼层,直至电梯到达目的楼层,此时将灯熄灭;同理可得下行的过程。

当电梯到达目的楼层后,等待用户键盘输入要去的楼层数,应注意目的楼层不大于5层且不小于1层,然后将输入的楼层数与当前的楼层数比较,比较过程同上。

到达目的楼层后电梯停下,二极管熄灭,7段数码管的输入参数保

持不变,继续等待用户输入目的楼层。

原理电路图:

D0

D3D4D5D6

D7

红色发光二极管

绿色发光二极管

CLK

DIN

IOWR

IORD

IOY0

A0

A1

........

开关

K1

......K8

D1

D2

CE PC1

RDWR

PB1

PC0

PB0

A0A1

PA7

AD5AD6

AD7

PA0

8255单元 ......

AD0AD1AD2AD3

AD4

总线接口

原理电路图说明:

8255A的WR、RD分别接到PC104总线接口模块的IOWR和

IORD,选通线CE接IOY0,8255A的数据线AD0~AD7、地址线

A0~A7分别用线连接到PC104总线接口模块的数据(D0~D7)、地址线(A0~A7),8255A的PA口(PA0~PA7)对应接开关

K1~K8,PB口PB0、PB1分别接红色发光二极管和绿色发光二极管,

PC口的PC0、PC1分别接7段数码管的CLK和DIN。

程序代码:

STACK1SEGMENT STACK ;堆栈段STACK1ENDS

DATASEGMENT ;数据段P8255_AEQU 0180H

P8255_BEQU 0181H

P8255_CEQU 0182HP8255_CONTROLEQU 0183H

;QIDUANDB 0F9H ;1

;DB 0A4H ;2

;DB 0B0H ;3

;DB 99H ;4

;DB 92H ;5

INDIRDB 1 ;人在电梯内部要向哪个方向走,1为向上走,0为向下走

SET1DB 0 ;初始化第一层时候的判断条件SHOWDB 'Thecurrentflooris:

','$'

DCLK0EQU B ;CLK低电平DCLK1EQU B ;CLK高电平DIN0EQU B ;给PC1口送一个0DIN1EQU B ;给PC1口送一个1

DELAY_SETEQU 00FFH ;延时常数DATAENDS

CODESEGMENT ;代码段ASSUME CS:

CODE,DS:

DATA

START:

MOV AX,DATA ;DS段初始化

MOV DS,AX

;8个开关变化表示该层有按键:

;K1:

第一层向上

;K2:

第二层向上

;K3:

第三层向上

;K4:

第四层向上

;K5:

第二层向下

;K6:

第三层向下

;K7:

第四层向下

;K8:

第五层向下

MOV DX,P8255_CONTROL

MOV AL,90H ;PA口输入(读取开关的状态),PB口输出(控制灯的亮度),PC口用来控制七

段数码管



OUT DX,AL

MOV AL,0FFH ;因为AL与AH比较是在独处开关状态后进行比较的,如果开始令开关全为1那

么不用赋初值,否则电梯开始就要动

MOV

AH,0FFH

;AH记录开关前一时刻的状态,这里初始化开关状态要和AL一样值

MOV

CL,31H

;初始化楼层,CL代表电梯所处楼层

MOV

MAIN:

BL,31H

;初始化为第一层,BL代表开关变化所处楼层

PUSH

MOV

AX

DX,P8255_B

;保护AH和AL

MOV

OUT

AL,0FFH

DX,AL

;给PB口送FF将灯熄灭

POP

AX

CMP SET1,0 ;程序运行的时候给七段数码管初始化显示1,之后被屏蔽掉JNE X

数字的

CALLINC

X:

CMP

QIDUANSHOWSET1

CL,35H ;楼层为5的时候显示一次5即可,否则会不停的给七段数码管送数,会看不清楚

JE

TEMP

CMP

CL,31H ;楼层为1的时候显示一次1即可,否则会不停的给七段数码管送数,会看不清楚

数字的

JE

TEMP

CALL

TEMP:

MOV

QIDUANSHOW;调用七段数码管显示电梯所处楼层,把CL传递给七段数码管

DX,P8255_A

IN

AL,DX ;把开关的状态传递给8255的PA口,AL记录当前时刻的开关状态,下面将用到

AL=CL,AH=CH,先保护好现场

;MOV

AH,1

;INT

21H

CMP

AL,AH

;AH是前一时刻开关的状态

JE

MAIN

;开关未变化则返回主程序继续等待

;不相等说明开关肯定有变化,找哪个开关变化了

PUSH

AX

;必须PUSH,保护当前时刻的开关状态AL,前一时刻的开关状态AH

PUSH

CX

;保护一下现场

MOV

BH,0

;BH表示比较了几次,再写程序判断是哪个楼层,目的楼层想要往哪个方向走

;判断哪一层开关有变化,用当前开关状态与开关前一状态比较

FLNUM:

ADD

BH,1

;BH表示比较了几次,再写程序判断是哪个楼层,目的楼层想要往哪个方向走

SHL

AH,1

;左移一位

JC

AH1

;记录移位值,如果为1则跳至H1

JMP

AH0

AH1:

MOV

CH,1

;CH表示前一时刻的开关状态

JMP

TEMPH

;CH记录初始化值的每一位移位值

AH0:

MOV

CH,0

TEMPH:

SHL

AL,1

;右移一位

JC

AL1

JMP

AL0

AL1:

MOV

CL,1

JMP

TEMPL

AL0:

MOV

CL,0

TEMPL:

CMP

CL,CH

;AL记录开关变化后读取开关状态的每一位移位值,CH记录初始化值(前一时刻)

的每一位移位值

JE FLNUM ;相等说明这一位没有变化,则继续向下查找是哪个楼层

;不相等则说明到了查找到是哪一层

MOV AH,1 ;这里再用INDIR表示按键者想要往哪个方向走,初始化为1,表示向上走,为0

则按键者想要向下走

MOV

INDIR,AH

CMP

BH,1

JE

F1

;是第一层则跳转至F1

CMP

BH,2

;不是第一层,判断是否为第二层

JE

CMP

F2

BH,5

;目的楼层为第二层,按键者想要向上走

JE

DOWN2

;目的楼层为第二层,想要向下走

CMP

BH,3

;不是第二层,判断是否为第三层

JE

CMP

F3

BH,6

;是第三层,想要向上走

JE

DOWN3

;是第三层,想要向下走

CMP

BH,4

;不是第三层,判断是否为第四层

JE

CMP

F4

BH,7

;是第四层,想要向上走

JE

DOWN4

;第四层,想要向下走

MOV

MOV

AH,0

INDIR,AH

;为第五层则只能向下走

JMP

F5

DOWN2:

MOV AH,0

MOV INDIR,AH ;INDR=0

JMP F2

DOWN3:

MOV AH,0

MOV INDIR,AH ;INDR=0

JMP F3

DOWN4:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 初中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1