基于FPGA的音樂播放控制電路設計(共26頁)_第1頁
基于FPGA的音樂播放控制電路設計(共26頁)_第2頁
基于FPGA的音樂播放控制電路設計(共26頁)_第3頁
基于FPGA的音樂播放控制電路設計(共26頁)_第4頁
基于FPGA的音樂播放控制電路設計(共26頁)_第5頁
已閱讀5頁,還剩27頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、 PAGE 32 音樂(ynyu)播放器控制電路課程設計報告(bogo) 班 級: 學 號: 姓 名: 指導老師:一、設計(shj)目的將斷橋殘雪簡譜按照要求(yoqi)進行編碼并將其寫入只讀存儲器ROM之中,然后通過設計的電路讀出ROM的內(nèi)容,進行解碼后驅(qū)動蜂鳴器播放。二、開發(fā)(kif)環(huán)境 采用Altera Quartus II 9.0軟件設計環(huán)境。它提供了全面的邏輯設計能力,包括電路圖、文本和波形的設計輸入以及編譯、邏輯綜合、仿真和定時分析以及器件編程等諸多功能。特別是在原理圖輸入等方面,Altera Quartus II 9.0被公認為是最易使用、人機界面最友好開發(fā)軟件。并采用FPGA

2、LP-2900開發(fā)裝置硬件實現(xiàn),給人們帶來極大的方便。三、設計過程概述數(shù)字簡譜簡介數(shù)字簡譜用不同的點和線段配合8個阿拉伯數(shù)字07構(gòu)成音符,記錄表示千變?nèi)f化的音樂曲子及其基本音樂元素。樂音是由三個要素決定的:頻率決定了樂音的音高,頻譜決定過了樂音的音色,音形標志著演奏方式。樂曲的基本元素是:音的高低(音高)、音的長短(時值)、音的力度和音質(zhì)(音色)。音的高低和長短不同決定了樂曲的不同,因此構(gòu)成了音樂的最重要的基礎元素。音樂用1、2、3、4、5、6、7分別表示同一調(diào)式7個不同的音高:多、來、米、法、索、拉、西。這七個數(shù)字上、下標注的點表示音調(diào)升高8度音程或降低8度音程。數(shù)字0為休止符,表示停止發(fā)音

3、。數(shù)字下或數(shù)字上的線段表示因的持續(xù)時間的長短。沒有線段的數(shù)字為4分音符,器時值為音長的基本度量單元,成為一拍。數(shù)字下面標注的線段表示時間減短,沒增加一條線段,表示時值減少一半,音符相應的成為8分音、16分音數(shù)字后面的線段稱為延長線,表示前一個音符的市場的增加,每條延長線的時值增量為1拍。音長是一個相對的時間概念,一拍的時間長度沒有限制,可以是1s,也可以是2s或是0.5s,。若將4分音符的時長定為1s,其他音符的時值長度以其為基本參照度量,半拍為0.5s,2拍為2s,以此類推。2、音高與頻率關系20Hz至20KHz的音頻脈沖信號控制蜂鳴器,可以使其根據(jù)控制信號的頻率發(fā)出不同的音調(diào)。一般的音樂我

4、們可以用3個8度音程進行表現(xiàn),不同的音名和音程具有不同的頻率,由此我們可以設計出電子電路根據(jù)音符控制輸入到蜂鳴器中的頻率,從而發(fā)出我們想要的聲音。 3個八度音程的音高(yngo)與頻率關系各音高的頻率關系(gun x):每兩個相差度的音高頻率相差一倍.若計數(shù)器輸出頻率(pnl)的為高音1,將分頻器輸入的計數(shù)脈沖頻率降低一倍,則音調(diào)降低8度,發(fā)出中音1。 3、音高控制根據(jù)簡譜音符的音高控制蜂鳴器頻率。數(shù)字電路中,模N的計數(shù)器溢出信號的頻率是計數(shù)脈沖信號頻率的1/N。所以,可以設計一個??煽氐挠嫈?shù)器實現(xiàn)不同的分頻比,使溢出信號頻率滿足不同的音高要求。由于三個8度音程中相同音名的信號頻率相差一倍 。

