硬件電子琴及硬件樂(lè)曲演奏電路_第1頁(yè)
硬件電子琴及硬件樂(lè)曲演奏電路_第2頁(yè)
硬件電子琴及硬件樂(lè)曲演奏電路_第3頁(yè)
硬件電子琴及硬件樂(lè)曲演奏電路_第4頁(yè)
硬件電子琴及硬件樂(lè)曲演奏電路_第5頁(yè)
已閱讀5頁(yè),還剩2頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、FPGA嵌入式系統(tǒng)設(shè)計(jì)專題實(shí)踐結(jié)課論文題目:硬件電子琴及硬件樂(lè)曲演奏電路專業(yè):電子信息科學(xué)與技術(shù)一、設(shè)計(jì)題目硬件電子琴及硬件樂(lè)曲演奏電路二、設(shè)計(jì)目標(biāo)1.學(xué)習(xí)利用蜂鳴器和按鍵設(shè)計(jì)硬件電子琴2.利用硬件電子琴原理設(shè)計(jì)硬件演奏電路3.掌握VHDL編程語(yǔ)言,了解實(shí)際設(shè)計(jì)中的優(yōu)化方案三、設(shè)計(jì)原理音樂(lè)演奏的原理是:由于組成樂(lè)曲的每個(gè)音符的頻率值(音調(diào))及其持續(xù)時(shí)間(音長(zhǎng))是樂(lè)曲演奏的兩個(gè)基本數(shù)據(jù),因此需要控制輸出到揚(yáng)聲器的激勵(lì)信號(hào)的頻率高低和該頻率信號(hào)持續(xù)的時(shí)間。四、設(shè)計(jì)內(nèi)容1、硬件電子琴(1)原理圖(2).分頻器程序-filename clk_div3.vhd-description:LIBRARY I

2、EEE;ENTITY Clk_Div3 ISPORT(clk_in: IN STD_LOGIC;clk_out: OUT STD_LOGIC ) ;END ;ARCHITECTURE myArchitecture OF Clk_Div3 isSIGNAL cnt1, cnt2: integer range 0 to 2;SIGNAL clk1, clk2: STD_LOGIC ; BEGINPROCESS(clk_in)BEGINIF rising_edge(clk_in) THEN IF cnt1 < 2 THEN cnt1 <= cnt1 + 1; ELSEcnt1 <=

3、 0; END IF;IF cnt1 < 1 THEN clk1 <= '1' ELSEclk1 <= '0' END IF;END IF;END PROCESS;PROCESS(clk_in)BEGINIF falling_edge(clk_in) THEN IF cnt2 < 2 THEN cnt2 <= cnt2 + 1 ; ELSEcnt2 <= 0 ;END IF ;IF cnt2 < 1 thenclk2 <= '1' ;ELSEclk2 <= '0' ;END I

4、F ;END IF ;END PROCESS ;clk_out <= clk1 OR clk2 ; END ;(3).七個(gè)中音主程序module beepx(clk,key,beep,led,ledbt); input clk;input7:0key; /模塊名稱beep /系統(tǒng)時(shí)鐘12MHz /按鍵輸入output beep;output7:0led; /蜂鳴器輸出端output7:0ledbt;reg beep_r; /LED輸出 /寄存器reg15:0count,count_end;reg7:0key_r;reg7:0led_bt;always(posedge clk)begine

5、ndalways (key)beginkey_r = key; case(key_r) 8'b11111110:begin count_end =16'h2CCA ; key_r = 8'b11111001; led_bt =/中音1的分頻系數(shù)值 /取鍵值 count <= count + 1'b1; begin end count <= 16'h0; /計(jì)數(shù)器清零 /計(jì)數(shù)器加1 if(count = count_end)&(!(count_end = 16'hffff) beep_r <= !beep_r; /取反輸出

6、信號(hào) 8'b11111110 ; end8'b11111101:begin count_end =16'h27E8; key_r = 8'b10100100; led_bt =/中音2的分頻系數(shù)值key_r = 8'b10110000; led_bt = 8'b11111110 ;end 8'b11111011:begin count_end =16'h238D;8'b11111110 ;end /中音3的分頻系數(shù)值8'b11110111:begin count_end =16'h218E; key_r =

7、 8'b10011001; led_bt = 8'b11111110 ;end /中音4的分頻系數(shù)值8'b11101111:begin count_end =16'h1DE5; key_r = 8'b10010010; led_bt = 8'b11111110 ;end /中音5的分頻系數(shù)值8'b11011111:begin count_end =16'h1AA2; key_r = 8'b10000010; led_bt = 8'b11111110 ;end /中音6的分頻系數(shù)值8'b10111111: b

8、egin count_end =16'h17BA; key_r = 8'b11111000; led_bt = 8'b11111110 ;end /中音7的分頻系數(shù)值8'b01111110: begin count_end =16'h166B;key_r = 8'b11111001; led_bt = 8'b11111110 ; end /高音1的分頻系數(shù)值8'b01111101: begin count_end =16'h13F4;key_r = 8'b10100100; led_bt = 8'b1111

9、1110 ; end /高音2的分頻系數(shù)值8'b01111011: begin count_end =16'h11C7; key_r = 8'b10110000; led_bt = 8'b11111110 ; end /高音3的分頻系數(shù)值8'b01110111: begin count_end =16'h10C7; key_r = 8'b10011001; led_bt = 8'b11111110 ; end /高音4的分頻系數(shù)值8'b01101111: begin count_end =16'h0EF3; key

