EDA音樂(lè)播放器_第1頁(yè)
EDA音樂(lè)播放器_第2頁(yè)
EDA音樂(lè)播放器_第3頁(yè)
EDA音樂(lè)播放器_第4頁(yè)
EDA音樂(lè)播放器_第5頁(yè)
已閱讀5頁(yè),還剩9頁(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、EDA技術(shù)及應(yīng)用課程設(shè)計(jì)說(shuō)明書 2013 屆 電子信息工程 專業(yè) 1班級(jí)題 目 音樂(lè)播放器 學(xué) 號(hào) 姓 名 指導(dǎo)教師 二一 五 年 6 月 25 日一、 音樂(lè)播放器基本原理 1 硬件電子琴設(shè)計(jì)原理樂(lè)曲演奏的原理是:由于組成樂(lè)曲的每個(gè)音符的頻率值(音調(diào))及其持續(xù)時(shí)間(音長(zhǎng))是樂(lè)曲演奏的2個(gè)基本數(shù)據(jù),因此需要控制輸出到揚(yáng)聲器的激勵(lì)信號(hào)的頻率高低和該頻率信號(hào)持續(xù)的時(shí)間。頻率的高低決定了音調(diào)的高低,而樂(lè)曲的簡(jiǎn)譜與各音名的頻率對(duì)應(yīng)關(guān)系在后面將給出。所有不同頻率的信號(hào)都是從一基準(zhǔn)頻率分頻而得來(lái)的,由于音階頻率多為非整數(shù),而分頻系數(shù)有不能為小數(shù),故必須將計(jì)算得到的分頻數(shù)進(jìn)行向下取整,基準(zhǔn)頻率和分頻系數(shù)應(yīng)綜合

2、考慮加以選擇,從而保證音樂(lè)不會(huì)走調(diào)。如在48MHz 時(shí)鐘下,中音1(對(duì)應(yīng)的頻率值是523.3Hz)的分頻系數(shù)應(yīng)該為:48000000/(2*523.3)=45863,這樣只需對(duì)系統(tǒng)時(shí)鐘進(jìn)行45863次分頻即可得到所要的中音M1(分頻系數(shù)計(jì)算公式為D=F/2K,由于F/2K之后,會(huì)使分頻系數(shù)D變小,所以功能模塊中語(yǔ)句:beep_r<=!beep_r,使得輸出取反,K=F/2count_end,消除了前面除以2K的影響) 。 2 樂(lè)曲自動(dòng)演奏設(shè)計(jì)原理硬件電路和自動(dòng)演奏的原理同硬件電子琴實(shí)驗(yàn)原理類似。至于其他音符,同樣可由一式求出對(duì)應(yīng)的分頻系數(shù)。在程序中設(shè)置一個(gè)狀態(tài)機(jī),每250ms改變一個(gè)狀態(tài)

3、(即一個(gè)節(jié)拍),組成樂(lè)曲的每個(gè)音符的頻率值(音調(diào))相對(duì)應(yīng)于狀態(tài)機(jī)的每一個(gè)狀態(tài)。只要讓狀態(tài)機(jī)的狀態(tài)按順序轉(zhuǎn)換,就可以自動(dòng)演奏播放音樂(lè)了。歡樂(lè)頌樂(lè)曲的簡(jiǎn)譜如圖所示: 3 消抖原理作為機(jī)械開關(guān)的鍵盤,在按鍵操作時(shí),由于機(jī)械觸點(diǎn)的彈性及電壓突跳等原因,在觸點(diǎn)閉合或開啟的瞬間會(huì)出現(xiàn)電壓抖動(dòng),實(shí)際應(yīng)用中如果不進(jìn)行處理將會(huì)造成誤觸發(fā)。由于這里是低電平表示按鍵按下,所以按鍵去抖動(dòng)的關(guān)鍵在于提取穩(wěn)定的低電平狀態(tài),慮除前沿、后沿抖動(dòng)毛刺。對(duì)于一個(gè)按鍵信號(hào),可以用一個(gè)脈沖對(duì)他進(jìn)行取樣,如果連續(xù)三次取樣為低電平,可以認(rèn)為信號(hào)已經(jīng)處于鍵穩(wěn)定狀態(tài),這時(shí)輸出一個(gè)低電平按鍵信號(hào)。繼續(xù)取樣的過(guò)程中如果不能滿足連續(xù)三次取樣為低,

4、則認(rèn)為鍵穩(wěn)定狀態(tài)結(jié)束,這時(shí)輸出變?yōu)楦唠娖?。二?音樂(lè)播放器的硬件設(shè)計(jì)1頂層模塊輸入輸出:管腳說(shuō)明:輸入:時(shí)鐘信號(hào)clk ,按鍵6:0key ,功能切換鍵key7輸出:LED燈6:0led ,蜂鳴器beep;Key0: DO key1: RE key2: ME key3:FA key4: SOLkey5: LA key6: SI key7:功能切換鍵2 按鍵消抖模塊輸入:時(shí)鐘信號(hào)clk, 功能切換鍵key7輸出:穩(wěn)定脈沖信號(hào)3 電子琴模塊輸入:時(shí)鐘信號(hào)clk ,按鍵6:0key ,輸出:LED燈6:0led ,蜂鳴器beep;Key0: DO key1: RE key2: ME key3:FA

