(数字信号发生器+电子琴)实验报告

合集下载

电子琴的实验报告

电子琴的实验报告

电子琴的实验报告 WTD standardization office【WTD 5AB- WTDK 08- WTD 2C】单片机课程设计设计题目电子琴指导老师:苏参与实验者: moxiaoxiao专业:统本电信0801地点:3#楼北楼605电子琴一.设计目的:(1).培养综合运用知识的能力(2).朋友查阅资料,使用工程设计标准及编写设计文档的能力.(3).掌握单片机应用系统的设计方法.(4).提高计算机绘图能力二.设计任务:利用DP51PROC实验系统上的定时器/计数器,按键和蜂鸣器单元。

用单片机I/O口线控制蜂鸣器发出不同的音调,程序检测按键状态,7个按键中某一键按下时,蜂鸣器对应标称音阶.三.设计与调试环境KEIL uVision2 是众多单片机应用开发软件中优秀的软件之一,它支持众多不同公司的 MCS51 架构的芯片,它集编辑,编译,仿真等于一体,同时还支持,PLM ,汇编和 C 语言的程序设计,它的界面和常用的微软VC++的界面相似,界面友好,易学易用,在调试程序,软件仿真方面也有很强大的功能。

1:按下面的步骤建立一个项目:图 1-4 选取芯片图 1-5 新建程序文件(1)点击图1-5 中的 3 保存新建的程序,也可以用菜单 File-Save 或快捷键 Ctrl+S 进行保存。

因是新文件所以保存时会弹出类似图1-3 的文件操作窗口,我们把第一个程序命名为,保存在项目所在的目录中,这时程序单词有了不同的颜色,说明 KEIL 的 C 语法检查生效了。

如图1-6 鼠标在屏幕左边的 Source Group1 文件夹图标上右击弹出菜单,在这里可以做项目中增加减少文件等操作。

我们选“Add File to Group‘SourceGroup 1’”弹出文件窗口,选择刚刚保存的文件,按 ADD 按钮,关闭文件窗,程序文件已加到项目中了。

这时在 Source Group1 文件夹图标左边出现了一个小+号说明,文件组中有了文件,点击它可以展开查看。

北邮大三数电实验电子琴

北邮大三数电实验电子琴

数字电路与逻辑设计实验报告实验名称: 基于VHDL的电子琴演奏器实现学院: 信息与通信工程学院班级:姓名:学号:任课老师:日期:2012年11月目录一.任务要求 (2)1、基本要求 (2)2、提高要求 (2)二、原理概述 (2)三、系统设计 (3)1、基础功能 (3)2、拓展功能1——自动播放 (6)3、拓展功能2——储存音符并可自动播放所存字符 (8)4、全部功能实现 (8)四、波形仿真及波形分析 (11)五、源程序 (15)1、FENPINXISHU (15)2、FENPIN (16)3、BEEP (16)4、OUTPUT (17)5、YINFUFENPIN (21)6、JISHU (21)7、JIANPU (22)8、MIAOFENPIN (24)9、JILU (25)10、SHUJUXUANZEQI (26)11、TP (27)六、功能说明 (30)七、元器件清单及资源利用情况 (30)八、故障及问题分析 (31)九、总结和结论 (31)一.任务要求设计制作一个简易电子琴演奏器。

1、基本要求(1) 用8×8点阵显示“1 2 3 4 5 6 7”七个音符构成的电子琴键盘。

其中点阵的第一列用一个LED点亮表示音符“1”,第二列用二个LED点亮表示音符“2”,依此类推,如下图所示。

1 2 3 4 5 6 7图1 点阵显示的电子琴键盘(2) 用BTN1~BTN7七个按键模拟电子琴手动演奏时的“1 2 3 4 5 6 7”七个音符。

当某个按键按下时,数码管显示相应的音符,点阵上与之对应的音符显示列全灭,同时蜂鸣器演奏相应的声音;当按键弹开时数码管显示的音符灭掉,点阵显示恢复,蜂鸣器停止声音的输出。

