eda課設__音樂流水燈_第1頁
eda課設__音樂流水燈_第2頁
eda課設__音樂流水燈_第3頁
eda課設__音樂流水燈_第4頁
eda課設__音樂流水燈_第5頁
已閱讀5頁,還剩65頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、音樂流水燈1 緒論1.1 EDA簡介EDA是電子設計自動化(Electronic Design Automation)的縮寫,在20世紀60年代中期從計算機輔助設計(CAD)、計算機輔助制造(CAM)、計算機輔助測試(CAT)和計算機輔助工程(CAE)的概念發(fā)展而來的。EDA技術就是以計算機為工具,設計者在EDA軟件平臺上,用硬件描述語言HDL完成設計文件,然后由計算機自動地完成邏輯編譯、化簡、分割、綜合、優(yōu)化、布局、布線和仿真,直至對于特定目標芯片的適配編譯、邏輯映射和編程下載等工作。EDA技術的出現(xiàn),極大地提高了電路設計的效率和可操作性,減輕了設計者的勞動強度。 利用EDA工具,電子設計師

2、可以從概念、算法、協(xié)議等開始設計電子系統(tǒng),大量工作可以通過計算機完成,并可以將電子產(chǎn)品從電路設計、性能分析到設計出IC版圖或PCB版圖的整個過程的計算機上自動處理完成。現(xiàn)在對EDA的概念或范疇用得很寬。包括在機械、電子、通信、航空航天、化工、礦產(chǎn)、生物等各個領域,都有EDA的應用。1.2 硬件描述語VHDL硬件描述語言(HDL)是一種用于設計硬件電子系統(tǒng)的計算機語言,它用軟件編程的方式來描述電子系統(tǒng)的邏輯功能、電路結構和連接形式,與傳統(tǒng)的門級描述方式相比,它更適合大規(guī)模系統(tǒng)的設計。例如一個32位的加法器,利用圖形輸入軟件需要輸人500至1000個門,而利用VHDL語言只需要書寫一行“A=B+C

3、” 即可。而且 VHDL語言可讀性強,易于修改和發(fā)現(xiàn)錯誤。早期的硬件描述語言,如ABEL、HDL、AHDL,由不同的EDA廠商開發(fā),互不兼容,而且不支持多層次設計,層次間翻譯工作要由人工完成。為了克服以上不足,1985年美國國防部正式推出了高速集成電路硬件描述語言VHDL,1987年IEEE采納VHDL為硬件描述語言標準(IEEE-STD-1076)。VHDL是一種全方位的硬件描述語言,包括系統(tǒng)行為級。寄存器傳輸級和邏輯門多個設計層次,支持結構、數(shù)據(jù)流和行為三種描述形式的混合描述,因此VHDL幾乎覆蓋了以往各種硬件俄語言的功能,整個自頂向下或由下向上的電路設計過程都可以用VHDL來完成。VHD

4、L還具有以下優(yōu)點:(1)VHDL的寬范圍描述能力使它成為高層進設計的核心,將設計人員的工作重心提高到了系統(tǒng)功能的實現(xiàn)與調(diào)試,而花較少的精力于物理實現(xiàn)。(2)VHDL可以用簡潔明確的代碼描述來進行復雜控制邏輯設計,靈活且方便,而且也便于設計結果的交流、保存和重用。(3)VHDL的設計不依賴于特定的器件,方便了工藝的轉(zhuǎn)換。(4)VHDL是一個標準語言,為眾多的EDA廠商支持,因此移植性好。美國于1981年提出了一種新的、標準化的HDL,稱之為VHSIC(Very High Speed Integrated Circuit) Hardware Description Language,簡稱VHDL。

