电子琴综合实验报告(汇编语言)

上传人:大米 文档编号:488983550 上传时间:2022-09-05 格式:DOC 页数:49 大小:160.52KB
返回 下载 相关 举报
电子琴综合实验报告(汇编语言)_第1页
第1页 / 共49页
电子琴综合实验报告(汇编语言)_第2页
第2页 / 共49页
电子琴综合实验报告(汇编语言)_第3页
第3页 / 共49页
电子琴综合实验报告(汇编语言)_第4页
第4页 / 共49页
电子琴综合实验报告(汇编语言)_第5页
第5页 / 共49页
点击查看更多>>
资源描述

《电子琴综合实验报告(汇编语言)》由会员分享,可在线阅读,更多相关《电子琴综合实验报告(汇编语言)(49页珍藏版)》请在金锄头文库上搜索。

1、基于分频原理的多功能电子琴+节拍器信息科学技术学院 电子学系 任伶 00548091摘要一,课题及完成情况简介:利用TPC-H实验箱上的8253实现二级分频,同时配合以8255A,与门和DAC0832,通过扬声器放音,实现两个八度音高(包括半音)的电子琴。在软硬件相互配合下,电子琴具有弹奏和播放已存乐曲的功能,音长可控,播放速度可选,拥有美观的图形界面模拟真实琴键,且琴键随弹奏有起伏变化。利用微机内部的8253,8255A和内置扬声器,与TPC-H实验板上的8255A和LED,实现节拍器,可产生长度和速度可控的2/4拍,3/4拍及4/4拍等,LED和内置扬声器同时对节拍进行提示。二,关键词:8

2、253,8255A,DAC0832,弹奏,录音,播放,用户选择目标要求一,基本功能:1. 以微机键盘模拟真实琴键,发出标准C大调音阶和其高八度音阶,包括半音2. 每个音可以任意长短发音,由用户的按键时间决定,模拟真实电子琴的发生效果二,附加功能:1. 通过编写汇编语言,实现可视化界面,便于用户操作;弹奏过程中,琴键随用户按键的按下和弹起有起落变化的效果2. 在弹奏过程中同步录音;播放已经录制的乐曲;播放速度由用户决定,由慢速,中速和快速等选择3. 将电子琴作为节拍器使用,输出各种节拍,有2/4拍,3/4拍及4/4拍等供用户选择,在节拍器输出的同时,有LED和微机内置扬声器作为指示;拥有LED指

3、示是真实节拍器没有而本课题独有的功能4. 节拍器的输出拍数有长短两种,拍速有快慢两种,均由用户选择设计和实施方案一,设计方案选择与论述电子琴的实现方案有多种,例如基于波形叠加原理和基于分频原理等。基于波形叠加原理,其核心在于数模转换过程,其实现的过程和需要的组件较简单;用到的芯片主要为DAC0832,数目太少,很难达到硬件使用能力的锻炼;而基于分频原理的电子琴实现能够给我更多的锻炼机会。基于分频原理,其核心在于对分频计数的控制,多变复杂;用到的芯片包括8253,8255A,DAC0832和与门等,包括了基于波形叠加原理用到的芯片,同时我对8253和8255A的应用更熟练,便于方案可行性估计和软

4、件调试;此方案下,TPC-H实验箱上的连线较多,更是一种对硬件处理能力的挑战。节拍器的实现主要依靠分频和并口数据传输。基于上述理由,我选择基于分频原理的方案来实现电子琴和节拍器的混合体。二,所选用方案的框图三,采用的部件(元器件),方法,算法可实现所要求的功能和指标1. 电子琴发声部分利用TPC-H实验箱上的8253,8255A,DAC0832和与门及相关电路连接(详见后续说明)实现电子琴弹奏和播放录音时的发声(二者算法基本一致),发生的频率和时长主要通过对用户输入(即按键)的判断,调用过程控制硬件完成。用户弹奏时,通过对按键的判断,即可知其音高,在数据列表中找到相应计数初值,赋给8253计数

5、器0和计数器1即可。在这里要说明的是,计数器0执行的一级分频用于确定音高(不同音符的计数初值不同);计数器1执行的二级分频用于控制程序将正弦波形的离散数值写入DAC0832,从而得到模拟正弦波驱动扬声器,其计数初值不因音高变化而变化,这是因为在一个正弦周期内写入的离散数值个数是固定的,而写入频率由计数器0的输出作为GATE1控制;此为使用二级分频的缘故。按键的时长由程序计数得到,在琴键按下时,8255A的PA0口输出为零,无按键时其输出为1,因此8255A的PA0 和8253 的OUT1相与后作为8255A的PC0输入,在琴键按下时控制程序中正弦波离散数值以其频率向DAC0832 的写入,在琴

6、键弹起时禁止此写入。对于播放录音的情况,程序从内存中读出一个音符的音高与时长,同理控制上述过程即可。不同按键与不同音符的对应关系如下(标准C大调音阶及其高八度音阶): 按键1234567890-=音符C#CD#DEF#FG#GA#AB按键QWERTYUIOP音符HC#HCHD#HDHEHF#HFHG#HGHA#HAHB通过用户选择,赋予播放速度变量不同的值,从而改变音符的时长,从而改变了乐曲的播放速度。2. 电子琴琴键显示部分在电子琴的图形界面设计上,采用像素点画图的方法。实现计算好电子琴静态界面各个部分的位置和大小,确定其颜色存入数据列表中,使用时调用,按照像素点的颜色和数目等信息一次画出整

