资源描述:
《微机原理及应用课程设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、信息科学与工程学院自动化系课程设计计划书班级:自动化0902姓名:学号:200904134056课程名称:微机原理及应用课程设计学时学分:1周1学分指导教师:二○一一年十二月二十日题目一电梯仿真程序在读懂指导书给出的几个子程序的基础上,学习运用计算机动画技术等手段自己独立编制出一个完整的电梯运行计算机仿真程序.通过编制仿真程序的实践,加强同学们对计算机顺序控制的了解与认识,以达到掌握计算机顺序控制规律和计算机顺序控制技术所需的编程技巧以及相关的硬件基础知识的目的.设计要求:(1).在1--8楼之间一次
2、可输入多个任意楼层号连续控制电梯按指定楼层号顺序上升与下降.以上过程完成后可重新输入任意楼层号连续控制电梯按指定楼层号顺序上升与下降.只有按ESC键才退出程序返回DOS状态。例如:1-3-5-7-6-4-2-1(可观察教十楼电梯的实际运行情况).(2).在1--7楼之间按任意顺序不连续控制电梯上升与下降.按一次计算机键盘的上箭头电梯上升一楼,按一次计算机键盘的下箭头电梯下降一楼.(上箭头的ASCII码19H,下箭头的ASCII码1AH.)(3).在电梯上升与下降过程中,要显示出1--7楼之间所要到达的
3、楼层数,同时还要用箭头显示电梯是上升状态还是下降状态.(4).电梯运行到指定楼层后,打开电梯门,然后关门继续运行.(5).电梯运行时,在任意时刻遇到紧急情况时应能实时中断电梯运行.也可以在任意时刻恢复电梯运行.(按A/a键模拟中断发生,电梯停止运行.按B/b键恢复电梯运行)(6).在计算机屏幕上将电梯的平面模型改成三维立体模型.(7).在电梯旁画一个小方块.这个小方块随电梯上升而上升,下降而下降.以增加电梯运行时的动感.(8).电梯仿真软件运行时,应在计算机屏幕上详细说明其使用方法,以及本软件作者姓名
4、和日期.一、需求分析(1)在屏幕上显示八层楼,每层含有楼顶和地面,初始时电梯停靠在一楼地面。(2)电梯可以实现开门关门的操作,并可以上下移动到达指定楼层。(3)当按下键盘上的1-8时,电梯即可到达指定楼层,开门关门后等待下一次的按键输入,扫描到有1-8的按键输入后,再次前往相应楼层并开门关门,如此循环下去。(4)当按键为↑(Ctrl+X)时电梯向上移动一层,当按键为↓(Ctrl+Y)时电梯向下移动一层。(5)当按键为ESC时,退出返回DOS。(6)电梯移动时以↑和↓指示电梯的移动方向,既向上移动时↑以
5、红色显现,向下移动时↓以红色显示,一旦电梯到达指定楼层,↑和↓重新变为白色。二、程序方框图屏幕初始化将屏幕显示方式置为640列*480行,16色初始化楼顶、地面、电梯的位置并显示相关的操作信息调用键盘中断,对所按的按键进行判断Y是否为ESCN是否为↑YN是否为↓YNN是否为1-8Y将要前往的楼层存入[DN2]判断当前楼层[DN1]是否大于[DN2]NY↑变为红色,电梯向上运行↓变为红色,电梯向下运行到达指定楼层,↑又恢复为白色到达指定楼层,↓又恢复为白色电梯开门后关门电梯开门后关门恢复文本方式,返回D
6、OS一、程序设计思路(1)拿到题目,在经过一番思考后认为楼顶、地面的分布采用8次循环便可在屏幕上显示。(2)电梯的开门和关门采用反复写竖的方式,开门时写竖的颜色为黑,关门时写竖的颜色为电梯的颜色,只要做好相应的判断,加以限制便可实现开门关门的效果。(3)而对于电梯的移动,则采用写横的方式,如电梯上升时,电梯顶部写一横,电梯底部消一横,而问题的关键是写横和消横的颜色值不是一直不变的,在楼顶与地面之间时,写横的颜色值为电梯的颜色值,消横的颜色值为黑色,而当穿越楼顶和地面时,其相应的颜色值则必须为楼顶和地面
7、的颜色值,这样看起来才有电梯从楼顶及地面穿越的效果,因此就要对电梯运行的位置进行判断,但这样做的话,程序就要写的很啰嗦,而想到用读象素的方式传递写横消横颜色的参数,不必考虑电梯运行的位置,使程序变得更加简练。(4)关于用↑和↓指示电梯运行情况的问题,在指定位置先写白色的↑和↓,在调用向上运行电梯的子程序前将↑变为红色,到达指定楼层后先将↑变回白色,然后开门关门;同理在调用向下运行电梯的子程序前将↓变为红色,到达指定楼层后先将↓变回白色,然后开门关门。如此便实现了用↑和↓来指示电梯运行情况的功能。二、程
8、序清单;-----------------------------------------------------------------------------------------------------------CLSSMACRO;清屏之宏MOVBH,7;卷入行属性,黑底白字,正常显示.MOVAX,0600H;AH=6屏幕初始化或上卷AL=0整个窗口空白.INT10H;CH=左上角行号,CL=左下角列号.ENDM;DH=右上角行号,DL=右下角