基于verilog的音樂盒設(shè)計_第1頁
基于verilog的音樂盒設(shè)計_第2頁
基于verilog的音樂盒設(shè)計_第3頁
基于verilog的音樂盒設(shè)計_第4頁
基于verilog的音樂盒設(shè)計_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、EDA設(shè)計基礎(chǔ)實驗課程論文題 目 基于verilog的音樂盒設(shè)計 學(xué) 院 通信學(xué)院 專業(yè)班級 通信111 學(xué)生姓名 大彬哥 指導(dǎo)教師 2013年 6月 22日摘 要使用Verilog HDL設(shè)計樂曲演奏電路,系統(tǒng)實現(xiàn)是用硬件描述語言Verilog HDL按分頻控制的方式進(jìn)行設(shè)計,然后進(jìn)行編程、時序仿真、電路功能驗證,奏出美妙的樂曲。通過控制輸出到蜂鳴器的激勵信號頻率的高低和持續(xù)的時間,從而使揚(yáng)聲器發(fā)出連續(xù)的樂曲聲,且當(dāng)樂曲演奏完成時,保證能自動從頭開始演奏。關(guān)鍵詞:Verilog HDL; 蜂鳴器; 時序仿真AbstractUsing Verilog HDL music playing cir

2、cuit design, system implementation is to use Verilog hardware description language HDL design according to control by means of frequency division, then carries on the programming, sequential simulation, circuit function verification, play the wonderful music. By controlling the output to the speaker

3、 of the discretion of the excitation signal frequency and duration, which makes the speaker sends out the continuous music, and when the music playing is complete, ensure that can automatically play from the very beginning.Keywords: Verilog HDL ; Ensure ; Sequential simulation目 錄摘 要IAbstractII目 錄III

4、第1章 緒論11.課程設(shè)計目的:12.課程設(shè)計要求:13.該方案可以實現(xiàn)的功能:1第2章 應(yīng)用工具介紹22.1 EDA技術(shù)介紹22.2 Verilog HDL語言介紹2第3章 基本原理43.1音調(diào)的控制43.2音長的控制5第4章 方案實現(xiàn)7第5章 方案測試20第6章 引腳鎖定23第7章 引腳鎖定后下載程序24參考文獻(xiàn)25第1章 緒論1.課程設(shè)計目的:1)加深對EDA技術(shù)的理解,掌握樂曲演奏電路的工作原理2)了解怎樣控制音調(diào)的高低變化和音長,從而完成樂曲的自動循環(huán)演奏。3)培養(yǎng)自主學(xué)習(xí)、正確分析和解決問題的能力 2.課程設(shè)計要求:1)使用Verilog HDL設(shè)計樂曲演奏電路,系統(tǒng)實現(xiàn)是用硬件描

5、述語言Verilog HDL按分頻控制的方式進(jìn)行設(shè)計,然后進(jìn)行編程、時序仿真、電路功能驗證,奏出美妙的樂曲。2) 通過控制輸出到揚(yáng)聲器的激勵信號頻率的高低和持續(xù)的時間,從而使揚(yáng)聲器發(fā)出連續(xù)的樂曲聲,且當(dāng)樂曲演奏完成時,保證能自動從頭開始演奏。3.該方案可以實現(xiàn)的功能:1)通過蜂鳴器播放音樂;2)通過一個開關(guān)實現(xiàn)兩首樂曲的切換;3)在音樂播放的同時,會有l(wèi)ed流水燈的閃爍.第2章 應(yīng)用工具介紹作為當(dāng)今最流行的計算機(jī)軟件系統(tǒng),EDA技術(shù)是以計算機(jī)為工作平臺,融合了應(yīng)用電子技術(shù)、計算機(jī)技術(shù)、信息處理及智能化技術(shù)的最新成果,進(jìn)行電子產(chǎn)品的自動設(shè)計。EDA可提供文本輸入以及圖形編輯的方法將設(shè)計者的意圖用

