欢迎来到天天文库
浏览记录
ID:1045212
大小:432.50 KB
页数:16页
时间:2017-11-07
《乐曲程序设计与实现 汇编语言程序设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、学号:0120810340113课程设计课程名称汇编语言程序设计题目乐曲程序的设计与实现学院计算机科学与技术学院专业计算机科学与技术班级0801班姓名赵旭林指导教师杨青2010年12月30日目录课程设计任务书11、设计原理及要求11.1通用发声程序原理11.2乐曲的频率和节拍31.3实验要求32、方案设计及说明42.1设计实现及功能42.2流程图52.3关键代码设计实现及分析62.3.1程序段说明62.3.2PLAY_MUSIC乐曲演奏程序的实现及分析62.3.3SOUNDF通用发声程序的实现及分析72.3.4WAITF延迟程序的实
2、现及分析82.3.5KEYBOARD键盘发声程序的实现及分析83、调试过程及实验结果分析93.1调试过程93.2实验结果104、设计心得与改进方案124.1心得体会124.2注意事项124.3改进方案125、参考文献13附录源程序课程设计任务书学生姓名:赵旭林专业班级:计算机科学与技术学院0801指导教师:杨青工作单位:计算机科学与技术学院题目:乐曲程序的设计与实现初始条件:理论:完成了《汇编语言程序设计》课程,对微机系统结构和80系列指令系统有了较深入的理解,已掌握了汇编语言程序设计的基本方法和技巧。实践:完成了《汇编语言程序设计
3、》的4个实验,熟悉了汇编语言程序的设计环境并掌握了汇编语言程序的调试方法。要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)进一步理解和掌握程序直接控制I/O方式,掌握计算机发声程序的设计。具体的设计任务及要求:1.采用位触发方式编写程序,使计算机发出音响并演奏乐曲(例如《两只老虎》等)。1)进一步理解程序直接控制I/O方式和位触发方式控制声音的工作原理。2)一首乐曲是由不同频率和节拍的音调组成,因此控制脉冲的频率和持续时间是编写乐曲程序的关键。根据已知的音符频率对照表,设置乐曲的频率表和节拍时间表;3
4、)编写程序并调试通过。2.了解定时器的工作原理,掌握利用定时器产生声音的方法,使计算机演奏乐曲(例如《两只老虎》等)。编写程序并调试通过。在完成设计任务后,按要求撰写课程设计说明书;对课程设计说明书的具体要求请见课程设计指导书。阅读资料:1)《IBM—PC汇编语言程序设计实验教程》3.1节2)《IBM—PC汇编语言程序设计(第2版)》10.4节,10.5节时间安排:设计安排一周:周1、周2:完成系统分析及设计。周3、周4:完成程序调试,和验收。周5:撰写课程设计报告。指导教师签名:年月日系主任(或责任教师)签名:年月日武汉理工大学《
5、汇编语言程序设计》课程设计武汉理工大学《汇编语言程序设计》课程设计乐曲程序的设计与实现1.实验原理1.1通用发声程序原理PC机发声系统以8254的2号计数器为核心。系统初始化时,2号计数器I作在“方波发生器”方式,初值为二进制数,,写入顺序为先低后高,CLK2为1.193182MHz,当计数初值为533H时,OUT2输出的方波大约为900Hz,经过简单的滤波之后,送至扬声器。改变1.4号计数器的计数初值就可以使扬声器发出不同频率的音响。ROMBIOS中有个BEEP子程序,这能根据BL中组出的时间计数值控制8254定时器,产生持续时间
6、为1个或几个0.5秒,频率为896HZ的声音,我们可以利用并修改BEEP,使其产生任一频率的声音。为此我们需要做两点修改,首先,BEEP程序只能产生896HZ的声音,我们的通用发声程序应能产生任一频率的声音。其次,BEEP产生声音的持续时间(音长)只能是0.5秒的倍数,我们希望声音的持续时间更易于调整,例如可以是10ms的倍数。我们知道BEEP能将计数值533H送给定时器2产生896HZ的声音的,那么产生其它频率声音的时间计数值应为:533H×896÷给定频率=123280H÷给定频率发声程序包括3个步骤:(1)在8253中的42端
7、口送一个控制字0B6H(10110110B),该控制字对定时器2进行初始化,使定时器2准备接收计数初值。(2)在8253中的42H端口(Timer2)装入一个16位的计数值(533H×895/频率),以建立将要产生的声音频率。(3)把输出端口61H的PB0、PB1两位置1,发出声音。对于发音部分。PC机上的大多数输入/输出(I/O)都是由主板上的8255(或8255A12武汉理工大学《汇编语言程序设计》课程设计)可编程序外围接口芯片(PPI)管理的。PPI包括3个8位寄存器,两个用于输入功能,一个用于输出功能。输入寄存器分配的I/O
8、端口号为60H和62H,输出寄存器分配的I/O端口号为61H。由PPI输出寄存器中的0、1两位来选择扬声器的驱动方式。连接到扬声器上的是定时器2,从上图可以看到,GATE2与端口61H的PB0相连,当PB0=1时,GATE2获得高电平
此文档下载收益归作者所有