乐曲程序的设计与实现---课程设计(编辑修改稿)内容摘要:

. 3. 4. 5. 6. 7. 1 2 3 4 5 6 7 1 . 131 147 165 175 196 220 247 262 294 330 349 392 440 494 523 7 6 5 4 3 2 1 0 61H Count2 CLK2 OUT2 GATE2 amp。 PB1 PB0 VCC 武汉理工大学《 IBMPC 汇编语言程序设计课程设计》 3 设计方案说明 及 各功能模块说明 主程序 music 将音符的频率送入 di 寄存器,将音符的持续时长送入 bx;然后调用soundf 子程序。 soundf子程序 用 di中的数据去除 12348h的到商送入 42h,使其产生制定频率的信号;然后置 61h 的 PB0, PB1 为 11,使扬声器发出相应的声音;根据 bx 中的数据重复调用waitf 子程序,是扬声器发声得以延续;最后恢复 61h 的初始设置。 waitf 子程序中,根据 cx 中的数据产生固定的延时。 .算法流程图 见下页 武汉理工大学《 IBMPC 汇编语言程序设计课程设计》 初始化 [si]di [Di]=1? Ds:[bp]bx Call soundf Si=si+2 Bp=bp+2 结束 Music 主程序 Begin 12348/[di]ax Ax42H 保存 61H 端口设置 打开扬声器 663cx Call waitf bx=bx1 Bx=0? 恢复 61h 端口设置 End Soundf 子程序 Begin PB4=1? Cx=cx1 Cx=0? end Waitf 子程序 N N Y Y Y N Y N 武汉理工大学《 IBMPC 汇编语言程序设计课程设计》 数据结构的定义和说明 dseg segment freq dw 2 dup(262,292,330,262) dw 2 dup(330,349,392) dw 2 dup(392,440,392,349,330,262) dw 2 dup(262,330,262) dw 1 time dw 8 dup(40) dw 2 dup(40,40,80) dw 2 dup(30,10,30,10,40,40) dw 2 dup(40,40,50) dseg ends 其中 freq 是音符频率表的首地址, time 是音符的持续时长表首地址。 4.测试及评估 在如下平台测试程序: 计算机 : 计算机类型 ACPI Multiprocessor PC。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。