接口课程设计菜单选择的音乐程序设计与实现

上传人:无*** 文档编号:78347981 上传时间:2022-04-21 格式:DOC 页数:16 大小:571.51KB
返回 下载 相关 举报
接口课程设计菜单选择的音乐程序设计与实现_第1页
第1页 / 共16页
接口课程设计菜单选择的音乐程序设计与实现_第2页
第2页 / 共16页
接口课程设计菜单选择的音乐程序设计与实现_第3页
第3页 / 共16页
点击查看更多>>
资源描述
辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)目录第1章 课程设计简介11.1课程设计题目11.2课程设计目的11.3课程设计设备11.4课程设计任务11.5课程设计要求1第2章 程序设计22.1程序设计方法22.2 音乐菜单界面设计22.3音乐程序设计52.3.1音符与频率值52.3.2 选择音乐52.3.3设计6第3章 总结13参考文献14致谢15 第1章 课程设计简介1.1课程设计题目菜单选择的音乐程序设计与实现(一)1.2课程设计目的掌握PC系列微机发声系统的工作原理,掌握模块化程序设计的方法。1.3课程设计设备硬件环境:IBM-PC机,硬盘40G以上,内存256M以上,打印机等。软件环境:Windows 2000 Server或Windows XP Server操作系统,MASM汇编软件。1.4课程设计任务(1) 如下图所示,设计一个简单的音乐程序菜单界面,用户键入菜单项序号选择菜单项。1.MUSIC-12.MUSIC-23.MUSIC-34.RETURN DOS(2) 限定使用模块化程序设计的方法,最少组织三首歌曲,每首歌曲只反复演唱几个小节即可。(3) 三首歌曲只能使用一个音乐控制程序。1.5课程设计要求(1)选择音乐菜单界面的设计要求采用两种方法,一种是用户键入菜单项序号选择菜单项,一种是用彩色条选择菜单项。(2)首先要求设计与实现一首歌曲演唱几个小节,然后设计与实现该首歌曲重复演唱,最后组织三首不同歌曲用同一个音乐控制程序选择。要求每名学生组织的歌曲不同于其他同学。第2章 程序设计2.1程序设计方法2.1.1模块化程序设计方法的指导思想如果待解决的问题比较简单,所编制的程序又不大时,就可以将整个程序放在一个模块中。但对大而复杂的设计任务,不可能由一个人用一个程序来实现。为了解决这些问题,必须采用自顶向下,逐步求精的模块化和结构化的设计方法,即将一个大而复杂的设计任务按其需要实现的主要功能分解为若干相对独立的模块,并确定好各模块之间的调用关系和参数传递方式,对其中的公共部分还可以抽出来作为独立的公共子程序模块供大家调用,然后可以将这些模块分配给个人,每个人在设计自己的一部分时,还可以采用自顶向下,逐步求精的方法进一步细化,分解成一些更小的模块,并将各个模块的功能逐步细化为一系列的处理步骤或某种程序设计语言的语句,分别编写、调试,最后再将它们的目标模块连接装配成一个完整的整体。2.2 音乐菜单界面设计程序流程框图如下: NYNYNYNY主模块 显示菜单框显示选择字符串 等待键输入键值=4键值=1键值=2键值=3 返回DOS 转MUSICI1模块 转MUSICI2模块 转MUSICI3模块 图一 音乐菜单界面设计流程图源程序代码如下: PUBLIC STATRO EXTRN START1:FAR,SRART2:FAR,SRART3:FARDISP MACRO YYXX,VAR MOV AH,2 MOV BH,0 MOV DX,YYXX INT 10H MOV AH,9 MOV DX,0FFSET VAR INT 21H ENDMDATA0 SEGMENTL1 DB MENU , 0AH,0DH DB xxxxxxxxxxxxxxxx ,0AH,0DH DB x x ,0AH,0DH DB x 1.MUSIC1 x ,0AH,0DH DB x 2.MUSIC2 x ,0AH,0DH DB x 3.MUSIC2 x ,0AH,0DH DB x 4.RETURN DOS x ,0AH,0DH DB xxxxxxxxxxxxxxxx ,0AH,0DH,$L9 DB CHOICE(1,2,3,4): ,$DATA0 ENDSCODE0 SEGMENTASSUME CS:CODE0,DS:DATA0;-START0: MOV AX,DATA0 MOV DS,AX MOV AX,2 INT 10H DISP 0800H,L1 ;显示菜单框图DP: DISP 0D00H,L9;- MOV AH,1 INT 21H 等待键入 CMP AL,4 JE RT CMP AL,1 JE STRT1 CMP AL,3 JE STRT2 CMP AL,3 JE STRT3 JMP DPSTRT: JMP START1STRT: JMP START2STRT: JMP START3RT: MOV AH,4CH INT 21HCODE ENDSEND START02.3音乐程序设计音符456712345671234567.1频率17519622024726229433034939244049452458866069878488098810482.3.1音符与频率值2.3.2 选择音乐MUSIC-1的简谱频率以及时间对应频率:440,440,440,392,440,1048,1048,294,时间:20 ,20 ,20 ,10 ,10 ,20 ,20 ,40,频率:330,1048,294,294,1048,440,440时间:20 ,20 ,20 ,10 ,10 ,20 ,60MUSIC-2的简谱频率以及时间的对应频率:660,660,784,880,988,784,660,588,时间:20 ,20 ,20 ,20 ,20 ,20 ,20 ,20 ,频率:660,588,660,524,880,880,784时间:20 ,20 ,20 ,20 ,30 ,10 ,40MUSIC-3的简谱频率以及时间的对应:频率:880,524,880,880,660,588,660,784,时间:40 ,30 ,10 ,30 ,10 ,10 ,10 ,20 ,频率:880,880,660,880,524,880,880时间:30 ,10 ,10 ,10 ,10 ,10 ,802.3.3设计MUSIC1 流程图如下: 设置显示方式MUSIC1建音符频率表建音符时间表音符频率表指针DI音符时间表指针DI转发声模块图二 MUSIC1 流程图MUSIC1 源程序代码如下:PUBLIC START1 ;MUSIC 模块 EXTRN START4;FARDATA1 SEGMENTMUSIC DW 440,440,440,392,440,1048,1048,294 DW 330,1048,294,294,1048,440,440,0FFFFHTIME1 DB 20,20,20,10,10,20,20,40,20,20,20,10,10,20,60DATA1 ENDSCODE1 SEGMENTASSUME CS:CODE1,DS:DATA1START1: MOV AX,DATA1 MOV DS,AS MOV AX,2 INT 10H MOV SI,OFFSET MUSIC1 MOV DI,OFFSET TIME1 JMP START4CODE1 ENDSENDMUSIC2流程图如下: 设置显示方式MUSIC2建音符频率表建音符时间表音符频率表指针DI音符时间表指针DI转发声模块图三 MUSIC2流程图MUSIC2 源程序代码如下:PUBLIC START2 ;MUSIC2 EXTRN START4:FARDATA2 SEGMENTMUSIC2 DW 660,660,784,880,988,784,660,588 DW 660,588,660,524,880,880,784,0FFFFHTIME2 DB 20,20,20,20,20,20,20,20,20,20,20,20,30,10,40DATA2 ENDSCODE2 SEGMENTASSUME CS:CODE2,DS:DATA2START2: MOV AX,DATA2 MOV DS,AX MOV AX,2 INT 10H MOV SI,0FFSET MUSIC2 MOV DI,0FFSET TIME2 JMP START4CODE2 ENDSENDMUSIC3流程图如下: 设置显示方式MUSIC3建音符频率表建音符时间表音符频率表指针DI音符时间表指针DI转发声模块 图四 MUSIC3流程图MUSIC3 源程序代码如下:PUBLIC START3EXTRN START4:FARDATA3 SEGMENTMUSIC3 DW 880,524,880,880,660,588,660,784 DW 880,880,660,880,524,880,880,0FFFFHTIME3 DB 40,30,10,30,10,10,10,20,30,10,10,10,10,10,80DATA3 ENDSCODE3 SEGMENTASSUME CS:CODE3,DS:DATA3START3: MOV AX,DATA3 MOV DS,AX MOV AX,2 IN 10H MOV SI,OFFSET MUSIC3 MOV DI,OFFSET TIME3 JMP START4CODE3 ENDSEND发声模块流程图如下:发声模块设置显示方式显示提示信息SI、DI 压入堆栈 取出堆栈中的SI、DI的值再次将SI、DI压入堆栈取音符频率频率=FFFH?计音符的8254通道2的计数 值送8254的控制字送8254的计数值打开发声 通道延迟(音符发声 持续时间) 关闭发声 通道SI+2SI 、DI+1DI 又键入?转主模块延迟YNNY图五 发声模块流程图发声源程序代码如下:PUBLIC START4 EXTRN START0:FARDISP MACRO YYXX,VARMOV AH,2MOV BH,0MOV DX,YYXXINT 10HMOV AH,09MOV DX,OFFSET VARINT 21HENDMSTACK SEGMENTSTA DW 50 DUP(?)TOP EQU LENGTH STASTACK ENDSDATA4 SEGMENTMESS DB STRIKE ANY KEY,RETURN TO MENU !,OAH,ODH,$DATA4 ENDSCODE4 SEGMENTASSUME CS:CODE4,DS:DATA4START4: PUSH DSMOV AX,DATA4MOV DS,AXMOV AX,2INT 10HDISP 1000H,MESSPOP DSPUSH SIPUSH DIPLAY: POP DIPOP SIPUSH SIPUSH DIPLY1: MOV AX,WORD PTR SICMP AX,OFFFFHJZ PLAY_ENDMOV DX,12HMOV AX,34EOH DIV WORD PTR SI MOV BX,AX MOV AL,0B6H OUT 43H,AL MOV AX,BXOUT 42H,ALMOV AL,AHOUT 42H,ALIN AL,61HOR AL,03HOUT 61H,ALCALL DELAYIN AL,61HAND AL,0FCHOUT 61H,ALADD SI,02INC DIJMP PLY1PLAY_END: MOV AH,01INT 16HJZ WAIT1POP DIPOP SIJMP START0WAIT1: PUSHAXPUSHCXMOV AX,0600HWT1: MOV CX,0FFFFHWT2: LOOPWT2DEC AXJNZ WT1POP CXPOP AXJMP PLAYDELAY PROC NEARPUSH AXPUSH CXMOV AL,DIDLY: MOV CX,0060DLY1: MOV BX,0FFFFHDLY2: DEC BXJNZ DLY2 LOOP DLY1 DEC AL JNZ DLY POP CX POP AX RETDELAY ENDPCODE4 ENDSEND第三章 总结这次课程设计完成后,体会颇多,不断学习新的知识,吸取经验,达到进步的目的。在课程设计中,通过努力以及相关图书资料的帮助,逐渐熟悉了微型机与接口的应用知识及其相关的操作。在这次课程设计过程中,我学会了利用汇编程序实现软件的具体功能,同时对语言的编写能力有了进一步加强,在指导教师的悉心讲解下,我解了的在编写程序中遇到的种种困难,例如:如何利用汇编程序来实现音乐界面的设计,怎样通过程序来实现音乐的播放等等,都在老师的指导下一一解决,是我从中受到很大启发。通过本次课程设计,让我有机会将平时所学到的书本知识得以实践化,检验了本身对知识了解程度的不足,也从中学到了很多知识点与应用技术。这里我衷心的感谢王老师的耐心指导!参考文献1 雷晓平 .微型计算机原理与应用.北京:电子工业出版社,2002年2 周明德,张淑玲.80x86、80x87结构与汇编语言程序设计.北京:清华大学出版社,1993年3 周明德,蒋本珊.微机原理与接口技术.北京:人民邮电出版社,2002年4 郑纬民,汤志中.计算机系统结构(第二版).北京:清华大学出版社,1998年5 凌志浩 微机原理与接口技术教程与实训 . 华东理工大学出版社,20056 齐志儒,高福祥.汇编语言程序设计(第三版).东北大学出版社, 2003.057 齐志儒.汇编语言程序设计实验教程.东北大学出版社,20038 沈美明,温冬婵.IBM-PC 汇编语言程序设计.清华大学出版社,20049 张君,齐志儒.汇编语言程序设计题集.东北大学出版社,200310 沈美明,温冬婵,张赤红.IBM-PC 汇编语言程序设计实验教程.清华大学出版社, 2006致谢在课设完成之际,我要特别感谢我的指导老师王老师的热情关怀和悉心指导。在进行课设的过程中,王老师倾注了大量的心血和汗水,无论是在课设的选题,还是在进行课设过程中,我都得到了王老师悉心细致的教诲和无私的帮助,特别是她广博的学识、深厚的学术素养、严谨的治学精神和一丝不苟的工作作风使我终生受益,在此表示真诚地感谢和深深的谢意。 在课设过程中,也得到了许多同学的宝贵建议,同时还得到许多同学的支持和帮助,在此一并致以诚挚的谢意。 在此衷心感谢所有关心、支持、帮助过我的良师益友。 15
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!