当前位置:文档之家› 基于FPGA的音乐硬件演奏电路

基于FPGA的音乐硬件演奏电路

基于FPGA的音乐硬件演奏电路
基于FPGA的音乐硬件演奏电路

基于FPGA的音乐硬件演奏电路设计

李宁

(渭南师范学院物理与电气工程学院电气工程及其自动化2010级3班)

摘要:本设计是一种基于FPGA的音乐硬件演奏电路,该乐曲演奏电路是通过数控分频器电路控制FPGA芯片的某个引脚输出音符所对应频率的方波,接上扬声器就能发出各音符的音调,并且准确地控制乐曲中每个音符的持续时间,使乐曲能够完整并且连续的播放出来。在此基础上加上数码管,将音符通过数码管显示出来。该设计可用于生活的各个方面,比如手机铃声、mp3等,提高人们的生活质量。

关键词:FPGA;音乐硬件演奏电路;VerilogHDL语言设计;QUARTUS II 9.0;EDA 技术

音乐硬件演奏电路已广泛应用于我们生活的各个角落,比如mp3,手机铃声等,为我们的生活带来了乐趣,同时也说明了现在的电子产品越来越发达。因此根据国家专业教学委员会对教育机构的要求,为了培养适应我国21世纪国民经济发展需要的电子设计人才,同时基于国家教委面向21世纪电工电子课程体系改革和电工电子工科教学基地建设两项教学改革研究成果,要求高等学校学生能够自己动手完成简单数字器件的设计。这不但反应了我国当前在电子电路的实验教学体系、内容和方法上的改革思路和教学水平的提高,更重要的是在加强以传统电子设计方法为基础的工程设计训练的同时,使学生能够尽快掌握现代电子设计自动化技术的新方法、新工具和新手段,系统的、科学的培养了学生的实际动手能力、工程设计能力、创新能力,提高了学生的学习与设计兴趣。本次设计在EDA开发平台QUARTUS II9.0上利用verilog HDL语言设计数控分频器电路,采用FPGA驱动小扬声器,利用数控分频的原理设计音乐硬件演奏电路,以“送别”为例,控制输出到扬声器的激励信号的频率的高低和持续的时间,就可以使扬声器发声,同时用数码管实现音符的显示。

1 EDA技术介绍及其发展

1.1 EDA技术的介绍

EDA是电子设计自动化(Electronic Design Automation)缩写,是90年代初从CAD(计算机辅助设计)、CAM(计算机辅助制造)、CAT(计算机辅助测试)和CAE(计算机辅助工程)的概念发展而来的。EDA技术就是以计算机为工作平台,以EDA软件工具为开发环境,以PLD器件或者ASIC专用集成电路为目标器件设计实现电路系统的一种技术。自动地完成逻辑编译、化简、分割、综合及优化、布局布线、仿真以及对于特定目标芯片的适配编译和编程下载等工作。

1.2 EDA技术的发展

EDA技术分为三个阶段。

(1)七十年代为CAD阶段,人们开始用计算机辅助进行一些模拟和预测、简单版图的绘制、PCB布局布线,取代了手工操作,产生了计算机辅助设计的概念。

(2)八十年代为CAE阶段,与CAD相比,除了纯粹的图形绘制功能外,在设计方法学、设计工具集成化方面取得了长足的进步,并且通过电气连接网络表将两者相结合,实现了工程设计。CAE的主要功能是:原理图输入,逻辑仿真,电路分析,自动布局、布线,PCB后分析。

(3)九十年代为EDA阶段,EDA技术已经成为电子设计的普遍工具,EDA 的使用包括电子系统开发的全过程以及设计所涉及到的各个方面。21世纪后,EDA技术得到更快更好的发展,开始步入了一个新的时代。

1.3 EDA技术的发展趋势

目前的EDA产业正处在一场大变革的前夕,正因为更低成本、更低功耗的要求和产品上市压力,使得IC供应商提供采用0.13μm或以下的千万门级的系统芯片,这就更加迫使EDA供应商提供全新的设计工具和方法。然而,这些新的需求为当代EDA工具和设计方法带来了不少新的挑战与机会。半导体工艺的每一次跃升都促使EDA工具改变自己,以适应工艺的发展;反过来EDA工具的进步又推动设计技术的发展。可以说EDA工具是IC设计产业的背后推手。系统芯片(SOC)正在迅速地进入主流产品的行列。由此引发的“芯片就等于整机”的现象,将对整个电子产业形成重大的冲击。种种迹象表明,整个电子产业正在酝酿着一场深刻的产业重组,这将为许多新兴的企业提供进入这一行业的最佳。

2 乐曲演奏电路简介及基本原理

乐曲演奏广泛用于手机铃声、集团电话及智能仪器仪表设备中。实现方法有许多种,在众多的实现方法中,以纯硬件完成乐曲演奏且随着FPGA集成度的提高,价格下降,EDA设计工具更新换代,功能日益普及与流行,使用这种方案的应用越来越多。PFGA预装了很多已构造好的参数化库单元LPM器件,通过引入支持LPM的EDA软件工具,设计者可以设计出结构独立而且硅片的使用效率非常高的产品。

硬件电路的发声原理,每个乐曲都是由一连串的音符所组成的,想要使乐曲发生,就要确定该乐曲所对应的音符,每个音符都对应相应的频率,只要控制FPGA芯片的某个引脚输出音符所对应频率的方波,接上扬声器就能发出各音符的音调。然而想要准确地演奏一首音乐,仅让扬声器发声是不够的,还必须准确

地控制乐曲中每个音符的持续时间,着两者就是乐曲能够连续演奏的两个关键因素。

3 方案设计与比较

3.1 设计内容

用FPGA器件驱动蜂鸣器演奏“送别”片段,一首乐曲包含三个要素:乐曲声音的频率,发音时间的长短,停顿的时间。按照图1乐谱,设计相应电路控制speaker信号的方波频率,某一频率持续时间长短,各频率间间隔大小,就可以推动蜂鸣器演奏乐曲。

图1 “送别”片段乐谱

3.2 设计方案比较

方案一: 由单片机AT89S52来设计实现乐曲演奏电路。外围电源使用+5V电源供电,时钟由12MHz的晶振产生,通过按键的状态来检测乐曲演奏的状态,中央处理器由AT89S52单片机来完成,乐曲演奏状态由七段数码管来模拟。这种方案结构简单,比较易掌握,各部分电路实现起来野非常容易,在传统的乐曲演奏设计中应用也较为广泛。其原理框图如图2。

图2 单片机乐曲演奏原理图

方案二:基于现场可编程逻辑门阵列FPGA,通过EDA技术,采用VerilogHDL硬件描述语言实现乐曲演奏电路设计。程序设计思想为:1、用频电路产生不同频率方波;2、利用计数器实现speaker信号频率选择,某一频率持续时间长短,各频率间间隔大小。其框图如图3。

