汇编8阶电子琴.doc

上传人:高远 文档编号:610681 上传时间:2019-01-02 格式:DOC 页数:19 大小:346KB
返回 下载 相关 举报
汇编8阶电子琴.doc_第1页
第1页 / 共19页
汇编8阶电子琴.doc_第2页
第2页 / 共19页
点击查看更多>>
资源描述

《汇编8阶电子琴.doc》由会员分享,可在线阅读,更多相关《汇编8阶电子琴.doc(19页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、 2010 年 6 月 25 日微机原理与汇编语言课程设计任务书一、题目:电子琴二、设计的目的1. 掌握利用PC机扬声器发出不同频率声音的方法;2. 学习利用系统功能调用从键盘上读取字符的方法;3. 掌握定时器/计数器8253的工作原理;三、设计要求编写程序,程序运行时使PC 机成为一架可演奏的“钢琴”。当按下数字键1-8时,依次发出1,2,3,4,5,6,7,I八个音调,Ctrl-c 则退出演奏状态。独立完成课程设计。四、设计内容及步骤1PC 机扬声器电路电路图如图1所示:图1 PC 机扬声器控制电路通过给8253定时器装入不同的计数值,可以使其输出不同频率的波形。当与门打开后,经过放大器的

2、放大作用,便可驱动扬声器发出不同频率的音调。为使该音调的声音持续一段时间,要插入一段延时程序,之后再将扬声器关闭(关闭与门)。2建立音频表要使计算机成为可弹奏的简易电子琴,需要使用系统调用的01H 功能以接收键入字符,并且要建立一张音频表。五、课程设计工作计划2010 年 6 月 21 日 指导教师布置任务,学生准备文献资料;2010 年 6 月 21 日2010 年 6 月 24 日 学生按照课程设计的内容与要求进行操作并写出课程设计报告。2010 年 6 月 25 日 指导教师验收。指导教师签字: 教研室主任签章: 微机原理与汇编语言课程设计指导教师评语与成绩指导教师评语:课程设计表现成绩

3、: 课程设计验收成绩: 课程设计报告成绩: 课程设计 总成绩: 指导教师签字: 2010 年 月 日目 录一、概述 .5二、总体方案设计 .5三、详细设计 .7四、调试与运行 结果说明 .10五、课程设计总结 .11六、谢启 .12七、参考文献 .12八、附录 .13一、概述1功能说明: 利用计算机的扬声器发音来实现;定义 8 个键,对应低音区和中音的 i,能随意演奏乐曲; 能选择多首乐曲中的一首演奏,乐曲自选;良好的交互界面用于乐曲的选择和音符的演奏;2设计思路:依据设计功能的要求建立几个可以选择操作的界面。根据字符的匹配在菜单上面选择要播放的音乐。首先建立一个音乐的频率跟节拍的代码,利用宏

4、定义将地址传到音乐播放的模块中,之间用 8253 工作方式 3、计数器 0、先读低八位后读高八位以及延时的程序。选择的是自行播放音乐的时候按照 18 进行音乐频率的匹配,指针指向音乐频率的地址,进行一个字符一个字符的匹配。最后加一个清屏代码使界面更加清晰。二、总体方案设计1设计原理:(1)要使扬声器发出不同的音调,就得输入不同频率的波形。通过给 8253 定时/计数器装入不同的计数值,可以使其输出不同频率的方波。经过放大器的放大作用,便可驱动扬声器发出不同的音调,只要插入一段延时程序之后,再将扬声器切断,音调的声音就可以持续一端时间。通过计算机的不同按键输出不同的音调,需要使用系统调用功能以接

5、收键入字符,并且要建立一张表,使键入字符与频率构成一个对应关系:键入字符 1 2 3 4 5 6 7 8音符 1 2 3 4 5 6 7 8频率 1138 1207 1352 1521 1709 1807 2029 2277乐曲是由不同的频率和节拍的音调组成的,因此控制驱动脉冲的频率和持续时间就是编写乐曲程序的关键。频率对应8253的计数初值,而乐曲中的节拍决定了各音频持续的时间。(2) 利用 8253 计数/定时器和 8255 并行接口,定时器 8253 利用工作方式 3 产生一定频率信号,通过可编程的并行外围接口芯片 8255 控制频率信号的通断。8255 的 A 口设置为输出,8255

6、的 A 口的低两位用来控制扬声器驱动,当输出端口的 PA0 位为“1”或为“0 ”时,将使控制驱动器的与门电路接通或关闭,使 8253 所发出的音频信号能到达驱动器或被阻断。这样通过控制 PA0 的变化,可使扬声器接通和断开,控制扬声器是否能发出声音。此外,通过控制 PA0的通断时间,就能发出不同的音长。8255 的 PA1 位为“ 1”时,控制 8253 定时器产生驱动扬声器发声的音频信号,该位为“0” 则不发信号。 8253 有三个定时器,分为 0 号、1 号和 2 号定时器,驱动扬声器的是 0号定时器,该定时器工作在方式 3,是一个频率发生器,它负责向扬声器发送指定频率的脉冲信号。当82

7、55 的 PA0 和 PA1 都为 1 时,8253 发出指定频率的声音信号的前提下,声音信号通过与门到达驱动器驱动扬声器发声。硬件原理图如图 1 所示:(3) 系统实现2个功能,电子琴和音乐盒的功能。两者发声的方法一样,只是一个数据是从键盘读取的,另一个是已经保存好的数据。首先我们可以用一个子程序实现单个音调的产生,对8253输入不同的计数初值生成不同频率的波形,然后延时一段时间。电子琴程序主要是读取键盘按键,根据键值产生不同的音调即可。而乐曲的播放先将乐曲的音符编码表和节拍编码表建立好的,然后在播放时读取数据。音乐盒的乐曲播放程序中需要有两组数据支持:一组是频率数据,一组是节拍时间数据。音

8、符的频率可以通过简谱从频率表中查得。节拍时间就是音符的持续时间,取决于乐曲的速度和每个音符的节拍数据。如 4/4(四四拍)中,每小节包括 4 拍,全音符持续 4 拍,二分音符持续 2 拍,四分音符持续一拍,八分音符持续半拍等。有了音调与频率和时间的关系后,就可以按照乐曲的曲谱将每个音符的频率和持续的时间定义成两组数据表,然后编程依次取出表中的频率值和节拍值,调用单音调子程序就可依次产生各个音调,播放出乐曲。在程序中存储几个乐曲数据,根据音乐盒子菜单选择相应的乐曲演奏,读取对应的数据输出。2程序模块及流程图:(1).程序模 块:两个宏定义。一个是带显示的宏定义,还有一个是音乐地址跟节拍的地址宏定

9、义。输入要操作的字符匹配模块.自行演奏的字符匹配模块.自行演奏模块.音乐播放模块8253计数器与门 扬声器驱动扬声器8255 PA08255 PA1门控控制喇叭Q0.延时模块.8255、8253 工作模块.清屏模块(2).流程 图:是 Y N输入字符与 A-C进行匹配查乐符表获音符跟节拍输入字符与 D 进行匹配输入字符与 U 进行匹配将字符、跟频率转为偏移量开始输入字符与Q 匹配正确跳转到重新选择 EXIT10000 为被除数送DX、AX查表的频率为除数相除结果为计数初值打开与门装入计数初值延时关与门置 8253 为计数器2乐谱表的指针指向乐谱判断音乐是否结束数字输入发音查音乐频率将输入的字符

10、转为乐谱偏移量置 8253 计数器2延时判断是否继续按键三、详细设计1.软件设计:1. 单音调子程序SOUND:单音调子程序的调用前需要进行以下几个方面工作:1)确定相应的音调所对应的频率,查表可以得到,再由频率得到对应的8253计数初值。2)确定音长,即一个音符所持续的时间。在单音调子程序中实现发出一个音符的声音,持续所需的时间,流程图如图 3 所示:读取 8253 计数初值和音长8253 置初值开启与门和 8253GATE延时关闭与门和 8253GATE返回2电子琴程序由于是用键盘的数字键 1-8,要先读取键盘的输入,判断输入是否在 1-8 之间,不在就退到主菜单,若是就根据键值查表找出相

