EDA_电子琴课程设计
- 格式:doc
- 大小:200.50 KB
- 文档页数:16
eda课程设计简易电子琴一、课程目标知识目标:1. 让学生了解EDA(电子设计自动化)的基本概念,掌握简易电子琴的设计原理;2. 使学生掌握电子琴电路的组成、工作原理和编程方法;3. 帮助学生理解电子琴音调、音量调节的电路实现方式。
技能目标:1. 培养学生运用EDA工具进行电路设计和编程的能力;2. 提高学生动手实践、团队合作和问题解决的能力;3. 让学生学会使用电子琴演奏简单曲目,培养音乐素养。
情感态度价值观目标:1. 激发学生对电子设计的兴趣和热情,培养创新精神和实践能力;2. 培养学生严谨、认真、负责的学习态度,养成良好的学习习惯;3. 引导学生关注科技发展,认识电子技术在生活中的应用,增强社会责任感。
课程性质:本课程为实践性较强的课程,结合理论知识,注重培养学生的动手能力和创新能力。
学生特点:学生处于初中阶段,具有一定的物理、数学基础,对新鲜事物充满好奇心,但可能缺乏实际操作经验。
教学要求:结合学生特点,采用任务驱动法,引导学生主动探究、实践,注重理论与实践相结合,提高学生的综合能力。
在教学过程中,将课程目标分解为具体的学习成果,以便进行教学设计和评估。
二、教学内容1. 理论知识:- 电子元件基本原理:电阻、电容、二极管、三极管等;- 电子琴工作原理:振荡器、分频器、放大器、键盘扫描电路等;- EDA软件使用:原理图绘制、PCB设计、仿真测试等。
2. 实践操作:- 简易电子琴电路搭建:指导学生动手搭建电子琴电路;- EDA软件操作:教授学生使用EDA软件进行原理图绘制和PCB设计;- 编程与调试:教授学生编程方法,对电子琴进行调试。
3. 教学大纲:- 第一周:电子元件基本原理学习;- 第二周:电子琴工作原理学习;- 第三周:EDA软件使用教学;- 第四周:简易电子琴电路搭建与调试;- 第五周:总结与展示,学生进行作品展示,分享心得。
4. 教材章节:- 《电子技术基础》中关于电子元件、电路原理的相关章节;- 《电子设计自动化》中关于EDA软件使用的相关章节;- 《电子琴设计与制作》中关于电子琴工作原理和制作过程的相关章节。
数字电子EDA课程设计八音电子琴第一篇:数字电子EDA课程设计八音电子琴燕山大学EDA课程设计实验报告院系:信息科学与工程学院姓名:班级:学号:日期:[实验名称] 八音电子琴[实验要求] 1.能发出1.2.3.4.5.6.7.i八个音2.用按键作为键盘3.C调至B调对应频率如下表音调 C(高音)B A G F E D C频率(Hz)261.63x2 493.88 440.00 392.00 349.23 329.63 293.66 261.63 [实验电路设计] 1.命题分析根据命题的要求,要使扬声器发音,需要在其输入信号端连接一个对应频率的方波信号.实验使用的信号源可以提供从几Hz到几兆Hz不等的信号频率,自然可以想到本实验命题的关键是一个具有相应分频比的分频器.考虑到硬件(按钮)在实际工作过程中会因元件的接触产生一些不可避免的抖动脉冲电平,会对实验造成影响,因此需要在按键接入线路中安装防抖动电路.2.设计过程1>分频器为了取得合适的电路复杂度和可接受的误差范围,分频器的时钟信号选取为器件所提供的JPCK—1(3MHz音频信号).然后通过计算,用时钟信号频率除以各发音频率,得到的分频比如下表:分频比(16进制)5DEE 6384 6F84 7D62 8ADE 951C A760 BBDE频率(Hz)高C:261.63x2 B:493.88 A:440.00 G:392.00 F:349.23 E:329.63 D:293.66 C:261.63 利用四片十六进制计数器74LS161就可以连接成适用的分频器.分频器连接完成后会产生一个预定频率的周期脉冲.但是实验要求的方波其占空比应该为1:1,因此在输出脉冲端加装一个T触发器,每次脉冲到达触发器的时候输出便会跳变电平,这就达到了驱动扬声器的条件.但是在应用了T触发器后输出方波的周期比预定的扩大了一倍,也就是说频率减至原来的二分之一.此时应重新选择时钟信号,令其为原来2倍即可.根据实验指导书,最终确定选择的时钟信号为6MHz.2>防抖动电路利用D触发器的电压跟随特性可以用一个频率较低的时钟信号驱动,达到防止按键抖动的目的.电路较简单,见图3.图1.时钟分频电路(downway)图2.CP为375K时上图的B4输出波形由于设计的原因,本电路只能支持单音节输入.当同时键入两个以上的音阶时,分频比较小的(比较高的音阶)优先发声.图3.按键输入防抖动电路3>电路组合组合后的电路模块如图4.共有11个输入端和1个输出端.其中,CP_6M为整个电路的主频,使用电路板上的6MHz信号输出端;CP_1US为防抖动电路中触发器所使用的时钟,要求频率不高,选择电路板提供的CLK3-3(12Hz);KEYCa-B是电子琴的输入按键接口,依次是从低音到高音.Speaker是电路的输出端,接入扬声器,为其产生相应音阶的频率.实际电路如图4.连接完成后,对该电路进行仿真测试,如图5,令其CP_6M为6MHz,CP_1US为一个较低频率脉冲,设臵KEYB(音节B)为有效电平,在speaker上得到的输出频率为493,与实际音节的频率相同.图4.八音电子琴图5.电子琴完成品的仿真波形T触发器2分频电路[硬件测试] [实习心得] 第一感觉,数字电子技术EDA实习很有意思.我们可以有充分的时间去思考怎么做出一个东西,这个东西的用处也许不大甚至几乎没有,但重要的是思考的过程:从它的用途总结出它的特性,从它的特性构思出它的原理,从原理到构建模型,再到模型的实现,利用已有的知识,可用的元件,最终组合出一个具有高度逻辑性的组合电路,这和我们小时候玩搭积木差不多.把积木一块块的搭成一座城堡,中间缺少任何一层甚至任何一块,城堡都可能会倒塌.同理,在我们构建命题所给的元器件时任何一个逻辑错误都可能是致命的,导致最后无法出现正确结果或者干脆不能用.因此,实习,有意思的同时还不能大意.这是一个锻炼逻辑思维和思维严谨性的极好的机会,我和我的同学们在这次工作中受益非浅.大家都积极思思考,查找资料,集思广益来解决现有的问题。
实验十五电子琴设计一、音名与频率的关系:音乐上的十二平均律规定:每两个八度音之间的频率相差一倍。
在这两个八度音之间,分成十二个半音,每两个相邻伴音的频率比为12 2。
另外还规定,音名A的频率为440Hz。
音名B到C、E到F之间为半音,其余为全音。
这样,可计算得从A(简谱的低音6)到a1(简谱的高音6)之间每个音名的频率为:A(6):440Hz a(6):880Hz a1(6):1760HzB(7):493.88Hz b(7):987.76Hzc(1):523.25Hz c1(1):1046.50Hzd(2):587.33Hz d1(2):1174.66Hze(3):659.25Hz e1(3):1318.51Hzf(4):698.46Hz f1(4):1396.92Hzg(5):783.99Hz g1(5):1567.98Hz二、设计要求:设计一个电子琴,要求能演奏音名A到a1之间的全部音阶。
按下一个键,则演奏该音名,并用数码管显示音名,用发光二极管指示高、中、低音。
三、设计提示:本实验由键盘编码,音频输出译码器、分频器组成。
取10MHz信号作为基准。
以基准频率除以上述频率,可得各音名频率的分频系数。
注意,为了减少输出的偶次谐波成分,最后输出应为对称方波。
音频输出译码器实质上是一个多路选择器,根据键盘编码的输出,选择音阶发生器的不同的预置数,分频后输出音频。
分频器可以为加法计数器,以可以为减法计数器,计算预置数时稍有不同,应加以注意。
另外,应根据基准频率和输出频率,来确定计数器的位数。
设计框图如下图所示:电子琴框图四、实验步骤1、启动ISE集成开发环境,创建工程并输入设计源文件。
2、对设计进行时序仿真,分析设计的正确性。
3、锁定引脚,完成设计实现过程。
并在实验箱上连线,利用iMPACT进行程序下载。
4、在实验箱上验证电子琴的功能,观察并记录实验结果.五、实验报告1.music的VHDL 源程序:library ieee;use ieee.std_logic_1164.all;entity music isport(kin: std_logic_vector(0 to 15);spk_out: out std_logic;led_out: out std_logic_vector(6 downto 0);index: out std_logic_vector(2 downto 0);clk: in std_logic);end music;architecture stru of music iscomponent tonetabport(index : in INTEGER range 0 to 15;tone : out INTEGER range 0 to 16#3fff#;code : out INTEGER range 0 to 15;high : out STD_LOGIC_VECTOR(2 DOWNTO 0));end component;component tonegenport(clk : in STD_LOGIC;tone : in integer range 0 to 16#3fff#;spks : out STD_LOGIC);end component;component hex2ledport(hex : in integer range 0 to 15;led : out STD_LOGIC_VECTOR(6 downto 0));end component;component keybordport(kin : in STD_LOGIC_VECTOR(0 to 15);kout : out INTEGER range 0 to 15);end component;signal kout: integer range 0 to 15;signal tone: INTEGER range 0 to 16#3fff#;signal digit: integer range 0 to 15;beginu1: keybord port map (kin=>kin,kout=>kout);u2: tonetab port map (index=>kout,tone=>tone,code=>digit,high=>index); u3: tonegen port map (clk=>clk,tone=>tone,spks=>spk_out);u4: hex2led port map (hex=>digit,led=>led_out);end stru;2. hex2led的VHDL 源程序library IEEE;use IEEE.STD_LOGIC_1164.all;entity hex2led isport(hex : in integer range 0 to 15;led : out STD_LOGIC_VECTOR(6 downto 0));end hex2led;architecture rtl of hex2led issignal data : std_logic_vector(6 downto 0);beginled<=not data;with hex selectdata<= "1111001" when 1, --1"0100100" when 2, --2"0110000" when 3, --3"0011001" when 4, --4"0010010" when 5, --5"0000010" when 6, --6"1111000" when 7, --7"0000000" when 8, --8"0010000" when 9, --9"0001000" when 10, --A"0000011" when 11, --b"1000110" when 12, --C"0100001" when 13, --d"0000110" when 14, --E"0001110" when 15, --F"1000000" when others; --0end rtl;3. keybord 的VHDL 源程序library IEEE;use IEEE.STD_LOGIC_1164.all;entity keybord isport(kin : in STD_LOGIC_VECTOR(0 to 15);kout : out INTEGER range 0 to 15 );end keybord;architecture rtl of keybord issignal data:std_logic_vector(0 to 15); begindata<=kin;process(data)beginif data(0)='0' then kout<=0;elsif data(1)='0' then kout<=1;elsif data(2)='0' then kout<=2;elsif data(3)='0' then kout<=3;elsif data(4)='0' then kout<=4;elsif data(5)='0' then kout<=5;elsif data(6)='0' then kout<=6;elsif data(7)='0' then kout<=7;elsif data(8)='0' then kout<=8;elsif data(9)='0' then kout<=9;elsif data(10)='0' then kout<=10;elsif data(11)='0' then kout<=11;elsif data(12)='0' then kout<=12;elsif data(13)='0' then kout<=13;elsif data(14)='0' then kout<=14;elsif data(15)='0' then kout<=15;else NULL;end if;end process;end rtl;4. tonegen的VHDL源程序library IEEE;use IEEE.STD_LOGIC_1164.all;entity tonegen isport(clk : in STD_LOGIC;tone : in integer range 0 to 16#3fff#;spks : out STD_LOGIC);end tonegen;architecture rtl of tonegen issignal fullspks:std_logic;begingenspks:process(clk,tone)variable count14: integer range 0 to 16#3fff#;--std_logic_vector(0 to 13);beginif clk'event and clk='1' thenif count14=16#3fff# then --"1111" thencount14:=tone;fullspks<='1';elsecount14:=count14+1;fullspks<='0';end if;end if;end process;delayspks:process(fullspks)variable count2:std_logic;beginif fullspks'event and fullspks='1' thencount2:=not count2;end if;spks<=count2;end process;end rtl;5. tonetab 的VHDL源程序library IEEE;use IEEE.STD_LOGIC_1164.all;entity tonetab isport(index : in INTEGER range 0 to 15;tone : out INTEGER range 0 to 16#3fff#;code : out INTEGER range 0 to 15;high : out STD_LOGIC_VECTOR(2 DOWNTO 0) );end tonetab;architecture rtl of tonetab isbeginprocess(index)begincase index iswhen 0 =>tone<=5021;code<=6;high<="100";when 1 =>tone<=6262;code<=7;high<="100";when 2 =>tone<=6829;code<=1;high<="010";when 3 =>tone<=7872;code<=2;high<="010";when 4 =>tone<=8801;code<=3;high<="010";when 5 =>tone<=9226;code<=4;high<="010";when 6 =>tone<=10007;code<=5;high<="010";when 7 =>tone<=10703;code<=6;high<="010";when 8 =>tone<=11323;code<=7;high<="010";when 9 =>tone<=11607;code<=1;high<="001";when 10 =>tone<=12129;code<=2;high<="001";when 11 =>tone<=12593;code<=3;high<="001";when 12 =>tone<=12805;code<=4;high<="001";when 13 =>tone<=13196;code<=5;high<="001";when 14 =>tone<=13544;code<=6;high<="001";when 15 =>tone<=16383;code<=0;high<="001";when OTHERS=>NULL;end case;end process;end rtl;实验记录:1、设计记录表,记录引脚锁定与连线情况。
eda电子琴课程设计一、课程目标知识目标:1. 学生能够理解并掌握EDA电子琴的基本结构和工作原理;2. 学生能够运用电子琴演奏简单的旋律,并识别不同音符的音高和时值;3. 学生能够了解并运用基本的音乐理论知识,如音阶、和弦等;4. 学生掌握音乐创作的基本方法,能够创作简单的电子琴曲目。
技能目标:1. 学生能够熟练操作EDA电子琴,进行基本演奏;2. 学生能够运用所学音乐理论知识,进行简单的曲目分析和创作;3. 学生能够在团队合作中,与他人共同演奏和创作音乐作品;4. 学生能够运用电子琴进行即兴演奏,提高音乐表现力。
情感态度价值观目标:1. 学生培养对音乐的热爱,提高音乐素养,树立正确的审美观念;2. 学生在学习和创作过程中,培养创新精神和实践能力;3. 学生通过团队合作,培养协作精神和沟通能力;4. 学生通过音乐学习,增强自信,勇于展示自我。
本课程针对小学四年级学生,结合电子琴教学实际,以趣味性和实用性为导向,注重培养学生的动手操作能力、音乐素养和团队协作精神。
通过本课程的学习,使学生能够在轻松愉快的氛围中掌握电子琴演奏技巧,提高音乐创作能力,激发学生对音乐的热爱和兴趣。
同时,课程目标分解为具体的学习成果,便于后续教学设计和评估。
二、教学内容1. 电子琴基础知识:介绍EDA电子琴的结构、功能键及操作方法,使学生了解电子琴的基本构成和演奏方式。
- 教材章节:第一章 电子琴概述- 内容列举:电子琴结构、功能键、演奏操作2. 音乐理论基础:学习基本的音乐符号、音阶、和弦等知识,为演奏和创作打下基础。
- 教材章节:第二章 音乐理论基础- 内容列举:五线谱、音符、音阶、和弦3. 电子琴演奏技巧:教授基本演奏技巧,如指法、音色选择、节奏控制等,提高学生的演奏能力。
- 教材章节:第三章 电子琴演奏技巧- 内容列举:指法、音色、节奏、动态4. 简单曲目演奏:选取适合学生程度的曲目,指导学生进行演奏练习,巩固所学知识。
《EDA技术实用教程》课程设计课程设计报告课题: EDA电子琴课程名称: EDA技术实用教程学院名称:物理电气信息学院班级: 2011级通信工程(1)班学生姓名:安昱学号: 12011243986 指导教师:杨泽林2013年12月26日EDA技术实用教程课程设计EDA电子琴摘要:本课程设计主要采用EDA技术设计一个简易的八音符电子琴,它可通过按键输入来控制音响从而演奏出已存入的乐曲。
在课程设计中,系统开发平台为Windows XP,程序设计采用VHDL语言,程序运行平台为Quartus II。
然后编写程序实现电子琴的各项功能,使不同的音阶对应不同频率的正弦波,按下不同的键时发出对应频率的声音。
程序通过调试运行,时序仿真,电路功能验证,顺利地实现了设计目标。
关键词:电子琴;EDA;VHDL;音阶;频率1、引言随着信息科学的进步,现代电子产品的性能越来越高,复杂度越来越大,更新步伐也越来越快,电子技术的发展进入了划时代的阶段。
其中电子技术的核心便是电子设计自动化EDA(Electronic Design Automatic)技术。
EDA是指以计算机为工作平台,融合了应用电子技术、计算机技术、智能化技术的最新成果而开发出的电子CAD 通用软件包,它根据硬件描述语言VHDL完成的设计文件,自动完成逻辑编译、化简、分割、综合、优化、布局布线及仿真,直至完成对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。
本课程设计就是采用EDA技术描述语言VHDL编程实现简易电子琴的各项功能,是EDA技术应用于实际的一个很好的例子。
1.1 课程设计目的本课程设计主要是基于VHDL文本输入法设计乐曲演奏电路,该系统基于计算机中时钟分频器的原理,采用自顶向下的设计方法来实现,通过按键输入来控制音响或者自动演奏已存入的歌曲。
系统由乐曲自动演奏模块、音调发生模块和数控分频模块三个部分组成。
系统实现是用硬件描述语言VHDL按模块化方式进行设计,然后进行编程、时序仿真、电路功能验证,奏出美妙的乐曲。
数电EDA简易电子琴Verilog设计数字电子技术课程设计--简易电子琴设计专业班级:电子姓名:学号:一、日期:设计任务用Verilog HDL语言设计简易电子琴。
(1)单独从左至右按下S1-S7每个按键后能够各自对应发出“哆来咪发唆啦西”的音乐声;(2)按下最右边按键(S8),同时再配合按下S1-S7键后,发高八度的对应音;(3)按键需要进行“消抖”处理;(4)外部输入脉冲信号频率为1mhz;(5)扩展要求:自主设计(增加低8度功能)。
二、实验目的1、学习verilogHDL语言的基本运用,能够利用其进行简单编程;2、学习使用QuartusⅡ的基本操作,能够利用其进行简单的设计;3、结合实践加深对理论知识的理解。
三、设计原理1)喇叭的振动频率不同,导致产生不同的声音;振动频率越低,声音越低沉,振动频率越高,声音越尖锐。
题目中音乐基本音的“哆”对应频率为523Hz 、“来”对应频率为587Hz 、“咪”对应频率为659Hz 、“发”对应频率为698Hz 、“唆”对应频率为784Hz 、“啦”对应频率为880Hz 、“西”对应频率为998Hz。
低8度音:基本音频率/2,例如低音1的频率为523/2=。
高8度音:基本音频率×2,例如高音1的频率为523×2=1046Hz.。
不同的频率产生利用给定的时钟脉冲来进行分频实现。
(2)消抖的原理:按键默认输入逻辑‘1’,当有按键按下时对应的输入为逻辑‘0’(但会存在抖动),当FPGA开始检测到该引脚从‘1’变为‘0’后开始定时(按键抖动时间大约10ms),定时时间结束后若该引脚仍然为‘0’则表示确实发生按键按下,否则视为抖动而不予以理会;按键松开过程的消抖处理和按下时原理一样。
(3)原理框图四、程序设计消抖模块module xiaodou(key_in,key_out,clk);input key_in;input clk;output key_out;reg key_out;reg [2:0]presta;integer q;parameter s0=3'b000,s1=3'b001,s2=3'b010,s3=3'b011,s4=3'b100,s5=3'b101,s6=3'b110,s7=3'b111;always@(posedge clk)begincase(presta)s0:beginkey_out<=0;q<=0;if(key_in==1)presta<=s0; elsepresta<=s1; ends1:beginkey_out<=0; if(q>9999) presta<=s2; elseq<=q+1; ends2:beginkey_out<=0; q<=0;if(key_in==1) presta<=s0; elsepresta<=s3; ends3:beginkey_out<=1; q<=0;if(key_in==0) presta<=s3; elsepresta<=s4; ends4:beginkey_out<=1;if(q>44444)presta<=s5;elseq<=q+1;ends5:beginq<=0;if(key_in==1)presta<=s0;elsepresta<=s3;ends6:beginpresta<=s0;ends7:beginpresta<=s0;endendcaseendend module按键模块module anjian(a,b,c,d,e,f,g,h,i,qout); input a,b,c,d,e,f,g,h,i;output [10:0] qout;reg [8:0] q;reg [10:0] qout;always@(a or b or c or d or e or f or g or h or i) begin q[0]=i;q[1]=h;q[2]=g;q[3]=f;q[4]=e;q[5]=d;q[6]=c;q[7]=b;q[8]=a;endalways@(q)begincase(q)9'b000000011:qout<=11'b00000000000;9'b000000001:qout<=11'b00000000000;9'b000000000:qout<=11'b00000000000;9'b000000010:qout<=11'b00000000000;default:qout<=qout;endcaseendendmodule分频模块module fenpin(clk_1M,yuzhi,pl_out);input clk_1M;input [10:0]yuzhi;reg [10:0]q;output pl_out;reg pl_out;always@(posedge clk_1M)beginif(yuzhi>0)beginif(q<yuzhi)< p="">beginq<=q+1;pl_out<=0;endelsebeginq<=11'b00000000000;pl_out<=1;endendelsebeginq<=11'b00000000000;pl_out<=1;endendendmodule五、原理图及仿真波形图六、心得体会由于之前对本次设计所需知识了解较少,所以在实验过程中遇到了很多的困难,真的很难,但是同样在解决各种困难的过程中也有所收获。
EDA课程设计音乐演奏一、教学目标本课程旨在通过EDA(电子设计自动化)技术的学习,使学生掌握音乐演奏的基本原理和技巧,培养学生的创新意识和实践能力。
具体目标如下:知识目标:使学生了解音乐演奏的基本知识,包括音乐理论、演奏技巧等;掌握EDA技术的基本原理和应用。
技能目标:培养学生能够运用EDA技术进行音乐创作和演奏的能力;提高学生的音乐表现力和演奏技巧。
情感态度价值观目标:培养学生对音乐的热爱和尊重,培养学生的创新意识和团队合作精神。
二、教学内容本课程的教学内容主要包括音乐演奏的基本原理、EDA技术的基本原理和应用、音乐创作和演奏技巧等。
具体安排如下:第一章:音乐演奏概述1.1 音乐理论和演奏技巧1.2 音乐演奏的生理和心理基础第二章:EDA技术的基本原理2.1 EDA技术的发展和应用2.2 EDA工具的使用和操作第三章:音乐创作和演奏技巧3.1 音乐的创作方法和过程3.2 演奏技巧的训练和提高第四章:音乐演奏实践4.1 集体演奏和合作4.2 个人演奏和创作展示三、教学方法本课程采用多种教学方法,包括讲授法、讨论法、案例分析法、实验法等。
通过多样化的教学方法,激发学生的学习兴趣和主动性,提高学生的学习效果。
四、教学资源本课程的教学资源包括教材、参考书、多媒体资料、实验设备等。
教材选用权威、实用的专业教材,参考书选择与课程内容相关的学术著作和案例集,多媒体资料包括音乐演奏视频、图片等,实验设备包括计算机、音响等。
教学资源的选择和准备应能够支持教学内容和教学方法的实施,丰富学生的学习体验。
五、教学评估本课程的评估方式包括平时表现、作业、考试等多种形式,以全面、客观、公正地评价学生的学习成果。
具体评估方式如下:1.平时表现:通过课堂参与、提问、小组讨论等环节,评估学生的学习态度和积极性。
2.作业:布置相关的音乐演奏练习和EDA技术任务,评估学生的实践能力和掌握程度。
3.考试:包括期中考试和期末考试,以闭卷形式进行,评估学生对音乐演奏和EDA技术的理论知识掌握。
郑州航空工业管理学院《EDA技术及应用》课程设计报告届通信工程专业班级题目:电子琴与自动演奏学号:姓名:同组人:指导老师:2013年07月07日1 课程设计要求硬件电子琴设计设计要求:(1)按下KEY1~KEY7 分别表示中音的DO、 RE 、 ME、 FA、 SOL、 LA、 SI.(2)按住KEY8同时按KEY1~KEY7 分别表示高音的DO、 RE 、 ME、 FA、SOL、 LA、 SI;(3)按下相应的键有对应LED灯指示;其他要求:(1)晶振为12 MHz.,采用CPLD 器件为ALTERA 的EPM7064AEL144-7N。
乐曲自动演奏机设计要求:(1)可以在电路上能自动演奏乐曲,在这里我们采用的是贝多芬的《欢乐颂》;(2)有相应的LED灯指示高低音;其他要求:(1)晶振为12 MHz;(2)采用CPLD 器件,为ALTERA 的EPM7064AEL144-7N。
硬件电子琴设计+乐曲自动演奏机最初我们选择的设计是电子琴,但是由于电子琴的设计较为基础,因此我们对电子琴的设计进行了改进,将其与乐曲自动演奏相结合,要求如下:设计要求:(1)按下KEY1—KEY7 分别表示中音的DO、 RE 、 ME、 FA、 SOL、 LA、SI;(2)对于电子琴,按下相应的键有对应LED灯指示;(3)可以在电路上能自动演奏乐曲,在这里我们采用的是贝多芬的《欢乐颂》,且有相应的LED灯指示高低音;(4)能实现电子琴和乐曲自动演奏功能的切换。
其他要求:(1)晶振为12 MHz;(2)采用CPLD 器件为ALTERA 的EPM7064AEL144-7N。
2 整体规划设计分析根据设计要求,由于乐曲自动演奏机和硬件电子琴的设计已经存在,我们对已有的设计进行修改,形成两个不同功能的模块,然后采用元件例化,拼接两个模块,同时附加一个选择功能模块,以实现乐曲自动演机和硬件电子琴两个功能。
硬件电子琴分析对于硬件电子琴,参考了实验时使用的程序,已经达到的要求有:(1)按下key1~key7 分别表示中音的DO、 RE 、 ME、 FA、 SOL、 LA、 S;(2)按下相应的键有对应LED灯指示。
EDA 电子琴课程设计1000字(As an AI language model, I can only provide the text in simplified Chinese as I am not able to generate texts in languages I am not trained for.)EDA电子琴课程设计一、课程背景与目标EDA电子琴课程是一门面向初学者的音乐教育课程。
该课程的主要目标是帮助学生了解电子琴的基本演奏方法和音乐知识,培养学生的音乐素养和演奏能力。
二、课程内容1. 电子琴的基本知识电子琴的基本构造、键盘的结构和尺寸、音色和声音效果的表达方式等相关基础知识。
2. 手指的基本运动包括手指的按键方法、按键力度、手指运动的节奏和速度等,以及在不同曲目中的应用。
3. 流行曲演奏方法基础曲目的演奏方法,并教授不同曲风和音乐风格的演奏方法,如流行、民谣、摇滚等。
4. 音乐基础知识包括音符、音阶、节奏、和弦、记号等,以及有关音乐表达和文化的一些知识。
三、课程特点1. 实用性强EDA电子琴课程以实用性为主要目标,帮助学生在最短时间内成功地学会电子琴的基本演奏技巧和音乐知识。
2. 用户体验好该课程采用现代化的在线教育理念,采用互动式教学方法,利用多媒体手段提高学生学习质量和体验。
3. 强调个性化针对不同年龄段和不同学生的个性,提供个性化的教学方案和教学内容。
同时,教师还会根据学生的进步和需求进行动态调整。
四、课程评价方式1. 以学生为中心EDA电子琴课程注重以学生为中心的教学模式,让学生成为课堂的主要参与者,在教师的引导下自主学习和探究。
2. 多元化评价对学生的成绩和表现采取多元化的评价方式,包括考试、作业、实践和上课表现等,使学生能够全面地了解自己的学习状况并不断提高。
五、总结EDA电子琴课程是一门具有实用性、个性化和多元化特点的音乐教育课程。
通过该课程的学习,学生可以快速初步掌握电子琴的基本演奏技巧和音乐知识,为开展音乐素养和演奏能力的培养打下基础。
eda简易电子琴课程设计一、课程目标知识目标:1. 学生能理解并掌握EDA简易电子琴的基本组成结构及其工作原理。
2. 学生能掌握基础电子元件的使用,如电阻、电容、二极管、三极管等,并能运用到电子琴的制作中。
3. 学生能理解并运用基础的电子音乐理论知识,如音符、音阶、和弦等。
技能目标:1. 学生能够独立完成EDA简易电子琴的组装和调试。
2. 学生能够通过编程实现对电子琴音调的控制,具备初步的编程能力。
3. 学生能够运用所学的电子琴知识创作简单的音乐作品,提高动手实践能力。
情感态度价值观目标:1. 学生通过动手实践,培养对电子科技的兴趣,提高创新意识和团队合作精神。
2. 学生在创作过程中,体验科技与艺术的结合,培养审美观念和艺术修养。
3. 学生在课程学习过程中,树立正确的价值观,认识到科技发展对生活的改善,增强社会责任感。
课程性质:本课程为实践性较强的课程,结合电子技术与音乐艺术,旨在培养学生的动手能力、创新意识和团队合作精神。
学生特点:六年级学生具备一定的认知能力和动手能力,对新鲜事物充满好奇,喜欢动手实践。
教学要求:教师需注重理论与实践相结合,关注学生的个体差异,鼓励学生主动探究,培养学生的创新思维和解决问题的能力。
同时,注重课程目标的分解与落实,确保学生能够达到预期学习成果。
二、教学内容根据课程目标,教学内容分为以下三个部分:1. 电子琴基础知识- 了解EDA简易电子琴的组成结构,包括键盘、主控板、音源、功放等。
- 学习基础电子元件(电阻、电容、二极管、三极管等)的功能和选型。
- 掌握基础的电子音乐理论知识,如音符、音阶、和弦等。
教学内容关联教材章节:第二章 电子元件与电路基础2. 电子琴制作与调试- 学习使用面包板进行电路搭建,掌握EDA简易电子琴的组装方法。
- 学习编程控制电子琴音调,实现不同音符的演奏。
- 学习调试电子琴,解决制作过程中遇到的问题。
教学内容关联教材章节:第三章 数字电路与编程基础、第四章 电子琴设计与制作3. 音乐创作与展示- 运用所学知识创作简单的音乐作品,进行小组内分享与评价。
EDA电子琴设计简介EDA电子琴,是一种基于电子技术的模拟乐器,利用数字信号处理技术实现各种音色的效果。
本文档将介绍EDA电子琴的设计流程,并提供相关的电路图和PCB布局文件。
设计流程EDA电子琴的设计流程主要包括以下几个步骤:1.需求分析:根据客户需求和市场需求确定所需的功能和性能参数。
例如,音色的种类和数量、键盘的大小和布局、输出接口等。
2.原理设计:根据需求分析确定的功能和性能参数,设计EDA电子琴的原理电路图。
例如,采样电路、滤波电路、AD/DA转换电路、MIDI接口等。
3.电路图设计:根据原理电路图,绘制EDA电子琴的各个电路组成部分的电路图。
例如,PWM输出电路、混响电路、调制电路等。
4.PCB设计:将电路图转换为PCB布局图,设计EDA电子琴的PCB布局。
需要考虑电路板大小、部件数量、功率消耗、电源接口等因素。
5.制造和测试:将PCB布局导出为Gerber文件,送至PCB厂家制造出EDA电子琴的电路板。
然后进行电子元件的贴装、引脚焊接、测试等制造过程。
6.调试和优化:对EDA电子琴进行软件和硬件的调试和优化,检查各种功能和效果是否正常工作。
7.批量生产:对EDA电子琴进行批量生产,并配备说明书和保修服务。
电路图与布局电路图以下是EDA电子琴的主要电路图://请在此处插入电路图,采用Markdown语法。
PCB布局以下是EDA电子琴的PCB布局文件://请在此处插入PCB布局文件,采用Markdown语法。
设计一款EDA电子琴需要经过多个环节的精心设计和制造,涉及到硬件和软件方面的知识。
本文档提供EDA电子琴的主要设计流程和相关的电路图和布局文件,希望能够为对此感兴趣的读者提供一些参考和帮助。
EDA_电子琴课程设计第一篇:EDA_电子琴课程设计基于VHDL原理图及文本输入法的简单电子琴电路的设计1.1 课程设计目的本课程设计主要是基于VHDL文本输入法设计乐曲演奏电路,该系统基于计算机中时钟分频器的原理,采用自顶向下的设计方法来实现,通过按键输入来控制音响或者自动演奏已存入的歌曲。
系统由乐曲自动演奏模块、音调发生模块和数控分频模块三个部分组成。
系统实现是用硬件描述语言VHDL按模块化方式进行设计,然后进行编程、时序仿真、电路功能验证,奏出美妙的乐曲(当然由于条件限制,暂不进行功能验证,只进行编程和时序仿真)。
该设计最重要的一点就是通过按键控制不同的音调发生,每一个音调对应不同的频率,从而输出对应频率的声音。
1.2 课程设计内容(1)设计一个简易的八音符电子琴,它可通过按键输入来控制音响。
(2)系统演奏时可以选择是手动演奏(由键盘输入)还是自动演奏已存入的乐曲。
(3)能够自动演奏多首乐曲,且乐曲可重复演奏。
1.3 课程设计原理本课程设计目的在于灵活运用EDA技术编程实现一个简易电子琴的乐曲演奏,它要求在实验箱上构造一个电子琴电路,不同的音阶对应不同频率的正弦波。
按下每个代表不同音阶的按键时,能够发出对应频率的声音。
故系统可分为乐曲自动演奏模块(AUTO)、音调发生模块(TONE)和数控分频模块(FENPIN)三部分。
系统的整体组装设计原理图如图1-1所示。
图1-1 系统的整体组装设计原理图由于设计分模块组成,每个单独的模块都是一个完整的源程序,分别实现不同性质的功能,但是每个模块又是紧密关联的,前一个模块的输出很可能是后一模块的输入。
如AUTO模块的音符信号输出就是TONE模块的音符信号输入。
另外,时钟脉冲信号在本课程设计中用的最多,用处也最大,一般情况下时钟信号处上升沿有效,判断和控制各个计数器计数多少。
简易电子琴的设计过程根据系统设计要求,系统该系统基于计算机中时钟分频器的原理,设计采用自顶向下的设计方法,通过按键输入来控制音响或者自动演奏已存入的歌曲。
eda电子琴课程设计一、课程目标知识目标:1. 学生能理解EDA电子琴的基本工作原理,掌握电子琴的构造及各部分功能。
2. 学生能掌握基本的电子琴演奏技巧,如音阶、和弦的演奏。
3. 学生能了解并运用电子琴的音色、节奏变化进行创作。
技能目标:1. 学生能运用电子琴进行简单的曲目演奏,提高演奏技能。
2. 学生能通过电子琴进行音乐创作,培养创新意识和动手能力。
3. 学生能通过小组合作,与他人协作完成一首乐曲的演奏。
情感态度价值观目标:1. 学生培养对音乐的热爱,提高音乐素养,增强审美能力。
2. 学生在课程中培养耐心、细心和团队协作精神,提升个人品质。
3. 学生通过音乐表达自己的情感,学会尊重他人,培养良好的人际交往能力。
课程性质:本课程以实践操作为主,理论讲解为辅,注重培养学生的动手能力和创新能力。
学生特点:五年级学生,对新鲜事物充满好奇心,具备一定的音乐基础,喜欢动手实践。
教学要求:结合学生特点,注重课程趣味性,激发学生学习兴趣,鼓励学生积极参与,培养创新意识和团队协作精神。
在教学过程中,将课程目标分解为具体的学习成果,便于教学设计和评估。
二、教学内容根据课程目标,教学内容分为以下三个部分:1. 电子琴基础知识:- 电子琴的构造及各部分功能- 电子琴的基本工作原理- 音色、节奏的选择与运用关联教材章节:第一章 电子琴概述2. 电子琴演奏技巧:- 音阶、和弦的演奏方法- 基本指法训练- 简单曲目的演奏关联教材章节:第二章 电子琴演奏技巧3. 音乐创作与团队协作:- 运用电子琴进行音乐创作- 小组合作完成乐曲的演奏- 舞台表现与情感表达关联教材章节:第三章 音乐创作与团队协作教学进度安排:1. 电子琴基础知识(2课时)2. 电子琴演奏技巧(4课时)3. 音乐创作与团队协作(4课时)教学内容注重科学性和系统性,结合教材章节,由浅入深地展开。
在教学过程中,教师需根据学生的接受程度,适时调整教学进度,确保学生充分掌握所学知识。
EDA上机实验报告简易电子琴学院:电子工程学院班级:020831简易电子琴1.系统原理框图扬声器在不同频率的信号驱动下将发出不同的声音。
本实验是利用实验板上的8个按键产生不同的音阶信号,按键不同时,不同的音阶信号产生不同的频率信号去驱动扬声器,从而实现电子琴的功能。
根据音乐理论,每个8度音之间可分为12个半音,每个半音之间的频率相差(0599.1212 Hz )。
若C 调第一个音名的频率为261.63Hz ,则各音名与频率以及2MHz 时钟的分频系数的关系如表所示。
表1—1音名与频率以及2MHz 时钟的分频系数的关系器产生按键编码信号;时钟分频器产生不同的分频系数,将输入时钟频率分频至各音名对应的频率值,从而驱动扬声器发出该频率的声音。
键盘输入扬声器2MHz 时钟输入图1—2 简易电子琴的系统框图图1—3为实现简易电子琴的顶层原理图。
其中,KEYBOARD 模块实现对键盘的编码,K[7..0]为键盘输入,SEL[2..0]为3位二进制编码输出,EN 为使能输出信号(高电平有效);M_FREQ 模块实现分频功能,CLK 为时钟输入,当SEL[2..0]编码输入不同,且EN 输入为高电平时,分频器产生不同的频率值,当SPK 输出为1时扬声器响,否则静音。
图1—3实现简易电子琴的顶层原理图2.模块设计①键盘编码器VHDL描述文件keyboard.vhd如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity keyboard isport(k: in std_logic_vector(7 downto 0); --8位键盘输入sel: out std_logic_vector(2 downto 0); --3位键盘编码输出en: out std_logic ---使能输出);end keyboard;architecture arc_keyboard of keyboard isbeginprocess(k)begincase k iswhen"11111110"=>sel<="001"; --按键,产生编码en<='1';when"11111101"=>sel<="010";en<='1';when"11111011"=>sel<="011";en<='1';when"11110111"=>sel<="100";en<='1';when"11101111"=>sel<="101";en<='1';when"11011111"=>sel<="110";en<='1';when"10111111"=>sel<="111";en<='1';when"01111110"=>sel<="000";en<='1';when others=> sel<="000";en<='0';end case;end process;end arc_keyboard;②时钟分频器VHDL描述文件m_freq,vhd如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity m_freq isport(clk,en:in std_logic;sel: in std_logic_vector(2downto 0); --3位键盘编码输入spk: out std_logic --扬声器控制信号输出);end m_freq;architecture arc_m_freq of m_freq issignal count_ld,count:std_logic_vector(12 downto 0);beginprocess(sel)begincase sel iswhen "000" => count_ld <= "0111011101110"; --3822when "001" => count_ld <= "1110111011011"; --7643when "010" => count_ld <= "1101001010101"; --6809when "011" => count_ld <= "1011110110010"; --6066when "100" => count_ld <= "1011001011101"; --5725when "101" => count_ld <= "1001111101101"; --5101when "110" => count_ld <= "1000111000000"; --4544when "111" => count_ld <= "0111111010000"; --4048when others => count_ld <= "0111011101110"; --3822end case;end process;processbeginwait until clk'event and clk='1'; --计数器同步清零if en='0' thencount<=(others=>'0');spk<='1'; --当计数值小于count_ld/2时,spk=’1’,且加1计数elsif count<('0'&count_ld(12 downto 1)) thencount<=count+1;spk<='1';--当计数值大于count_ld/2且小于count_ld时,spk=’0’,且加1计数elsif count<count_ld thencount<=count+1;spk<='0';--当计数值小于count_ld时,计数器清零,spk=’1’else count<=(others=>'0');spk<='1';end if;end process;end arc_m_freq;3.原理图和波形仿真图①键盘编码器的.bsf图:②时钟分频器的.bsf图:③简易电子琴的顶层原理图.bdf:⑤波形仿真图:⑴按键编码为’11111110’时波形图:⑵按键编码为’11111101’时波形图:⑶按键编码为’01111111’时波形图:其它的波形图也和这差不多,只要分别改变k[7]到k[0]的高低电平达到和编码的高低电平相同,然后仿真再看波形图。
EDA课程设计基于VHDL文本输入法的乐曲演奏电路的设计摘要本课程设计主要采用EDA技术设计一个简易的八音符电子琴,它可通过按键输入来控制音响从而演奏出已存入的乐曲。
在课程设计中,系统开发平台为Windows XP,程序设计采用VHDL语言,程序运行平台为MAX+plusⅡ。
然后编写程序实现电子琴的各项功能,使不同的音阶对应不同频率的正弦波,按下不同的键时发出对应频率的声音。
程序通过调试运行,时序仿真,电路功能验证,顺利地实现了设计目标。
关键词电子琴;EDA;VHDL;音阶;频率Abstract The main use of this curriculum design EDA technology to design a simple eight-note organ, it can be key to control the audio input so as to have been deposited in a concert of music. In the course design, system development platform for Windows 2000, the procedures VHDL design language, platform for running MAX + plus Ⅱ. And then program to achieve the various functions of the organ, so that different scale corresponds to a different frequency sine wave, press different keys when the voice of the corresponding frequency. Running through the debugging process, timing simulation, functional verification circuit, successfully achieved the goal of the design. Key Words Electric piano; EDA; VHDL; scale; frequency1 引言随着信息科学的进步,现代电子产品的性能越来越高,复杂度越来越大,更新步伐也越来越快,电子技术的发展进入了划时代的阶段。
EDA与数字系统课程设计报告院、系:信息工程学院专业:电子信息科学与技术学号:200912411姓名:张海超同组人:孙国锐花卫东指导教师:段美霞郑辉二00一一年十二月三十日目录(空两行) 1………………………………………………………………页码2………………………………………………………………页码(要求:给出一级目录,宋体加粗,四号字,1.5倍行距。
)(报告正文部分):(要求:正文部分一律用小四号字,宋体,1.5倍行距。
一级大标题靠左,加粗。
二级大标题靠左,不加粗。
)课程设计的内容如下:1.课程设计目的(1)熟悉Quartus 2软件的使用。
(2)熟悉EDA实验箱的基本使用。
(3)学习HDL基本单元电路的设计应用。
进一步掌握EDA的多层次设计方法。
(4)熟悉频率发生器的的原理。
2.课程设计题目描述和要求设计一个简易的的电子琴,有1,2,3,4,5,6,7这几个音阶,当按对应的按键时,发出声音的同时显示所按的音符。
还有自动演奏的功能,当自动演奏的同时显示对应的高中低音符;3.课程设计报告内容3.1本设计由分频器,手动/自动演奏模块、频率发生器、乐谱3个模块组成。
分频器是产生4Hz频率的;手动/自动演奏模块的作用是实现手动和自动演奏音乐的控制;频率发生器是产生各种音阶对应频率的,得到与1,2,3,4,5,6,7,音符(包含高中低三种)对应的频率。
流程:1 产生4Hz的频率;2 由song产生控制信号song_on,当song改变时song_on取反并一直保持,直到song再次改变,也只有这样song_on才能控制手动和自动;3 如果song_on为低电平时,手动演奏,反之则自动演奏;4 手动演奏时,按照输入的按键in[n](对应1234567)产生对应频率speaker。
并在当时的状态(1234567)赋给high0让输出LED显示;5 自动演奏时,按照乐谱高中低产生对应的频率out,并把out赋值给speaker。
湖南人文科技学院课程设计报告课程名称:EDA技术与VHDL设计题目:简易电子琴系别:通信与控制工程系专业:电子信息工程班级: 2010 级1班学生姓名: 刘滨蒋卓学号: 10409121 10409123起止日期: 2013年6月13日~2013年6月27日指导教师:田汉平岳舟教研室主任:侯海良指导教师评语:指导教师签名:年月日成绩评定项目权重成绩刘滨蒋卓1、设计过程中出勤、学习态度等方面0.22、课程设计质量与答辩0.53、设计报告书写及图纸规范程度0.3总成绩教研室审核意见:教研室主任签字:年月日教学系审核意见:主任签字:年月日摘要本系统是采用EDA技术设计的一个简易的八音符电子琴,该系统基于计算机中时钟分频器的原理,采用自顶向下的设计方法来实现,它可以通过按键输入来控制音响。
系统由频率选择模块、分频模块和扬声器输出模块三个部分组成。
系统实现是用硬件描述语言VHDL按模块化方式进行设计,然后进行编程、时序仿真、整合。
本系统功能比较齐全,有一定的使用价值。
关键词:电子琴;EDA;VHDL目录.课程设计的目的 (1).设计要求 (1).开发工具简介 (1)(1) EDA技术 (1)(2)硬件描述语言—VHDL (2)1、方案论证与对比 (4)1.1方案一 (4)1.2方案二 (4)1.3方案三 (4)2、各功能块电路及工作原理 (6)2.1实体部分 (6)2.2节拍显示 (6)2.3频率选择模块 (6)2.4分频模块 (7)2.5扬声器输出模块 (8)2.6 波形仿真 (8)3、心得与总结 (10)4、参考文献 (11)5、附录 (12)简易电子琴设计·课程设计的目的巩固和运用所学课程,理论联系实际,提高分析、解决计算机技术实际问题的独立工作能力,通过对一个简易的八音符电子琴的设计,进一步加深对计算机原理以及数字电路应用技术方面的了解与认识,进一步熟悉数字电路系统设计、制作与调试的方法和步骤。
武汉理工大学《电子线路EDA》课程设计课程设计任务书学生姓名: - 专业班级:电子科学与技术0903班指导教师:李成军工作单位:信息工程学院题目: 简易电子琴设计初始条件:QUARTUS 软件,微机, EDA-IV型实验箱。
课题要求:结合所学的知识,利用QUARTUS采用VHDL语言设计乐曲演奏电路,可以演奏8个音符:1、2、3、4、5、6、7、1。
课题内容:时间安排:1、2011年6月11日集中,听老师作课设安排与报告格式要求说明。
2、2012年6月12日至6月16日,选好课题,学习相关资料,开始课设。
3、2012年6月17日至6月19日,进行硬件调试。
4、2012年6月20至6月21日,撰写实验报告。
5、2012年6月22日,检查硬件,进行答辩,提交设计报告。
设计一个简易的八音符电子琴,可以通过按键输入来控制蜂鸣器输出不同音调。
指导教师签名: 2012年月日系主任(或责任教师)签名: 2012年月日武汉理工大学《电子线路EDA》课程设计目录摘要 (3)Abstract (4)绪论 (5)1设计简介 (6)1.1 课程设计的目的 (6)1.2 课程设计的内容 (6)2.VHDL简介 (7)2.1 VHDL的特点 (7)2.2VHDL特点 (8)2.3VHDL设计流程 (8)3程序过程 (9)3.1设计总体模块 (9)3.2模块原理及程序 (9)4波形仿真 (12)5总结体会 (13)参考文献 (14)附录源程序 (15)武汉理工大学《电子线路EDA》课程设计摘要随着基于CPLD的EDA技术的发展和应用领域的扩大与深入,EDA技术在电子信息、通信、自动控制用计算机等领域的重要性日益突出。
作为一个学电子信息专业的学生,我们必须不断地了解更多的新产品信息,这就更加要求我们对EDA 有个全面的认识。
本程序设计的是简易电子琴的设计。
采用EDA作为开发工具,VHDL语言为硬件描述语言,QUARTUS作为程序运行平台,所开发的程序通过调试运行、波形仿真验证,初步实现了设计目标。
基于VHDL原理图及文本输入法的简单电子琴电路的设计1.1 课程设计目的本课程设计主要是基于VHDL文本输入法设计乐曲演奏电路,该系统基于计算机中时钟分频器的原理,采用自顶向下的设计方法来实现,通过按键输入来控制音响或者自动演奏已存入的歌曲。
系统由乐曲自动演奏模块、音调发生模块和数控分频模块三个部分组成。
系统实现是用硬件描述语言VHDL按模块化方式进行设计,然后进行编程、时序仿真、电路功能验证,奏出美妙的乐曲(当然由于条件限制,暂不进行功能验证,只进行编程和时序仿真)。
该设计最重要的一点就是通过按键控制不同的音调发生,每一个音调对应不同的频率,从而输出对应频率的声音。
1.2 课程设计内容(1)设计一个简易的八音符电子琴,它可通过按键输入来控制音响。
(2)系统演奏时可以选择是手动演奏(由键盘输入)还是自动演奏已存入的乐曲。
(3)能够自动演奏多首乐曲,且乐曲可重复演奏。
1.3 课程设计原理本课程设计目的在于灵活运用EDA技术编程实现一个简易电子琴的乐曲演奏,它要求在实验箱上构造一个电子琴电路,不同的音阶对应不同频率的正弦波。
按下每个代表不同音阶的按键时,能够发出对应频率的声音。
故系统可分为乐曲自动演奏模块(AUTO)、音调发生模块(TONE)和数控分频模块(FENPIN)三部分。
系统的整体组装设计原理图如图1-1所示。
图1-1 系统的整体组装设计原理图由于设计分模块组成,每个单独的模块都是一个完整的源程序,分别实现不同性质的功能,但是每个模块又是紧密关联的,前一个模块的输出很可能是后一模块的输入。
如AUTO 模块的音符信号输出就是TONE模块的音符信号输入。
另外,时钟脉冲信号在本课程设计中用的最多,用处也最大,一般情况下时钟信号处上升沿有效,判断和控制各个计数器计数多少。
2 简易电子琴的设计过程根据系统设计要求,系统该系统基于计算机中时钟分频器的原理,设计采用自顶向下的设计方法,通过按键输入来控制音响或者自动演奏已存入的歌曲。
它由乐曲自动演奏模块、音调发生模块和数控分频模块三部分组成。
2.1 乐曲自动演奏模块乐曲自动演奏模块的作用是产生8位发生控制输入信号。
当进行自动演奏时,由存储在此模块的8位二进制数作为发声控制输入,从而自动演奏乐曲。
该模块的VHDL源程序主要由3个工作进程组成,分别为PULSE0,MUSIC和COM1。
PULSE0的作用是根据键盘输入(自动演奏)的值(0或1)来判断计数器COUNT以及脉冲CLK2的输出值。
部分源程序如下:PULSE0:PROCESS(CLK,AUTO) --工作进程开始VARIABLE COUNT:INTEGER RANGE 0 TO 8; --定义计数器变量,值从0到8IF AUTO='1'THEN --键盘输入为1COUNT:=0;CLK2<='0'; --计数器值指0,时钟信号为0ELSIF(CLK'EVENT AND CLK='1')THEN --时钟输入信号为1COUNT:=COUNT+1; --计数器加1当确定了时钟信号输出的值后,在第二个PROCESS中就可以由它控制8位发声控制输入信号了。
即CLK2的值为0时,COUNT0为1。
最后的COM1便是由前两个PROCESS所确定的COUNT0、AUTO和键盘输入信号值INDEX2将8位的二进制数转化为音符信号的输出,达到自动演奏的目的。
部分源程序如下:IF AUTO='0'THENCASE COUNT0 ISWHEN 0=>INDEX0<="00000100"; --3WHEN 4=>INDEX0<="00010000"; --5该模块最主要的用途就是将输入二进制数转化为发声控制输入,是产生音符的重要步骤, AUTO模块的源程序符号编辑图如图3-1。
图3-1 AUTO模块的符号编辑图2.1.1乐曲演奏模块文本程序:--程序名称:AUTO.VHD--程序功能:采用VHDL语言编程产生8位发声控制输入信号。
--电子班张目(12007243818)--LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY AUTO ISPORT(CLK: IN STD_LOGIC; --系统时钟信号AUTO: IN STD_LOGIC; --键盘输入/自动演奏CLK2: BUFFER STD_LOGIC; --时钟输出INDEX2: IN STD_LOGIC_VECTOR(7 DOWNTO 0); --键盘输入信号INDEX0: OUT STD_LOGIC_VECTOR(7 DOWNTO 0)); --音符信号输出END AUTO;ARCHITECTURE BEHAVIORAL OF AUTO ISSIGNAL COUNT0:INTEGER RANGE 0 TO 31; --定义信号计数器,有32个信号元素BEGINPULSE0:PROCESS(CLK,AUTO) --PULSE0工作进程开始VARIABLE COUNT:INTEGER RANGE 0 TO 8; --定义变量计数器,从0到8BEGINIF AUTO='1'THEN --键盘输入为1COUNT:=0;CLK2<='0'; --计数器值为0,时钟信号2幅值为0ELSIF(CLK'EVENT AND CLK='1')THEN --输入的时钟信号为其他值COUNT:=COUNT+1; --计数器加1即为1IF COUNT=4 THENCLK2<='1';ELSIF COUNT=8 THENCLK2<='0';COUNT:=0;END IF;END IF;END PROCESS;MUSIC:PROCESS(CLK2) --MUSIC工作进程开始BEGINIF(CLK2'EVENT AND CLK2='1')THEN --时钟信号2为1IF(COUNT0=31)THEN --计数器值为31COUNT0<=0; --计数器清0ELSECOUNT0<=COUNT0+1;END IF;END IF;END PROCESS;COM1:PROCESS(COUNT0,AUTO,INDEX2)BEGINIF AUTO='0'THEN --键盘输入为0CASE COUNT0 IS --由计数器从0到31的取值判断音符信号的8位二进制数 WHEN 0=>INDEX0<="00000100"; --3WHEN 1=>INDEX0<="00000100"; --3WHEN 2=>INDEX0<="00000100"; --3WHEN 3=>INDEX0<="00000100"; --3WHEN 4=>INDEX0<="00010000"; --5WHEN 5=>INDEX0<="00010000"; --5WHEN 6=>INDEX0<="00010000"; --5WHEN 7=>INDEX0<="00100000"; --6WHEN 8=>INDEX0<="10000000"; --8WHEN 9=>INDEX0<="10000000"; --8WHEN 10=>INDEX0<="10000000"; --8WHEN 11=>INDEX0<="00000100"; --3WHEN 12=>INDEX0<="00000010"; --2WHEN 13=>INDEX0<="00000010"; --2WHEN 14=>INDEX0<="00000001"; --1WHEN 15=>INDEX0<="00000001"; --1WHEN 16=>INDEX0<="00010000"; --5WHEN 17=>INDEX0<="00010000"; --5WHEN 18=>INDEX0<="00001000"; --4WHEN 19=>INDEX0<="00001000"; --4WHEN 20=>INDEX0<="00001000"; --4WHEN 21=>INDEX0<="00000100"; --3WHEN 22=>INDEX0<="00000010"; --2WHEN 23=>INDEX0<="00000010"; --2WHEN 24=>INDEX0<="00010000"; --5WHEN 25=>INDEX0<="00010000"; --5WHEN 26=>INDEX0<="00001000"; --4WHEN 27=>INDEX0<="00001000"; --4WHEN 28=>INDEX0<="00000100"; --3WHEN 29=>INDEX0<="00000100"; --3WHEN 30=>INDEX0<="00000010"; --2WHEN 31=>INDEX0<="00000010"; --2WHEN OTHERS=>NULL;END CASE;ELSE INDEX0<=INDEX2; --将音符信号0的值赋给音符信号2 END IF;END PROCESS;END BEHAVIORAL;2.2 音调发生模块音调发生模块的作用是产生音阶的分频预置值。