国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Verilog HDL 的簡易電子琴控制電路設(shè)計(jì)與實(shí)現(xiàn)

2024-01-31 13:23張皓祎鄭冰盧熾杏鄭惠之胡錦程
電子制作 2024年2期
關(guān)鍵詞:數(shù)碼管音調(diào)低電平

張皓祎,鄭冰,盧熾杏,鄭惠之,胡錦程

(航天工程大學(xué) 信息學(xué)院,北京,101401)

0 引言

聲音是由振動產(chǎn)生的,不同的振動頻率導(dǎo)致了不同的音調(diào)[1],目前世界通用的定律方法是十二平均律,根據(jù)十二平均律,八度的音程按波長比例被平均分成十二等份,每一等份稱為一個半音(小二度),一個大二度則是兩等份,稱為全音,每兩個半音的頻率比為4。音高八度音指的是頻率加倍,八度音的頻率分為十二等分,即分為十二個等比級數(shù),也就是每個音的頻率為前一個音的2 的12 次方根。

音名“C,D,E,F(xiàn),G,A,B”的唱名依次為“do,re,mi,fa,sol,la,si”,對應(yīng)曲譜中的數(shù)字“1,2,3,4,5,6”,低音6 的頻率為440Hz,根據(jù)十二平均律可計(jì)算出低音1 至高音7 的頻率如表1 所示。

表1 音名與頻率的關(guān)系

本設(shè)計(jì)方案基于Verilog HDL 語言實(shí)現(xiàn)。Verilog HDL語言是一種常用的硬件描述語言,用于數(shù)字電子系統(tǒng)設(shè)計(jì)。Verilog HDL 語言提供了編程語言接口,通過該接口可以在模擬、驗(yàn)證期間從設(shè)計(jì)外部訪問設(shè)計(jì),包括模擬的具體控制和運(yùn)行,使用Verilog 描述硬件的基本設(shè)計(jì)單元是模塊(Module),構(gòu)建復(fù)雜的電子電路,主要是通過模塊的相互連接調(diào)用來實(shí)現(xiàn)的。Verilog HDL 語言是目前應(yīng)用最廣泛的一種硬件描述語言之一。

1 系統(tǒng)整體設(shè)計(jì)

針對設(shè)計(jì)要求計(jì)劃實(shí)現(xiàn)的基本功能,擬將本電子系統(tǒng)劃分為音樂播放模塊、數(shù)碼管顯示模塊與分頻模塊。其中,音樂播放模塊為頂層模塊,在該模塊中,根據(jù)輸入信號的不同決定所播放的音調(diào)和傳遞給數(shù)碼管顯示模塊的參數(shù),從而實(shí)現(xiàn)簡易電子琴的基本功能。

總體設(shè)計(jì)思路框圖如圖1 所示。

圖1 設(shè)計(jì)思路框圖

2 分塊設(shè)計(jì)

■2.1 頂層模塊

音樂播放模塊為本方案的頂層模塊,在該模塊中,通過調(diào)用分頻模塊產(chǎn)生低音、中音、高音三個音域共21 種不同頻率的音符,需要注意的是,除了21 個基準(zhǔn)頻率以外,還需分出一個4Hz 的時鐘信號,這是因?yàn)榇蠖鄶?shù)簡單樂曲為4/4 拍,即以四分音符為一拍,每小節(jié)包含四拍,假設(shè)一個全音音符持續(xù)時間為1s,那么四分音符的持續(xù)時間為0.25s,對應(yīng)需要一個4Hz 的時鐘信號來控制信號,從而達(dá)到最佳的音樂自動播放效果。