5、這是一種用形式化方法來描述數(shù)字電路和設計數(shù)字邏輯系統(tǒng)的語言。設計者可以利用這種語言來描述自己的設計思想,然后利用電子設計自動化工具進行仿真,再自動綜合到門電路,最后用PLD實現(xiàn)其功能。FPGA/CPLD電路設計的一般流程:通??蓪⒃O計流程歸納為以下7個步驟。第1步:設計輸入。在傳統(tǒng)設計中,設計人員是應用傳統(tǒng)的原理圖輸入方法來開始設計的。自90年代初,Verilog、VHDL、 AHDL等硬件描述語言的輸入方法得到了廣大工程設計人員的認可。第2步:前仿真。所設計的電路必須在布局布線前驗證,目的主要是在仿真時,驗證電路功能是否有效。在ASIC設計中,這一步驟稱為第一次Signoff.第3步:設計輸

6、入編譯。設計輸入之后就有一個從高層次系統(tǒng)行為設計向低層次門級邏輯電路的轉(zhuǎn)化翻譯過程,即把設計輸入的某種或某幾種數(shù)據(jù)格式(網(wǎng)表)轉(zhuǎn)化為底層軟件能夠識別的某種數(shù)據(jù)格式(網(wǎng)表),以求達到與其工藝無關。第4步:設計輸入的優(yōu)化。對于上述綜合生成的網(wǎng)表,根據(jù)布爾方程功能等效的原則,用更小更快的綜合結果替代一些復雜的單元,并與指定的庫映射生成新的網(wǎng)表,這是硬件描述語言輸入方式中減小電路規(guī)模的一條必由之路。第5步:布局布線。當初步的仿真被驗證后,就開始布局布線。這一步可相對規(guī)劃出ASIC和FPGA/CPLD設計。第6步:后仿真。設計人員需要利用在布局線中獲得的更精確的RC參數(shù)再次驗證電路的功能和時序。在ASI

7、C設計中,這一步驟稱為第二次Signoff。第7步:流片。在布局布線和后仿真完成之后,當需要大批量生產(chǎn)該芯片時,就可以開始ASIC芯片的投產(chǎn)。1.3 軟件介紹Quartus II 是Altera公司的綜合性PLD開發(fā)軟件,支持原理圖、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多種設計輸入形式,內(nèi)嵌自有的綜合器以及仿真器,可以完成從設計輸入到硬件配置的完整PLD設計流程。 Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl腳本完成設計流程外,提供了完善的用戶圖形界面設計方式。具有運行速度快

8、,界面統(tǒng)一,功能集中,易學易用等特點。 Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模塊庫,使用戶可以充分利用成熟的模塊,簡化了設計的復雜性、加快了設計速度。對第三方EDA工具的良好支持也使用戶可以在設計流程的各個階段使用熟悉的第三方EDA工具。 此外,Quartus II 通過和DSP Builder工具與Matlab/Simulink相結合,可以方便地實現(xiàn)各種DSP應用系統(tǒng);支持Altera的片上可編程系統(tǒng)(SOPC)開發(fā),集系統(tǒng)級設計、嵌入式軟件開發(fā)、可編程邏輯設計于一體,是一種綜合性的開發(fā)平臺。 Maxplus II 作為Altera的上一

9、代PLD設計軟件,由于其出色的易用性而得到了廣泛的應用。Altera在Quartus II 中包含了許多諸如SignalTap II、Chip Editor和RTL Viewer的設計輔助工具,集成了SOPC和HardCopy設計流程,并且繼承了Maxplus II 友好的圖形界面及簡便的使用方法。Altera Quartus II 作為一種可編程邏輯的設計環(huán)境, 由于其強大的設計能力和直觀易用的接口,越來越受到數(shù)字系統(tǒng)設計者的歡迎。1.4 硬件介紹Cyclone器件:Cyclone現(xiàn)場可編程門陣列系列基于1.5V、0.13m全銅層SRAM工藝,其密度增加至20060個邏輯元件(LE),RAM