5、所以在分頻系數(shù)不變時,將計數(shù)脈沖頻率升高(或降低)一倍可使分頻器的溢出信號頻率升高(或降低)一倍,音調(diào)升高(或降低)8度。4、音長控制某個音符音長由該音高頻率信號的持續(xù)時間長短決定可采用一個計數(shù)器對音長進行定時,計數(shù)脈沖周期是樂譜時值,決定了該單元音符的持續(xù)時間。所以,可采用計數(shù)器對音長進行定時,計數(shù)脈沖周期為所選樂譜中時值最短音符的時值,其它音符的音長定時可根據(jù)其時值與最短音符音長(度量單位)的倍數(shù)關系持續(xù)不同的計數(shù)脈沖周期。比如:樂譜中最短音符為8分音長,則4分音符為2個時鐘周期,而全音符為8個時鐘周期。5、總體設計思路要制作播放器,首先要解決的問題就是找一個能夠產(chǎn)生固定頻率的源,在這里很

6、容易實現(xiàn),我們使用一個10M的晶振,當其接上適當?shù)碾娐分螅鋵l(fā)出恒定的振蕩波形。有了10M的信號源之后,怎樣才能使其變成驅(qū)動蜂鳴器發(fā)出我們需要的聲音的信號,這里我們使用分頻器來實現(xiàn)。為了發(fā)出不同音名的音,用計數(shù)器來實現(xiàn)分頻器要常常改變分頻系數(shù),這里我們選用一個??勺兊挠嫈?shù)器來完成這個功能。對于如何實現(xiàn)復位控制環(huán)節(jié),由于音程碼只能用到其中的三種(sn zhn)組合,還有一種可以用作復位信號,當播放到最后一個音節(jié)的時候,復位信號有效,經(jīng)過復位控制產(chǎn)生一個有效電平使得時值計數(shù)器清零,實現(xiàn)音樂的循環(huán)播放。對于如何(rh)實現(xiàn)間斷音控制環(huán)節(jié),從“曲譜(qp)儲存表”中讀出間斷音控制位被送入間斷音控制

7、環(huán)節(jié),這個環(huán)節(jié)的單穩(wěn)會產(chǎn)生一個相當于十分之一“音符播放長度”的脈沖,使得計數(shù)使能無效產(chǎn)生間斷。對于如何實現(xiàn)不同的音高,選擇兩個獨立的二分頻元件對10M的輸入信號實現(xiàn)兩次二分頻,利用一片74153來實現(xiàn)數(shù)據(jù)選擇,根據(jù)“曲譜表”中的音程碼控制數(shù)據(jù)選擇器選出需要的頻率實現(xiàn)不同的音高。為了實現(xiàn)音樂播放的連續(xù)性,我們把樂譜存儲到ROM中,播放電路的通取ROM中的內(nèi)容經(jīng)過特殊的解碼操作便可以得到我們需要的計數(shù)器分頻系數(shù)。分頻后便是我們需要的驅(qū)動蜂鳴器的信號。6、設計方案原理框圖四、總體設計電路圖五、單元(dnyun)電路設計與分析各單元(dnyun)電路的選擇與工作原理分析二分(r fn)頻功能作用:作為

8、獨立的元件使用在總體電路中。原理分析:使用一個D觸發(fā)器和一個非門實現(xiàn)對輸入信號的二分頻。獨立的二分頻元件:M分頻和時值計數(shù)單元功能作用: 10M的晶振中輸出的脈沖波cp,通過“M分頻”,作為時鐘脈沖輸入“時值計數(shù)器”,計數(shù)器便按照此時鐘進行計時,其輸出端連接“曲譜儲存表”。原理(yunl)分析:預設每秒鐘播放5個單元的音符(ynf),對來自晶振的CP脈沖進行2000000分頻(即M分頻器lpm_counter2的模取為2000000),其cout端接(dun ji)時值計數(shù)器(lpm_counter1)。時值計數(shù)器(lpm_counter1)的q輸出做為地址對ROM進行訪問,由于有125個單元

