- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《友谊地久天长》乐曲演奏电路设计
《友谊地久天长》乐曲演奏电路设计
实验任务
音高与频率的对应关系见表1-1。
表1-1 音高频率对照表
1 2 3 4 5 6 7 低音 262Hz 294Hz 330Hz 349Hz 392Hz 440Hz 494Hz 中音 532Hz 578Hz 659Hz 698Hz 784Hz 880Hz 988Hz 高音 1046Hz 1175Hz 1318Hz 1397Hz 1568Hz 1760Hz 1976Hz 《友谊地久天长》乐谱见图1-1。
友谊地久天长
图1-1 《友谊地久天长》乐谱
注:N 一拍;N 两拍;N· 四拍;N· 八拍;N为音谱。
此程序使用4MHz时钟,时钟不同则需要修改常数。
总体框图如图1-2所示。
图1-2 总体框图
模块及模块功能
模块TONE见图1-2。该模块控制每一个音的长短,送初值给SPEAK模块,从而控制音高。
//**************************************************************//
// 《友谊地久天长》乐曲 //
// 时钟:4MHz //
//**************************************************************//
//音高与频率的对应关系
//---------------------------------------------------------------
//| | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
//|低音 | 262Hz | 294Hz | 330Hz | 349Hz | 392Hz | 440Hz | 494Hz |
//|中音 | 523Hz | 578Hz | 659Hz | 698Hz | 784Hz | 880Hz | 988Hz |
//|高音 |1046Hz |1175Hz |1318Hz |1397Hz |1568Hz |1760Hz |1976Hz |
//---------------------------------------------------------------
//如果时钟不同则需改参数
module tone(clock,q);
//I/O口声明
input clock;
output[13:0]q;
//I/O口寄存器
reg[13:0] q_r;
//内部寄存器
reg[20:0] cnt1; //375ms计数器(一个节拍)
reg[3:0]cnt2; //节拍计数器
reg[5:0] n; //乐谱状态机 M_1 = 4000000/523 = 7648
parameter L_5 = 14d10204, //低音5
L_6 = 14d9090, //低音6
M_1 = 14d7648, //中音1
M_2 = 14d6920, //中音2
M_3 = 14d6069, //中音3
M_5 = 14d5102, //中音5
M_6 = 14d4545, //中音6
H_1 = 14d3824; //高音1
parameter TIME = 1500000; //控制每一个音(节拍)的长短(375ms)
assign q = q_r;
always @(posedge clock)
begin
if(cnt1 TIME) //控制每一个音(节拍)的长短(375ms)
cnt1 = cnt1 + 21d1;
else
begin
cnt1 = 21d0;
case(n)
6d0:
begin
q_r = L_5; //此值为低音5的计数初值,送给SPEAK模块
if(cnt2 4d1)//两个节拍
cnt2 = cnt2 + 4d1;
else
begin
cnt2 = 4d0;
n = 6d1;
end
end 6d1:
begin
q_r = M_1;
if(cnt2 4d6)
cnt2 = cnt2 + 4d1;
else
begin
cnt2 = 4d0;
n = 6d2;
end
end
6d2:
begin
q_r = M_3;
if(cnt2
您可能关注的文档
- “邓小平理论概论”自考第二章复习题.doc
- “阳光下成长”美术活动方案.doc
- “青春践行中国梦”团会策划书.doc
- 《2316+教育学》整理笔记.doc
- 《C语言程序设计》实训报告.doc
- 《Do_Re_Mi》教学设计.doc
- 《EXCEL人力资源与行政管理》授课计划.doc
- 《Excel图表制作》教案.doc
- 《一个人的遭遇》教案.doc
- 《三角形特性》教学设计.doc
- 2025年网络文学平台版权运营模式创新与版权保护体系构建.docx
- 数字藏品市场运营策略洞察:2025年市场风险与应对策略分析.docx
- 全球新能源汽车产业政策法规与市场前景白皮书.docx
- 工业互联网平台安全标准制定:安全防护与合规性监管策略.docx
- 剧本杀剧本创作审核标准2025年优化与行业自律.docx
- 2025年新能源电动巡逻车在城市安防中的应用对城市环境的影响分析.docx
- 全渠道零售案例精选:2025年行业创新实践报告.docx
- 2025年网约车司乘纠纷处理机制优化与行业可持续发展报告.docx
- 2025年宠物烘焙食品市场法规政策解读:合规经营与风险规避.docx
- 2025年宠物行业数据安全监管政策影响分析报告.docx
文档评论(0)