10、增加至228KB。它具有生成時鐘的鎖相環(huán)以及DDR SDR和快速RAM(FCRAM)存儲器所需的專用雙數(shù)據(jù)率(DDR)接口等。Cyclone器件支持多種I/O標準,包括640Mbps的LVDS,以及頻率為33MHz和66MHz、數(shù)據(jù)寬度為32位和64位的PCI。Cyclone器件可以實現(xiàn)Nios II嵌入式處理器,而且只占用不到600個邏輯單元(LE),因此在含多達20260個LE的最大Cyclone器件中,可以將多個Nios II處理器集成到一個Cyclone器件中。Nios II系列嵌入式處理器以第一代Nios處理器為基礎,提供三種內(nèi)核來滿足嵌入式處理器的應用。設計者可以從高性能內(nèi)核(超過

11、200 DMIPS)、低成本內(nèi)核(代于50美分的邏輯資源消耗)和性價比平衡的標準內(nèi)核中進行選擇。開發(fā)人員通過向Nios II處理器指令集中增加定制指令,可以加速軟件算法。定制指令可以在一個時鐘周期的時間內(nèi)完成復雜的處理任務,為系統(tǒng)優(yōu)化提供了一種高性價比的解決方案。用戶添加的定制指令可以該問存儲器和Nios II系統(tǒng)外部的邏輯,提供了高效、靈活的訪問數(shù)據(jù)和邏輯資源的能力。定制指令允許設計者靈活、輕便地設計高端軟件,同時保留了并行硬件操作在可編程邏輯器件(PLD)中的性能優(yōu)勢。1.5 課題研究通過此實驗讓我們進一步了解,熟悉和掌握CPLD/FPGA開發(fā)軟件的使用方法及VHDL的編程方法。本次EDA

12、課程設計我們所采用的是由武漢凌特電子技術有限公司生產(chǎn)的LTE-SOPC-02FD型OPC實驗開發(fā)系統(tǒng)。1.5.1 課題研究內(nèi)容主要內(nèi)容:在本課程設計中使用Altera公司的EP2C35系列的EP2C35F484C7 -FPGA芯片,利用SOPC-NIOSII-EP2C35開發(fā)板上的資源,實現(xiàn)一個音樂流水燈。本設計的任務要求通過編程實現(xiàn)一段音樂旋律的循環(huán)播放,在音樂播放的過程中,流水燈根據(jù)旋律閃爍。擴展內(nèi)容:1 利用數(shù)碼管顯示播放時間2利用16*16點陣顯示播放歌曲名稱3利用4×4鍵盤陣列鍵盤實現(xiàn)播放歌曲的切換4利用液晶顯示頻譜分析1.5.2 課題研究方法1.5.2.1 理論依據(jù)根據(jù)設

13、計要求分析系統(tǒng)功能,掌握設計中所需理論(音樂模塊的設計,流水燈模塊的設計,16*16點陣模塊的設計,按鍵選擇模塊的設計,音樂播放時間模塊的設計),闡述設計原理。1.5.2.2 音樂模塊基本原理:組成樂曲的每個音符的頻率值以及持續(xù)時間是樂曲能連續(xù)演奏所需的基本數(shù)據(jù)。并將簡單音樂的相應程序加載到蜂鳴器模塊中,使其能夠按照音樂的節(jié)奏發(fā)聲。1.5.2.3 流水燈模塊通過對流水燈模塊的編程控制,使其實現(xiàn)隨著簡單音樂的節(jié)奏有規(guī)律的進行點亮和熄滅。1.5.2.4 16*16點陣模塊16*16點陣的行為掃描選通信號、列為數(shù)據(jù)輸入。顯示采用逐行列掃描方式,數(shù)據(jù)端不斷輸入數(shù)據(jù),行掃描按一定順序逐行選通,掃描一個周

