微机原理课程设计 打字练习_第1页
微机原理课程设计 打字练习_第2页
微机原理课程设计 打字练习_第3页
微机原理课程设计 打字练习_第4页
微机原理课程设计 打字练习_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一概述1.课程设计分析计算机的不断更新发展,在各个领域的应用越来越多。而汇编语言是计算机能够提供用户使用的最快而又最好最有效的语言,也是能够利用计算机所有硬件特性并能直接控制硬件的唯一语言。因而,对程序的空间和时间要求很高的场合,汇编语言的应用就显得必不可少了,一些直接控制硬件的应用场合,则更是非用汇编语言不可。设计课程设计是在教学实践基础上进行的一次大型实验,也是对该课程所学理论知识的深化和提高。因此,要求我们能综合应用所学知识,设计与制造出具有较复杂功能的应用系统,并且在实验的基本技能方面上进行一次全面的训练。通过具体的问题分析、设计、调试、运行程序。在实际问题中锻炼提高自己,增加了对本门课程内容的理解,锻炼了动手能力。就这个程序具体而言:调用宏,显示主界面,通过选择不同的选项,可以进入不同的界面;采用BIOS功能的中断,可以在任何时候退出当前所在的界面并通过选择进入其他的界面。这个程序最终通过菜单所提示的信息选取所要进入的界面,获得所要的功能。2.课程设计目的1对掌握知识的深度、运用理论去处理问题的能力、实验能力、课程设计能力、书面及口头表达能力进行考核。2培养综合运用所学知识,独立完成汇编程序课题的能力3能够较全面地巩固和应用课堂中所学的基本理论和程序设计方法,能够较熟练地完成汇编语言程序的设计和调试。4培养勇于探索、严谨推理、实事求是、有错必改,用实践来检验理论,全方位考虑问题等科学技术人员应具有的素质。5培养从资料文献、科学实验中获得知识的能力,提高从别人经验中找到解决问题的新途径的悟性,初步培养工程意识和创新能力。3.课程设计的要求1、自行编制键盘中断和时间中断处理程序,并保存原中断向量。程序运行时,使用自编的中断向量处理程序。程序退出时,恢复中断向量。2、在缓冲区中预放了一些字母,运行时,可按照屏幕上显示的小写字母输入练习。3、每输入完一行按回车键后,可显示出练习输入的时间提高要求:改进程序,将原设计中固定的例句改为随机变化的例句。附加要求:必要的辅助功能(设置、修改等)。二设计总体方案1.程序设计的整体设计思路要求完成一个打字练习程序,即在规定的时间内按下屏幕上显示的字母,字母就消失,否则字母一直移动到屏幕底端。(比如:运行程序时,出现菜单主界面,按回车键出现由26个字母组成的乱序行,这时其中任一字母落下,在键盘上敲入该字母,如果输入正确,字母消失;按ESC键返回主界面;按空格见暂停;按‘E’退出。)在设计本课题之前,考虑的两个问题:一是如何从键盘输入并显示字符;二是如何在输入时进行计时。考虑第一个问题,在PC中,对键盘的管理是通过中断机构和8255可编程序外围接口芯片来实现的。在设计中,我采用的是第一种思路。由于系统在BIOS中已配备了键盘的服务功能,因此可通过调用键盘的DOS和BIOS功能编程。而且设计中使用的都是软件中断,故在具体的程序设计时,需要禁止硬件中断。再考虑第二个问题,计时部分也可通过定时器的中断来实现。由于定时器中断优先级比键盘高,只要在键盘中断处理程序中用一条STI指令允许高级中断,那么在整个打字的过程中,定时器会以每秒18.2次的频率产生中断。根据计时的需要,在整个打字过程中,再使用自编的中断例行程序可把定时器中断的次数转换成时间。在键盘打字时采用09类型的键盘中断,来取得输入字符并将字符显示在屏幕上。程序设计时,预先设置的堆栈中存放一些字符串例句,每次打字之前,屏幕上先显示出一个例句,然后打字员按照例句,将句中字符通过键盘输入。这个过程可反复进行,当键入一个功能键时,退出打字计时程序。自行编制键盘中断和时间中断处理程序,并保存原中断向量。程序运行时,使用自编的中断向量处理程序。程序退出时,恢复中断向量。该打字程序包括以下五个子程序:(1)速度选择界面的显示模块;(2)打字练习模块;(3)设置速度模块;(4)清屏模块。(5)计时模块打字练习模块又分为以下子程序:(1)游戏界面模块(2)功能模块2.算法的整体设计思路此程序涉及到宏和I/O中断的调用,通过对宏的定义和使用以及对I/O中断的使用,实现程序的相应功能。利用宏,实现各个界面的显示,采用中断,实现各个子程序的相互转换。其中最主要的是打字程序:运行程序,打字界面中出现由26个字母组成的乱序行,这时其中会有任一字母落下,并开始计时,在键盘上输入该字母,字母消失,分数值加1,否则字母一直移动到屏幕底端。当按下空格键时,计时停止且停止下落。3.程序的主要特点本程序最大的特点就是具有较好的人机交互功能。在主界面中,用户可以选择不同的游戏等级,他们能够根据自己的实际打字速度,选择相匹配的等级进行打字练习三详细设计1.流程图本次程序开始是一个主界面,在主界面上包括2个选项,第一个选项是进入慢速子程序,第二个是选择进入快速子程序以下是程序的主流程图:开始开始速度选择速度选择游戏界面游戏界面E退出ESCE退出ESC返回主界面Space暂停2.清屏子程序设计BIOS功能调用中的INT10H功能6能使屏幕内容上卷指定的行,这个功能需要设置4个参数,分别代表清屏区域的左上角的坐标和右下角的坐标。如果屏幕的其实行列不为(0,0)结束的行列不为(24,79),则屏幕上只有指定的一部分具有上卷的功能,这个屏幕伤的部分区域叫做窗口(window)像这样的窗口可以在屏幕上设置多个,这些窗口都可以独立使用。如果上卷超过指定窗口的顶部,这些行的内容就消失,出现在窗口底部的新行被填为空格,其属性用BH寄存器决定。如果AL=0,则实现完成的工作是清楚屏幕的功能,它将按AL中的BH字符使指定的窗口为空白。以下是清除全屏幕的子程序:CLEARPROCNEARPUSHAXPUSHBXPUSHCXPUSHDXMOVAH,6MOVAL,0MOVBH,7MOVCH,0MOVCL,0MOVDH,24MOVDL,79INT10HMOVDX,0MOVAH,2INT10H DIS525D,11110100BDIS3RETCLEARENDP3.计时子程序设计计时程序调用系统时间,在下落开始时取初值,在下落暂停时取终值,并显示在屏幕上。TIMEOUTPROCPUSHAX PUSHCXPUSHDXMOVAH,2CHINT21HSUBDH,SECSBBCL,MINSBBCH,HOUMOVAL,CHCBWCALLBINDECMOVDL,':'MOVAH,02HINT21HMOVAL,CLCBWCALLBINDECMOVDL,':'MOVAH,02HINT21HMOVAL,DHCBWCALLBINDECPOPDXPOPCXPOPAXRETTIMEOUTENDPBINDECPROCPUSHAXPUSHCXPUSHDXMOVDX,0MOVCX,10DDIVCXMOVBX,DXMOVDX,AXORDX,0030HMOVAH,02HINT21HMOVDX,BXORDX,0030HMOVAH,02HINT21HPOPDXPOPCXPOPAXRETBINDECENDP3.功能的进一步完善当游戏分数达到某一数值时,显示“MISSIONCOMPLETE!”ST9DB'MISSIONCOMPLETE!',0AH,0DH,'$' CMPAL,10 JNZT DIS1ST920,60四运行结果说明按ENTER键后,进入等级选择界面,有两个等级进行选择,分别代表不同的速度,速度一次递增,只能输入1-2,直到输入正确才能开始游戏。选择等级后,进入游戏界面;界面的左边是功能菜单,可以进行功能的选择,暂停(空格键),退出(E),返回主界面(Esc);界面的中间是游戏区,当用击中下落的字母后,字母会消失界面的右边是记分功能,可以显示用户的当前分数,但用户的积分达到一定数值时,会显示祝贺语句。界面的上边是记时功能,当字母开始下落的时候,开始计时,暂停后重新计时五系统改进 本系统可以改进的地方有很多。首先我做的界面不够华丽,显得很单调。其次,字母下落的速度太单一,如果能随着玩的时间增加再加快就更好了。而且计分系统没把字母输入时间也计算在内。难度选择时候没有输入其它字符时的处理。如果能加上这些功能的话,那么程序的可用性以及完整性就有能上一台阶。六课程设计总结设计体会刚拿到这个题目觉得特别难,感觉无从下手。汇编语言不同于高级语言,对于高级语言,我们心中可以有一个非常清晰的思路,在实现功能的时候非常得心应手。但汇编语言不同,它是面向机器的语言。用它编写程序时的思路应该按照机器执行程序的思路来编写,所以这个挑战对我来说非常大。在编写程序之前,首先要摒弃高级语言思路的干扰。在做准备工作的时候,我从网上找到了相关的代码,照着别人的步骤感受汇编语言编写程序的思路。很多地方都不是太明白,但是通过查询课本以及上网找相关资料,还是把一些内容理解了。在编写的时候,我也是按照别人的思路,一步一步进行。很多地方看似简单,但是等到自己亲自实践的时候就编的很复杂。汇编语言的前后联系非常紧密,如果要改一点东西的话整个程序的很多地方都要重新做,可以说是牵一发而动全身。所以在编写的时候要很仔细,要记住前面已经实现了那些功能,还有那些功能要实现,这些必须记好,否则程序会出错。通过这次课程设计,我了解了汇

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论