




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 梁祝 電子琴程序LIBRARY IEEE; - 硬件演奏電路頂層設(shè)計(jì)USE IEEE.STD_LOGIC_1164.ALL;ENTITY Songer IS PORT (
2、 CLK12MHZ : IN STD_LOGIC; -音調(diào)頻率信號 CLK8HZ : IN STD_LOGIC;
3、0; -節(jié)拍頻率信號 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、; -音符數(shù)據(jù)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進(jìn)行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位可預(yù)置計(jì)數(shù)器 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分頻,展寬脈沖,使揚(yáng)聲器有足夠功率發(fā)音 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 - 譯碼電路,查表方式,控制音調(diào)的預(yù)置數(shù)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; -引導(dǎo)TONE 的子模塊實(shí)體部分PORT(INDEX:IN STD_LOGIC_VECTOR(7 DOWNTO 0); -鍵盤輸入 CODE:OUT INTEGER RANGE 0 TO 15;-輸出對應(yīng)的輸入音階簡譜的顯示數(shù)碼 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; -譯碼電路,查表方式,控制音調(diào)的預(yù)置數(shù) 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; -進(jìn)程語句結(jié)束END; Speaker源程序-SPEAKERLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY SPEAKER ISPORT(CLK1:IN STD_LOGIC;
45、160; - 輸入時(shí)鐘脈沖 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進(jìn)行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語句結(jié)束END PROCESS;GENSPKS:PROCESS(PRECLK,TONE1)
48、; -11位可預(yù)置計(jì)數(shù)器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語句結(jié)束 END IF;END PROCESS;DELAYSPKS:PROCESS(FULLSPKS) -將輸出再二分頻,展寬脈沖,使揚(yáng)聲器有足夠的功率發(fā)音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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)級IP管理的未來趨勢-基于區(qū)塊技術(shù)的深度解析
- 醫(yī)療質(zhì)量管理與風(fēng)險(xiǎn)控制體系
- 醫(yī)療安全與團(tuán)隊(duì)建設(shè)的關(guān)系探討
- 乳頭縮小的臨床護(hù)理
- 學(xué)校2025年萬圣節(jié)活動(dòng)總結(jié)模版
- 幼兒園骨干教師培訓(xùn)學(xué)習(xí)心得體會(huì)模版
- 以鏈為媒解鎖智能供金新時(shí)代的應(yīng)用實(shí)例分析
- 2025年演講模版-java實(shí)訓(xùn)報(bào)告心得體會(huì)模版
- 全程融資合同范例
- 七年級家委會(huì)發(fā)言稿模版
- 2025年重慶西南大學(xué)附中高考數(shù)學(xué)模擬試卷試題(含答案詳解)
- 2024年煙臺海陽市衛(wèi)生健康局所屬事業(yè)單位招聘工作人員真題
- 2025四川巴中市國有資本運(yùn)營集團(tuán)有限公司招聘17人筆試參考題庫附帶答案詳解
- 2025神農(nóng)科技集團(tuán)有限公司第一批校園招聘17人(山西)筆試參考題庫附帶答案詳解
- (快手、抖音、淘寶)主播兼職合同10篇
- 餐飲行業(yè)合伙經(jīng)營協(xié)議書
- 孔明燈(Lantern)3.4使用指南課件
- 蘇教版五年級科學(xué)公開課斜坡的啟示優(yōu)秀教學(xué)設(shè)計(jì)和反思
- 最新氧氣安全標(biāo)簽
- 房地產(chǎn)估價(jià)報(bào)告評審標(biāo)準(zhǔn)和打分表(本次評審使用)
- 溫控制的PID算法的C語言程序
評論
0/150
提交評論