06简单电子琴程序设计.doc
文本预览下载声明
写在文档前面
程序为汇编语言编
QASM2.7编译,环境为WIN XP(注意在64位机汇编程序无法编译,最好装虚拟机)
目录
一.摘要 1
二.原理分析 2
2.1 设计要求 2
2.2 需求分析 2
2.3原理分析 2
三.程序设计 5
3.1程序流程图 5
3.2程序代码 6
四. 程序调试及运行结果 7
4.1程序的调试 7
4.2运行结果 7
4.3结果分析 9
五. 心得体会 10
六.参考文献 11
附录 12
一.摘要
汇编语言(Assembly Language)是面向机器的程序设计语言,汇编语言包括两个部分:语法部分和汇编器。语法部分提供与机器指令相对应的助记符,方便指令的书写和阅读。当然,汇编语言的符号可以被人类接受,但不能被处理器识别,为此,还要由汇编语言编译器将这些助记符转换成机器指令,这个组装的过程称为组合或汇编。本次课程设计中主要运用汇编语言编写简单电子琴程序,利用轻松汇编程序QSAM进行汇编。在简单电子琴程序中,由PC机键盘输入1-7音符并存储,并根据不同音符对应的频率设置定时器初值,调用扬声器播放。
关键字:汇编,电子琴,音符,频率
二.原理分析
2.1 设计要求
(1)编写一个利用1至7演奏音符的程序;
(2)程序能记录所演奏的音乐;
(3)程序能回放记录的音乐;
(4)程序采用汇编语言在PC机上完成;
2.2 需求分析
根据设计要求:首先,此电子琴程序需要在PC机上用汇编语言完成,演奏的音符必须调用PC机的扬声器完成。第二,演奏1至7音符,即要求演奏不同频率的音符,需找到对应1-7音符的频率,可从音符频率对照表中找到对应频率,调用BIOS,以播放该频率音符。第三,程序通过记录输入数据,和调用播放子程序可达到记录演奏的音乐和回放记录的音乐的功能。第四,操作界面简洁易懂,让使用者能通过提示进行正确的操作;第五,通过汇编工具程序QSAM调试程序代码并运行,生成可执行.exe文件。
2.3原理分析
输入字符判断:
①1-7:存储并播放;
②退格(backspace):删除上一个存储字符;
③其他: P(play):播放所存储音乐;
R(replay):重新播放所存储音乐;
Q(quit):退出程序;
音符存储及播放:
①建立一个总够大的数据存储空间,用于存储输入的有效字符,即1-7,在程序中定义为MUS db 200 dup(0);
②根据音符频率对应表,找出1-7对应的频率,在本次设计中,使用的为中音1-7的频率,分别为 2277, 2138, 1808, 1709, 1522, 1356, 1208,根据频率设计定时器初值,并交由子程序MUSIC播放。
播放,重播及退出:
①播放:调用Bios的Deep子程序发声,并使用本程序中MUSIC播放,在程序中标号为PLAY
②重播:根据存储的数据,调用MUSIC子程序播放,在程序中标号为REPLAY
③退出:系统调用中断,退出程序,在程序中标号为QUIT
系统原理图:
图2.3.1 系统原理图
本程序设计过程的整体设计思路是通过定义数据段,堆栈段和代码段实现程序的各种要求。其中堆栈段是为乐曲的音调及频率的数据分配空间;数据段是记录程序运行过程中所需的信息,包括字符信息,单调数据,音频数据;代码段则是程序算法部分, 通过对各数据的调用,实现音乐演奏功能。
三.程序设计
3.1程序流程图
1.主程序流程图
Y N
Y N
N Y
Q R Y N
图3.1.1主程序流程图
MUSIC子程序流程图
图 3.1.2 MUSIC子程序流程图
3.2程序代码
见附录
程序调试及运行结果
4.1程序的调试
1.编辑源程序,假定源文件名为 电子琴.asm。
2.汇编源程序 电子琴.asm。调用宏汇编程序QASM对源文件 电子琴.asm进 行汇编,生成目标文件 电子琴.obj。若汇编无错误,则进入第三步。
3..用连接命令L
显示全部