9、的音符,所以選擇8位地址線,在圖形上表現(xiàn)出就是q7.0.3、曲譜存儲表功能作用:“時值計數(shù)器”(lpm_counter2)的輸出端連接“曲譜儲存表”(lpm_rom0),這就可以使其按照地址訪問ROM中的數(shù)據(jù),從曲譜輸出表ROM的輸出端輸出數(shù)據(jù)。 “曲譜儲存表”(lpm_rom0)中的音名碼作為地址被送入“分頻系數(shù)表”(lpm_rom1).原理分析:按照編碼規(guī)則,讀出的數(shù)據(jù)一共分為6位,如下表所示543210間斷音控制音程碼(控制音高)音名碼(控制音名)最高位控制間斷音控制。4、3兩位是音程碼,用于控制高音、中音和低音。2、1、0這三個是音名碼,用于控制音名,選擇播放do re mi fa s

10、o la si中的哪個音。曲譜表用一個ROM儲存,當address輸入相應的地址之后,q段就輸出其中的數(shù)據(jù)。 斷橋殘雪簡譜編碼4、分頻(fn pn)系數(shù)表功能(gngnng)作用:“曲譜(qp)儲存表”(lpm_rom0)中的音名碼作為地址被送入“分頻系數(shù)表”(lpm_rom1),這樣相應的分頻系數(shù)就被讀了出來,然后被送進N分頻單元中計數(shù)器(lpm_counter0)的置數(shù)端data12.0。原理分析:分頻系數(shù)表用一個如下圖所示的ROM實現(xiàn),其中的地址(Addr)就代表這個do re mi fa so la si和休止符這個8個音符的簡譜表示。其中的數(shù)值便是分頻系數(shù)。 5、N分頻單元功能作用:

11、從“分頻系數(shù)表”(lpm_rom1)中讀出來的分頻系數(shù)被送進N分頻單元中的計數(shù)器(lpm_counter0)的置數(shù)端data12.0,原始的信號經(jīng)過N分頻便得到需要的信號。原理(yunl)分析:為了方便(fngbin)計算,采用了減計器,cout端為溢出端,當計數(shù)其計到0以后cout出高電平,使得同步置數(shù)sload段有效,分頻系數(shù)被從date12.0段置入計數(shù)器。6、間斷音控制(kngzh)模塊 功能作用:從“曲譜儲存表”(lpm_rom0)中讀出間斷音控制位被送入間斷音控制環(huán)節(jié),這個環(huán)節(jié)的單穩(wěn)會產(chǎn)生一個相當于十分之一“音符播放長度”的脈沖,使得計數(shù)使能無效產(chǎn)生間斷。 原理分析:由于需要的間斷

