0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

ROM_IP的調(diào)用 用蜂鳴器播放歌曲

冬至子 ? 來(lái)源:小樊愛(ài)學(xué)習(xí) ? 作者:愛(ài)學(xué)習(xí)的小樊 ? 2023-07-19 16:44 ? 次閱讀

1.新建一個(gè)存儲(chǔ)文件(mif文件)。

圖片

2.設(shè)定為256個(gè)存儲(chǔ)單元,每個(gè)單元8位寬。

圖片

3.自行往每個(gè)單元中填充自己需要的數(shù)值。

圖片

4.保存到文件夾中。

圖片

5.查看生成的文件,上部分是注釋,中間會(huì)顯示單元個(gè)數(shù)和位寬,下部分是存儲(chǔ)的數(shù)據(jù)。

圖片

6.調(diào)用ROM_IP核,按下圖箭頭順序保存。

圖片

7.基本使用默認(rèn)設(shè)置就行,注意單元個(gè)數(shù)和位寬與之前設(shè)定的要一樣。

圖片

8.在初始化選項(xiàng)欄中,選擇最初生成的mif文件,然后和之前PLL的調(diào)用一樣,選擇生成inst文件,點(diǎn)擊finish,rom的調(diào)用到此結(jié)束。

圖片

9.下圖是野火FPGA給的電路框圖,用了兩個(gè)按鍵,電路的效果為從1到256讀取對(duì)應(yīng)單元存儲(chǔ)的數(shù)據(jù)并通過(guò)數(shù)碼管顯示出來(lái),兩個(gè)按鍵按下后,會(huì)分別從99和199開(kāi)始往后讀取,具體參考野火教程,這里不詳細(xì)展開(kāi)。

圖片

10.我這里選擇通過(guò)在rom中存儲(chǔ)《恭喜發(fā)財(cái)》的樂(lè)譜頻率,使蜂鳴器播放歌曲。下面是網(wǎng)上找到的音調(diào)和頻率的對(duì)應(yīng)關(guān)系,我先是使用了野火給的蜂鳴器例程(例程是循環(huán)播放七個(gè)音節(jié)),只需要在原有基礎(chǔ)上加一個(gè)rom就行,但是他給定的是0.5秒一個(gè)音調(diào),播放恭喜發(fā)財(cái)就有點(diǎn)拖沓,修改成0.5秒又會(huì)有明顯的停頓,至今沒(méi)搞清楚為啥,所以我換成之前FPGA實(shí)驗(yàn)課上做的程序。

圖片

12.這是之前程序的頂層,由于器件不同,需要把調(diào)用的ip核都換掉。(需要程序的,拿到手,可以按以下流程操作)

圖片

13.首先新建一個(gè)工程,選定自己的器件,將這四個(gè)文件復(fù)制到自己的工程文件夾下。

圖片

14.按照上文給出的rom_ip調(diào)用,還有之前一篇pll_ip調(diào)用的方法,各自重新生成一個(gè)放到文件夾中,其中pll輸出的時(shí)鐘要改為12Mhz,并且在最后輸出的選項(xiàng)卡中要勾選bsf文件,之后的頂層文件中要用,兩個(gè)ip核的名字就按之前給出的寫(xiě)就行,否則自己還要到程序里再改一下,如下。

圖片

圖片

圖片

圖片

15.新建一個(gè)頂層的bdf文件。

圖片

16.在bdf文件的空白處雙擊,打開(kāi)symbol欄,點(diǎn)擊下方三個(gè)點(diǎn),跳轉(zhuǎn)到自己的文件夾,將復(fù)制的song.bsf,ctclk.bsf,還有新生成的pll.bsf都添加進(jìn)來(lái),然后按下圖連線,此時(shí)編譯成功就沒(méi)問(wèn)題了。

圖片

圖片

17.最后,按照自己的板子,搞定引腳,程序完成。

圖片

