乐曲硬件演奏电路设计

上传人:人*** 文档编号:432528341 上传时间:2023-07-29 格式:DOC 页数:8 大小:117KB
返回 下载 相关 举报
乐曲硬件演奏电路设计_第1页
第1页 / 共8页
乐曲硬件演奏电路设计_第2页
第2页 / 共8页
乐曲硬件演奏电路设计_第3页
第3页 / 共8页
乐曲硬件演奏电路设计_第4页
第4页 / 共8页
乐曲硬件演奏电路设计_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《乐曲硬件演奏电路设计》由会员分享,可在线阅读,更多相关《乐曲硬件演奏电路设计(8页珍藏版)》请在金锄头文库上搜索。

1、兰花草乐曲硬件演奏电路设计专业:电子信息工程 学号:2010012145 姓名:程营前言乐曲演奏广泛应用于自动答录装置,手机铃声,集团电话,及智能仪器仪表设备。实现方法有许多种,在众多的实验方法中,以纯硬件完成乐曲演奏,随着FPGA集成度的提高,价格下降,EDA设计工具更新换代,功能日益普及与流行,使这种方案的应用越来越多。本文分析了乐曲演奏设计中音符,频率,节拍与编码的相互关系,并在EDA开发工具MAX-plus II平台上,采用VHDL语言及原理图的设计方法,实现基于FPGA片上系统动态显示可选择多首乐谱的乐曲演奏器的设计,使乐曲演奏数字电路的设计得到了更好的优化,提高了设计得灵活性。目录

2、目录.1前言.11.题目分析.11.1功能要求.11.2性能指标22.设计方案.2 2.1顶层实体描述.3 2.2模块划分.3 2.3模块描述 2.3.1 Speakera模块.4 2.3.2 ToneTaba模块5 2.3.3 NoteTabs 模块6 2.4顶层电路图.83硬件测试及说明84.课程总结85.参考文献.81. 题目分析1.1功能要求(1)播放歌曲(2)简谱码输出显示在数码管显示(3)通过LED灯显示音阶1.2性能指标(1)乐曲硬件演奏电路的基本原理乐曲都是由一连串的音符组成,每一音符对应着一个确定的频率,按照乐曲的乐谱依次输出这些音符所对应的频率,就可以在扬声器上连续地发出各

3、个音符的音调。我们知道,组成乐曲的每个音符的发音频率值及其持续的时间是乐曲能连续演奏所需的两个基本要素,所以,掌握好一首歌曲的节奏,就能完整地演奏出来。(2)音符频率和乐曲节奏多个不同频率的信号可通过对某个基准频率进行分频器获得,本设计中选取750KHz的基准频率,由于clk端输入的是较高频率12MHz信号,可以对其进行16分频。计数时钟信号作为输出音符快慢的控制信号,时钟快时输出节拍速度就快,演奏的速度也就快,时钟慢时输出节拍的速度就慢,演奏的速度自然降低。简谱音符和频率关系如下表所示: 表1 各音阶频率对应的分频值音名分频系数初始值音名分频系数初始值音名分频系数初始值低音11274773中

4、音16371410高音13191728低音21135912中音25871480高音22771770低音310111036中音35051542高音32481799低音49701077中音44681579高音42331814低音59501197中音54251622高音52081839低音67571290中音63791668高音61851862低音76751372中音73301717高音716518822. 设计方案自顶向下的设计框图乐曲硬件电路设计数控分频器音乐节拍和音调发生器预置数查表电路2.1顶层实体描述当一个4Hz的时钟脉冲来到时,乐谱发生器模块输出一个音符数据给分频系数模块,分频系数模块输

