成人免费无码不卡毛片,亚洲AⅤ无码精品一区二区三区,国产尤物精品视频,久久精品日本亚洲,欧美成人一区三区无码乱码A片,中文字日产幕码一区二区色哟哟,亞洲日韓中文字幕網AV

  • 方案介紹
  • 附件下載
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

音樂播放器蜂鳴器播放AX301開發(fā)板verilog切歌

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

1-23101R22QC93.doc

共1個(gè)文件

名稱:音樂播放器蜂鳴器播放音樂按鍵切歌(代碼在文末付費(fèi)下載)

軟件:Quartus

語言:Verilog

代碼功能:

設(shè)計(jì)一個(gè)音樂播放器,使用板子上的蜂鳴器播放歌曲,可以播放三首歌(歌曲任選),通過按鍵控制切歌,使用led顯示音樂節(jié)奏。

本代碼曲目為:

《兩只老虎》

《媽媽的吻》

《讓我們蕩起雙槳》

本代碼已在AX301開發(fā)板驗(yàn)證,開發(fā)板資料:

演示視頻:

部分代碼展示

//音樂播放器
module?music(sysclk,?model_Key,?spkout,led);
???input???????????sysclk;//50M晶振
???input???????????model_Key;//歌曲選擇鍵
???output??????????spkout;//蜂鳴器輸出
output??????[1:0]?led;//指示燈
???
???wire?[7:0]?tonecode;
???wire?[9:0]?tonestep;
???wire?model_Key_down;
???//調(diào)用頻率控制字產(chǎn)生模塊
???musicdec?u_musicdec
(
.tonecode(tonecode),//輸入簡譜
.tonestep(tonestep)//輸出頻率控制字
);
???
//調(diào)用按鍵消抖模塊
key_jitter?u_key_jitter(
?????.?clkin(sysclk),???
?????.?key_in(model_Key),//輸入
??.?key_posedge(),//消抖后按鍵上升沿
??.?key_negedge(model_Key_down),//消抖后按鍵下降沿
?????.?key_value()//消抖后按鍵
);
???
//音樂控制模塊
music_ctrl?i_music_ctrl(
???.??sysclk(sysclk),//50M晶振
???.??model_Key_down(model_Key_down),//歌曲選擇鍵
???.??tonecode(tonecode),
???.??tonestep(tonestep),
???.??spkout(spkout),//蜂鳴器輸出
???.??led(led)//指示燈
);???
???
endmodule


//控制模塊
module?music_ctrl(
???input??sysclk,//50M晶振
???input??model_Key_down,//歌曲選擇鍵
???output?reg?[7:0]??tonecode,
???input??[9:0]?tonestep,
???output?reg???spkout,//蜂鳴器輸出
???output?[1:0]?led//指示燈
);???
???reg?[21:0]??????addr;//分頻控制字
???reg?[24:0]??????divclk_counter;
???reg?????????????musicclk;
???wire?[31:0]?????musickeyshiftbuf;
???wire?[1:0]??????musicno;
???
???wire?[9:0]??????step;
???reg?[8:0]???????codeaddr1;
???reg?[8:0]???????codeaddr2;
???reg?[8:0]???????codeaddr3;
???
//定義3個(gè)數(shù)組,用于存儲3首歌曲
???reg?[7:0]?music1[0:255];
???reg?[7:0]?music2[0:447];??
???reg?[7:0]?music3[0:495];
//初始化三首歌,存入數(shù)組
initial?begin
$readmemh("music1.list",?music1);//music1.list存儲的是兩只老虎的簡譜
$readmemh("music2.list",?music2);//music2.list存儲的是媽媽的吻的簡譜
$readmemh("music3.list",?music3);//music3.list存儲的是讓我們蕩起雙槳的簡譜
end
???
???reg?[1:0]?music_select=2'd0;
assign?led=music_select;
always@(posedge?sysclk)
if(model_Key_down)
music_select<=music_select+2'd1;//按一次按鍵,music_select加1
???assign?step?=?tonestep;
???always?@(posedge?sysclk)?????
??????begin
addr?<=?addr?+?step;//step是根據(jù)音樂文件產(chǎn)生的頻率控制字,不同step產(chǎn)生不同頻率的spkout
??????end
???always?@(posedge?sysclk)?????
??????begin
?????????if?(divclk_counter?==?1799999)//50M/(1799999*2)=分頻到13.9Hz
?????????begin
????????????musicclk?<=?(~musicclk);//musicclk=13.9Hz

設(shè)計(jì)文檔:

1. 工程文件

2. 程序文件

3. 程序編譯

4. RTL圖

5. 管腳分配

6. Testbench

7. 仿真圖

整體仿真圖

按鍵模塊

音樂控制模塊

頻率控制模塊

點(diǎn)擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=193

  • 1-23101R22QC93.doc
    下載

相關(guān)推薦

巧家县| 湘潭县| 游戏| 苏尼特右旗| 界首市| 朝阳区| 东光县| 贵南县| 安康市| 习水县| 昭平县| 左贡县| 青河县| 永福县| 阜平县| 会理县| 宁陕县| 多伦县| 璧山县| 东平县| 海门市| 华宁县| 金山区| 托克托县| 孙吴县| 台湾省| 蒙山县| 丹棱县| 喀什市| 台南市| 什邡市| 修文县| 枣强县| 噶尔县| 永定县| 嘉峪关市| 舒兰市| 公安县| 东丰县| 四川省| 青海省|