图3 乐曲演奏电路原理框图

3.3 方案论证

通过方案一、二的比较,可以看出方案一的设计使用的分立元件电路较多,因此会使电路调试困难度增加,且电路的不稳定性也会随之增加;而采用FPGA 芯片实现该电路,在整体性上较方案一好,在信号的处理和整个系统的控制中,方案二也能大大缩减电路的体积,提高电路的稳定性并且系统的调试周期也能大大缩短。由于它们完全不同的工作原理,一般来讲,同样的逻辑,基于FPGA设计比基于单片机设计快很多。单片机是基于指令工作的,单片机的时钟驱动着程序一步步的执行。而基于FPGA则是把相应的逻辑“暂时”固化为硬件电路,而后的不响应速度就是电信号从一个管脚到另一个管脚的传播速度,同时电信号也要在芯片内进行一些栅电容的充放电动作,但这些动作都是非常非常快的。

3.4 方案选择

从目前的EDA技术来看,其特点是应用广泛、使用普及、软件功能强大。在ASIC和PLD器件方面,向高密度、超高速、低电压、低功耗方向发展。当今社会人们对低故障、高实时、高可靠、高稳定性能更加青睐,综合本设计的要求以及以上比较的情况,我们选择基于FPGA的乐曲演奏电路的设计方案。

4 特殊器件的介绍

4.1 CPLD器件介绍

CPLD是Complex Programmable Logic Device的缩写,即复杂可编程逻辑器件。它是有最早的PLD器件发展形成的高密度可编程逻辑器件,它的性能好,使用方便。CPLD是基于与或阵列结构的,多采用EEPROM或FLASH工艺制作,配置数据掉电后不会丢失。用户可根据自己的需要进行逻辑功能的构造。

许多公司都开发出了CPLD可编程逻辑器件。比较典型的就是Altera、

Lattice、Xilinx世界三大权威公司的产品。如Altera公司的MAXII器件,就是其极具代表性的一类CPLD器件,是有史以来功耗最低、成本最低的CPLD。MAX II CPLD基于突破性的体系结构,在所有CPLD系列中,其单位I/O引脚的功耗和成本都是最低的。

4.2 FPGA器件的介绍

FPGA(Field-Programmable Gate Array)可以达到比PLD更高的集成度,它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展起来的,具有更复杂的布线结构和逻辑实现。PLD器件和FPGA的主要区别在于PLD是通过修改具有固定内连电路得逻辑功能来进行编程,而FPGA是通过修改一根或多根分割宏单元的基本功能块的内连线的布线来进行编程。它一般由可嵌入式阵列块(EAB)、逻辑阵列块(LAB)、快速互联通道(Fast Track)、IO单元(IOE)组成。由于FPGA是基于查找表(LUT)结构的器件,且每个LAB由10个LE组成,一个LE由LUT和寄存器组成,适合于时序逻辑电路的设计。

4.3 CycloneEP1C12Q240C8器件

EP1C12Q240C8采用基于1.5V,130nm及全层铜SRAM工艺其密度增加至20060个逻辑单元(LE)RAM增加至288KB。它不但具有锁相环、SDR、DDR 和RAM所需的专用双数据率(DDR)接口,而且具有系统可编程性。其被动型的配置方式是在上电后由计算机通过编译后产生SOF文件,使用专用的下载电缆配置电路。其主动型的配置是在上电后由专门的可编程配置电路自动对EP1C12Q240C8进行配置。

5 功能模块设计与说明

本设计由FPGA(现场可编程门阵列)作为控制芯片,通过VreilogHDL硬件描述语言设计,运用自顶而下的设计思想,按功能逐层分割实现层次化的设计。总体设计方案为(1)用分频电路产生不同频率方波;(2)利用计数器实现speaker 信号频率的选择,某一频率持续时间长短,各频率间间隔大小。下面介绍主要模块的功能及作用。

5.1 稳压电源电路

该稳压电路的作用是当电网电压波动、负载和温度变化时,维持输出直流电压稳定。该电路可为晶振电路以及扬声器提供+3.3V的稳定电压,驱动器件工作。其原理图如图4所示。

图4 稳压电源电路

5.2 有源晶振电路

采用有源晶振作为时钟信号源,它是一个完整的振荡器,其内部除了石英晶体外还有阻容软件和晶体管,有源晶振信号质量好,比较稳定,而且连接方式比较简单。主要是作为电源滤波,通常使用的为一个电容和电感组成的PI型滤波网络,输出端使用一个小阻值电阻过滤信号。串电阻可减小反射波,避免反射波叠加引起过冲,减少谐波以及阻抗匹配,减小回波干扰及导致的信号过冲。其原理图如图5所示。

图5 有源晶振电路

5.3 蜂鸣器电路

根据蜂鸣器输入信号频率的不同决定了其发声不同的原理,来设计一个由数控分频器控制BUZZER发声的简单实验。数控分频器的预置值由乐曲的音调的

值来决定,从而间接地控制BUZZER得发声频率。其原理图如图6所示。

图6 蜂鸣器电路

5.4 七段数码显示电路

七段数码管和普通发光二极管的发光原理一样,为了进行直观显示而将普通发光二极管封装在一起,能够进行16进制数字显示;有共阳极和共阴极之分,该设计采用共阴极的连接方式,在控制端输入高点平的时候发光,在输入低电平的时候就不发光。其原理电路图如图7所示。

图7 七段数码管显示电路

6 软件实现

通过至顶向下(TOP--DOWN)的设计方法,我们对电路的设计要求作了分析,从电路要实现的功能着手,逐层分析电路设计的步骤,再具体到各个模块的设计实现以及各模块实现方案的选择。

6.1 音调的控制

频率的高低决定了音调的高低。由音乐的十二平均率规定可计算出简谱中从低音1至高音1之间每个音名对应的频率如表1所示。

表1 简谱中音名与频率的关系

所有不同频率的信号都是从同一个基准频率分频而得到的。由于音阶频率都为非整数,而分频系数又不能为小数,因此要将计算得到的分频数四舍五入取整。实际的设计应在尽量减小频率误差的前提下取合适的基准频率。

该乐曲各音阶频率及相应的分频比如表6-2所示。为了减小输出的偶次谐波分量,最后输出到扬声器的波形应为对称方波。表2中的分频比就是从6MHz 频率二分频得到的3MHz频率基础上计算得出来的。

从表6-2可以看出,最大的分频系数为11468,故采用14位二进制计数器分频可满足需求。对于不同的分频系数,只要加载不同的预置数即可,对于乐曲中的休止符,只要将分频系数设为0,即初始值为16383即可,此时扬声器将不会发声。采用加载预置数实现分频的方法比采用反馈复零法节省资源,实现起来也容易些。

表2 各音阶频率对应的分频比及预置数