14、期(16次)產(chǎn)生一幀畫面。使其實現(xiàn)在按鍵選擇播放相應簡單音樂時,16*16點陣循環(huán)顯示播放歌曲的名字。1.5.2.5 按鍵選擇模塊由于4*4矩陣鍵盤模塊、數(shù)碼管模塊與16*16點陣模塊的引腳有相同的,所以不能在有數(shù)碼管模塊與16*16點陣模塊的功能時同時用4*4矩陣鍵盤模塊控制簡單歌曲的切換。因此,我將采用撥動開關模塊控制簡單歌曲的切換。1.5.2.6 音樂播放時間模塊當音樂開始播放時,八位七段數(shù)碼管開始從零開始計時,因此通過八位七段數(shù)碼管可以知道音樂播放的時間。2 課程設計方案及相應原理2.1 課程設計總體方案具體總體設計方案見圖2.1、圖2.2:開始讀取按鍵讀取歌曲代碼掃描16*16點陣流

15、水燈顯示播放歌曲讀取按鍵16*16點陣選擇相應代碼,顯示歌曲名稱圖2.1 總體方案設計流程圖(點陣顯示+按鍵選擇+流水燈)開始歌曲計時開始讀取按鍵讀取歌曲代碼播放歌曲流水燈顯示圖2.2 總體方案設計流程圖(時間顯示+按鍵選擇+流水燈)2.2 具體設計方法在本節(jié)中,將對各個模塊的具體設計方法及仿真現(xiàn)象進行闡述,但最后的課程設計是將好幾個模塊的設計思路同時同時進行仿真和燒錄至開發(fā)系統(tǒng)進行驗證的。同時,由于4*4矩陣鍵盤模塊、數(shù)碼管模塊與16*16點陣模塊的引腳有相同的,所以不能在有數(shù)碼管模塊與16*16點陣模塊的功能時同時用4*4矩陣鍵盤模塊控制簡單歌曲的切換。因此,課程設計內(nèi)容里面要求的部分拓展

16、內(nèi)容,將分為兩個程序來實現(xiàn)。2.2.1 音樂模塊2.2.1.1 基本原理為了便于理解,首先介紹一下硬件電路的發(fā)聲原理。我們知道,聲音的頻譜范圍約在幾十到幾千赫茲,若能利用程序來控制FPGA某個引腳輸出一定頻率的矩形波,接上揚聲器就能發(fā)出相應頻率的聲音。而樂曲中的每一音符對應著一個確定的頻率,因此,要想FPGA發(fā)出不用音符的音調(diào),實際上只要控制它輸出相應音符的頻率即可。樂曲都是由一連串的音符組成,因此按照樂曲的樂譜依次輸出這些音符所對應的頻率,就可以在揚聲器上連續(xù)地發(fā)出各個音符的音調(diào)。而要準確地演奏出一首樂曲,僅僅讓揚聲器能夠發(fā)聲是不夠的,還必須準確地控制樂曲的節(jié)奏,即每個音符的持續(xù)時間。由此可

17、見,樂曲中每個音符的發(fā)音頻率及其持續(xù)的時間是樂曲能夠連續(xù)演奏的兩個基本要素,獲取這兩個要素所對應的數(shù)值以及通過純硬件的手段來利用這些數(shù)值實現(xiàn)所希望樂曲的演奏效果是本實驗的關鍵。因此要實現(xiàn)在蜂鳴器上播放出有一定規(guī)律節(jié)奏的簡單歌曲,就需要了解各個音階的頻率,以及怎樣將這些頻率轉(zhuǎn)換為開發(fā)系統(tǒng)以及蜂鳴器能夠識別的代碼。具體個音階的頻率見圖2.3,以及頻率點及音符與音譜對應定義見圖2.4:圖2.3 各音階頻率表圖2.4 頻率點及音符與音譜對應表2.2.1.2 程序及相應電路原理圖該模塊程序如下所示:library ieee;use ieee.std_logic_1164.all;use ieee.std

18、_logic_arith.all;use ieee.std_logic_unsigned.all;entity tb is port( clk : in std_logic; -Clock Signal spk : buffer std_logic -speaker driver ); end tb;architecture behave of tb is signal tone : std_logic_vector(10 downto 0); signal tone_count : std_logic_vector(10 downto 0); signal tone_index : inte