6、程序或者圖形方式表達(dá)出來,而我們經(jīng)常用到的VHDL語言便是用于編寫源程序所需的最常見的硬件描述語言(HDL)之一。2.1 EDA技術(shù)介紹EDA是電子設(shè)計自動化(Electronic Design Automation)的縮寫,在20世紀(jì)90年代初從計算機(jī)輔助設(shè)計(CAD)、計算機(jī)輔助制造(CAM)、計算機(jī)輔助測試(CAT)和計算機(jī)輔助工程(CAE)的概念發(fā)展而來。EDA技術(shù)是在電子CAD技術(shù)基礎(chǔ)上發(fā)展起來的計算機(jī)軟件系統(tǒng),是指以計算機(jī)為工作平臺,融合了應(yīng)用電子技術(shù)、計算機(jī)技術(shù)、信息處理及智能化技術(shù)的最新成果,進(jìn)行電子產(chǎn)品的自動設(shè)計1。EDA技術(shù)就是以計算機(jī)為工具,設(shè)計者在EDA軟件平臺上,用硬

7、件描述語言HDL完成設(shè)計文件,然后由計算機(jī)自動地完成邏輯編譯、化簡、分割、綜合、優(yōu)化、布局、布線和仿真,直至對于特定目標(biāo)芯片的適配編譯、邏輯映射和編程下載等工作。典型的EDA工具中必須包含兩個特殊的軟件包,即綜合器和適配器。綜合器的功能就是將設(shè)計者在EDA平臺上完成的針對某個系統(tǒng)項目的HDL、原理圖或狀態(tài)圖形描述,針對給定的硬件系統(tǒng)組件,進(jìn)行編譯、優(yōu)化、轉(zhuǎn)換和綜合,最終獲得我們欲實現(xiàn)功能的描述文件。綜合器在工作前,必須給定所要實現(xiàn)的硬件結(jié)構(gòu)參數(shù),它的功能就是將軟件描述與給定的硬件結(jié)構(gòu)用一定的方式聯(lián)系起來。也就是說,綜合器是軟件描述與硬件實現(xiàn)的一座橋梁。綜合過程就是將電路的高級語言描述轉(zhuǎn)換低級的

8、、可與目標(biāo)器件FPGA/CPLD相映射的網(wǎng)表文件。 在今天,EDA技術(shù)已經(jīng)成為電子設(shè)計的普遍工具,無論設(shè)計芯片還是設(shè)計系統(tǒng),沒有EDA工具的支持,都是難以完成的。EDA工具已經(jīng)成為設(shè)計師必不可少的武器,起著越來越重要的作用。從目前的EDA技術(shù)來看,其發(fā)展趨勢是政府重視、使用普及、應(yīng)用廣泛、工具多樣、軟件功能強(qiáng)大。EDA技術(shù)發(fā)展迅猛,完全可以用日新月異來描述。EDA技術(shù)的應(yīng)用廣泛,現(xiàn)在已涉及到各行各業(yè)。EDA水平不斷提高,設(shè)計工具趨于完美的地步。2.2 Verilog HDL語言介紹Verilog HDL是一種硬件描述語言,用于從算法級、門級到開關(guān)級的多種抽象設(shè)計層次的數(shù)字系統(tǒng)建模。被建模的數(shù)字

9、系統(tǒng)對象的復(fù)雜性可以介于簡單的門和完整的電子數(shù)字系統(tǒng)之間。數(shù)字系統(tǒng)能夠按層次描述,并可在相同描述中顯式地進(jìn)行時序建模2。作為一種通用化的硬件描述語言,Verilog HDL語言具有下述描述能力:設(shè)計的行為特性、設(shè)計的數(shù)據(jù)流特性、設(shè)計的結(jié)構(gòu)組成以及包含響應(yīng)監(jiān)控和設(shè)計驗證方面的時延和波形產(chǎn)生機(jī)制。所有這些都使用同一種建模語言。此外,Verilog HDL語言提供了編程語言接口,通過該接口可以在模擬、驗證期間從設(shè)計外部訪問設(shè)計,包括模擬的具體控制和運(yùn)行3。Verilog HDL語言不僅定義了語法,而且對每個語法結(jié)構(gòu)都定義了清晰的模擬、仿真語義。因此,用這種語言編寫的模型能夠使用Verilog仿真器進(jìn)