6.2 音长的控制

音符的持续时间根据乐曲的速度及每个音符的节拍数来确定。本次演奏的送别片段,最短的音符为四分音符,如果将全音符的持续时间设为1s的话,则只需要再提供一个4Hz的时钟频率即可产生四分音符的时长。根据乐曲演奏电路的原理框图可知,乐谱产生电路用来控制音乐的音调和音长。控制音调通过设计计数器的预制数来实现,预置不同的数值就可以使计数器产生不同频率的信号,从而产生不同的音调。控制音长是通过控制计数器预置数的停留时间来实现的,预置数停留的时间越长,该音符演奏的时间久越长。每个音符的演奏时间都是0.25s的整数倍,对于节拍较长的音符,如二分音符,在记谱时将该音名连续记录两次即可。

6.3 音符显示

音符显示电路用来显示乐曲演奏时对应的音符。可用数码管显示音符,实现演奏的动态显示。在该设计中,high[3:0]、med[3:0]、low[3:0]等信号分别用于显示高、中、低音音符。为了使演奏能够循环进行,需要另外设置一个时长计数器,当乐曲演奏完成时,保证能自动从头开始。

7 总结

7.1 心得体会

通过本次设计,对EDA技术、对电子技术、对quartusII、对verilog语言,我们都有了更深层次的认识理解,并从实践中感受到了EDA技术给我们设计者带来的方便。回顾此次课程的设计,从不断的寻找书籍,网络上的查找到设计电路,从制定好题目到完成整个设计,从理论到实践,我确实学到了很多东西。本次的设计让我明白了理论与实际相结合是很重要的,仅有所学的理论知识是远远不够的,我们应该把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正提高自己的实际动手能力和独立思考的能力。并且在实践中我们可以在查找资料的过程中学到许多以前在课本和课堂上所无法学到的并从中体会到许多的乐趣,从而丰富了自己,也学到了更多。

7.2 致谢

在这次的设计过程中我学到许多以前在课本上所无法学到的,特别是在本次课程设计的过程中,无论是学习方面,生活方面都得到了老师与几位同学的悉心指导与帮助,由于自己所学知识有限,有了你们的帮助才使得我我本次的设计非常圆满的完成,在此对你们表示我最衷心的感谢,谢谢你们!

(指导教师:苏变玲)

参考文献

[1] 康华光,陈大钦.电子技术基础数字部分(第四版)[M].高等教育出版社,1987:45-59.

[2] 潘松.EDA技术实用教程[M].北京:科学教育出版社,2006:2-38.

[3] 卢毅编著.VHDL与数字电路设计[M].北京.科技大学出版,2001:38-40.

[4] 侯佰亨,顾新编著.VHDL硬件描述语言与实际应用[M].西安.西安电子科社,2000:269-280.

[5] 谢自美. 电子线路设计(第二版)[M].华中科技大学出版社,2000:130-135.

[6](美)J.Bhasker.Verilog HDL硬件描述语言[M].机械工业出版社,2000:1-126.

[7] 王金明.数字系统设计与verilog HDL(第四版) [M].电子工业出版社,2011:264-270.

Based on the FPGA hardware music playing circuit design

LI Ning

(Class 3 Grade 2010,Department of Electrical engineering and its automation ,College of physics and electrical engineering,Weinan Normal University)

Abstract:The design is a kind of playing music hardware circuit based on FPGA,the music played by CNC divider circuit control an output pin of the FPGA chip of corresponding frequency square wave, connect the speaker can emit tones of each note and accurately control the duration of each note in the music, that music can play out of integrity and continuity. On this basis, combined with digital tube, will note through digital tube display. This design can be used in all aspects of life, such as mobile phone ring tones, mp3, etc., to improve the quality of people's lives.

Key words:FPGA; Playing music hardware circuit; VerilogHDL language design; QUARTUS II 9.0; EDA technology

乐曲硬件演奏电路设计

湖南人文科技学院 课程设计报告 课程名称:VHDL语言与EDA课程设计 设计题目:乐曲硬件演奏电路设计 系别:通信与控制工程系 专业:电子信息工程 班级:08电信二班 学生姓名: 王世伟朱彩虹 学号:08409249 08409231 起止日期:2011年06月13日~20年06月26日 指导教师:姚毅成继中

教研室主任:侯海良

摘要 乐曲演奏广泛用于自动答录装置、手机铃声、集团电话、及智能仪器仪表设备。实现方法有许多种,随着FPGA集成度的提高,价格下降,EDA设计工具更新换代,功能日益普及与流行,使这种方案的应用越来越多。如今的数字逻辑设计者面临日益缩短的上市时间的压力,不得不进行上万门的设计,同时设计者不允许以牺牲硅的效率达到保持结构的独特性。使用现今的EDA软件工具来应付这些问题,并不是一件简单的事情。FPGA预装了很多已构造好的参数化库单元LPM 器件。通过引入支持LPM的EDA软件工具,设计者可以设计出结构独立而且硅片的使用效率非常高的产品。 本课设在EDA开发平台上利用VHDL语言设计数控分频器电路,利用数控分频的原理设计乐曲硬件演奏电路,并定制LPM-ROM存储音乐数据,以“两只老虎”乐曲为例,将音乐数据存储到LPM-ROM,就达到了以纯硬件的手段来实现乐曲的演奏效果。只要修改LPM-ROM所存储的音乐数据,将其换成其他乐曲的音乐数据,再重新定制LPM-ROM,连接到程序中就可以实现其它乐曲的演奏。 关键词:FPGA;EDA;VHDL;音乐

目录 设计要求 (1) 1、方案论证与对比 (1) 1.1方案一 (1) 1.2方案二 (1) 1.3综合对比 (1) 2 乐曲演奏电路原理 (2) 2.1 音乐演奏电路原理 (2) 2.2 音符频率的获得 (2) 2.3 乐曲节奏的控制 (3) 2.4 乐谱发生器 (3) 2.5 乐曲演奏电路原理框图 (3) 3音乐硬件演奏电路的设计实现 (4) 3.1 地址发生器模块 (4) 3.1.1 地址发生器的VHDL设计 (4) 3.2 分频预置数模块 (6) 3.2.1 分频预置数模块的VHDL设计 (6) 3.3 数控分频模块 (8) 3.3.1 数控分频模块的VHDL设计 (8) 3.4 music模块 (10) 3.4.1 音符数据文件 (10) 3.5.2 LPM-ROM定制 (12) 3.6 顶层文件 (14) 4 时序仿真及下载调试过程 (16) 4.1 时序仿真图 (16) 4.2 引脚锁定以及下载 (17) 4.3调试过程及结果 (17) 5扩大乐曲硬件演奏电路的通用性 (18) 5.1 完善分频预置数模块的功能 (18) 设计总结与心得体会 (21) 参考文献 (22)

乐曲自动演奏器

