微机原理课程设计电梯.docx

上传人:b****4 文档编号:5389528 上传时间:2023-05-08 格式:DOCX 页数:25 大小:43.47KB
下载 相关 举报
微机原理课程设计电梯.docx_第1页
第1页 / 共25页
微机原理课程设计电梯.docx_第2页
第2页 / 共25页
微机原理课程设计电梯.docx_第3页
第3页 / 共25页
微机原理课程设计电梯.docx_第4页
第4页 / 共25页
微机原理课程设计电梯.docx_第5页
第5页 / 共25页
微机原理课程设计电梯.docx_第6页
第6页 / 共25页
微机原理课程设计电梯.docx_第7页
第7页 / 共25页
微机原理课程设计电梯.docx_第8页
第8页 / 共25页
微机原理课程设计电梯.docx_第9页
第9页 / 共25页
微机原理课程设计电梯.docx_第10页
第10页 / 共25页
微机原理课程设计电梯.docx_第11页
第11页 / 共25页
微机原理课程设计电梯.docx_第12页
第12页 / 共25页
微机原理课程设计电梯.docx_第13页
第13页 / 共25页
微机原理课程设计电梯.docx_第14页
第14页 / 共25页
微机原理课程设计电梯.docx_第15页
第15页 / 共25页
微机原理课程设计电梯.docx_第16页
第16页 / 共25页
微机原理课程设计电梯.docx_第17页
第17页 / 共25页
微机原理课程设计电梯.docx_第18页
第18页 / 共25页
微机原理课程设计电梯.docx_第19页
第19页 / 共25页
微机原理课程设计电梯.docx_第20页
第20页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

微机原理课程设计电梯.docx

《微机原理课程设计电梯.docx》由会员分享,可在线阅读,更多相关《微机原理课程设计电梯.docx(25页珍藏版)》请在冰点文库上搜索。

微机原理课程设计电梯.docx

微机原理课程设计电梯

微机原理课程设计(电梯)

 

计算机原理课程设计

实验报告

 

学院:

专业:

班级:

姓名:

学号:

成绩:

 

1.实验题目------------------------------------------3

2.题目分析------------------------------------------3

3.原理分析------------------------------------------3

4.实验模块------------------------------------------4

5.电路图设计----------------------------------------5

6.程序框图------------------------------------------5

7.程序清单------------------------------------------7

8.实验现象------------------------------------------13

 

一、实验题目

垂直电梯运行曲线控制

(一)

模拟题:

在实际中,电梯是我们的交通工具,电梯从静止开始,慢慢加速,当到达某个值时,转入匀速运动,根据电梯运行的速度,电梯快要到达停止层时,开始减速,直到平层停止,打开轿厢门,客人安全走下电梯,无人上下电梯,电梯关门,向另一个目的层运动,火灾时,电梯自动归位到首层。

二、题目分析

从题目要求来看,需要实现的功能有:

1.电机的正转和反转

2.电梯的加速-匀速-减速

3.电梯所在楼层的显示

三、原理分析

本课程设计以步进电机为驱动电机,通过8086处理器、8259A中断控制器、8255可编程接口为核心芯片,并辅以开关、LED,构成一个控制系统,用以模拟电梯正常运行过程。

其中的实验器材原理分别为:

步进电机:

作为被控制的电机,电机每走一步转过7.5度,转一圈需要48步才能转一圈。

电梯的控制方法为:

A-AB-B-BC-C-CD-D-DA-A,一个周期内有八步,按照这个规律不断循环就能实现电机的连续运转。

8086:

作为CPU,控制步进电机、8259A可编程中断控制器、8255可编程接口以及LED,使用汇编语言编程。

8259A:

作为中断控制器,数据总线、地址总线和控制总线与8086相连,使用主片上的MIR5和从片上的SIRO作为触发脉冲PLUS1和PLUS2输入口。

当来一个PLUS1或PLUS2时,传递给CPU一个中断,让CPU处理子程序。

8255:

作为可编程接口,A口的PA0、PA1、PA2和PA3分别与步进电机的BJ-IN1、BJ-IN2、BJ-IN3和BJ-IN4相连,控制步进电机的旋转。

B口为数据输入,PB0-PB7分别与开关K0-K7相连,作为输入目的楼层接口。

C口为LED驱动输出口,分别与八个LED相连,可以显示电梯所在的楼层。

四、实验模块

控制模块

电梯的速度控制:

电机速度的控制是通过步与步之间的延时来控制的,延时越短,速度越快。

通过分析,我以FFFF个主频脉冲为一个延时基本单位T,当电梯加速时,第一个循环的第一步与第二步之间用8T,第二步与第三步之间用7T……第八步与下一个循环之间用T,这样就实现了由慢到快的过渡;当电梯匀速时,所有的延时均用T;当电梯减速时,最后一个循环第一步与第二步之间用2T,第二步与第三步之间用3T……第七步与第八步之间用8T,这样就实现了由快到慢得过渡,这三个过程就实现了电梯运行时加速-匀速-减速基本过程。

