




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设计一、课程设计题目:简易电子琴二、课程设计目的:用汇编语言独立完成一个程序题,以到达熟练运用汇编语言编程实现有比拟完整功能的系统的目的。三、课程设计内容:用汇编语言编写一个简易电子琴程序,根本功能:1、可以进展固定音乐演奏〔两首以上〕;可以自行弹奏音乐。2、图形显示键盘界面;弹奏时键盘现实所按按键;可以调节音量。四、设计思路:ROMBIOS中的BEEP子程序能根据BL中给出的时间计数值控制8254定时器,产生持续声音。通过对BEEP的修改可以使其产生任一频率的声音。用汇编语言编写的程序GENSOUND,能使PC机发出指定频率和指定延迟时间的声音,它是一个很好的通用发声程序。组成乐曲的每个音符的频率值和持续时间是乐曲发声程序所必须的两组数据,知道了音调及频率的关系后,就可以按照乐曲的乐谱将每个音符的频率和持续时间定义成两个数据表,然后编程依次取出表中的频率值和时间值,调用GENSOUND程序发出各种声音,本程序通过调用GENSOUND程序演奏乐曲。五、操作说明:运行时,按A键演奏乐曲"Twotigers〃,按B键演奏乐曲"HappyBirthday",按C键演奏乐曲〃SnailAndOriole〃,按P键自行弹奏音乐,按Q键退出。以上按键必须使用大写字母,否那么显示出错信息。源程序〔〕如下:DATASEGMENTPARA'DATA'INFO1DB0DH,0AH,'***************************************************$'INFO2DB0DH,0AH,'*INFO3DB0DH,0AH,'*WELCOMEYOUTOCOMEHERE!*$'Thisisamusicprogram!INFO2DB0DH,0AH,'*INFO3DB0DH,0AH,'*WELCOMEYOUTOCOMEHERE!*$'Thisisamusicprogram!*$'INFO4DB0DH,0AH,'***************************************************$'INFO5DB0DH,0AH,0DH,0AH,'Pleaseselect!$'INFO6INFO7INFO9MUSLISTDB0DH,0AH,0DH,0AH,'InputError!PleaseInputAgain!$'DB0DH,0AH,'INFO6INFO7INFO9MUSLISTDB0DH,0AH,0DH,0AH,'InputError!PleaseInputAgain!$'DB0DH,0AH,'$'DB0DH,0AH,0DH,0AH,'Ifyouwanttoplaypiano,PleasepushP$'DB0DH,0AH,'ADB0DH,0AH,'BDB0DH,0AH,'CDB0DH,0AH,'QTwotigers'HappyBirthday'SnailAndOriole'EXIT'DB0DH,0AH,'$'MUS_FREG1DW2DUP(262,294,330,262) ;为演奏的乐曲定义一个频率表DW2DUP(330,349,392)DW2DUP(392,440,392,349,330,262)DW2DUP(294,196,262),0ffffhMUS_TIME1DW10DUP(25000),50000,25000,25000,50000;为演奏的乐曲定义一个节拍时间表DW2DUP(12000,12000,12000,12000,25000,25000)DW2DUP(25000,25000,50000)MUS_FREG2DW262,262,294,262,349DW330,262,262,294,262DW392,349,262,262,523DW440,349,262,262,466DW466,440,262,392,349,-1MUS_TIME2DW500,500,1000,1000,1000DW1000,1000,500,500,1000,1000DW1000,1000,1000,500,500,1000DW1000,1000,1000,1000,1000,500DW500,1000,1000,1000,1000,1000MUS_FREG3DW392,396,392,395,330,392,262,440,392,395DW392,395,392,330,294,262,330,294,297,330DW392,395,392,330,335,294,262,265,294,330DW262,265,220,196,220,196,392,395,392,395DW330,392,262,440,292,392,395,392,395,330DW294,262,330,294,294,330,392,395,330,335DW294,262,265,294,330,262,265,220,196,220DW196,392,395,392,395,330,294,262,440,392DW395,440,262,294,262,294,330,294,262,-1MUS_TIME3DW1DUP(25,50,25,50,25,25,50,50,100,25)DW1DUP(50,25,50,25,25,50,50,100,75,25)DW1DUP(50,25,25,50,25,25,50,50,75,25)DW1DUP(50,25,25,50,50,100,25,50,25,50)DW1DUP(25,25,50,50,100,25,50,25,50,25)DW1DUP(25,50,50,100,75,25,50,50,50,25)DW1DUP(25,50,50,75,25,50,25,25,50,50)DW1DUP(100,25,50,25,50,25,25,50,50,50)DW1DUP(25,25,50,50,50,50,100,100,200)msgDB0DH,0AH,0DH,0AH,'[1234567]'DB0DH,0AH,'[qwertyu]'DB0DH,0AH,' 'DB0DH,0AH,'9:EXIT'DB0DH,0AH,' ','$';********音调******后面用到-1判断音乐播是否放完sound_0DW-1sound_11DW441,-1sound_12DW495,-1sound_13DW556,-1sound_14DW589,-1sound_15DW661,-1sound_16DW742,-1sound_17DW833,-1sound_1DW882,-1sound_2DW990,-1sound_3DW1112,-1sound_4DW1178,-1sound_5DW1322,-1sound_6DW1484,-1sound_7DW1655,-1timeDW25DATAENDSSTACKSEGMENTPARASTACK'STACK'DB300DUP('STACK')STACKENDSCODESEGMENTASSUMEDS:DATA,SS:STACK,CS:CODEMAINPROCFARMOVAX,DATAMOVDS,AXMOVaH,3MOVAL,4INT10HMOVAH,09HMOVBH,6MOVBL,4INT10HMOVAH,0BHMOVBH,09HMOVBL,00INT10H;*****定义一个宏*****SHOWMACRObLEADX,bMOVAH,9INT21HENDMshowINFO1showINFO2showINFO3showINFO4showINFO5showinfO9showMUSLISTINPUT: MOVAH,01HINT21HCMPAL,'Q'JZretuCMPAL,'P'
JZRETU2CMPAL,'A'JNZB0CALLMUSIC1JMPEXIT1B0: CMPAL,'B'JNZC0CALLMUSIC2JMPEXIT1C0: CMPAL,'C'JNZexitCALLMUSIC3EXIT1: showINFO7JMPINPUTEXIT:callclearshowINFO6showINFO7showINFO5showMUSLISTSHOWINFO9jmpinputRETU: MOVAH,4CHINT21HMAINENDPRETU2:MOVAX,DATAMOVDS,AX;一个声音宏onesoundmacrosoundis,jumpis,letterisCMPAL,letterisJNZjumpisLEASI,soundisLEABP,DS:timeCALLMUSICJMPinpuENDMshowmsgINPU:MOVAH,01HINT21HCMPAL,'9'jnzgomovah,4chint21h
*发声*发声GENSOUND1PROCNEAR;PUSHAXPUSHBXPUSHCXPUSHDXPUSHDI;MOVAL,0B6HOUT43H,ALMOVDX,12HMOVAX,348chDIVDIOUT42H,ALMOVAL,AHOUT42H,ALINAL,61HMOVAH,ALORAL,3OUT61H,ALWAIT2:MOVCX,3314callwaitfDELAY1:DECBXJNZWAIT2MOVAL,AHOUT61H,AL;POPDIPOPDXPOPCXPOPBXPOPAX;RETGENSOUND1ENDPwaitfprocnearpushaxwaitf1:inal,61handal,10hcmpal,ahjewaitf1movah,alloopwaitf1popaxretwaitfendpMUSICPROCNEARPUSHDSSUBAX,AXPUSHAXFREG:MOVDI,[SI]CMPDI,-1JEEND_MUSMOVBX,DS:[BP]CALLGENSOUND1ADDSI,2ADDBP,2END_MUS:RETMUSICENDPMUSIC1PROCNEARPUSHDSSUBAX,AXPUSHAXLEASI,MUS_FREG1LEABP,DS:MUS_TIME1FREG1: MOVDI,[SI]CMPDI,-1JEEND_MUS1MOVDX,DS:[BP]MOVBX,2600CALLGENSOUNDADDSI,2ADDBP,2JMPFREG1END_MUS1:RETMUSIC1ENDPGENSOUNDPROCNEARPUSHAXPUSHBXPUSHCXPUSHDXPUSHDIMOVAL,0B6HOUT43H,ALMOVDX,12HMOVAX,533H*896DIVDIOUT42H,ALMOVAL,AHOUT42H,ALINAL,61HMOVAH,ALORAL,3OUT61H,ALWAIT1: MOVCX,8FF0HDELAY2:LOOPDELAY2DECBXJNZWAIT1MOVAL,AHOUT61H,ALPOPDIPOPDXPOPCXPOPBXPOPAXRETGENSOUNDENDPMUSIC2PROCNEARPUSHDSSUBAX,AXPUSHAXLEASI,MUS_FREG2LEABP,DS:MUS_TIME2FREG2:MOVDI,[SI]CMPDI,-1JEEND_MUS2MOVDX,DS:[BP]MOVBX,3500CALLGENSOUNDADDSI,2ADDBP,2JMPFREG1END_MUS2:RETMUSIC2ENDPMUSIC3PROCNEARPUSHDSSUBAX,AXPUSHAXLEASI,MUS_FREG3LEABP,DS:MUS_TIME3FREG3: MOVDI,[SI]CMPDI,-1JEEND_MUS3MOVDX,DS:[BP]MOVBX,2000CALLGENSOUNDADDSI,2ADDBP,2JMPFREG1END_MUS3:RETMUSIC3ENDPclearprocnearpushaxpushbxpushcxpushdxmovah,6moval,0movch,0movcl,0movdh,24movdl,79movbh,7int10hpopdxpopcxpopbxpopaxretclearendpCODEENDSENDMAIN六、所遇到的问题:程序使用了学习过程中学到的各个知识点,但是由于对一些相关的知识点不能够合理的应用,所以实验要求的自我弹奏的功能不够完善,所实现的只能是单独弹一个音符,可以调
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 羽毛球知到课后答案智慧树章节测试答案2025年春陕西财经职业技术学院
- 醇基油合同范本
- 2025YY项目防火工程分包合同
- 家庭施工安装合同范本
- 2025年进出口合同实训题目
- 2024年宁国市市属事业单位考试真题
- 2024年鲁控环保科技有限公司招聘真题
- 2024年德州武城县人民医院招聘备案制工作人员真题
- 2024年北京昌平区卫生健康委员会招聘事业单位人员真题
- 2024年阿拉善职业技术学院专任教师招聘真题
- 2025年铅锌矿项目可行性研究报告
- 防春困防疲劳驾驶课件
- 玻璃更换施工方案
- 2025年中国职工保险互助会贵州省办事处招聘笔试参考题库含答案解析
- 2025年生猪屠宰兽医卫生检疫人员考试题(附答案)
- 出生缺陷预防培训课件
- 2025-2030中国静电仪行业市场现状分析及竞争格局与投资发展研究报告
- 中小学综合实践活动课程指导纲要:让学生更好地了解活动的意义和价值
- NSA2000变频器使用说明书
- 2025合伙事业利润分成管理协议
- 2025年全球及中国包裹接收和追踪软件行业头部企业市场占有率及排名调研报告
评论
0/150
提交评论