12、音的長度是普通播放長度的十分之一,所以這里選擇200000分頻(計數(shù)器的模為200000)。其輸出端接一個由兩個D觸發(fā)器構(gòu)成的數(shù)字單穩(wěn)電路,產(chǎn)生一個脈沖寬度為輸入脈沖正向的一個有效電平,使得計數(shù)使能暫時無效,實現(xiàn)間斷。間斷(jindun)音獨立元件7、音高(yngo)控制電路 功能(gngnng)作用:10M的晶振中輸出的脈沖波cp 連續(xù)被兩次二分頻,最后連同自身被送入一個數(shù)據(jù)選擇權(quán)器(即頻率選擇器)的數(shù)據(jù)輸入端口,其控制段接“曲譜儲存表”(lpm_rom0)輸出的音程碼,根據(jù)音程碼的要求把不同頻率的信號送入到N分頻單元中,便可以實現(xiàn)不同的音高。輸出信號被送進N分頻單元中的計數(shù)器(lpm_co

13、unter0)的時鐘輸入信號clock。原理分析:此處選擇了之前已經(jīng)做好的兩個獨立的二分頻元件實現(xiàn)兩次二分頻,和一片74153來實現(xiàn)數(shù)據(jù)選擇,根據(jù)“曲譜表”中的音程碼控制數(shù)據(jù)選擇器選出需要的頻率實現(xiàn)不同的音高。8、放音單元功能作用:在N分頻單元的輸出端用一個2分頻器,得到占空比為百分之五十的信號,最后驅(qū)動蜂鳴器實現(xiàn)播放功能。原理(yunl)分析:使用一個D觸發(fā)器實現(xiàn)了二分(r fn)頻,使得脈沖占空比為50%,避免了蜂鳴器的不正常工作導致的磁化。六、部分(b fen)電路調(diào)試由于電路的結(jié)構(gòu)比較復雜,采用分段調(diào)試的方法1、二分頻電路圖:調(diào)試結(jié)果:2、音高(yngo)控制電路電路圖:調(diào)試(dio

14、sh)結(jié)果:3、數(shù)字(shz)單穩(wěn)電路圖:調(diào)試(dio sh)結(jié)果:七、拓展(tu zhn)電路設計1、播放(b fn)顯示模塊原理(yunl)分析:使用(shyng)一個8421BCD碼的譯碼器將音符的顯示在數(shù)碼管上,顯示出實時播放的音符。2、變速控制(kngzh)模塊速度控制電路及生成的獨立元件原理分析:將二分頻獨立元件串聯(lián)使用,使得播放速度能夠以快2倍速的方式逐漸變化,通一個數(shù)據(jù)選擇器74151選擇輸出不同頻率,從而以實現(xiàn)不同速度的播放。生成的獨立的速度控制元件:速度選擇模塊原理(yunl)分析:利用一個加減計數(shù)器74192和之前生成的速度控制元件組合,當DN有效,UP無效時(DN=1,

15、UP=0),為減計數(shù),此時實現(xiàn)減速播放(b fn)功能;當DN無效,UP有效時(DN=0,UP=1),為加計數(shù),此時實現(xiàn)加速(ji s)播放功能;當DN與UP均無效時(DN=0,UP=0),則輸出預置數(shù)(0011),即實現(xiàn)常速播放功能。生成的獨立的速度選擇元件:暫停播放控制單元原理(yunl)分析:在M分頻單元與變速控制單元之間加一個(y )與門,將M分頻單元的計數(shù)器(lpm_counter2)的輸出端(cout)與暫停控制鍵(zhanting)相與,得到的輸出信號送進速度選擇元件的脈沖輸入端PC。當暫??刂奇I為1時,對輸出沒有影響,當暫停控制鍵為0時,輸出為0,即實現(xiàn)暫停播放功能。靜音播放控

16、制(kngzh)單元 原理分析:在間斷音控制單元與N分頻單元之間加一個與門,將靜音控制鍵(jingyin)與間斷音元件的輸出端(out)相與,得到的輸出信號送進N分頻單元的脈沖輸入信號clock。當靜音控制鍵為1 時,對輸出沒有影響,正常播放;當靜音控制鍵為0時,輸出為0,此時蜂鳴器無法發(fā)出聲音,而對前面的電路沒有影響,曲譜仍處于播放狀態(tài),即實現(xiàn)靜音播放功能。八、代碼轉(zhuǎn)換電路設計1、集成(j chn)加法器原理集成(j chn)4位加法器74283有兩組4位的二進制數(shù)輸入A(a4A1)和B(B4B1),并有進位輸入Cin,邏輯符號如圖所示。74283實現(xiàn)A加B加Cin的運算,并輸出4位二進制運