5、key4: SOLkey5: LA key6: SI 按下相應(yīng)的鍵有對(duì)應(yīng)LED燈指示。4樂(lè)曲自動(dòng)演奏模塊輸入:時(shí)鐘信號(hào)clk;輸出:蜂鳴器beep三 元器件列表: 序號(hào)耗材名稱型號(hào)/規(guī)格技術(shù)要求與參數(shù)數(shù)量單位1PCB制版10cm*8cm2層板1塊2CPLDEPM7064AELC44-10N44引腳,PLCC封裝1個(gè)3數(shù)碼管SR420401K 11074位,共陰極,40mm*15mm2個(gè)4PLCC-44 底座通用44引腳1個(gè)5鐘振方形12MHz,4引腳1個(gè)6電阻通用200歐姆8只7電阻通用1K歐姆14只8電阻通用10K歐姆10只9電阻通用50歐姆1只10電容104獨(dú)石電容0.1uF6只11電容電

6、解電容50V,10uF1只12按鍵通用4引腳4只13發(fā)光二極管通用紅色3只14發(fā)光二極管通用綠色3只15三極管通用NPN9只16雙排插頭通用10針1個(gè)17電源接插線通用含20cm電源線1對(duì)三、 音樂(lè)播放器的Verilog實(shí)現(xiàn)1電子琴程序module beep1(clk,key,beep,led);/模塊名稱beepinput clk;/系統(tǒng)時(shí)鐘48MHzinput6:0key;/按鍵輸入output beep;/蜂鳴器輸出端output6:0led;/LED輸出reg beep_r;/寄存器reg15:0count,count_end;reg6:0key_r;reg 13:0a; /消抖寄存器

7、always(posedge clk)begincount <= count + 1'b1;/計(jì)數(shù)器加1if(count = count_end)&(!(count_end = 16'hffff)begincount <= 16'h0;/計(jì)數(shù)器清零beep_r <= !beep_r; /取反輸出信號(hào)endendalways (key)begina=2000; /消抖等待時(shí)間key_r = key;/取鍵值case(key_r)7'b1111110:begin while(a>0)begin a=a-1; end count_end

8、 = 16'hb327;while(a>0)begin a=a-1; end end7'b1111101:begin while(a>0)begin a=a-1 ;end count_end = 16'h9fa0;while(a>0)begin a=a-1; end end/中音2的分頻系數(shù)值7'b1111011:begin while(a>0)begin a=a-1 ;end count_end = 16'h8e32;while(a>0)begin a=a-1; end end/中音3的分頻系數(shù)值7'b111011

9、1:begin while(a>0)begin a=a-1 ;end count_end = 16'h8637;while(a>0)begin a=a-1; end end/中音4的分頻系數(shù)值7'b1101111:begin while(a>0)begin a=a-1 ;end count_end = 16'h7794;while(a>0)begin a=a-1; end end/中音5的分頻系數(shù)值7'b1011111:begin while(a>0)begin a=a-1 ;end count_end = 16'h6a88

10、;while(a>0)begin a=a-1; end end/中音6的分頻系數(shù)值7'b0111111:begin while(a>0)begin a=a-1 ;end count_end = 16'h5ee8;while(a>0)begin a=a-1; end end/中音7的分頻系數(shù)值default: begin while(a>0)begin a=a-1 ;end count_end = 16'hffff;while(a>0)begin a=a-1; end endendcaseendassign beep =beep_r;/輸出音

11、樂(lè)assign led =key_r;/輸出按鍵狀態(tài)Endmodule2 樂(lè)曲自動(dòng)演奏程序module song(clk,beep,led);/模塊名稱 inputclk;/系統(tǒng)時(shí)鐘48Mhzoutputbeep;/蜂鳴器輸出端 output7:0 led;regbeep_r;/寄存器 reg7:0 state;/樂(lè)譜狀態(tài)機(jī)reg15:0count,count_end;reg23:0count1;/樂(lè)譜參數(shù):D=F/2K (D:參數(shù),F:時(shí)鐘頻率,K:音高頻率) /以下是12MHZ晶振狀態(tài)下的各音高對(duì)應(yīng)的參數(shù) /*parameter L_5 = 16'h3bca,/低音5 M_1 =

12、16'h2cc9,/中音1 M_2 = 16'h27f8,/中音2 M_3 = 16'h238c,/中音3 M_4 = 16'h218d,/中音4 M_5 = 16'h1de5,/中音5 M_6 = 16'h1aa2;/中音6 parameterTIME = 3000000;/控制每一個(gè)音的長(zhǎng)短(250ms)*/ /樂(lè)譜參數(shù):D=F/2K (D:參數(shù),F:時(shí)鐘頻率,K:音高頻率) parameter L_5 = 16'd61224,/低音5 M_1 = 16'd45863,/中音1 M_2 = 16'd40864,/中音2

