源码系列:基于FPGA的电子琴设计(附源工程)
发布时间:2026-09-28 | 浏览:1
源码系列:基于FPGA的电子琴设计(附源工程)
大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分。大侠可以关注FPGA技术江湖,在“闯荡江湖”、"行侠仗义"栏里获取其他感兴趣的资源,或者一起煮酒言欢。
今天给大侠带来基于FPGA的电子琴设计,附源码,获取源码,请在“FPGA技术江湖”公众号内回复“ 电子琴设计源码”,可获取源码文件。话不多说,上货。
在之前也出了几篇源码系列,基本上都是一些小设计,源码系列主要就会想通过实操训练让各位学习者,尤其是初学者去更好的理解学习FPGA,或者给要的学生提供一些源码,之前设计过各个芯片的配置等,之后笔者会通过简单的例子来让大家去系统的学习和认识FPGA。本次的电子琴设计也算是一次简单的各个模块的联系调用的一个过程,也可以帮助各位去加深理解,多动手,熟练掌握会有意想不到的效果。
本次的设计主要是通过控制ps2键盘来使蜂鸣器发出哆来咪法嗦拉西7种音,音符又有高低音之分等,本次只选择发出高音的多来咪发嗦啦西。本设计中还用到了VGA的设计,通过VGA来在显示屏上画出如下图的黑白的电子琴键:
当按下多来咪发嗦啦西时,对应的键值变颜色表示按下,不变色表示不按下,颜色自己可以调节,但是琴的按键必须为黑白色来显示出来。
当按下按键的时候,蜂鸣器来鸣响对应时间的音符,本设计蜂鸣器响的时间为0.25S一个音符持续的时间。
本次设计用到的PS2和VGA的设计原理笔者在这里就不过多的介绍了,不明白的可以翻看前面发的文档内容。
在本设计中介绍蜂鸣器的使用和各音符发声的频率大小。本设计用的是无源蜂鸣器,原理图如下:
由于FPGA的驱动能力不够,我们添加了一个三极管来驱动这个无源蜂鸣器,而无源蜂鸣器的主要特点是内部不带振荡源,所以如果使用直流信号是无法使无源蜂鸣器鸣叫的,必须使用方波去驱动它。
现在我们明白了,只要往蜂鸣器发送一定频率的方波,就可以使得蜂鸣器发出声音,然后现在的问题是,我们究竟要往蜂鸣器发送什么频率的方波信号呢?具体的频率可以查看下图:
现在我们知道如何让蜂鸣器响起,又知道发送什么频率可以让蜂鸣器响起什么的声音,所以我相信我们已经有能力让蜂鸣器响起我们需要的音乐了。
在这里没有去画设计框架图,就直接给大家展示RTL级视图,各位也可以通过RTL级视图看到设计的总框架。
顶层模块music_ps2代码:
代码验证正确无误,笔者在这边就不过多的验证,源工程已提供给各位大侠,如有需要,可以自行获取,供大家参考学习。
社区 技术文章 技术问答 技术沙龙 技术视频 学习中心 技术百科 技术专区
活动 自媒体同步曝光计划 邀请作者入驻 自荐上首页 技术竞赛
圈层 腾讯云最具价值专家 腾讯云架构师技术同盟 腾讯云创作之星 腾讯云TDP
关于 社区规范 免责声明 联系我们 友情链接 MCP广场开源版权声明
Copyright © 2013 - 2026 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号: 粤B2-20090059 粤公网安备44030502008569号
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号