




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 梁祝 电子琴程序LIBRARY IEEE; - 硬件演奏电路顶层设计USE IEEE.STD_LOGIC_1164.ALL;ENTITY Songer IS PORT (
2、 CLK12MHZ : IN STD_LOGIC; -音调频率信号 CLK8HZ : IN STD_LOGIC;
3、0; -节拍频率信号 CODE1 : OUT STD_LOGIC_VECTOR (3 DOWNTO 0);- 简谱码输出显示
4、0; HIGH1 : OUT STD_LOGIC; -高8度指示 SPKOUT : OUT STD_LOGIC );-声音输出 END;ARCHITECTURE one OF Songer IS COMPONENT NoteTabs PORT ( clk : IN STD_LOGIC;
5、160; ToneIndex : OUT STD_LOGIC_VECTOR (3 DOWNTO 0) ); END COMPONENT; COMPONENT ToneTaba PORT ( Index : IN STD_LOGIC_VECTOR (3 DOWNTO 0) ; &
6、#160; CODE : OUT STD_LOGIC_VECTOR (3 DOWNTO 0) ; HIGH : OUT STD_LOGIC; T
7、one : OUT STD_LOGIC_VECTOR (10 DOWNTO 0) ); END COMPONENT; COMPONENT Speakera PORT ( clk : IN STD_LOGIC; Ton
8、e : IN STD_LOGIC_VECTOR (10 DOWNTO 0); SpkS : OUT STD_LOGIC ); END COMPONENT; SIGNAL Tone : STD_LOGIC_VECTOR (10 DOWNTO 0); SIGNAL ToneIndex : STD_LOG
9、IC_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=>CLK12MHZ,Tone=>Tone, SpkS=>SPKOUT );END; 1 / 14LIBRARY IEE
10、E;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY NoteTabs ISPORT ( clk : IN STD_LOGIC; ToneIndex : OUT STD_LOGIC_VECTOR (3 DOWNTO 0) );END;ARCHITECTURE one OF NoteTabs ISCOMPONENT MUSIC
11、; -音符数据ROM PORT(address : IN STD_LOGIC_VECTOR (7 DOWNTO 0); inclock : IN STD_LOGIC ; q : OUT STD_LOGIC_VECTOR (3 DOWNTO 0);END COMPONENT; SIGNAL Counter : ST
12、D_LOGIC_VECTOR (7 DOWNTO 0);BEGIN CNT8 : PROCESS(clk, Counter) BEGIN IF Counter=138 THEN Counter <= "00000000" ELSIF (clk'EVENT AND clk = '1') THEN C
13、ounter <= Counter+1; END IF; END PROCESS; u1 : MUSIC PORT MAP(address=>Counter , q=>ToneIndex, inclock=>clk); END;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY Speakera ISPORT ( clk : IN STD_LOGIC;
14、; Tone : IN STD_LOGIC_VECTOR (10 DOWNTO 0); SpkS : OUT STD_LOGIC );END Speakera;ARCHITECTURE one OF Speakera IS SIGNAL PreCLK, FullSpkS : STD_LO
15、GIC;BEGIN DivideCLK : PROCESS(clk) VARIABLE Count4 : STD_LOGIC_VECTOR (3 DOWNTO 0) ; BEGIN PreCLK <= '0' - 将CLK进行16分频,PreCLK为CLK的16分频 &
16、#160; IF Count4>11 THEN PreCLK <= '1' Count4 := "0000" ELSIF clk'EVENT AND clk = '1' THEN Count4 := Count4 + 1; END IF; END PR
17、OCESS; GenSpkS : PROCESS(PreCLK, Tone)- 11位可预置计数器 VARIABLE Count11 : STD_LOGIC_VECTOR (10 DOWNTO 0);BEGIN IF PreCLK'EVENT AND PreCLK = '1' THEN IF Count11 = 16#7F
18、F# THEN Count11 := Tone ; FullSpkS <= '1' ELSE Count11 := Count11 + 1; FullSpkS <= '0' END IF; END IF; END PROCESS; DelaySpkS : PROCESS(FullSpkS)-将
19、输出再2分频,展宽脉冲,使扬声器有足够功率发音 VARIABLE Count2 : STD_LOGIC;BEGIN IF FullSpkS'EVENT AND FullSpkS = '1' THEN Count2 := NOT Count2; IF Count2 = '1' THEN
20、 SpkS <= '1' ELSE SpkS <= '0' END IF; END IF; END PROCESS;END; LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY ToneTaba ISPORT ( Index :
21、; IN STD_LOGIC_VECTOR (3 DOWNTO 0) ; CODE : OUT STD_LOGIC_VECTOR (3 DOWNTO 0) ; HIGH : OUT STD_LOGIC; &
22、#160; Tone : OUT STD_LOGIC_VECTOR (10 DOWNTO 0) );END;ARCHITECTURE one OF ToneTaba ISBEGIN Search : PROCESS(Index) BEGIN CASE Index IS - 译码电路,查表方式,控制音调的预置数WHEN "0000" => Ton
23、e<="11111111111" ; CODE<="0000" HIGH <='0'- 2047 WHEN "0001" => Tone<="01100000101" ; CODE<="0001" HIGH <='0'- 773; WHEN "0010" => Tone<="01110010000" ; CODE<=&
24、quot;0010" HIGH <='0'- 912; WHEN "0011" => Tone<="10000001100" ; CODE<="0011" HIGH <='0'-1036; WHEN "0101" => Tone<="10010101101" ; CODE<="0101" HIGH <='0'-1197
25、; WHEN "0110" => Tone<="10100001010" ; CODE<="0110" HIGH <='0'-1290; WHEN "0111" => Tone<="10101011100" ; CODE<="0111" HIGH <='0'-1372; WHEN "1000" =>
26、Tone<="10110000010" ; CODE<="0001" HIGH <='1'-1410; WHEN "1001" => Tone<="10111001000" ; CODE<="0010" HIGH <='1'-1480; WHEN "1010" => Tone<="11000000110" ; CODE<
27、;="0011" HIGH <='1'-1542; WHEN "1100" => Tone<="11001010110" ; CODE<="0101" HIGH <='1'-1622; WHEN "1101" => Tone<="11010000100" ; CODE<="0110" HIGH <='1'-1
28、668; WHEN "1111" => Tone<="11011000000" ; CODE<="0001" HIGH <='1'-1728; WHEN OTHERS => NULL; END CASE; END PROCESS;END; - Copyright (C) 1991-2006 Altera Corporation- Your use of Altera Cor
29、poration's design tools, logic functions- and other software and tools, and its AMPP partner logic- functions, and any output files any of the foregoing- (including device programming or simulation files), and any- associated documentation or information are expressly subject- to the terms and c
30、onditions of the Altera Program License- Subscription Agreement, Altera MegaCore Function License- Agreement, or other applicable license agreement, including,- without limitation, that your use is for the sole purpose of- programming logic devices manufactured by Altera and sold by- Altera or its a
31、uthorized distributors. Please refer to the- applicable agreement for further details.- Quartus II generated Memory Initialization File (.mif)WIDTH=4;DEPTH=256;ADDRESS_RADIX=UNS;DATA_RADIX=UNS;CONTENT BEGIN 00: 3; 01: 3; 02: 3; 03: 3; 04: 5; 05: 5; 06: 5;
32、0;07: 6; 08: 8; 09: 8; 10: 8 ; 11: 9 ; 12: 6 ; 13: 8; 14: 5; 15: 5; 16: 12; 17: 12; 18: 12; 19:15; 20:13 ; 21:12 ; 22:10 ; 23:12; 24: 9; 25: 9; 26: 9; 27: 9; 28: 9; 29: 9; 3
33、0: 9 ; 31: 0 ; 32: 9 ; 33: 9; 34: 9; 35:10; 36: 7; 37: 7; 38: 6; 39: 6; 40: 5 ; 41: 5 ; 42: 5 ; 43: 6; 44: 8; 45: 8; 46: 9; 47: 9; 48: 3; 49: 3; 50: 8 ; 51: 8 ; 52: 6 ; 53:
34、5; 54: 6; 55: 8; 56: 5; 57: 5; 58: 5; 59: 5; 60: 5 ; 61: 5 ; 62: 5 ; 63: 5; 64:10; 65:10; 66:10; 67:12; 68: 7; 69: 7; 70: 9 ; 71: 9 ; 72: 6 ; 73: 8; 74: 5; 75: 5; 76: 5; 77: 5;
35、0;78: 5; 79: 5; 80: 3 ; 81: 5 ; 82: 3 ; 83: 3; 84: 5; 85: 6; 86: 7; 87: 9; 88: 6; 89: 6; 90: 6 ; 91: 6 ; 92: 6 ; 93: 6; 94: 5; 95: 6; 96: 8; 97: 8; 98: 8; 99: 9; 100:12 ; 101:12 ;
36、102:12 ; 103:10; 104: 9; 105: 9; 106:10; 107: 9; 108: 8; 109: 8; 110: 6 ; 111: 5 ; 112: 3 ; 113: 3; 114: 3; 115: 3; 116: 8; 117: 8; 118: 8; 119: 8; 120: 6 ; 121: 8 ; 122: 6 ; 123: 5; 124: 3;
37、 125: 5; 126: 6; 127: 8; 128: 5; 129: 5; 130: 5 ; 131: 5 ; 132: 5 ; 133: 5; 134: 5; 135: 5; 136: 0; 137: 0; 138: 0;END;Tone源程序-TONELIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY TONE IS
38、160; -引导TONE 的子模块实体部分PORT(INDEX:IN STD_LOGIC_VECTOR(7 DOWNTO 0); -键盘输入 CODE:OUT INTEGER RANGE 0 TO 15;-输出对应的输入音阶简谱的显示数码 HIGH:OUT STD_LOGIC
39、; TONE:OUT INTEGER RANGE 0 TO 16#7FF#); END;ARCHITECTURE ONE OF TONE ISBEGIN -BEGIN以下直到END为该模块的功能描述语句 SENRCH: PROCESS(INDEX)BEGIN CASE INDEX IS
40、160; -译码电路,查表方式,控制音调的预置数 WHEN "00000001"=>TONE<=773;CODE<=1;HIGH<='0' WHEN "00000010"=>TONE<=912;CODE<=2;HI
41、GH<='0' WHEN "00000100"=>TONE<=1036;CODE<=3;HIGH<='0' WHEN "00001000"=>TONE<=1116;CODE<=4;HIGH<='0'
42、60; WHEN "00010000"=>TONE<=1197;CODE<=5;HIGH<='0' WHEN "00100000"=>TONE<=1290;CODE<=6;HIGH<='0' &
43、#160; WHEN "01000000"=>TONE<=1372;CODE<=7;HIGH<='0' WHEN "10000000"=>TONE<=1410;CODE<=1;HIGH<='1' WHEN
44、 OTHERS=>TONE<=2047;CODE<=0;HIGH<='0' END CASE; END PROCESS; -进程语句结束END; Speaker源程序-SPEAKERLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY SPEAKER ISPORT(CLK1:IN STD_LOGIC;
45、160; - 输入时钟脉冲 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;BEGIN PRECLK<=&
46、#39;0' -将CLK进行16分频,PRECLK为CLK的16分频 IF COUNT4>11 THEN -开始IF语句 PRECLK<='1'
47、 COUNT4:=0; ELSIF CLK1'EVENT AND CLK1='1' THEN COUNT4:=COUNT4+1; END IF; -IF语句结束END PROCESS;GENSPKS:PROCESS(PRECLK,TONE1)
48、; -11位可预置计数器VARIABLE COUNT11:INTEGER RANGE 0 TO 16#7FF#;BEGIN IF PRECLK'EVENT AND PRECLK='1' THEN IF COUNT11=16#7FF# THEN COUNT11:=TONE1; &
49、#160; FULLSPKS<='1' ELSE COUNT11:=COUNT11+1; FULLSPKS<='0' END IF;
50、160; -IF语句结束 END IF;END PROCESS;DELAYSPKS:PROCESS(FULLSPKS) -将输出再二分频,展宽脉冲,使扬声器有足够的功率发音VARIABLE COUNT2:STD_LOGIC;BEGIN IF FULLSPKS'EVENT AND FULLSPKS='1' THEN
51、; COUNT2:=NOT COUNT2; IF COUNT2='1' THEN SPKS<='1' ELSE SPKS<='0' END IF; END IF;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 垃圾发电厂炉渣扩建项目建议书(模板范文)
- 跨境金融保障的具体执行方案
- 交通噪声屏障工程实施方案
- 供水管网老旧设施更换工程可行性研究报告(范文参考)
- 工业园区水环境综合整治项目建议书(模板范文)
- 手抄报设计教学
- 室内设计原理讲解
- 郑州经贸学院《高层建筑设计专题》2023-2024学年第二学期期末试卷
- 广东南方职业学院《体育市场营销与策划》2023-2024学年第二学期期末试卷
- 西安翻译学院《外汇实务》2023-2024学年第二学期期末试卷
- 2025年中考理化生实验操作考试考务培训大纲
- 2021年高考地理试卷(全国甲卷)(空白卷)
- 2025年重庆西南大学附中高考数学模拟试卷试题(含答案详解)
- 2025四川巴中市国有资本运营集团有限公司招聘17人笔试参考题库附带答案详解
- 2025神农科技集团有限公司第一批校园招聘17人(山西)笔试参考题库附带答案详解
- 2024初级社会工作者职业资格笔试题库附答案
- 南充2025年南充市公安局第一次招聘27名交通辅警笔试历年参考题库附带答案详解
- 二年级古诗词大赛选择题
- 1100集装箱船体建造工艺指导书
- 橡塑保温材料检验报告模板
- 液压基本回路及典型液压系统.ppt
评论
0/150
提交评论