文档详情

06简单电子琴程序设计.doc

发布:2016-12-31约8.51千字共17页下载文档
文本预览下载声明
写在文档前面 程序为汇编语言编 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
显示全部
相似文档