网站大量收购闲置独家精品文档,联系QQ:2885784924

键盘钢琴汇编语言程序设计.docVIP

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

目录

1总体方案设计与论证 2

课程设计程序功能分析 2

方案设计与论证 2

2程序流程图设计 4

2.1主程序流程图 4

2.2暂停程序流程图 5

2.3错误程序流程图 5

3程序段落说明 7

3.1初始化字符串输出 7

3.2键盘输入与判断 10

3.3暂停程序分支 12

4程序调试说明、结果记录与分析 14

4.1程序调试说明 14

4.2程序调试、运行结果与分析 14

5课程设计收获与心得体会 16

6参考文献 17TOC\o1-3\h\z\u

附录:程序清单 18TOC\o1-3\h\z\u

键盘钢琴汇编语言程序设计

1总体方案设计与论证

本次课设要求编写程序具体功能如下:

〔1〕自定义钢琴键;

〔2〕单击钢琴键,计算机发出相应音阶,发声时间自定义。

〔3〕单击“ESC”键退出程序。

通过分析程序功能要求并结合计算机内部8255、8253和扬声器的连接方式可知为实现功能须对8255、8253对应接口赋予相应的值实现扬声器的开关。除了要求的ESC完成退出程序外,我还设计了单击SPACE完成暂停功能,而这些都可以通过条件转移指令实现。此外,我还要通过DOS功能调用实现彩色提示字符的输出。

根据前面分析可知,本程序主要是要实现字符串输出,字符输入及识别,发声,暂停和退出程序的功能。其中,根据实现字符识别的不同方式有两种设计方案,先阐释如下:

方案一:字符串输出使用DOS功能调用,通过对行、列置入不同的字符实现彩色提示字符的闪灭。字符输入使用单字符输入方式〔1号〕实现。为实现字符识别,可通过多个条件转移指令,每次对一个字符进行判断,不是那么转移到下一个判断处。通过对8255、8253对应接口赋予相应的值实现发声功能。暂停和退出功能也同样使用条件转移指令完成。由于进行字符识别时需要21个不同的条件转移指令,使得程序变得极为臃长,不是最正确方案。

方案二:字符串的输出,字符输入,发声,暂停和退出功能同方案一相同。对于字符识别,那么预先将与琴键对应得键位作为数据段的一局部保存,输入一个字符后将其与之依次比拟,实现识别功能。该方案使得程序变得简洁有效并增加了可读性。

根据上述分析,本次课程设计选用方案二。

2程序流程图设计

由于此次课设程序较为复杂,包含多个跳转和子程序。故在此使用将主程序流程图和子程序流程图分开表达的方法,表达如下:

主程序运行后进入DOS界面,首先输出提示字符。接着用户通过键盘输入单个字符,对其进行判断识别并作出相应处理:ESC时退出程序;SPACE时暂停程序;除Q-U,A-J,Z-M时输出错误信息;是上述字符时对8255、8253进行初始化,保存音阶并发声并循环输入字符的操作。主程序流程图如图2-1所示:

延时赋相应频率值求出音阶值保存对8255、8253初始化是Q~U,A~J,Z~M键吗?是空格吗?是ESC吗?输入字符输出提示字符串开始

延时

赋相应频率值

求出音阶值保存

对8255、8253初始化

是Q~U,A~J,Z~M键吗?

是空格吗?

是ESC吗?

输入字符

输出提示字符串

开始

图2.1主流程图YNNYN暂停错误结束返回DOSY

图2.1主流程图

Y

N

N

Y

N

暂停

错误

结束

返回DOS

Y

当对输入字符判断为空格后,进入暂停子程序。换行后输出暂停信息,对8255进行清零使得扬声器停止工作。随后对下个输入字符进行判断,假设为ESC那么退出整个程序;假设为空格那么重新进入正常工作状态;假设为其他字符那么等待下个字符的输入。流程图如图2.2所示。

入口

入口

换行

换行

输出暂停信息

输出暂停信息

停止发声

停止发声

Y

Y

是ESC吗?

是ESC吗?

N

N

返回DOS

返回DOS

N输出字符是空格吗?

N

输出字符

是空格吗?

Y出口

Y

出口

图2.2暂停程序流程图

图2.2暂停程序流程图

当对输入字符判断为空格、ESC、Q-U、A-J、Z-M以外的字符后,进入错误子程序。换行后输出错误信息。随后重新对输入字符进行判断。流程图如图2.3所示。

入口

入口

换行

换行

输出错误信息

输出错误信息

N

N

是空格吗?

是空格吗?

Y输出字符

Y

输出字符

出口

出口

图2.3错误程序流程图

图2.3错误程序流程图

3程序段落说明

程序开始后先将提示字符串输出。具体就是通过对行、列的赋值改变光标的置入位置并在相应位置输出字符;通过将空格覆盖实现字符的亮灭;通过DOS功能调用改变字体的颜色。结束后换行,等待用户输入字符。

movax,data

movds,ax

movah,0

moval,2

int10h;黑白文本

movcx,0afffh

ZF:

文档评论(0)

199****4744 + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:7002121022000045

1亿VIP精品文档

相关文档