




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 建筑防水合同協議書模板
- 康復器材轉讓合同協議
- 5同城招聘合同協議
- 建筑工程合同變更協議
- 三方發貨合同協議
- 合同有誤重簽補充協議
- 高科技企業合同協議
- 專業養殖場招租合同協議
- 騎行設備買賣合同協議
- 饅頭委托加工合同協議
- 幼兒園 家具玩具類 設備采購相關參數(僅供參考)
- 新質生產力賦能銀發經濟高質量發展的內在邏輯與實踐路徑
- 風機混塔產業基地項目可行性研究報告寫作模板-拿地申報
- 2022年江蘇省普通高中學業水平選擇性考試地理試題(解析卷)
- 《心理健康教育主題班會》主題
- DB13(J) 148-2012 建筑地基基礎檢測技術規程
- 《義務教育語文課程標準》2022年修訂版原版
- 廣播劇編劇合同范本
- 辦公場地托管合同模板
- GB 30254-2024高壓三相籠型異步電動機能效限定值及能效等級
- 2024-2030年下一代測序(NGS)行業市場現狀供需分析及重點企業投資評估規劃分析研究分析報告
評論
0/150
提交評論