欢迎来到天天文库
浏览记录
ID:12831850
大小:312.50 KB
页数:28页
时间:2018-07-19
《汇编音乐课程设计报告-音乐发声程序》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、《汇编语言程序设计》课程设计报告 《汇编语言程序设计》课程设计报告题目:音乐发声程序指导老师:组长:成员:专业:计算机科学与技术班级:2011年6月20日26《汇编语言程序设计》课程设计报告 目录一设计任务1二设计目的1三设计思想1四程序流程图3五概要设计4六详细设计51.菜单设计52.通用发生程序设计53.延时程序设计64.模拟频谱程序65.模拟电子琴程序7七程序代码91.Sound程序代码92.Delay程序代码103randp程序代码104Cle
2、anmp清屏程序代码115Mpa模拟电子琴程序代码126Mpu模拟频谱程序代码147Music总体控制程序代码17八程序调试2426《汇编语言程序设计》课程设计报告 一设计任务建立一个菜单,以实现以下功能,根据选择的菜单项执行相应的功能。(1)编写5首音乐歌曲程序;(2)设计选择点播5首音乐歌曲演奏窗口;(3)选择数字1-5演奏相对应的歌曲(4)选择6进入模拟电子琴程序(5)结束音乐歌曲的演奏。二设计目的通过课程设计,对汇编语言指令的功能能有较深入的理解,并学会用汇编语言编写
3、声音程序,从而使学生认识到计算机低级语言功能的重要性,同时对计算机硬件的工作原理有较深入的认识。三设计思想编写主程序,在主程序中用数字标出各个字功能,当用户从键盘输入某个数字时,就去执行相应功能。当用户输入错误数字时有相应的提示。26《汇编语言程序设计》课程设计报告 乐曲是按照一定的高低、长短和强弱关系组成的音调,在一首乐曲中,每个音符的高低和音长,与频率和节拍有关。要实现乐曲的演奏,可通过调用发声程序来达到输出音乐的效果。在程序中,可以设定两个变量分别用来存储音符的频率值和
4、持续的时间。音符的频率可以通过查阅有关资料获得,音符的持续时间根据乐曲的速度及每个音符的节拍数来确定。得到了音频和时间关系,就可以按照乐曲的曲谱将每个音和持续时间定义成两个数据表,然后编写程序依次取出表中的频率和时间值,调用程序发出声音。可以定义几个频谱数据段,通过调用随机数程序产生随机数,根据产生的随机数来显示相应的频谱模拟音乐播放时的频谱。另外可以编辑一个小程序来简单模拟电子琴,根据用户的输入调用发声程序来产生对应频率的声音。26《汇编语言程序设计》课程设计报告 开始清屏
5、显示菜单等待输入四程序流程图NAL=1?YNAL=2?YN播放军港之夜AL=3?AL=4?YN播放童年YN播放让我们荡起双桨AL=5?AL=6?YN播放我心永恒NYY结束显示错误警告AL=7?调用电子琴程序播放歌唱祖国26《汇编语言程序设计》课程设计报告 五概要设计这个音乐程序大致分为五个部分:1.菜单的设计。菜单可以通过定义一个长字符串,通过调用Dos21的9号功能键来实现2.5首音乐歌曲的频率与对应时间的数据表。首先要有乐谱,可以根据乐谱中每个音符及节拍确定这首歌曲对应的
6、频率与时间表。3.发声程序,这也是这个程序的核心部分。要产生指定频率的声音,可将8253的计数器2设置为方式3,根据声音的频率计算出8253计数值并送入8253计数器2即可。使声音持续一段时间,可以通过一个延时程序来实现。延时程序主要通过检测8255APB4口的变化来实现。4.模拟频谱程序。这主要通过字符串显示和随机数来实现。首先把模拟的频谱定义成几个字符串,然后通过随机数程序来生产随机数,根据生成的随机数来显示对应的频谱。5.模拟电子琴程序。这部分主要通过调用发声程序来实现。通过判断用户的输入,产
7、生对应音符的声音。26《汇编语言程序设计》课程设计报告 六详细设计1.菜单设计通过定义一个字符串来实现。MENU1:JUNGANGZHIYE2:TONGNIAN3:RANGWOMENDANGQISHUANGJIANG4:MYHEARTWILLGOON5:YIYANWANNIAN6:PLAYTHEPANIO7:EXITPLEASECHIOCETHENUMBEROFMUSIC2.通用发生程序设计SOUND为以传递过来的频率和节拍数,发出一个音符的频率的子程序。关键代码分析:MOV
8、AL,0B6HOUT43H,AL43H端口为0B6H,选择计数器2,读/写LSB,MSB,模式3,计数值为二进制数。MOVDX,12HMOVAX,34DCHDIVDI按照公式,计数值=12348CH÷f,商存放在AX中。OUT42H,ALMOVAL,AHOUT42H,AL825354的数据总线为8位,而计数值为16位,所以应该分两次传递计数值。INAL,61HMOVAH,ALORAL,3OUT61H,AL将61H的后两位置1,打开扬声器,使其发声。WAIT1:CAL
此文档下载收益归作者所有