流行音乐乐曲演奏程序

上传人:子 文档编号:43097561 上传时间:2018-06-04 格式:DOC 页数:19 大小:121.50KB
返回 下载 相关 举报
流行音乐乐曲演奏程序_第1页
第1页 / 共19页
流行音乐乐曲演奏程序_第2页
第2页 / 共19页
流行音乐乐曲演奏程序_第3页
第3页 / 共19页
流行音乐乐曲演奏程序_第4页
第4页 / 共19页
流行音乐乐曲演奏程序_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《流行音乐乐曲演奏程序》由会员分享,可在线阅读,更多相关《流行音乐乐曲演奏程序(19页珍藏版)》请在金锄头文库上搜索。

1、汇编语言程序设计课程设计说明书第 1 页 共 19 页流行音乐乐曲演奏程序一、 需求说明1、 通过一个较大型实用程序的设计与实现,综合运用所学知识,加深理解和掌握。同时培养学生分析问题和解决问题的能力,以及自学能力。2、 编写用键盘选择计算机演奏歌曲的程序,歌曲清单至少包括 3 首;3、 程序应该有操作提示、输入和输出,界面追求友好,最好是菜单式的界面;4、 设计若干用例(测试数据) ,上机测试程序并分析所设计的程序; 二、 设计说明1、简要分析为了编写一个流行音乐乐曲演奏程序,分析时按照课程设计的要求必须要有操作提示、输入和输出。在界面设计时应该追求友好,能够使用户便于使用该程序。而且按照课

2、题要求最好能够实现菜单式的界面,进一步提高该程序界面的友好性。同时,在设计分析时也必须解决发声问题。分析设计时按照课本 P383(10.4 通用发声程序)所示的设计方法解决发声问题。2、 概要分析2.1 用户界面以下是显示音乐菜单的字符串msgmenu db* ,0dh,0ahdb*The pop music menu is that: * ,0dh,0ahdb* * ,0dh,0ahdb*1:dahai * ,0dh,0ah ;张宇生大海db*2:dongfengpo * ,0dh,0ah;周杰伦东风破db*3:dashetou * ,0dh,0ah;吴克群大舌头db* ,0dh,0ah,$

3、2.2 模块定义、原理2.2.2 提示选择乐曲msgchoose db 0dh,0ah,Input the number(13) to choose the music you want,input:,$汇编语言程序设计课程设计说明书第 2 页 共 19 页在出现菜单时,同时出现选择乐曲模块,帮助用户认识菜单和操作菜单的方法。2.2.2 提示音乐播放msgdoingdb 0dh,0ah,0dh,0ahdb 0dh,0ah, Now,playing the pop music which you chose!Please enjoying.db 0dh,0ah,0dh,0ah,$在用户选择所选音

4、乐,程序演奏音乐时,同时显示以上程序段,提示用户系统已经在演奏所选流行歌曲。2.2.3 提示输入字符错误msgerror db 0dh,0ah,0dh,0ah,0dh,0ah,! sorry, you input a wrong number!,0dh,0ahdb please try to choose from 1 to 3 again!,input:,$如果出现用户输入字符不符合程序定义的字符串时,程序显示以上模块段,提示用户操作错误,同时程序转回菜单,提示用户重新操作。2.2.4 乐曲频率表和节拍表以下节选大舌头流行乐曲的频率表和节拍表,其余乐曲见源程序段。freq_dashetou

5、dw 524,524,524,524,494,524,588,524 ;频率表dw 524,524,524,524,494,524,494,392dw 524,524,524,524,494,524,588,524dw 330,330,294,294,262,330,300,262dw 524,524,524,524,494,524,588,524dw 524,524,524,524,494,524,494,392dw 524,524,524,524,494,524,588,524dw 330,330,294,294,262,330,300,262 dw -1 time_dashetou dw

6、 500,500,500,500,1000,500,500,500 ;节拍表dw 500,500,500,500,1000,500,500,500dw 500,500,500,500,1000,500,500,500汇编语言程序设计课程设计说明书第 3 页 共 19 页dw 500,500,500,250,250,500,500,1000dw 500,500,500,500,1000,500,500,500dw 500,500,500,500,1000,500,500,500dw 500,500,500,500,1000,500,500,500dw 500,500,500,250,250,50