7、个键盘。在用户弹奏时,需要显示相应琴键按下和弹起的效果。在判断音符时即确定它对应的琴键的图形中需要改动区域的像素的位置,大小和颜色,存入相应寄存器中,再调用KEYDOWN和KEYUP重新在上述区域逐点重画像素。3. 提示信息显示部分所有对用户的提示信息均以字符串的形式在屏幕上显示,用户的输入根据其逻辑关系驱动程序走向(详见后续说明)。4. 节拍器工作部分根据用户的选择,决定输出节拍的种类,长度和速度,并跳转到相应程序段,同时相应变量赋值。其中,长度即输出节拍的个数,速度决定程序延时。LED的L3L0点亮与否由TPC-H实验箱上的8255A的PA4PA1驱动,按一个节拍周期中强弱拍的变化依次点亮

8、。微机内部的8253和8255A驱动内置扬声器发出不同频率的声音,按一个节拍周期中强弱拍的变化规律与LED同时对用户作出节拍提示。四,电路原理图,软件流程图和主要软件模块说明1. 电路原理图2. 软件流程图 3. 主要软件模块说明(1)采用IBM-PC彩色图形方式,显示电子琴键盘的画面(a)绘制出键盘的静态效果其中,图形界面的数据缓冲区定义如下:色号6708对应颜色橙色白色黑色灰色KEYBOARD DB 179 DUP(6); 电子琴上部的橙色背景 ; 键盘中部 DB 6 DUP(6),8 DUP(7),7 DUP(0),5 DUP(7),7 DUP(0),8 DUP(7),1 DUP(0)

9、DB 8 DUP(7),7 DUP(0),5 DUP(7),7 DUP(0),5 DUP(7),7 DUP(0),8 DUP(7),1 DUP(0) DB 8 DUP(7),7 DUP(0),5 DUP(7),7 DUP(0),8 DUP(7),1 DUP(0) DB 8 DUP(7),7 DUP(0),5 DUP(7),7 DUP(0),5 DUP(7),7 DUP(0),8 DUP(7),6 DUP(6) DB 6 DUP(6),8 DUP(7),7 DUP(8),5 DUP(7),7 DUP(8),8 DUP(7),1 DUP(0) DB 8 DUP(7),7 DUP(8),5 DUP(

10、7),7 DUP(8),5 DUP(7),7 DUP(8),8 DUP(7),1 DUP(0) DB 8 DUP(7),7 DUP(8),5 DUP(7),7 DUP(8),8 DUP(7),1 DUP(0) DB 8 DUP(7),7 DUP(8),5 DUP(7),7 DUP(8),5 DUP(7),7 DUP(8),8 DUP(7),6 DUP(6) ; 键盘下部 DB 6 DUP(6),11 DUP(7),1 DUP(0),11 DUP(7),1 DUP(0),11 DUP(7),1 DUP(0) DB 11 DUP(7),1 DUP(0),11 DUP(7),1 DUP(0),11

11、DUP(7),1 DUP(0),11 DUP(7),1 DUP(0) DB 11 DUP(7),1 DUP(0),11 DUP(7),1 DUP(0),11 DUP(7),1 DUP(0) DB 11 DUP(7),1 DUP(0),11 DUP(7),1 DUP(0),11 DUP(7),1 DUP(0),11 DUP(7),6 DUP(6) DB 6 DUP(6),11 DUP(8),1 DUP(0),11 DUP(8),1 DUP(0),11 DUP(8),1 DUP(0) DB 11 DUP(8),1 DUP(0),11 DUP(8),1 DUP(0),11 DUP(8),1 DUP(

12、0),11 DUP(8),1 DUP(0) DB 11 DUP(8),1 DUP(0),11 DUP(8),1 DUP(0),11 DUP(8),1 DUP(0) DB 11 DUP(8),1 DUP(0),11 DUP(8),1 DUP(0),11 DUP(8),1 DUP(0),11 DUP(8),6 DUP(6)调用DRAW画出键盘的静态效果。;-DRAW-DRAW PROC NEARPUSH AXPUSH BXPUSH CXPUSH DXPUSH SIPUSH DIMOV AX,DATA; 段寄存器初始化MOV DS,AXMOV AH,0; 设置屏幕显示为320X200MOV AL,0

13、DH; 彩色图形(EGA)INT 10HMOV SI,0; 从第一个像素开始MOV CX,66; 列MOV DX,62; 行LEA BX,KEYBOARD; 绘制电子琴上部的橙色背景PART1:MOV DI,BX+SI; 取像素值MOV AX,DIMOV AH,0CHINT 10HINC DXCMP DX,82; 一行画完了吗?JNE PART1; 若没有则继续MOV DX,62; 画下一行INC SIINC CXCMP CX,245; 所有的行都画完了吗?JNZ PART1; 若没有则继续; 绘制电子琴中部黑白键交替的情景MOV CX,66MOV DX,82LEA BX,KEYBOARD; 现在SI=167PART2:MOV DI,BX+SIMOV AX,DIMOV AH,0CHINT 10HINC DXCMP DX,101JNE PART2MOV DX, 82 INC SI INC CX CMP CX, 245 JNZ PART2;绘制电子琴中部灰白交替的情况(此处的灰色部分对应

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

当前位置:首页 > 办公文档 > PPT模板库 > 总结/计划/报告

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号