乐曲自动演奏器 一、功能介绍 使用FPGA设计一个乐曲自动演奏控制器,将源程序下载至FPGA 器件中,实现乐曲自动演奏。(本设计的乐曲是《友谊天长地久》的部分音乐) 乐曲演奏的原理是:由于组成乐曲的每个音符的频率值(音调)及其持续时间(音长)是乐曲演奏的2个基本数据,因此需要控制输出到扬声器的激励信号的频率高低和该频率信号持续的时间。频率的高低决定了音调的高低,而乐曲的简谱与各音名的频率之间也有固定的对应关系。所有不同频率的信号都是从同一基准频率分频而得来的,由于音阶频率多为非整数,而分频系数又不能为小数,故必须将计算的到的分频数进行四舍五入取整,基准频率和分频系数应综合考虑加以选择,从而保证音乐不会走调。如在4MHz时钟下,中音1(对应的频率值为523.3Hz)的分频系数应该为:4000000/(2*523.3)=0xd3821,这样只需对系统时钟进行3821次分频即可得到所要的中音1。至于其他音符,同样可求出对应的分频系数,这样利用程序可以很轻松地得到对应的乐声。此外,在程序中设置了一个状态机,每250ms改变一个状态(即一个节拍),组成乐曲的每

个音符的频率值(音调)相对应于状态机的每一个状态。只要让状态机的状态按顺序转换,就可以自动播放音乐了。《友谊天长地久》乐谱见下表(注:N一拍;N两拍;N﹒四拍;N﹒八拍;N为乐谱。由于芯片存储容量太小,源程序只加入乐谱的一部分音符) 《友谊天长地久》乐谱 0 5. | 1. 1 1 3 | 2. 1 2 3 | 1. 1 3 5 | 6. 6 | 5. 3 3 1 | 2. 1 2 3 | 1. 6. 6 5 .. | 1. 6 | 5. 3 3 1 | 2. 1 2 6 | 5 . 3 3 5 | 6. 1 | 5. 3 3 1 | 2. 1 2 3 | 1. 6. 6 5 ..| 1. 0 ? 简谱中的音名与频率的关系

音乐播放器Java课程设计报告

课程设计报告课程设计题目:java音乐播放器 学生姓名: 专业:XXXXXXXXXXXXX 班级: 指导教师: 20XX年X月X日

一、课程设计目的 1、编程设计音乐播放软件,使之实现音乐播放的功能。 2、培养学生用程序解决实际问题的能力和兴趣。 3、加深java中对多媒体编程的应用。 二、课程设计的要求 利用学到的编程知识和编程技巧,要求学生: 1、系统设计要能完成题目所要求的功能,设计的软件可以进行简单的播放及其他基本功能。 2、编程简练,可用,尽可能的使系统的功能更加完善和全面 3、说明书、流程图要清楚。 三、课程设计内容 1、课程设计的题目及简介 音乐播放软件要求: 有图形界面,能播放MP3歌曲,有播放列表,前一首、后一首等常用播放软件功能。 2、设计说明 主要运用多媒体编程、图形界面、数组及循环进行设计,从而实现简单的音乐播放。 public MyMusicPlayer():实现窗口的成员方法 publi c void run():实现改变歌曲的播放状态的成员方法 public AudioClip loadSound(String filename):实现对声音的加载public void mouseClicked(MouseEvent e):实现对按钮的监听public void itemStateChanged(ItemEvent arg0):返回一个AudioClip 对象

3、程序流程图 4、程序清单 import java.awt.*; import javax.swing.*; import java.applet.*; import java.awt.event.*; import https://www.doczj.com/doc/877456395.html,.*; public class MyMusicPlayer extends Thread implements MouseListener,ItemListener{ JFrame MainFrame=new JFrame("MyMusicPlayer"); //定义主窗体 JLabel songname=new JLabel(); //用标签 显示状态 JButton last=new JButton(); JButton play=new JButton();

乐器演奏电路设计-vhdl

重庆交通大学计算机与信息学院设计性实验报告 班级:通信工程专业 07 级 2 班 姓名(学号): 实验项目名称:乐器演奏电路设计 实验项目性质:设计性 实验所属课程: VHDL 实验室(中心): 指导教师:徐雯娟 实验完成时间: 2009 年 12 月 13 日

一、实验目的 1,了解普通扬声器的工作原理; 2,了解QuartusII4.1中提供了宏功能元件库mega_lpm。 3,使用LPM_ROM参数化存储模块。 二、实验内容及要求 要求能够演奏出《友谊地久天长》的曲调或可另选一段较完整的曲调。 (扩展要求:能够从数码管上显示出当前曲调的简谱和频率) 三、实验原理 1,音符的频率: 可以由上图中的U3获得,这是一个数控分频器。由其clk 端输入一具有较高频率(这里是12MHz)的信号,通过U3分频后由SPKOUT输出,U3对clk 输入信号的分频比由11位预置数Tone[10..0]决定。SPKOUT的输出频率将决定每一音符的音调,这样,分频计数器的预置值Tone[10..0]与SPKOUT 的输出频率,就有了对应关系。

2,音符的持续时间: 须根据乐曲的速度及每个音符的节拍数来确定,图中模块U2的功能首先是为U3提供决定所发音符的分频预置数,而此数在U3输入口停留的时间即为此音符的节拍值。模块U2是乐曲简谱码对应的分频预置数查表电路,其中设置了乐曲全部音符所对应的分频预置数(一共8个),每一音符的停留时间由音乐节拍和音调发生器模块U1的clk的输入频率决定(如为4Hz),这8个值的输出由对应于U2的3位输入值Index[2..0]确定。3,乐谱的存储: 在U1中设置了一个7位二进制计数器(计数最大值为65),作为音符数据ROM 的地址发生器。这个计数器的计数频率若选为4Hz,即每一计数值的停留时间为0.25秒,恰为当全音符设为1秒时,四四拍的4分音符持续时间。随着U1中的计数器按4Hz的时钟速率作加法计数时,即随地址值递增时,音符数据ROM 中的音符数据将从ROM中通过ToneIndex[2..0]端口输向U2模块,乐曲就开始连续自然地演奏起来了。 四、实验仪器、材料 1,2MHZ和4HZ的信号源 2,ACEX1K EP1K30TC144—1芯片 3,扬声器 五、方案设计(设计性实验需要,综合性实验无该项) 1,音符的产生: 音符的产生是利用数控分频器模块SPKEAR对输入的时钟信号CLK400KHZ进行分频,预置数为TONE[10..0],然后分频得出频率为CLK/2*(2048- TONE[10..0]),通过控制输入预置数TONE[10..0]来达到不同的输出频率,以达到控制扬声器发出不同的声音。 例如:当设置预置数TONE[10..0]为1538时,输出SPKEAR频率为396,为低音5。 2,频率的分频: 由于实验给定信号源为12MHZ,不满足数控分频器模块SPKEAR对输入时钟信号的要求,遂其进行30分频(PULSE30),产生0.4MHZ的时钟信号。 3,预置数的产生:

