“霓虹灯”的模拟显示 正文.doc

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
“霓虹灯”的模拟显示 正文

武汉理工大学《微机原理与接口技术》课程设计  PAGE 18 “霓虹灯”的模拟显示 1 设计任务及要求分析 1.1 设计任务 运用汇编语言完成以下要求的编程:在屏幕中央以@字符显示闪动(1HZ)霓虹灯,而后按W由两边向中央进行填充,按N后按相反的次序消失。按Q退出程序。 1.2 设计要求 该设计主要通过汇编语言编程,并调用DOS 命令和BIOS 命令来完成。主要完成以下几个方面的功能: 1、能够在窗口中的指定位置显示指定图形@并按要求进行闪动; 2、按W由两边向中央进行填充@; 3、按N后按相反的次序消失@; 4、按Q能够退出程序的运行; 2 方案比较 2.1 方案一 我们可以采用编写延时子程序的方法来实现延时,这种方法的主要原理是运用计算机响应每一条程序的时间积累。程序如下: PUSH BX PUSH CX MOV CX,xx ;输入正数 A1: MOV BX,xx ;输入正数 A2: DEC BX JNZ A1 LOOP A2 POP CX POP BX 此方案的原理是运用循环指令来进行。主要是通过设置CX和BX的值来进行复循环,从而达到时间的累积即延迟。 2.2 方案二 方案二:运用DOS功能调用。 采用21H来中断调用,功能号为AH=2D,完成的功能是设置时间(相关功能将在后面介绍),DH的值变换一次为0.01秒。这样通过设置DH的值来设置时间的延迟。 2.3 方案比较 方案一和方案二在理论上运行的都是可行的,只要经过精确的计算都能得到理想的结果。但是方案一在设置时间延迟时在不同的计算机会得到不同的结果,同时运算量相对于方案二来说要复杂。因此综合比较此次采用的是方案二,设计题目中要求采用1HZ的时间方案,故将DH的值设为50。这样@消失和出现的频率就可以达到1HZ,从而达到题目要求。 3 设计原理 3.1设计思想 根据题目中的要求,可将程序段分为三大过程。第一就是霓虹灯以1HZ的频率在屏幕中央闪动,这部分在在设计时首先要将光标准确定位在屏幕的中央,这就要运用2号功能并采用10H中断。其次在就是霓虹灯闪烁过程,该过程就是在霓虹灯出现后经过一定的延时之后消失;消失一定时间后再将霓虹灯显示出来,若是没有其他命令则一直循环下去。 第二个过程就是当外界输入‘W’或者‘w’时由两边向中间填充字符‘@’。该过程首先是等待外界输入字符,然后和第一个过程一样是要将光标置在指定位置然后对CX赋值之后进行循环,每次循环是要将字符‘@’在CH和CL指定的值处进行输出并显示。当两边的字符‘@’显示到屏幕中间并相遇时结束该过程,否则继续循环输出显示。 第三个过程就是当外界输入‘N’或者‘n’时字符‘@’由中间向两边依次消失,该过程和第二个大过程是逆过程,只是用空格字符输出显示并将字符‘@’覆盖,当屏幕中的‘@’消失完全时该过程结束,否则‘@’继续消失。 3.2程序中用到的DOS功能调用 (1)01H号功能调用(中断指令“INT 21H”) 功能:从键盘输入一个字符 输入参数:无 输出参数:AL=ASCII码 (2)02H号功能调用(中断指令“INT 21H”) 功能:在屏幕上显示一个字符(ASCII码) 输入参数:DL=ASCII码 输出参数:无 (3)2CH号功能调用(中断指令“INT 21H”) 功能:取系统时间 返回参数:DH:DL=秒:0.01秒 CH:CL=时:分 (4)4CH号功能调用(中断指令“INT 21H”) 功能:返回操作系统4CH 调用:MOV AH,4CH 3.3程序中用到的BIOS功能调用 功能01H(中断指令“INT 16H”) 功能描述:检测键盘 输出参数:ZF=1 无码可读 ZF=0,有输入于AX中 (2)功能02H(中断指令“INT 10H”) 功能描述:用文本坐标下设置光标位置 入口参数:AH=02H BH=页号 DH=行(Y坐标) DL=列(X坐标) 出口参数:无 (3)功能06H(中断指令“INT 10H”) 功能描述:初始化屏幕或滚屏 入口参数:AH=06H——向上滚屏,07H——向下滚屏 AL=滚动行数(0——清窗口) BH=空白区域的缺省属性 (CH、CL)=窗口的左上角位置(Y坐标,X坐标) (DH、DL)=窗口的右下角位置(Y坐标,X坐标) 出口参数:无 4程序设计流程图 4.

文档评论(0)

小教资源库 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档