19、ger range 0 to 15; signal clk10_count : std_logic_vector(17 downto 0); signal time : integer range 0 to 150; signal clk10 : std_logic; begin process(clk) -generate 10hz clock signal begin if(clk'event and clk='1') then clk10_count<=clk10_count+1; if(clk10_count=16#3fff#) then clk10<

20、;=not clk10; end if; end if; end process; process(clk10) begin if(clk10'event and clk10='1') then if(time=150) then time<=0; else time<=time+1; end if; end if; end process; process(clk10) begin if(clk10'event and clk10='1') then case time is when 0=>tone_index<=3;

21、 when 1=>tone_index<=3; when 2=>tone_index<=3; when 3=>tone_index<=3;- when 4=>tone_index<=5; when 5=>tone_index<=5; when 6=>tone_index<=5; when 7=>tone_index<=6;- when 8=>tone_index<=8; when 9=>tone_index<=8; when 10=>tone_index<=8; when 1

22、1=>tone_index<=9;- when 12=>tone_index<=6; when 13=>tone_index<=8; when 14=>tone_index<=5; when 15=>tone_index<=5;- when 16=>tone_index<=12; when 17=>tone_index<=12; when 18=>tone_index<=12; when 19=>tone_index<=15;- when 20=>tone_index<=13

23、; when 21=>tone_index<=12; when 22=>tone_index<=10; when 23=>tone_index<=12;- when 24=>tone_index<=9; when 25=>tone_index<=9; when 26=>tone_index<=9; when 27=>tone_index<=9;- when 28=>tone_index<=9; when 29=>tone_index<=9; when 30=>tone_index&

24、lt;=0; when 31=>tone_index<=0;- when 32=>tone_index<=9; when 33=>tone_index<=9; when 34=>tone_index<=9; when 35=>tone_index<=10;- when 36=>tone_index<=7; when 37=>tone_index<=7; when 38=>tone_index<=6; when 39=>tone_index<=6;- when 40=>tone_in

25、dex<=5; when 41=>tone_index<=5; when 42=>tone_index<=5; when 43=>tone_index<=6;- when 44=>tone_index<=8; when 45=>tone_index<=8; when 46=>tone_index<=9; when 47=>tone_index<=9;- when 48=>tone_index<=3; when 49=>tone_index<=3; when 50=>tone_

26、index<=8; when 51=>tone_index<=8;- when 52=>tone_index<=6; when 53=>tone_index<=5; when 54=>tone_index<=6; when 55=>tone_index<=8;- when 56=>tone_index<=5; when 57=>tone_index<=5; when 58=>tone_index<=5; when 59=>tone_index<=5;- when 60=>to

27、ne_index<=5; when 61=>tone_index<=5; when 62=>tone_index<=0; when 63=>tone_index<=0;- when 64=>tone_index<=10; when 65=>tone_index<=10; when 66=>tone_index<=10; when 67=>tone_index<=12;- when 68=>tone_index<=7; when 69=>tone_index<=7; when 70=

28、>tone_index<=9; when 71=>tone_index<=9;- when 72=>tone_index<=6; when 73=>tone_index<=8; when 74=>tone_index<=5; when 75=>tone_index<=5;- when 76=>tone_index<=5; when 77=>tone_index<=5; when 78=>tone_index<=5; when 79=>tone_index<=5;- when

29、80=>tone_index<=5; when 81=>tone_index<=0; when 82=>tone_index<=0; when 83=>tone_index<=3;- when 84=>tone_index<=5; when 85=>tone_index<=3; when 86=>tone_index<=5; when 87=>tone_index<=5;- when 88=>tone_index<=6; when 89=>tone_index<=7; whe

30、n 90=>tone_index<=9; when 91=>tone_index<=6;- when 92=>tone_index<=6; when 93=>tone_index<=6; when 94=>tone_index<=6; when 95=>tone_index<=6;- when 96=>tone_index<=6; when 97=>tone_index<=5; when 98=>tone_index<=6; when 99=>tone_index<=8;-

31、when 100=>tone_index<=8; when 101=>tone_index<=8; when 102=>tone_index<=9; when 103=>tone_index<=12;- when 104=>tone_index<=12; when 105=>tone_index<=12; when 106=>tone_index<=10; when 107=>tone_index<=9;- when 108=>tone_index<=9; when 109=>to

32、ne_index<=10; when 110=>tone_index<=9; when 111=>tone_index<=8;- when 112=>tone_index<=8; when 113=>tone_index<=6; when 114=>tone_index<=5; when 115=>tone_index<=3;- when 116=>tone_index<=3; when 117=>tone_index<=3; when 118=>tone_index<=3; wh

33、en 119=>tone_index<=8;- when 120=>tone_index<=8; when 121=>tone_index<=8; when 122=>tone_index<=8; when 123=>tone_index<=6;- when 124=>tone_index<=8; when 125=>tone_index<=6; when 126=>tone_index<=5; when 127=>tone_index<=3;- when 128=>tone_in

34、dex<=5; when 129=>tone_index<=6; when 130=>tone_index<=8; when 131=>tone_index<=5;- when 132=>tone_index<=5; when 133=>tone_index<=5; when 134=>tone_index<=5; when 135=>tone_index<=5;- when 136=>tone_index<=5; when 137=>tone_index<=5; when 138

35、=>tone_index<=0; when 139=>tone_index<=0;- when others=>tone_index<=0; end case; end if; end process; process(tone_index) begin case tone_index is when 0=>tone<="11111111111" when 1=>tone<="01100000101" when 2=>tone<="01110010000" whe

36、n 3=>tone<="10000001100" when 5=>tone<="10010101101" when 6=>tone<="10100001010" when 7=>tone<="10101011100" when 8=>tone<="10110000010" when 9=>tone<="10111001000" when 10=>tone<="11000000110&

37、quot; when 12=>tone<="11001010110" when 13=>tone<="11010000100" when 15=>tone<="11011000000" when others=>tone<="11111111111" end case;end process; process(clk) -control the frequence of the speaker begin if(clk'event and clk='1

38、') then if(tone_count=16#7ff#) then tone_count<=tone; if(tone<2047) then spk<=not spk; end if; else tone_count<=tone_count+1; end if; end if; end process;end behave;2.2.2 流水燈模塊2.2.2.1 基本原理在LED1LED12引腳上按照簡單音樂的節(jié)奏有規(guī)律的的輸出流水數(shù)據(jù),如原來輸出的數(shù)據(jù)是000000000011則表示點亮LED1,LED2(共陰接法),流水一次后,輸出的數(shù)據(jù)應該為000000

39、000111,而此時則應點亮LED1LED3三個LED發(fā)光二極管。就可以實現(xiàn)LED流水燈。但是根據(jù)本次課程設計的要求,每次只會有一個音階響起,所以每次只會有一個LED燈亮起。2.2.2.2 程序及相應電路原理圖該模塊程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity tb is port( clk : in std_logic; -Clock Signal spk : buffer std_logic; -speaker

40、 driver led : out std_logic_vector(11 downto 0); end tb;architecture behave of tb is signal tone : std_logic_vector(10 downto 0); signal tone_count : std_logic_vector(10 downto 0); signal tone_index : integer range 0 to 15; signal clk10_count : std_logic_vector(17 downto 0); signal time : integer ra

41、nge 0 to 150; signal clk10 : std_logic; begin process(clk) -generate 10hz clock signal begin if(clk'event and clk='1') then clk10_count<=clk10_count+1; if(clk10_count=16#3fff#) then clk10<=not clk10; end if; end if; end process; process(clk10) begin if(clk10'event and clk10=

42、9;1') then if(time=150) then time<=0; else time<=time+1; end if; end if; end process; process(clk10) begin if(clk10'event and clk10='1') then case time is when 0=>tone_index<=3; when 1=>tone_index<=3; when 2=>tone_index<=3; when 3=>tone_index<=3;- when 4

43、=>tone_index<=5; when 5=>tone_index<=5; when 6=>tone_index<=5; when 7=>tone_index<=6;- when 8=>tone_index<=8; when 9=>tone_index<=8; when 10=>tone_index<=8; when 11=>tone_index<=9;- when 12=>tone_index<=6; when 13=>tone_index<=8; when 14=&g

44、t;tone_index<=5; when 15=>tone_index<=5;- when 16=>tone_index<=12; when 17=>tone_index<=12; when 18=>tone_index<=12; when 19=>tone_index<=15;- when 20=>tone_index<=13; when 21=>tone_index<=12; when 22=>tone_index<=10; when 23=>tone_index<=12;-

45、 when 24=>tone_index<=9; when 25=>tone_index<=9; when 26=>tone_index<=9; when 27=>tone_index<=9;- when 28=>tone_index<=9; when 29=>tone_index<=9; when 30=>tone_index<=0; when 31=>tone_index<=0;- when 32=>tone_index<=9; when 33=>tone_index<=

46、9; when 34=>tone_index<=9; when 35=>tone_index<=10;- when 36=>tone_index<=7; when 37=>tone_index<=7; when 38=>tone_index<=6; when 39=>tone_index<=6;- when 40=>tone_index<=5; when 41=>tone_index<=5; when 42=>tone_index<=5; when 43=>tone_index&l

47、t;=6;- when 44=>tone_index<=8; when 45=>tone_index<=8; when 46=>tone_index<=9; when 47=>tone_index<=9;- when 48=>tone_index<=3; when 49=>tone_index<=3; when 50=>tone_index<=8; when 51=>tone_index<=8;- when 52=>tone_index<=6; when 53=>tone_inde

48、x<=5; when 54=>tone_index<=6; when 55=>tone_index<=8;- when 56=>tone_index<=5; when 57=>tone_index<=5; when 58=>tone_index<=5; when 59=>tone_index<=5;- when 60=>tone_index<=5; when 61=>tone_index<=5; when 62=>tone_index<=0; when 63=>tone_in

49、dex<=0;- when 64=>tone_index<=10; when 65=>tone_index<=10; when 66=>tone_index<=10; when 67=>tone_index<=12;- when 68=>tone_index<=7; when 69=>tone_index<=7; when 70=>tone_index<=9; when 71=>tone_index<=9;- when 72=>tone_index<=6; when 73=>

50、tone_index<=8; when 74=>tone_index<=5; when 75=>tone_index<=5;- when 76=>tone_index<=5; when 77=>tone_index<=5; when 78=>tone_index<=5; when 79=>tone_index<=5;- when 80=>tone_index<=5; when 81=>tone_index<=0; when 82=>tone_index<=0; when 83=&g

51、t;tone_index<=3;- when 84=>tone_index<=5; when 85=>tone_index<=3; when 86=>tone_index<=5; when 87=>tone_index<=5;- when 88=>tone_index<=6; when 89=>tone_index<=7; when 90=>tone_index<=9; when 91=>tone_index<=6;- when 92=>tone_index<=6; when 93

52、=>tone_index<=6; when 94=>tone_index<=6; when 95=>tone_index<=6;- when 96=>tone_index<=6; when 97=>tone_index<=5; when 98=>tone_index<=6; when 99=>tone_index<=8;- when 100=>tone_index<=8; when 101=>tone_index<=8; when 102=>tone_index<=9; wh

53、en 103=>tone_index<=12;- when 104=>tone_index<=12; when 105=>tone_index<=12; when 106=>tone_index<=10; when 107=>tone_index<=9;- when 108=>tone_index<=9; when 109=>tone_index<=10; when 110=>tone_index<=9; when 111=>tone_index<=8;- when 112=>tone_index<=8; when 113=>tone_index<=6; when 114=>tone_index<=5; when 115=>tone_index<=3;- when 116=>tone_index<=3;

溫馨提示

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

評論

0/150

提交評論