乐曲硬件演奏电路设计-verilog

EDA技术及创新实践(设计报告) 题目:乐曲硬件演奏电路设计 姓名:漩涡鸣人 学院:数理与信息工程学院 专业:电子科学与技术 班级:112 学号:1886****20 指导教师:汤大智 2014年6 月

一、设计目的及要求 实验目的: 1、理解音乐演奏的原理及分频器的原理与使用。 2、了解怎样控制音调的高低变化和音长,从而完成乐曲的自动循环演奏。 3、培养自主学习、正确分析和解决问题的能力。 要求:利用分频器设计硬件乐曲演奏电路;能通过数码管显示动态效果;通过一个开关实现两首乐曲的切换;在音乐播放的同时,会有led流水灯的闪烁。 二、设计原理 乐曲演奏的原理是这样的:组成乐曲的每个音符的频率值(音调)及其持续的时间(音长)是乐曲能连续演奏所需的两个基本数据,因此只要控制输出到扬声器的激励信号频率的高低和持续的时间,就可以使扬声器发出连续的乐曲声。 图1、顶层模块图 其中,乐谱产生电路用来控制音乐的音调和音长。控制音调通过设置计数器的预置数来实现,预置不同的数值可以使计数器产生不同频率的信号,从而产生

不同的音调。控制音长是通过控制计数器预置数的停留时间来实现的,预置数停留的时间越长,则该音符演奏的时间越长。每个音符的演奏时间都是0.25s的整数倍,对于节拍较长的音符,如2分音符,在记谱时将该音名连续记录两次即可。 1、音调的控制 频率的高低决定了音调的高低。音乐的十二平均率规定:每两个8度音(如简谱中的中音1与高音1)之间的频率相差一倍。在两个8度音之间,又可分为12个半音,每两个半音的频率比为12√2。另外,音名A(简谱中的低音6)的频率为440Hz,音名B到C之间、E到F之间为半音,其余为全音[4]。由此可以计算出简谱中从低音1至高音1之间每个音名对应的频率,如表2所示: 表2简谱中的音名与频率的关系 所有不同频率的信号都是从同一个基准频率分频得到的。由于音阶频率多为非整数,而分频系数又不能为小数,故必须将计算得到的分频数四舍五入取整。若基准频率过低,则由于分频比太小,四舍五入取整后的误差较大;若基准频率

器乐演奏理论与实践

湖南师范大学硕士研究生入学考试自命题考试大纲 考试科目代码;[ 973 ] 考试科目名称:器乐演奏理论与实践 一、考试形式与试卷结构 1)试卷成绩、技法演唱及考试时间 试卷满分为150分,考试时间为180分钟。 2)答题方式:闭卷、笔试、技法演唱或演奏考试。 3)试卷内容结构及所占分值 音乐分析约占50分 器乐演奏约占100分 4)题型结构 分析论述题:共50分 1曲式图示,25分 2 分析报告,25分 器乐演奏:共100分 二、考试内容与考试要求 1)音乐分析部分 考试目标: 考察学生对于音乐发展逻辑的把握能力。其中包括:音乐陈述结构特点、曲式结构特点、调性布局特点等。在此基础上,能够用简明的曲式图示说明音乐的逻辑运动过程,并用文字就音乐本体的发展特点进行简要说明。 考试内容: 1、陈述结构类型:乐汇、乐句、乐段、乐段的扩展、群结构、自由结构 2、曲式结构类型:单一部曲式、单二部曲式、单三部曲式、复合再现三部曲式、变奏曲 式、回旋曲式、奏鸣曲式、回旋奏鸣曲式等。 2)器乐演奏部分(接收手风琴、扬琴、古筝、二胡方向考生) 请考生们准备四首大型器乐曲目: 三、参考书目: 杨儒怀著:《音乐的分析与创作》,人民音乐出版社2003年。

吴春福编著:《音乐考研复习精要曲式与作品分析》,湖南文艺出版社2007年。 谢福源编著:《音乐分析谱例集》,湖南文艺出版社2014年。 夏雄军著:《手风琴演奏与教学》2009年上海百佳出版社 李聪、葛佳麒主编:《流行手风琴曲集合-缤纷手风琴世界》上海音乐出版社2010.4 张自强、李遇秋,主编,任士荣、杨文涛、闪源昌、杨屹、李锐。《全国手风琴演奏(业余)考级作品集》[第九级、第十级](最新修订本),全国乐器演奏(业余)委员会、手风琴专家委员会编。文化艺术出版社,1998年3月 黄河主编《全国扬琴演奏考级作品集》人民音乐出版社2011年 桂习礼主编《跟名师学扬琴:学扬琴三十课》国际文化出版公司2003年 王中山编著:《全国古筝演奏考级作品集》(第九级,第十级)安徽文艺出版社2008.5 于红梅编著:《二胡音乐会曲集》华乐出版社2005 《全国二胡演奏考级作品集》人民音乐出版社2003 以及相关书目

Java音乐播放器源代码即结果显示

简单的音乐播放器一、程序代码: import java.io.File; import java.awt.BorderLayout; import java.awt.Button; import java.awt.Color; import java.awt.FileDialog; import java.awt.Frame; import java.awt.GridLayout; import https://www.doczj.com/doc/877456395.html,bel; import java.awt.List; import java.awt.Menu; import java.awt.MenuBar; import java.awt.MenuItem; import java.awt.MenuShortcut; import java.awt.Panel; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.sound.sampled.AudioFormat; import javax.sound.sampled.AudioInputStream; import javax.sound.sampled.AudioSystem; import javax.sound.sampled.DataLine; import javax.sound.sampled.SourceDataLine; public class Example extends Frame { private static final long serialVersionUID = 1L; boolean isStop = true;// 控制播放线程 boolean hasStop = true;// 播放线程状态

乐曲硬件演奏电路设计

江西理工大学应用科学学院 SOPC/EDA综合课程设计报告 设计题目:硬件音乐演奏电路 设计者:徐达健 学号:08040108131 班级:测控081 指导老师:王忠锋 完成时间:2011年01月07日 设计报告综合测试总评 格式(10)内容 (40) 图表 (10) 答辩 (20) 平时 (20)

目录 一:设计原理 (3) 二:总体框图 (5) 三:选择器件 (7) 四:功能模块: (8) 1:NoteTabs模块(程序仿真图) (8) 2:ToneTaba模块(程序仿真图) (11) 3:Speakera模块(程序仿真图) (12) 五:总体设计电路图 (16) 1.顶层设计的电路原理图(Songer模块) (16) 2.Songer模块的程序 (16) 3.Songer顶层文件的仿真图形 (17) 4、锁定引脚 (17) 5、下载验证 (18) 六:结束语 (19)