10、行驗證。語言從C編程語言中繼承了多種操作符和結(jié)構(gòu)。Verilog HDL提供了擴(kuò)展的建模能力,其中許多擴(kuò)展最初很難理解。但是,Verilog HDL語言的核心子集非常易于學(xué)習(xí)和使用,這對大多數(shù)建模應(yīng)用來說已經(jīng)足夠。當(dāng)然,完整的硬件描述語句足以對從最復(fù)雜的芯片到完整的電子系統(tǒng)進(jìn)行描述。Verilog HDL語言已經(jīng)成為一種標(biāo)準(zhǔn)的硬件描述語言。它具有以下特點(diǎn):(1)作為一種多用途的硬件描述語言,它具有很好的易學(xué)性和易用性。(2)Verilog HDL語言允許在同一個模塊中進(jìn)行不同抽象層次的描述。(3)大多數(shù)邏輯綜合工具都支持Verilog HDL,使得它成為設(shè)計人員的一個很好的選擇。(4)所有的制

11、造廠商都提供了Verilog HDL的工藝庫,用以支持仿真。(5)Verilog HDL的程序語言接口擁有強(qiáng)大的功能,允許用戶用C語言對內(nèi)部數(shù)據(jù)結(jié)構(gòu)進(jìn)行描述3。正是以上優(yōu)點(diǎn),使得Verilog HDL語言廣泛流行。下面是verilog的設(shè)計流程第3章 基本原理樂曲演奏的原理是這樣的:組成樂曲的每個音符的頻率值(音調(diào))及其持續(xù)的時間(音長)是樂曲能連續(xù)演奏所需的兩個基本數(shù)據(jù),因此只要控制輸出到揚(yáng)聲器的激勵信號頻率的高低和持續(xù)的時間,就可以使揚(yáng)聲器發(fā)出連續(xù)的樂曲聲4。3.1音調(diào)的控制頻率的高低決定了音調(diào)的高低。音樂的十二平均率規(guī)定:每兩個8度音(如簡譜中的中音1與高音1)之間的頻率相差一倍。在兩個

12、8度音之間,又可分為12個半音,每兩個半音的頻率比為122。 另外,音名A(簡譜中的低音6)的頻率為440Hz,音名B到C之間、E到F之間為半音,其余為全音4。由此可以計算出簡譜中從低音1至高音1之間每個音名對應(yīng)的頻率,如表3.11所示:表3.11 簡譜中的音名與頻率的關(guān)系音名頻率/Hz音名頻率/Hz音名頻率/Hz低音1261.6中音1523.3高音11046.5低音2293.7中音2587.3高音21174.7低音3329.6中音3659.3高音31318.5低音4349.2中音4698.5高音41396.9低音5392中音5784高音51568低音6440中音6880高音6176

13、0低音7493.9中音7987.8高音71975.5所有不同頻率的信號都是從同一個基準(zhǔn)頻率分頻得到的。由于音階頻率多為非整數(shù),而分頻系數(shù)又不能為小數(shù),故必須將計算得到的分頻數(shù)四舍五入取整。若基準(zhǔn)頻率過低,則由于分頻比太小,四舍五入取整后的誤差較大;若基準(zhǔn)頻率過高,雖然誤差變小,但分頻數(shù)將變大。實際的設(shè)計綜合考慮這兩方面的因素,在盡量減小頻率誤差的前提下取合適的基準(zhǔn)頻率4。本例中選取6MHz為基準(zhǔn)頻率。若無6MHz的基準(zhǔn)頻率,則可以先分頻得到6MHz,或換一個新的基準(zhǔn)頻率。實際上,只要各個音名間的相對頻率關(guān)系不變,演奏出的樂曲聽起來都不會"走調(diào)"。本例需要演奏的是梁祝樂曲,該

