<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > EDA/PCB > 設計應用 > 基于FPGA的電子琴動(dòng)態(tài)錄音與回放系統的設計

基于FPGA的電子琴動(dòng)態(tài)錄音與回放系統的設計

作者: 時(shí)間:2009-05-06 來(lái)源:網(wǎng)絡(luò ) 收藏

O 引 言
樂(lè )曲都是由一連串的音符組成,因此按照樂(lè )曲的樂(lè )譜依次輸出這些音符所對應的頻率,就可以在揚聲器上連續地發(fā)出各個(gè)音符的音調。大多數的設計都有彈奏和播放功能,但能自動(dòng)對彈奏的樂(lè )曲進(jìn)行錄音并可改變回放快慢可調的設計卻很少。要實(shí)現錄音和回放功能,就必須將彈奏的音符值在相應的寫(xiě)控制信號控制下存儲到芯片內部的隨機存儲器(RAM)中,而在相應的讀控制信號控制下,將RAM中存儲的音符值讀出來(lái),送給相應的發(fā)聲控制等模塊。進(jìn)入20世紀90年代以后,EDA技術(shù)得到了飛速的發(fā)展,電子系統的設計方法發(fā)生了很大的變化,傳統的設計方法正逐步退出歷史舞臺,而基于EDA技術(shù)的可編程邏輯芯片設計成為電子系統設計的主流。本設計基于QuartusⅡ6.0開(kāi)發(fā)平臺,采用VHDL語(yǔ)言在芯片上成功地實(shí)現了錄音與回放功能。

本文引用地址:http://dyxdggzs.com/article/192067.htm


l 錄音與設計
已經(jīng)設計成功的多功能電子琴樂(lè )曲硬件演奏設計電路主要包括:鍵盤(pán)演奏、人工選曲并播放樂(lè )曲、錄音/回放、可控制播放歌曲的節奏快慢、液晶顯示當前系統狀態(tài)等功能。其中在芯片中實(shí)現的電路設計有4個(gè)模塊,分別為鍵盤(pán)掃描和按鍵功能設置模塊、RoM/RAM控制器模塊、發(fā)聲控制模塊、LCD驅動(dòng)控制模塊。系統設計框圖如圖1所示。

工作原理如下:首先通過(guò)鍵盤(pán)掃描和按鍵功能設置模塊將一個(gè)4*4的鍵盤(pán)上各按鍵進(jìn)行功能設置,然后根據相應的操作要求進(jìn)行發(fā)聲和液晶顯示。如果選中當前狀態(tài)是彈奏模式,則發(fā)聲控制模塊直接把琴鍵送來(lái)的音符對應的分頻系數轉換成相應頻率送到揚聲器發(fā)聲,字幕信息通過(guò)液晶顯示驅動(dòng)模塊驅動(dòng)液晶顯示;如果選中當前工作模式為播放模式,則ROM/RAM控制器模塊把事先存儲在ROM中的音樂(lè )數據提出來(lái)送至發(fā)聲模塊,完成自動(dòng)播放功能;如果選中當前工作狀態(tài)是錄音回放模式,則啟動(dòng)ROM/RAM控制器模塊中RAM狀態(tài)機控制器進(jìn)行讀寫(xiě)操作。
這里重點(diǎn)介紹由ROM/RAM控制模塊通過(guò)狀態(tài)機設計產(chǎn)生錄音/回放功能的實(shí)現。


2 ROM/RAM控制模塊的設計
ROM/RAM控制模塊的作用是通過(guò)對系統當前所處的模式進(jìn)行判斷,并根據輸入的控制信號,對CycloneⅡFPGA內嵌的RAM的讀寫(xiě)信號、讀寫(xiě)時(shí)鐘及讀寫(xiě)地址進(jìn)行控制。其中ROM/RAM控制模塊的外部接口符號圖如圖2所示。

此模塊定義了10個(gè)輸入端口,分別為:mode_key(鍵盤(pán)演奏模式)、mode_auto(播放歌曲模式)、mode_tape(錄音回放模式)、time_up(節奏上升)、time_down(節奏下降)、song_select(曲目選擇)、tape(錄音)、playback(放音)、reset(系統復位)、clk(時(shí)鐘)。定義了15個(gè)輸出端口:rom_add(ROM地址)、rom_clk(ROM時(shí)鐘)、rom_en(ROM時(shí)鐘使能)、ram_wradd(RAM寫(xiě)地址)、ram_wren(RAM寫(xiě)使能)、ram_wrclk(RAM寫(xiě)時(shí)鐘)、ram_rdadd(RAM讀地址)、ram_rden(RAM讀地址)、ram_rdclk(RAM讀地址)、full(錄音滿(mǎn)信號)、over(回放完畢信號)以及5個(gè)提供LCD驅動(dòng)顯示用的信號。
RAM/ROM控制模塊中的RAM控制部分分成兩個(gè)小部分,采用有限狀態(tài)機(FSM)分別對RAM讀狀態(tài)和RAM寫(xiě)狀態(tài)進(jìn)行操作控制。當系統當前模式為“錄音/回放模式”時(shí),如果“錄音”按鍵按下,則RAM進(jìn)行寫(xiě)操作,從首地址開(kāi)始進(jìn)行存儲。如果存儲滿(mǎn)1 024個(gè)地址空間,則提示“錄音滿(mǎn)”,寫(xiě)操作終止,等待用戶(hù)命令,以進(jìn)行下一步操作。當系統當前模式為“錄音/回放模式”時(shí),如果“回放”按鍵按下,則RAM進(jìn)行讀操作,從首地址開(kāi)始將RAM單元中的數據送給發(fā)聲控制模塊進(jìn)行播放。如果讀完1 024個(gè)地址空間,則提示“回放完畢”,讀操作終止,等待用戶(hù)命令,以進(jìn)行下一步操作。


上一頁(yè) 1 2 3 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>