汇编语言课程设计音乐点播程序.docx

.背 景 分 析 及 意 义 随着计算机的不断更新发展,计算机在各个领域的应用越来越多,更多的软 件开发人员和相关技术人员在程序设计的过程中应用汇编程序或编制汇编语言。 而汇编语言做为计算机专业大学生必修之课,每个做为本专业的学生对汇编的理 解和学习就显的尤为重要。汇编语言是计算机能够提供给用户使用的最快而又最 好最有效的语言,也是能够利用计算机所有硬件特性并能直接控制硬件的唯一语 言。因而,对程序的空间和时间要求很高的场合,汇编语言的应用就显的必不可 少了,一些直接控制硬件的应用场合,则更是非用汇编语言不可了。 这次课程设计是在学习汇编语言与实践相结合的一次综合应用。通过具体的 问题分析、设计、调试、运行程序。在实际问题中锻炼提高自己,增加了对本门 课程内容的理解,锻炼了动手能力。就这个程序具体而言:知道了音调与频率和 时间的关系,就可以按照乐曲的曲谱将每个音符的频率和持续时间定义成两个数 据表;然后编写程序依次取出表中的频率值和时间值,调用 GENSOUNDg序发出 各种声音。这个程序最终通过菜单所提示的信息选取所要欣赏的音乐 ,是执行此程 序后,会很有速且有效的使扬声器接通并发出音频为 896 Hz 的声音。 二.总体设计思想 ROM BIOS中的BEEP子程序能根据 BL中给出的时间计数植控制 8254定时器,产 生持续时间计数值控制 8254 定时器,产生持续时间为 1 个或几个 0.5 秒, 频率为 896Hz的声音。通过对 BEEP的修改,可产生任一频率的声音。用汇编语言写的 GENSOUNG能使Pc机发出指定频 率和指定延时的声音。它是一个很好的 通用发声程序。组成乐曲的每个音符的频率值和持续时间定义成两个数据表,然 后编程依次取出表中的频率值和时间值,调用 GENSOUN程序发出各种声音。本程 序就是通过 GENSOUNG序演奏乐曲的例子。 该乐曲点播程序由一个乐曲点播主程 序和五个子程序组成。 (1 )歌曲设置程序; 打开另一个显示窗口程序; 接收键盘输入程序; ⑷返回程序; (5)发声程序。由这几个程序完成乐曲的演奏。 ?完成的主要功能 这个程序能够实现音乐的播放。 运行时按下1-4键演奏乐曲“ 1:Happy birthday to 选择曲目序号进行you; 2:Mary had a little lamb; 3:Taihu boat; 4:Exit; 选择曲目序号进行 歌曲播放;退出程序。 程序运行将显示如下 运行图1 四.软硬件要求 汇编语言对硬件的配置要求不是很高。这个音乐发声程序也有这个特点。只 要是在 Dos 系统下 window98, window 2000,windows xp 环境均可,要有汇编软件 Masm615这个程序有些地方就是在自己的电脑中完成的。 五?程序流程图 音乐演奏程序流程图如图 2所示 六.使用说明 这个程序是关于发声的程序。 通过设计音乐播放的具体程序展示了这个原理。 这个程序共包括了显示程序,歌曲选择,歌曲的播放 返回等几部分组成的。开始时定义了演奏乐曲的频率表和时间节拍表,为形成一 个完整的音乐曲目做了准备。接下来向计数器写入控制字并且接通扬声器,设置 次数循环将节拍转入程序,调用发声程发声。这个序通过按键 1,2,3 即可实现播 放 1:Happy birthday to you; 2:Mary had a little lamb; 3:Taihu boat; 4:Exit; 选择曲目进入歌曲播放; 选择退出选项所对应的功能号后退出程序。 利用计算机控制发声的原理,可以编写演奏乐曲的程序。乐曲是按照一定的 高低、长短和强弱关系组成的音调。在一首乐曲中,每个音符的音高和音长与频 率和节拍有关。组成乐曲的每个音符的频率值和持续时间是乐曲程序发声所需要 的两个数据。音符的频率可以乐谱中查到,但实际上送入计数器的是输入频率与 音符频率相除的值,通用发声程序 SOUND的前半部分就是完成这个计算,并将计 数值送入计数器的功能。音符的持续时间是根据乐曲的速度及每个音符的节拍数 来确定的。在 4/4 中,四分音符为 1 拍,每小节 4 拍,全音符持续 4 拍,二分音 符持续 2 拍,四分音符持续 1 拍,八分音符持续半拍等。如果给全音符分配 1s (100*10ms)的时间,则二分音符的持续时间为 0.5s ( 50*10ms),四分音符的持 续时间为 0.25s ( 25*10ms),八分音符的持续时间为 0.125s ( 12.5*10ms )。 知道了音调与频率和时间的关系,就可以按照乐曲的曲谱将每个音符的频率和持 续时间定义成两个数据表;然后编写程序依次取出表中的频率值和时间值,调用 SOUND程序发出各种声音。 控制发声原理,在计算机中有一个可编程时间间隔定时器,

文档评论(0)

1亿VIP精品文档

相关文档