14、樂曲各音階頻率及相應(yīng)的分頻比如表2所示。為了減小輸出的偶次諧波分量,最后輸出到揚(yáng)聲器的波形應(yīng)為對稱方波,因此在到達(dá)揚(yáng)聲器之前,有一個二分頻的分頻器。表2中的分頻比就是從6MHz頻率二分頻得到的3MHz頻率基礎(chǔ)上計算得出的。由于最大的分頻系數(shù)為9102,故采用14位二進(jìn)制計數(shù)器分頻可滿足需要。在表2中,除給出了分頻比以外,還給出了對應(yīng)于各個音階頻率時計數(shù)器不同的預(yù)置數(shù)。對于不同的分頻系數(shù),只要加載不同的預(yù)置數(shù)即可。采用加載預(yù)置數(shù)實現(xiàn)分頻的方法比采用反饋復(fù)零法節(jié)省資源,實現(xiàn)起來也容易一些,如表3.12所示:表3.12 各音階頻率對應(yīng)的分頻比及預(yù)置數(shù)音名分頻比預(yù)置數(shù)音名分頻比預(yù)置數(shù)低音3910272

15、81中音2511111272低音576538730中音3455211831低音668189565中音5382712556低音7607310310中音6340912974中音1573610647高音1286713516此外,對于樂曲中的休止符,只要將分頻系數(shù)設(shè)為0,即初始值為2141=16383即可,此時揚(yáng)聲器將不會發(fā)聲。3.2音長的控制音符的持續(xù)時間必須根據(jù)樂曲的速度及每個音符的節(jié)拍數(shù)來確定。本例演奏的梁祝片段,最短的音符為4分音符,如果將全音符的持續(xù)時間設(shè)為1s的話,則只需要再提供一個4Hz的時鐘頻率即可產(chǎn)生4分音符的時長4。樂譜產(chǎn)生電路用來控制音樂的音調(diào)和音長??刂埔粽{(diào)通過設(shè)置計數(shù)器的預(yù)置

16、數(shù)來實現(xiàn),預(yù)置不同的數(shù)值可以使計數(shù)器產(chǎn)生不同頻率的信號,從而產(chǎn)生不同的音調(diào)??刂埔糸L是通過控制計數(shù)器預(yù)置數(shù)的停留時間來實現(xiàn)的,預(yù)置數(shù)停留的時間越長,則該音符演奏的時間越長。每個音符的演奏時間都是0.25s的整數(shù)倍,對于節(jié)拍較長的音符,如2分音符,在記譜時將該音名連續(xù)記錄兩次即可。音名顯示電路用來顯示樂曲演奏時對應(yīng)的音符??梢杂?個數(shù)碼管,分別顯示高、中、低音的音名,實現(xiàn)演奏的動態(tài)顯示,十分直觀。在本例中,high3:0、med3:0、low3:0等信號分別用于顯示高音、中音、低音音符。為了使演奏能循環(huán)進(jìn)行,需另外設(shè)置一個時長計數(shù)器,當(dāng)樂曲演奏完成時,保證能自動從頭開始演奏。第4章 方案實現(xiàn)由系

17、統(tǒng)框圖可以看到本方案分成8個模塊。1)48MHz分頻成12MHz波形分頻器,源代碼和頂層模塊如下/48mhz分成12mhz的分頻模塊module div_clk12mhz(clk_48mhz,clk_12mhz);input clk_48mhz;output clk_12mhz;reg clk_12mhz;reg 21:0 cnt;always (posedge clk_48mhz)if(cnt<1) cnt=cnt+1; / (48mhz/12mhz=4,cnt<4/2-1=1)else begin cnt=0; clk_12mhz =!clk_12mhz; endendmodu

18、le2)12MHz分頻成6MHz波形分頻器,源代碼和頂層模塊如下:/12mhz分成6mhz的分頻模塊,提供給song模塊module div_clk6mhz(clk_12mhz,clk_6mhz);input clk_12mhz;output clk_6mhz;reg clk_6mhz;reg cnt;always (posedge clk_12mhz)clk_6mhz=!clk_6mhz; endmodule 3)12MHz分頻成4Hz波形分頻器,源代碼和頂層模塊如下:/12mhz分成4hz的分頻模塊,提供給song模塊module div_clk4hz(clk_12mhz,clk_4hz)