楼层间电机行进控制:

我以电梯转一圈作为电梯行进一层楼的标准。

具体思想为,首先电梯所在楼层设为1层,输入人所在楼层后,电梯经过一个加速-匀速-减速过程到达人所在楼层,然后输入目的楼层,电梯又经过一个加速-匀速-减速到达目的楼层,然后把目的楼层赋值给电梯当前所在楼层,一个基本过程就完成了。

基本过程的步数控制:

假设电梯从M层运行到N层(N>M),以电机转一圈为行进一层,那么电机需要运行的圈数为N-M,对应于6(N-M)个循环。

首先,电梯加速需要用一个循环,然后电梯匀速运行需要6(N-M)-2个循环,最后是减速用一个循环。

按照这个规则设计,就能实现转多少圈就代表行进多少层,且速度的变换很平滑。

延时模块

本实验中,延时模块以FFFF个主频周期为基本单位时间T,包含延时分别为T-8T的八个Delay。

当电机执行加速过程时,电机一个循环之间的延时分别为8T-2T,当电机匀速运行时,电机的步与步之间的延时为T,当电机减速时,电机最后一个循环的步与步之间的延时分别为2T-8T,这样通过延时就能控制电机运行的速度。

中断模块

中断模块为8259A,分为使用主片的MIR5和从片的SIRO,当给一个PLUS的时,送给CPU一个中断,让其执行子程序,接受开关的到达楼层数据然后驱动电机行进。

显示模块

显示模块为3个LED,通过CPU控制,使其在到达每一层楼后显示相对应的楼层数。

五、电路图设计

六、程序框图

子程序RISE子程序DOWN

 

开始

输入8255控制字

开放MIR5和SIR0中断

写中断程序入口

输入目的楼层N

N>M?

给电梯当前楼层赋初值M

调用RISE

调用DOWN

电梯所在楼层赋给M

Y

N

中断程序开始

保护寄存器

调用子程序

中断结束命令

恢复寄存器

开中断

中断返回

开中断

延时程序开始

PUSH:

AX,BX.CX

DH←SPEED

CX←0FFFF

LOOPX2

DH←DH-1

POP:

AX,BX,CX

DH=0?

Y

N

七、程序清单

datasegment

i8255_aequ200h

i8255_bequ201h

i8255_cequ202h

i8255_kequ203h

speeddb2

countdb01h

xdb01h

firedb00h

dataends

codesegment

assumecs:

code,ds:

data

start:

movax,data

movds,ax

moves,ax

 

movdx,i8255_k

moval,89h

outdx,al

 

inal,21h

andal,11011011b

out21h,al

inal,0a1h

andal,0feh

out0a1h,al

sti

pushds

movax,0

movds,ax

leaax,cs:

mint_proc

movbx,5

movsi,30H

addsi,bx

addsi,si

addsi,si

movds:

[si],ax

pushcs

popax

movds:

[si+2],ax

leaax,cs:

sint_proc

movbx,0

movsi,70H

addsi,bx

addsi,si

addsi,si

movds:

[si],ax

pushcs

popax

movds:

[si+2],ax

popds

lll:

movdx,i8255_b

moval,x

outdx,al

jmplll

mint_procprocfar

sti

pushax

callmint

moval,20h

out20h,al

popax

iret

mint_procendp

mintproc

movdx,i8255_c

inal,dx

movcount,al

cmpal,x

jarise

jbdown

jmprr

rise:

callspeed1

callspeed2

callspeed3

jmprr

down:

callspeed4

callspeed5

callspeed6

jmprr

rr:

moval,count

movx,al

ret

mintendp

sint_procprocfar

pushax

pushdx

callsint

moval,20h

out0a0h,al

nop

out20h,al

popax

popdx

iret

sint_procendp

sintproc

movdx,i8255_c

inal,dx

andal,0fh

movcount,al

cmpal,x

jarise1

jbdown1

jmprr1

rise1:

callspeed1

callspeed2

callspeed3

jmprr1

down1:

callspeed4

callspeed5

callspeed6

jmprr1

rr1:

ret

sintendp

speed1proc

movdx,i8255_a

moval,01h

outdx,al

calldelay8

movdx,i8255_a

moval,03h

outdx,al

calldelay7

movdx,i8255_a

moval,02h

outdx,al

calldelay6

movdx,i8255_a

moval,06h

outdx,al

calldelay5

movdx,i8255_a

moval,04h

outdx,al

calldelay4

movdx,i8255_a

moval,0ch

outdx,al

calldelay3

movdx,i8255_a

moval,08h

outdx,al

calldelay2

movdx,i8255_a

moval,09h

outdx,al

calldelay1

ret

speed1endp

speed2proc

moval,count

subal,x

movah,al

addal,al

addal,ah

addal,al

subal,02h

xorah,ah

decax

movcx,ax

a2:

pushcx

movdx,i8255_a

moval,01h

outdx,al

calldelay1

movdx,i8255_a

moval,03h

outdx,al

calldelay1

movdx,i8255_a

