21按键简易电子琴可自动播放乐曲.doc

上传人:李司机 文档编号:1149476 上传时间:2022-07-05 格式:DOC 页数:14 大小:139.96KB
返回 下载 相关 举报
21按键简易电子琴可自动播放乐曲.doc_第1页
第1页 / 共14页
21按键简易电子琴可自动播放乐曲.doc_第2页
第2页 / 共14页
21按键简易电子琴可自动播放乐曲.doc_第3页
第3页 / 共14页
21按键简易电子琴可自动播放乐曲.doc_第4页
第4页 / 共14页
21按键简易电子琴可自动播放乐曲.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《21按键简易电子琴可自动播放乐曲.doc》由会员分享,可在线阅读,更多相关《21按键简易电子琴可自动播放乐曲.doc(14页珍藏版)》请在三一办公上搜索。

1、1 设计目的任务及要求 2设计要求简易电子琴的功能21.1 设计目的 21.2 设计要求 42、设计容实现过程2一 、设计思路 1二 、设计实现 21按键按键输入的的判断5A.代码 2B.波形仿真图 62按键去抖动 6A.代码 6B.波形仿真图 73音乐自动播放 7A.代码 7B.波形仿真图 94二选一选择器 9A.代码 9B.波形仿真图 95按键的输出 10A.代码 10B.波形仿真图 116分频预置数的产生 11A.代码 12B.波形仿真图 147分频器 14A.代码 14B.波形仿真图 163、系统仿真与调试 24、完毕语感想和心得等205、主要参考文献 2基于基于 FPGAFPGA 的

2、简易电子琴设计的简易电子琴设计物理与电子工程学院电子信息工程1 1 设计目的任务及要求设计目的任务及要求1 简易电子琴简易电子琴1)设计一个能发出 7 个音阶的系统并能多种模式播放歌曲歌曲可自定,至少3 首2)利用一基准脉冲产生 1,2,3, 。 。 。共 7 个音阶信号,进展弹奏;3)用指示灯显示节拍;4)*能对弹奏乐曲存储并回放。1.11.1 设计目的设计目的1、熟悉 VHDL 语言2、学习电子琴电子琴的设计,调试,仿真以及对仿真波形的调试1.21.2 设计要求设计要求简易电子琴的功能简易电子琴的功能1、设计一个能发出设计一个能发出 7 7 个音阶的系统并能多种模式播放歌曲个音阶的系统并能

3、多种模式播放歌曲歌曲可自定,至少歌曲可自定,至少首首2 2、利用一基准脉冲产生利用一基准脉冲产生 1 1,2 2,3 3, 。 。 。共。共 7 7 个音阶信号,进展弹奏;个音阶信号,进展弹奏;3 3、用指示灯显示节拍;用指示灯显示节拍;4、* *能对弹奏乐曲存储并回放能对弹奏乐曲存储并回放。2 2、设计容、设计容一一 、设计思路、设计思路自动播放Notetabs二选一选择器 mu*21c按 键 输 入按键输入判断 ceshi按键去抖动FEN按 键 输 出SWI分频预置数ToneTabs分频器SPEAKER发出音乐spkout二 、设计实现本设计实现了能发出底、中、高三个节拍的本设计实现了能发

4、出底、中、高三个节拍的 7 7 个音阶的个音阶的系统,整个系统共有系统,整个系统共有 3 3 首歌曲,这三首歌曲具有顺序播放和首歌曲,这三首歌曲具有顺序播放和随机切换歌曲的播放功能。随机切换歌曲的播放功能。能随意弹奏每首歌曲,同时具有数码管显示每个音阶所对应的阿拉伯数字,不同的节拍我们也有相应的指示灯作为区分,在低音时无指示灯亮,中音时有一个亮,高音时有两个指示灯亮。11按键输入的判断按键输入的判断:a.代码LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ceshi ISPORT(s

5、: IN STD_LOGIC; Y:out std_logic);END ENTITY ceshi;ARCHITECTURE FUN OF ceshi ISbeginPROCESS(s)BEGIN IF s=1 THEN Y =1; ELSE y=0; end if; end process; END ARCHITECTURE FUN;b.波形仿真图2按键去抖动a.代码LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY FEN ISPORT(CLK,KIN:IN STD_LOGIC; K

6、OUT:OUT STD_LOGIC);END;ARCHITECTURE BHV OF FEN ISSIGNAL KL,KH:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(CLK,KIN,KL,KH) BEGINIF CLKEVENT AND CLK=1 THENIF(KIN=0) THEN KL=KL+1;ELSE KL=0000;END IF;IF(KIN=1) THEN KH=KH+1;ELSE KH1100) THEN KOUT0111) THEN KOUT=0;END IF;END IF;END PROCESS;END;b.波形仿真图3产生节拍控制