19、;input clk_12mhz;output clk_4hz;reg clk_4hz;reg 21:0 cnt;always (posedge clk_12mhz)if(cnt<1499999) cnt=cnt+1; / (12mhz/4hz=3000000,cnt<3000000/2-1=1499999)else begin cnt=0; clk_4hz =! clk_4hz; endendmodule 4)12MHz分頻成1mhz波形分頻器,源代碼和頂層模塊如下:/12mhz分成1mhz的分頻模塊,提供給quma模塊module div_clk1mhz(clk_12mhz,c

20、lk_1mhz);input clk_12mhz;output clk_1mhz;reg clk_1mhz;reg 21:0 cnt;always (posedge clk_12mhz)if(cnt<5) cnt=cnt+1; / (12mhz/1mhz=12,cnt<12/2-1=5)else begin cnt=0; clk_1mhz =! clk_1mhz; endendmodule5)12MHz分頻成1khz波形分頻器,源代碼和頂層模塊如下:/12mhz分成1khz的分頻模塊,提供給quma模塊module div_clk1khz(clk_12mhz,clk_1khz);i

21、nput clk_12mhz;output clk_1khz;reg clk_1khz;reg 21:0 cnt;always (posedge clk_12mhz)if(cnt<5999) cnt=cnt+1; / (12mhz/1khz=12000,cnt<12000/2-1=5999)else begin cnt=0; clk_1khz =! clk_1khz; endendmodule6) song模塊源代碼和頂層模塊如下:/音樂產(chǎn)生模塊module song(clk_6mhz,clk_4hz,speaker,high,med,low,k); /模塊名為song(端口列表)

22、input clk_6mhz,clk_4hz; input k; /定義兩個輸入端口output speaker; /定義一個輸出端口output3:0 high,med,low; reg3:0 high,med,low; /定義了3個4位寄存器reg13:0 divider,origin; /定義了2個14位寄存器reg9:0 counter; /定義了1個10位寄存器reg speaker; wire carry;assign carry=(divider=16383); /連續(xù)賦值語句always (posedge clk_6mhz) begin if(carry) divider<

23、;=origin; else divider<=divider+1; endalways (posedge carry) begin speaker<=speaker;end /二分頻產(chǎn)生方波信號always (posedge clk_4hz) begin case(high,med,low) /分頻比預(yù)置 'b000000000011:origin<=7281; /低音3 'b000000000101:origin<=8730; /低音5 'b000000000110:origin<=9565; /低音6 'b0000000001

24、11:origin<=10310; /低音7 'b000000010000:origin<=10647; /中音1 'b000000100000:origin<=11272; /中音2 'b000000110000:origin<=11831; /中音3 'b000001010000:origin<=12556; /中音5 'b000001100000:origin<=12974; /中音6 'b000001110000:origin<=13347; /中音7 'b000100000000:ori

25、gin<=13516; /高音1 'b000000000000:origin<=16383; /休止符endcase endalways (posedge clk_4hz) if (k=0) begin if(counter=149) counter<=0; /計時,以實現(xiàn)循環(huán)演奏 else counter<=counter+1; case(counter) /記譜 0: high,med,low<='b000000000011; /低音"3" 1: high,med,low<='b000000000011; /持

26、續(xù)4個時鐘節(jié)拍 2: high,med,low<='b000000000011; 3: high,med,low<='b000000000011; 4: high,med,low<='b000000000101; /低音"5" 5: high,med,low<='b000000000101; /發(fā)3個時鐘節(jié)拍 6: high,med,low<='b000000000101; 7: high,med,low<='b000000000110; /低音"6" 8: high,m

27、ed,low<='b000000010000; /中音"1" 9: high,med,low<='b000000010000; /發(fā)3個時鐘節(jié)拍 10: high,med,low<='b000000010000; 11: high,med,low<='b000000100000; /中音"2" 12: high,med,low<='b000000000110; /低音"6" 13: high,med,low<='b000000010000; /中音&q

28、uot;1" 14: high,med,low<='b000000000101; /低音"5" 15: high,med,low<='b000000000101; 16: high,med,low<='b000001010000; /中音"5" 17: high,med,low<='b000001010000; /發(fā)3個時鐘節(jié)拍 18: high,med,low<='b000001010000; 19: high,med,low<='b000100000000;

