1、 汇编课程设计 题 目:演奏乐曲彩色显示星号 目 录 设计目的(3) 设计要求及任务(3) 实验原理(4) 算法功能描述(5) 程序流程图(6) 调试运行结果(10) 自我评估(12) 参考资料(13) 一:设计目的 对所学汇编知识的进一步学习掌握, 对微机系统结构和 80 系列指令系统有了 较深入的理解,已掌握了汇编语言程序设计的基本方法和技巧。熟悉了汇编 语言程序的设计环境并掌握了汇编语言程序的调试方法。 二:设计要求及任务 1) 一首乐曲是由不同频率和节拍的音调组成,因此控制脉冲的频率和持续 时间是编写乐曲程序的关键。根据已知的音符频率对照表,设置乐曲的 频率表和节拍时间表; 2)编写程
2、序并调试通过。 了解定时器的工作原理,掌握利用定时器产生声音的方法,使计算机演 奏乐曲(例如生日歌等) 。编写程序并调试通过。 3)在姓名一行及下一行以品红底色显示星号 三:三:实验原理 PC 机发声系统以 8254 的 2 号计数器为核心。系统初始化时,2 号计数器 I 作在“方波发生器”方式,初值为二进制数, ,写入顺序为先低后高,CLK2 为 1193182MHz,当计数初值为 533H 时,OUT2 输出的方波大约为 900Hz,经过简 单的滤波之后,送至扬声器。改变 1.4 号计数器的计数初值就可以使扬声器发出 不同频率的音响。 ROM BIOS 中有个 BEEP 子程序,这能根据
3、BL 中组出的时间计数值控制 8254 定时器,产生持续时间为 1 个或几个 0.5 秒,频率为 896HZ 的声音, 我们可以利用 并修改 BEEP,使其产生任一频率的声音。为此我们需要做两点修改,首先,BEEP 程序只能产生 896HZ 的声音,我们的通用发声程序应能产生任一频率的声音。其 次,BEEP 产生声音的持续时间(音长)只能是 0.5 秒的倍数,我们希望声音的 持续时间更易于调整,例如可以是 10ms 的倍数。 乐曲的频率和节拍时间 freq dw 196,220 dw 262,262,294,262,349,330 ;生日歌 dw 262,262,294,262,392,349
4、 dw 262,262,523,440,349,330,294 dw 466,466,440,262 dw 196,220 ; 随意歌曲 dw 262,262,262,262,262,220,196 dw 262,262,262,262,294,262,220,262 dw 294,294,294,294,294,262,220 dw 294,294,294,294,330,294,330,392 dw 440,440,392,440,392,330 dw 294,294,330,294,262,220,196,220 dw 262,262,262,262,262,220 dw 262,196,220 dw 440,440