电梯调度模拟系统文档格式.docx
- 文档编号:13075947
- 上传时间:2022-10-04
- 格式:DOCX
- 页数:15
- 大小:26.16KB
电梯调度模拟系统文档格式.docx
《电梯调度模拟系统文档格式.docx》由会员分享,可在线阅读,更多相关《电梯调度模拟系统文档格式.docx(15页珍藏版)》请在冰豆网上搜索。
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
电梯楼层<
目的楼层 电梯楼层>
目的楼层
8255 PB控制红色二极管亮,上
7段数码管显示
N 到达?
8255灭灯
键盘输入目的楼层(上、下)
程序利用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个开关变化表示该层有按键:
MOV DX,P8255_CONTROL
MOV AL,90H ;
PA口输入(读取开关的状态),PB口输出(控制灯的亮度),PC口用来控制七
段数码管
OUT DX,AL
MOV AL,0FFH ;
因为AL与AH比较是在独处开关状态后进行比较的,如果开始令开关全为1那
么不用赋初值,否则电梯开始就要动
MOV
AH,0FFH
AH记录开关前一时刻的状态,这里初始化开关状态要和AL一样值
CL,31H
初始化楼层,CL代表电梯所处楼层
MAIN:
BL,31H
初始化为第一层,BL代表开关变化所处楼层
PUSH
AX
DX,P8255_B
保护AH和AL
OUT
AL,0FFH
DX,AL
给PB口送FF将灯熄灭
POP
CMP SET1,0 ;
程序运行的时候给七段数码管初始化显示1,之后被屏蔽掉JNE X
数字的
CALLINC
X:
CMP
QIDUANSHOWSET1
CL,35H ;
楼层为5的时候显示一次5即可,否则会不停的给七段数码管送数,会看不清楚
JE
TEMP
CMP
CL,31H ;
楼层为1的时候显示一次1即可,否则会不停的给七段数码管送数,会看不清楚
CALL
TEMP:
MOV
QIDUANSHOW;
调用七段数码管显示电梯所处楼层,把CL传递给七段数码管
DX,P8255_A
IN
AL,DX ;
把开关的状态传递给8255的PA口,AL记录当前时刻的开关状态,下面将用到
AL=CL,AH=CH,先保护好现场
AH,1
INT
21H
AL,AH
AH是前一时刻开关的状态
MAIN
开关未变化则返回主程序继续等待
不相等说明开关肯定有变化,找哪个开关变化了
必须PUSH,保护当前时刻的开关状态AL,前一时刻的开关状态AH
CX
保护一下现场
BH,0
BH表示比较了几次,再写程序判断是哪个楼层,目的楼层想要往哪个方向走
判断哪一层开关有变化,用当前开关状态与开关前一状态比较
FLNUM:
ADD
BH,1
SHL
左移一位
JC
AH1
记录移位值,如果为1则跳至H1
JMP
AH0
AH1:
MOV
CH,1
CH表示前一时刻的开关状态
TEMPH
CH记录初始化值的每一位移位值
AH0:
CH,0
TEMPH:
SHL
AL,1
右移一位
AL1
AL0
AL1:
CL,1
TEMPL
AL0:
CL,0
TEMPL:
CL,CH
AL记录开关变化后读取开关状态的每一位移位值,CH记录初始化值(前一时刻)
的每一位移位值
JE FLNUM ;
相等说明这一位没有变化,则继续向下查找是哪个楼层
不相等则说明到了查找到是哪一层
MOV AH,1 ;
这里再用INDIR表示按键者想要往哪个方向走,初始化为1,表示向上走,为0
则按键者想要向下走
INDIR,AH
F1
是第一层则跳转至F1
BH,2
不是第一层,判断是否为第二层
F2
BH,5
目的楼层为第二层,按键者想要向上走
DOWN2
目的楼层为第二层,想要向下走
BH,3
不是第二层,判断是否为第三层
F3
BH,6
是第三层,想要向上走
DOWN3
是第三层,想要向下走
BH,4
不是第三层,判断是否为第四层
F4
BH,7
是第四层,想要向上走
DOWN4
第四层,想要向下走
AH,0
为第五层则只能向下走
F5
DOWN2:
MOV AH,0
MOV INDIR,AH ;
INDR=0
JMP F2
DOWN3:
JMP F3
DOWN4:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电梯 调度 模拟 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)