29、 /高音"1" 20: high,med,low<='b000001100000; /中音"6" 21: high,med,low<='b000001010000; /中音"5" 22: high,med,low<='b000000110000; /中音"3" 23: high,med,low<='b000001010000; /中音"5" 24: high,med,low<='b000000100000; /中音"

30、2" 25: high,med,low<='b000000100000; /持續(xù)11個時鐘節(jié)拍 26: high,med,low<='b000000100000; 27: high,med,low<='b000000100000; 28: high,med,low<='b000000100000; 29: high,med,low<='b000000100000; 30: high,med,low<='b000000100000; 31: high,med,low<='b00000010

31、0000; 32: high,med,low<='b000000100000; 33: high,med,low<='b000000100000; 34: high,med,low<='b000000100000; 35: high,med,low<='b000000110000; /中音"3" 36: high,med,low<='b000000000111; /低音"7" 37: high,med,low<='b000000000111; 38: high,med,l

32、ow<='b000000000110; /低音"6" 39: high,med,low<='b000000000110; 40: high,med,low<='b000000000101; /低音"5" 41: high,med,low<='b000000000101; 42: high,med,low<='b000000000101; 43: high,med,low<='b000000000110; /低音"6" 44: high,med,low&

33、lt;='b000000010000; /中音"1" 45: high,med,low<='b000000010000; 46: high,med,low<='b000000100000; /中音"2" 47: high,med,low<='b000000100000; 48: high,med,low<='b000000000011; /低音"3" 49: high,med,low<='b000000000011; 50: high,med,low<

34、='b000000010000; /中音"1" 51: high,med,low<='b000000010000; 52: high,med,low<='b000000000110; /低音"6" 53: high,med,low<='b000000000101; /低音"5" 54: high,med,low<='b000000000110; /低音"6" 55: high,med,low<='b000000010000; /中音&qu

35、ot;1" 56: high,med,low<='b000000000101; /低音"5" 57: high,med,low<='b000000000101; /持續(xù)8個時鐘節(jié)拍 58: high,med,low<='b000000000101; 59: high,med,low<='b000000000101; 60: high,med,low<='b000000000101; 61: high,med,low<='b000000000101; 62: high,med,low

36、<='b000000000101; 63: high,med,low<='b000000000101; 64: high,med,low<='b000000110000; /中音"3" 65: high,med,low<='b000000110000; /發(fā)3個時鐘節(jié)拍 66: high,med,low<='b000000110000; 67: high,med,low<='b000001010000; /中音"5" 68: high,med,low<='b

37、000000000111; /低音"7" 69: high,med,low<='b000000000111; 70: high,med,low<='b000000100000; /中音"2" 71: high,med,low<='b000000100000; 72: high,med,low<='b000000000110; /低音"6" 73: high,med,low<='b000000010000; /中音"1" 74: high,med,

38、low<='b000000000101; /低音"5" 75: high,med,low<='b000000000101; /持續(xù)4個時鐘節(jié)拍 76: high,med,low<='b000000000101; 77: high,med,low<='b000000000101; 78: high,med,low<='b000000000000; /休止符 79: high,med,low<='b000000000000; 80: high,med,low<='b00000000

39、0011; /低音"3" 81: high,med,low<='b000000000101; /低音"5" 82: high,med,low<='b000000000101; 83: high,med,low<='b000000000011; /低音"3" 84: high,med,low<='b000000000101; /低音"5" 85: high,med,low<='b000000000110; /低音"6" 86:

40、high,med,low<='b000000000111; /低音"7" 87: high,med,low<='b000000100000; /中音"2" 88: high,med,low<='b000000000110; /低音"6" 89: high,med,low<='b000000000110; /持續(xù)6個時鐘節(jié)拍 90: high,med,low<='b000000000110; 91: high,med,low<='b00000000011

41、0; 92: high,med,low<='b000000000110; 93: high,med,low<='b000000000110; 94: high,med,low<='b000000000101; /低音"5" 95: high,med,low<='b000000000110; /低音"6" 96: high,med,low<='b000000010000; /中音"1" 97: high,med,low<='b000000010000;

