久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

關 閉

新聞中心

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

基于FPGA的音樂流水燈控制系統的設計

作者: 時間:2011-02-28 來源:網絡 收藏


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


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

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

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


關鍵詞: 音頻

評論


相關推薦

技術專區

關閉