硬件电子琴电路设计

合集下载

-用555制作简易电子琴

-用555制作简易电子琴

555简易电子琴电路制作一设计要求与任务1.学习调试电子电路的方法,提高实际动手能力。

2.了解由555定时器构成简易电子琴的电路及原理。

二总体框图、【模块功能】该电路包括按钮开关,定值电阻,555振荡器和扬声器三部分组成,1输入端:由八个按钮开关与各自的定值电阻串联在并联组成输入端2频率产生端:根据定值电阻的不同输入,由555产生不同的信号频率3扬声器端口: 接受信号频率发出特定的频率【设计方案】555定时器本实验采用两个555集成定时器组成简易电子琴。

整个电路由主振荡器,颤音振荡器,扬声器和琴键按钮等部分组成。

主振荡器由555定时器,七个琴键按钮S1~S7,外接电容C1、C2,外接电阻R8以及R1~R7等元件组成,颤音振荡器由555定时器,电容C5及R9、R10等元件组成,颤音振荡器振荡频率较低为64Hz,若将其输出电压U连接到主振荡器555定时器复位端4,则主振荡器输出端出现颤音。

按图接线后闭合不同开关即可令喇叭发出不同频率的声响,从而模拟出电子琴的工作。

三选择器件【实验器材】555定时器是一种中规模集成电路,外形为双列直插8脚结构,体积很小,使用起来方便。

只要在外部配上几个适当的阻容元件,就可以构成史密特触发器、单稳态触发器及自激多谐振荡器等脉冲信号产生与变换电路。

它在波形的产生与变换、测量与控制、定时电路、家用电器、电子玩具、电子乐器等方面有广泛的应用。

多谐振荡器的工作原理多谐振荡器是能产生矩形波的一种自激振荡器电路,由于矩形波中除基波外还含有丰富的高次谐波,故称为多谐振荡器。

多谐振荡器没有稳态,只有两个暂稳态,在自身因素的作用下,电路就在两个暂稳态之间来回转换,故又称它为无稳态电路。

由555定时器构成的多谐振荡器如图1所示,R1,R2和C是外接定时元件,电路中将高电平触发端(6脚)和低电平触发端(2脚)并接后接到R2和C的连接处,将放电端(7脚)接到R1,R2的连接处。

由于接通电源瞬间,电容C来不及充电,电容器两端电压uc为低电平,小于(1/3)Vcc,故高电平触发端与低电平触发端均为低电平,输出uo为高电平,放电管VT截止。

硬件电子琴电路模块方案设计

硬件电子琴电路模块方案设计

硬件电子琴电路模块方案设计一、引言在现代电子音乐和音乐教学中,电子琴作为一种重要的乐器,其电路设计模块方案对于音质和功能的实现至关重要。

本文将针对硬件电子琴的电路模块进行设计方案的探讨和分析。

二、电子琴基本原理电子琴是通过触摸电容器的方式来产生声音的电子乐器。

其基本原理是将触碰电容器时产生的电压信号转化为声音,通过数字信号处理和控制实现音符的发声和音色的调节。

三、硬件电子琴电路模块设计1. 键盘模块键盘模块是电子琴中最基本的部分,主要包括键盘、扫描电路和触发电路。

其设计需要考虑触摸的准确性和稳定性,以及声音的快速响应。

2. 音源电路音源电路是决定音色和声音质量的关键部分,包括振荡器、放大器和滤波器等。

设计时需考虑选择合适的集成电路和元件,以及调节参数来实现丰富的音色效果。

3. 控制模块控制模块是电子琴功能设置和音色调节的关键,包括按键控制、音色切换、音量调节等功能。

设计时需考虑电路稳定性和响应速度,以提供良好的操作体验。

4. 输出模块输出模块是将电子琴产生的声音信号转化为可听到的声音的部分,包括音箱、耳机接口和音频输出接口等。

设计时需考虑输出信号的清晰度和音质保真度。

四、电路模块整合与调试在设计完成各模块后,需要将各个电路模块整合起来,并进行功能调试和性能测试。

需要注意信号传输的稳定性和干扰抑制,以确保电子琴的正常使用和音质表现。

五、结论硬件电子琴的电路模块设计是实现音质和功能的重要环节,通过合理选择元件和参数设置,可以实现丰富的音色和稳定的声音表现。

本文基于键盘模块、音源电路、控制模块和输出模块等方面对电子琴的电路模块进行了设计方案的讨论,希望对相关技术人员提供一定的参考和指导。

以上就是关于硬件电子琴电路模块方案设计的相关内容,希望对您有所帮助。

以上是本文的初步构思,根据实际情况和要求,可以结合具体电子琴设计项目继续拓展内容。

简易电子琴电路的设计

简易电子琴电路的设计

1. 技术指标 (1)2. 设计方案及其比较 (1)2.1 方案一 (1)2.2 方案二 (3)2.3 方案比较 (6)3. 实现方案 (6)4. 调试过程及结论 (10)5. 心得体会 (16)6. 参考文献 (16)简易电子琴电路的设计1.技术指标设计一个玩具电子琴,设8个琴键,分别代表1、2、3、4、5、6、7、į八个不同音符,每按下一个琴键,扬声器发出一个音符的声音。

演奏时的音量和节拍可以调节。

2.设计方案及其比较2.1 方案一选用RC振荡电路和运算放大器构成简易电子琴电路。

RC振荡电路的具体电路为文氏桥正弦振荡电路。

电路原理图如下图1。

图1 简易电子琴电路原理图其中1C和按键电阻并联,2C和12R串联,两者共同构成RC串并联选频网络。

由于选频网络的相移为零,这样RC串并联选频网络送到运算放大器同相输入端的信号电压与输出电压同相,所以RC反馈网络形成正反馈,满足相位平衡条件,因而可以形成振荡。

由于振荡的能量是电源,激励信号源是电路中的噪声,它的频谱丰富,包含频率成分f;但由于噪声信号极其微弱,在振荡期间应使信号做增幅振荡,为此合理选择电阻使0ω信号就会通过正反馈而使得输出信号不断增大,使输出幅环路增益大于1,这样频率为0度越来越大,最后受电路中非线性元件的限制,使振荡幅度自动稳定下来,电路进入等幅振荡。

频率0f之外的信号由于不满足振荡平衡条件,将不会在输出信号中出现,RC选频网络实现了信号频率的选择功能。

按键电阻的选择:查阅资料得知八个音阶的频率如下表1:表1 八个音阶的频率由于1C的值确定为0.1uF,由公式:fπ2/1=(1)fRC0=并结合表一计算可得电阻阻值分别为(单位:欧姆):36kR3.1=(2)28R7.k2=(3)23R3.k3=(4)20kR4.4=(5)16kR2.5=(6)k13R1.6=(7)R3.10k7=(8)R1.9k8=(9)通过阻值选择电阻器件。

电路要求不仅能够振荡,而且能够稳幅。

EDA实验报告_硬件电子琴电路设计

EDA实验报告_硬件电子琴电路设计

EDA实验报告课程名称:EDA技术实验名称:硬件电子琴电路设计班级:姓名:指导老师:签名:一、实验目的学习利用数控分频器设计硬件电子琴实验。

二、实验仪器计算机一台;Quartus Ⅱ软件;U盘。

三、实验内容与步骤在Quartus Ⅱ完成音阶发生器模块TONE和数控分频器模块Speaker的设计,然后完成硬件电子琴顶层文件的设计,最后检查设计是否正确。

