- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数字电路自由创作三
数电实验报告 题 目 基于FPGA的八音符电子琴电路设计 时 间 2011年6月25日 实验任务与原理 一、实现功能 基于FPGA开发办设计一个八音符电子琴,由键盘输入控制音响或自动演奏。用户可以将自己编制的乐曲存入电子琴,演奏时可以选择键盘输入乐曲或者自动演奏已存入的乐曲。 二、原理阐述 1、系统设计方案: 采用VHDL语言编程来实现电子琴的各项功能。系统主要由电子琴发声模块、选择控制模块和储存器模块组成。 八音符电子琴设计总体框图 该系统由三个模块:Songer、Div和SEG7(7段译码器)组成。 (1) Songer模块:此模块包括3个小模块,分别是NoteTabs模块,ToneTab模块和Speakera模块。此外,还需建立一个名为“music”的LPM_ROM模块与NoteTabs模块连接。 (2) NoteTabs模块:该模块的功能就是定义音符数据ROM“music”随着该模块中的计数器控制时钟频率速率作加法计数时,即地址值递增时,音符数据ROM中的音符数据。将从ROM中通过ToneIndex[3..0]端口输向ToneTaba模块,演奏《采茶舞曲》。 (3) ToneTaba模块:是乐曲简谱码对应的分频预置数查找表电路,其中设置了乐曲的全部音符所对应的分频置数,每一音符的停留时间由音乐节拍和音调发生器模块NoteTabs的CLK的输入频率决定,这些值由对应于ToneTaba的4位输入值Index[3..0]确定,最多有16种可选值。输向ToneTaba中Index[3..0]的值ToneIndex[3..0]的输出值与持续的时间由模块NoteTabs决定。 (4) Speakera模块:是一个数控分频器,音符的频率可由此模块获得。由CLK端输入一具有较高频率的信号,通过Speakera分频后由SPKOUT输出。由于直接从数控分频器中出来的输出信号是脉宽极窄的脉冲式信号。为了利用驱动扬声器,需加一个D触发器以均衡其占空比,频率将是原来的1/2。Speakera对CLK输入信号的分频比由预置数Tone决定。SPKOUT的输出频率将决定每一音符的音调。 (5) Div模块:由于所使用的硬件设备不能满足设计所需要的两个CLK输出 的频率,所以使用一个分频器来实现把一个50MHz的晶体振荡频率分成一个12MHz,一个8Hz两个分频率,再把两个频率分别给所需的两个模块。 (6)EG7模块:SEG7 模块是一个七段译码器,作用是在硬件上显示音频的高 低,用0到7分别对应空节拍do、ri、mi、fa、suo、la、xi,高音时, LED灯亮,数码管显示对应数字。 2、发音原理: (1) 乐曲演奏的原理 组成乐曲的每个音符的频率值(音调)及其持续时间(音长)是乐曲能连续演奏所需的两个基本数据,因此只要控制输出到扬声器的激励信号的频率的高低和持续时间,就可以使扬声器发出连续的乐曲声。 (2)音调的控制: 频率的高低决定了音调的高低。 (4)基准频率f0的选取 所有不同频率的信号都是从同一个基准频率f0分频而得到的。由于音节频率多为非整数,而分频系数又不能为小数,因此必须将计算所得的分频数四舍五入取整。若基准频率过高,则分频比太小,取整后误差较大。若基准频率过高,虽然误差减小,但分频数变大。综合这两方面因素,在尽量减小频率误差的前提下取合适的基准频率,在此取f0=12MHz。 (5)分频系数,二进制计数器计数的容量N和预置数的选取 分频系数A=f0/音名频率 分频系数n=f0/音名频率/2 N〉=MAX{分频系数n} 由表1可得最大分频系数为1274,因此N=2048为2的11次方。因此二进制计数器设为11位二进制加法计数器,其计数容量为2048,计数的最大值为2047。 预置数=N-分频系数n 表1为各音阶的频率、对应的分频系数及预置数: (6)音长的控制: 音符的持续时间须根据乐曲的速度及每个音符的节拍数来确定的。《采茶舞曲》中最短的音符为四分音符,如果全音符的持续时间为1s,则四分音符的持续时间为0.25s,二分音符持续的时间为0.5s等等,只需再提供一个4Hz的时钟频率。每来一个脉冲计一次数,每一计数值的停留时间为0.25s,即要输入一个全音符时需要计四次数才行,则应在Rom表格中输出相应音符四次,表示一个全音符的持续时间。 第二章 FPGA模块程序设计与仿真 1、Songer模块 Songer模块由三个模块组成:NoteTabs模块,ToneTaba模块和Speakera模块。 Notetabs模块类似于
您可能关注的文档
最近下载
- 水泥厂余热锅炉调试报告.pdf VIP
- 2024-2025年中国铁氧体软磁材料行业市场调查研究及投资前景预测报告.docx
- 2025秋统编版(2024)小学道德与法治三年级上册(全册)课时练习及答案(附目录).docx
- 我眼中的中国平安.docx VIP
- 公路工程沥青新旧试验规程差异对比解读-JTG 3410-2025.pdf VIP
- 《气体传感器简介》课件.pptx VIP
- 自治区矿产资源开发利用与生态保护修复方案编制提纲(试行).doc VIP
- 粘贴钢板加固施工方案.docx VIP
- 碳排放权交易有关会计处理暂行规定(2025).docx VIP
- Fisher阀门结构与维护.ppt VIP
文档评论(0)