在該模塊中,我們設(shè)計(jì)讓自動播放控制信號為高電平狀態(tài)時工作,因此當(dāng)自動播放控制信號為高電平時,計(jì)算機(jī)讀取事先存儲在只讀存儲器中的音符,同時用于自動播放的計(jì)數(shù)器開始計(jì)數(shù),通過分頻產(chǎn)生不同頻率的時鐘信號,時鐘信號輸出到蜂鳴器可產(chǎn)生對應(yīng)的音調(diào),在讀取完整首樂曲音符后,一首音樂便被完美地演奏出來,若控制自動播放控制信號始終為高電平,蜂鳴器則會循環(huán)播放預(yù)先存儲在程序中的樂曲。當(dāng)自動播放控制信號為低電平時,切換為手動模式,本設(shè)計(jì)方案通過音調(diào)選擇按鈕SW 的輸入檢測低、中、高音調(diào),通過BTN1~BTN7 七個按鍵的輸入判定所要演奏的音符,并將完成分頻的對應(yīng)頻率時鐘信號賦值給輸出信號beep,并輸出到蜂鳴器,產(chǎn)生對應(yīng)的音調(diào);同時,根據(jù)BTN 信號的輸入結(jié)果,將所選擇的音符信息傳輸給數(shù)碼管顯示模塊,顯示音符相對應(yīng)的數(shù)字。

圖2 頂層模塊執(zhí)行框圖

■2.2 音調(diào)控制—分頻器設(shè)計(jì)

不同的振動頻率能夠產(chǎn)生不同的音調(diào),所有不同頻率的信號都能通過對一個基頻分頻得到,為避免逐個分頻導(dǎo)致的編譯代碼冗雜,在本設(shè)計(jì)方案中定義分頻系數(shù)為參數(shù),這樣在每次分頻時,只需調(diào)用分頻模塊并輸入所需頻率的分頻系數(shù)即可得到所需的時鐘信號[2]。分頻原理如圖3所示。

圖3 分頻原理

分頻器輸入信號為基準(zhǔn)時鐘信號(本方案中基準(zhǔn)時鐘信號頻率為50MHz),規(guī)定輸出為clk_out。每經(jīng)過基準(zhǔn)時鐘信號的一個時鐘信號,分頻器中的計(jì)數(shù)加一,輸出的頻率信號周期增大一倍,根據(jù)分頻原理,計(jì)數(shù)器計(jì)數(shù)達(dá)到分頻系數(shù)時,clk_out 取反,此時即可得到需要的時鐘信號,基于此,可以得到分頻系數(shù)的計(jì)算公式為:

在實(shí)際程序運(yùn)行時,公式計(jì)算出的parameter 作為分頻系數(shù)時的分頻效果實(shí)際上與以parameter 向下取整的整數(shù)作為分頻系數(shù)的分頻效果一致,在現(xiàn)實(shí)生活中,由于分頻系數(shù)大多非整數(shù),本方案統(tǒng)一將parameter 向下取整的整數(shù)作為求取不同頻率時鐘信號的最終分頻系數(shù)。

■2.3 數(shù)碼管顯示

8 個共陽極七段數(shù)碼管的 8 個段碼,共用 FPGA I/O,固定連接在實(shí)驗(yàn)平臺中的FPGA_CON1 處,開發(fā)板上8 個7段數(shù)碼管的段碼輸入端并聯(lián)在一起,8 個位碼相互獨(dú)立。當(dāng)相應(yīng)碼段SEG 端輸入為高電平,同時需要顯示的數(shù)碼管的共陰極端 CAT 為低電平時,該數(shù)碼管相應(yīng)的端就點(diǎn)亮。根據(jù)數(shù)碼管顯示原理點(diǎn)亮相應(yīng)碼段,即可顯示所需要的數(shù)字。

在本方案中,輸入CAT 信號選通最右側(cè)七段數(shù)碼管,通過檢測BTN 信號的輸入,從而產(chǎn)生相應(yīng)的SEG 信號,將SEG 信號輸出給數(shù)碼管,數(shù)碼管即可顯示輸入音符對應(yīng)的數(shù)字。

3 設(shè)計(jì)的仿真分析及引腳分配

■3.1 數(shù)碼管顯示模塊

在該模塊的仿真中,通過改變不同時刻的BTN 輸入模擬實(shí)際按下按鍵時的行為。仿真波形圖如圖5 所示。

圖4 八個七段數(shù)碼管原理圖