七:心得体会 (20) 八:参考文献 (21) 一、设计原理 1.音乐演奏电路原理 这种频率的振荡可以用不同音符的代码所控制,从而分出不同频率的振荡,它采用编程方式将各种音符的代码预先存的计算机的内存中,利用软件和一定硬件电路配合将存放的乐曲代码有节地进行演奏,产生电子音乐。乐曲中每个音符的发生频率及其持续时间是乐曲能够连续演奏的两个关键因素。 图1.1 音乐演奏电路原理图

2.音符频率的获得 多本文中选取750KHz的基准频率。由于现有的高频时钟脉冲信号的频率为12MHz,故需先对其进行16分频,才能获得750KHz的基准频率。对基准频率分频后的输出信号是一些脉宽极窄的尖脉冲信号(占空比=1/分频系数)。为提高输出信号的驱动能力,以使扬声器有足够的功率发音,需要再通过一个分频器将原来的分频器的输出脉冲均衡为对称方波(占空比=1/2),但这时的频率将是原来的1/2。表1中各音符的分频系数就是从750KHz 的基准频率二分频得到的375KHz频率基础上计算得到的。 由于最大分频系数是1274,故分频器采用11位二进制计数器能满足要求,乐曲中的休止符,只要将分频系数设为0,即初始值=2048-1=2047,此时扬声器不会发声。3.乐曲节奏的控制 本文中的梁祝乐曲,最小的节拍为1/4拍,若将1拍的时间定为1秒,则只需要提供一个4Hz的时钟频率即可产生1/4拍的时长(0.25秒),对于其它占用时间较长的节拍(必为1/4拍的整数倍)则只需要将该音符连续输出相应的次数即可。 计数时钟信号作为输出音符快慢的控制信号,时钟快时输出节拍速度就快,演奏的速度也就快,时钟慢时输出节拍的速度就慢,演奏的速度自然降低。 4.乐谱发生器 本文将乐谱中的音符数据存储在NoteTABS中,如“梁祝”乐曲中的第一个音符为“3”,此音在逻辑中停留了4个时钟节拍,即1秒的时间,相应地,音符“3”就要在NoteTABS 中连续的四个地址上都存储。当一个4Hz的时钟来时,相应地存入NoteTABS中一个音符数据。

乐曲演奏电路

成绩 指导教师: 日期: 《EDA技术与VHDL语言设计》 课程设计 题目: EDA技术及其应用 ——乐曲演奏电路 姓名:陈 院系:电子信息工程学系 专业:电子信息工程 班级:电信092 学号: 910706220 指导教师:余尤好 2011年12 月

EDA 技术及其应用 ——乐曲演奏电路 陈 (电子信息工程学系 指导教师:余尤好) 摘要:利用EDA 技术对乐曲演奏电路进行仿真,设计者在EDA 软件平台上,用硬件描述语言HDL 完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作.EDA 是电子设计自动化(Electronic Design Automation )的缩写,在20世纪90年代初从计算机辅助设计(CAD )、计算机辅助制造(CAM )、计算机辅助测试(CAT )和计算机辅助工程(CAE )的概念发展而来的。 关键词:EDA 技术 仿真 乐曲演奏 一、概述 1.1设计目的及要求 本实验课程的目的,旨在通过上机实验,使学生加深理解EDA 技术的基本方法,帮助和培养学生建立利用原理图和硬件描述语言进行电路设计的基本方法和利用EDA 工具软件(MAX+plus Ⅱ或Quartus7.2)设计简单数字电子系统的能力,为以后从事有关数字电子系统方面的设计和研究开发工作打下基础。 为使演奏能循环进行,需另外设置一个时长计数器,当乐曲演奏完成时,保证能自动从头开始演奏。 1.2实验前预习 每次实验前,学生须仔细阅读本实验指导书的相关内容,明确实验目的和实验内容;明确实验原理与步骤;复习与实验内容有关的理论知识;预习仪器设备的使用方法、操作规程及注意事项。 1.3设计环境 计算机 MAX+plusII10.2 二、设计过程及原理 2.1乐曲演奏的原理 组成乐曲的每个音符的频率值(音调)及其持续的时间(音长)是乐曲能连续演奏所需的两个基本数据,因此只要控制输出到扬声器的激励信号的频率高低和持续时间,就可以使扬声器发出连续的乐曲声。首先来看怎样控制音调的高低变化。如下图1是乐曲演奏电路的原理框图,其中,乐谱产生的电路用来控制音乐的音调和音长。控制音调通过设置计数器的预置数来实现,预置不同的数值就可以使计数器产生不同频率的信号,从而产生不同的音调。控制音长是通过控制计数器预置数的停留时间来实现的,预置数停留的时间越长,则该音符演奏的时间越长。每个音符的演奏时间都是0.25s 的整数倍,对于节拍长的音符,如2分音符,在记谱时将该音名连续记录两次即可。 6MHz 扬声器 4Hz 数码管 图1 乐曲演奏电路原理框图 反馈预置计数器 2分频器 曲谱产生 音符显示

音乐演奏器设计

山东工商学院 电子设计大赛 作品设计报告 题目:音乐演奏器设计 队名: XXXXXX 成员: XXXXXXXXXXXXXXXXXXXX 提交时间: 2016.7.1

目录 一、引言....................................................................................................................................... 3 二、方案比较以及选择................................................................................................................. 3 2.1 控制模块选择方案......................................................................................................... 3 2.2 按键选择方案.................................................................................................................. 4 三、硬件设计及说明..................................................................................................................... 4 3.1系统组成及总体框图...................................................................................................... 4 3.2元件简介........................................................................................................................... 5 3.3 各功能模块原理图.......................................................................................................... 6 四、软件设计................................................................................................................................. 8 4.1 音乐相关知识.................................................................................................................. 8 4.2用单片机实现音乐的节拍............................................................................................... 9 4.3用单片机产生音频脉冲................................................................................................... 9 五、系统调试................................................................................................................................. 9 5.1硬件调试........................................................................................................................... 9 5.2 软件调试...................................................................................................................... 10 六、总结..................................................................................................................................... 10 七、参考文献............................................................................................................................. 10附录1:元器件清单...................................................................................... 错误!未定义书签。附录2:电路原理图.................................................................................................................. 11

基于java的音乐播放器的设计源代码+实验报告

