汇编 音乐乐曲演奏程序

汇编 音乐乐曲演奏程序

ID:10131158

大小:253.50 KB

页数:25页

时间:2018-06-11

汇编 音乐乐曲演奏程序_第1页
汇编 音乐乐曲演奏程序_第2页
汇编 音乐乐曲演奏程序_第3页
汇编 音乐乐曲演奏程序_第4页
汇编 音乐乐曲演奏程序_第5页
资源描述:

《汇编 音乐乐曲演奏程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、黄石理工学院《汇编语言程序设计》课程设计目录1、问题定义21.1设计目的21.2设计内容22、需求分析32.1流程图32.2通用发声程序设计原理43、详细设计63.1主要的宏和过程的实现63.1.1DISPLAY显示宏63.1.2ADDRESS音乐地址宏63.1.3MUSIC宏73.1.4通用发生程序GENSOUND83.1.5WAITF延时程序93.1.6CLEAR清屏程序103.1.7RETU退出113.2主程序实现113.2.1数据段定义113.2.2堆栈段定义123.2.3初始化133.2.4程序执行过程1

2、34、系统调试145、收获体会176、附录187、参考文献2525黄石理工学院《汇编语言程序设计》课程设计1、问题定义1.1设计目的1.使学生能够较全面地巩固和应用课堂中所学的基本理论和程序设计方法,能够较熟练地完成汇编语言程序的设计和调试。2.培养学生综合运用所学知识独立完成汇编程序课题的能力。3.培养学生勇于探索、严谨推理、实事求是、有错必改,用实践来检验理论,全方位考虑问题等科学技术人员应具有的素质。4.提高学生对工作认真负责、一丝不苟,对同学团结友爱,协作攻关的基本素质。5.培养学生从资料文献、科学实验中获

3、得知识的能力,提高学生从别人经验中找到解决问题的新途径的悟性,初步培养工程意识和创新能力。6.对学生掌握知识的深度、运用理论去处理问题的能力、实验能力、课程设计能力、书面及口头表达能力进行考核。1.2设计内容要求完成一个音乐程序,即通过按下键盘上某个按键就可以按预先设定的程序播放音乐或者终止程序。(比如:按大写字母“A”,唱乐曲“玛丽有只小羔羊”;按大写字母“B”,唱乐曲“太湖船”按大写字母“C”,唱乐曲“两只老虎”;按"Q"鍵,退出。)此程序涉及到过程和宏的调用,要求学生掌握关于过程和宏的定义和使用。(比如:可以

4、设定播放某一段音乐为一个过程,设定对音乐进行播放的操作为一个宏操作。)25黄石理工学院《汇编语言程序设计》课程设计2、需求分析2.1流程图图2-1系统流程图开始显示提示信息接收键盘输入是“Q”?是“A”?是“C”?是“B”?退出程序将音乐节拍频率地址导入ADDRESS调用MUSIC,播放音乐显示错误提示调用清屏程序是是是是否否否否25黄石理工学院《汇编语言程序设计》课程设计2.2通用发声程序设计原理PC机发声系统以8254的2号计数器为核心。系统初始化时,2号计数器I作在“方波发生器”方式,初值为二进制数,,写入顺

5、序为先低后高,CLK2为1.193182MHz,当计数初值为533H时,OUT2输出的方波大约为900Hz,经过简单的滤波之后,送至扬声器。改变1.4号计数器的计数初值就可以使扬声器发出不同频率的音响。ROMBIOS中有个BEEP子程序,这能根据BL中组出的时间计数值控制8254定时器,产生持续时间为1个或几个0.5秒,频率为896HZ的声音,我们可以利用并修改BEEP,使其产生任一频率的声音。为此我们需要做两点修改,首先,BEEP程序只能产生896HZ的声音,我们的通用发声程序应能产生任一频率的声音。其次,BEE

6、P产生声音的持续时间(音长)只能是0.5秒的倍数,我们希望声音的持续时间更易于调整,例如可以是10ms的倍数。我们知道BEEP能将计数值533H送给定时器2产生896HZ的声音的,那么产生其它频率声音的时间计数值应为:533H×896÷给定频率=123280H÷给定频率发声程序包括3个步骤:(1)在8253中的42端口送一个控制字0B6H(10110110B),该控制字对定时器2进行初始化,使定时器2准备接收计数初值。(2)在8253中的42H端口(Timer2)装入一个16位的计数值(533H×895/频率),以

7、建立将要产生的声音频率。(3)把输出端口61H的PB0、PB1两位置1,发出声音。对于发音部分。PC机上的大多数输入/输出(I/O)都是由主板上的8255(或8255A)可编程序外围接口芯片(PPI)管理的。PPI包括3个8位寄存器,两个用于输入功能,一个用于输出功能。输入寄存器分配的I/O端口号为60H和62H,输出寄存器分配的I/O端口号为61H。由PPI输出寄存器中的0、1两位来选择扬声器的驱动方式。25黄石理工学院《汇编语言程序设计》课程设计连接到扬声器上的是定时器2,从上图可以看到,GATE2与端口61H

8、的PB0相连,当PB0=1时,GATE2获得高电平,使定时器2可以在模式3(方波)下工作。定时器2的OUT2与端口61H的PB1通过一个与门与扬声器的驱动电路相连。当PB1=1时,允许OUT2的输出信号到达扬声器电路。因此,只有PB0和PB1同时为“1”时,才能驱动扬声器地声。通过以下指令实现:INAL,61HORAL,3OUT61H,AL上面的指令用以打开

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。