圖5 數(shù)碼管顯示模塊波形仿真圖

從圖5 中可以看出,隨著按下按鍵的變化,數(shù)碼管的輸出信號產(chǎn)生了相應(yīng)不同形式的變化。數(shù)碼管的輸出信號SEG[0]至SEG[7]分別對應(yīng)了八段數(shù)碼管的a,b,c,d,e,f,g 七個顯示段。BTN 輸入信號接綜合實(shí)驗(yàn)箱上的F1~F7 按鍵,該按鍵靜息狀態(tài)為高電平,按下時為低電平,與數(shù)碼管的結(jié)構(gòu)進(jìn)行對照可知,BTN[0]至BTN[6]信號分別為低電平時,數(shù)碼管上顯示的數(shù)字分別為1,2,3,4,5,6,7。

■3.2 分頻模塊

輸入clk 為50MHz 的時鐘信號,通過改變分頻系數(shù),期望得到頻率為基準(zhǔn)頻率六分之一的clk_out 時鐘信號。仿真波形圖如圖6 所示。

圖6 分頻模塊波形仿真圖

從圖6 可以看出,分頻后信號周期為原信號周期的六倍,故分頻模塊可以達(dá)到所需的效果。

■3.3 FPGA 管腳分配

針對SOPC FPGA 平臺的可編程器件實(shí)驗(yàn)板,管腳配置情況如圖7 與圖8 所示。

圖7 實(shí)驗(yàn)板管腳分配圖

圖8 管腳分配圖

方案中的BTN 輸入信號(音符)由實(shí)驗(yàn)板上的F1~F7按鍵控制,按下時為低電平有效信號。SW 音域輸入信號、音樂自動播放信號由實(shí)驗(yàn)板上的SW 按鍵進(jìn)行控制,SW 按鍵上撥時為高電平有效信號。

基準(zhǔn)時鐘信號與實(shí)驗(yàn)板上的PIN_T1 管腳相連,提供50MHz 的基準(zhǔn)頻率。

CAT 輸入信號為控制八段數(shù)碼管的共陰極端信號,當(dāng)CAT 輸入位為低電平時,對應(yīng)數(shù)碼管才能工作。

SEG 信號為數(shù)碼管顯示信號,與數(shù)碼管共陽極端相連,當(dāng)SEG 信號為高電平狀態(tài)時,對應(yīng)的數(shù)碼管顯示段將被點(diǎn)亮。

Beep 為蜂鳴器控制信號,當(dāng)beep 為高電平狀態(tài)時,蜂鳴器輸出對應(yīng)的音調(diào),否則蜂鳴器將不發(fā)聲。

4 小結(jié)

本文設(shè)計(jì)并實(shí)現(xiàn)了Verilog HDL 的簡易電子琴控制電路,主要包括音頻播放模塊、分頻模塊和數(shù)碼管顯示模塊。分頻模塊實(shí)現(xiàn)不同音調(diào)的生成,音頻播放模塊實(shí)現(xiàn)按鍵彈奏發(fā)聲與音頻自動播放,數(shù)碼管顯示模塊實(shí)現(xiàn)音符的數(shù)字顯示。音調(diào)準(zhǔn)確,節(jié)拍符合音樂播放規(guī)則,演奏與播放效果較好。

猜你喜歡
數(shù)碼管音調(diào)低電平
鐵道車輛高/低電平信號智能發(fā)生器設(shè)計(jì)
Arduino編程
MC9S08FL16單片機(jī)數(shù)碼管靜態(tài)顯示分析
單片機(jī)控制的四位數(shù)碼管動態(tài)顯示編程
基于Qt的數(shù)碼管數(shù)字編碼系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
2017款凱迪拉克2.8L/3.0L/3.2L/3.6L車型低電平參考電壓總線電路圖
聽力障礙幼兒音調(diào)異常矯治的實(shí)施建議
劉濤《音調(diào)未定的儒家——2004年以來關(guān)于孔子的論爭·序》
15-MeV電子直線加速器的低電平系統(tǒng)
集成電路靜態(tài)參數(shù)測試