名称:音乐流水灯音乐播放器数码管(代码在文末付费下载)
软件:Quartus
语言:Verilog
要求:
要求设计一个基于FPGA的带数码管显示的音乐流水灯装置。
1、在EDA工具Quartusll13.0平台上,运用Verilog语言模块化与层次化的设计方法,
编写单一状态机控制各个模块,并实现流水灯 闪烁、数码管显示及音乐播放等功能。
2、设计代码简洁,系统稳定,便于维护和修改,灵活性强。
3、可根据用户的喜好改变乐曲、流水灯闪烁方式以及数码管显示内容。
代码下载:音乐流水灯音乐播放器数码管Verilog_Verilog/VHDL资源下载
代码网:hdlcode.com
部分代码展示
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. 仿真图
显示模块
流水灯模块
按键消抖模块
简谱频率控制模块
本代码已在以下开发板验证,开发板资料: