ImageVerifierCode 换一换
格式:PDF , 页数:17 ,大小:234.24KB ,
资源ID:4755535      下载积分:8 金币
验证码下载
登录下载
邮箱/手机:
图形码:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/4755535.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请。


权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4009-655-100;投诉/维权电话:18658249818。

注意事项

本文(音乐演奏汇编语言程序设计.pdf)为本站上传会员【快乐****生活】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

音乐演奏汇编语言程序设计.pdf

1、目录音乐演奏汇编语言程序设计音乐演奏汇编语言程序设计.1前言前言.11 总体方案论证总体方案论证.11.1 功能分析.11.2 方案设计说明.21.2.1 音乐的代码化.21.2.2 音乐演奏的硬件配合.21.2.3 音乐演奏的软件设计.22.程序流程图设计及其说明程序流程图设计及其说明.32.1 主流程图说明.32.2 音乐播放流程图说明.32.3 字符输入及执行操作流程图说明.33.软件设计关键问题或程序段落的说明软件设计关键问题或程序段落的说明.63.1 字符串显示程序.63.2 数据段与外观设计程序.63.3 音乐演奏.84.程序调试说明、结果记录及分析程序调试说明、结果记录及分析.8

2、5.课程设计收获及心得体会课程设计收获及心得体会.10参考文献参考文献.11附录附录.12源程序代码.12武汉理工大学微机原理与接口技术课程设计说明书1音乐演奏汇编语言程序设计前言随着科技的高速发展,计算机已经经过了好几代的更新,然而计算机的运行的基本原理依然没有改变的。而今,我们通过一个学期的学习,已经初步了解了计算机的基本结构和原理,并且已经学会了用汇编语言进行基本的程序编写。而本次课程设计的主要目的就是巩固所学过的知识,用汇编语言熟练地运用三大结构,进一步掌握一些指令的功能、掌握子程序的定义及调用和 INT 21H、INT10H 中断的使用,同时熟练运用通用寄存器和堆栈来进行编写一个完整

3、的具有某种特定功能的程序。在本次课程设计中,考察了我们编程的技巧、运用 Debug 动态调试工具进行程序的调试的能力。同时,本道设计题目还检查了学生对汇编语言这门课程的基本知识的掌握程度。只有掌握汇编语言基本编程方法,掌握程序各部分功能及其相互联系、相互作用,并要熟悉基本的音乐知识,才能独立的把程序写出来,才能把程序写好。1 总体方案论证1.1 功能分析在此次设计中,第一个重点就是音乐播放的控制,要想能按照正常的频率和节拍播放出音乐,就需要合理的设计出给蜂鸣器的频率值和播放的时间。这样就能比较准确的把音乐按一定的节奏播放出来。如果我们要想加快播放速度,我们可以改变每一节拍的播放时间,如果我们改

4、变了播放的频率值,那么歌曲也就相应的改变了。第二个重点就是我们要能够根据键盘上输入的数据,合理的做出相应的应答操作,特别是在演奏过程中,我们还要求实时的检测键盘是否有输入,同时还要不能影响音乐播放的效果,并且由于我们对于键盘的输入并非是外部中断,因此实时的扫描键盘同时播放音乐的实现有一定的难度。武汉理工大学微机原理与接口技术课程设计说明书21.2 方案设计说明我们根据上面的功能分析,同时通过查阅相关资料,了解了计算机的内部结构的同时还清楚的理解了 DOS 中的 21H 和 10H 中断的调用,因此我们设计出如下方案:1.2.1 音乐的代码化我们首先收集了 2 首简单的歌曲,同时还带有相应的音谱

5、通过查阅相关的音乐资料,了解了节拍的概念和各音符所对应的频率,而后我们把每一首歌曲都转化成两个数据段,一个是把各个音符翻译成相应的频率值,第二是把相应的节拍转化成对应的时间值,来控制播放每一个音符所对应的时间。这样我们在播放歌曲时,同时调用频率值和时间值就可以把相应的歌曲播放出来了。1.2.2 音乐演奏的硬件配合我们了解到在计算机的主板上有 8253、8255 和蜂鸣器,同时了解到蜂鸣器的驱动是通过 8255 和 8253 共同控制的,我们通过对 8253 的通道 2 进行写数据来控制蜂鸣器的声音频率,再通过 8255 来控制播放时间的长短,就通过这样的巧妙配合来达到播放完整音乐的效果。1.

