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

(27页)

本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!

19.9 积分

目录1总体方案设计与论证 21」课程设计程序功能分析 21.2方案设计与论证 22程序流程图设计 42」主程序流程图 42.2暂停程序流程图 52.3错误程序流程图 53程序段落说明 73」初始化字符串输出 73.2键盘输入与判断 103.3暂停程序分支 124程序调试说明、结果记录与分析 144」程序调试说明 144.2程序调试、运行结果与分析 145课程设计收获与心得体会 166参考文献 17附录:程序清单 18键盘钢琴汇编语言程序设计1总体方案设计与论证课程设计程序功能分析本次课设要求编写程序具体功能如下:(1) 自定义钢琴键;(2) 单击钢琴键,计算机发出相应音阶,发声时间自定义。(3) 单击“ESC”键退出程序。通过分析程序功能要求并结合计算机内部8255、8253和扬声器的连接方 式可知为实现功能须对8255、8253对应接口赋予相应的值实现扬声器的开关。 除了要求的ESC完成退出程序外,我还设计了单击SPACE完成暂停功能,而这 些都可以通过条件转移指令实现。此外,我还要通过DOS功能调用实现彩色提 示字符的输出。1 ? 2方案设计与论证根据前面分析可知,本程序主要是要实现字符串输出,字符输入及识别,发 声,暂停和退出程序的功能。其屮,根据实现字符识别的不同方式有两种设计方 案,先阐释如下:方案一:字符串输出使用DOS功能调用,通过对行、列置入不同的字符实现 彩色提示字符的闪灭。字符输入使用单字符输入方式(1号)实现。为实现字符 识别,可通过多个条件转移指令,每次对一个字符进行判断,不是则转移到下一 个判断处。通过对8255、8253对应接口赋予相应的值实现发声功能。暂停和退 出功能也同样使用条件转移指令完成。由于进行字符识别时需要21个不同的条 件转移指令,使得程序变得极为臃长,不是最佳方案。方案二:字符串的输出,字符输入,发声,暂停和退出功能同方案一相同。 对于字符识别,则预先将与琴键对应得键位作为数据段的一部分保存,输入一个字符后将其与之依次比较,实现识别功能。该方案使得程序变得简洁有效并增加 了可读性。根据上述分析,本次课程设计选用方案二。2程序流程图设计由于此次课设程序较为复杂,包含多个跳转和子程序。故在此使用将主程序 流程图和子程序流程图分开叙述的方法,叙述如下:2. 1主程序流程图主程序运行后进入DOS界面,首先输出提示字符。接着用户通过键盘输入单 个字符,对其进行判断识别并作出相应处理:ESC时退出程序;SPACE吋暂停程 序;除Q-U, A-J, Z-M时输岀错误信息;是上述字符吋对8255. 8253进行初始化,保存音阶并发声并循环输入字符的操作。主程序流程图如图2-1所示:图2.1主流程图2. 2暂停程序流程图当对输入字符判断为空格后,进入暂停子程序。换行后输出暂停信息,对 8255进行清零使得扬声器停止工作。随后对下个输入字符进行判断,若为ESC 则退出整个程序;若为空格则重新进入正常工作状态;若为其他字符则等待下个 字符的输入。流程图如图2. 2所示。▼图2.2暂停程序流程图2. 3错误程序流程图当对输入字符判断为空格、ESC、Q-U、A-J、Z-M以外的字符后,进入错误子 程序。换行后输出错误信息。随后重新对输入字符进行判断。流程图如图2. 3 所示。 图2.3错误程序流程图3程序段落说明3. 1初始化字符串输出程序开始后先将提示字符串输岀。具体就是通过对行、列的赋值改变光标的置入位置并在相应位置输岀字符;通过将空格覆盖实现字符的亮灭;通过DOS功能调用改变字体的颜色。结束后换行,等待用户输入字符。movax, datamovds, axmovah, 0moval,2intlOh;黑白文本movex, OafffhZF:;输出welcome to the pc piano!movdh, 1;行movdl,32;列movah, 2movbh,0;页号为0intlOh;置光标位置1 eadx, strlmovah, 9int21h;显示字符串movdh, 1movdl,32movah, 2movbh,0intlOh;置光标位置lea dx, str2mov ah, 9intsubjnzmovmovintmovmovintmovmovmovkkkl:movincmovintmovincmovincmovmovmovintcmp21hex, 1ZFal, 3ah, 0lOhdx,offset str3ah, 921hsi, offset str4di,0dl,0dh, 1dlah, 2lOhah, 09dial, [si]sibh, 0bl, Oahex, 01lOhdi, 12h;不等于转移;设置为16色文本;输出输入ESC退出;输出q到U代表高咅;dh行 dl列;置光标位置;9号功能;显示页;字体颜色;字符?重复一次jb kkklmov di, 0mov dl, 0kkk2:mov dh, 3inc dlmov ah, 2int lOhmov ah, 09inc dimov al, [si]inc simov bh, 0mov bl, Oehmov ex, 01 int lOhemp di,13h jb kkk2;dh行 dl列;置光标位置;9号功能;显示页;color;字符重复一次;dh行 dl列;置光标位置;9号功能mov si, offset str6 ;输出乙到山代表低咅mov di, 0mov dl, 0 kkk3:mov dh, 5inc dlmov ah, 2int lOhmov ah, 09inc dimov al, [si]incsimovbh, 0;显示页movbl,05h;colormovex, 01;字符重复一次intlO 关 键 词: 键盘 钢琴 汇编 语言程序设计

 天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。

