名称:音乐流水灯音乐播放器数码管(代码在文末付费下载)
软件:Quartus
语言:Verilog
要求:
要求设计一个基于FPGA的带数码管显示的音乐流水灯装置。
1、在EDA工具Quartusll13.0平台上,运用Verilog语言模块化与层次化的设计方法,编写单一状态机控制各个模块,并实现流水灯?闪烁、数码管显示及音乐播放等功能。
2、设计代码简洁,系统稳定,便于维护和修改,灵活性强。
3、可根据用户的喜好改变乐曲、流水灯闪烁方式以及数码管显示内容。
演示视频:
部分代码展示
module?music(sysclk,key_speed,key_style,?model_Key,led,?spkout,HEX0); ???input???????????sysclk;//50M晶振 input?key_speed;//切换速度,按下高电平 input?key_style;//切换样式 ???input???????????model_Key;//歌曲选择键 ???output??????????spkout;//蜂鸣器输出 output??????[7:0]?led;//流水灯 output??????[7:0]?HEX0;//数码管-低亮 wire??model_Key_down; wire???????[9:0]?tonestep; ???wire??????[7:0]?tonecode; wire??????[3:0]?music_num; ???//调用频率控制字产生模块 ???musicdec?u_musicdec ( .tonecode(tonecode),//输入简谱 .tonestep(tonestep)//输出频率控制字 ); ??? //调用按键消抖模块 key_jitter?u1_key_jitter( ?????.?clkin(sysclk),??? ?????.?key_in(model_Key),//输入 ??.?key_negedge(model_Key_down)//消抖后按键下降沿 ); //音乐控制模块 music_ctrl?i_music_ctrl( .sysclk(sysclk),? .model_Key_down(model_Key_down),?//model_Key_down .music_num(music_num), .tonecode(tonecode),//简谱 .tonestep(tonestep),//频率控制字 .spkout(spkout)////蜂鸣器输出 ); //流水灯模块 water_lamp?i_water_lamp( .?clk_50M(sysclk),//50MHz .?key_speed(key_speed),//切换速度 .?key_style(key_style),//切换样式 .?led(led)//led流水灯 ); //显示模块 display?i_display( .?clk(sysclk), .?music_num(music_num),//当前歌曲 .?HEX0(HEX0)//数码管-低亮 ); endmodule
设计文档(文档点击可下载):
1. 工程文件

2. 程序文件

3. 程序编译

4. RTL图

5. 仿真图
显示模块


流水灯模块


按键消抖模块



简谱频率控制模块


本代码已在以下开发板验证,开发板资料:
FPGA开发板使用手册V1.0.pdf
大西瓜第一代FPGA开发板使用手册V1.0.pdf
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=180
阅读全文
866