18.之后,只需要修改mif文件,就能播放自己要的歌曲,不過(guò)因?yàn)樗俣群鸵粽{(diào)會(huì)有些問(wèn)題,有些效果可能不好。具體mif修改如下,以恭喜發(fā)財(cái)為例:

圖片

這里的11~17是七個(gè)音節(jié),5,6,7是三個(gè)低音音節(jié),如果需要其它的音節(jié),需要自己計(jì)算。

圖片

根據(jù)樂(lè)譜畫(huà)線的這一段,編出來(lái)的mif文件應(yīng)該是下面這樣的:

圖片

然后復(fù)制到mif文件中

圖片

重新編譯并下載就可以了,其它歌曲一樣的操作。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 存儲(chǔ)器
    +關(guān)注

    關(guān)注

    38

    文章

    7408

    瀏覽量

    163431
  • ROM
    ROM
    +關(guān)注

    關(guān)注

    4

    文章

    549

    瀏覽量

    85589
  • 蜂鳴器
    +關(guān)注

    關(guān)注

    12

    文章

    888

    瀏覽量

    45794
  • FPGA開(kāi)發(fā)板
    +關(guān)注

    關(guān)注

    10

    文章

    120

    瀏覽量

    31455
  • PLL電路
    +關(guān)注

    關(guān)注

    0

    文章

    92

    瀏覽量

    6379
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    做個(gè)音樂(lè)播放器,有什么新花樣呢

    現(xiàn)在只能簡(jiǎn)單播放歌曲了。想顯示出歌名,然后記錄歌的時(shí)間
    發(fā)表于 05-21 18:58

    【基于51單片機(jī)的具有識(shí)別功能的音樂(lè)門(mén)鈴】

    c語(yǔ)言編寫(xiě):客人按一下 播放歌曲1,主人連按三下播放歌曲2現(xiàn)在歌曲已經(jīng)做成函數(shù)直接可以調(diào)用,請(qǐng)問(wèn)各位大神如何實(shí)現(xiàn)客人按一下,主人連按三下從
    發(fā)表于 04-19 21:47

    想在STC12C5A60S2單片機(jī)搞個(gè)藍(lán)牙

    想自己搞個(gè)藍(lán)牙,來(lái)用手機(jī)控制藍(lán)牙播放歌曲,求教如何實(shí)現(xiàn)?來(lái)個(gè)藍(lán)牙原理圖,和如何控制單片機(jī)播放歌曲。
    發(fā)表于 11-23 20:48

    帶有歌詞顯示的音樂(lè)播放

    本帖最后由 chew_elecfans 于 2017-8-6 11:36 編輯 播放歌曲的同時(shí)在12864LCD上顯示每個(gè)樂(lè)句的歌詞,并給出了音樂(lè)播放程序的詳細(xì)注釋。
    發(fā)表于 07-24 01:50

    PIC單片機(jī)蜂鳴器播放歌有人做過(guò)嗎?分享下,謝謝

    PIC單片機(jī)蜂鳴器播放歌有人做過(guò)嗎?分享下,謝謝
    發(fā)表于 10-11 15:56

    fatfs播放MP3不能正常播放歌曲,如何解決?

    求助原子哥,下面的程序我直接賦值在主函數(shù)中直接執(zhí)行play_song(7);就可以正常播放歌曲,而如果把play_song(7);嵌入void play_mp3(void)函數(shù)中,在主函數(shù)中執(zhí)行
    發(fā)表于 04-21 21:21

    Arduino UNO控制板發(fā)送串口協(xié)議是如何控制語(yǔ)音播放播放歌曲

    Arduino UNO控制板的硬件特性有哪些呢?Arduino UNO控制板發(fā)送串口協(xié)議是如何控制語(yǔ)音播放播放歌曲的?
    發(fā)表于 11-08 07:41

    如何使用STM32F103控制蜂鳴器發(fā)聲播放音樂(lè)

    基于STM32F103,蜂鳴器播放歌曲本文的內(nèi)容,分為下面幾部分:1,參考網(wǎng)上例程;2,移植,運(yùn)行,查看,盡力理解代碼;3,調(diào)整測(cè)試參數(shù);4,添加一首歌曲。下面詳細(xì)描述一下過(guò)程:一,
    發(fā)表于 01-07 08:19

    STM32蜂鳴器模擬播放歌曲

    /***********************************************************************函數(shù)名:BEEP_Init*功能:蜂鳴器初始化*參數(shù):無(wú)*返回:無(wú)*備注:引腳 點(diǎn)蜂鳴器電平 模式速度PC3高電平
    發(fā)表于 01-19 08:09

    【正點(diǎn)原子STM32戰(zhàn)艦V4開(kāi)發(fā)板免費(fèi)試用】利用開(kāi)發(fā)板上的蜂鳴器播放音樂(lè)

    就可以了。就實(shí)現(xiàn)了音符的播放。 音樂(lè)的播放除了音符外,還有每個(gè)音符的播放持續(xù)時(shí)間。同樣一個(gè)音符,發(fā)聲時(shí)持續(xù)時(shí)間不一樣,人聽(tīng)出來(lái)的效果也不一樣,這個(gè)也要相應(yīng)地寫(xiě)一個(gè)數(shù)組。 再就是編寫(xiě)一個(gè)播放歌曲
    發(fā)表于 05-01 19:59

    iPod Shuffle是怎么隨機(jī)播放歌曲的?

    iPod Shuffle是怎么隨機(jī)播放歌曲的?
    發(fā)表于 08-21 15:02 ?3898次閱讀

    小米手表打破傳統(tǒng)桎梏,實(shí)現(xiàn)下載存儲(chǔ)歌曲

    限于網(wǎng)絡(luò)和存儲(chǔ)空間,智能手表播放歌曲已往依賴于手機(jī),顯得多此一舉,小米手表準(zhǔn)備打破這一桎梏。
    的頭像 發(fā)表于 11-01 16:21 ?1.6w次閱讀

    使用單片機(jī)實(shí)現(xiàn)延時(shí)程序控制播放歌曲的仿真設(shè)計(jì)實(shí)例

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用單片機(jī)實(shí)現(xiàn)延時(shí)程序控制播放歌曲的仿真設(shè)計(jì)實(shí)例免費(fèi)下載。
    發(fā)表于 03-10 14:18 ?14次下載

    使用Arduino播放歌曲

    電子發(fā)燒友網(wǎng)站提供《使用Arduino播放歌曲.zip》資料免費(fèi)下載
    發(fā)表于 02-01 14:20 ?0次下載
    使用Arduino<b class='flag-5'>播放歌曲</b>

    使用Arduino無(wú)源蜂鳴器播放任何歌曲

    電子發(fā)燒友網(wǎng)站提供《使用Arduino無(wú)源蜂鳴器播放任何歌曲.zip》資料免費(fèi)下載
    發(fā)表于 02-01 11:18 ?1次下載
    使用Arduino無(wú)源<b class='flag-5'>蜂鳴器</b><b class='flag-5'>播放</b>任何<b class='flag-5'>歌曲</b>