汇编计算机钢琴流程图,键盘钢琴汇编语言程序设计相关推荐

  1. 汇编计算机钢琴流程图,键盘钢琴汇编语言课程设计.docx

    前 言 汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接 控制硬件的语言.汇编语言,作为一门语言,对应于高级语言的编译器,需要一个"汇 编器"来把汇编语言原 ...

  2. 汇编计算机钢琴流程图,汇编模拟电子琴程序

    <汇编模拟电子琴程序>由会员分享,可在线阅读,更多相关<汇编模拟电子琴程序(13页珍藏版)>请在人人文库网上搜索. 1.汇编语言程序设计课程设计报告题目: 模拟电子琴(音乐播放 ...

  3. 微机原理实验8254计算机钢琴,GitHub - SincereXIA/PianoMFC: 西电微机原理课设项目,键盘电子乐器演奏程序设计(电子琴),MFC...

    PianoMFC 西电微机原理课设项目,键盘电子乐器演奏程序设计(电子琴),MFC 需要连接西电微机原理实验室提供的 QTH9054 微机试验箱,使用其蜂鸣器发声,若不连接,程序会直接播放 mp3 文 ...

  4. 用计算机弹绿色谱子,小Z键盘钢琴(电脑键盘弹钢琴带曲谱)

    [小Z键盘钢琴] 以下歌谱对应的键是跟默认键是不一样的,我已经打包了,只要把 歌谱.ini 改成 系统.ini 然后重启软件,这样就改好了,然 后可以按照以下歌谱试弹一下! 海阔天空就是此键盘钢琴的第 ...

  5. 计算机组成原理汇编程序实验,计算机组成原理汇编语言程序设计实验.ppt

    汇编语言程序设计实验主讲:马冰汇编语言上机操作步骤汇编语言上机所必备的软件汇编语言上机操作过程汇编语言上机所必备的软件操作系统:DOS或CCDOS编辑程序:行编辑程序EDLIN.COMWPS全屏编辑程 ...

  6. java第五章上机流程图,第五章汇编语言程序设计

    第五章汇编语言程序设计Tag内容描述: 1.1 第5章 汇编语言程序设计 概述 顺序程序设计 分支程序设计 循环程序设计 子程序设计 2 5 1 概述 汇编程序中的语句 编写汇编程序的一般步骤 3 一 ...

  7. 计算机专业需要汇编语言,重点大学计算机专业系列教材·汇编语言程序设计

    重点大学计算机专业系列教材·汇编语言程序设计 语音 编辑 锁定 讨论 上传视频 本词条缺少概述图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧! <重点大学计算机专业系列教材·汇编语言程 ...

  8. 计算机组成原理中EMAR是什么,计算机组成原理与汇编语言程序设计第3章2

    1.1,2,第3节 CPU模型机的组成及其数据通路,3.3.1 基本组成,模型机数据通路结构图,3,3.3.1 基本组成,1寄存器,(1)可编程寄存器,通用寄存器有4个:R0.R1.R2.R3:堆栈指 ...

  9. 计算机组成原理汇编语言设计实验,《计算机组成原理汇编语言程序设计》实验指导书.doc...

    <计算机组成原理汇编语言程序设计>实验指导书,汇编语言实验指导书,微机原理与汇编语言,微机原理及汇编语言,汇编转c语言原理,汇编语言原理,汇编语言和编译原理,汇编语言编译原理,计算机原理与 ...

最新文章

  1. scikit对超参数模型优化对比(网格搜索与随机搜索对比)
  2. 使用MLX90640自制红外热像仪(四):stm32f103c8t6刷320x240分辨率屏的时间测试
  3. java连接字符串_Java字符串连接运算符
  4. 马哥2016全新Linux+Python高端运维班第七周作业
  5. activity idea编写bpmn流程文件
  6. 2018-2019-2 网络对抗技术 20165320 Exp2 后门原理与实践
  7. selenium控制浏览器切换页面
  8. ie代理配置错误_电缆厂组织结构图的7个常犯错误!
  9. Asp.net(C#)给图片加上水印效果
  10. C++笔记(9) 模板,向量和栈
  11. linux 串口内核加载,linux对串口编程的详解(从应用层到内核驱动,包括232,485)
  12. 记录一次cordova升级react native安装失败版本过低的趟坑之旅
  13. Java字符串的字符进行排序
  14. 激光雷达原理及发展现状
  15. iPhone中使用ShareKit一键分享到Facebook,Twitter等多平台
  16. java joda time_使用Joda-Time优雅的处理日期时间
  17. b B KB MB GB TB 之间的关系与换算
  18. Java面试必背八股文[6]:Redis
  19. 由Monkey测试引发的跨多个进程的Android系统死锁问题分析
  20. Visual Studio Code之xml编辑器安装

热门文章

  1. css 中实现四周阴影
  2. 销售火爆,APS自动排产提升咖啡机家电企业生产管理效益
  3. [转]心飞扬双手互搏论饭统网的价值
  4. 在excel中计算风向的函数
  5. iphone有锁和无锁是什么意思_科普|iPhone有锁和无锁的区别
  6. OpenGL uniform的用法
  7. 急躁型人格分析,如何改变急躁性性格?
  8. CIH61MI V1.1-H61H2-LM3 V1.1 触发不显
  9. android自定义圆盘时钟
  10. PHP性能分析工具xhprof 参数简介详解