7、和音阶选择信号a.代码3音乐自动播放LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY NOTETABS ISPORT(CLK : IN STD_LOGIC;S : IN STD_LOGIC_VECTOR(1 DOWNTO 0);TONEINDE* : OUT STD_LOGIC_VECTOR( 4 DOWNTO 0);END ENTITY NOTETABS;ARCHITECTURE FUN OF NOTETABS ISPONENT MUSIC PORT(address: IN STD_

8、LOGIC_VECTOR (8 DOWNTO 0);clock: IN STD_LOGIC ;q: OUT STD_LOGIC_VECTOR (4 DOWNTO 0);END PONENT;SIGNAL COUNTER : STD_LOGIC_VECTOR(8 DOWNTO 0);BEGINPROCESS(CLK,COUNTER)BEGIN IF (COUNTER=432) THEN COUNTER=000000000; ELSIF (CLKEVENT AND CLK =1) THEN COUNTER144) THEN COUNTER=000000000;ELSIF(S=10 AND (COU

9、NTER 288) THEN COUNTER=010010000;ELSIF (S=01 AND (COUNTER 432) THEN COUNTERCOUNTER,q=TONEINDE*,clock=CLK); END ARCHITECTURE FUN;b.波形仿真图4二选一选择器a.代码LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mu*21c IS PORT(k_code,toneinde*:IN STD_LOGIC_VECTOR(4 DOWNTO 0); key:IN STD_LOGIC; inde*:OUT STD_LOGIC_VEC

10、TOR(4 DOWNTO 0); END;ARCHITECTURE five OF mu*21c IS BEGIN PROCESS(k_code,toneinde*,key) BEGIN IF key=1 THEN inde*=k_code; ELSE inde*=toneinde*; END IF; END PROCESS; END five;b.波形仿真图5按键的输出a.代码LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY SWI ISPORT(A,B,C,D,E,F,G ,H,I,K,L,M,N,O,P,Q,R,S,T,U: IN STD_L

11、OGIC;Y : OUT STD_LOGIC_VECTOR( 4 DOWNTO 0);END ENTITY SWI;ARCHITECTURE FUN OF SWI ISSIGNAL J : STD_LOGIC_VECTOR( 19 DOWNTO 0);BEGINJ Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y NULL;END CASE;END PROCESS P1;END ARCHITECTURE FUN;b.波形仿真图6分频预置数的产生a.代码LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;ENTITY ToneTa

12、ba IS PORT ( Inde* : IN STD_LOGIC_VECTOR (4 DOWNTO 0); CODE : OUT STD_LOGIC_VECTOR (3 DOWNTO 0); HIGH1,HIGH2 : OUT STD_LOGIC; Tone : OUT STD_LOGIC_VECTOR (10 DOWNTO 0);END; ARCHITECTURE one OF ToneTaba IS BEGIN Search : PROCESS(Inde*) BEGIN CASE Inde* IS WHEN 00000 = Tone=; CODE=0000; HIGH1 =0;HIGH2

13、 Tone=; CODE=0001; HIGH1 =0;HIGH2 Tone=; CODE=0010; HIGH1 =0;HIGH2 Tone=; CODE=0011; HIGH1 =0;HIGH2 Tone=; CODE=0100; HIGH1 =0;HIGH2 Tone=; CODE=0101; HIGH1 =0;HIGH2 Tone=; CODE=0110; HIGH1 =0;HIGH2 Tone=; CODE=0111; HIGH1 =0;HIGH2 Tone=; CODE=0001; HIGH1 =1;HIGH2 Tone=; CODE=0010; HIGH1 =1;HIGH2 To

14、ne=; CODE=0011; HIGH1 =1;HIGH2 Tone=; CODE=0100; HIGH1 =1;HIGH2 Tone=; CODE=0101; HIGH1 =1;HIGH2 Tone=; CODE=0110; HIGH1 =1;HIGH2 Tone=; CODE=0111; HIGH1 =1;HIGH2 Tone=; CODE=0001; HIGH1 =1;HIGH2 Tone=; CODE=0010; HIGH1 =1;HIGH2 Tone=; CODE=0011; HIGH1 =1;HIGH2 Tone=; CODE=0100; HIGH1 =1;HIGH2 Tone=

15、; CODE=0101; HIGH1 =1;HIGH2 Tone=; CODE=0110; HIGH1 =1;HIGH2 Tone=; CODE=0111; HIGH1 =1;HIGH2 NULL; END CASE; END PROCESS; END;b.波形仿真图7分频器a.代码LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY SPEAKER ISPORT(CLK : IN STD_LOGIC;TONE : IN STD_LOGIC_VECTOR(10 DOWNTO 0);SPKS

16、 : OUT STD_LOGIC);END ENTITY SPEAKER;ARCHITECTURE FUN OF SPEAKER ISSIGNAL PRECLK,FULLSPKS : STD_LOGIC; BEGIN PROCESS(CLK) VARIABLE COUNT4 : STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN PRECLK11 THEN PRECLK=1;COUNT4 :=0000; ELSIF CLKEVENT AND CLK = 1 THEN COUNT4:=COUNT4+1; END IF; END PROCESS; PROCESS(PRECLK,

17、TONE) 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;PROCESS(FULLSPKS) VARIABLE COUNT2 : STD_LOGIC; BEGIN IF FULLSPKSEVENT AND FULLSPKS= 1 THEN COUNT2 := NOT COUNT2;IF COUNT2 = 1 THEN SPKS=1;ELSE SPKS =0;END IF;END IF;END PROCESS;END ARCHITECTURE FUN;b.波形仿真图3 3、系统仿真与调试、系统仿真与调试A、原理图:B、波形仿真C、PCB 图:D、调试图:5 5、主要参考文献主要参考文献1 松黄继业 EDA 技术实用数据 VHDL 版第五版科学 20212 昕燕,周凤臣.EDA 技术实验与课程设计.清华大学,2006.3 阎石,数学电子技术根底.高等教育,2003.

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号