基于Verilog语言编写简易电子琴程序
题目要求:(1)单独从左至右按下S1-S7每个按键后能够各自对应发出“哆来咪发唆啦西”的音乐声;(2)按下最右边按键(S8),同时再配合按下S1-S7键后,发高八度的对应...
题目要求:
(1)单独从左至右按下S1-S7每个按键后能够各自对应发出 “哆来咪发唆啦西”的音乐声;
(2)按下最右边按键(S8),同时再配合按下S1-S7键后,发高八度的对应音;
(3)按键需要进行“消抖”处理;
(4)外部输入脉冲信号频率为1mhz;
(5)扩展要求:自主设计(增加低8度功能)。
设计原理:
(1)喇叭的振动频率不同,导致产生不同的声音;振动频率越低,声音越低沉,振动频率越高,声音越尖锐。题目中音乐基本音的 “哆”对应频率为523Hz 、“来”对应频率为587Hz 、“咪”对应频率为659Hz 、“发”对应频率为698Hz 、“唆”对应频率为784Hz 、“啦”对应频率为880Hz 、“西”对应频率为998Hz。
低8度音:基本音频率/2,例如低音1的频率为523/2=261.5Hz。
高8度音:基本音频率×2,例如高音1的频率为523×2=1046Hz.。
不同的频率产生利用给定的时钟脉冲来进行分频实现。
(2)消抖的原理:按键默认输入逻辑‘1’,当有按键按下时对应的输入为逻辑‘0’(但会存在抖动),当FPGA开始检测到该引脚从‘1’变为‘0’后开始定时(按键抖动时间大约10ms),定时时间结束后若该引脚仍然为‘0’则表示确实发生按键按下,否则视为抖动而不予以理会;按键松开过程的消抖处理和按下时原理一样。用Quartus 2编写,高手快来啊
qq 邮箱 915144049@qq.com 展开
(1)单独从左至右按下S1-S7每个按键后能够各自对应发出 “哆来咪发唆啦西”的音乐声;
(2)按下最右边按键(S8),同时再配合按下S1-S7键后,发高八度的对应音;
(3)按键需要进行“消抖”处理;
(4)外部输入脉冲信号频率为1mhz;
(5)扩展要求:自主设计(增加低8度功能)。
设计原理:
(1)喇叭的振动频率不同,导致产生不同的声音;振动频率越低,声音越低沉,振动频率越高,声音越尖锐。题目中音乐基本音的 “哆”对应频率为523Hz 、“来”对应频率为587Hz 、“咪”对应频率为659Hz 、“发”对应频率为698Hz 、“唆”对应频率为784Hz 、“啦”对应频率为880Hz 、“西”对应频率为998Hz。
低8度音:基本音频率/2,例如低音1的频率为523/2=261.5Hz。
高8度音:基本音频率×2,例如高音1的频率为523×2=1046Hz.。
不同的频率产生利用给定的时钟脉冲来进行分频实现。
(2)消抖的原理:按键默认输入逻辑‘1’,当有按键按下时对应的输入为逻辑‘0’(但会存在抖动),当FPGA开始检测到该引脚从‘1’变为‘0’后开始定时(按键抖动时间大约10ms),定时时间结束后若该引脚仍然为‘0’则表示确实发生按键按下,否则视为抖动而不予以理会;按键松开过程的消抖处理和按下时原理一样。用Quartus 2编写,高手快来啊
qq 邮箱 915144049@qq.com 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询