13、 M_3 = 16'd36402,/中音3 M_4 = 16'd34359,/中音4 M_5 = 16'd30612; /中音5 parameterTIME = 12000000;/控制每一個(gè)音的長(zhǎng)短(250ms) assign beep = beep_r;/輸出音樂(lè) ,蜂鳴器 always(posedge clk)begincount <= count + 1'b1;/計(jì)數(shù)器加1 if(count = count_end)begincount <= 16'h0;/計(jì)數(shù)器清零 beep_r <= !beep_r;/輸出取反 endend

14、always (posedge clk)beginif(count1 < TIME)/一個(gè)節(jié)拍250mS count1 = count1 + 1'b1;elsebegincount1 = 24'd0;if(state = 8'd125) /控制歌曲循環(huán)播放時(shí)間 state = 8'd0; /循環(huán)從頭開始 elsestate = state + 1'b1; /循環(huán)結(jié)構(gòu)體 begincase(state)8'd0,8'd1: count_end = M_3;/中音"3",持續(xù)2個(gè)節(jié)拍 8'd2,8'd

15、3: count_end = M_3;/中音"3",持續(xù)2個(gè)節(jié)拍 8'd4,8'd5:count_end = M_4;/中音"4",持續(xù)2個(gè)節(jié)拍 8'd6,8'd7: count_end = M_5;8'd8,8'd9: count_end = M_5;8'd10,8'd11: count_end = M_4;8'd12,8'd13: count_end = M_3;8'd14,8'd15: count_end = M_2;8'd16,8'd1

16、7: count_end = M_1;8'd18,8'd19: count_end = M_1;8'd20,8'd21: count_end = M_2;8'd22,8'd23: count_end = M_3;8'd24,8'd25,8'd26: count_end = M_3;8'd27: count_end = M_2;8'd28,8'd29,8'd30,8'd31: count_end = M_2;8'd32,8'd33: count_end = M_3;8&

17、#39;d34,8'd35: count_end = M_3;8'd36,8'd37: count_end = M_4;8'd38,8'd39: count_end = M_5;8'd40,8'd41: count_end = M_5;8'd42,8'd43: count_end = M_4;8'd44,8'd45: count_end = M_3;8'd46,8'd47: count_end = M_2;8'd48,8'd49: count_end = M_1;8'

18、d50,8'd51: count_end = M_1;8'd52,8'd53: count_end = M_2;8'd54,8'd55: count_end = M_3;8'd56,8'd57,8'd58: count_end = M_2;8'd59: count_end = M_1;8'd60,8'd61,8'd62,8'd63: count_end = M_1;8'd64,8'd65: count_end = M_2;8'd66,8'd67: count_

19、end = M_2;8'd68,8'd69: count_end = M_3;8'd70,8'd71: count_end = M_1;8'd72,8'd73: count_end = M_2;8'd74: count_end = M_3;8'd75: count_end = M_4;8'd76,8'd77: count_end = M_3;8'd78,8'd79: count_end = M_1;8'd80,8'd81: count_end = M_2;8'd82: cou

20、nt_end = M_3;8'd83: count_end = M_4;8'd84,8'd85: count_end = M_3;8'd86,8'd87: count_end = M_2;8'd88,8'd89: count_end = M_1;8'd90,8'd91: count_end = M_2;/8'd92,8'd93: count_end = L_5;8'd92,8'd93,8'd94,8'd95:count_end = L_5;/8'd94,8'd

21、95: count_end = M_3;8'd96,8'd97: count_end = M_3;8'd98,8'd99: count_end = M_3;8'd100,8'd101: count_end = M_4;8'd102,8'd103: count_end = M_5;8'd104,8'd105: count_end = M_5;8'd106,8'd107: count_end = M_4;8'd108: count_end = M_3;8'd109: count_end

22、= M_2;8'd110,8'd111: count_end = M_1;8'd112,8'd113: count_end = M_1;8'd114,8'd115: count_end = M_2;8'd116,8'd117: count_end = M_3;8'd118,8'd119,8'd120: count_end = M_2;8'd121: count_end = M_1;8'd122,8'd123,8'd124,8'd125: count_end = M_1

23、;default:count_end = 16'hffff;endcase end endendassign led0=(count_end = M_1)?0:1; /控制LED燈的語(yǔ)言 assign led1=(count_end = M_2)?0:1;assign led2=(count_end = M_3)?0:1;assign led3=(count_end = M_4)?0:1;assign led4=(count_end = M_5)?0:1;assign led5=(count_end = L_5)?0:1;assign led6=1;assign led7=1;3選擇模

24、塊程序module select(key,beep1,beep2,led1,led2,beep,led); input key,beep1,beep2; input 6:0led1; input 6:0led2; output beep; output 6:0led; reg key_r;always (negedge key)beginkey_r = key_r;/將琴鍵開關(guān)轉(zhuǎn)換為乒乓開關(guān)endassign beep=(key_r)?beep2:beep1;assign led=(key_r)?led2:led1;Endmodule4頂層文件程序module dzq(key,key7,beep,led,clk);input key7;input 6:0key;input clk;output 6:0led;output beep;reg dout1;reg dout2;reg dout3;reg led;reg key_r;wire a

溫馨提示

  • 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)論