通用音乐播放器蜂鸣器AX301开发板verilog,视频/代码

名称:通用音乐播放器代码,蜂鸣器播放音乐

软件:Quartus

语言:Verilog

代码说明:本代码为音乐播放器通用代码,只需修改管脚即可适配其他开发板

代码功能:

       设计一个音乐播放器,使用板子上的蜂鸣器播放歌曲,可以播放三首歌(歌曲任选),通过按键控制切歌,使用led显示音乐节奏。

本代码曲目为:

《两只老虎》

《妈妈的吻》

《让我们荡起双桨》

本代码已在AX301开发板验证,开发板资料:

FPGA 开发板手册.pdf

演示视频:音乐播放器蜂鸣器播放AX301开发板verilog切歌_Verilog/VHDL资源下载

代码下载:音乐播放器蜂鸣器播放AX301开发板verilog切歌_Verilog/VHDL资源下载名称:音乐播放器蜂鸣器播放音乐按键切歌(代码在文末付费下载)软件:Quartus语言:Verilog代码功能: 设计一个音乐播放器,使用板子上的蜂鸣器播放歌曲,可以播放三首歌(歌曲任选),通过按键控制切歌,使用led显示音乐节奏。本代码曲目为:《两只老虎》《妈妈的吻》《让我们荡起双桨》本代码已在AX301开发板验证,开发板资料:FPGA 开发板手册.pdf演示视频:部分代码展示//音乐icon-default.png?t=N7T8http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=193

部分代码展示

