- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
蜂鸣器音乐发生器实验报告
PAGE 1
蜂鸣器音乐发生器实验报告
实验目的
(1)学习用数控分频器设计蜂鸣器音乐发生电路。
(2)了解乐谱的基本知识,可以将乐谱转换为Quartus = 2 \* ROMAN \* MERGEFORMAT II 文件,掌握其演奏的原理。
(3)掌握设计中各模块的功能,能够填入并演奏新的曲子。
实验设备与器件
Quartus = 2 \* ROMAN \* MERGEFORMAT II 软件、EP2C8Q208C8实验箱
实验方案设计
1. 实验可实现的功能
(1)蜂鸣器可以演奏四首音乐,四首音乐通过两个拨码开关控制,可以随意更改想听的曲目。
(2)在播放音乐的同时,用一位数码管显示当前音乐的简谱,并且用两个发光二极管显示高、中、低不同的音调。
(3)在用拨码开关选择曲目的同时,可以在LCD1602液晶屏上看到当前音乐的名称。
2. 音频方案设计
蜂鸣器音乐发生器的基本原理:组成乐曲的每个音调的频率值以及音长所延续的时间是乐曲能够连续演奏的两个基本数据,所以只要控制输出到蜂鸣器的时钟信号频率的高低和持续的时间,就可以使蜂鸣器发出连续的乐曲声。
(1)音调频率值的控制
简谱中音调与音频的对应关系如表3.2.1所示,表中的低、中、高音的频率遵循二倍规则,就是说中音1是低音1频率的2倍,高音1是中音1频率的2倍,以此类推。
已知低音的频率,可以通过如下的MATLAB程序计算出中、高音的频率,并且可以得出各音调的分频值与频率预直数,其中预置数是用11位计数器来表示的。
计算中、高音及各音调分频值与频率预置数的MATLAB程序:
clc;
f %50MHz
bilv=2^(1/12); %相邻音调频率之间的比率
a(6)=440.0; %低音6的频率为440Hz
a(7)=a(6)*bilv*bilv; %低音7的频率
a(5)=a(6)/bilv/bilv; %低音5的频率
a(4)=a(5)/bilv/bilv; %低音4的频率
a(3)=a(4)/bilv; %低音3的频率
a(2)=a(3)/bilv/bilv; %低音2的频率
a(1)=a(2)/bilv/bilv; %低音1的频率
b=a*2; %中音的频率
c=b*2; %高音的频率
counter=2^11; %分频值对应的位数为11位
f=f/50/2; %50MHz,50分频,再2分频
for i=1:7
zhia(i)=counter-f/a(i); %低音的分频预置数
zhib(i)=counter-f/b(i); %中音的分频预置数
zhic(i)=counter-f/c(i); %高音的分频预置数
end
音调、分频值及频率预置数的表格如下:
表3.2.1 音符、音频及其预置数
低音
音符
1
2
3
4
5
6
7
音频/Hz
262
294
330
349
392
440
494
预置数
137
345
531
616
772
912
1036
中音
音符
1
2
3
4
5
6
7
音频/Hz
523
587
659
698
784
880
988
预置数
1092
1197
1290
1332
1410
1480
1542
高音
音符
1
2
3
4
5
6
7
音频/Hz
1047
1175
1319
1397
1568
1760
1976
预置数
1570
1622
1669
1690
1729
1764
1795
(2)音调持续时间的控制
音乐中的银除了有高低音之分外,还有长短之分。简谱中用一条横线“—”在音符的右面或者下面来标注音的长短。表3.2.2列出了常用音符及其长度标记。
表3.2.2 常用音符及其长度标记
音符名称
写法
时值
全音符
1———
四拍
二分音符
1—
二拍
四分音符
1
一拍
八分音符
1
半拍
十六分音符
1
四分之一拍
从表3.2.2可以看出横线有记在音符后面的,也有记在音符下面的,横线标记的位置不同,被标记音符的时值也不同。要使音符时值延长,在四分音符右边加横线“—”,这时的横线叫做延时线。延时线越
文档评论(0)