- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单片机实验:音乐改编
实验1:将歌曲播放程序《两只老虎》改变为另一首歌曲
(如《Happy new year to you》)
一、编程指导:产生任意音频f
/**************************************************************
音频播放:单片机用一根IO口线,向喇叭送出各种音符的频率-交替变化
的高、低电平,即可让喇叭获得音频方波-播放音乐。
欲产生某音符的频率f,只需在f的半周期C对IO口线取反一次即可!
如,喇叭接在I/O口线P3.7上:
sbit sound=P3^7;//位定义:将sound为P3.7
sound=!sound; //将P3.7引脚输出电平取反,形成方波一个“沿”
【定时常数C】即定时器的“纯”定时时间=计数次数*机器周期【12*(1/CLK)】
定时常数C计算:【定时常数C=音符频率f的半周期C=(1/2f)s=(1000000/2f)us】
以定时/计数器的输入脉冲(机器周期)为单位时:【C=(1000000/2f)us/机器周期us】
【机器周期=12个主频时钟周期】单片机晶振主频时钟常为11.0592MHZ
【机器周期=12*(1/11.0592)us=1.085us】
以机器周期为单位的定时常数C=(1000000/2f)us/1.085us=460830/f,即:
产生任意频率定时常数C计算公式:
【定时常数C=460830/f】f为某音符频率
【定时初值N计算】定时初值写入定时计数器,即会产生期望的定时常数C,即定时宽度或输出频率f。
【定时初值N=模M - 定时常数C】模M=最大计数值=2^位数,即2的二进制位数次方
例:
【若T0为工作方式0,13位计数,其模=最大计数值=2^13=8192】
【方式0,13位计数 定时初值计算式】 【N=8192-C】
【定时初值N设置编程】
TL0=(8192-C)%32;//TL0每计数32次向TH0进位1次【13位计数器的低5位=TL0的低5位,TL0高3位未用】
TH0=(8192-C)/32;//TH0右移5位(2^5=32)【13位计数器的高8位】
***************************************************************/
二、如下为歌曲《两只老虎》的不完整C语言程序,请补充完整。
//1、将头文件改为reg51.h 【文件包含】
#includeat89x51.h //包含头文件:51单片机寄存器定义
//2、将驱动喇叭的I/O口改为P1.0 【数据定义】
sbit sound=P3^7; //位定义:将sound定义为P3.7【驱动喇叭】
unsigned int C; //变量定义:储存定时器的定时常数
//3、C调的简谱-频率表:【低音L,中音Z,高音H】
//简谱 频率 说明
#define L1 262 // L1=低音1=262Hz【周期=1/262=3826us,取半周期】
L2 286 // L2=低音2=286Hz
L3 311 // L3=低音3=311Hz
L4 349 // L4=低音4=349Hz
L5 392 // L5=低音5=392Hz
L6 440 // L6=低音6=440Hz
L7 494 // L7=低音7=494Hz
Z1 523 // Z1=中音1=523Hz//C调中音宏定义
Z2 587 // Z2=中音2=587Hz
Z3 659 // Z3=中音3=659Hz
Z4 698 // Z4=中音4=698Hz
Z5 784 // Z5=中音5=784Hz
Z6 880 // Z6=中音6=880Hz
Z7 987 // Z7=中音7=523H
H1 1046 // H1=高音1=1046Hz//C调高音宏定义
H2 1174 // H2=高音2=1174Hz
H3 1318 // H3=高音3=1318Hz
H4 1396 // H4=高音4=1396Hz
H5 1567 // H5=高音5=1567Hz
H6 1760 // H6=高音6=1760Hz
H7 1975 // H7=高音7=1975Hz
//用宏替换,将各频率替换为音符名称,如:
#define L1 262 // L1=低音1=262Hz【周期=1/262=3826us,取半周期】
//4、改错 【子函数】
/*******
您可能关注的文档
最近下载
- 最新子宫颈高级别上皮内病变管理的中国专家共识2022(完整版).pdf VIP
- 2025年建筑工程副高面试题及答案.docx VIP
- 2023年嘉兴学院计算机科学与技术专业《计算机网络》科目期末试卷B(有答案).docx VIP
- 四川省德阳市2023-2024学年高一下学期教学质量监测 化学试卷含答案.docx VIP
- 流量积算仪瞬时流量不确定度评定与流量理论值的误差分析.pdf
- CASS编码、图层、图块名称、属性对照表.pdf VIP
- 2023年浙江万里学院计算机科学与技术专业《计算机网络》科目期末试卷A(有答案).docx VIP
- 《中国药典》2020年版 二部 注射用水.pdf VIP
- 沈阳建筑大学《计算机网络》2025 学年第二学期期末试卷.pdf VIP
- 2022年嘉兴学院计算机科学与技术专业《计算机网络》科目期末试卷B(有答案).docx VIP
原创力文档


文档评论(0)