音乐演奏程序设计.docx
- 文档编号:2893028
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:39
- 大小:285.47KB
音乐演奏程序设计.docx
《音乐演奏程序设计.docx》由会员分享,可在线阅读,更多相关《音乐演奏程序设计.docx(39页珍藏版)》请在冰豆网上搜索。
音乐演奏程序设计
课程设计任务书
学生姓名:
黎德刚专业班级:
自动化0801班
指导教师:
周申培工作单位:
自动化学院
题目:
音乐演奏程序设计
要求完成的主要任务:
(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)
1.使用汇编语言设计一个在计算机上运行的音乐演奏程序;
2.屏幕显示钢琴图像;
3.按大写字母“A”,唱乐曲1;按大写字母“B”,唱乐曲2;按大写字母“C”,唱乐曲3,依次类推;
4.按"Q"鍵,退出;
5.撰写课程设计说明书。
内容包括:
摘要、目录、正文、参考文献、附录(程序清单)。
正文部分包括:
设计任务及要求、方案比较及论证、软件设计说明(软件思想,流程,源程序设计及说明等)、程序调试说明和结果分析、课程设计收获及心得体会。
时间安排:
1月5日-----1月7日查阅资料及方案设计
1月8日-----元月11日编程
1月12日-----1月13日调试程序
1月14日-----1月16日撰写课程设计报告
指导教师签名:
年月日
系主任(或责任教师)签名:
年月日
目录
摘要-1-
一设计任务及要求-2-
1.1设计目的-2-
1.2设计要求-2-
二软件设计说明-3-
2.1设计思路-3-
2.2设计流程图-4-
2.3程序模块-5-
2.3.1主程序-5-
2.3.2主菜单界面-6-
2.3.3音乐代码段-7-
2.3.4歌曲演奏子程序-8-
2.3.5通用发声子程序-9-
2.3.6钢琴界面画图程序-10-
2.4扩展功能-12-
三调试说明及结果分析-13-
四课程设计收获及心得体会-17-
参考文献-18-
附录-19-
摘要
本文主要对利用微机原理与接口技术来编写简易电子钢琴进行分析,并介绍了基于8255A,8254芯片电子钢琴系统的设计结构与体系。
将简谱音阶转换成汇编代码,通过通用发声程序发出对应的声音。
通过IBM-PC/XT机内的定时/计数器接口芯片8254,8255,可以实现声音的接口。
本文通过汇编语言编程,由系统内的8255A并行I/O接口的PB端口最低位来控制喇叭驱动系统,PB0控制8253-5定时/计数器的定时计数;PB1来控制喇叭接通和断开,以此来发声。
对乐谱的频率和节拍进行编程,转化为对8254-5定时/计数器和8255A并行接口的控制命令,从而实现音乐演奏。
另外,为了方便实现人机交互,必须在显示器上显示相应的提示语句,这个可以通过调用BIOS中断10H号功能语句来实现。
程序运行时,人工输入相关参数,程序检测输入参数并执行相关的指令,从而实现音乐播放功能。
本程序主要完成的功能有完成三首歌曲的选择与播放,还附加一个模拟钢琴演奏部分。
相应的辅助功能有显示提示信息,操作员通过键盘输入相应的字符命令,然后程序进行检测,播放相应的歌曲或者退出程序,可以重复操作。
关键词:
汇编接口音乐演奏
音乐演奏程序设计
一设计任务及要求
1.1设计目的
1)巩固和加深已经学习的微机原理与接口技术知识,并在设计的过程中学习新的汇编语言;
2)熟练掌握汇编语言中各中段语句的使用;
3)了解并掌握通用发声程序的编写方法以及发声原理;
4)熟练掌握8254,8255芯片的功能和使用方法;
5)通过设计一款音乐演奏软件来培养对这门学科的兴趣。
1.2设计要求
要求完成的主要任务:
(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)
1.使用汇编语言设计一个在计算机上运行的音乐演奏程序;
2.屏幕显示钢琴图像;
3.按大写字母“A”,唱乐曲1;按大写字母“B”,唱乐曲2;按大写字母“C”,唱乐曲3,依次类推;
4.按"Q"鍵,退出;
5.撰写课程设计说明书。
二软件设计说明
2.1设计思路
首先,设计一个主界面,用数据段语句定义,在程序执行的开始所有定义的提示都应显示出来,但它们不参与程序内部的计算和转换,而所定义的音乐频率表和节拍时间,将随通用发生程序执行播放歌曲。
课程设计中使用的数据全部定义在名称为DSEG数据段中。
音乐频率表和节拍时间则均使用字(DW)的存储方式来实现在主菜单显示和子菜单显示数据段均使用字节(DB)的存储方式来实现在此程序中主要运用主程序调用子程序方法实现该程序的功能。
用到的芯片还包括8255,8254。
该程序包括:
主程序主菜单界面模块,音乐代码等数据段模块,歌曲演奏子程序模块,通用发声子程序模块钢琴界面画图程序模块共七大模块。
主程序模块的功能主要是调用主菜单显示模块,将主菜单显示在屏幕上,并对用户输入的菜单项目值进行判断进而通过跳转语句调用相应的子程序。
2.2设计流程图
2.3程序模块
2.3.1主程序
初始化之后显示主界面,输入字符后,将其分别与‘O’、‘A’、‘B’、‘C’、‘Q、比较,是‘O’则进入我的钢琴界面可以进行演奏,是‘A’则播放歌曲1,是‘B’则播放歌曲2,是‘C’则播放歌曲3,是‘Q’则退出,都不是则再次输入。
START:
MOVAX,DATAS
MOVDS,AX
LEADX,STRING
MOVAH,09H
INT21H
;提示选择信息
MOVAH,09H
MOVDX,OFFSETCHOSE
INT21H
;-----------------------
INPUT:
MOVAH,01H
INT21H
CMPAL,'O'
JZCTONE
CMPAL,'o'
JZCTONE
CMPAL,'A'
JZMUSICA
CMPAL,'a'
JZMUSICA
CMPAL,'B'
JZMUSICB
CMPAL,'b'
JZMUSICB
CMPAL,'C'
JZMUSICC
CMPAL,'c'
JZMUSICC
CMPAL,'Q'
JZEXIT
CMPAL,'q'
JZEXIT
JMPINPUT
2.3.2主菜单界面
以下为主界面的代码段,执行主程序是直接调用显示。
STRINGDB'',10,13
DB'###########################',10,13
DB'##O______________##',10,13
DB'##/\_._|Piano|##',10,13
DB'####||_____________|####',10,13
DB'####__\__[_____________|####',10,13
DB'##__][_\_][][##',10,13
DB'####',10,13
DB'##O>Mypiano##',10,13
DB'##A>Longdechuanren##',10,13
DB'##B>Aidejiushini##',10,13
DB'##C>HappyBirthday##',10,13
DB'##Q>exit##',10,13
DB'####',10,13
DB'###############################',10,13
DB'OO',10,13
DB'O|OO|O',10,13
DB'__\|/____\|/__',10,13
DB'\/\/',10,13
DB'\/\/',10,13
DB'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%',10,13,'$'
运行程序后显示界面如图2.2:
图2.2主菜单界面
2.3.3音乐代码段
歌曲1至3的音乐频率表和节拍时间在程序执行的开始所有定义的提示都应显示出来,但它们不参与程序内部的计算和转换,而所定义的音乐频率表和节拍时间,将随通用发生程序执行播放歌曲。
音乐频率表和节拍时间则均使用字(DW)的存储方式来实现,在主菜单显示和子菜单显示数据段均使用字节(DB)的存储方式来实现。
1)音阶简谱向汇编语言转换原理
PC机上大多数I/O都是由主板上的8255(或8255A)可编程外围接口芯片(PPI)管理的。
PPI包括三个8位寄存器:
两个输入寄存器,端口地址分别是60H、62H;一个输出寄存器,端口地址为61H。
由PPI输出寄存器中的,也就是61H端口的D0、D1位来控制扬声器的驱动方式。
BIOS中的BEEP子程序:
1、只能发出896Hz的声音;2、产生的音长只能是0.5s的倍数。
3、编写通用发声程序应该能发出任意频率的声音,可由
1193100÷给定频率=12348C÷给定频率(2—1)
计算出来。
声音的持续时间更易于调整。
利用CPU来产生延迟时间是最常用的一种方法。
组成乐曲的每个音符的频率值和持续时间是乐曲程序发声所需要的两个数据。
以下列出歌曲1的数据段:
;1longdechuanren
MUS_FREQADW330,371,393,441,495,441,393,393,371,330
DW330,371,393,441,495,441,393,391,393,441,495
DW330,371,393,441,495,441,393,393,371,330
DW371,371,371,393,371,330,330,294,330
DW495,495,495,441,393,441,441,495,441
DW393,393,393,441,393,371,371,393,371
DW495,495,495,441,393,441,441,495,441
DW393,393,371,393,371,330,330,294,330,-1
MUS_TIMEADW1600,1600,1600,3200,1600,1600,3200,1600,1600,4800
DW3200,1600,1600,3200,1600,1600,1600,1600,1600,1600,4800
DW3200,1600,1600,3200,1600,1600,3200,1600,1600,4800
DW3200,3200,1600,3200,1600,3200,1600,1600,4800
DW3200,3200,3200,1600,1600,3200,1600,1600,4800
DW3200,3200,3200,1600,1600,3200,1600,1600,4800
DW3200,3200,3200,1600,1600,3200,1600,1600,4800
DW3200,3200,3200,1600,1600,3200,1600,1600,3200
2.3.4歌曲演奏子程序
以第一首歌的播放程序为例,程序演示图见图2.3。
MUSICAPROCNEAR
;显示提示信息
MOVDX,OFFSETMUSIA
MOVAH,09H
INT21H
CALLHUAGANGQIN
PUSHDS
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 音乐 演奏 程序设计