6、2.3 音乐演奏的软件设计软件设计是本设计的重点,在软件设计中,我们要给 8253 和 8255 写数据,同时还要检测键盘输入的值,并根据输入的值,执行相应的代码来控制音乐的播放。首先我们在一开始先显示音乐菜单,然后调用 DOS 中 21H 的 07 中断来接收键盘上的数据,在此过程中,程序在等待中,直到键盘上有键按下,程序才进行相应的操作。当键盘输入一个值后,我们首先判断输入的值是否为“e”,如果是,那就退出程序,如果不是,我们再检测输入的数是否在 1-2 之间,如果是,那就调用相应的播放音乐的程序,否则无动作。在音乐播放中,我们要实时地扫描键盘是否有值输入,如果用 DOS 中 21H 的

7、01 中断肯定是不行的,因为执行这个中断程序会等待,无法继续播放音乐。因此我们采用中武汉理工大学微机原理与接口技术课程设计说明书3断 21H 中的 0bH,这个中断不会等待,只会检查标准输入设备上是否有字符可读。然后我们通过检测 AL 中的值是否为 0FFH,来判断键盘是否有值输入。如果键盘上有键输入,那么 AL 中会返回一个 0FFH 的值,否则就会返回 00H。如果有,我们再判断这个输入的值是否为“p”,如果是,我们就停止音乐的播放,否则继续播放音乐,由于程序运行非常快,这样我们就不会感觉到音乐有停顿现象。实现和音乐演奏的同时实时扫描键盘的功能。当音乐开始播放后,若不输入任何指令,则该歌曲

8、一直循环下去。在音乐暂停后,按“c”值继续音乐播放,按“e”值退出,按“1”或“2”切歌。然后我们调用 DOS 中 21H 的 07 中断来接收键盘上的数据,在此过程中,程序在等待中,直到键盘上有键按下,然后我们按输入的数进行相应的操作。2.程序流程图设计及其说明在此次设计中,我们包括了三个流程图,一个主流程图和两个子流程图,具体如下所示:2.1 主流程图说明在主流程图的设计中,我们首先显示输入提示,然后从键盘中输入一个字符,如果那个字符不是 1、2 或者 e,那么就继续等待,否则就要做一些操作了。如果这个是“e”,那么就结束程序,如果在 1-2 之间,那么就调用音乐播放程序。2.2 音乐播放

9、流程图说明在音乐播放流程图中,我们设计执行播放相应的歌曲的操作,同时实时的检测键盘的输入。如果键盘有输入,就调用字符输入及执行操作程序。否则就继续播放歌曲。2.3 字符输入及执行操作流程图说明在这个流程图中,我们设计了它具有输入字符同时检测的功能。如果我们检测到输入的字符不是“p”,那么就重新返回到音乐播放流程图中,继续播放音乐,否则就暂停播放音乐。同时等待字符再输入。如果输入的字符是“c”,那么就继续播放歌曲,如果输武汉理工大学微机原理与接口技术课程设计说明书4入的字符是“e”,那么就退出程序。图音乐播放流程图图主流程图 开始显示歌曲菜单提示输入选择判断输入的数是否为 e结束是否判断输入的数

10、是否在 12 之间调用播放歌曲程序否是播放相应歌曲调用 DOS 中断扫描键盘缓冲区判断是否有键输入调用键值输入和执行操作程序判断是否播放完循环播放该歌曲是否否是调用播放歌曲程序暂停播放音乐显示提示输入判断输入的值是否为 C 或 c调用播放歌曲程序判断输入的值是否为 E 或 e返回主程序,显示音乐菜单,提示输入是是否否是图 字符输入及执行操作流程图武汉理工大学微机原理与接口技术课程设计说明书5判断输入值是否为 p否接受键盘缓冲区里的键值暂停播放音乐是调用播放歌曲程序等待按键输入判断输入的值是否为 c是调用播放歌曲程序判断输入的值是否为 e否否是图字符输入及执行操作流程图结束武汉理工大学微机原理与

11、接口技术课程设计说明书63.软件设计关键问题或程序段落的说明3.1 字符串显示程序disp macro message ;用来调用显示字符串的宏mov dx,offset messagemov ah,9int 21hendm在这个宏定义中我们调用了一个 DOS 中 21H 的 09H 中断,此中段的功能是在屏幕上显示一串字符。3.2 数据段与外观设计程序stack segment para stack stack db 100 dup(0)stack endsdata segmentmenu1 db*songs menu*,0ah,0dh,$menu2 db*1.merry *,0ah,0dh

12、menu3 db*2.star *,0ah,0dh,$menu4 db*,0ah,0dh,$menu5 db p:pause c:continue e:exit,0ah,0dh,$designers db designed by tanwenan renzhipeng linjian,0ah,0dh,$school db WHUT Electrical engineering and automation 1105,0ah,0dh,$merry_frequency dw 330,294,262,294,330,330,330,294,294,294,330,392,392 dw 330,2

13、94,262,294,330,330,330,330,294,294,330,294,262,0merry_time dw 10000,10000,10000,10000,10000,10000,50*400,10000,10000,20000,10000,10000,20000dw 10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,40000star_frequency dw 262,262,392,392,440,440,392,349,349,330,330,294,294,262 dw 2 d