7、0,500,10002.2.5 乐曲处理模块以下节选第一乐曲的处理模块,其余乐曲可见源程序。music1:dispmsg msgdoing ;music1 处理程序段mov si,offset freq_dahaimov di,offset time_dahaim1: mov cx,sicmp cx,-1 ;-1 用于判断是否结束歌曲je nextmov bx,dicall gensoundadd si,2 ;取下一频率值add di,2 ;取下一节拍值jmp m12.2.6 音乐处理模块gensound proc nearpush dxmov al,0b6h ; 向计数器写控制数out 43

8、h,al ; 方式 3、双字节写和二进制计数方式写到控制口mov dx,08h ; 设置被除数mov ax,3208hdiv cx ; 其商为预置值out 42h,al ; 先送 LSBmov al,ah 汇编语言程序设计课程设计说明书第 4 页 共 19 页out 42h,al ; 后送 MSBin al,61h ; 读端口原值mov ah,alor al,3out 61h,al ; 接通扬声器l2: push ush axmov dx,8hmov ax,0f05hs1: sub ax,1sbb dx,0jnz s1pop axpop dxdec bxjnz l2mov al,ah ; 写回

9、 61h 端口值,关闭扬声器out 61h,alpop dxretgensound endpgensound 程序能产生 1965535Hz 的声音,这个频率的下限 19Hz 是使除法不产生溢出的最小的 DI 值。其上限实际上是多余的,因为人们最高能够听到的音频约为20000Hz。2.2.7 音符的频率表1234567低音131147165175196220247中音262294330349392220494高音524588660698784880984汇编语言程序设计课程设计说明书第 5 页 共 19 页13?2.3 数据流图流行乐曲程序演示流程图YNNY三、 详细的算法描述3.1 主程序表

10、述 code segment assume cs:code,ds:data begin:mov ax,datamov ds,ax next: dispmsg msgmenu初始化键盘输入结束符?结束菜单选择调用 GENSOUNDDI频率表 BX节拍表汇编语言程序设计课程设计说明书第 6 页 共 19 页dispmsg msgchoose;提示菜单及输入数字inputbegin:mov ah,01h int 21hcmp al,q ;输入 q 则退出je exitcmp al,1 ;比较数字4?ja doagainand ax,000fh;将 ASCII 码转换成数字,以便后面指向 table

11、表里对应的地址dec ax ;减 1,对应地址shl ax,1 ;相当于 ax*2,因为 table 里的相邻偏移地址是 2mov bx,axjmp tablebx ;间接转移:IPto choose the music you want,input:,$;提示输入字符错误msgerror db 0dh,0ah,0dh,0ah,0dh,0ah,! sorry, you input a wrong number!,0dh,0ahdb please try to choose from 1 to 3 again!,input:,$;以下是显示音乐菜单的字符串msgmenu db* ,0dh,0ah

12、db*The pop music menu is that: * ,0dh,0ahdb* * ,0dh,0ahdb*1:dahai * ,0dh,0ah ;张宇生大海db*2:dongfengpo * ,0dh,0ah ;周杰伦东风破db*3:dashetou * ,0dh,0ah ;吴克群大舌头db* ,0dh,0ah,$;以下对应为各乐曲的频率表和节拍时间表freq_dahai dw 196,220dw 262,262,262,262,262,220,196dw 262,262,262,262,294,262,220,262dw 294,294,294,294,294,262,220dw

13、294,294,294,294,330,294,330,392dw 440,440,392,440,392,330dw 294,294,330,294,262,220,196,220dw 262,262,262,262,262,220dw 262,196,220汇编语言程序设计课程设计说明书第 10 页 共 19 页dw 440,440,392,440,524,440dw 392,330,294,262,220,196,220dw 262,262,262,262,294,262dw 262,330,392dw 440,440,440,440,524,440dw 392,392,392,440,

14、392,330,294dw 262,262,262,262,294dw 330,330,294dw 262,262,262,262,524,440dw 392,392,392,440,392,330,392dw 440,524,524,440,392dw 392,330,392dw 440,440,440,440,524,440dw 392,392,392,440,392,330,294dw 262,262,262,262,392dw 330,330,294dw 262,262,262,262,294,330dw 392,392,330,392,330,392dw 440dw 9,9,196,660,294,294,262dw 262,-1 ;最后一个以“1”控制结束

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号