//音乐播放器
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;//调用频率控制字产生模块musicdec u_musicdec
(
.tonecode(tonecode),//输入简谱
.tonestep(tonestep)//输出频率控制字
);//调用按键消抖模块
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个数组,用于存储3首歌曲reg [7:0] music1[0:255];reg [7:0] music2[0:447];  reg [7:0] music3[0:495];
//初始化三首歌,存入数组
initial begin
$readmemh("music1.list", music1);//music1.list存储的是两只老虎的简谱
$readmemh("music2.list", music2);//music2.list存储的是妈妈的吻的简谱
$readmemh("music3.list", music3);//music3.list存储的是让我们荡起双桨的简谱
endreg [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加1assign step = tonestep;always @(posedge sysclk)     begin
addr <= addr + step;//step是根据音乐文件产生的频率控制字,不同step产生不同频率的spkoutendalways @(posedge sysclk)     beginif (divclk_counter == 1799999)//50M/(1799999*2)=分频到13.9Hzbeginmusicclk <= (~musicclk);//musicclk=13.9Hz

设计文档:

设计文档.doc

1. 工程文件

2. 程序文件

3. 程序编译

4. RTL图

5. 管脚分配

6. Testbench

7. 仿真图

整体仿真图

按键模块

音乐控制模块

频率控制模块

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/111697.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解决一则诡异的javascript函数不执行的问题

有个vue 音乐播放器项目&#xff0c;由于之前腾讯的搜索接口没法用了&#xff0c;于是改成了别家的搜索接口。 但是由于返回数据结构不一样&#xff0c;代码重构的工作量还是挺大的&#xff1a;包括数据请求&#xff0c;数据处理&#xff0c;dom渲染&#xff0c;处理逻辑都进行…

Elasticsearch:什么是余弦相似度?

余弦相似度是数据科学、文本分析和机器学习领域的基本概念。 如果你想知道什么是余弦相似度或者它如何在现实世界的应用程序中使用&#xff0c;那么你来对地方了。 本指南旨在让你深入了解相似性是什么、其数学基础、优点及其在不同领域的各种应用。读完本指南后&#xff0c;你…

PHP 变量

变量 变量的声明、使用、释放 变量定义 形式 $ 变量名;严格区分大小写 $name; $Name; $NAME //三个变量不是同一个变量字母、数字、下划线组成&#xff0c;不能以数字开头&#xff0c;不能包含其他字符(空白字符、特殊字符) 驼峰式命名法、下划线式命名法 $first_name; $fi…

在 Visual Studio Code (VS Code) 中设置

在 Visual Studio Code (VS Code) 中设置代理服务器的详细教程如下&#xff1a; 打开 Visual Studio Code。 在顶部菜单栏中&#xff0c;点击 "File"&#xff08;文件&#xff09; > "Preferences"&#xff08;首选项&#xff09; > "Settings…

IP协议(上)

目录 一、初步认识IP协议 二、认识IP地址 三、协议报头格式 1.报头和有效载荷分离 2.20字节的固定数据 四、网段划分 1.一个小例子 2.认识IP地址的划分 3.数据的传输过程 4.特殊的IP地址 5.通信运营商 &#xff08;1&#xff09;通信运营商的作用 &#xff08;2&a…

如何利用考培系统进行个性化学习和评估

考培系统作为一种现代化的学习和评估工具&#xff0c;可以为学生提供个性化的学习和评估服务。它利用先进的技术和算法&#xff0c;根据学生的学习情况和需求&#xff0c;为其量身定制学习计划&#xff0c;并提供相应的评估反馈。 1. 个性化学习 考培系统通过分析学生的学习情…

javaEE - 2(11000字详解多线程)

一&#xff1a;多线程带来的的风险-线程安全 线程安全的概念&#xff1a;如果多线程环境下代码运行的结果是符合我们预期的&#xff0c;即在单线程环境应该的结果&#xff0c;则说这个程序是线程安全的。 当多个线程同时访问共享资源时&#xff0c;就会产生线程安全的风险&am…

【AIGC核心技术剖析】扩大富有表现力的人体姿势和形状估计SMPLer-X模型

富有表现力的人体姿势和形状估计 (EHPS) 将身体、手和面部运动捕捉与众多应用结合起来。尽管取得了令人鼓舞的进展,但当前最先进的方法仍然在很大程度上依赖于有限的训练数据集。在这项工作中,我们研究了将 EHPS 扩展到第一个通用基础模型(称为 SMPLer-X),以 ViT-Huge 作为…

【译】快速开始 Compose 跨平台项目

原文&#xff1a; Compose Multiplatform application 作者&#xff1a;JetBrains 注意 Compose Multiplatform 中的 iOS 部分目前处于 Alpha 状态。以后可能会有不兼容的更改&#xff0c;届时也许需要手动进行迁移。 你可以使用这个模板来开发同时支持桌面、安卓和 iOS 的跨平…

GitHub验证的2FA

一、 起因&#xff1a; GitHub需要双重身份验证 (2FA) 是登录网站或应用时使用的额外保护层。启用 2FA 时&#xff0c;必须使用您的用户名和密码登录&#xff0c;并提供另一种只有您知道或可以访问的身份验证形式。 二、解决&#xff1a; 2.1 这里使用chrome的身份验证插件进…

在emacs中,设置latex的主文档

文档&#xff1a; chapter1.tex chapter2.tex main.tex 在chapter1.tex中&#xff0c;先按下 ctrlc ctrln&#xff0c;再按下ctrlc ctrla&#xff0c;在下方的提示框中输入主文档。

支付宝小程序介入人脸识别(金融级--前端部分)

在这里只做前端部分说明: 详情参考文档:如何通过集成支付宝小程序唤起实人认证服务_实人认证-阿里云帮助中心 操作步骤 调用 API 发起认证。 发起认证服务。 调用 startBizService 接口请求认证。 function startAPVerify(options, callback) {my.call(startBizService, {n…

AWS S3加密

Hello大家好&#xff61; 在本课时我们将讨论S3加密相关的内容。 S3加密相关是认证考试的一个重要的主题考点&#xff0c;您需要了解亚马逊S3的几种不同类型的加密方式。| 首先是静态数据的加密&#xff0c;静态数据加密是指数据存储在亚马逊S3 数据中心的磁盘上时&#xff0…

stable diffusion和midjourney哪个好

midjourney和stable diffusion哪个好&#xff1f;midjourney和stable diffusion的区别&#xff1f;那么今天就从这2款软件入手&#xff0c;来探索一下他们的功能的各项区别吧&#xff0c;让你选择更适合你的一款ai软件。 截至目前&#xff0c;我们目睹了生成式人工智能工具的在…

Linux —— 网络基础(一)

目录 一&#xff0c;计算机网络背景 二&#xff0c;网络协议初识 三&#xff0c;网络传输基本流程 四&#xff0c;网络中的地址管理 一&#xff0c;计算机网络背景 网络发展 独立模式&#xff0c;计算机之间相互独立&#xff1b;网络互联&#xff0c;多台计算机连接在一起…

【OpenCV实现图片以及视频的读取、显示、保存以及绘图函数】

文章目录 图片视频从文件读取视频保存一个视频绘图函数 图片 OpenCV&#xff08;Open Source Computer Vision Library&#xff09;是一个广泛应用于计算机视觉和图像处理领域的开源库。它提供了丰富的图像处理工具和算法&#xff0c;使得开发者能够轻松实现各种图像处理任务。…

科普丨语音芯片烧录流程概述

语音芯片的烧录是将特定的固件或软件加载到芯片中&#xff0c;以使其能够执行特定的语音处理功能。以下是一般的语音芯片烧录过程&#xff1a; 1. 准备固件或软件&#xff1a;开发人员需要编写或获取特定的固件或软件&#xff0c;这些固件或软件包含了语音处理算法和功能的代码…

【周末闲谈】VR新视界,“眼”见未来

个人主页&#xff1a;【&#x1f60a;个人主页】 系列专栏&#xff1a;【❤️周末闲谈】 系列目录 ✨第一周 二进制VS三进制 ✨第二周 文心一言&#xff0c;模仿还是超越&#xff1f; ✨第二周 畅想AR 文章目录 系列目录前言虚拟现实(VR)技术虚拟现实技术的原理虚拟现实技术发…

高精度时间测量(TDC)电路MS1022

MS1022 是一款高精度时间测量电路&#xff0c;内部集成了模拟比 较器、模拟开关、施密特触发器等器件&#xff0c;从而大大简化了外 围电路。同时内部增加了第一波检测功能&#xff0c;使抗干扰能力大 大提高。通过读取第一个回波脉冲的相对宽度&#xff0c;用户可以获 得接…

laravel的默认首页怎么改-laravel框架默认欢迎页面如何修改

laravel的默认首页怎么改 搭建好的laravel的默认首页怎么改 我们有两种改动方式&#xff1a; 第一种修改默认路由&#xff1a; 下一步是要移除Laravel应用程序默认的欢迎页路由。这个路由可以在routes/web.php文件的顶部找到&#xff0c;看起来类似于以下代码&#xff1a; …