關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > 基于FPGA的音樂流水燈控制系統(tǒng)的設計

        基于FPGA的音樂流水燈控制系統(tǒng)的設計

        作者: 時間:2011-02-28 來源:網(wǎng)絡 收藏


        按照樂譜,將音階對應的索引值連續(xù)地存儲到ROM中。例如,樂譜上一個4分音符的中音3,在ROM存儲器中對應的索引值是10,并且連續(xù)放置4次,而一個8分音符5也就是半拍的5,則是將對應索引值5在ROM中連續(xù)存放兩次。播放時在播放時鐘(8 Hz)的驅(qū)動下,索引值不斷地從ROM輸出。索引值送到音階分頻模塊中,轉(zhuǎn)換為計數(shù)初值輸出,再送到音階分頻產(chǎn)生模塊中,作為計數(shù)初值,產(chǎn)生音階頻率輸出驅(qū)動蜂鳴器。這樣,就能在蜂鳴器上發(fā)出要播放的樂曲了。確定了樂譜后,即ROM的存儲內(nèi)容后,就可以定制ROM,將其初始化文件指定為.mif文件即可。
        2.2 流水燈控制模塊設計
        由于此設計是基于DE2.70開發(fā)板之上的,因此將對應的音階輸出,應用LED燈來顯示流水燈閃爍效果。根據(jù)音調(diào)“hight”的高低設置點亮燈的數(shù)量,當“hight”為低時播放低音信號,為高時播放中音信號。如果要用到高音信號可以將“hight”長度改為2bit。選取板上的oLEDR[6..0]前7盞燈與低音信號對應,oLEDR[13..7]與中音信號對應。在本設計中,為了看到明顯的流水燈變化,當發(fā)出中音時低音顯示燈全亮。
        2.3 LCD顯示模塊設計
        首先需要在SOPC Builder中構建SOPC系統(tǒng),按要求依次添加NioslI處理器,4 kB的片上RAM,LCD模塊,4位輸入口,給處理器分配復位向量地址和異常向量地址。
        LCD顯示模塊用來實現(xiàn)樂譜和強度的實時顯示,可以顯示16×2個字符,其軟件流程如圖2所示。


        其中LCD初始化包括對LCD的功能設置,顯示開關設置和模式設置。LCD定位到首行首列是通過對LCD寫定位指令,將顯示位置確定到第一行第一列。寫字符“jian pu”到第一行是通過寫數(shù)據(jù)指令將字符jian pu:和實時變化的樂譜顯示在液晶屏的第一行。低、中、高音分別用L、M、H表示并且加上對應的音階值進行顯示。LCD顯示換行是通過定位指令來實現(xiàn)的。顯示強度到第二行是用符號“>”的個數(shù)表示音調(diào)的高低,一個表示低音1,兩個表示低音2,依次類推。
        在對LCD模塊進行顯示控制時,用到了寫控制命令和寫數(shù)據(jù)命令。這些命令是針對具體配置的硬件電路而編寫的.h頭文件。LCD模塊的頭文件如下

        這樣編寫是為了和具體的硬件電路相對應,在LCD模塊的硬件描述語言中,液晶模塊RW和RS的地址分配如下:

        分頻器相關文章:分頻器原理
        蜂鳴器相關文章:蜂鳴器原理


        關鍵詞: 音頻

        評論


        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 凌云县| 巴塘县| 荆门市| 池州市| 寻乌县| 北京市| 大英县| 东光县| 德庆县| 江安县| 宁河县| 安远县| 寿阳县| 白城市| 黑河市| 南靖县| 荔浦县| 平度市| 阿尔山市| 新安县| 普兰店市| 铁岭县| 象山县| 大兴区| 孝感市| 平山县| 新竹市| 诏安县| 阿瓦提县| 寿光市| 株洲市| 巴彦淖尔市| 济宁市| 荔波县| 龙胜| 裕民县| 满洲里市| 吉林省| 长岛县| 栖霞市| 东至县|