- 1、本文档共29页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于FPGA的音乐发生器的设计实现 哈尔滨工程大学 背景: 本设计利用可编程逻辑器件配以一个小扬声器设计了一个音乐发生器,音乐的十二平均率规定:每两个八度音(如简谱中的中音1与高音1)之间的频率相差一倍。在两个八度音之间,又可分为十二个半音。另外,音名A(简谱中的低音6)的频率为440 Hz,音名B到C之间、E到F之间为半音,其余为全音。由此可以计算出简谱中从低音1至高音1之间每个音名的频率如表所示。 背景: 由于音阶频率多为非整数,而分频系数又不能为小数,故必须将计算得到的分频数四舍五入取整。若基准频率过低,则由于分频系数过小,四舍五入取整后的误差较大。若基准频率过高,虽然误码差变小,但分频结构将变大。实际的设计应综合考虑两方面的因素,在尽量减小频率误差的前提下取合适的基准频率。实际上,只要各个音名间的相对频率关系不变,C作1与D作1演奏出的音乐听起来都不会“走调”。 背景: 而可编程器件外围的蜂鸣器,一般使用数字脉冲使其发出声响,因此蜂鸣器的音质很难得到保证,如果使用正弦波脉冲驱动蜂鸣器则会得到比较好的效果。 可以使用独立键盘控制输出音阶频率,但由于独立按键存在键值抖动,需要增加消抖模块。而PS/2键盘完全去除了这种影响,PS/2键盘接口标准定义了84~101键,但是采用6脚mini-DIN连接器,该连接器在封装上更小巧,仍然用双向串行通讯协议并且提供有可选择的第三套键盘扫描码集,同时支持17个主机到键盘的命令。因此本设计可用PS2键盘控制输出音阶频率。 目的: 1、熟悉VHDL语言实现任意进制计数器的设计 2、熟悉LPMROM的使用方法 3、熟悉D\A (数模转换器)的工作原理 4、熟悉PS2键盘工作原理及协议 任务及要求: 结合FPGA实验平台和功放电路电路共同设计一个基于FPGA的音乐发生器系统。用VHDL语言实现任意进制计数器得到不同的音节频率。通过编码形成8位数字量控制D\A使其输出正弦波。 1、设计VHDL程序使其输出音阶频率 2、配置LPMROM,输入正弦波波表 3、焊接调试D\A工作电路 4、焊接调试功率放大工作电路 5、设计并调试消抖电路,使独立按键控制输出音阶频率 6、焊接并调试PS2接口电路,使用PS2标准键盘控制输出音阶频率 设计提示: 设计VHDL程序使其输出音阶频率,配置LPMROM输入正弦波波表。通过外围按键选择不同的频率,以不同的频率调出LPMROM中正弦波波表的8位数字量,以这8位数字量控制D\A,这样就可以得到某一频率的正弦波,以此正弦波控制功放,在扬声器上发出不同频率的声音。 总体框图: FPGA软件部分: 1、分频器模块 2、LPM_ROM模块 3、按键选择模块 分频器模块: 音符?频率/HZ?半周期/us?音符?频率/HZ?半周期/us------------------------------------------低1DO??262?????1908???#4FA#???740?????0676#1DO#??277?????1805???中5SO???784?????0638低2RE??294?????1700???#5SO#???831?????0602#2RE#??311?????1608???中6LA???880?????0568低3M???330?????1516???#6LA#???932?????0536低4FA??349?????1433???中7SI???988?????0506#4FA#??370?????1350???高1DO???1046????0478低5SO??392?????1276???#DO#????1109????0451#5SO#??415?????1205???高2RE???1175????0426低6LA??440?????1136???#2RE#???1245????0402#6LA#??466?????1072???高3M????1318????0372低7SI??494?????1012???高4FA???1397????0358中1DO??523?????0956???#4FA#???1480????0338#1DO#??554?????0903???高5SO???1568????0319中2RE??578?????0842???#5S0#???1661????0292#2RE#??622?????0804???高6LA???1760????0284中3M???659?????0759???#6LA#???1865????0268中4FA??698?????0716???高7SI???1976????0253-----------------------------------------
文档评论(0)