下图所示为按下BTN3按键时点阵的显示情况。

1 2 3 4 5 6 7图2 按键按下后的点阵显示a、由拨码开关切换选择高、中、低音,并用数码管进行相应的显示。

b、通过按键BTN0进行复位,控制点阵显示图1的初始状态。

数字电子技术综合实验报告——简易电子琴

数字电子技术综合实验报告——简易电子琴

数字电子技术综合实验报告——简易电子琴(总42页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--数字电子技术综合实验报告2012--2013学年第二学期姓名:学号:班级:实验时间:实验指导老师:目录一、设计任务 (2)二、设计方案 (2)三、系统框图 (3)四、方案实现 (3)1.乐曲演奏的原理 (3)2.总体方案 (4)五、实验结果 (6)六、方案优化 (7)七、心得体会 (7)附录 (7)1.VHDL源程序 (7)2.各层次原理图 (35)3.编译报告 (40)题目: 简易电子琴设计摘要电子琴的设计大规模可编程逻辑器件(FPGA)作为系统的核心控制部分通过软件的设计编写然后进行软硬件的调试运行最终达到设计电路的乐器演奏、选歌及显示功能。

设计中采用计数原理控制演奏器发声,对音乐发生所必须确定的音符和节拍分别用程序语言实现。

可以用它来弹奏和播放乐曲。

特点是设计思路简单、清晰。

关键字:电子琴 CPLD一、设计任务1.基本要求(1)具有一般弹奏功能;(2)自动播放功能;(3)数码显示音符功能。

2.发挥部分(1)能通过选择键在多首歌曲中选择播放;(2)输出增加功率放大电路,增加歌曲容量;(3)增加音效或节拍可调;(4)无线弹奏。

二、设计方案采用大规模可编程逻辑器件(FPGA),利用quartusII,通过verilog代码实现简易电子琴演奏电路。

三、系统框图四、方案实现1.乐曲演奏的原理:乐曲演奏的原理:组成乐曲的每个音符的频率值(音调)以及持续时间(音长)是乐曲能持续演奏所需的两个基本数据,因此只要控制输出到扬声器的激励信号的频率的高低和持续的时间,就可以使扬声器发出持续的乐曲声。

音调的控制频率的高低决定了音调的高低。

音乐的十二平均率规定:每两个八度音(如简谱中的中音1与高音1)之间的频率相差一倍。

在两个八度音之间,又可分为十二个半音,每半个音的频率比为。

电子琴实训报告

电子琴实训报告

电子琴实训报告
一、实训内容
本次实训内容为电子琴基础实践,包括基础音乐理论学习、琴键按键技巧训练、曲目弹奏等内容。

二、实训过程
1. 音乐理论学习
在实训开始前,老师首先给我们讲解了音乐基础知识,包括音符、节奏、调式等内容。

通过这些知识的学习,我们更好地理解了音乐作品。

2. 琴键按键技巧训练
接下来,老师让我们开始琴键按键技巧的训练。

我们从最基础的音阶开始,一步步地学习了琴键的按法和演奏技巧。

经过反复练习和指导,我们逐渐掌握了正确的按键技巧。

3. 曲目弹奏
在学习了基础的音乐理论和琴键技巧后,我们开始学习一些曲
目的弹奏。

老师为我们精心挑选了一些适合初学者的曲目,包括
流行歌曲、古典音乐等。

我们通过练习这些曲目,更好地掌握了
琴键技巧和演奏技巧。

三、实训成果
通过两周的实践学习,我们在电子琴方面取得了很多进步。


们可以更加熟练地掌握琴键按键技巧,能够演奏一些简单的曲目。

同时,我们对音乐理论有了更深入的了解,能够更好地欣赏音乐
作品。

四、实训收获
通过这次实训,我们不仅学到了电子琴方面的知识和技巧,更
重要的是培养了我们的音乐素养和音乐爱好。

我们在实训中感受
到了音乐的美妙,也更深切地体会到了学习音乐的重要性。

五、总结
此次电子琴实践是一次非常有意义的学习经历。

我们在实践中不断地探索、学习、进步,让自己更加熟练地掌握电子琴技巧、完善音乐素养。

我们相信,这次实践将为我们未来的音乐之路奠定坚实的基础。

VHDL电子琴实验报告

VHDL电子琴实验报告

VHDL电子琴实验报告
实验目的:
本实验的目的是设计一个VHDL电子琴,通过FPGA实现,实现按键发出不同的音调,并通过扬声器输出对应的音频信号,达到模拟真实电子琴的效果。

实验原理:
VHDL(Very High Speed Integrated Circuit Hardware Description Language)是一种硬件描述语言,用于描述数字电路的行为和结构。

在本实验中,我们将使用VHDL语言描述电子琴的按键和音调的对应关系,通过FPGA实现电子琴的功能。

电子琴实验主要包含两个部分:输入部分和输出部分。

输入部分是按键,按下不同的按键会发出不同的音调。

输出部分是扬声器,通过扬声器输出对应的音频信号。

实验步骤:
1.确定电子琴的按键数量和对应的音调。

2.使用VHDL语言描述电子琴的按键和音调的对应关系。

3.将VHDL代码综合成逻辑电路网表。

4.将逻辑电路网表烧录到FPGA中。

5.连接扬声器到FPGA输出引脚。

6.按下不同的按键,测试扬声器输出的音频信号是否正确。

实验结果:
经过实验测试,我们成功实现了一个简单的VHDL电子琴。

按下不同的按键,扬声器输出对应的音调。

通过调整VHDL代码中的音频频率,可以改变电子琴的音调高低。

实验总结:
通过本实验,我们深入理解了VHDL语言的应用和FPGA的原理。

电子琴作为一个实际应用案例,充分展示了数字电路设计的魅力。

在今后的学习和工作中,我们将能更加熟练地应用VHDL语言和FPGA技术,设计更加复杂的数字电路系统。

数电实验简易电子琴的设计报告

数电实验简易电子琴的设计报告

数电实验简易电子琴的设计报告班级:学号:1、项目概况选题目的,为了进一步巩固之前学到的知识,将课本的知识结合趣味性,让自己得到更好的提高。

项目构思,模型要做一个能成功实现的简易电子琴,包括按键按下后蜂鸣器会根据相应的频率准确发出相应音阶的声音,7段数码管会显示出按键的简谱,输出端H可以表示音的高低。

要用到计数器,触发器分频器,7段数码显示器等元件。

2、方案设计系统框图为:系统简介如下:1、系统框图2、系统端口(2个输入口3个输出口)(1) CLK,频率1MHz。

用于提供时钟脉冲信号。

(2) DIN[7、、0]。

琴键输入的8个音符,8位中只有一位是低电平即每次只能按一个键。

(3) SPK。

用于驱动蜂鸣器,输出频率fB与蜂鸣器发出的音调与电子琴各音阶基频有对应关系。

(4) LED。

接数码管,用于显示对应的简谱码,H显示音调高低。

3、工作原理(1)编码器CODE3。

将输入的8位琴键信号进行编码,输出一个4位码,最多能对应16个音符(若有16个键)。

按下的琴键的电平为低。

例:8’b :KEY<=4’b0001 输入第一位琴键“哆”此时编译成4位二进制数2^0=1 传入译码器INX2CODE。

(2)译码器INX2CODE。

将键盘输入的编码信号译码成数控分频器SPK0输出信号的频率控制字。

例:1 :F_CODE <=11’H305 刚才编码器编码传入的琴键“哆”的1此时被译码为数控分频器SPK0的输出信号的频率控制字305H。

(3) SPK0。

计数器CNT11B是一个LPM宏模块,利用同步加载控制sload避免来自进位信号cout中可能的毛刺影响,反相器和D 触发器使得进位信号延迟半个时钟周期,过滤掉可能的毛刺,使得加载更加可靠。

例:经过编译的305H被置入模块SPK0的11位可预置计数器中计数器不断以此值为计数起始值,直至全为1。

以305H计数起始,计数器成为一个模为1270(7FFH-305H=4F6H=1270)的计数器。

信号发生器实验报告

信号发生器实验报告

信号发生器实验报告信号发生器实验报告引言信号发生器是电子实验室中常见的一种仪器,用于产生各种类型的电信号。

本次实验旨在探究信号发生器的原理和应用,以及对其进行一系列的测试和测量。

一、信号发生器的原理信号发生器是一种能够产生不同频率、幅度和波形的电信号的设备。

其主要由振荡电路、放大电路和输出电路组成。

振荡电路负责产生稳定的基准信号,放大电路将基准信号放大到合适的幅度,输出电路将信号输出到外部设备。

二、信号发生器的应用1. 电子器件测试:信号发生器可以用于测试电子器件的频率响应、幅度响应等特性。

通过改变信号发生器的频率和幅度,可以模拟不同工作条件下的电子器件性能。

2. 通信系统调试:在通信系统的调试过程中,信号发生器可以用于模拟各种信号,如语音信号、数据信号等。

通过调整信号发生器的参数,可以测试通信系统的传输质量和容量。

3. 音频设备测试:信号发生器可以用于测试音频设备的频率响应、失真等特性。

通过产生不同频率和幅度的信号,可以对音频设备进行全面的测试和评估。

三、实验过程1. 测试频率响应:将信号发生器连接到待测设备的输入端,逐渐改变信号发生器的频率,并记录待测设备的输出结果。

通过绘制频率响应曲线,可以了解待测设备在不同频率下的响应情况。

2. 测试幅度响应:将信号发生器连接到待测设备的输入端,逐渐改变信号发生器的输出幅度,并记录待测设备的输出结果。

通过绘制幅度响应曲线,可以了解待测设备对不同幅度信号的响应情况。

3. 测试波形输出:将信号发生器连接到示波器,通过改变信号发生器的波形设置,观察示波器上的波形变化。

通过比较不同波形的特征,可以了解信号发生器的波形生成能力。

四、实验结果与分析1. 频率响应:根据实验数据绘制的频率响应曲线显示,待测设备在低频段具有较好的响应能力,而在高频段则逐渐衰减。

这可能是由于待测设备的电路结构和元件特性导致的。

2. 幅度响应:根据实验数据绘制的幅度响应曲线显示,待测设备对于低幅度信号的响应较差,而对于高幅度信号的响应较好。

(数字信号发生器+电子琴)实验报告

(数字信号发生器+电子琴)实验报告

实验一数字信号发生器和电子琴制作一、实验目的1.熟悉matlab的软件环境,掌握信号处理的方法,能在matlab的环境下完成对信号的基本处理;2.学会使用matlab的GUI控件编辑图形用户界面;3.了解matlab中一些常用函数的使用及常用运算符,并能使用函数完成基本的信号处理;二、实验仪器计算机一台,matlab R2009b软件。

三、实验原理1.数字信号发生器MATLAB是矩阵实验室(Matrix Laboratory)的简称,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB 和Simulink两大部分。

已知的常用正弦波、方波及三角波,可以通过matlab自带的函数实现,通过改变函数的幅值、相位和频率可以得到不同的信号。

正弦信号:y=A*sin(2*pi*f*t);方波信号:y=A*square(2*f*pi*x+c);三角波信号:y=A*sawtooth(2*pi*f*x+c);2. 电子琴电子琴的每个音阶均对应一个特定频率的信号,通过调用数字信号发生器产生一系列指定的频率的声音,从而达到虚拟的电子琴的功能。

界面中包含1、2、…、7共 7 个琴键,鼠标按下时即发声,松开时发声停止。

同时能够产生正弦波、方波、三角波等常见的波形的数字信号,然后将数字信号写入声卡的缓冲区,最后由声卡播放出相应的声音。

已知音乐的七个音阶的主频率分别是131Hz、147Hz、165Hz、175Hz、196Hz、220Hz和247Hz,分别构造正弦波、方波和三角波,可以组成简单的电子琴。

四、实验内容1.数字信号发生器的制作(1)搭建GUI界面图形用户界面(Graphical User Interface,简称GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。

与早期计算机使用的命令行界面相比,图形界面对于用户来说在视觉上更易于接受。

Matlab环境下的图形用户界面(GUI)是由窗口、光标、按键、菜单、文字说明等对象(Objects)构成的一个用户界面。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一数字信号发生器和电子琴制作一、实验目的1.熟悉matlab的软件环境,掌握信号处理的方法,能在matlab的环境下完成对信号的基本处理;2.学会使用matlab的GUI控件编辑图形用户界面;3.了解matlab中一些常用函数的使用及常用运算符,并能使用函数完成基本的信号处理;二、实验仪器计算机一台,matlab R2009b软件。

三、实验原理1.数字信号发生器MATLAB是矩阵实验室(Matrix Laboratory)的简称,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB 和Simulink两大部分。

已知的常用正弦波、方波及三角波,可以通过matlab自带的函数实现,通过改变函数的幅值、相位和频率可以得到不同的信号。

正弦信号:y=A*sin(2*pi*f*t);方波信号:y=A*square(2*f*pi*x+c);三角波信号:y=A*sawtooth(2*pi*f*x+c);2. 电子琴电子琴的每个音阶均对应一个特定频率的信号,通过调用数字信号发生器产生一系列指定的频率的声音,从而达到虚拟的电子琴的功能。

界面中包含1、2、…、7共 7 个琴键,鼠标按下时即发声,松开时发声停止。

同时能够产生正弦波、方波、三角波等常见的波形的数字信号,然后将数字信号写入声卡的缓冲区,最后由声卡播放出相应的声音。

已知音乐的七个音阶的主频率分别是131Hz、147Hz、165Hz、175Hz、196Hz、220Hz和247Hz,分别构造正弦波、方波和三角波,可以组成简单的电子琴。

四、实验内容1.数字信号发生器的制作(1)搭建GUI界面图形用户界面(Graphical User Interface,简称GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。

与早期计算机使用的命令行界面相比,图形界面对于用户来说在视觉上更易于接受。

Matlab环境下的图形用户界面(GUI)是由窗口、光标、按键、菜单、文字说明等对象(Objects)构成的一个用户界面。

用户通过一定的方法(如鼠标或键盘)选择、激活这些图形对象,使计算机产生某种动作或变化,比如实现计算、绘图等。

MATLAB的用户,在指令窗中运行demo 打开那图形界面后,只要用鼠标进行选择和点击,就可产生丰富的内容。

利用GUI控件中自带的按钮,根据需要组成如下图1所示的数字信号发生器的Gui界面。

图1 数字信号发生器的GUI界面(2)编写M文件搭建好GUI界面后,点击“保存”按钮,系统将自动生成M文件与Fig文件各一个,并且M文件内部已经按照GUI界面中组件的类别,分别自动生成了相应的模块调用函数。

根据需需要,我们对生成的各个函数进行补充,完成函数功能的实现及各个函数的调用关系。

本次实验主要对控件的回调函数(callback)下写入相应的程序,该程序相当于一个将前后面板连接起来的纽带,在数字信号生成中作用很大。

下面这段程序(仅重要部分)实现了函数根据用户的输入生成不同的正弦波、三角波及方波,最终将波形显示在坐标轴1上。

其中,在本例中slider1是改变幅值的滑移按钮,当用户在输入一个新的幅值时,A为对应幅值变量,发生相应改变,并判断选择的是何种波型,然后对相应的波型的幅值进行修改,最终通过绘图函数的调用将新波显示在图上。

同理,当我们逐渐改变频率和相位时,波形也会对应发生变化,在此不再赘述。

function slider1_Callback(hObject, eventdata, handles) ................................global a AstrA=get(handles.edit1,'string');A=str2double(strA);switch acase'正弦波'x=0:0.001:1;y1=A*sin(2*f*pi*x+c);plot(x,y1);case'三角波’x=0:0.001:1;y2=A*sawtooth(2*pi*f*x+c);plot(x,y2);case'方波'x=0:0.001:1;y3=A*square(2*f*pi*x+c);plot(x,y3);case'Ëæ»úÐźÅ'x=0:0.001:1;y4=rand(size(2*pi*f*x+c));plot(x,y4);end..............同时为了精确到达某一幅值,本实验搭建了文本编辑框实现对幅值,频率和相位的精确输入,所以在编辑框显示具体数值的基础上可以加入滚动条来调节幅值,频率和相位,这样会使界面更加人性化也更加好操作。

设计思路是在滚动条回调函数下将滚动条与文本编辑框联系连接起来,以实现通过滚动条就能调节幅值,频率和相位的目的。

在滚动条的回调函数slider1下将二者联系起来的程序如下所示:global a A f c x y1 y2 y3;strA=get(handles.edit1,'string');strf=get(handles.edit2,'string');strc=get(handles.edit3,'string');A=str2double(strA);f=str2double(strf);c=str2double(strc);axes(handles.axes1);str=get(hObject,'Value');set(handles.edit1,'string',str);......继续完善其他函数的填写,可以完成数字信号发生器的M文件编写,详细的M文件见附件。

(3)实验结果展示图2. 正弦波01图3 正弦波02图4. 正弦波03图5 正弦波04图6 方波图7 三角波图8 随机信号2. 电子琴的制作(1)搭建GUI界面Matlab的数据采集工具箱(DAT)提供了一系列的函数和命令来实现实时模拟信号的输出, 通过调用这些函数和命令可以直接控制声卡输出虚拟信号。

只需要一台带有普通多媒体声卡并安装了Matlab 软件的计算机就可以满足要求实现虚拟信号的输出, 系统结构简单方便。

为了基于matlab的GUI实现七音符电子琴并附加音量调节功能,可以搭建GUI面板如图所示:图9 电子琴的GUI界面(2)编写M文件根据网上资料,可以方便地查询得到七个音阶的发音频率,分别是131Hz,147Hz,165Hz,175Hz,196Hz,220Hz,247Hz。

所以,只要在7个pushbutton的callback下按频率分别写入这七种正弦波,并通过声卡进行播放即可。

Pushbutton下的回调函数程序(这里以pushbutton1为例):global a;axes(handles.axes1);a=get(handles. popupmenu1,'value')if a==1Fs = 44100;strA=get(handles.edit1,'string'); A=str2double(strA);str=get(handles.slider1,'Value'); set(handles.edit1,'string',str); dt = 1.0/Fs;t = 0:dt:0.1;y = A*sin(2*pi*131*t);plot(t,y);wavplay(y,Fs);axis([0 0.1 -100 100]);endif a==2Fs = 44100;strA=get(handles.edit1,'string'); A=str2double(strA);str=get(handles.slider1,'Value'); set(handles.edit1,'string',str); dt = 1.0/Fs;t = 0:dt:0.1;y = A*sawtooth(2*pi*131*t);plot(t,y);wavplay(y,Fs);axis([0 0.1 -100 100]);endif aa==3Fs = 44100;strA=get(handles.edit1,'string'); A=str2double(strA);str=get(handles.slider1,'Value'); set(handles.edit1,'string',str);dt = 1.0/Fs;t = 0:dt:0.5;y = A*square(2*pi*131*t);plot(t,y);wavplay(y,Fs);axis([0 0.1 -100 100]);end(3)实验结果展示由于电子琴的实验结果是声音,难以用文字表达,在下面仅用几张图片展示一下结果,详见附件。

图10电子琴演奏时的效果01图11 电子琴演奏时的效果05图12 电子琴演示效果五、试验体会心得通过本次实验,掌握了GUI界面的搭建,对matlab中常见的函数有了深刻的认识。

在学习中发现matlab是个很强大的软件,可惜自己对它的认识太少,以后还得自己学习。

同时发现自己做的电子琴没有人家网上做的好,音质较为粗糙,还亟待改进,也为自己的学习增加了新鲜感,但是对数字信号的处理有了实践性的认识,比仅从考试中学到的知识要深刻很多。

相关文档
最新文档