17、算和S(S4S1)及進位輸出Cout。比如輸入A為1101,B為0110,Cin為1時,輸出S為0100,Cout為1。 集成(j chn)4位二進制加法器74283邏輯符號2、設計思路余3碼和8421BCD碼都是表示09共10個十進制數(shù)符的4位二進制編碼。8421BCD碼是有權(quán)碼,其編碼中各位二進制數(shù)代表的位權(quán)分別是8、4、2、1。每組8421BCD碼表示的十進制數(shù)符等于其編碼中為“1”的位所表的權(quán)值之和。比如十進制數(shù)符“5”的8421BCD碼是“0101”。余3碼是無權(quán)碼,但若定義其編碼中各位二進制數(shù)代表的位權(quán)仍然是8、4、2、1,則每組余3碼表示的十進制數(shù)符等于其編碼中為“1”的位所代表

18、的權(quán)值之和再減3。比如十進制數(shù)符“5”的余3碼是“1000”。所以,表示同樣十進制數(shù)符的8421BCD碼和余三碼碼值相差3??紤]到二進制減法可以采用加補碼的方式實現(xiàn),所以采用4位集成加法器74283實現(xiàn)代碼轉(zhuǎn)換電路。當輸入碼8421BCD碼時,利用控制鍵X的狀態(tài)產(chǎn)生加數(shù)“0011”使輸入碼加3后輸入余3碼;當輸入碼是余三碼時,利用控制鍵狀態(tài)產(chǎn)生“0011”的補碼“1101”,使輸入碼減3(加3的補碼)后輸入8421BCD碼。參考電路框圖如圖。全局(qunj)電路動態(tài)(dngti)掃描顯示電路設計設計(shj)思路動態(tài)掃描顯示控制的關鍵問題在于產(chǎn)生順序脈沖分時選通各顯示器的公共端,并同步輸出其段

19、控制信號。在數(shù)字電路中,時序波形可以采用移位脈沖發(fā)生器產(chǎn)生,也可以采用計數(shù)器控制二進制譯碼器產(chǎn)生。若采用LP-2900開發(fā)裝置,由于已在FPGA外部設置了3-8線譯碼器74138控顯示器的共陰極,因此只要采用計數(shù)器產(chǎn)生二進制計數(shù)信號控制譯碼器即能實現(xiàn)動態(tài)顯示掃描。在LP-2900上實現(xiàn)4位動態(tài)掃描控制電路的設計方案原理框圖如下圖所示,圖中虛線框內(nèi)為開發(fā)裝置上的固有器件,框外為FPGA中需要設計的部分。本設計要求實現(xiàn)4位動態(tài)掃描顯示,可以任選(rn xun)LP-2900裝置上6位顯示中的前四位或后四位顯示。若采用六進制計數(shù)器產(chǎn)生“000”“101”6組碼控制74138,全部(qunb)顯示的選

20、通信號輪流有效,可以使N1、N2為全“0”滅顯前兩位顯示器或使N5、N6為全零滅顯后兩位。如果(rgu)采用四進制計數(shù)器的輸出控制DE2、DE1。并使DE3始終為0(端口接GND),則74138輸入碼A以“000”、“001”、“010”、“011”循環(huán)變化,輸出控制C1C4輪流為低電平,C5、C6始終為高電平,后兩位顯示器滅顯,不必輸出N5、N6信號。由于Ni必須在相應的Ci有效時同步輸出,所以可采用控制產(chǎn)生Ci順序脈沖的計數(shù)器同步控制數(shù)據(jù)選擇器選擇各位有顯示碼,經(jīng)過顯示譯碼輸出七段控制信號Ni,同時選擇該位的小數(shù)點控制信號控制顯示器的dp端。比如,若需要顯示4位十進制數(shù)字“42.75”,則

21、各位顯示碼為E1A1=“00100”;E2A2=“00010”;E3A3=“00111”;E4A4=“00101”;dp1dp4=“0100”。由于4個通道的顯示碼選擇與4位顯示器的掃描信號由計數(shù)器同時控制,所以當計數(shù)器輸出DE2,DE1為“00”,C1有效,選擇顯示碼E1A1(E1、D1、C1、B1、A1)和小數(shù)點dp1;若計數(shù)器輸出全為“01”,C2有效,選擇顯示是E2A2和dp2,如此一一對應。分頻器計數(shù)脈沖OSC(10MHz)控制五進制計數(shù)器的時鐘CLKB,并以五進制計數(shù)器的最高位輸出QD控制二進制計數(shù)器的時鐘CLKA,即構(gòu)成5421BCD碼十進制計數(shù)器。每個QD的下降沿QA翻轉(zhuǎn),每1

22、0個計數(shù)脈沖周期計數(shù)器輸出狀態(tài)循環(huán)一周。分頻信號QA的占空比為50%。仿真(fn zhn)波形:3、顯示(xinsh)譯碼器AHDL編碼4、全局(qunj)電路圖十、遇到的主要問題(wnt)與解決措施1、二分頻模擬不正常,通過翻閱相關書籍,檢查二分頻電路(dinl),發(fā)現(xiàn)D觸發(fā)器的PRN與CLRN均未接電源vcc,這主要是平時的學習忽視了一些非功能引腳的連接。2、電路(dinl)連接完成,所有的綜合分析,編譯下載均通過,而蜂鳴器卻沒有聲音,多次仔細檢查電路均發(fā)現(xiàn)電路連接無誤后,檢查曲譜存儲表,發(fā)現(xiàn)沒有引入斷橋殘雪的mif文檔 ,而誤引入了分頻系數(shù)的mif文檔。3、當這個問題解決后發(fā)現(xiàn)電路任然無

23、法正常工作,而且從蜂鳴器中發(fā)出的聲音只有有限的幾個,發(fā)現(xiàn)應該是間斷使能出現(xiàn)了問題,只有間斷的地方發(fā)出了聲音,而非間斷的地方卻沒有聲音,推斷使能的電平被弄錯了,后來查閱FPGA手冊確認計數(shù)器的計數(shù)使能是高電平有效,這個時侯把間斷單元的最后一個與門換成了與非門,問題解決。4、在拓展電路設計中,制作完變速電路設計,并編譯下載,發(fā)現(xiàn)只有加速播放功能,沒有預想中的減速播放功能,通過檢查速度控制電路和速度選擇電路,發(fā)現(xiàn)加減計數(shù)器74192的預置數(shù)被設為0000,致使其只有加計數(shù)功能,將預置數(shù)改為0011后,能達到預期的效果。5、在拓展電路設計中,制作完暫停播放功能電路后,通過編譯下載,發(fā)現(xiàn)歌曲停止運行,而

24、仍發(fā)出所停止的那個音符的聲音,按下靜音播放功能鍵后,能達到預期效果。九、附錄(fl)附錄(fl):附錄(fl)二:收獲(shuhu)體會:(1)、進一步加深了對數(shù)字電路的認知。由于平時對數(shù)字電路的了解大部分只是來自于課本上的理論知識,即使平時做的一些數(shù)電實驗也只是根據(jù)已知電路圖進行電路的連線,因此,對數(shù)電的認知一直處在很膚淺的地方。而此次課程設計只是給出一些大概的原理及設計要求,需要自己設計電路圖,根據(jù)設計方案原理框圖設計各分電路模塊,然后對組裝好的電路進行調(diào)試,這整個過程(guchng)都極大地提高了我對數(shù)字電路的綜合認知。同時,在這個過程中,讓我把數(shù)電相關方面知識進行了一次有效地復習,相信會對自己今后的考研有很大幫助。(2)、認識到自己的不足。在設計的過程中,發(fā)現(xiàn)自己以前學過的很多基本知識都已經(jīng)忘記,在設計電路圖以及在電路調(diào)試過程中也出現(xiàn)各種問題,說明自己的基本知識還不扎實,動手實踐能力還不夠,思考問題的角度還不夠全面。因此,自己在今后的學習中,在努力學好理論知識的基礎上,應加強動手能力的培養(yǎng)

溫馨提示

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

評論

0/150

提交評論