11、应的频率,计算初值,调用发音子程序即可,此时的音长固定。初值的计算方法是用输入的 clk 频率除以音符的频率。YNYN显示提示信息等待键盘按键放入 ALAL30AL查表 FREQ 得频率计算初值,置音长返回主菜单调用 SOUNDAL 小于1AL 大于82.编码实现:主程序中的清屏使用:MOV AH, 0 MOV AL,00 INT 10H宏定义中的字符串显示功能:MOV AH,9 INT 21H INPUT 程序块中带显示单字符的输入:MOV AH,01H INT 21HRETU1 程序块完全推出程序:MOV AH,4CHINT 21HD1 程序块从键盘接收字符不回显:MOV AH,0INT

12、16H四、调试与运行结果说明1. 调试过程出现问题及解决:最初对扬声器发声方面的知识很是迷茫,上网查了关于音符、节拍以及音符频率表方面的东西,再结合微机原理才弄懂了怎样控制扬声器发音的音调等问题汇编程序设计的基础知识也是临时学的,随用随查。调试的时候出现了很多的问题。宏定义出错,给音乐频率跟节拍定义的时候地址传递出现错误,查书了解到宏定义格式为:宏指令名 MACRO 形参 1,形参 2宏体ENDM 修改后才可以运行,很多 DOS 系统功能调用参数格式不是很确定,查了很多资料才得及解决。2运行结果以及运行说明:运行后进入的主界面就是如上图所示。按照上面的提示进行各种操作,如果其中要输入错误,就会不断的跳出该界面提示重新选择。A、 B、C 三个分别是对应播放的音乐。D 操作就是进入下面所示的界面自行弹奏音乐。Q 操作就是直接退出该程序。进入该界面以后按 U 后按键 1-8 就可以进行自己演奏音乐,按 Q 就会进入第一个界面,进行重新选择

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 初中资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com