431|1

4771

帖子

12

TA的资源

版主

楼主
 

掌握利用Verilog HDL 的FPGA设计实现简易电子琴设计验证 [复制链接]

 
蜂鸣器应用:基于FPGA实现简易电子琴设计验证
一, 蜂鸣器概念
蜂鸣器分为有源蜂鸣器和无源蜂鸣器,其产生声音的原理是一样的,都是通过振动产生声音。有源蜂鸣器内部集成了震荡源,无源蜂鸣器内部没有震荡源。开发板集成的蜂鸣器为无源蜂鸣器。如果需要其产生不同音符的声音,需要我们产生不同频率的信号给到蜂鸣器。
二, 简易电子琴设计要求
当我们对按键进行操作时,如果一直按着按键,蜂鸣器就会一直发出该按键对应的音符声音,我们需要对按键进行处理时产生一个对按键一直按下的使能信号,利用该使能信号控制蜂鸣器信号的产生。由于开发板集成的按键我们能够用到的有20个,而音符频率对应的是21个,我们将高音7去掉,这样我们就可以利用20个按键对应20个音符频率,规定:4个独立按键,从左到右一次对应的频率为:低音1,低音2,低音3.低音4,16位的矩阵键盘对应的音符频率为:0到2对应低音5,低音6,低音7;3到9按键对应中音1到中音7,10到15按键对应音符为高音1到高音6。
三,设计架构
三,设计架构
产生频率控制字控制模块fword_ctrl设计分析:
对于矩阵键盘来说,其产生的标志信号flag和按键键值结合起来就可以分辨出我们对哪一个音符按键进行操作,我们在独立按键消抖处理过程中产生一个key_num信号,用来表示对应独立按键的键值,0表示高位按键,3表示低位按键,通过判断条件:flag = =1或者^flag1== 1,将矩阵键盘和独立按键产生的键值拼接起来形成一个六位的变量num[6:0],num= {key_num,key_value},利用case语句判断num信号的值。
case(num)
001_1111 : 独立按键1 fword = (50_000_000/262)/2
010_1111 : 独立按键2fword = (50_000_000/294)/2
011_1111 : 独立按键3
100_1111 :独立按键4
000_0000 :矩阵键盘0按键
000_0001 :矩阵键盘1按键
....
000_1111 :矩阵键盘F按键
defult: fword=0;
endcase
//////////////////////////////////////////////////////////////////////////////////////
掌握利用Verilog HDL 的FPGA设计实现简易电子琴设计验证
蜂鸣器应用:基于FPGA实现简易电子琴设计验证
一, 蜂鸣器概念
蜂鸣器分为有源蜂鸣器和无源蜂鸣器,其产生声音的原理是一样的,都是通过振动产生声音。有源蜂鸣器内部集成了震荡源,无源蜂鸣器内部没有震荡源。开发板集成的蜂鸣器为无源蜂鸣器。如果需要其产生不同音符的声音,需要我们产生不同频率的信号给到蜂鸣器。
二, 简易电子琴设计要求
当我们对按键进行操作时,如果一直按着按键,蜂鸣器就会一直发出该按键对应的音符声音,我们需要对按键进行处理时产生一个对按键一直按下的使能信号,利用该使能信号控制蜂鸣器信号的产生。由于开发板集成的按键我们能够用到的有20个,而音符频率对应的是21个,我们将高音7去掉,这样我们就可以利用20个按键对应20个音符频率,规定:4个独立按键,从左到右一次对应的频率为:低音1,低音2,低音3.低音4,16位的矩阵键盘对应的音符频率为:0到2对应低音5,低音6,低音7;3到9按键对应中音1到中音7,10到15按键对应音符为高音1到高音6。
三,设计架构
三,设计架构
产生频率控制字控制模块fword_ctrl设计分析:
对于矩阵键盘来说,其产生的标志信号flag和按键键值结合起来就可以分辨出我们对哪一个音符按键进行操作,我们在独立按键消抖处理过程中产生一个key_num信号,用来表示对应独立按键的键值,0表示高位按键,3表示低位按键,通过判断条件:flag = =1或者^flag1== 1,将矩阵键盘和独立按键产生的键值拼接起来形成一个六位的变量num[6:0],num= {key_num,key_value},利用case语句判断num信号的值。
case(num)
001_1111 : 独立按键1 fword = (50_000_000/262)/2
010_1111 : 独立按键2fword = (50_000_000/294)/2
011_1111 : 独立按键3
100_1111 :独立按键4
000_0000 :矩阵键盘0按键
000_0001 :矩阵键盘1按键
....
000_1111 :矩阵键盘F按键
defult: fword=0;
endcase
//////////////////////////////////////////////////////////////////////////////////////

最新回复

学习了,资料很好,感谢分享。学习中缺失中的资料,有用。   详情 回复 发表于 2024-10-14 20:53
点赞 关注
 

回复
举报

66

帖子

0

TA的资源

禁止发言

沙发
 

学习了,资料很好,感谢分享。学习中缺失中的资料,有用。

 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表