moval,02h

outdx,al

calldelay1

movdx,i8255_a

moval,06h

outdx,al

calldelay1

movdx,i8255_a

moval,04h

outdx,al

calldelay1

movdx,i8255_a

moval,0ch

outdx,al

calldelay1

movdx,i8255_a

moval,08h

outdx,al

calldelay1

movdx,i8255_a

moval,09h

outdx,al

calldelay1

popcx

loopa2

ret

speed2endp

speed3proc

movdx,i8255_a

moval,01h

outdx,al

calldelay1

movdx,i8255_a

moval,03h

outdx,al

calldelay2

movdx,i8255_a

moval,02h

outdx,al

calldelay3

movdx,i8255_a

moval,06h

outdx,al

calldelay4

movdx,i8255_a

moval,04h

outdx,al

calldelay5

movdx,i8255_a

moval,0ch

outdx,al

calldelay6

movdx,i8255_a

moval,08h

outdx,al

calldelay7

movdx,i8255_a

moval,09h

outdx,al

calldelay8

ret

speed3endp

speed4proc

movdx,i8255_a

moval,09h

outdx,al

calldelay8

movdx,i8255_a

moval,08h

outdx,al

calldelay7

movdx,i8255_a

moval,0ch

outdx,al

calldelay6

movdx,i8255_a

moval,04h

outdx,al

calldelay5

movdx,i8255_a

moval,06h

outdx,al

calldelay4

movdx,i8255_a

moval,02h

outdx,al

calldelay3

movdx,i8255_a

moval,03h

outdx,al

calldelay2

movdx,i8255_a

moval,01h

outdx,al

calldelay1

ret

speed4endp

speed5proc

moval,x

subal,count

movah,al

addal,al

addal,ah

addal,al

subal,02h

xorah,ah

decax

movcx,ax

a1:

pushcx

movdx,i8255_a

moval,09h

outdx,al

calldelay1

movdx,i8255_a

moval,08h

outdx,al

calldelay1

movdx,i8255_a

moval,0ch

outdx,al

calldelay1

movdx,i8255_a

moval,04h

outdx,al

calldelay1

movdx,i8255_a

moval,06h

outdx,al

calldelay1

movdx,i8255_a

moval,02h

outdx,al

calldelay1

movdx,i8255_a

moval,03h

outdx,al

calldelay1

movdx,i8255_a

moval,01h

outdx,al

calldelay1

popcx

loopa1

ret

speed5endp

speed6proc

movdx,i8255_a

moval,09h

outdx,al

calldelay1

movdx,i8255_a

moval,08h

outdx,al

calldelay2

movdx,i8255_a

moval,0ch

outdx,al

calldelay3

movdx,i8255_a

moval,04h

outdx,al

calldelay4

movdx,i8255_a

moval,06h

outdx,al

calldelay5

movdx,i8255_a

moval,02h

outdx,al

calldelay6

movdx,i8255_a

moval,03h

outdx,al

calldelay7

movdx,i8255_a

moval,01h

outdx,al

calldelay8

ret

speed6endp

delay1proc

pushax

pushbx

pushcx

movdh,01h

x1:

movcx,0ffffh

x2:

loopx2

decdh

jnzx1

popdx

popcx

popax

ret

delay1endp

delay2proc

pushax

pushbx

pushcx

movdh,02h

x3:

movcx,0ffffh

x4:

loopx4

decdh

jnzx3

popdx

popcx

popax

ret

delay2endp

delay3proc

pushax

pushbx

pushcx

movdh,03h

x5:

movcx,0ffffh

x6:

loopx6

decdh

jnzx5

popdx

popcx

popax

ret

delay3endp

delay4proc

pushax

pushbx

pushcx

movdh,04h

x7:

movcx,0ffffh

x8:

loopx8

decdh

jnzx7

popdx

popcx

popax

ret

delay4endp

delay5proc

pushax

pushbx

pushcx

movdh,05h

x9:

movcx,0ffffh

x10:

loopx10

decdh

jnzx9

popdx

popcx

popax

ret

delay5endp

delay6proc

pushax

pushbx

pushcx

movdh,06h

x11:

movcx,0ffffh

x12:

loopx12

decdh

jnzx11

popdx

popcx

popax

ret

delay6endp

delay7proc

pushax

pushbx

pushcx

movdh,07h

x13:

movcx,0ffffh

x14:

loopx14

decdh

jnzx13

popdx

popcx

popax

ret

delay7endp

delay8proc

pushax

pushbx

pushcx

movdh,08h

x15:

movcx,0ffffh

x16:

loopx16

decdh

jnzx15

popdx

popcx

popax

ret

delay8endp

codeends

endstart

 

八、实验现象

电梯的初始位置在第1层,将开关的值设为N(8>N>1),按下PLUS时,电机将正转,以加速-匀速-减速的变化规律旋转N-1圈到达第N层,然后LED显示为N层;将开关设为M(8>N>1),当MN时,电梯将正转到达M层,然后LED显示为第M层。

 

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

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2