




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
音樂流水燈目錄HYPERLINK一、緒論 2HYPERLINK1.1設(shè)計(jì)目的 2HYPERLINK1.2設(shè)計(jì)內(nèi)容及要求 2HYPERLINK二、設(shè)計(jì)原理及方案 3HYPERLINK2.1設(shè)計(jì)原理 3HYPERLINK2.2設(shè)計(jì)方案 3HYPERLINK三、設(shè)計(jì)步驟 5HYPERLINK3.1音樂流水燈模塊 5HYPERLINK3.216*16點(diǎn)陣及按鍵選擇模塊 21HYPERLINK3.3音樂播放時(shí)間模塊 37HYPERLINK四、設(shè)計(jì)結(jié)果 49HYPERLINK五、心得體會(huì) 52HYPERLINK六、參考文獻(xiàn) 53HYPERLINK附錄A管腳分配表 54HYPERLINK附錄B動(dòng)態(tài)時(shí)序仿真圖 56
一、緒論1.1設(shè)計(jì)目的EDA是電子設(shè)計(jì)自動(dòng)化(ElectronicDesignAutomation)的縮寫,EDA技術(shù)就是以計(jì)算機(jī)為工具,設(shè)計(jì)者在EDA軟件平臺(tái)上,用硬件描述語(yǔ)言完成設(shè)計(jì)文件,然后由計(jì)算機(jī)自動(dòng)地完成邏輯編譯、化簡(jiǎn)、分割、綜合、優(yōu)化、布局、布線和仿真,直至對(duì)于特定目標(biāo)芯片的適配編譯、邏輯映射和編程下載等工作。EDA技術(shù)的出現(xiàn),極大地提高了電路設(shè)計(jì)的效率和可操作性。本課程設(shè)計(jì)通過(guò)Altera公司的QuartusII軟件配合武漢凌特電子技術(shù)有限公司生產(chǎn)的LTE-SOPC-02FD型OPC實(shí)驗(yàn)開發(fā)系統(tǒng)來(lái)完成設(shè)計(jì)。通過(guò)此實(shí)驗(yàn)讓我們進(jìn)一步了解,熟悉和掌握CPLD/FPGA開發(fā)軟件的使用方法及VHDL的編程方法。1.2設(shè)計(jì)內(nèi)容及要求在本課程設(shè)計(jì)中使用Altera公司的EP2C35系列的EP2C35F484C7-FPGA芯片,利用SOPC-NIOSII-EP2C35開發(fā)板上的資源,實(shí)現(xiàn)一個(gè)音樂流水燈。本設(shè)計(jì)的任務(wù)要求通過(guò)編程實(shí)現(xiàn)一段音樂旋律的循環(huán)播放,在音樂播放的過(guò)程中,流水燈根據(jù)旋律閃爍。擴(kuò)展內(nèi)容:1利用數(shù)碼管顯示播放時(shí)間2利用16*16點(diǎn)陣顯示播放歌曲名稱3利用4×4鍵盤陣列鍵盤實(shí)現(xiàn)播放歌曲的切換二、設(shè)計(jì)原理及方案2.1設(shè)計(jì)原理音樂流水燈主要是點(diǎn)綴公共場(chǎng)合的裝飾品,音樂的播放和流水燈有節(jié)奏地閃爍,同時(shí)達(dá)到聽覺和視覺的完美結(jié)合,成為構(gòu)成其必不可少的條件。要了解如何產(chǎn)生不同音階的音樂,首先要對(duì)樂音的特性有所了解。樂音實(shí)際上是有固定頻率的信號(hào)。在樂曲的構(gòu)成中,樂音的頻率和持續(xù)的時(shí)間是其構(gòu)成的要素。音階的各個(gè)頻率可以通過(guò)高頻時(shí)鐘進(jìn)行分頻得到。音頻的高低可以通過(guò)外部的LED燈的閃爍來(lái)顯示,這樣在音樂和流水燈的配合下可以使人產(chǎn)生強(qiáng)烈的節(jié)奏感??傇砜驁D如圖2.1所示。圖2.1原理框圖2.2設(shè)計(jì)方案總體設(shè)計(jì)流程如下:(1)分頻主要是通過(guò)一個(gè)可控分頻器實(shí)現(xiàn)的。要得到不同頻率的方波,就可以根據(jù)此頻率計(jì)算出分頻過(guò)程中需要計(jì)數(shù)的點(diǎn)數(shù),從而通過(guò)改變可控分頻器的計(jì)數(shù)初值,在達(dá)到計(jì)數(shù)最大值后對(duì)spk端口的信號(hào)取反輸出不同頻率的方波。采用時(shí)鐘的頻率越高,分頻系數(shù)越大,分頻后的音階頻率就越準(zhǔn)確。但同時(shí)由于分頻系數(shù)大使用的計(jì)數(shù)單元增加,從而耗費(fèi)更多的硬件邏輯單元,本次設(shè)計(jì)采用1MHZ的時(shí)鐘信號(hào)。音階頻率表如表1所示,各音階計(jì)數(shù)初值表如表2所示:音階頻率(Hz)音階頻率(Hz)低音1262中音2578低音2294中音3659低音3330中音5784低音5392中音6880低音6440高音11046低音7494高音21175中音1523高音31318表1音階頻率表音階計(jì)數(shù)初值對(duì)應(yīng)初始值低音101100000101773低音201110010000912低音3100000011001036低音5100101011011197低音6101000010101290低音7101010111001372中音1101100000101410中音2101110010001480中音3110000001101542中音5110010101101622中音6110100001001668高音1110110000001728高音2110111000111763高音3111000000101794表2音階初始值表(2)經(jīng)過(guò)分頻后的信號(hào)是一個(gè)脈寬極窄的時(shí)鐘信號(hào),必須對(duì)其進(jìn)行脈沖寬度調(diào)整,增大占空比,才能有效地驅(qū)動(dòng)蜂鳴器。在脈沖寬度調(diào)整時(shí)會(huì)對(duì)此信號(hào)再次二分頻,所以在計(jì)算時(shí),以樂音音階的二倍頻率去求取在特定時(shí)鐘信號(hào)下的分頻系數(shù),以便在調(diào)整占空比后得到正確的音階頻率。(3)樂曲的頻率變化多端,對(duì)應(yīng)的分頻系數(shù)也不斷變化,因此需要將播放的樂曲的分頻系數(shù)事先存放在ROM中便于讀取。如果將分頻系數(shù)直接作為存儲(chǔ)碼存放在寄存器中,勢(shì)必會(huì)占有更大的容量。因此在這里選取索引值來(lái)作為存儲(chǔ)碼以減小容量。音階索引表如表3所示:音階低音1低音2低音3低音5索引值1235音階低音6低音7中音1中音2索引值6789音階中音3中音5中音6高音1索引值10121315音階高音2高音3索引值1617表3音階索引表(4)開發(fā)平臺(tái)上的LED燈數(shù)量有限,可以選用有規(guī)律的閃爍。本次設(shè)計(jì)流水燈依次點(diǎn)亮的方式來(lái)閃爍。三、設(shè)計(jì)步驟3.1音樂流水燈模塊3.1.1基本原理我們知道,聲音的頻譜范圍約在幾十到幾千赫茲,若能利用程序來(lái)控制FPGA某個(gè)引腳輸出一定頻率的矩形波,接上揚(yáng)聲器就能發(fā)出相應(yīng)頻率的聲音。而樂曲中的每一音符對(duì)應(yīng)著一個(gè)確定的頻率,因此,要想FPGA發(fā)出不同音符的音調(diào),實(shí)際上只要控制它輸出相應(yīng)音符的頻率即可。樂曲都是由一連串的音符組成,因此按照樂曲的樂譜依次輸出這些音符所對(duì)應(yīng)的頻率,就可以在揚(yáng)聲器上連續(xù)地發(fā)出各個(gè)音符的音調(diào)。而要準(zhǔn)確地演奏出一首樂曲,僅僅讓揚(yáng)聲器能夠發(fā)聲是不夠的,還必須準(zhǔn)確地控制樂曲的節(jié)奏,即每個(gè)音符的持續(xù)時(shí)間。由此可見,樂曲中每個(gè)音符的發(fā)音頻率及其持續(xù)的時(shí)間是樂曲能夠連續(xù)演奏的兩個(gè)基本要素,獲取這兩個(gè)要素所對(duì)應(yīng)的數(shù)值以及利用這些數(shù)值實(shí)現(xiàn)所希望樂曲的演奏效果是本實(shí)驗(yàn)的關(guān)鍵。因此要實(shí)現(xiàn)在蜂鳴器上播放出有一定規(guī)律節(jié)奏的簡(jiǎn)單歌曲,就需要了解各個(gè)音階的頻率,以及怎樣將這些頻率轉(zhuǎn)換為開發(fā)系統(tǒng)以及蜂鳴器能夠識(shí)別的代碼。在LED0~LED11引腳上按照簡(jiǎn)單音樂的節(jié)奏有規(guī)律的的輸出流水?dāng)?shù)據(jù),如原來(lái)輸出的數(shù)據(jù)是000000000001則表示點(diǎn)亮LED1(共陰接法),流水一次后,輸出的數(shù)據(jù)應(yīng)該為00000000011,而此時(shí)則應(yīng)點(diǎn)亮LED1~LED2兩個(gè)發(fā)光二極管。通過(guò)程序設(shè)置可以實(shí)現(xiàn)每個(gè)音階對(duì)應(yīng)一種點(diǎn)亮情況,從而實(shí)現(xiàn)音樂流水燈的律動(dòng)。3.1.2程序及電路原理圖libraryieee;useieee.std_logic_1164.all;useieee.std_logic_arith.all;useieee.std_logic_unsigned.all;entitytbisport(clk:instd_logic;--ClockSignalspk:bufferstd_logic;--speakerdriverled:outstd_logic_vector(11downto0);keyc:outstd_logic_vector(15downto0); keyr:outstd_logic_vector(15downto0); s1:instd_logic);endtb;architecturebehaveoftbissignaltone:std_logic_vector(10downto0);signaltone_count:std_logic_vector(10downto0);signaltone_index:integerrange0to18;signalclk10_count:std_logic_vector(17downto0);signaltime:integerrange0to200;signalclk10:std_logic;beginprocess(clk)beginif(clk'eventandclk='1')thenclk10_count<=clk10_count+1;if(clk10_count=16#3fff#)thenclk10<=notclk10;endif;endif;endprocess;process(clk10)beginif(clk10'eventandclk10='1')thenif(time=200)thentime<=0;elsetime<=time+1;endif;endif;endprocess;process(clk10)beginif(clk10'eventandclk10='1')thencasetimeiswhen0=>tone_index<=10;when1=>tone_index<=10;when2=>tone_index<=10;when3=>tone_index<=9;when4=>tone_index<=10;when5=>tone_index<=10;when6=>tone_index<=0;when7=>tone_index<=0;when8=>tone_index<=10;when9=>tone_index<=12;when10=>tone_index<=10;when11=>tone_index<=9;when12=>tone_index<=10;when13=>tone_index<=10;when14=>tone_index<=8;when15=>tone_index<=8;when16=>tone_index<=8;when17=>tone_index<=9;when18=>tone_index<=10;when19=>tone_index<=12;when20=>tone_index<=10;when21=>tone_index<=10;when22=>tone_index<=9;when23=>tone_index<=9;when24=>tone_index<=9;when25=>tone_index<=8;when26=>tone_index<=9;when27=>tone_index<=9;when28=>tone_index<=0;when29=>tone_index<=0;when30=>tone_index<=10;when31=>tone_index<=10;when32=>tone_index<=10;when33=>tone_index<=12;when34=>tone_index<=12;when35=>tone_index<=10;when36=>tone_index<=13;when37=>tone_index<=12;when38=>tone_index<=12;when39=>tone_index<=13;when40=>tone_index<=12;when41=>tone_index<=12;when42=>tone_index<=10;when43=>tone_index<=12;when44=>tone_index<=12;when45=>tone_index<=12;when46=>tone_index<=12;when47=>tone_index<=12;when48=>tone_index<=10;when49=>tone_index<=10;when50=>tone_index<=9;when51=>tone_index<=10;when52=>tone_index<=12;when53=>tone_index<=12;when54=>tone_index<=10;when55=>tone_index<=9;when56=>tone_index<=9;when57=>tone_index<=9;when58=>tone_index<=9;when59=>tone_index<=8;when60=>tone_index<=9;when61=>tone_index<=9;when62=>tone_index<=9;when63=>tone_index<=10;when64=>tone_index<=10;when65=>tone_index<=10;when66=>tone_index<=9;when67=>tone_index<=10;when68=>tone_index<=10;when69=>tone_index<=0;when70=>tone_index<=0;when71=>tone_index<=10;when72=>tone_index<=12;when73=>tone_index<=10;when74=>tone_index<=9;when75=>tone_index<=10;when76=>tone_index<=10;when77=>tone_index<=8;when78=>tone_index<=8;when79=>tone_index<=8;when80=>tone_index<=9;when81=>tone_index<=10;when82=>tone_index<=12;when83=>tone_index<=10;when84=>tone_index<=10;when85=>tone_index<=9;when86=>tone_index<=9;when87=>tone_index<=9;when88=>tone_index<=8;when89=>tone_index<=9;when90=>tone_index<=9;when91=>tone_index<=0;when92=>tone_index<=0;when93=>tone_index<=10;when94=>tone_index<=10;when95=>tone_index<=10;when96=>tone_index<=12;when97=>tone_index<=10;when98=>tone_index<=13;when99=>tone_index<=12;when100=>tone_index<=12;when101=>tone_index<=13;when102=>tone_index<=12;when103=>tone_index<=12;when104=>tone_index<=10;when105=>tone_index<=12;when106=>tone_index<=12;when107=>tone_index<=12;when108=>tone_index<=10;when109=>tone_index<=10;when110=>tone_index<=9;when111=>tone_index<=10;when112=>tone_index<=12;when113=>tone_index<=10;when114=>tone_index<=9;when115=>tone_index<=9;when116=>tone_index<=8;when117=>tone_index<=8;when118=>tone_index<=8;when119=>tone_index<=8;when120=>tone_index<=8;when121=>tone_index<=0;when122=>tone_index<=0;when123=>tone_index<=0;when124=>tone_index<=8;when125=>tone_index<=9;when126=>tone_index<=10;when127=>tone_index<=10;when128=>tone_index<=10;when129=>tone_index<=12;when130=>tone_index<=13;when131=>tone_index<=13;when132=>tone_index<=13;when133=>tone_index<=17;when134=>tone_index<=16;when135=>tone_index<=15;when136=>tone_index<=15;when137=>tone_index<=13;when138=>tone_index<=12;when139=>tone_index<=12;when140=>tone_index<=13;when141=>tone_index<=12;when142=>tone_index<=10;when143=>tone_index<=9;when144=>tone_index<=8;when145=>tone_index<=8;when146=>tone_index<=6;when147=>tone_index<=8;when148=>tone_index<=9;when149=>tone_index<=9;when150=>tone_index<=9;when151=>tone_index<=8;when152=>tone_index<=9;when153=>tone_index<=9;when154=>tone_index<=8;when155=>tone_index<=9;when156=>tone_index<=10;when157=>tone_index<=10;when158=>tone_index<=10;when159=>tone_index<=12;when160=>tone_index<=13;when161=>tone_index<=13;when162=>tone_index<=13;when163=>tone_index<=17;when164=>tone_index<=16;when165=>tone_index<=15;when166=>tone_index<=15;when167=>tone_index<=16;when168=>tone_index<=15;when169=>tone_index<=15;when170=>tone_index<=15;when171=>tone_index<=12;when172=>tone_index<=12;when173=>tone_index<=12;when174=>tone_index<=10;when175=>tone_index<=14;when176=>tone_index<=15;when177=>tone_index<=8;when178=>tone_index<=9;when179=>tone_index<=10;when180=>tone_index<=10;when181=>tone_index<=9;when182=>tone_index<=9;when183=>tone_index<=8;when184=>tone_index<=8;when185=>tone_index<=8;when186=>tone_index<=8;whenothers=>tone_index<=0;endcase;endif;endprocess;process(tone_index)begincasetone_indexiswhen0=>tone<="11111111111";--可變的計(jì)數(shù)初值when1=>tone<="01100000101";--773(歌曲一未使用)when2=>tone<="01110010000";--912(歌曲一未使用)when3=>tone<="10000001100";--1036(歌曲一未使用)when5=>tone<="10010101101";--1197(歌曲一未使用)when6=>tone<="10100001010";--1290(歌曲一未使用)when7=>tone<="10101011100";--1372(歌曲一未使用)when8=>tone<="10110000010";--1410when9=>tone<="10111001000";--1480when10=>tone<="11000000110";--1542when12=>tone<="11001010110";--1622when13=>tone<="11010000100";--1668when15=>tone<="11011000000";--1728when16=>tone<="11011100011";--1763when17=>tone<="11100000010";--1794whenothers=>tone<="11111111111";--others:nooutputendcase;endprocess;process(clk)--controlthefrequenceofthespeakerbeginif(clk'eventandclk='1')thenif(tone_count=16#7ff#)thentone_count<=tone;if(tone<2047)thenspk<=notspk;endif;elsetone_count<=tone_count+1;endif;endif;endprocess;endbehave;architecturebehave2oftbissignaltone:std_logic_vector(10downto0);signaltone_count:std_logic_vector(10downto0);signaltone_index:integerrange0to18;signalclk10_count:std_logic_vector(17downto0);signaltime:integerrange0to200;signalclk10:std_logic;beginprocess(clk)--generate10hzclocksignalbeginif(clk'eventandclk='1')thenclk10_count<=clk10_count+1;if(clk10_count=16#3fff#)thenclk10<=notclk10;endif;endif;endprocess;process(clk10)beginif(clk10'eventandclk10='1')thenif(time=200)thentime<=0;elsetime<=time+1;endif;endif;endprocess;process(clk10)beginif(clk10'eventandclk10='1')thencasetimeiswhen0=>tone_index<=10;when1=>tone_index<=10;when2=>tone_index<=10;when3=>tone_index<=9;when4=>tone_index<=10;when5=>tone_index<=10;when6=>tone_index<=0;when7=>tone_index<=0;when8=>tone_index<=10;when9=>tone_index<=12;when10=>tone_index<=10;when11=>tone_index<=9;when12=>tone_index<=10;when13=>tone_index<=10;when14=>tone_index<=8;when15=>tone_index<=8;when16=>tone_index<=8;when17=>tone_index<=9;when18=>tone_index<=10;when19=>tone_index<=12;when20=>tone_index<=10;when21=>tone_index<=10;when22=>tone_index<=9;when23=>tone_index<=9;when24=>tone_index<=9;when25=>tone_index<=8;when26=>tone_index<=9;when27=>tone_index<=9;when28=>tone_index<=0;when29=>tone_index<=0;when30=>tone_index<=10;when31=>tone_index<=10;when32=>tone_index<=10;when33=>tone_index<=12;when34=>tone_index<=12;when35=>tone_index<=10;when36=>tone_index<=13;when37=>tone_index<=12;when38=>tone_index<=12;when39=>tone_index<=13;when40=>tone_index<=12;when41=>tone_index<=12;when42=>tone_index<=10;when43=>tone_index<=12;when44=>tone_index<=12;when45=>tone_index<=12;when46=>tone_index<=12;when47=>tone_index<=12;when48=>tone_index<=10;when49=>tone_index<=10;when50=>tone_index<=9;when51=>tone_index<=10;when52=>tone_index<=12;when53=>tone_index<=12;when54=>tone_index<=10;when55=>tone_index<=9;when56=>tone_index<=9;when57=>tone_index<=9;when58=>tone_index<=9;when59=>tone_index<=8;when60=>tone_index<=9;when61=>tone_index<=9;when62=>tone_index<=9;when63=>tone_index<=10;when64=>tone_index<=10;when65=>tone_index<=10;when66=>tone_index<=9;when67=>tone_index<=10;when68=>tone_index<=10;when69=>tone_index<=0;when70=>tone_index<=0;when71=>tone_index<=10;when72=>tone_index<=12;when73=>tone_index<=10;when74=>tone_index<=9;when75=>tone_index<=10;when76=>tone_index<=10;when77=>tone_index<=8;when78=>tone_index<=8;when79=>tone_index<=8;when80=>tone_index<=9;when81=>tone_index<=10;when82=>tone_index<=12;when83=>tone_index<=10;when84=>tone_index<=10;when85=>tone_index<=9;when86=>tone_index<=9;when87=>tone_index<=9;when88=>tone_index<=8;when89=>tone_index<=9;when90=>tone_index<=9;when91=>tone_index<=0;when92=>tone_index<=0;when93=>tone_index<=10;when94=>tone_index<=10;when95=>tone_index<=10;when96=>tone_index<=12;when97=>tone_index<=10;when98=>tone_index<=13;when99=>tone_index<=12;when100=>tone_index<=12;when101=>tone_index<=13;when102=>tone_index<=12;when103=>tone_index<=12;when104=>tone_index<=10;when105=>tone_index<=12;when106=>tone_index<=12;when107=>tone_index<=12;when108=>tone_index<=10;when109=>tone_index<=10;when110=>tone_index<=9;when111=>tone_index<=10;when112=>tone_index<=12;when113=>tone_index<=10;when114=>tone_index<=9;when115=>tone_index<=9;when116=>tone_index<=8;when117=>tone_index<=8;when118=>tone_index<=8;when119=>tone_index<=8;when120=>tone_index<=8;when121=>tone_index<=0;when122=>tone_index<=0;when123=>tone_index<=0;when124=>tone_index<=8;when125=>tone_index<=9;when126=>tone_index<=10;when127=>tone_index<=10;when128=>tone_index<=10;when129=>tone_index<=12;when130=>tone_index<=13;when131=>tone_index<=13;when132=>tone_index<=13;when133=>tone_index<=17;when134=>tone_index<=16;when135=>tone_index<=15;when136=>tone_index<=15;when137=>tone_index<=13;when138=>tone_index<=12;when139=>tone_index<=12;when140=>tone_index<=13;when141=>tone_index<=12;when142=>tone_index<=10;when143=>tone_index<=9;when144=>tone_index<=8;when145=>tone_index<=8;when146=>tone_index<=6;when147=>tone_index<=8;when148=>tone_index<=9;when149=>tone_index<=9;when150=>tone_index<=9;when151=>tone_index<=8;when152=>tone_index<=9;when153=>tone_index<=9;when154=>tone_index<=8;when155=>tone_index<=9;when156=>tone_index<=10;when157=>tone_index<=10;when158=>tone_index<=10;when159=>tone_index<=12;when160=>tone_index<=13;when161=>tone_index<=13;when162=>tone_index<=13;when163=>tone_index<=17;when164=>tone_index<=16;when165=>tone_index<=15;when166=>tone_index<=15;when167=>tone_index<=16;when168=>tone_index<=15;when169=>tone_index<=15;when170=>tone_index<=15;when171=>tone_index<=12;when172=>tone_index<=12;when173=>tone_index<=12;when174=>tone_index<=10;when175=>tone_index<=14;when176=>tone_index<=15;when177=>tone_index<=8;when178=>tone_index<=9;when179=>tone_index<=10;when180=>tone_index<=10;when181=>tone_index<=9;when182=>tone_index<=9;when183=>tone_index<=8;when184=>tone_index<=8;when185=>tone_index<=8;when186=>tone_index<=8;whenothers=>tone_index<=0;endcase;endif;endprocess;process(tone_index)begincasetone_indexiswhen0=>tone<="11111111111";led<="000000000001";when1=>tone<="01100000101";led<="000000000011";when2=>tone<="01110010000";led<="000000000101";when3=>tone<="10000001100";led<="000000001001";when5=>tone<="10010101101";led<="000000010001";when6=>tone<="10100001010";led<="000000100001";when7=>tone<="10101011100";led<="000001000001";when8=>tone<="10110000010";led<="000010000001";when9=>tone<="10111001000";led<="000100000001";when10=>tone<="11000000110";led<="001000000001";when12=>tone<="11001010110";led<="010000000001";when13=>tone<="11010000100";led<="100000000001";when15=>tone<="11011000000";led<="010000000011";when16=>tone<="11011100011";led<="001000000101";when17=>tone<="11100000010";led<="000100001001";whenothers=>tone<="11111111111";led<="000000000001";endcase;endprocess;process(clk)--controlthefrequenceofthespeakerbeginif(clk'eventandclk='1')thenif(tone_count=16#7ff#)thentone_count<=tone;if(tone<2047)thenspk<=notspk;endif;elsetone_count<=tone_count+1;endif;endif;endprocess;endbehave2;圖3.1音樂流水燈電路圖圖3.2音頻輸出電路圖3.216*16點(diǎn)陣及按鍵選擇模塊3.2.1基本原理16*16點(diǎn)陣由此256個(gè)LED通過(guò)排列組合而形成16行*16列的一個(gè)矩陣式的LED陣列,俗稱16*16點(diǎn)陣。單個(gè)的LED的電路如下圖3.3所示。圖3.3單個(gè)LED電路圖由上圖可知,對(duì)于單個(gè)LED的電路圖當(dāng)Rn輸入一個(gè)高電平,同時(shí)Cn輸入一個(gè)低電平時(shí),電路形成一個(gè)回路,LED發(fā)光。也就是LED點(diǎn)陣對(duì)應(yīng)的這個(gè)點(diǎn)被點(diǎn)亮。16*16點(diǎn)陣也就是由16行和16列的LED組成,其中每一行的所有16個(gè)LED的Rn端并聯(lián)在一起,每一列的所有16個(gè)LED的Cn端并聯(lián)在一起。通過(guò)給Rn輸入一個(gè)高電平,也就相當(dāng)于給這一列所有LED輸入了一個(gè)高電平,這時(shí)只要某個(gè)LED的Cn端輸入一個(gè)低電平時(shí),對(duì)應(yīng)的LED就會(huì)被點(diǎn)亮。具體的電路如下圖3.4所示。圖3.416*16點(diǎn)陣電路原理圖16*16點(diǎn)陣的電路原理在前面已經(jīng)做了詳盡的說(shuō)明,在此實(shí)驗(yàn)中,16*16點(diǎn)陣由4個(gè)8*8點(diǎn)陣組成,考慮到LED電流功耗與FPGA電流功耗的關(guān)系,在實(shí)驗(yàn)的電路中加入驅(qū)動(dòng)電路。具體電路如下圖3.5所示。圖3.516*16點(diǎn)陣電路圖在設(shè)計(jì)中,采用撥動(dòng)開關(guān)1來(lái)實(shí)現(xiàn)歌曲的切換。當(dāng)撥動(dòng)開關(guān)向上撥時(shí)選擇歌曲1《菊花臺(tái)》,向下?lián)軇?dòng)選擇歌曲2《兩只老虎》。3.2.2程序及電路圖libraryieee;useieee.std_logic_1164.all;useieee.std_logic_arith.all;useieee.std_logic_unsigned.all;entitytbisport(clk:instd_logic;--ClockSignalspk:bufferstd_logic;--speakerdriverled:outstd_logic_vector(11downto0);keyc:outstd_logic_vector(15downto0); keyr:outstd_logic_vector(15downto0); s1:instd_logic);endtb;architecturebehave3oftbissignaltone:std_logic_vector(10downto0);signaltone_count:std_logic_vector(10downto0);signaltone_index:integerrange0to18;signalclk10_count:std_logic_vector(17downto0);signaltime:integerrange0to200;signalclk10:std_logic;signalcdount:std_logic_vector(3downto0);SIGNALdount:std_logic_vector(18downto0);signals:std_logic_vector(1downto0);beginprocess(clk)--generate10hzclocksignalbeginif(clk'eventandclk='1')thenclk10_count<=clk10_count+1;if(clk10_count=16#3fff#)thenclk10<=notclk10;endif;endif;endprocess;process(clk10)beginif(clk10'eventandclk10='1')thenif(time=200)thentime<=0;elsetime<=time+1;endif;endif;endprocess;process(clk10,s1)beginif(clk10'eventandclk10='1')then ifs1='1'thencasetimeiswhen0=>tone_index<=10;when1=>tone_index<=10;when2=>tone_index<=10;when3=>tone_index<=9;when4=>tone_index<=10;when5=>tone_index<=10;when6=>tone_index<=0;when7=>tone_index<=0;when8=>tone_index<=10;when9=>tone_index<=12;when10=>tone_index<=10;when11=>tone_index<=9;when12=>tone_index<=10;when13=>tone_index<=10;when14=>tone_index<=8;when15=>tone_index<=8;when16=>tone_index<=8;when17=>tone_index<=9;when18=>tone_index<=10;when19=>tone_index<=12;when20=>tone_index<=10;when21=>tone_index<=10;when22=>tone_index<=9;when23=>tone_index<=9;when24=>tone_index<=9;when25=>tone_index<=8;when26=>tone_index<=9;when27=>tone_index<=9;when28=>tone_index<=0;when29=>tone_index<=0;when30=>tone_index<=10;when31=>tone_index<=10;when32=>tone_index<=10;when33=>tone_index<=12;when34=>tone_index<=12;when35=>tone_index<=10;when36=>tone_index<=13;when37=>tone_index<=12;when38=>tone_index<=12;when39=>tone_index<=13;when40=>tone_index<=12;when41=>tone_index<=12;when42=>tone_index<=10;when43=>tone_index<=12;when44=>tone_index<=12;when45=>tone_index<=12;when46=>tone_index<=12;when47=>tone_index<=12;when48=>tone_index<=10;when49=>tone_index<=10;when50=>tone_index<=9;when51=>tone_index<=10;when52=>tone_index<=12;when53=>tone_index<=12;when54=>tone_index<=10;when55=>tone_index<=9;when56=>tone_index<=9;when57=>tone_index<=9;when58=>tone_index<=9;when59=>tone_index<=8;when60=>tone_index<=9;when61=>tone_index<=9;when62=>tone_index<=9;when63=>tone_index<=10;when64=>tone_index<=10;when65=>tone_index<=10;when66=>tone_index<=9;when67=>tone_index<=10;when68=>tone_index<=10;when69=>tone_index<=0;when70=>tone_index<=0;when71=>tone_index<=10;when72=>tone_index<=12;when73=>tone_index<=10;when74=>tone_index<=9;when75=>tone_index<=10;when76=>tone_index<=10;when77=>tone_index<=8;when78=>tone_index<=8;when79=>tone_index<=8;when80=>tone_index<=9;when81=>tone_index<=10;when82=>tone_index<=12;when83=>tone_index<=10;when84=>tone_index<=10;when85=>tone_index<=9;when86=>tone_index<=9;when87=>tone_index<=9;when88=>tone_index<=8;when89=>tone_index<=9;when90=>tone_index<=9;when91=>tone_index<=0;when92=>tone_index<=0;when93=>tone_index<=10;when94=>tone_index<=10;when95=>tone_index<=10;when96=>tone_index<=12;when97=>tone_index<=10;when98=>tone_index<=13;when99=>tone_index<=12;when100=>tone_index<=12;when101=>tone_index<=13;when102=>tone_index<=12;when103=>tone_index<=12;when104=>tone_index<=10;when105=>tone_index<=12;when106=>tone_index<=12;when107=>tone_index<=12;when108=>tone_index<=10;when109=>tone_index<=10;when110=>tone_index<=9;when111=>tone_index<=10;when112=>tone_index<=12;when113=>tone_index<=10;when114=>tone_index<=9;when115=>tone_index<=9;when116=>tone_index<=8;when117=>tone_index<=8;when118=>tone_index<=8;when119=>tone_index<=8;when120=>tone_index<=8;when121=>tone_index<=0;when122=>tone_index<=0;when123=>tone_index<=0;when124=>tone_index<
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 防范自然災(zāi)害安全教育
- 室內(nèi)設(shè)計(jì)3D演示技術(shù)解析
- 幼兒中班服裝設(shè)計(jì)
- 經(jīng)濟(jì)法概論的核心知識(shí)點(diǎn)試題及答案
- 行政管理中的經(jīng)濟(jì)法新觀念試題及答案
- 水利水電工程市場(chǎng)機(jī)會(huì)分析與試題及答案
- 高中暑假前安全教育主題班會(huì)
- 農(nóng)業(yè)資源利用合理化方案協(xié)議
- 自然災(zāi)害救助處置指南
- 個(gè)人住房貸款保證協(xié)議
- 景觀畢業(yè)設(shè)計(jì)
- 鹵味學(xué)員合同協(xié)議書
- 統(tǒng)編版三年級(jí)語(yǔ)文下冊(cè)期末考試卷(帶答案)
- 【課件】清朝的邊疆治理+課件統(tǒng)編版七年級(jí)歷史下冊(cè)
- 外貿(mào)業(yè)務(wù)培訓(xùn)課件教學(xué)
- 2025年健康管理師職業(yè)技能考試筆試試題(100題)含答案
- 2025年企業(yè)管理專業(yè)考試試題及答案詳解
- 蘇科版七年級(jí)數(shù)學(xué)下冊(cè)《第十一章一元一次不等式》單元測(cè)試卷含答案
- 機(jī)電安裝工程安全培訓(xùn)
- 2025-2030國(guó)內(nèi)光學(xué)顯微鏡行業(yè)市場(chǎng)發(fā)展現(xiàn)狀及競(jìng)爭(zhēng)策略與投資發(fā)展研究報(bào)告
- 八年級(jí)語(yǔ)文下古詩(shī)文默寫練習(xí)匯編
評(píng)論
0/150
提交評(píng)論