微机原理课程设计.docx
- 文档编号:6709105
- 上传时间:2023-01-09
- 格式:DOCX
- 页数:19
- 大小:141.63KB
微机原理课程设计.docx
《微机原理课程设计.docx》由会员分享,可在线阅读,更多相关《微机原理课程设计.docx(19页珍藏版)》请在冰豆网上搜索。
微机原理课程设计
《微型计算机原理与接口技术》
课程设计报告
设计题目:
电梯升降设计
班级:
通行09-1
姓名:
学号:
200926030139
指导老师:
张老师
2011年12月29日
摘要
随着现代经济和城市生活的发展,电梯成为人们日常生活必不可少的代步工具,电梯性能的好坏对人们生活的影响越来越显著。
传统继电器电梯控制系统,由于继电器本身的机械和电磁惯性大,大大降低了电梯系统的可靠性和安全性。
为了保证电梯运行既高效节能又安全可靠,必须改进电梯控制方式。
根据顺序逻辑控制的需要发展起来的可编程控制器,它是专门为工业环境应用而设计的数字运算操作的电子装置。
8088CPU编程可靠性高,能够保证电梯正常、安全、可靠地运行。
同时,由于电机交流变频调速技术的发展,电梯的拖动方式己由原来直流调速逐渐过渡到了变频调速,不仅能满足乘客的舒适感和保证平稳的精度,还可以降低能耗,节约能源,减小运行费用。
本文将基于8088CPU的变频调速方法应用到电梯系统中,并对此方法进行研究。
交流电梯与交流电机的发展紧密相连,至今已有三十多年的发展历史,经历了由简单到复杂、由低级到高级的发展历程,大致可以划分为三个阶段:
第一个阶段是70年代,其主要标志是交流双速电梯,它采用改变牵引电机极对数来实现调速。
电机通常采用两种或两种以上不同极对数的绕组制成,其中极数少的绕组称为高速绕组,用于电梯的起动及稳速运行,极数多的绕组称为低速绕组,用于电梯的制动及维修。
第二个阶段是80年代盛行的交流调压调速电梯,其性能优越于交流双速电梯。
调压调速的方法是通过改变三相异步电机定子端的供电电压实现电机的调速,其制动多采用能耗制动。
第三个阶段是90年代,变压变频调速电梯(VVVF电梯)开始占据了世界电梯的市场。
VVVF电梯通过调节电机定子绕组供电电压的幅值和频率来实现转速的调节。
电梯传动系统中,由于大量采用微机控制技术和脉宽调制技术(PWM技术),其运行效率得到了大幅度的提高,电梯的体积大为缩小。
在我国,电梯工业起步较晚,改革开放以来,也取得了一定的进步。
但遗憾的是,这些公司多为合资公司,电梯控制关键部分的变频器、控制器等重要组成部分很大程度依靠进口,其核心技术牢牢控制在国外大公司手中。
本文8255芯片对电梯惊醒控制,且应用了七段显示数码管对楼层进行显示。
关键词:
电梯,可编程控制器,变频调速,旋转编码器
目录
一、实习目的…………………………………………………………………3
二、实习内容与要求…………………………………………………………3
三、实验报告要求……………………………………………………………3
四、电梯的工作方式…………………………………………………………3
五、总体设计思路……………………………………………………………4
六、系统硬件电路设计………………………………………………………5
1、设计结构………………………………………………………………………5
2、模块分析………………………………………………………………………5
3、画出响应的电路图……………………………………………………………6
七、软件设计…………………………………………………………………6
1.主要设计模块要求………………………………………………………………6
2.程序流程图……………………………………………………………………7
(1)主程序框图..…………………………………………………………………7
(2)中断服务程序框图……………………………………………………………8
(3)电梯算法流程图………………………………………………………………8
八、实现程序…………………………………………………………………8
九、设计体会…………………………………………………………………16
十、参考资料…………………………………………………………………17
一、实习目的
1.掌握七段数码管工作原理;
2.掌握计算机对输入信号检测和输出控制的基本方法;
3.掌握常用按钮、发光二极管的使用方法。
4.提高学生的动手能力,达到理论和实践紧密结合。
二、实习内容与要求
1.实习内容
首先了解电梯运行规律,我们结合实际假设电梯的几种运行情况:
(1)若当前电梯停在某层(七段码显示相应楼层,7个LED全灭)。
键入1~9数字键,如键入的数字与当前电梯停层同,则不产生动作;若不同则相应楼层的LED亮;如再按运行键,则电梯自动判别上升或下降(在运行过程中七段码显示楼层变化)一直到达希望停的楼层(七段码显示该楼层,相应LED亮);
(2)若当前电梯正在上升或下降运行中(此时七段码显示楼层变化,LED指示希望抵达的楼层);若键入新的希望停的楼层数字(相应的LED亮),则对同方向(上升或下降)未到的楼层能停,对其它情况则先停原来按下的楼层,然后按运行键后继续运行)。
有如下几种情况:
电梯当前在3层,向上运行,LED指示希望在5层停,此时若键入3,则电梯将在5楼停(同方向),若再按运行键,则继续运行至7层停;
键入的不是5而是7,则电梯将先停在7层,再按运行键,运行至7层停;
键入的不是7(或5),而是1,则电梯先停在7层(先达同方向楼层)。
再按运行键,运行至1层停。
2.连接线路
并行接口电路选择8255芯片,七段数码管、LED指示灯连接线路由学生自己设计,可
参考实验指导书的相关内容。
楼层数字键和运行按钮都可由PC机键盘代替
3.编写程序
4.调试程序。
汇编、连接后执行程序,观察电梯运行情况。
三、实习报告要求
1.设计目的和内容
2.总体设计
3.硬件设计:
原理图(接线图)及简要说明
4.设计结果和体会(包括遇到的问题及解决的方法)
四、电梯的工作方式
电梯工作按以下方式运行:
1.假设当前电梯停在某层(LED显示相应楼层,5个发光二极管全灭)。
键入数字键,如键入的数字与当前电梯停靠层相同,则什么也不做,若不同则相应楼层的发光二极管亮;电梯自动判别上升或下降(在运行过程中用八段码来显示楼层变化)一直到达希望停的楼层(八段码显示该楼层,相应LED灭)。
2.假设当前电梯正在上升或下降运行(此时八段码显示楼层变化,LED指示希望抵达的楼层),若键入新的希望停靠的楼层数字(相应的LED亮),则对同方向(上升或下降)未到的楼层能停靠,对其它情况则先停靠原先希望停的楼层,然后继续运行)。
如下几例:
1)设电梯当前在2层,向上运行,LED指示希望在4层停,此时若键入3,则电梯将在3楼停,然后继续运行至4层停;
2)同上情况,若键入的不是3而是5,则电梯将先停在4层,然后运行至5层停;
3)同上情况,若键入的不是3(或5),而是1,则电梯先停在4层,然后运行至1层停。
五、总体设计思路
本设计主要是利用微机应用实验平台来模拟电梯的运行,用到了平台上的一个非编码键盘、LED显示器、八段数码管等模块。
有5个楼层,需要用5个按键模拟电梯中的请求按钮,用5个按键模拟5个楼层每层向上请求的按钮,再用5个模拟5个楼层每层向下请求的按钮。
非编码键盘有16个键,可以用1-5号键模拟电梯内的按钮,用6-0号键模拟每层向上请求的按纽,A-E模拟每层向下请求的按纽。
当电梯静止状态时,无论外部哪一层有请求,电梯都由静止状态转入向上或向下运行的状态,直到到达请求的楼层;当电梯处于向上运行的状态时,此时高于该楼层向上的请求和内部请求级别最高,其次是所有楼层向下的请求,再次是低于该楼层向上的请求;当电梯处于向下运行的状态时则情况相反。
由于中断级别在随着电梯所处楼层的不同而变化,而且中断源比较多。
所以用每一个中断源直接和中断控制器相连,需要用到多个8259A级联,很不方便。
为解决这个问题,首先定义三个单字节变量REQ_U、REQ_D和REQ_IN分别存储电梯每一层向上、向下和内部的请求,每一个变量用低5位,每一位代表一层。
例如,REQ_U为00000110B,这代表在2层和3层有向上的请求。
8253定时器每隔20ms产生一次中断,中断程序便去执行扫描键盘,当扫描到有电梯内部或者外部按键时,将请求存储到变量中。
每到一个状态时再检查请求变量REQ_U、REQ_D和REQ_IN的值,根据电梯的运行方向和变量中的请求,来决定电梯下一步的运行。
设电梯的当前楼层为floor(floor=1~7),运行方向为dir(dir=0,向上;dir=1,向下),在电梯运行的工程中,用数码管输出floor值显示当前的楼层。
LED输出REQ_IN的值显示电梯内已经请求的楼层。
六、系统硬件电路设计
由于采用了PC机资源和微机实验平台,不需要其他的硬件电路。
利用了微机平台上的8253定时/计数器、8255并行接口单元、LED单元、非编码键盘、数码管显示单元等等。
系统结构框图,如图1所示。
1、设计结构:
图1系统结构框图
2、模块分析:
(1)可编程定时/计数器8253
定时/计数器8253主要是用于定时20ms,触发中断进行键盘扫描。
电路连线是CLOCK0接Q6,分频后频率为46875Hz,OUT0接中断IRQ2,每20ms中断一次,GATE0接5v。
计数器的初值应该是3A9H。
(2)8255并行接口单元
8255主要是用于键盘的扫描和发光二极管的数据输出。
所以用8255A口的低7位接7个发光二极管,B口低4位接非编码键盘的列线,高4位接键盘的行线。
(3)LED显示系统
虽然只用了1格LED显示器,但为了数字更新更方便,主程序更加简单,故此系统选用动态显示方式。
由于系统的软件部分的运行时的核心程序是一直循环的,因此显示程序也是在循环过程中一直被调用,从而实时地被显示出来。
(4)非编码键盘
本系统采用的是行反转法来扫描键盘的,调用键盘扫描的程序TESTKEY后,程序中的变量KEY的值就是按下的键的值,如果KEY为0FFH则表示无键盘输入,为0~15则按照上往下从左往右的顺序分别代表每一个按键按下的信息。
不过此扫描程序没有考虑到多个按键同时按下的情况。
又因为模拟电梯的按键一般不会有两个按键同时按下的情况,所以,多个按键的情况可以不予考虑。
3、画出相应的电路图:
图2电路原理图
七、软件设计
本设计的软件设计的思路:
通过软件编程使8253输出定时信号申请中断,在中断服务程序中扫描键盘,如果有按键,修改相应的变量位,并输出内部请求变量REQ_IN到发光二极管显示当前的内部请求楼层。
在主程序中,查询变量的值,根据电梯调度算法运行电梯。
1.主要设计模块要求
程序主要包括以下主要模块:
键盘扫描程序、LED显示程序、电梯调度算法。
1)键盘扫描程序:
采用的是行反转法来扫描键盘的,相应的程序设计请参考实验指导书上实验3中的相关介绍。
2)LED显示程序:
本设计只用到了一个LED,只要将floor转换为相应的段码。
先输出位码,再输出段码,循环输出就可以动态显示。
为了循环的显示,将LED显示程序放在中断服务程序中。
相应的程序设计请参考实验指导书上实验3中的相关介绍。
3)电梯调度算法:
在设计时将电梯一次从下到上视为一次运行(注意不一定从底层到顶层),同理,电梯一次从上到下也视为一次运行(注意不一定从顶层到底层)。
当电梯向上运行时:
a)位于当前层以下的向上请求都被忽略留到下次向上运行时处理。
b)位于当前层以上的向上请求都被记录留到此次运行处理。
c)无论哪层的向下请求都被忽略留到下次向下运行时处理。
当电梯向下运行时:
a)位于当前层以上的向下请求都被忽略留到下次向下运行时处理。
b)位于当前层以下的向下请求都被记录留到此次运行处理。
c)无论哪层的向上请求都被忽略留到下次向上运行时处理。
2.程序流程图
1)主程序框图:
图3主程序框图
2)中断服务程序框图:
图4中断服务程序框图
3)电梯算法流程图:
其中,dir代表电梯的运行方向,0代表电梯向上运行,1代表向下运动。
设REQ_U(n)代表第n层向上的请求,同样,REQ_D(n)代表第n层向下的请求,REQ_IN(n)代表第n层内部的请求。
求next的方法为:
电梯向上时,next为内部请求的最小值和向上请求的大于floor的最小值之间的小者。
电梯向下时,next为内部请求的最大值和向下请求中小于floor的最大值之间的大者。
没有满足要求的时返回0。
电梯算法流程图:
图5电梯算法流程图
八、实现程序
FNUMMACRO
LOCALML1
PUSHCX
PUSHAX
PUSHDX
PUSHSI
MOVCH,13H
MOVCL,31H
MOVSI,9
ML1:
MOVAH,02H;
MOVDH,CH
MOVDL,1FH
INT10H
MOVAH,02H
MOVDL,CL
INT21H
DECCH
INCCL
DECSI
JNZML1
POPSI
POPDX
POPAX
POPCX
ENDM
SITUATIONMACRONOWF
LOCALL1,L2,L3,L4,L5,L6,L7,L8,PASS1
MOVAH,03H
INT10H
FNUM
MOVAH,02H
INT10H
MOVSI,101H
L0:
MOVAH,0CH
MOVDX,LASTF
MOVCX,SI
MOVAL,0
INT10H
INCSI
CMPSI,120H
JNEL0
MOVBH,1H
MOVSI,100H
L1:
MOVAH,0CH
MOVDX,20H
MOVCX,SI
MOVAL,BH
INT10H
ADDSI,1H
INCBH
CMPSI,120H
JNEL1
MOVSI,20H
MOVBH,1H
L2:
MOVAH,0CH
MOVDX,SI
MOVCX,100H
MOVAL,BH
INT10H
ADDSI,1H
INCBH
CMPSI,9BH
JNEL2
MOVSI,100H
MOVBH,1H
L3:
MOVAH,0CH
MOVDX,9BH
MOVCX,SI
MOVAL,BH
INT10H
INCBH
INCSI
CMPSI,120H
JNEL3
MOVSI,20H
MOVBH,1H
L4:
MOVAH,0CH
MOVDX,SI
MOVCX,120H
MOVAL,BH
INT10H
ADDSI,1H
INCBH
CMPSI,9BH
JNEL4
MOVFLAG1,1
MOVDI,NOWF;NOWFLOOR
MOVSI,101H
L5:
MOVAH,0CH
MOVDX,DI
MOVCX,SI
MOVAL,1
INT10H
INCSI
CMPSI,120H
JNEL5
ENDM
MOVEFMACRONOWF,LASTF
LOCALL1,L2,L3,L4,L5,L6,L7,PASS1
MOVBH,1H
MOVSI,100H
L1:
MOVAH,0CH
MOVDX,20H
MOVCX,SI
MOVAL,BH
INT10H
ADDSI,1H
INCBH
CMPSI,120H
JNEL1
MOVSI,20H
MOVBH,1H
L2:
MOVAH,0CH
MOVDX,SI
MOVCX,100H
MOVAL,BH
INT10H
ADDSI,1H
INCBH
CMPSI,9BH
JNEL2
MOVSI,100H
MOVBH,1H
L3:
MOVAH,0CH
MOVDX,9BH
MOVCX,SI
MOVAL,BH
INT10H
INCBH
INCSI
CMPSI,120H
JNEL3
MOVSI,20H
MOVBH,1H
L4:
MOVAH,0CH
MOVDX,SI
MOVCX,120H
MOVAL,BH
INT10H
ADDSI,1H
INCBH
CMPSI,9BH
JNEL4
MOVFLAG1,1
MOVDI,NOWF;NOWFLOOR
L6:
MOVSI,101H
L5:
MOVAH,0CH
MOVDX,DI
MOVCX,SI
MOVAL,1
INT10H
INCSI
CMPSI,120H
JNEL5
MOVAX,FLAG1
CMPAX,1
JNEPASS1
XORAX,AX
MOVFLAG1,AX
MOVAH,09H
MOVDX,OFFSETMSGEN
INT21H
MOVDX,OFFSETMSG3
INT21H
MOVAH,01H
INT21H
PASS1:
MOVBX,06FFH
MOVCX,0FFFFH
TIME:
LOOPTIME
DECBX
CMPBX,0
JNETIME
MOVSI,101H
L7:
MOVAH,0CH
MOVDX,DI
MOVCX,SI
MOVAL,0
INT10H
INCSI
CMPSI,120H
JNEL7
MOVAX,NOWF
CMPAX,LASTF
JAPASS2
INCDI
JMPPASS3
PASS2:
CMPAX,LASTF
JNEPASS4
JMPPASS3
PASS4:
DECDI
PASS3:
CMPDI,LASTF;LASTFLOOR
JNEL6
MOVSI,101H
ENDM
DATASEGMENT
MSG1DB'FLOORYOUSITNOW(JUST1-9F):
$'
MSG2DB'FLOORYOUWANTGO(JUST1-9F):
$'
MSG3DB'INPUTANYKEYTOSTART...$'
MSG4DB'WANTEXPERIENCEAGAIN(Y/N)..$'
MSGENDB0AH,0DH,'$'
NOWFDW?
LASTFDW?
FLAG1DW1
DATAENDS
STACKSEGMENT
BUFSDB100DUP(?
)
TOPSLABELWORD
STACKENDS
CODE1SEGMENT
ASSUMECS:
CODE1,DS:
DATA,SS:
STACK
MAINPROC
DSEGSEGMENT
TABLEDB40H,06H,5BH,4FH,66H,6DH,7DH,07H
DSEGENDS
CSEGSEGMENT
ASSUMECS:
CSEG,DS:
DSEG
START:
MOVAX,DSEG
MOVDS,AX
MOVAL,82H
MOVDX,9003H
LEABX,TABLE
OUTDX,AL
MOVDX,8004H
MOVAX,0000H
MOVSI,AX
MOVAL,[BX+SI]
OUTDX,AL
MOVAL,02H
MOVDX,8002H
OUTDX,AL
MOVAL,0FFH
MOVDX,9003H
OUTDX,AL
MOVAL,00H
MOVDX,9003H
OUTDX,AL
;----------------------------
MOVCX,500
L1:
MOVDX,8004H
MOVAX,0005H
MOVSI,AX
MOVAL,[BX+SI]
OUTDX,AL
MOVAL,01H
MOVDX,8002H
OUTDX,AL
CALLDELAY
MOVDX,8004H
MOVAX,0000H
MOVSI,AX
MOVAL,[BX+SI]
OUTDX,AL
MOVAL,02H
MOVDX,8002H
OUTDX,AL
CALLDELAY
LOOPL1
MOVDX,8004H
MOVAL,00H
OUTDX,AL
MOVAL,00H
MOVDX,8002H
OUTDX,AL
DELAYPROC
PUSHBX
PUSHCX
MOVBL,1
NEXT:
MOVCX,1167
W10MS:
LOOPW10MS
DECBL
JNZNEXT
MOVDX,8004H
MOVAL,00H
OUTDX,AL
MOVAL,00H
MOVDX,8002H
OUTDX,AL
POPCX
POPBX
RET
DELAYENDP
CSEGENDS
ENDSTART
九、设计体会
在以前没有这方面锻炼的我,当知道要做课程设计的时候心里面感觉有些害怕和担心,担心自己不会或者做不好。
但是当真的要做的时候也只好进自己作大的努力去做,做到自己最好的。
我们接到的题目是电梯升降控制设计时,我们的主要任务就是要在上面加上自己的附加功能。
开始想加什么功能便是我们最先需要思考的,总是不能很好的将其短线是数码管很好的转换和应用。
我们再想加其他功能了,我们首先想到的是加时间和日期,但是得知很多同学都加这个功能,但是对于我来说,这门课程学的不是很好,而能力有限,也就不能达到要求了。
接我们就要进行我们的设计,如何在这上面架这个功能是我们需要研究和学习的,我们在这个过程中参阅资料,请教同学,终于做成了这个显示时间和日期的附加功能。
但是我们又遇到了一问题,在这个过程中,我们发现是调用过程中出现顺序错误,经过这个我们不仅改正错误,而且使自己的有关调用的知识也得到了加深和巩固。
我们在这个过程中有很多自己的感受,我想很多同学都会和我有一样的感受,那就是感觉汇编语言真的是很神奇,很有意思。
但是我们的时间很紧迫,面临期末考试,也没有更多的时间去研究这些有趣的设计。
我们从开始的担心和害怕渐渐变成了享受,享受着汇编带给我们的快乐。
看着自己做出来的东西,心里面的感觉真的很好。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 课程设计