接口课程设计菜单选择的音乐程序设计与实现_第1页
接口课程设计菜单选择的音乐程序设计与实现_第2页
接口课程设计菜单选择的音乐程序设计与实现_第3页
接口课程设计菜单选择的音乐程序设计与实现_第4页
接口课程设计菜单选择的音乐程序设计与实现_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)目录第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以上,

2、打印机等。软件环境: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)首先要求设计与实现一首歌曲演唱几个小节

3、,然后设计与实现该首歌曲重复演唱,最后组织三首不同歌曲用同一个音乐控制程序选择。要求每名学生组织的歌曲不同于其他同学。第2章 程序设计2.1程序设计方法2.1.1模块化程序设计方法的指导思想如果待解决的问题比较简单,所编制的程序又不大时,就可以将整个程序放在一个模块中。但对大而复杂的设计任务,不可能由一个人用一个程序来实现。为了解决这些问题,必须采用自顶向下,逐步求精的模块化和结构化的设计方法,即将一个大而复杂的设计任务按其需要实现的主要功能分解为若干相对独立的模块,并确定好各模块之间的调用关系和参数传递方式,对其中的公共部分还可以抽出来作为独立的公共子程序模块供大家调用,然后可以将这些模块分

4、配给个人,每个人在设计自己的一部分时,还可以采用自顶向下,逐步求精的方法进一步细化,分解成一些更小的模块,并将各个模块的功能逐步细化为一系列的处理步骤或某种程序设计语言的语句,分别编写、调试,最后再将它们的目标模块连接装配成一个完整的整体。2.2 音乐菜单界面设计程序流程框图如下: nynynyny主模块 显示菜单框显示选择字符串 等待键输入键值=4键值=1键值=2键值=3 返回dos 转musici1模块 转musici2模块 转musici3模块 图一 音乐菜单界面设计流程图源程序代码如下: public statro extrn start1:far,srart2:far,srart3:

5、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 xxxxxxxxxxxxxx

6、xx ,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 s

7、tart2strt: 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

8、 ,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 ,1

9、0 ,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,

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 segme

11、ntmusic2 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流

12、程图如下: 设置显示方式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:dat

13、a3start3: 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图五 发声模块流程图发声源程序代码如下:p

14、ublic 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 ds

15、mov 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 delayi

16、n 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

17、 dly1 dec al jnz dly pop cx pop ax retdelay endpcode4 endsend第三章 总结这次课程设计完成后,体会颇多,不断学习新的知识,吸取经验,达到进步的目的。在课程设计中,通过努力以及相关图书资料的帮助,逐渐熟悉了微型机与接口的应用知识及其相关的操作。在这次课程设计过程中,我学会了利用汇编程序实现软件的具体功能,同时对语言的编写能力有了进一步加强,在指导教师的悉心讲解下,我解了的在编写程序中遇到的种种困难,例如:如何利用汇编程序来实现音乐界面的设计,怎样通过程序来实现音乐的播放等等,都在老师的指导下一一解决,是我从中受到很大启发。通过本次课程设

18、计,让我有机会将平时所学到的书本知识得以实践化,检验了本身对知识了解程度的不足,也从中学到了很多知识点与应用技术。这里我衷心的感谢王老师的耐心指导!参考文献1 雷晓平 .微型计算机原理与应用.北京:电子工业出版社,2002年2 周明德,张淑玲.80x86、80x87结构与汇编语言程序设计.北京:清华大学出版社,1993年3 周明德,蒋本珊.微机原理与接口技术.北京:人民邮电出版社,2002年4 郑纬民,汤志中.计算机系统结构(第二版).北京:清华大学出版社,1998年5 凌志浩 微机原理与接口技术教程与实训 . 华东理工大学出版社,20056 齐志儒,高福祥.汇编语言程序设计(第三版).东北大学出版社, 2003.057 齐志儒.汇编语言程序设计实验教程.东北大学出版社,20038 沈美明,温冬婵.ibm-pc 汇编语言程序设计.清华大学出版社,20049 张君,齐志儒.汇编语言程序设计题集.东北大学出版社,20

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论