#include <aduc847.h>
#define uchar unsigned char
#define uint unsigned int
/*********************************
音符频率对应表
音符 频率/HZ 半周期/us PWM1L
----------------------------------
低1DO 262 1908 125
#1DO# 277 1805 118
低2RE 294 1700 111
#2RE# 311 1608 105
低3M 330 1516 99
低4FA 349 1433 94
#4FA# 370 1350 89
低5SO 392 1276 84
#5SO# 415 1205 79
低6LA 440 1136 74
#6LA# 466 1072 70
低7SI 494 1012 66
中1DO 523 956 63
#1DO# 554 903 59
中2RE 578 842 57
#2RE# 622 804 53
中3M 659 759 50
中4FA 698 716 47
#4FA# 740 676 44
中5SO 784 638 42
#5SO# 831 602 39
中6LA 880 568 37
#6LA# 932 536 35
中7SI 988 506 33
高1DO 1046 478 31
#DO# 1109 451 30
高2RE 1175 426 28
#2RE# 1245 402 26
高3M 1318 372 25
高4FA 1397 358 23
#4FA# 1480 338 22
高5SO 1568 319 21
#5S0# 1661 292 20
高6LA 1760 284 19
#6LA# 1865 268 18
高7SI 1976 253 17
----------------------------------
("#"表示半音,用于上升或下降半个音)
*********************************/
//音符与PWM1L对应数据(按照下面规定,实际上低1DO不存在)
uchar code dat[]= {125,118,111,105,99,94,89,84,79,74,70,66,63,59,57,53,50,47,44,42,39,37,35,33,31,30,28,26,25,23,22,21,20,19,18,17};
//音符对应编号(0代表前一个音符为附点音符,0xff表示结束),每行与乐谱对应
uchar code dat2[]={9,12,14,16,17,16,14,11,7,0,9,11,12,9,9,0,8,9,11,8,
4,9,12,14,16,0,17,16,14,11,19,0,9,11,12,0,11,9,8,6,7,
9,9,9,19,19,18,16,14,11,7,0,9,11,12,9,9,0,7,9,
11,8,4,19,19,0,6,16,14,11,7,0,9,11,12,0,11,9,
8,0,6,7,9,9,0xff};
//音符对应八分之一节拍数,每个与编号相对应
uchar code dat3[]={2, 4, 2, 2, 1, 2, 4, 2,2,2,2, 2, 4,2,2,2,1,2, 4,2,
4,2, 4, 2, 2,2, 1, 2, 4, 2, 2,2,1, 2, 2,2, 1,2,2,1,2,
4,2,6, 6, 2, 1, 2, 4, 2,2,2,1, 2, 4,2,2,2,1,2,
4,2,6, 6, 2,2,1, 2, 4, 2,2,2,1, 2, 2,2, 1,2,
2,2,1,2,6,6};
//延时八分之一拍
void delay_beat()
{
uchar a=255,b=60;
while(--a)
while(--b);
}
//产生相应的音符并延时
void sound(uchar s)
{
uchar i;
if(dat2[s]==0)
{
delay_beat();
}
else
{
if(s==0 || dat[dat2[s-1]]!=dat[dat2[s]])
{
PWMCON=0x21;
PWM1L=dat[dat2[s]];
PWM0H=dat[dat2[s]]/15;
PWM1H=0;
}
for(i=0;i<dat3[s];i++)
delay_beat();
}
}
//播放整个音乐后停止
void main()
{
uchar i=0;
while(dat2[i]!=0xff)
{
sound(i);
i++;
}
PWMCON=0x00;
while(1);
}
PWM.rar_aduc848
版权申诉
59 浏览量
2022-09-23
11:40:41
上传
评论
收藏 4KB RAR 举报
小贝德罗
- 粉丝: 69
- 资源: 1万+
最新资源
- 5uonly.apk
- 2023-04-06-项目笔记 - 第一百十九阶段 - 4.4.2.117全局变量的作用域-117 -2024.04.30
- 2023-04-06-项目笔记 - 第一百十九阶段 - 4.4.2.117全局变量的作用域-117 -2024.04.30
- 前端开发技术实验报告:内含4四实验&实验报告
- Highlight Plus v20.0.1
- 林周瑜-论文.docx
- 基于MIC+NE555光敏电阻的声光控电路Multisim仿真原理图
- 基于JSP毕业设计-基于WEB操作系统课程教学网站的设计与实现(源代码+论文).zip
- 基于LM324和LM386的音响放大器Multisim仿真+PCB电路原理图
- Python机器学习与数据挖掘环境配置与库验证
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