主类M U S I C P L A Y E R类:import .*; public class MusicPlayer implements ActionListener, Serializable,ControllerListener { private static final long serialVersionUID = 1L; private JFrame frame = null; private JPanel controlPanel = null; private JButton btnPlay = null; private JButton btnPre = null; private JButton btnNext = null; private JScrollPane listPane = null; private JList list = null; private DefaultListModel listModel = null; private JMenuBar menubar = null; private JMenu menuFile = null, menuAbout = null, menuMode = null; private JMenuItem itemOpen, itemOpens, itemExit, itemAbout; private JRadioButtonMenuItem itemSingle, itemSequence ,itemRandom; private ListItem currentItem = null; private static Player player = null; private boolean isPause = false; private int mode; private int currentIndex; private ImageIcon iconPlay = new ImageIcon("d:\\"); private ImageIcon iconPre = new ImageIcon("d:\\"); private ImageIcon iconNext = new ImageIcon("d:\\"); private ImageIcon iconPause = new ImageIcon("d:\\"); public static void main(String[] args) { new MusicPlayer(); } public MusicPlayer() { init(); } public void init() { frame = new JFrame(); ("音乐播放器"); (400, 300); (false); (null); ; menubar = new JMenuBar(); menuFile = new JMenu("文件");

电子琴实验报告乐曲硬件演奏电路设计本科论文

武夷学院实验报告 课程名称:逻辑设计与FPGA 项目名称: 乐曲硬件演奏电路设计 ______________ 姓名: 专业:微电子学 班级:14微电子 学号:04实验日期 、 实验预习部分: 1. 实验目的: 学习利用数控分频器设计硬件乐曲演奏电路。 2. 实验原理: 综合利用数控分频器、LPM ROMPLL 等单元电路设计硬件乐曲演奏电路。系统框图如图 1 所示由三个模块组成,分别为 NOTETABSTONETABASPEAKERA NOTETAB 模块(把教材图9-4中的CNT138T 和MUSIC 模块合在一起即为此模块)类似于弹 琴人的手指;TONETAB 模块类似于琴键;SPEAKER 类似于琴弦或音调发生器。 音符的频率由SPEAKER 模块(与教材图9-4中的SPKEF 模块对应)获得,这是一个数控分 频器。由其CLK 端输入一具有较高频率(12MHZ 的信号,通过SPEAKER 分频后由SPKOU 输出。 SPEAKER 对CLK 输入信号的分频比由11位预置数TONE[10..0]决定。SPKOU 的输出频率将决定 每一音符的音调,这样,分频计数器的预置值 TONE[10..0]与SPKOU 的输出频率就有了对应关 系。例如在TONETAB 模块(与教材图9-4中的F_COD 模块对应)中若取 TONE[10..0] = 1036, 图1硬件乐曲演奏电路结构框图 i.;E-Z

将发出音符“ 3”音的信号频率。

实验预习成绩(百分制)____________________ 实验指导教师签字:_________________________

乐器硬件演奏电路

EDA技术课程大作业 设计题目:乐器硬件演奏电路 院系:电子信息与电气工程学院 学生姓名: 学号:200902070018 专业班级: 2010 年12 月 4 日

乐曲硬件演奏电路 1. 设计背景和设计方案 1.1设计背景 目前,各领域的激烈竞争迫使人们不得不对办事效率格外重视,同时,这也是方便、高效的社会发展趋势之必要。随着科技发展及电子方面的成熟。数控分频器它成为这方面当之无愧的选择。本设计正是关于分频器在乐器硬件演奏电路系统的应用。与传统的纯硬件相比,简单有效,此设计可以适应多家可编程逻辑器件,便于组织大规模的系统设计;便于设计的复用继承和升级,具有广阔的应用前景。 1.2设计方案 该系统主要由NOTETABS,TONETABA,SPEAKERA三个模块组成,与利用微处理器CPU,MCU来实现乐曲演奏相比,以纯硬件完成乐曲演奏电路的逻辑要复杂的多,仅凭借传统的数字逻辑技术是难以实现的,因此,这里我们借助强大的EDA工具和VHDL硬件描述语言来完成。 模块SPEAKERA是数控分频器计数输出模块为一个11位的可预置数计数器。通过NOTETABS得到预置数,并对这些进行计数。由SPEAKERA的CLK端输入一具有较高的频率的信号,通过SPEAKERA分频后由SPKOUT输出,模块TONETABA的功能首先是为SPEAKERA提供决定所发音符的分频预置数,而此数在SPEAKERA输入口停留的时间即为此音符的节拍值。每一个音符的停留时间又由音乐节拍和音调发生器模块NOTETABS的CLK的输入频率决定,输出由对应于TONETABA的4位输入值INDEX[3..0]确定。输向TONETABA中INDEX[3..0]的输出值与持续的时间由模块NOTETABS决定。在NOTETABS中设置了一个8为二进制计数器作为音符数据ROM的地址发生器。这个计数器的计数频率选为4HZ,随着NOTETABS中的计数器按4HZ的时钟速率做加法计数时,即随地址值递增时,音符数据ROM中的音符数据将从ROM中通过TONEINDEX[3..0]端口输向TONETABA 模块,乐曲就开始连续自然地演奏起来了。 2. 方案实施 2.1 实现原理及算法的描述 首先,编写数控分频器计数输出模块SPEAKERA,其输入为clk, Tone ,输出为Spks,

音乐播放器Java课程设计报告

课程设计报告课程设计题目:java 音乐播放器 学生姓名: 专业:XXXXXXXXXXXXX 班级: 指导教师: 20XX 年X 月X 日

、课程设计目的 1、编程设计音乐播放软件,使之实现音乐播放的功能。 2、培养学生用程序解决实际问题的能力和兴趣。 3、加深java 中对多媒体编程的应用。 二、课程设计的要求 利用学到的编程知识和编程技巧,要求学生: 1、系统设计要能完成题目所要求的功能,设计的软件可以进行简单的播放及其他基本功能。 2、编程简练,可用,尽可能的使系统的功能更加完善和全面 3、说明书、流程图要清楚。 三、课程设计内容 1、课程设计的题目及简介 音乐播放软件要求: 有图形界面,能播放MP3 歌曲,有播放列表,前一首、后一首等常用播放软件功能。 2、设计说明 主要运用多媒体编程、图形界面、数组及循环进行设计,从而实现简单的音乐播放。 public MyMusicPlayer() :实现窗口的成员方法 publi c void run() :实现改变歌曲的播放状态的成员方法 :实现对声音的加载 public AudioClip loadSound(String ) :实现对按钮的监听 public void mouseClicked(MouseEvent e) public void itemStateChanged(ItemEvent arg0) :返回一个AudioClip 对象

3、程序流程图 * 出现界面 * 选择播放歌 曲 4、程序清单 import java.awt.*; import javax.swi ng.*; import java.applet.*; import java.awt.eve nt.* import java .n et.*; public class MyMusicPIayer exte nds Thread impleme nts MouseListe ner,ltemListe ner{ JFrame Mai nF rame =new JFrame( "MyMusicPlayer" ); // 定义主窗体 JLabel songname =new JLabel(); //用标签显示状态 JButton last =new JButto n(); JButt on play =new JButt on();

EDA乐曲硬件演奏电路设计 课程设计

摘要 乐曲演奏广泛用于自动答录装置、手机铃声、集团电话、及智能仪器仪表设备。实现方法有许多种,随着FPGA集成度的提高,价格下降,EDA设计工具更新换代,功能日益普及与流行,使这种方案的应用越来越多。如今的数字逻辑设计者面临日益缩短的上市时间的压力,不得不进行上万门的设计,同时设计者不允许以牺牲硅的效率达到保持结构的独特性。使用现今的EDA软件工具来应付这些问题,并不是一件简单的事情。FPGA预装了很多已构造好的参数化库单元LPM 器件。通过引入支持LPM的EDA软件工具,设计者可以设计出结构独立而且硅片的使用效率非常高的产品。 本课设在EDA开发平台上利用VHDL语言设计数控分频器电路,利用数控分频的原理设计乐曲硬件演奏电路,并定制LPM-ROM存储音乐数据,以“两只老虎”乐曲为例,将音乐数据存储到LPM-ROM,就达到了以纯硬件的手段来实现乐曲的演奏效果。只要修改LPM-ROM所存储的音乐数据,将其换成其他乐曲的音乐数据,再重新定制LPM-ROM,连接到程序中就可以实现其它乐曲的演奏。 关键词:FPGA;EDA;VHDL;音乐

目录 设计要求 (1) 1、方案论证与对比 (1) 1.1方案一 (1) 1.2方案二 (1) 1.3综合对比 (1) 2 乐曲演奏电路原理 (2) 2.1 音乐演奏电路原理 (2) 2.2 音符频率的获得 (2) 2.3 乐曲节奏的控制 (3) 2.4 乐谱发生器 (3) 2.5 乐曲演奏电路原理框图 (3) 3音乐硬件演奏电路的设计实现 (4) 3.1 地址发生器模块 (4) 3.1.1 地址发生器的VHDL设计 (4) 3.2 分频预置数模块 (6) 3.2.1 分频预置数模块的VHDL设计 (6) 3.3 数控分频模块 (8) 3.3.1 数控分频模块的VHDL设计 (8) 3.4 music模块 (10) 3.4.1 音符数据文件 (10) 3.5.2 LPM-ROM定制 (12) 3.6 顶层文件 (14) 4 时序仿真及下载调试过程 (16) 4.1 时序仿真图 (16) 4.2 引脚锁定以及下载 (17) 4.3调试过程及结果 (17) 5扩大乐曲硬件演奏电路的通用性 (18) 5.1 完善分频预置数模块的功能 (18) 设计总结与心得体会 (21) 参考文献 (22)

乐曲硬件演奏电路设计_verilog

EDA技术及创新实践(设计报告) 题目: 乐曲硬件演奏电路设计 姓名: 漩涡鸣人 学院: 数理与信息工程学院 专业: 电子科学与技术 班级: 112 学号: 1886****20 指导教师: 汤大智 2014年6 月

一、设计目的及要求 实验目的: 1、理解音乐演奏的原理及分频器的原理与使用。 2、了解怎样控制音调的高低变化和音长,从而完成乐曲的自动循环演奏。 3、培养自主学习、正确分析和解决问题的能力。 要求:利用分频器设计硬件乐曲演奏电路;能通过数码管显示动态效果;通过一个开关实现两首乐曲的切换;在音乐播放的同时,会有led流水灯的闪烁。 二、设计原理 乐曲演奏的原理是这样的:组成乐曲的每个音符的频率值(音调)及其持续的时间(音长)是乐曲能连续演奏所需的两个基本数据,因此只要控制输出到扬声器的激励信号频率的高低和持续的时间,就可以使扬声器发出连续的乐曲声。 图1、顶层模块图 其中,乐谱产生电路用来控制音乐的音调和音长。控制音调通过设置计数器的预置数来实现,预置不同的数值可以使计数器产生不同频率的信号,从而产生不同的音调。控制音长是通过控制计数器预置数的停留时间来实现的,预置数停留的时间越长,则该音符演奏的时间越长。每个音符的演奏时间都是0.25s的整数倍,对于节拍较长的音符,如2分音符,在记谱时将该音名连续记录两次即可。 1、音调的控制 频率的高低决定了音调的高低。音乐的十二平均率规定:每两个8度音(如简谱中的中音1与高音1)之间的频率相差一倍。在两个8度音之间,又可分为12个半音,每两个半音的频率比为12√2。另外,音名A(简谱中的低音6)的频率为440Hz,音名B到C之间、E到F之间为半音,其余为全音[4]。由此可以计

EDA_课程设计_乐曲演奏器

EDA课程设计题目:乐曲硬件演奏电路的VHDL设计 专业:通信工程 班级:通信082 姓名:谢振峰 学号:0810920213

一、 设计题目: 乐曲硬件演奏电路的VHDL 设计 二、 设计目标: 1)能够播放“梁祝”乐曲。 2)能够通过LED 显示音阶。 3)具有“播放/停止”功能,并在此基础上实现“按键演奏”的电子琴功能。 三、 设计原理: 1. 音乐基础知识 一段简单乐谱由音调和节拍组成,音调表示一个音符唱多高的频率,节拍表示一个音符唱多长的时间。音符的节拍我们可以举例来说明。 在一张乐谱中,我们经常会看到这样的表达式,如1=C 4 4 、1=G 43 …… 等等。以43 为例加以说明,它表示乐谱中以四分音符为节拍,每一小结有三拍。比如: 图1 其中1 、2 为一拍,3、4、5为一拍,6为一拍共三拍。1 、2的时长为四分音符的一半,即为八分音符长,3、4的时长为八分音符的一半,即为十六分音符长,5的时长为四分音符的一半,

即为八分音符长,6的时长为四分音符长。那么一拍到底该唱多长呢?一般说来,如果乐曲没有特殊说明,一拍的时长大约为400—500ms 。我们以一拍的时长为400ms为例,则当以四分音符为节拍时,四分音符的时长就为400ms,八分音符的时长就为200ms,十六分音符的时长就为100ms。 2.原理图框图: 图2.框图 3.原理图说明 音乐播放原理说明 音符的频率由数控分频器模块Speakera产生。ToneTaba模块从NoteTabs模块中输入的音符数据,将对应的分频预置数据传送给Speakera模块,并将音符数据送到LED模块显示音阶。 NoteTabs模块中包含有一个音符数据ROM,里面存有歌曲“梁祝”的全部音调,在此模块中设置了一个8位二进制计数器,作为音符数据ROM的地址发生器。这个计数器的计数频率为4Hz,即每一个数值的停留时间为0.25秒。例如:“梁祝” 乐曲的第一个音符为“3”,此音在逻辑中停留了4个时钟节拍,即1秒钟时间,所对应的“3”音符分频预置数为1036,在

相关主题
文本预览
相关文档 最新文档