音乐演奏程序设计.docx

上传人:b****3 文档编号:2893028 上传时间:2022-11-16 格式:DOCX 页数:39 大小:285.47KB
下载 相关 举报
音乐演奏程序设计.docx_第1页
第1页 / 共39页
音乐演奏程序设计.docx_第2页
第2页 / 共39页
音乐演奏程序设计.docx_第3页
第3页 / 共39页
音乐演奏程序设计.docx_第4页
第4页 / 共39页
音乐演奏程序设计.docx_第5页
第5页 / 共39页
点击查看更多>>
下载资源
资源描述

音乐演奏程序设计.docx

《音乐演奏程序设计.docx》由会员分享,可在线阅读,更多相关《音乐演奏程序设计.docx(39页珍藏版)》请在冰豆网上搜索。

音乐演奏程序设计.docx

音乐演奏程序设计

课程设计任务书

学生姓名:

黎德刚专业班级:

自动化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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1