10、_r = 8'b10010010; led_bt = 8'b11111110 ; end /高音5的分頻系數(shù)值8'b01011111: begin count_end =16'h0D51; key_r = 8'b10000010; led_bt = 8'b11111110 ; end /高音6的分頻系數(shù)值8'b00111111: begin count_end =16'h0BDD; key_r = 8'b11111000; led_bt = 8'b11111110 ; end /高音7的分頻系數(shù)值endassign

11、 beep =beep_r;assign led =key_r;assign ledbt = led_bt ;endmodule2. 硬件樂(lè)曲演奏電路。(1)內(nèi)存分配圖/輸出音樂(lè) /輸出按鍵狀態(tài) default:count_end = 16'hffff; endcase(2)主程序library IEEE;ENTITY buzzer ISPORT (ch : IN std_logic;-鍵盤與歌曲播放選擇 cho : IN std_logic;-歌曲切換 key_data : IN std_logic_vector(2 DOWNTO 0);-電子琴組合鍵盤輸入 clk : IN std

12、_logic;-系統(tǒng)時(shí)鐘out_bit : OUT std_logic);-輸出給蜂鳴器END buzzer;ARCHITECTURE arch OF buzzer ISCOMPONENT liangzhuPORT(address:in std_logic_vector(7 downto 0);clock:in std_logic; q:out std_logic_vector(15 downto 0); END COMPONENT;signal sta1: std_logic_vector(7 downto 0);signal sta: integer range 0 to 147;sign

13、al count: std_logic_vector(15 DOWNTO 0);signal count_end: std_logic_vector(15 DOWNTO 0);signal count1: std_logic_vector(23 DOWNTO 0);signal out_bit_temp : std_logic; signal key_temp : std_logic_vector(2 DOWNTO 0); signal count_end_temp : std_logic_vector(15 DOWNTO 0); signal choice : std_logic;-音調(diào)分頻

14、數(shù)BEGIN out_bit<=out_bit_temp; key_temp<=key_data;PROCESS(cho)-歌曲間切換 BEGINIF(cho'EVENT AND cho='1')THENchoice<=NOT choice; END IF; END PROCESS;PROCESS(clk)-分頻后的音調(diào)輸出控制BEGINIF(clk'EVENT AND clk='1')THENcount <=count+1;IF (count = count_end) THENcount <=x"0000

15、" out_bit_temp<=NOT out_bit_temp; END IF; END IF;END PROCESS;U :liangzhu PORT MAP (address=>sta1,q=>count_end_temp,clock=>clk); -與liangzhu.vhd的接口PROCESS(clk,ch,choice,cho)-音調(diào)單位時(shí)長(zhǎng)和曲譜依次播放(sta自加)控制 BEGIN IF(ch='1')THEN-鍵盤與歌曲播放切換 IF(clk'EVENT AND clk='1')THEN IF(coun

16、t1<t) THEN count1<=count1+1; ELSE count1<=x"000000" IF(choice='1')THEN sta<=0; IF(sta1=10001010)THENsta1<="00000000" ELSE sta1<=sta1+1; count_end<=count_end_temp;-梁祝曲譜信息賦給count_end END IF; ELSE sta1<="00000000" IF(sta=147)THENsta<=0; E

17、LSE sta<=sta+1; CASE sta IS-友誼天長(zhǎng)地久曲譜信息 WHEN 0|1=>count_end<=suo0; WHEN 2 TO 8=>count_end<=duo; WHEN 9|10=>count_end<=me; WHEN 11 TO 14=>count_end<=lai; WHEN 15=>count_end<=duo; WHEN 16|17=>count_end<=lai; WHEN 18|19=>count_end<=me; WHEN 20 TO 24=>count

18、_end<=duo; WHEN 25|26=>count_end<=me; WHEN 27|28=>count_end<=suo; WHEN 29 TO 33=>count_end<=la; WHEN 34 TO 38=>count_end<=la; WHEN 39 TO 42=>count_end<=suo; WHEN 43 TO 45=>count_end<=me; WHEN 46|47=>count_end<=duo; WHEN 48 TO 51=>count_end<=lai; WHE

19、N 52=>count_end<=duo; WHEN 53|54=>count_end<=lai;WHEN 55|56=>count_end<=me; WHEN 57 TO 60=>count_end<=duo; WHEN 61 TO 63=>count_end<=la0; WHEN 64 TO 65=>count_end<=suo0; WHEN 66 TO 69=>count_end<=duo; WHEN 70 TO 73=>count_end<=duo; WHEN 74|75=>count

20、_end<=la; WHEN 76 TO 79=>count_end<=suo; WHEN 80 TO 82=>count_end<=me; WHEN 83|84=>count_end<=duo; WHEN 85 TO 88=>count_end<=lai; WHEN 89=>count_end<=duo; WHEN 90|91=>count_end<=lai; WHEN 92|93=>count_end<=la; WHEN 94 TO 97=>count_end<=suo; WHEN 98

21、TO 100=>count_end<=me; WHEN 101|102=>count_end<=suo; WHEN 103 TO 106=>count_end<=la; WHEN 107 TO 110=>count_end<=la; WHEN 111|112=>count_end<=duo1; WHEN 113 TO 116=>count_end<=suo; WHEN 117 TO 119=>count_end<=me; WHEN 120|121=>count_end<=duo; WHEN 122 TO 125=>count_end<=lai; WHEN 126=>count_end<=duo; WHEN 127|128=>count_end<=lai; WHEN 129|130=>count_end<=me; WHEN 131 TO 134=>count_end<=duo; WHEN 135 TO 137=>count_end<=la0; WHEN 138|139=>count_end<=suo0;WHEN 140 TO 143=>count_end<=duo; WHEN 144 TO 1

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論