名称:乐曲演奏器设计Verilog代码Quartus 正点原子新起点开发板(文末获取)
软件:Quartus
语言:Verilog
代码功能:
乐曲演奏器设计
1、PWM结合蜂鸣器实现乐曲演奏器实物演示
简谱说明:
8表示简谱1
9表示简谱2
10表示简谱3
以此类推
每个简谱对应4个相同的值
茉莉花的简谱存储在ROM中,具体值可以打开music.mif文件查看
本代码已在正点原子新起点开发板验证,正点原子新起点开发板如下,其他开发板可以修改管脚适配:
1. 工程文件
2. 程序文件
ROM文件
3. 程序编译
4. RTL图
5. Testbench
6. 仿真图
整体仿真图
音乐控制模块
频率控制模块
数码管显示模块
附简谱:
部分代码展示:
//音乐播放器 module music(sysclk,stop_key,start_key,led, spkout,bit_select,seg_select); input sysclk;//50M晶振 input stop_key;//reset input start_key;//开始 output spkout;//蜂鸣器输出 output led;//指示灯 output [5:0] bit_select;//数码管位选 output [7:0] seg_select;//数码管段选 wire [9:0] tonestep; wire [7:0] tonecode; wire [3:0] music_num; //调用频率控制字产生模块 musicdec u_musicdec ( .tonecode(tonecode),//输入简谱 .tonestep(tonestep)//输出频率控制字 ); //音乐控制模块 music_ctrl i_music_ctrl( .sysclk(sysclk), .start_key(start_key), .stop_key(stop_key), .tonecode(tonecode),//简谱 .tonestep(tonestep),//频率控制字 .spkout(spkout), .led(led) ); //数码管显示模块 display i_display( . clk(sysclk), . tonecode(tonecode), . bit_select(bit_select),//数码管位选 . seg_select(seg_select)//数码管段选 ); endmodule
源代码
点击下方的公众号卡片获取