![樂(lè)曲硬件電路演奏_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-5/16/54d806d7-8670-48af-afae-ab36d2ffc477/54d806d7-8670-48af-afae-ab36d2ffc4771.gif)
![樂(lè)曲硬件電路演奏_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-5/16/54d806d7-8670-48af-afae-ab36d2ffc477/54d806d7-8670-48af-afae-ab36d2ffc4772.gif)
![樂(lè)曲硬件電路演奏_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-5/16/54d806d7-8670-48af-afae-ab36d2ffc477/54d806d7-8670-48af-afae-ab36d2ffc4773.gif)
![樂(lè)曲硬件電路演奏_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-5/16/54d806d7-8670-48af-afae-ab36d2ffc477/54d806d7-8670-48af-afae-ab36d2ffc4774.gif)
![樂(lè)曲硬件電路演奏_第5頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-5/16/54d806d7-8670-48af-afae-ab36d2ffc477/54d806d7-8670-48af-afae-ab36d2ffc4775.gif)
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、合肥學(xué)院項(xiàng)目設(shè)計(jì)報(bào)告題目:樂(lè)曲硬件演奏電路系另U:電子信息與電氣工程專(zhuān)業(yè):通信工程班級(jí):二!學(xué)號(hào):1405022019、1405022020、1405022021、1405022022姓名:沈舒敏、徐潁、陸璐、徐華南導(dǎo)師:石朝毅2016年5月20日、設(shè)計(jì)要求了解元件例化語(yǔ)句的調(diào)用;掌握自頂向下的數(shù)字系統(tǒng)設(shè)計(jì)方法;了解樂(lè)器硬件演奏電路的工作原理;能夠播放“梁?!睒?lè)曲。、設(shè)計(jì)過(guò)程2.1 設(shè)計(jì)原理2.1.1 樂(lè)曲的發(fā)聲原理組成樂(lè)曲的2個(gè)基本要素是:每個(gè)音符的發(fā)音頻率值及其持續(xù)的時(shí)間(節(jié)奏)。一般人能聽(tīng)到聲音的頻率范圍約在幾十到幾千赫茲,可以利用程序控制FPGA某個(gè)引腳輸出一定頻率的矩形波,接上揚(yáng)聲器
2、后就能發(fā)出相應(yīng)頻率的聲音,演奏某個(gè)音符的音調(diào)。同時(shí),若能控制每個(gè)音符的持續(xù)時(shí)間,也就控制了樂(lè)曲的節(jié)奏,因此只要控制輸出到揚(yáng)聲器的信號(hào)頻率的高低以及每個(gè)信號(hào)持續(xù)的時(shí)間長(zhǎng)短,即可實(shí)現(xiàn)樂(lè)曲的演奏。2.1.2 音符與頻率的關(guān)系樂(lè)曲的12平均率規(guī)定;每2個(gè)八度(如簡(jiǎn)譜中的中音1與高音1)之間的頻率相差1倍。在2個(gè)八度音之間,又可分為12個(gè)半音,每2個(gè)半音的頻率比為12/2。另外,音符A的頻率為440HZ,音符B至UC之間,E到F之間為半音,其余為全音。由此可以計(jì)算出簡(jiǎn)譜中低音l至高音1之間每個(gè)音符的頻率。設(shè)計(jì)音符查找表電路模塊,時(shí)鐘模塊,數(shù)控分頻器模塊,音樂(lè)節(jié)拍產(chǎn)生模塊電路。2.1.3 音符的獲得方法所
3、有不同頻率的信號(hào)都可以從同一個(gè)系統(tǒng)基準(zhǔn)頻率分頻而來(lái),可以采用GENERIC類(lèi)屬語(yǔ)句,預(yù)置不同頻率音符信號(hào)根據(jù)系統(tǒng)基準(zhǔn)頻率值計(jì)算分頻系數(shù)(分頻系數(shù)=系統(tǒng)基準(zhǔn)頻率/音符頻率)由于個(gè)音符對(duì)應(yīng)的頻率為非整數(shù),而分頻系數(shù)必須為整數(shù)型,故要四舍五入取整,得到不同頻率的音符。2.1.4 樂(lè)曲節(jié)奏的控制每個(gè)音符持續(xù)的時(shí)間是樂(lè)曲連續(xù)播放的另一個(gè)基本要素,如果采用1MHz的頻率作為系統(tǒng)基準(zhǔn)頻率,則需要對(duì)1MHz的信號(hào)進(jìn)行250000分頻得到4Hz信號(hào)作為一個(gè)四分音符的頻率。對(duì)于其他占用時(shí)間較長(zhǎng)的節(jié)拍(必須是四分之一拍的整數(shù)倍)則只需要將該音符連續(xù)輸出相應(yīng)遍數(shù)即可。2.2 設(shè)計(jì)方案2.2.1 簡(jiǎn)譜碼對(duì)應(yīng)的分頻預(yù)置數(shù)
4、查表電路音符的持續(xù)時(shí)間根據(jù)樂(lè)曲的速度及每個(gè)音符的節(jié)拍來(lái)確定,模塊ToneTaba的功能首先是為Spearkera提供決定所發(fā)音符的分頻預(yù)置數(shù),而此數(shù)在Spearkera輸入口停留的時(shí)間即為音符的節(jié)拍值,然后模塊ToneTaba是樂(lè)曲簡(jiǎn)譜碼對(duì)應(yīng)的分頻預(yù)置數(shù)查表電路,其中設(shè)置了“梁?!睒?lè)曲全部音符所對(duì)應(yīng)的分頻預(yù)置數(shù)共13個(gè)。每個(gè)音符的停留時(shí)間由音樂(lè)節(jié)拍和音調(diào)發(fā)生器模塊NoteTabs的clk的輸入頻率決定,在此為4Hz,這13個(gè)值的輸出由對(duì)應(yīng)的ToneTaba的4位輸入值Index3.0確定,而Index3.0最多有16種可選值,輸向ToneTaba中Index3.0的值ToneIndex3.0的
5、輸出值與持續(xù)的時(shí)間由模塊NoteTabs決定。對(duì)應(yīng)的程序如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYToneTabaISPORT(Index:ININTEGERRANGE0TO15;Tone:OUTINTEGERRANGE0TO16#7FF#);END;ARCHITECTUREoneOFToneTabaISBEGINSearch:PROCESS(Index)BEGINCASEIndexISWHEN0=ToneToneToneToneToneToneToneToneToneToneToneToneToneTone=0;ENDCASE;ENDPR
6、OCESS;END;2.2.2 音樂(lè)節(jié)拍和音調(diào)發(fā)生器在NoteTabs中設(shè)置一個(gè)八位二進(jìn)制計(jì)數(shù)器(計(jì)數(shù)最大值位138),計(jì)數(shù)器的計(jì)數(shù)頻率宣威4Hz,即為每一個(gè)計(jì)數(shù)值的停留時(shí)間為0.25秒,恰為當(dāng)全音符設(shè)為一秒時(shí),四四拍的四分音符持續(xù)時(shí)間。例如在NoteTabs里VHDL邏輯描述中“梁?!睒?lè)曲的第一個(gè)音符位“3”,此音停留4個(gè)時(shí)鐘節(jié)拍即為一秒時(shí)間,相應(yīng)的所對(duì)應(yīng)的“3”音符分頻預(yù)置值為1036,在Speakera的輸入端停留一秒,隨著NoteTabs中的而計(jì)數(shù)器按4Hz的時(shí)鐘速率做加法計(jì)數(shù)即音符數(shù)據(jù)通過(guò)ToneIndex3.0端口輸向Tonetaba,“梁?!睒?lè)曲就開(kāi)始連續(xù)自然演奏起來(lái)了。程序如下
7、:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYNoteTabsISPORT(clk:INSTD_LOGIC;ToneIndex:OUTINTEGERRANGE0TO15);END;ARCHITECTUREoneOFNoteTabsISSIGNALCounter:INTEGERRANGE0TO138;BEGINCNT8:PROCESS(CLK,Counter)BEGINIFCounter=138thenCounter=0;ELSIF(clkEVENTANDclk=1)THENCounter
8、ToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexTon
9、eIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndeXToneIndeXToneIndeXToneIndeXToneIn
10、deXToneIndeXToneIndeXToneIndeXToneIndeXToneIndeXToneIndeXToneIndeXToneIndeXToneIndeXToneIndeXToneIndeXToneIndeXToneIndeXToneIndeXToneIndeXToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndex
11、ToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexTon
12、eIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndex=0;ENDCASE;ENDPROCESS;END;2.2.3 數(shù)控分頻與演奏發(fā)生器其時(shí)鐘(Clk)端輸入的是12MHz的信號(hào),從數(shù)控分頻器中出來(lái)的輸出信是脈寬極窄的脈沖式信號(hào),為了有利于驅(qū)動(dòng)揚(yáng)聲器,需另加一個(gè)D觸發(fā)器以均衡其占空比,這時(shí)的頻率就變?yōu)樵瓉?lái)的1/2,剛好就是相應(yīng)音符的頻率。數(shù)控分頻模塊中對(duì)Clk輸入信號(hào)的分頻比由11位預(yù)置數(shù)tone10.0決定。Fout的輸出頻率將決定每一個(gè)音符的音調(diào),這樣,分頻計(jì)數(shù)器的預(yù)置值tone10.0與Fout的輸出頻率就有了對(duì)應(yīng)關(guān)系。
13、例如在分頻預(yù)置數(shù)模塊中若取tone10.0=1036,將發(fā)出音符為“3”音的信號(hào)頻率。程序如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYSpeakeraISPORT(clk:INSTD_LOGIC;Tone:ININTEGERRANGE0TO16#7FF#;SpkS:OUTSTD_LOGIC);END;ARCHITECTUREoneOFSpeakeraISSIGNALPreCLK,FullSpkS:STD_LOGIC;BEGINDivideCLK:PROCESS(clk)VARIAB
14、LECount4:INTEGERRANGE0TO15;BEGINPreCLK11THENPreCLK11thenPreCLK=1;Count4:=0;ELSIFclkEVENTANDclk=1THENCount4:=Count4+1;ENDIF;ENDPROCESS;GenSpkS:PROCESS(PreCLK,Tone)-11位可預(yù)置計(jì)數(shù)器VARIABLECount11:INTEGERRANGE0TO16#7FF#;BEGINIFPreCLKEVENTANDPreCLK=1THENIFCount11=16#7FF#THENCount11:=Tone;FullSpkS=1;ELSECount1
15、1:=Count11+1;FullSpkS=0;ENDIF;ENDIF;ENDPROCESS;DelaySpkS:PROCESS(FullSpkS)-將輸出再2分頻,展寬脈沖,使揚(yáng)聲器有足夠功率發(fā)音VARIABLECount2:STD_LOGIC;BEGINIFFullSpkSEVENTANDFullSpkS=1THENCount2:=NOTCount2;IFCount2=1THENSpkS=1;ELSESpkSCLK2,ToneIndex=ToneIndex);u2:ToneTabaPORTMAP(Index=ToneIndex,Tone=Tone);u3:SpeakeraPORTMAP(c
16、lk=CLK1,Tone=Tone,SpkS=SPKOUT);END;三、設(shè)計(jì)結(jié)果3.1 仿真結(jié)果及分析3.1.1 NoteTabs仿真NoteTabs的仿真波形如下圖:蛇px80.0rti皆口工1他pg芝00.ps24口.口皿elk*工ndKr-Lr-Lr-Lr-LJ-Lr-Lr-ir-Lr-Lr-Lr-LJ-3飛eirorrj8rYO5(rr結(jié)果分析:我們從仿真圖可以看出第一個(gè)clk上升沿時(shí)ToneTndex輸出為3,并且連續(xù)四個(gè)clk上升沿輸出都為3,第五個(gè)clk上升沿輸出為5,且連續(xù)三個(gè)上升沿輸出都為5,第八個(gè)clk上升沿輸出為6,第九、十和十一個(gè)clk上升沿輸出為8,第十二個(gè)clk上
17、升沿輸出為9,由此可見(jiàn),我們的波形輸出結(jié)果與我們的實(shí)驗(yàn)程序的輸出結(jié)果相對(duì)應(yīng),因此NoteTabs部分是正確的。Speakera的仿真波形如下:3.1.2 Speakera仿真結(jié)果分析:由圖可知我們spks輸出為0,并且我們有程序也可得出spks輸出為00因此,此部分也算正確。3.1.3 ToneTaba仿真ToneTaba的仿真波形如下:國(guó)Index叵|丁附.結(jié)果分析:我們可以從圖中看出Index輸入為3時(shí),Tone輸出為1036當(dāng)輸入為9時(shí)輸出為1480。輸入為A時(shí)輸出為1542。輸入為C時(shí)輸出為1622。輸入為6時(shí)輸出為1290。輸入為0時(shí)輸出為2047。這些數(shù)據(jù)都與我們所寫(xiě)的實(shí)驗(yàn)程序上的
18、輸入所對(duì)應(yīng)的輸出數(shù)據(jù)相同,所以這一部分的實(shí)驗(yàn)是成功的。3.1.4 Songer仿真Songer的仿真波形如下:Dps20.0ms40.D他Pn*80.0ns100.021120.023.SasJCLK1IL1_r_rJ年MatterlimeBar232n;“Pcidlei;4jOp?Interval:23,8rwStat:End:結(jié)果分析:在頂層文件中我們調(diào)用了ToneTaba、Sperkera以及NoteTabs部分,再根據(jù)元件內(nèi)部的關(guān)聯(lián)去編寫(xiě)程序,從而完成樂(lè)曲自動(dòng)演奏電路的實(shí)驗(yàn)程序。其中的CLK1是NoteTabs部分中的clk,CLK2是Sperkera部分中的clk0最后的輸出SPKOUT是Sperkera部分中的SpkS。3.2 硬件測(cè)試及說(shuō)明3.2.1引腳鎖定11ToLocationI/OBank1CLK1PIN_29*7CLK2PIN_153一3SPKOUTPIN_174343.2.2硬件測(cè)試結(jié)果分析程序下載后,試驗(yàn)箱的揚(yáng)聲器自動(dòng)播放樂(lè)曲“梁?!?。與預(yù)期結(jié)果一致,硬件實(shí)現(xiàn)結(jié)果正確。四、總結(jié)在樂(lè)曲硬件演奏電路
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年企業(yè)勞動(dòng)用工合同標(biāo)準(zhǔn)樣本(2篇)
- 2025年個(gè)人門(mén)面房租賃合同標(biāo)準(zhǔn)樣本(2篇)
- 2025年中介服務(wù)合同范例(三篇)
- 戶(hù)外運(yùn)動(dòng)中心裝修合同終止
- 液體化工品國(guó)內(nèi)運(yùn)輸協(xié)議
- 寵物運(yùn)輸包車(chē)協(xié)議樣本
- 寵物用品居間協(xié)議書(shū)樣本
- 商業(yè)街店鋪裝修合同樣本
- 幼兒園裝修合同樣本
- 模特培訓(xùn)機(jī)構(gòu)裝修正式合同
- 2025-2030年中國(guó)反滲透膜行業(yè)市場(chǎng)發(fā)展趨勢(shì)展望與投資策略分析報(bào)告
- 湖北省十堰市城區(qū)2024-2025學(xué)年九年級(jí)上學(xué)期期末質(zhì)量檢測(cè)道德與法治試題 (含答案)
- 《住院患者身體約束的護(hù)理》團(tuán)體標(biāo)準(zhǔn)解讀課件
- 中國(guó)心力衰竭診斷與治療指南解讀
- 電商部售后客服績(jī)效考核表
- 小提琴協(xié)奏曲《梁?!纷V
- 人教版高中化學(xué)必修一第一章《物質(zhì)及其變化》教學(xué)課件
- 復(fù)工復(fù)產(chǎn)工作方案范本【復(fù)產(chǎn)復(fù)工安全工作方案】
- HyperMesh100基礎(chǔ)培訓(xùn)教程
- 現(xiàn)代機(jī)械強(qiáng)度理論及應(yīng)用課件匯總?cè)譸pt完整版課件最全教學(xué)教程整套課件全書(shū)電子教案
- 農(nóng)村信用社個(gè)人借款申請(qǐng)審批表
評(píng)論
0/150
提交評(píng)論