42、/發(fā)3個時鐘節(jié)拍 98: high,med,low<='b000000010000; 99: high,med,low<='b000000100000; /中音"2" 100: high,med,low<='b000001010000; /中音"5" 101: high,med,low<='b000001010000; 102: high,med,low<='b000000110000; /中音"3" 103: high,med,low<='b0000

43、00110000; 104: high,med,low<='b000000100000; /中音"2" 105: high,med,low<='b000000100000; 106: high,med,low<='b000000110000; /中音"3" 107: high,med,low<='b000000100000; /中音"2" 108: high,med,low<='b000000010000; /中音"1" 109: high,me

44、d,low<='b000000010000; 110: high,med,low<='b000000000110; /低音"6" 111: high,med,low<='b000000000101; /低音"5" 112: high,med,low<='b000000000011; /低音"3" 113: high,med,low<='b000000000011; /持續(xù)4個時鐘節(jié)拍 114: high,med,low<='b000000000011;

45、 115: high,med,low<='b000000000011; 116: high,med,low<='b000000010000; /中音"1" 117: high,med,low<='b000000010000; /持續(xù)4個時鐘節(jié)拍 118: high,med,low<='b000000010000; 119: high,med,low<='b000000010000; 120: high,med,low<='b000000000110; /低音"6" 121

46、: high,med,low<='b000000010000; /中音"1" 122: high,med,low<='b000000000110; /低音"6" 123: high,med,low<='b000000000101; /低音"5" 124: high,med,low<='b000000000011; /低音"3" 125: high,med,low<='b000000000101; /低音"5" 126: hig

47、h,med,low<='b000000000110; /低音"6" 127: high,med,low<='b000000010000; /中音"1" 128: high,med,low<='b000000000101; /低音"5" 129: high,med,low<='b000000000101; /持續(xù)6個時鐘節(jié)拍 130: high,med,low<='b000000000101; 131: high,med,low<='b000000000

48、101; 132: high,med,low<='b000000000101; 133: high,med,low<='b000000000101; 134: high,med,low<='b000000110000; /中音"3" 135: high,med,low<='b000001010000; /中音"5" 136: high,med,low<='b000000100000; /中音"2" 137: high,med,low<='b000000

49、110000; /中音"3" 138: high,med,low<='b000000100000; /中音"2" 139: high,med,low<='b000000010000; /中音"1" 140: high,med,low<='b000000000111; /低音"7" 141: high,med,low<='b000000000111; 142: high,med,low<='b000000000110; /低音"6&quo

50、t; 143: high,med,low<='b000000000110; 144: high,med,low<='b000000000101; /低音"5" 145: high,med,low<='b000000000101; /持續(xù)8個時鐘節(jié)拍 146: high,med,low<='b000000000101; 147: high,med,low<='b000000000101; 148: high,med,low<='b000000000101; 149: high,med,low&

51、lt;='b000000000101; endcaseendelse if( k=1)begin if(counter=149) counter<=0; /計時,以實現(xiàn)循環(huán)演奏 else counter<=counter+1; case(counter) /記譜 0: high,med,low<='b000000110000; /中音"3" 1: high,med,low<='b000000110000; /持續(xù)2個時鐘節(jié)拍 2: high,med,low<='b000000100000; /中音2 3: hig

52、h,med,low<='b000000100000; /持續(xù)2個時鐘節(jié)拍 4: high,med,low<='b000000110000; /中音"3" 5: high,med,low<='b000000110000; /發(fā)10個時鐘節(jié)拍 6: high,med,low<='b000000110000; 7: high,med,low<='b000000110000; 8: high,med,low<='b000000110000; 9: high,med,low<='b000000110000; 10: high,med,low<='b000000110000; 11: high,med,low<='b000000110000; 12: high,med,low<='b000000110000; 13: high,med,low<='b000000110000; 14: high,med,low<='b000000100000; /中音2 15: high,med,low<='b00000010

溫馨提示

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

評論

0/150

提交評論