1、数控分频器Speaker(1)完整的VHDL程序描述LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY Speaker ISPORT ( clk1 : IN STD_LOGIC;Tone1 : IN INTEGER RANGE 0 TO 16#7FF#;SpkS : OUT STD_LOGIC );END;ARCHITECTURE one OF Speaker ISSIGNAL PreCLK , FullSpkS : STD_LOGIC;BEGINDivideCLK : PROCESS(clk1)VARIABLE Count4 : INTEGER RANGE 0 TO 15;BEGINPreCLK <= '0'; -- 将CLK进 11分频,PreCLK为C L 11K 6分频IF Count4 > 11 THEN PreCLK <= '1'; Count4 := 0;ELSIF clk1'EVENT AND clk1='1' THEN Count4 := Count4 + 1; END IF;END PROCESS;GenSpkS : PROCESS(PreCLK, Tone1)VARIABLE Count11 : INTEGER RANGE 0 TO 16#7FF#;BEGIN -- 11位可预置计数器IF PreCLK'EVENT AND PreCLK = '1' THENIF Count11=16#7FF# THEN Count11 := Tone1; FullSpkS <= '1'; ELSE Count11:=Count11 + 1; FullSpkS <= '0'; END IF; END IF; END PROCESS;DelaySpkS : PROCESS(FullSpkS) VARIABLE Count2 : STD_LOGIC; BEGINIF FullSpkS'EVENT AND FullSpkS = '1' THEN Count2 := NOT Count2; IF Count2 = '1' THEN SpkS <= '1'; ELSE SpkS <= '0'; END IF; END IF; END PROCESS; END;(2)模块图形符号及逻辑功能描述图1 数控分频器Speaker 模块DENAQPRE CLRA[3..0]B[3..0]OUT[3..0]ADDERA[10..0]B[10..0]OUT[10..0]ADDERA[10..0]B[10..0]OUTEQUALDENAQPRE CLRA[3..0]B[3..0]OUTLESS_THAND ENA QPRE CLRDQPRE ENA CLRDQ PRE ENA CLRSELDATAA DATABOUT0MUX21\DelaySpkS:Count2Add111' h001 --FullSpkSSpkS~reg0\GenSpkS:Count11[10..0]Count11~[10..0]clk1SpkSTone1[10..0]Add04' h1 --Equal011' h7FF --LessThan04' hB --\DivideCLK:Count4[3..0]图2 数控分频器Speaker 硬件电路2、端口TONE 的设计(1)完整的VHDL 程序描述 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; ENTITY Tone ISPORT ( Index : IN STD_LOGIC_VECTOR(7 DOWNTO 0); CODE : OUT INTEGER RANGE 0 TO 15; HIGH : OUT STD_LOGIC;Tone : OUT INTEGER RANGE 0 TO 16#7FF# );END;ARCHITECTURE one OF Tone ISBEGINSearch : PROCESS(Index)BEGINCASE Index IS -- 译码电路,查表方式,控制音调的预置数 WHEN "" => Tone <= 773; CODE <= 1; HIGH <= '0';WHEN "" => Tone <= 912; CODE <= 2; HIGH <= '0';WHEN "" => Tone <= 1036; CODE <= 3; HIGH <= '0';WHEN "" => Tone <= 1116; CODE <= 4; HIGH <= '0';WHEN "" => Tone <= 1197; CODE <= 5; HIGH <= '0';WHEN "" => Tone <= 1290; CODE <= 6; HIGH <= '0';WHEN "" => Tone <= 1372; CODE <= 7; HIGH <= '0';WHEN "" => Tone <= 1410; CODE <= 1; HIGH <= '1';WHEN OTHERS => Tone <= 2047; CODE <= 0; HIGH <= '0'; END CASE;END PROCESS;END;(2)模块图形符号及逻辑功能描述图3 tone模块图4 tone硬件电路3.顶层文件的设计将音阶发生器模块TONE和数控分频器模块Speaker打包之后,接下来进行顶层文件的设计。

4-0电子琴电路制作与调试

4-0电子琴电路制作与调试

3个10芯插座输出 个键信号,任一 个 芯插座输出 个键信号, 芯插座输出24个键信号 键按下, 键按下,对应的信号变为低电平
电子琴电路制作与调试
电子琴-琴键编码控制电路 电子琴 琴键编码控制电路
接EPROM地址输入口 地址输入口 接音符显示控制板
度音8键信号输入口 高8度音 键信号输入口 度音
度音8键信号输入口 中8度音 键信号输入口 度音
7种单片逻辑器件实验测 康芯科技 试板1块:74LS191、 、 X 74HC393、74LS48、 、 、 74HC148、74LS83、 、 、 74LS74、74HC139 、
K
W27C512一片
基于FPGA的 SOC单片式设 计电路 5个曲目自 动演奏硬件 电路:
1、梁祝 2、敖包相会 3、采茶舞曲 4、社会主义好 5、十送红军
数控分 频板 音频驱 动板 3通道音频 驱动板
电子琴完成24键模型电子琴单片式设计 电子琴 用FPGA完成 键模型电子琴单片式设计 完成
电子琴电路制作与调试
基于 FPGA 的 SOC 单片式 设计电 路 “梁祝” 单曲目 自动演 奏硬件 电路
基于传统逻 辑器件的 “板上系统 SOB”电子琴 电路模块
琴键编码 控制板 音符显示 译码板
时钟发生器 模块
74LS148优先编码器3片; 74LS244三态总线控制器2片; 74LS244 74LS02四二输入或非门1片 74LS02 74LS83四位全加器1片; 74LS48二十进制七段译码器1片; 74LS48 74LS00四二输入与非门1片; 74LS00 74HC04六反相器1片; 74HC04 74LS32四二输入或门1片; 74LS32 74HC139二四译码器1片; 74HC245八位总线驱动器1片; 共阴数码管1个,发光管3个 74HC393二4位二进制计数器1片; 20MHz有源晶体振荡器1片 74LS191可预置型加/减计数器2片; 74LS74 D型触发器22片; 74LS02四二输入或非门1片 74LS02 74HC04六反相器1片; 蜂鸣器1个,LED发光管1个 9013三极管1片 9013

简易电子琴电路的设计

简易电子琴电路的设计

目1.系统的概述 (2)1.1系统开发背景 (2)1.2系统开发意义 (2)1.3 EWB在数字电子电路综合课程设计中的应用 (2)2.555简易电子琴的设计 (4)2.1设计题目 (4)2.2 设计要求 (4)2.3.1 电路工作原理 (4)2.3.2 系统方框图 (5)2.3.3 电路原理总图(见附录一) (5)2.3.4 电路PCB图(见附录二) (5)2.3.5 电路PCB实物图(见附录三) (5)2.3.6 NE555单元模块 (5)2.3.7 LM386功放单元模块 (11)3.实验调试 (12)4.电路测试及测试结果 (12)5.总结 (12)6.元器件清单(见附录四) (13)7.参考文献 (13)附录一 (14)附录二 (15)附录三 (16)附录四 (17)1.系统的概述1.1系统开发背景随着电子技术的不断发展,模拟电子技术的缺点和局限性越发明显,模拟电子技术的不稳定性、易干扰性等大大限制了其应用,且有阻碍电子技术发展的趋势。

19世纪兴起的数字电路以其先天的便捷、稳定的优点在现代电子技术电路中占有越来越重要的地位。

数字电路与模拟电路相比有显而易见的稳定性。

近年来,数字电路又有了巨大的发展。

可编程逻辑器件(PAL、GAL等)的发展和普及最终使IC的设计面向了用户(这是模拟电路无法做到的),而这毫无疑问会给用户带来巨大的便捷,从而奠定它在电子电路中的对位。

随着集成技术的进一步提高,各种新技术的出现和应用,人类历史横跨数码时代向更进一步发展已出现在各大型相关企业的宏伟蓝图中。

新世纪里谁掌握了新技术谁就得到了获胜的资本,也仅仅是资本而矣。

新世纪里电子行业的发展速度令人窒息,闻名的摩尔定律更把许多人威吓在门外。

1.2系统开发意义555简易电子琴是一种用数字电路技术实现数字显示装置,与机械式数字显示装置相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。

实验硬件乐曲自动演奏电路实施方案

实验硬件乐曲自动演奏电路实施方案

验十硬件乐曲自动演奏电路设计1、实验目地:学习利用数控分频器设计硬件电子琴实验.实验仪器:PC机,操作系统为Windows2000/xp,Quartus II 5.1 设计平台,GW48系列SOPE/EDA实验开发系统.3、实验原理:本设计乐曲选取《梁祝》中化蝶部分,其简谱如图1所示.图1 《梁祝》中化蝶部分简谱组成乐曲地每个音符地发音频率值及其持续地时间是乐曲能连续演奏所需地2个基本要素,首先让我们来了解音符与频率地关系.乐曲地12平均率规定:每2个八度音(如简谱中地中音1与高音1)之间地频率相差1倍.在2个八度音之间,又可分为12个半音,每2个半音地频率比为.另外,音符A(简谱中地低音6)地频率为440Hz,音符B到C之间、E到F之间为半音,其余为全音.由此可以计算出简谱中从低音1至高音1之间每个音符地频率,如表1所示.表1 简谱中音符与频率地关系主系统由4个模块组成;例1-1是顶层设计文件,其内部有三个功能模块(如图2所示):Tone.VHD(例1-2)和Speaker.VHD(例1-3)及Notetabs.VHD(例1-4).模块TONE是音阶发生器,当4位发声控制输入INDEX中某一位为高电平时,则对应某一音阶地数值将从端口TONE输出,作为获得该音阶地分频预置值;同时由CODE输出对应该音阶简谱地显示数码,如‘5’,并由HIGH输出指示音阶高8度显示.由例6-28可见,其语句结构只是类似与真值表地纯组合电路描述,其中地音阶分频预置值,如Tone <= 1290是根据产生该音阶频率所对应地分频比获得地.图2 硬件电子琴电路结构模块SPEAKER中地主要电路是一个数控分频器,它由一个初值可预置地加法计数器构成,当模块SPEAKER由端口TONE获得一个2进制数后,将以此值为计数器地预置数,对端口CLK12MHZ输入地频率进行分频,之后由SPKOUT向扬声器输出发声.模块NOTETABS,用于产生节拍控制(INDEX数据存留时间)和音阶选择信号,即在NOTETABS模块放置一个乐曲曲谱真值表,由一个计数器地计数值来控制此真值表地输出,而由此计数器地计数时钟信号作为乐曲节拍控制信号,从而可以设计出一个纯硬件地乐曲自动演奏电路.试完成此项设计,并在EDA实验系统上地FPGA目标器件中实现之.5、实验内容:编译适配以上4个示例文件,给出仿真波形,最后进行下载和硬件测试实验.建议使用实验电路模式“3”(附图2-5),用短路帽选择“CLOCK9”地输入频率选择12MHz,此信号作为系统输入信号CLK12MHZ;CLK8HZ与clock2相接,接受4Hz频率;键8至键1 作为INDEX输入信号控制各音阶;选择数码管1显示琴音简谱码,发光管D1显示高8度.6、思考题1:例1-3中地进程DelaySpkS对扬声器发声有什么影响?7、思考题2:电路上应该满足哪些条件,才能用数字器件直接输出地方波驱动扬声器发声?8、实验报告:用仿真波形和电路原理图,详细叙述硬件电子琴地工作原理及其4个VHDL 文件中相关语句地功能,叙述硬件实验情况..附录;【例10-1】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY TOP IS -- 顶层设计PORT ( CLK12MHZ : IN STD_LOGIC;CLK8HZ : IN STD_LOGIC;CODE1 : OUTINTEGERRANGE 0 TO 15;HIGH1,SPKOUT : OUT STD_LOGIC);END;ARCHITECTURE one OF TOP ISCOMPONENT TonePORT ( Index : IN INTEGERRANGE 0 TO 15;CODE : OUTINTEGERRANGE 0 TO 15;HIGH : OUT STD_LOGIC;Tone : OUT INTEGER RANGE 0 TO 16#7FF# ); --11位2进制数 END COMPONENT;COMPONENT SpeakerPORT ( clk : IN STD_LOGIC;Tone1 : IN INTEGER RANGE 0 TO 16#7FF#; --11位2进制数 SpkS : OUT STD_LOGIC );END COMPONENT;component NotetabsPort ( clk :in std_logic;index0 : out INTEGERRANGE 0 TO 15);end component;SIGNAL Tone2 : INTEGERRANGE0 TO 16#7FF#;SIGNAL Indx: INTEGERRANGE 0 TO 15;BEGIN -- 安装U1, U2, U3u1 : Tone PORT MAP (Index=>Indx, Tone=>Tone2,CODE=>CODE1,HIGH=>HIGH1); u2 : Speaker PORT MAP (clk=>CLK12MHZ,Tone1=>Tone2, SpkS=>SPKOUT );u3 : Notetabs PORT MAP(clk=>CLK8HZ,Index0=>Indx);END;【例10-2】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY Tone ISPORT ( Index : IN INTEGERRANGE 0 TO 15;CODE : OUTINTEGERRANGE 0 TO 15;HIGH : OUT STD_LOGIC;Tone : OUTINTEGERRANGE0 TO 16#7FF# );END;ARCHITECTURE one OF Tone ISBEGINSearch : PROCESS(Index)BEGINCASE Index IS -- 译码电路,查表方式,控制音调地预置数 WHEN 0=>Tone <= 2047; CODE <= 0; HIGH <= '0';WHEN 1=>Tone <= 773; CODE <= 1; HIGH <= '0';WHEN 2=>Tone <= 912; CODE <= 2; HIGH <= '0';WHEN 3=>Tone <= 1036; CODE <= 3; HIGH <= '0';WHEN 5=>Tone <= 1197; CODE <= 5; HIGH <= '0';WHEN 6=>Tone <= 1290; CODE <= 6; HIGH <= '0';WHEN 7=>Tone <= 1372; CODE <= 7; HIGH <= '0';WHEN 8=>Tone <= 1410; CODE <= 1; HIGH <= '1';WHEN 9=>Tone <= 1480; CODE <= 2; HIGH <= '1';WHEN 10=>Tone <= 1542; CODE <= 3; HIGH <= '1';WHEN 12=>Tone <= 1622; CODE <= 5; HIGH <= '1';WHEN 13=>Tone <=1668; CODE <= 6; HIGH <= '1';WHEN 15=>Tone <= 1728; CODE <= 1; HIGH <= '1';WHEN OTHERS =>NULL;END CASE;END PROCESS;END;【例10-3】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY Speaker ISPORT ( clk : IN STD_LOGIC;Tone1 : IN INTEGER RANGE 0 TO 16#7FF#;SpkS : OUT STD_LOGIC );END;ARCHITECTURE one OF Speaker ISSIGNAL PreCLK , FullSpkS : STD_LOGIC;BEGINDivideCLK : PROCESS(clk) -- 将CLK进 11分频,PreCLK为C L 11K 6分频VARIABLE Count4 : INTEGERRANGE 0 TO 15;BEGINPreCLK <= '0';IF Count4 > 11 THEN PreCLK <= '1'; Count4 := 0;ELSIF clk'EVENT AND clk='1' THEN Count4 := Count4 + 1;END IF;END PROCESS;GenSpkS : PROCESS(PreCLK, Tone1)VARIABLE Count11 : INTEGERRANGE0 TO 16#7FF#;BEGIN -- 11位可预置计数器IF PreCLK'EVENT AND PreCLK = '1' THENIF Count11=16#7FF# THEN Count11 := Tone1; FullSpkS <= '1'; ELSE Count11:=Count11 + 1; FullSpkS <= '0';END IF;END IF;END PROCESS;DelaySpkS : PROCESS(FullSpkS)VARIABLE Count2 : STD_LOGIC;BEGINIF FullSpkS'EVENT AND FullSpkS = '1' THEN Count2 := NOT Count2;IF Count2 = '1' THEN SpkS <= '1';ELSE SpkS <= '0';END IF;END IF;END PROCESS;END;【例10-4】library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity Notetabs isPort ( clk: in std_logic; --系统时钟;键盘输入/自动演奏 index0 : out INTEGER RANGE 0 TO 15); --音符信号输出end NOTETABS;architecture Behavioral of Notetabs issignal count0:integer range 0 to 138;--changebeginmusic:process(clk) --此进程完成自动演奏部分曲地地址累加beginif clk'event and clk='1' thenif count0=138 then count0<=0;else count0<=count0+1;end if;end if;end process;com1:process(count0)begincase count0 is --此case语句:存储自动演奏部分地曲when 00 =>index0<=3;when 01 =>index0<=3;when 02 =>index0<=3;when 03 =>index0<=3;when 04 =>index0<=5;when 05 =>index0<=5;when 06 =>index0<=3;when 07 =>index0<=6;when 08 =>index0<=8;when 09 =>index0<=8;when 10 =>index0<=8;when 11 =>index0<=9;when 12 =>index0<=6;when 13 =>index0<=8;when 14 =>index0<=5;when 15 =>index0<=5;when 16 =>index0<=12;when 17 =>index0<=12;when 18 =>index0<=12;when 19 =>index0<=15;when 20 =>index0<=13;when 21 =>index0<=12;when 22 =>index0<=10;when 23 =>index0<=12;when 25 =>index0<=9; when 26 =>index0<=9; when 27 =>index0<=9; when 28 =>index0<=9; when 29 =>index0<=9; when 30 =>index0<=9; when 31 =>index0<=0; when 32 =>index0<=9; when 33 =>index0<=9; when 34 =>index0<=9; when 35 =>index0<=10; when 36 =>index0<=7; when 37 =>index0<=7; when 38 =>index0<=6; when 39 =>index0<=6; when 40 =>index0<=5; when 41 =>index0<=5; when 42 =>index0<=5; when 43 =>index0<=6; when 44 =>index0<=8; when 45 =>index0<=8; when 46 =>index0<=9; when 47 =>index0<=9; when 48 =>index0<=3; when 49 =>index0<=3; when 50 =>index0<=8; when 51 =>index0<=8; when 52 =>index0<=6; when 53 =>index0<=5; when 54 =>index0<=6; when 55 =>index0<=8; when 56 =>index0<=5; when 57 =>index0<=5; when 58 =>index0<=5; when 59 =>index0<=5; when 60 =>index0<=5; when 61 =>index0<=5; when 62 =>index0<=5; when 63 =>index0<=5; when 64 =>index0<=10; when 65 =>index0<=10; when 66 =>index0<=10; when 67 =>index0<=12;when 69 =>index0<=7; when 70 =>index0<=9; when 71 =>index0<=9; when 72 =>index0<=6; when 73 =>index0<=8; when 74 =>index0<=5; when 75 =>index0<=5; when 76 =>index0<=5; when 77 =>index0<=5; when 78 =>index0<=5; when 79 =>index0<=5; when 80 =>index0<=3; when 81 =>index0<=5; when 82 =>index0<=3; when 83 =>index0<=3; when 84 =>index0<=5; when 85 =>index0<=6; when 86 =>index0<=7; when 87 =>index0<=9; when 88 =>index0<=6; when 89 =>index0<=6; when 90 =>index0<=6; when 91 =>index0<=6; when 92 =>index0<=6; when 93 =>index0<=6; when 94 =>index0<=5; when 95 =>index0<=6; when 96 =>index0<=8; when 97 =>index0<=8; when 98 =>index0<=8; when 99 =>index0<=9; when 100=>index0<=12; when 101=>index0<=12; when 102=>index0<=12; when 103=>index0<=10; when 104=>index0<=9; when 105=>index0<=9; when 106=>index0<=10; when 107=>index0<=9; when 108=>index0<=8; when 109=>index0<=8; when 110=>index0<=6; when 111=>index0<=5;when 113=>index0<=3;when 114=>index0<=3;when 115=>index0<=3;when 116=>index0<=8;when 117=>index0<=8;when 118=>index0<=8;when 119=>index0<=8;when 120=>index0<=6;when 121=>index0<=8;when 122=>index0<=6;when 123=>index0<=5;when 124=>index0<=3;when 125=>index0<=5;when 126=>index0<=6;when 127=>index0<=8;when 128=>index0<=5;when 129=>index0<=5;when 130=>index0<=5;when 131=>index0<=5;when 132=>index0<=5;when 133=>index0<=5;when 134=>index0<=5;when 135=>index0<=5;when 136=>index0<=0;when 137=>index0<=0;when 138=>index0<=0;when others => null;end case;end process;end Behavioral;版权申明本文部分内容,包括文字、图片、以及设计等在网上搜集整理.版权为个人所有This article includes some parts, including text, pictures, and design. Copyright is personal ownership.Zzz6Z。

学士学位论文—-电子琴实验报告乐曲硬件演奏电路设计

学士学位论文—-电子琴实验报告乐曲硬件演奏电路设计

武夷学院实验报告课程名称:逻辑设计与FPGA 项目名称:乐曲硬件演奏电路设计姓名:专业:微电子学班级: 14微电子学号: 04 实验日期实验预习成绩(百分制)实验指导教师签字:二、 实验过程记录部分:1.实验过程记录:1.1 输入信号锁相环PLL0调节: 图2.1 锁相环 管脚clk_50m (设置为B12)接入FPGA 内部的50mhz 的时钟信号,C0口为得到数控分屏器模块的输入时钟750KHZ ,将分频比设置为1/67,即50000000HZ/67=74.6K约等于75K ;c1口为2KHZ (配合下级的500分频模块),设置为:c1=50000000HZ/25000=2KHZ 。

1.2 500分频模块count500(即500进制的计数器):图2.2 分频电路程序设计 如图2.2,因为梁祝歌曲只用低音和中音来演奏,为1/4拍,即四分之一拍,每个音符持续0.25秒的时间。

因为前级电路已经实现了从50MHZ 到2KHZ 的转换,要得到4HZ 的频率,则用500进制的计数器(0到499的计数)产生的进位信号对2KHZ 实现500分频(输出波形分析见后)。

1.3 乐曲长度控制计数器cnt138设计:图2.3 乐曲长度控制计数器程序及元件图经查阅《EDA技术实用教程(第五版)》可知,《梁祝》这首歌曲总共有139个音符,其中包含末尾的3个休止符。

如图2.3,因此为了产生这139音符,因此想到开发一个139进制的计数器(计数值:0到138),实现用139状态代表139个音符。

又因为要配合下一级音符谱码存储模块的输入(ROM的输入一般为偶数位),因此将原本用7路线就可以表示完成的输出端cnt8增加一位线宽。

注:在本程序中,输出端cnt8由于定义成integer整型,在Quartus中被自动分配成了7根;也可以定义成vector型,而此时需要注意配合下级电路的权位最好写成cnt8: out std_logic_vector(7 downto 0).1.4 音符谱码存储模块设计构建:1.4.1 ROM的设置:图2.4 音符谱码存储模块ROM音符谱码存储模的主体构想,是为了让前级模块所产生的139个状态与实际音符(Do Re Mi Fa So La Si)构成映射。

简易电子琴电路课程设计(模拟电路)

简易电子琴电路课程设计(模拟电路)

逗你玩课程设计报告课程名称:模拟电子技术课程设计专业班级:电子信息工程(2)班学生学号:0705110931学生:夏柳所属院部:信息技术学院指导教师:王雪20 08 ——20 09 学年第 2 学期《模拟电子技术》课程设计报告--------简易电子琴的制作简易电子琴电路摘要:本课程设计以制作一个简易电子琴为最终结果,主要以硬件测试为主。

首先进行电路分析,设计电路图,其次考虑所有可能出现的问题,完善电路图,再选择合适的器件,最后按照电路图线路搭试,调试测试,直至达到理想的目标。

当然在这之前对焊点等要事先查阅资料,了解手工焊接技术;查阅有关4100芯片,741芯片的功能等参数,还有测试其芯片是否好坏的电路和方法;同时还要了解RC 振荡电路,与其产生振荡的条件跟原理,选择稳幅电路,理解其稳幅的原理;当然还要计算八个音阶的产生的频率,再根据RC振荡电路计算电阻值,以便选择合适的电阻,这些都是课前准备。

测试电子琴我们要一步一步的,首先是振荡电路的线路测试,其次选频电路的测试,功放电路的测试,最后再是总体测试,尽量消除噪音,使音质能够很清晰。

这样电子琴我们就做好了。

关键图:电子琴的主干图第一部分:课前准备1.1芯片性能指标1.2手工焊接技术1.3元件制作工艺第二部分:设计方案及选定2.1八个音阶的频率2.2振荡电路的选择与设计2.3八个电阻的选择2.4稳幅方式的选择2.5功率放大电路的设计第三部分:简易电子琴电路的检测与误差分析3.1芯片测试3.2振荡电路测试3.3电子琴的测试第四部分:元器件清单第五部分:心得体会第六部分:参考文献第一部分、课前准备1、芯片性能指标首先了解芯片的功能,它是电路的心脏,如果没有它,电子琴是不能工作的。

要想使用必须先了解芯片。

本次课程设计采用了741芯片,它是通用高增益运算放大器,其工作电压在±22V,差分电压30V,输入电压18V,允许功耗500,其逻辑图如图1(a)。

基于VHDL语言的电子琴电路设计

基于VHDL语言的电子琴电路设计

基于VHDL语言的电子琴电路设计XX班XX 学号:XX摘要:由于近十年来资讯工业的蓬勃发展,伴随着微电子技术的快速发展,小至传统的门层(GATE LEVEL)设计,大到电话LCD的来电显示,电梯控制器,出租车计费器等等由硬件描述语言(HDL,hardware description language)的设计方式,无一不是电脑与IC设计相关应用所及之地,而不论是电脑本身或是其他应用,则正是数位电路的产物。

为得到理论与实际应用的结合,于是选择电子琴为研究课题,进行相关的实验,运用VHDL(Very high speed integrated circuit hardware description language)使得数位电路设计接近于软件演算法的实现,将传统的逻辑设计导向了系统层级和高阶电路合成的方向。

使用到的软件为Altera 的Max+PlusⅡ,使用它可使用一模拟器来模拟一系统的行为而不用实际建构一系统,另一方面合成编辑器可以将此系统行为描述转换成实现此系统的数位硬件.这些对于构建电子琴及声音处理制作有很大帮助.关键词:VHDL 电子琴电路设计Max+PlusⅡ1.选题背景:1.1选题背景:基于当前市场上的电子琴价格较昂贵,很难大众化,而且市场上大多电子琴靠硬件实现其功能,这样很难降低其成本,基于EDA技术的发展,我们可以利用软件实现电子琴的功能,从而降低成本,并且可以进行一定的功能扩展。

VHDL 适用于此类实用设备的模拟仿真,以并行和顺序的多种语句方式来描述在同一时刻中所有可能发生的事情,因此可以认为,VHDL具有描述由相关和不相关的多维时空组合的复合体系统的功能,因此要以多为并发的思路运用VHDL来完成电子琴的程序设计。

乐曲都是由一连串的音符组成,因此按照乐曲的乐谱依次输出这些音符所对应的频率,就可以在扬声器上连续地发出各个音符的音调。

大多数的电子琴设计都有弹奏和播放功能。

进入20世纪90年代以后,VHDL技术得到了飞速的发展,电子系统的设计方法发生了很大的变化,传统的设计方法正逐步退出历史舞台,而基于EDA技术的可编程逻辑芯片设计成为电子系统设计的主流。

2024-硬件电子琴电路模块方案设计

2024-硬件电子琴电路模块方案设计

• 3、拍子的时值是一个相对的时间概念
• 比方当乐 曲的规定速度为每分钟 60 拍时, 每拍占用的时间是一秒,半拍是二分之一 秒;当规定速度为每分钟 120 拍时,每拍 的时间是半秒,半拍就是四分之一 秒。
• 在本次实验中,最小的节拍是1/4拍,规 定速度是每拍1秒。可以得到,在我们把音 符按照以1/4拍为单位存放到ROM里,而后 以4HZ频率读取,那么可以实现乐曲的节拍。
每当计时到后,就将输出脉冲的I/O反相。 • 4、重复计时此半周期的时间再对I/O反相,
就可以在I/O脚上得到此频率的脉冲。
• 例如,频率为523Hz, • 其周期为1/523 S=1912uS, • 因此只要令计数器计时956,在每计数956次
时就将I/O反接,就可得到中音DO〔532Hz〕。 • 其计数值N可以根据以下公式得到:
• 本次设计采用第一种方法。
• 首先翻开电脑上的记事本,按照COE文件 的格式要求输入?梁祝?音乐或者自己编辑 的音乐数据,并存盘。
根底知识
二、音符与频率 • 乐曲中不同的音符实质上表示的是不同频
率的声音。 • 只要产生不同频率的脉冲,再通过喇叭等
播放出来即可。又由于方波容易用定时器 产生,故使用方波脉冲。
根底知识
• 要产生音频脉冲: • 1、算出某一音频的脉冲的周期〔1/频率〕 • 2、然后将此周期除以2,即为半周期的时
间。 • 3、利用定时器,计时这个半周期的时间,
注意, 1 〕不能将文件 夹放置在软件安 装目录下,应放 在E盘或DATA盘上 2〕要求以自己 的学号作为文件 夹名
正确选择FPGA目标器件和EDA工具,这次设计的仿 真工具采用Modelsim。
• 分别输入ToneTaba.v和Speakera.v的 Verilog HDL文本,进行综合和功能仿真, 理解、验证模块功能。

简易电子琴电路的设计

简易电子琴电路的设计

1. 技术指标 (1)2. 设计方案及其比较 (1)2.1 方案一 (1)2.2 方案二 (3)2.3 方案比较 (6)3. 实现方案 (6)4. 调试过程及结论 (10)5. 心得体会 (16)6. 参考文献 (16)简易电子琴电路的设计1.技术指标设计一个玩具电子琴,设8个琴键,分别代表1、2、3、4、5、6、7、į八个不同音符,每按下一个琴键,扬声器发出一个音符的声音。

演奏时的音量和节拍可以调节。

2.设计方案及其比较2.1 方案一选用RC振荡电路和运算放大器构成简易电子琴电路。

RC振荡电路的具体电路为文氏桥正弦振荡电路。

电路原理图如下图1。

图1 简易电子琴电路原理图其中1C和按键电阻并联,2C和12R串联,两者共同构成RC串并联选频网络。

由于选频网络的相移为零,这样RC串并联选频网络送到运算放大器同相输入端的信号电压与输出电压同相,所以RC反馈网络形成正反馈,满足相位平衡条件,因而可以形成振荡。

由于振荡的能量是电源,激励信号源是电路中的噪声,它的频谱丰富,包含频率成分f;但由于噪声信号极其微弱,在振荡期间应使信号做增幅振荡,为此合理选择电阻使0ω信号就会通过正反馈而使得输出信号不断增大,使输出幅环路增益大于1,这样频率为0度越来越大,最后受电路中非线性元件的限制,使振荡幅度自动稳定下来,电路进入等幅振荡。

频率0f之外的信号由于不满足振荡平衡条件,将不会在输出信号中出现,RC选频网络实现了信号频率的选择功能。

按键电阻的选择:查阅资料得知八个音阶的频率如下表1:表1 八个音阶的频率由于1C的值确定为0.1uF,由公式:fπ2/1=(1)fRC0=并结合表一计算可得电阻阻值分别为(单位:欧姆):36kR3.1=(2)28R7.k2=(3)23R3.k3=(4)20kR4.4=(5)16kR2.5=(6)k13R1.6=(7)R3.10k7=(8)R1.9k8=(9)通过阻值选择电阻器件。

电路要求不仅能够振荡,而且能够稳幅。

基于单片机的简易电子琴电路设计

基于单片机的简易电子琴电路设计

单片机课程设计任务书题目: 基于单片机的简易电子琴电路设计初始条件:简易电子琴一般具有弹奏一个自然大调7声音阶的功能。

本课程设计,要求用AT89C51等系列芯片实现控制功能,利用按键实现音符和音调的输入;两位的数码管进行被操作的按键显示;用LM386放大电路实现低音频功率放大;最后用蜂鸣器进行播放“送别”。

要求完成的主要任务:1.设计任务根据已知条件,设计并制作一个简易电子琴。

2.设计要求(1)基本要求:①具备7个按键,能够分别较准确地弹奏出1~7八个音符。

②选择电路方案,完成对确定方案电路的设计。

计算电路元件参数与元件选择、并画出总体电路原理图,阐述基本原理。

用EWB或MULTISIM软件完成仿真,之后制作出相应实物,并按规定格式写出课程设计报告书。

(2)扩展要求:(在完成基本要求的前提下,学有余力的同学可完成)①能够弹奏出至少21个音符(三个音阶)。

②能够较便捷地完成音阶的升降。

(用另外三个按键开关实现正常、升8度和降8度的切换)。

时间安排:指导教师签名:年月日基于单片机的简易电子琴控制系统设计摘要目的:本设计主要研究基于AT89C52单片机的简易电子琴设计。

方法:它是以单片机作为主控核心,设置键盘、蜂鸣器等外围器件;另外还用到一些简单器件如:两位数码管,和NPN型三极管及电阻等。

利用按键实现音符和音调的输入;两位的数码管进行被操作的按键显示;用NPN型三极管8550实现低音频功率放大;最后用蜂鸣器进行播放“送别”。

结果:本设计硬件部分主要由最小系统,按键系统模块、数码管显示模块和蜂鸣器模块组成。

其软件部分主要有主程序模块、定时中断程序、定时计数程序、显示程序。

(1)最小系统:它是单片机应用系统的设计基础。

它包括单片机的选择、时钟系统设计、复位电路设计、简单的I/O口扩展、掉电保护等。

(2)按键系统模块:本设计采用10个按键,其中7个按键用来显示7个音调,其它3个按键可以进行高低中音的切换,并自动播放已存歌曲。

《电子设计》简易电子琴

《电子设计》简易电子琴

《电子设计》简易电子琴1、设计任务本次的设计任务是设计一款简易电子琴,其功能是能够通过使用者交互完成播放两个八度声音与音乐的目的。

2、设计方案2.1设计框图本次设计共有两种方案。

第一种方案使用STC89C52RC 单片机。

通过独立按键完成输入,通过扬声器完成声音的输出。

其设计框图如下:图1:方案一硬件框图第二种方案使用STC8G1K08单片机。

通过触摸按键结合单片机ADC 完成输入,通过TC8002功放电路完成声音的输出。

其设计框图如下:图2:方案二硬件框图2.2 各模块设计2.2.1 电源设计(例如)方案一使用的是STC89C52RC 单片机,其工作电压为5V ,通过引脚与5V 外部电源连接即可完成供电。

方案二使用的是STC8G1K08单片机,其工作电压也是5V ,通过TYPEC 接口完成供电。

原理图如下图所示:图3:方案二电源设计2.2.2 输入电路设计方案一与方案二使用两种不同的输入方式。

方案一使用共阴极接法的独立按键与单片机引脚连接,通过单片机检测按键是否被按下完成输入检测。

其原理图如下图所示:图4:方案一输入电路方案二使用触摸检测电路完成输入功能。

使用者接触触摸按键时会改变该电路的电容,使单片机ADC 引脚接收的数据发生改变,进而达到输入功能。

其原理图如下图所示:图5:方案二输入电路2.2.3 扬声器与功放电路两种方案播放声音的设备都是喇叭,但驱动电路不同。

方案一使用的三极管放大电路,其原理图如下图所示:图6:方案一扬声器驱动电路方案二使用功放芯片TC8002完成扬声器的驱动。

该芯片是一颗带关断模式,专为大功率高保真的应用场合所设计的音频功放IC。

它所需外围元件少且在2V~5V的输入电压下即可工作。

它的管脚图如下图所示:图7:TC8002管脚排列图经查看该芯片手册设计的功放电路图如下图所示:图8:功放模块电路图2.2.4 其余电路设计除以上两种模块,还有其余的模块电路如方案一的晶振电路,复位电路,方案二的供电提示电路等。

单片机简易电子琴设计方案大全(六款模拟电路设计原理图详解)

单片机简易电子琴设计方案大全(六款模拟电路设计原理图详解)

单片机简易电子琴设计方案大全(六款模拟电路设计原理图详解)单片机简易电子琴设计方案(一)设计一简易电子琴,要求能够发出1、2、3、4、5、6、7等七个音符。

原理:由于一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。

本次设计中单片机晶振为12MHZ,那么定时器的计数周期为1MHZ,假如选择工作方式1,那T值便为T=216--5﹡105/相应的频率,那么根据不同的频率计算出应该赋给定时器的计数值,列出不同音符与单片机计数T0相关的计数值如下表所示:通过单片机实现电子琴演奏,实质就是将不同按键和特定频率的方波信号对应起来,以方波信号驱动蜂鸣器发出乐音。

下面简单介绍一下乐音的特性。

乐音实际上是有固定频率的信号。

在音乐理论中,把一组音按音调高低的次序排列起来就成为音节,也就是1、2、3、4、5、6、7和高音1。

高音1的频率正好是中音1频率的2倍,而且音节中各音的频率跟1的频率之比都是整数之比。

为了发出某一特定频率的乐音,可以控制单片机的一个I/O口产生该频率的方波信号,经过电流放大后驱动蜂鸣器发出该乐音。

对于方波的产生,可以启用单片机的一个定时器进行计时,产生溢出中断。

中断发生时,将输出引脚的电平取反,然后重新载入计数器初始值。

因此,正确的设置定时器的工作模式和初始计数值是发出乐音的基础。

例如中音l,其频率是523Hz,则周期为T=l/523=1912s,半个周期为956s。

根据单片机计数器计数的机器周期,就可以算出计数器的预置初始值应为多少。

例如,假设采用的单片机的一个计数周期需要12个时钟周期,当采用12MHz晶振时,一个计数周期即ls。

要定时956s,只需设置其计数初值为计数最大计数值减去956。

基于51单片机的电子琴设计

基于51单片机的电子琴设计

基于51单片机的电子琴设计随着科技的不断发展,单片机技术已经成为了现代电子设备中的重要组成部分。

51单片机作为一种广泛应用的单片机系列,具有高性能、低功耗、高集成度等特点,被广泛应用于各种嵌入式系统开发中。

本文将介绍一种基于51单片机的电子琴设计。

一、系统硬件设计1、单片机选择本设计选用AT89C51单片机作为主控制器,AT89C51是一种低功耗、高性能的8位单片机,具有4K字节的可编程存储器和128字节的RAM,同时具有丰富的外设接口,如UART、SPI、I2C等。

2、电子琴设计电子琴采用8×8 LED点阵作为输出设备,通过单片机控制点阵的亮灭状态来展示音乐波形。

具体实现方式是将音频信号通过一个运放放大器放大,然后将其输入到LED点阵中,通过控制点阵的亮灭状态来展示音乐的波形。

3、存储模块设计为了实现电子琴曲目的存储和播放,本设计选用了一块AT24C02 EEPROM芯片作为存储设备。

AT24C02是一种串行E2PROM存储器,容量为256字节,可以通过I2C总线与单片机进行通信。

将曲目信息存储在AT24C02中,可以实现曲目的存储和播放功能。

4、按键模块设计本设计采用4×4矩阵键盘作为输入设备,通过扫描按键状态来实现音符的选择和节奏控制。

矩阵键盘的行线连接到单片机的P1口,列线连接到P2口,通过检测行列组合的变化来确定按下的键位。

二、系统软件设计1、音符解码本设计采用MIDI音符编码方式来存储和播放曲目信息。

在解码过程中,根据音符的频率和持续时间计算出对应的音高和节奏信息,然后将其用于驱动电子琴的输出设备展示音乐的波形。

2、演奏控制为了实现节奏控制,本设计采用了一种基于时间间隔的演奏方式。

在演奏过程中,单片机根据设定的节奏间隔时间来触发音符输出,从而实现对节奏的控制。

同时,为了实现曲目的停止和播放功能,我们需要在软件中加入相应的控制逻辑。

3、存储和播放在软件设计中,我们需要实现将曲目信息存储到AT24C02中以及从AT24C02中读取曲目信息的功能。

实验六 硬件电子琴电路设计

实验六 硬件电子琴电路设计

实验六硬件电子琴电路设计一、实验目的1、学习VHDL与图形相结合的设计方法2、学习利用数控分频器设计硬件电子琴实验。

二、实验仪器PC机,操作系统为Windows2000/XP,本课程所用系统均为WindowsXP(下同),Quartus II 5.1设计平台,GW48系列SOPC/EDA实验开发系统。

三、实验原理1、主系统由3个模块组成,其内部有两个功能模块(如图6-1所示): SPEAKER.VHD(附录6-1)和TONE.VHD(附录6-2)。

2、模块TONE是音阶发生器,当8位发声控制输入INDEX中某一位为高电平时,则对应某一音阶的数值将从端口TONE输出,作为获得该音阶的分频预置值;同时由CODE输出对应该音阶简谱的显示数码,如‘5’,并由HIGH输出指示音阶高8度显示。

由附录6-2可见,其语句结构只是类似与真值表的纯组合电路描述,其中的音阶分频预置值,如Tone <= 1290是根据产生该音阶频率所对应的分频比获得的。

3、如果要观察所对应的逻辑图,则打开文件 Flie/new 。

点击 Graphic editor flie 并确认。

双击图形编辑框找到所建工程目录,确认。

(如果重复使用的话,则打开文件Flie/new 。

点击Symbol Editor File找到后缀sym文件)图6-1 硬件电子琴电路结构3、模块SPEAKER中的主要电路是一个数控分频器,它由一个初值可预置的加法计数器构成,当模块SPEAKER由端口TONE获得一个2进制数后,将以此值为计数器的预置数,对端口CLK12MHZ输入的频率进行分频,之后由SPKOUT向扬声器输出发声。

四、实验步骤1、将附录中的两个低层文件分别建成顶层图形文件,(新建图形编辑窗口,即点击File-new-Graphic Editor file.双击空白处选择所需要的“Tone”和”Speaker”两个模块。

再布线,组成顶层电路)。

2、编译适配附录中2个示例文件,给出仿真波形,最后进行下载和硬件测试实验。

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

江西理工大学应用科学学院SOPC/EDA综合课程设计报告设计题目:硬件电子琴电路设计设计者:学号:班级:指导老师:***完成时间:2011-1-04设计报告综合测试总评格式(10)内容(40)图表(10)答辩(20)平时(20)目录一、设计任务与要求 (1)二、总体框图 (2)三、选择器件 (5)四、功能模块 (6)1.Songer模块 (6)1.1NoteTabs模块 (6)1.2ToneTaba模块 (11)1.3Speakera模块 (13)2.div模块 (16)3.七段译码器模块 (18)五、总体设计电路图 (21)1.顶层设计的电路原理图 (21)2.顶层设计的仿真结果 (23)3.电路的管脚图 (23)六、结束语 (24)七、心得体会 (25)硬件电子琴电路设计一、设计任务与要求使用FPGA设计一模拟电子琴键,实现电子琴按键的DO,Re,Mi,Fa,Sol,La,Si等中音以及相应的高音。

二、总体框图系统设计方案:方案一:采用单个的逻辑器件组合实现。

这样虽然比较直观,逻辑器件分工鲜明,思路也比清晰,一目了然。

但是由于元器件种类、个数繁多,而过于复杂的硬件电路也容易引起系统的精度不高、体积过大等不利因素。

例如八个不同的音符是由八个不同的频率来控制发出的,而采用方案一就需要运用不同的分频器来对信号进行不同程度的分频。

所用仪器之多显而易见。

方案二:采用VHDL语言编程来实现电子琴的各项功能。

系统主要由电子琴发声模块、选择控制模块和储存器模块组成。

和方案一相比较,方案二就显得比较笼统,只是把整个系统分为了若干个模块,而不牵涉到具体的硬件电路。

但是我们必须看到用超高速硬件描述语言VHDL的优势,它不仅具有良好的电路行为描述和系统描述的能力而且通俗易懂。

经过对以上两种方案的分析、比较和总结,我们选用方案二来进行八音符电子琴的设计。

”(2). ToneTaba模块:是乐曲简谱码对应的分频预置数查找表电路,其中设置了乐曲的全部音符所对应的分频置数,每一音符的停留时间由音乐节拍和音调发生器模块NoteTabs 的CLK的输入频率决定,这些值由对应于ToneTaba的4位输入值Index[3..0]确定,最多有16种可选值。

输向ToneTaba中Index[3..0]的值ToneIndex[3..0]的输出值与持续的时间由模块NoteTabs决定。

(3). Speakera模块:是一个数控分频器,音符的频率可由此模块获得。

由CLK端输入一具有较高频率的信号,通过Speakera分频后由SPKOUT输出。

由于直接从数控分频器中出来的输出信号是脉宽极窄的脉冲式信号。

为了利用驱动扬声器,需加一个D触发器以均衡其占空比,频率将是原来的1/2。

Speakera对CLK输入信号的分频比由预置数Tone决定。

SPKOUT的输出频率将决定每一音符的音调。

2. Div模块:由于所使用的硬件设备不能满足设计所需要的两个CLK输出的频率,所以使用一个分频器来实现把一个50MHz的晶体振荡频率分成一个12MHz,一个8Hz两个分频率,再把两个频率分别给所需的两个模块。

3. EG7模块:SEG7 模块是一个七段译码器,作用是在硬件上显示音频的高低,用0到7分别对应空节拍do、ri、mi、fa、suo、la、xi,高音时,LED灯亮,数码管显示对应数字。

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

(2).音调的控制: 频率的高低决定了音调的高低。

2.1 基准频率f0的选取所有不同频率的信号都是从同一个基准频率f0分频而得到的。

由于音节频率多为非整数,而分频系数又不能为小数,因此必须将计算所得的分频数四舍五入取整。

若基准频率过高,则分频比太小,取整后误差较大。

若基准频率过高,虽然误差减小,但分频数变大。

综合这两方面因素,在尽量减小频率误差的前提下取合适的基准频率,在此取f0=12MHz。

2.2 分频系数,二进制计数器计数的容量N和预置数的选取 :分频系数A=f0/音名频率分频系数n=f0/音名频率/2N〉=MAX{分频系数n}由表1可得最大分频系数为1274,因此N=2048为2的11次方。

因此二进制计数器设为11位二进制加法计数器,其计数容量为2048,计数的最大值为2047。

预置数=N-分频系数n表1为各音阶的频率、对应的分频系数及预置数:(3). 音长的控制:音符的持续时间须根据乐曲的速度及每个音符的节拍数来确定的。

《采茶舞曲》中最短的音符为四分音符,如果全音符的持续时间为1s,则四分音符的持续时间为0.25s,二分音符持续的时间为0.5s等等,只需再提供一个4Hz的时钟频率。

每来一个脉冲计一次数,每一计数值的停留时间为0.25s,即要输入一个全音符时需要计四次数才行,则应在Rom表格中输出相应音符四次,表示一个全音符的持续时间。

三、选择器件1.装有QuartusII软件的计算机一台;2.外置扬声器;3.7段数码管;4.LED灯一个;5.芯片:使用altera公司生产的Cyclone系列芯片,如EP1C12Q240C8芯片;6.EDA实验箱一个;7.下载接口是数字芯片的下载接口(JTAG),主要用于FPGA芯片的数据下载。

Cyclone器件的配置器件:此次设计实验采用ALTERA公司的cyclone系列的FPGA芯片EP1C12,设计和仿真采用ALTERA公司的QUARTUS II软件,EP1C12各项参数参照表2。

表2 EP1C12参数表Cyclone的性能特性:1、新的可编程体系结构,实现低成本设计。

2、嵌入式存储器资源支持多种存储器应用和数字信号处理(DSP)实现3、专用外部存储器接口电路,支持与DDR FCRAM和SDRAM器件以及SDR SDRAM存储器的连接。

4、支持串行总线和网络接口以及多种通信协议片内和片外系统时序管理使用嵌入式PLL5、支持单端I/O标准和差分I/O技术,LVDS信号数据速率高达640Mbps。

6、处理功耗支持Nios II 系列嵌入式处理器7、采用新的串行配置器件的低成本配置方案8、Quartus II 软件OpenCore评估特性支持免费的IP功能评估四、功能模块1)、Songer模块如图3:图3 Songer模块Songer模块由三个模块组成:Note Tabs模块,ToneTaba模块和Speakera模块。

Notetabs模块类似于弹琴人的手指,Tonetaba类似于琴键,Speakera类似于琴弦或音调发生器。

1.NoteTabs模块:原理:在这个模块中设置了一个8位二进制计数器,作为音符数据 ROM的地址发生器。

这个计数器的计数频率选为4HZ,即每一计数值的停留时间为0.25秒,当全音符设为1秒时,4分音符持续时间为0.25s, 2分音符持续的时间为0.5s等等。

每来一个脉冲计一次数,每一计数值的停留时间为0.25s,即要输入一个全音符时需要计数4次才行,则应在Rom表格中输出相应音符四次,表示一个全音符的持续时间,要输入一个2分音符则需要计数2次,依次类推。

NoteTabs模块图如图4:图4 NoteTabs模块程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY NOTETABS ISPORT (CLK1: IN STD_LOGIC;TONEINDEX: OUT STD_LOGIC_VECTOR(7 DOWNTO 0)); END;ARCHITECTURE ONE OF NOTETABS ISCOMPONENT MUSICPORT (ADDRESS: IN STD_LOGIC_VECTOR (7 DOWNTO 0);CLOCK: IN STD_LOGIC;Q: OUT STD_LOGIC_VECTOR (7 DOWNTO 0));END COMPONENT;SIGNAL COUNTER:STD_LOGIC_VECTOR(7 DOWNTO 0);BEGINCNT8:PROCESS (CLK1,COUNTER)BEGINIF COUNTER=336 THEN COUNTER<="00000000";ELSIF (CLK1'EVENT AND CLK1='1')THENCOUNTER<=COUNTER+1;END IF;END PROCESS;END;NoteTabs模块波形仿真图如图5:(注:每来一个时钟clk,输出一个相应的数,每个音符的拍子不一样所记次数也不一样)图5 Notetabs的波形仿真图《采茶舞曲》简谱如图6图6 《采茶舞曲》简谱下表7是ROM表格:(即为此程序中调用的MUSIC模块)。

表7 ROM表格ROM模块图如图8:2.ToneTaba模块:原理:ToneTaba是乐曲简谱码对应的分频预置数查表电路。

音符的持续时间需要根据乐曲的速度及每个音符的节拍数来确定,Tonetaba的功能首先是为Speakera提供决定所发音符的分频预置数,而此数在Speakera输入口停留的时间为此音符的节拍值。

模块Tonetaba是乐曲简码对应的分频预置数查表电路,其中设置了《采茶舞曲》乐曲全部音符所对应的分频预置数,共16 个,每一音符的停留时间由音乐节拍和音调发生器模块Notetabs的clk的输入频率决定,在此为4Hz。

这16个值得输出由对应于Tonetaba的4位输入值Index[3..0]确定。

输向Tonetaba中Index[3..0]的值,ToneIndex[3..0]的输出值与持续的时间由模块Notetabs决定。

如图9:图9 ToneTab模块程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY TONETABA ISPORT ( INDEX : IN STD_LOGIC_VECTOR(3 DOWNTO 0);CODE : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);HIGH : OUT STD_LOGIC;TONE : OUT STD_LOGIC_VECTOR(10 DOWNTO 0));END;ARCHITECTURE ONE OF TONETABA ISBEGINSEARCH: PROCESS (INDEX)BEGINCASE INDEX ISWHEN"0000"=>TONE<="11111111111";CODE<="0100";HIGH<='0';--1077 WHEN"0101"=>TONE<="10010101101";CODE<="0101";HIGH<='0';--1197 WHEN"0110"=>TONE<="10100001010";CODE<="0110";HIGH<='0';--1290 WHEN"0111"=>TONE<="10101011100";CODE<="0111";HIGH<='0';--1372 WHEN"1000"=>TONE<="10110000010";CODE<="0001";HIGH<='1';--1410 WHEN"1001"=>TONE<="10111001000";CODE<="0010";HIGH<='1';--1480 WHEN"1010"=>TONE<="11000000110";CODE<="0011";HIGH<='1';--1542 WHEN"1011"=>TONE<="11000101000";CODE<="0100";HIGH<='1';--1576 WHEN"1100"=>TONE<="11001010110";CODE<="0101";HIGH<='1';--1622 WHEN"1101"=>TONE<="11010000100";CODE<="0110";HIGH<='1';--1668 WHEN"1110"=>TONE<="11011000000";CODE<="0001";HIGH<='1';--1728 WHEN"1111"=>TONE<="11011101010";CODE<="0010";HIGH<='1';--1770 WHEN OTHERS => NULL;END CASE;END PROCESS;END;(注:每一个index的值都对应一个code,tone值,index的值从0000到0111对应的high为低电,从1000到1111对应的high 为高电。

相关文档
最新文档