乐曲演奏器设计Verilog代码Quartus 正点原子新起点开发板

名称:乐曲演奏器设计Verilog代码Quartus  正点原子新起点开发板(文末获取)

软件:Quartus

语言:Verilog

代码功能:

乐曲演奏器设计

1、PWM结合蜂鸣器实现乐曲演奏器实物演示

简谱说明:

8表示简谱1

9表示简谱2

10表示简谱3

以此类推

每个简谱对应4个相同的值

茉莉花的简谱存储在ROM中,具体值可以打开music.mif文件查看

本代码已在正点原子新起点开发板验证,正点原子新起点开发板如下,其他开发板可以修改管脚适配:

正点原子新起点开发板.png

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
源代码

点击下方的公众号卡片获取

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值