14、up(392,392,349,349,330,330,294)dw 262,262,392,392,440,440,392,349,349,330,330,294,294,262,0star_time dw 3 dup(6 dup(25*400),50*400,6 dup(25*400),50*400)data endscode segment assume cs:code,ds:data,ss:stackstartmain:mov ax,data mov ds,ax武汉理工大学微机原理与接口技术课程设计说明书7 mov ax,3 ;bios 0 号调用,设置为 80*25 彩色 int 10

15、h mov al,0 ;bios 6 号调用,清屏 mov ah,6 int 10h mov dx,0819h ;bios 2 号调用,设置光标位置 mov ah,2 int 10h disp menu1 ;显示菜单 mov dx,0919h mov ah,2 int 10h disp menu2 mov dx,0a19h mov ah,2 int 10h disp menu3 mov dx,0b19h mov ah,2 int 10h disp menu4 mov dx,0c19h mov ah,2 int 10h disp menu5 mov dx,0d15h mov ah,2 int 1

16、0h mov ah,09 ;bios 9 号调用,设置颜色为红色 mov bl,0ch mov cx,39 int 10h disp designers mov dx,0e11h mov ah,2 int 10h mov ah,09 mov bl,0ch mov cx,47 int 10h disp school武汉理工大学微机原理与接口技术课程设计说明书83.3 音乐演奏Moval,0b6h;向计数器写 控制字Out43h,al ;方式 3、双字节写和二进制计数方式写到控制口Movdx,12h ;设置被除数Movax,3280hDivdi ;其商 ax 为预置值Out42h,al ;先送 L

17、SBMoval,ahOut42h,al;后送 MSBInal,61h ;读端口原值Mov ah,alOral,3Out61h,al ;接通扬声器Waitf1:mov cx,100 ;扬声器开通时间,即为节拍delay1:Loopdelay1在此程序段中,我们首先对 8253 进行设置,设置成方式 3、双字节和二进制计数方式。然后对 8253 写入定时数值,使得其输出一定的频率。然后对 8255 写入数据,控制蜂鸣器的响时间的长短,来达到播放一首歌的目的。4.程序调试说明、结果记录及分析在调试的过程中,通过听取了老师的建议,我们小组在查找资料后,通过讨论在原有的程序上面增加了外观设计,最终显示结

18、果如下图:武汉理工大学微机原理与接口技术课程设计说明书9图 4 程序运行图当输入“1”时,名为“merry”的音乐开始响起,当按下“p”时,音乐停止播放。此时若键入“c”,继续播放暂停的音乐;若输入“e”则退出程序。武汉理工大学微机原理与接口技术课程设计说明书105.课程设计收获及心得体会本次课程设计采用小组设计的方式,本小组三位同学的任务分工如下:XXX主要负责主要功能程序设计与调试以及 PPT 的制作。XXX主要负责外观程序设计和课程设计说明书的完成。XXX主要负责音乐代码搜集和课程设计说明书的完成。通过此次课程设计的上机与理论学习,我们小组成员均感受颇深。此次课程设计让我们了解到编写程序

19、的复杂性,最起码了解到编写程序时必需要很细心。为了编写程序方便,所以需要分块分功能实现,对于这一点,我们通过画流程图就能很好地解决问题。同时也了解到上机操作实践的重要,这样有助于书本知识的系统化,现实化,更有利于自己的查漏补缺。书本上的知识是死的,能够在现实中运用的知识才是活的。再者,通过这次课程设计,也促进了我们的同学之间互相学习,通过编写程序,增加了学习的积极性和趣味性。通过课程实践,巩固加深对课堂教学内容的理解,提高学生运用汇编语言进行程序设计和动态调试程序的能力,培养同学克服困难的毅力和精神,提高学生综合解决问题的能力。武汉理工大学微机原理与接口技术课程设计说明书11参考文献1温冬蝉,

20、沈美明.IBM PC 汇编程序设计.北京:清华大学出版社,2002.32齐志儒,高福祥.汇编语言程序设计.北京:清华大学出版社,2001.13龚尚福.微型计算机汇编语言程序设计.西安:西安电子科技大学出版社,2003.74朱玉龙,任文岚.汇编语言程序设计.北京:清华大学出版社,2003.85周佩玲.微机原理与接口技术.北京:电子工业出版社,2007.6武汉理工大学微机原理与接口技术课程设计说明书12附录源程序代码disp macro message ;用来调用显示字符串的宏 mov dx,offset message mov ah,9 int 21h endmstack segment par

21、a stack stack db 100 dup(0)stack endsdata segmentmenu1 db*songs menu*,0ah,0dh,$menu2 db*1.merry *,0ah,0dh,$menu3 db*2.star *,0ah,0dh,$menu4 db*,0ah,0dh,$menu5 db p:pause c:continue e:exit,0ah,0dh,$designers db designed by XXX XXX XXX,0ah,0dh,$school db WHUT Electrical engineering and automation 1105

22、0ah,0dh,$merry_frequency dw 330,294,262,294,330,330,330,294,294,294,330,392,392 dw 330,294,262,294,330,330,330,330,294,294,330,294,262,0 merry_time dw 10000,10000,10000,10000,10000,10000,50*400,10000,10000,20000,10000,10000,20000dw 10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,1

23、0000,40000star_frequency dw 262,262,392,392,440,440,392,349,349,330,330,294,294,262 dw 2 dup(392,392,349,349,330,330,294)dw 262,262,392,392,440,440,392,349,349,330,330,294,294,262,0star_time dw 3 dup(6 dup(25*400),50*400,6 dup(25*400),50*400)data endscode segment assume cs:code,ds:data,ss:stackstart

24、main:mov ax,data mov ds,ax mov ax,3 ;bios 0 号调用,设置为 80*25 彩色 int 10h mov al,0 ;bios 6 号调用,清屏 mov ah,6 int 10h武汉理工大学微机原理与接口技术课程设计说明书13 mov dx,0819h ;bios 2 号调用,设置光标位置 mov ah,2 int 10h disp menu1 ;显示菜单 mov dx,0919h mov ah,2 int 10h disp menu2 mov dx,0a19h mov ah,2 int 10h disp menu3 mov dx,0b19h mov a

25、h,2 int 10h disp menu4 mov dx,0c19h mov ah,2 int 10h disp menu5 mov dx,0d15h mov ah,2 int 10h mov ah,09 ;bios 9 号调用,设置颜色为红色 mov bl,0ch mov cx,39 int 10h disp designers mov dx,0e11h mov ah,2 int 10h mov ah,09 mov bl,0ch mov cx,47 int 10h disp schoolreturn:mov ah,07h ;等待按键选择 int 21h cmp al,1 ;选择歌曲 1 j

26、z music1 cmp al,2 ;选择歌曲 2 jz music2 cmp al,e ;退出武汉理工大学微机原理与接口技术课程设计说明书14 jz exit jnz returnmusic1:lea si,merry_frequency ;取歌曲 1 音符 lea bp,merry_time ;取歌曲 2 节拍again1:mov di,si cmp di,0 ;0 用于判断是否结束歌曲 je music1 mov bx,bp call speaker ;调用音乐发声子程序 add si,2 ;取下一个音符 add bp,2 ;取下一个节拍 mov ah,0bh ;扫描键盘,用 0bh,不

27、用停止歌曲播放的扫描 int 21h cmp al,0ffh ;有按键,调到暂停处理程序 jz key1 jmp again1 ;没有按键,继续播放exit:jmp game_overmusic2:lea si,star_frequency;歌曲 2 的处理与歌曲 1 的一样 lea bp,star_timeagain2:mov di,si cmp di,0 je music2 mov bx,bp call speaker add si,2 add bp,2 mov ah,0bh int 21h cmp al,0ffh jz key2 jmp again2key1:mov ah,07h int

28、 21h cmp al,p ;按键为 p,暂停 jz pause1 jnz again1pause1:mov ah,07h ;利用 dos 的 07h 调用等待按键来暂停歌曲 int 21h cmp al,e ;按键为 e,退出 jz game_over cmp al,c ;按键为 c,继续 jz again1 cmp al,2 ;按键为 2,切歌切到 2武汉理工大学微机原理与接口技术课程设计说明书15 jz music2 jnz pause1 key2:mov ah,07h int 21h cmp al,p jz pause2 jnz again2pause2:mov ah,07h int

29、21h cmp al,e jz game_over cmp al,1 jz music1 cmp al,c jz again2 jnz pause2game_over:mov ah,4ch int 21h ;*音乐处理子程序*speaker proc push ax ;保护现场 push bxpush cxpush dxpush dimov al,0b6h ;向计数器写控制字 out 43h,al ;方式 3、双字节写和二进制计数方式写到控制口mov dx,12h ;设置被除数 mov ax,3280hdiv di ;其商 ax 为预置值out 42h,al ;先送 LSBmov al,ah out 42h,al ;后送 MSBin al,61h ;读端口原值 mov ah,al or al,03hout 61h,al ;接通扬声器 wait1:mov cx,100 ;扬声器开通时间,即为节拍 delay1:loop delay1dec bxjnz wait1 mov al,ah ;写回 61h 端口值,关闭扬声器 out 61h,al 武汉理工大学微机原理与接口技术课程设计说明书16pop di ;恢复现场pop dxpop cxpop bxpop axretspeaker endpcode endsend startmain

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服