基于FPGA的音樂播放控制電路設(shè)計(jì)
為了實(shí)現(xiàn)樂曲的循環(huán)播放,應(yīng)該在樂曲結(jié)束時(shí)使曲譜表的查表地址回到初始值。可在曲譜表的最后一個(gè)單元中存放一個(gè)結(jié)束符,結(jié)束符的編碼可以利用音程碼的冗余碼。電路采用邏輯門對(duì)音程碼進(jìn)行判斷,當(dāng)出現(xiàn)結(jié)束符碼時(shí)控制時(shí)值計(jì)數(shù)器復(fù)位,樂曲重新開始演奏。
2.5 曲譜編碼舉例
設(shè)音符的6位二進(jìn)制編碼中,最高位為間斷音控制,中間2位為音程碼,最低3位為音名碼。每個(gè)8分音存放于1個(gè)存儲(chǔ)單元,四分音符碼占2個(gè)存儲(chǔ)單元。若音名碼用其簡(jiǎn)譜數(shù)符對(duì)應(yīng)的二進(jìn)制碼表示,而低、中、高三個(gè)音程分別用01”,“00,“10”三組碼表示,“11”為結(jié)束符碼,則圖3曲譜碼存儲(chǔ)表如表2所示。表中6位二進(jìn)制音符碼用2位八進(jìn)制數(shù)表示。
3 電路的實(shí)現(xiàn)
根據(jù)設(shè)計(jì)電路原理框圖,曲譜碼以分頻數(shù)編碼,音高信號(hào)分頻由一個(gè)可預(yù)置的模N計(jì)數(shù)器實(shí)現(xiàn)。分頻系數(shù)表和曲譜表都存儲(chǔ)在ROM中。若希望控制蜂鳴器的信號(hào)占空比為50%,分頻器的輸出信號(hào)采用二分頻電路實(shí)現(xiàn)占空比整形,但注意信號(hào)頻率被降低一半。電路原理框圖中M分頻器的作用是產(chǎn)生合適的時(shí)值計(jì)數(shù)脈沖頻率。電路的頂層原理圖如圖4所示。
4 結(jié)語
FPGA技術(shù)已成為電子系統(tǒng)設(shè)計(jì)領(lǐng)域現(xiàn)代化的標(biāo)志。本文將FPGA用于電子技術(shù)課程設(shè)計(jì),取得了較好的效果。通過本設(shè)計(jì)激發(fā)了學(xué)生學(xué)習(xí)的興趣,拓寬了學(xué)生的思路,為學(xué)生今后的畢業(yè)設(shè)計(jì)和從事電子技術(shù)方面的科研、開發(fā)工作打下了良好的基礎(chǔ)。
評(píng)論