模拟电梯-接口技术课设
- 格式:doc
- 大小:273.00 KB
- 文档页数:20
河南理工大学 计算机科学与技术学院 课程设计报告
2015— 2016学年第二学期
课程名称 微机原理与接口技术 设计题目 模拟电梯 姓 名 。。 学 号 36130901021 专业班级 计科13-02 指导教师 李 莹 莹
2016 年 1 月 9 日 目录 一、 课程设计题目 ........................................... 3 二、 设计要求 ................................................... 3 三、 设计目的 ................................................... 3 四、 设计方案 ................................................... 3 五、 原理分析 ................................................... 4 六、 硬件设计 ................................................... 4 七、 软件分析 ................................................... 6 八、 总结与展望 ............................................. 20 一、 课程设计题目 模拟电梯 二、 设计要求 用键盘用键盘、按钮、八段码和LED发光管模拟电梯工作过程。楼层设为8层,键盘数字键1-8用来键入希望停的楼层,8个LED发光管显示希望停的楼层,八段码指示电梯当前所在楼层,按钮用来开停电梯。电梯正常运行时以每0.5秒一层的速度上升或下降。
三、 设计目的 在读懂任务书给出的几个子程序的基础上,学习运用计算机动画技术等手段自己独立编制出一个完整的电梯运行计算机仿真程序.通过编制仿真程序的实践,加强同学们对计算机顺序控制的了解与认识,以达到掌握计算机顺序控制规律和计算机顺序控制技术所需的编程技巧以及相关的硬件基础知识的目的
四、 设计方案 ① 在提示“input the floor(1-8F)(such as 1-3-4-1):”后面输入用户要去的楼层,可从任意楼层开始运行,指定楼层号顺序上升与下降,数字与数字之间用“-”连接,数字范围为1-8。 在一轮运行完以后程序会清空楼层提示后面的数字,用户可再输入要去的楼层,若用户希望停止运行该程序,可以在下一轮开始时在楼层提示后面输入0或非数字键,可返回到DOS ② 在 1 -- 8 楼之间按任意顺序不连续控制电梯上升与下降. 按一次计算机键盘的上箭头电梯上升一楼,按一次计算机键盘的下箭头电梯下降一楼. ③ 电梯上升与下降过程中,在电梯三维模型的正上方的蓝色矩形框内,提示“now the floor is:”后面显示出当前所要在的楼层数,提示“TO:”后面显示1--8 楼之间所要到达的楼层数,提示“direction:”后面显示上下箭头,代表电梯当前是上升状态还是下降状态。 ④ 在电梯旁有一个小方块。这个小方块随电梯上升而上升,下降而下降。增加电梯运行时的动感.。小方块在一个8层的方框内上下移动,电梯每上升一层,小方块在方框内上升一层, 电梯每下降一层,小方块在方框内下降一层。并且小方块在方框内的位置与电梯当前所在楼层时对应的,例如:若当前电梯运行到第3层,则小方块也位于第三层方框。为了使用户能更清晰地看到电梯的运行过程,小方块每到一层会停留1S的时间。电梯运行到指定楼层后,打开电梯门,然后关门继续运行,为了模拟真实的效果,电梯在指定楼层停下,大门依次闭合-半开门-全开门-半开门-闭合。 ⑤ 在 1 -- 8 楼之间按任意顺序不连续控制电梯上升与下降。按一次计算机键盘的上箭头电梯上升一楼,按一次计算机键盘的下箭头电梯下降一楼。 由于所使用的计算机的某些原因,这里输入“w” 上升一楼,输入“s” 下降一楼。电梯的不连续控制只在电梯停在某一层且关上的门之后。提示是“up or down a floor only vailable when elevator stop(use w or s )”,当用户可以对电梯进行不连续控制时,会出现“~now vailable”的提示。 ⑥ 电梯仿真软件运行时,在计算机屏幕上显示本软件作者姓名“wust zhengliming”和日期“2014. 12.18”。
五、 原理分析 1、在主程序的最前面是宏,将具有特定功能的画图代码打包成一个个宏放在住程序的最前面。有清屏的宏,移光标的宏,写横的宏,写竖的宏,画小方块上升的宏,画小方块下降的宏,画初始小方块的宏,画电梯关门状态的宏,画电梯半开门状态的宏,画电梯全开门状态的宏。由于这段画图的代码在程序中会经常使用,所将他们编成宏使用起来更方便。除了主程序外还有一个延时1S的子程序。 2、开始主程序的运行后,先运行一段初始化程序,然后设置图形显示方式,再显示提示信息以及有关信息,然后再画电梯的三维模型,这样整个初始界面就完成了。 3、然后再提示信息下,用户输入要去的楼层,判断该字符串的第一个字符的ASCII码是否在1-8范围,如果不是则结束并返回DOS界面,如果是则继续进行下一步程序。将第1个数字代表的楼层设为当前站X(n),并赋给COUNT(该变量用来记录当前层)。将下个数字代表的层数设为下一站(如果当前站为最后一站,则重新回到开头提示用户输入信息),将COUNT与下一站X(n+1)相比较,若COUNT大于下一站,则小方块下降一层,COUNT--,并显示当前层和目标层以及下箭头,一直循环直到相等;若COUNT小于下一站,则小方块上升一层,COUNT++,并显示当前层和目标层以及下箭头,一直循环直到相等;相等时,则电梯大门大门依次闭合-半开门-全开门-半开门-闭合。大门关上后,调用MOV AH,1 ; 4、INT 16H检测是否有按键按下,若没有键盘按下,则X(n)=X(n+1),读取下一个字符,将该字符所代表的楼层赋给X(n+1),并回到前面检测X(n)是否为最后目标层的程序段。若有键盘按下,则判断AL的值(该值为输入的字符的ASCII码),若AL为‘w’则小方块上升一层,COUNT++;若AL为‘s’则小方块下降一层,COUNT--;两者最后都回到“X(n)=X(n+1),读取下一个字符,将该字符所代表的楼层赋给X(n+1)”这一步,若AL即不为‘w’也不为‘s’,则直接回到该步骤。
六、 硬件设计 生成文件 (1).我使用的运行环境为虚拟机下的xp系统,汇编软件使用的是轻松汇编。 (2).打开轻松汇编,输入代码,保存为.asm格式文件。 (3).编译程序。 可以直接使用轻松汇编菜单栏的按键 运行—编译 和 运行—生成 按钮进行编译,也可以进入dos环境,使用masm.exe编译源程序生成OBJ文件和一些交叉文件。 格式:masm exam1.asm; 如果结尾不加分号,那么回车后会有一个提示,提示将生成的OBJ 文件名和相应的其他一些文件名是什么?可以一路回车取默认值,即与源文件同文件名。如果加上分号,既可避免这些提示。直接生成同文件名的OBJ文件。 (4).连接程序。 用LINK.exe连接OBJ文件,生成可执行的exe文件。 格式:link exam1.obj; 如果原程序无堆栈段,则在连接完后,有一个警告提示,提示程序无堆栈段。 (5). 运行。 直接在轻松汇编菜单栏中单击运行按钮或在dos环境中执行debug 将生成的可执行exe文件装入内存后 ,用G命令来运行 (6). 查看程序运行结果。
BIOS显示功能调用 显示器是微型机系统重要的输出设备。显示器与微型机之间的接口电路又称做显示适配器(显 示卡)。显示卡的种类很多,有MDA卡、HGC卡、CGA卡、EGA卡和VGA卡等。IBM-PC和PC/XT单色显示器使用单色显示器适配器MDA (MonochromeDisplayAdapter)卡,它不支持图形方式,只支持80列和25行的文本方式。文本方式又称为字符方式、字符/数字方 式。IBM-PC和PC/XT彩色显示器使用彩色/图形适配器CGA(ColorGraphicsAdapter)卡,支持文本和图形两种方式且有单色、 彩色两种显示。 有关显示输出的DOS功能调用不多,而BIOS调用(INT10H)的功能很强,主要包括设置显示方式,设置光标大小和位置,设置调色板号,显示字符和显示图形等 七、 软件分析 程序功能示意图 ↑ 初始界面示意图 ↑
流程图:
程序清单: CLEAR MACRO ; 清屏的宏 MOV BH,7 ; 卷入行属性,黑底白字,正常显示. MOV AX,0600H ; AH=6 屏幕初始化或上卷.AL=0 整个窗口空白. INT 10H ; CH=左上角行号,CL=左下角列号. ENDM ; DH=右上角行号,DL=右下角列号. ;--------------------------------------- POS MACRO ; 移动光标的宏 MOV BH,00H ; BH=页号 DH,DL=行号,列号. MOV AH,02H ; AH=2 置光标位置. INT 10H ENDM ;--------------------------------------- HENG MACRO X1,Y1,COLOR,X2 ; 写横的宏 LOCAL BH1 ; 定义标号 MOV CX,X1 ; 起始点横作标-->CX MOV DX,Y1 ; 起始点纵作标-->DX BH1: MOV AH,0CH ; 写象素 MOV AL,COLOR ; 设定颜色参数-->AL INT 10H INC CX CMP CX,X2 ; 写至终点横作标为止 JNZ BH1 ENDM ;--------------------------------------- SHU MACRO CX1,CY1,COLOR,CY2 ; 写竖的宏 LOCAL BH2 ; 定义标号 MOV CX,CX1 MOV DX,CY1 BH2: MOV AH,0CH MOV AL,COLOR ; AL=(00--0FH)共16种颜色. INT 10H INC DX CMP DX,CY2 JNZ BH2 ENDM ;--------------------------------------- DELAY MACRO ;延时1s的宏 LOCAL READ PUSH DX ;入栈,保护原有DX、CX中的数据 PUSH CX SUB AX,AX INT 1AH ;INT 1AH的0号功能读当前时钟值,CX:DX=时钟计数值