汇编音乐课程设计报告.doc

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《汇编语言程序设计》 课程设计报告 题目: 音乐发声程序 指导老师: 组 长: 成 员: 专 业: 计算机科学与技术 班 级: 2011年6月20日 目 录 一设计任务 1 二设计目的 1 三设计思想 1 四程序流程图 3 五概要设计 4 六详细设计 5 1. 菜单设计 5 2. 通用发生程序设计 5 3. 延时程序设计 6 4. 模拟频谱程序 6 5. 模拟电子琴程序 7 七程序代码 9 1. Sound程序代码 9 2. Delay程序代码 10 3 randp程序代码 10 4 Cleanmp清屏程序代码 11 5 Mpa模拟电子琴程序代码 12 6 Mpu模拟频谱程序代码 14 7 Music总体控制程序代码 17 八程序调试 24 一设计任务 建立一个菜单,以实现以下功能,根据选择的菜单项执行相应的功能。 编写5首音乐歌曲程序; 设计选择点播5首音乐歌曲演奏窗口; 选择数字1-5演奏相对应的歌曲 选择6进入模拟电子琴程序 结束音乐歌曲的演奏。 二设计目的 通过课程设计,对汇编语言指令的功能能有较深入的理解,并学会用汇编语言编写声音程序,从而使学生认识到计算机低级语言功能的重要性,同时对计算机硬件的工作原理有较深入的认识。 三设计思想 编写主程序,在主程序中用数字标出各个字功能,当用户从键盘输入某个数字时,就去执行相应功能。当用户输入错误数字时有相应的提示。 乐曲是按照一定的高低、长短和强弱关系组成的音调,在一首乐曲中,每个音符的高低和音长,与频率和节拍有关。要实现乐曲的演奏,可通过调用发声程序来达到输出音乐的效果。在程序中,可以设定两个变量分别用来存储音符的频率值和持续的时间。音符的频率可以通过查阅有关资料获得,音符的持续时间根据乐曲的速度及每个音符的节拍数来确定。得到了音频和时间关系,就可以按照乐曲的曲谱将每个音和持续时间定义成两个数据表,然后编写程序依次取出表中的频率和时间值,调用程序发出声音。 可以定义几个频谱数据段,通过调用随机数程序产生随机数,根据产生的随机数来显示相应的频谱模拟音乐播放时的频谱。 另外可以编辑一个小程序来简单模拟电子琴,根据用户的输入调用发声程序来产生对应频率的声音。 四程序流程图 五概要设计 这个音乐程序大致分为五个部分: 菜单的设计。菜单可以通过定义一个长字符串,通过调用Dos21的9号功能键来实现 5首音乐歌曲的频率与对应时间的数据表。首先要有乐谱,可以根据乐谱中每个音符及节拍确定这首歌曲对应的频率与时间表。 发声程序,这也是这个程序的核心部分。要产生指定频率的声音,可将8253的计数器2设置为方式3,根据声音的频率计算出8253计数值并送入8253计数器2即可。使声音持续一段时间,可以通过一个延时程序来实现。延时程序主要通过检测8255A PB4口的变化来实现。 模拟频谱程序。这主要通过字符串显示和随机数来实现。首先把模拟的频谱定义成几个字符串,然后通过随机数程序来生产随机数,根据生成的随机数来显示对应的频谱。 模拟电子琴程序。这部分主要通过调用发声程序来实现。通过判断用户的输入,产生对应音符的声音。 六详细设计 菜单设计 通过定义一个字符串来实现。 MENU 1:JUN GANG ZHI YE 2:TONG NIAN 3:RANG WOMEN DANGQI SHUANGJIANG 4:MY HEART WILL GO ON 5:YI YAN WAN NIAN 6:PLAY THE PANIO 7:EXIT PLEASE CHIOCE THE NUMBER OF MUSIC 通用发生程序设计 SOUND为以传递过来的频率和节拍数,发出一个音符的频率的子程序。 关键代码分析: MOV AL, 0B6H OUT 43H, AL 43H端口为0B6H,选择计数器2,读/写LSB, MSB , 模式3,计数值为二进制数。 MOV DX,12H MOV AX,34DCH DIV

文档评论(0)

2749166188 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档