5、出此音符相应的分频系数,将分频系数送给数控分频器模块,当12MHz的时钟脉冲来到时,数控分频器就根据分频系数输出相应的频率(即此音符所对应的发生频率)给扬声器,扬声器就可发出对应音符的声音来.连续的4Hz的时钟脉冲就将乐谱发生器里所存储的音符数据一个接一个的送给了分频系数模块,再经过数控分频模块,最后扬声器一个接一个的发出音符数据所对应的声音来。曲子也就流畅的播放出来了,当乐曲一遍演奏完成后,乐曲发生器能自动从头开始循环演奏。顶层设计程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY Songer ISPORT(CLK12MHz:IN STD_

6、LOGIC;CLK8Hz :IN STD_LOGIC; CODE1 : OUT STD_LOGIC_VECTOR (3 DOWNTO 0)HIGH1: OUT STD_LOGICSPKOUT: OUT STD_LOGIC);ENDARCHITECTURE one OF Songer ISCOMPONENT NoteTabsPORT(clk :IN STD_LOGIC; ToneIndex: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END COMPONENT;COMPONENT ToneTabaPORT(Index: IN STD_LOGIC_VECTOR (3 DOW

7、NTO 0);CODE: OUT STD_LOGIC_VECTOR (3 DOWNTO 0);HIGH: OUT STD_LOGIC;Tone: OUT STD_LOGIC_VECTOR (10 DOWNTO 0);END COMPONENT;COMPONENT Speakera PORT ( clk : IN STD_LOGIC;Tone : IN STD_LOGIC_VECTOR (10 DOWNTO 0);SpkS : OUT STD_LOGIC );END COMPONENT;SIGNAL TONE: STD_LOGIC_VECTOR (10 DOWNTO 0);SIGNAL Tone

8、Index: STD_LOGIC_VECTOR (3 DOWNTO 0);BEGINu1: NoteTabs PORT MAP (clk=CLK8HZ, ToneIndex= ToneIndex);u2: ToneTaba PORT MAP (Index = ToneIndex, Tone=Tone,CODE=CODE1,HIGH=HIGH1);u3: Speakera PORT MAP (clk=CLK12HZ, Tone= Tone, SpkS=SPKOUT);END;2.2模块划分主系统由三个模块组成,分别为Speakera模块、ToneTaba模块、NoteTabs模块。(1)Spea

9、kera是数控分频模块;(2)ToneTaba是分频预置数查找表电路模块;(3)NoteTabs音调发生器模块。2.3模块描述2.3.1 Speakera模块SpeakeraclkTone10:0SpkS Speakera模块实体图音符的频率可以由此模块获得,这是一个数控分频器,由其clk端输入一具有较高频率的信号,通过Speakera分频后由SPKOUT输出,由于直接从数控分频器中出来的输出信号是脉冲极窄的脉冲式信号,为了有利于驱动扬声器,需另加一个D触发器以均衡其占空比,但这时的频率将是原来的1/2。Speakera对clk输入信号的分频比由11位预置数Tone10.0决定。SPKOUT的

10、输出频率将决定每一音符的音调,这样,分频计数器的预置值Tone10.0与SPKOUT的输出频率就有了对应关系。例如在ToneTaba模块中若取Tone10.0=1036,将发出音符为“3”音的信号频率。程序如下LIBRARY IEEE;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY Speakera ISPORT ( clk : IN STD_LOGIC; Tone : IN STD_LOGIC_VECTOR (10 DOWNTO 0); SpkS : OUT STD_LOGIC )

11、;END;ARCHITECTURE one OF Speakera IS SIGNAL PreCLK, FullSpkS : STD_LOGIC;BEGINDivideCLK : PROCESS(clk) VARIABLE Count4: STD_LOGIC_VECTOR (3 DOWNTO 0) ; BEGINPreCLK11 THEN PreCLK =1; Count4:= 0000; ELSIF clkEVENT AND clk = 1 then Count4:=Count4+1;end if;END PROCESS;GenSpkS : PROCESS(PreCLK, Tone)- 11

12、位可预置计数器 VARIABLE Count11 : STD_LOGIC_VECTOR (10 DOWNTO 0); BEGIN IF PreCLKEVENT AND PreCLK = 1 THEN IF Count11 = 16#7FF# THEN Count11 := Tone ; FullSpkS = 1; ELSE Count11 := Count11 + 1; FullSpkS = 0; END IF;END IF;END PROCESS;DelaySpkS : PROCESS(FullSpkS)-将输出再2分频,展宽脉冲,使扬声器有足够功率发音 VARIABLE Count2 : STD_LOGIC;BEGINIF FullSpkSEVENT AND FullSpkS = 1 THEN Count2 := NOT Count2;IF Count2 = 1 THEN SpkS = 1;ELSE SpkS = 0; END IF;END IF;END PROCESS;END;2.3.2 ToneTaba模块ToneTabaIndex3:0HIGHCODE3:0Tone10:0

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

当前位置:首页 > 大杂烩/其它

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