⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 music.h

📁 使用AVR单片机实现的万年历功能,其中使用了ds1302和1602
💻 H
字号:
#ifndef _MUSIC_ZHENGZUOWEI_H_
#define _MUSIC_ZHENGZUOWEI_H_
/***********************************************************
存放音乐数据的数组的元素个数
***********************************************************/
#define maxMusic1 273	//音乐1为阳光总在风雨后
#define maxMusic2 223	//音乐2为同一首歌
#define maxMusic3 137   //音乐3为茉莉花
#define maxMusic4 123    //音乐4为送别
#define maxMusic5 61     //  音乐5为梁祝
#define maxMusic6 195    //音乐6为九百九十九朵玫瑰
#define maxMusic7 191    //音乐7为月亮代表我的心
#define maxMusic8 249    //音乐8为敢问路在何方
#define maxMusic9 301    //音乐9为下一站天后
#define maxMusic10 3     //音乐10用于整点报时
/************************************************************
数组dataofOCR1A用于存放各个音符对应的OCR1A的值
最后一个为空音符标志
************************************************************/
flash unsigned int dataOfOCR1A[37] = 
{
	954, 903, 853, 804, 760, 716, 676, 638, 602, 568, 536, 506, 
	478, 452, 426, 402, 379, 358, 338, 319, 301, 284, 268, 253, 
	239, 226, 213, 201, 190, 179, 169, 160, 150, 142, 134, 127, 2500
};
/************************************************************
数组用于存放每个音符100ms需要比较匹配的次数
最后一个为空音符数据
************************************************************/
flash unsigned int counter[37] = 
{
	52, 55, 59, 62, 66, 70, 74, 78, 83, 88, 93, 99,
	105, 111, 117, 124, 132, 139, 148, 157, 166, 176, 186, 197,
	209, 221, 234, 248, 263, 279, 295, 313, 332, 351, 372, 394, 20
};
/***********************************************************
用于存放音乐数据的数组
***********************************************************/

flash unsigned char music1[274] = {
16, 2, 17, 2, 19, 4, 19, 4, 19, 4, 12, 4, 14, 2, 12, 4, 16, 8, 14, 2,
12, 4, 12, 4,  9, 4, 12, 2,  9, 4,  7, 6, 36, 2, 16, 2, 17, 2,
19, 4, 19, 4, 19, 4, 12, 4, 14, 2, 12, 4, 16, 8, 14, 2, 
12, 4, 12, 1,  9, 1,  9, 1, 12, 4, 14,14, 16, 2, 14, 2,
12, 4, 12, 2, 14, 2, 12, 2,  9, 2,  9, 2,  7, 2,
 7, 1, 16, 4, 16, 5, 36, 2, 16, 2, 16, 2, 14, 2, 12, 2,  9, 2, 12, 2, 21, 4, 19, 18,
36, 16,
19, 4, 19, 2, 16, 2, 16, 4, 19, 4, 21, 2, 16, 2, 16, 2, 19, 10,
12, 4, 12, 2, 14, 2, 14, 2, 16, 4, 19,18, 21, 6, 21, 2, 19, 2, 16, 2, 16, 4,
19, 2, 21, 4, 12, 8, 16, 2, 14, 2, 16, 2, 14, 2, 12, 2, 12, 4,  9, 2, 12, 4, 14, 14,
19, 4, 19, 2, 16, 2, 16, 4, 19, 4, 21, 2, 16, 2, 16, 2, 19, 10,
12, 4, 24, 2, 23, 2, 21, 4, 16, 4, 19,20, 21, 6, 21, 2, 19, 2, 16, 2, 16, 4,
19, 2, 21, 4, 12, 8, 16, 2, 
14, 2, 16, 2, 14, 2, 12, 2, 12, 4,  9, 2, 14, 2, 12, 2, 12, 14,
21, 6, 21, 2, 19, 2, 16, 2, 16, 4, 19, 2, 21, 2, 16, 8, 16, 2,
14, 2, 16, 2, 19, 2, 21, 2, 16, 2, 12, 4,  9, 4, 12, 12
};
flash unsigned char music2[224] = {
 7, 8, 12, 4, 14, 4, 16, 6, 17, 2, 16, 4, 12, 4, 14, 8, 12, 4,  9, 4, 12, 16,
 7, 8, 12, 4, 14, 4, 16, 4, 16, 2, 17, 2, 19, 4, 12, 4, 17, 6, 16, 2, 19,  4, 14, 2, 16, 2, 16, 2, 14, 14,
16, 8, 19, 4, 23, 4, 23, 6, 21, 2, 21, 8, 19, 4, 19, 2, 21, 2, 23, 4, 21,  2, 19, 2, 16, 16,
17, 6, 17, 2, 19, 4, 21, 4, 19, 4, 17, 2, 16, 2, 14, 8, 11, 4, 11, 2,  9,  2,  7, 4,  9, 4, 12, 16,
24, 8, 21, 8, 17, 6, 19, 2, 21, 8, 23, 4, 23, 2, 23, 2, 23, 4, 21, 2, 19,  2, 16, 16,
24, 8, 21, 8, 17, 6, 19, 2, 21, 8, 21, 4, 21, 2, 21, 2, 21, 4, 17, 2, 16,  2, 14, 16,
 7, 8, 12, 4, 14, 4, 16, 6, 17, 2, 16, 4, 12, 2, 12, 2, 14, 6, 14, 2, 14,  4, 14, 2, 12, 2, 9, 4, 9, 12,
11, 8, 11, 6,  9, 2,  7, 4, 21, 4, 19, 4, 14, 2, 14, 2, 17, 6, 17, 2, 17,  4, 16, 2, 14, 2, 19, 16, 
21, 16, 24, 11, 36,1, 24, 4, 36, 1, 24, 36
};

flash unsigned char music3[138] = {
16, 2, 14, 2, 16, 2, 19, 2, 21, 2, 19, 2, 24, 2, 21, 2, 19, 2, 16, 2, 19, 8, 21, 4,
24, 2, 26, 2, 28, 4, 26, 2, 24, 2, 21, 2, 24, 2, 19, 16,
19, 2, 16, 2, 19, 8, 21, 4, 24, 4, 26, 2, 28, 2, 24, 2, 21, 2, 19, 4,
19, 4, 14, 4, 16, 2, 19, 2, 16, 2, 14, 2, 12, 2,  9, 2, 12, 8,
16, 2, 14, 2, 12, 4, 14, 6, 16, 2, 19, 4, 21, 2, 24, 4, 21, 4, 19, 4, 19, 2, 16, 2, 14, 4,
16, 2, 19, 2, 16, 2, 14, 2, 12, 2, 14, 2,  9, 8, 12, 4, 14, 6, 16, 2, 12, 2, 14, 2,
12, 2,  9, 2, 12, 2,  9, 2,  7, 8
};
	
flash unsigned char music4[124] = {
19, 4, 16, 2, 19, 2, 24, 8, 21, 4, 24, 4, 19, 8,
19, 4, 12, 2, 14, 2, 16, 4, 14, 2, 12, 2, 14, 8, 36, 8,
19, 4, 16, 2, 19, 2, 24, 6, 23, 2, 21, 4, 24, 4, 19, 8,
19, 4, 14, 2, 16, 2, 17, 6, 11, 2, 12, 8, 36, 8,
21, 4, 24, 4, 24, 8, 23, 4, 21, 2, 23, 2, 24, 8,
21, 2, 23, 2, 24, 2, 21, 2, 21, 2, 19, 2, 16, 2, 12, 2, 14, 8, 36, 8,
19, 4, 16, 2, 19, 2, 24, 6, 23, 2, 21, 4, 24, 4, 19, 8,
19, 4, 14, 2, 16, 2, 17, 6, 11, 2, 12, 8, 36, 8
};

flash unsigned char music5[62] = 
{
4, 8, 7, 6, 9, 2, 12, 6, 14, 2, 9, 2, 12, 2, 7, 4,
19, 6, 24, 2, 21, 3, 19, 1, 16, 2, 19, 2, 14, 8,

14, 8, 14, 6, 16, 2, 11, 4, 9, 4, 7, 6, 9, 2, 12, 4, 14, 4,
4, 4, 12, 4, 9, 3, 7, 1, 9, 2, 12, 2, 7, 16
};
flash unsigned char music6[196] = {
24, 4, 23, 4, 19, 4, 21, 12, 36, 4, 16, 2, 14, 2, 12, 4, 14, 4, 19, 4, 16, 20,
16, 8, 19, 4, 16, 2, 14, 14, 19, 2, 21, 2, 19, 4, 21, 4, 23, 2, 19, 4, 16, 18,
24, 4, 23, 4, 19, 4, 21, 12, 36, 4, 16, 2, 14, 2, 12, 4, 14, 4, 19, 4, 16, 16,
12, 2, 14, 2, 16, 4, 16, 2, 19, 6, 16, 4, 14, 12, 16, 6, 19, 4, 21, 24, 36, 12,
21, 4, 21, 4, 24, 4, 26, 4, 28, 4, 28, 4, 24, 4, 36, 4, 21, 4, 21, 4,  23, 4,
21, 4, 23, 2, 21, 2, 19, 2, 16, 6, 36, 4,
21, 4, 21, 4, 24, 4, 26, 4, 28, 4, 28, 4, 24, 4, 36, 4, 21, 4, 21, 4,  23, 4,
21, 4, 23, 2, 21, 2, 19, 2, 16, 6,
36, 4, 26, 2, 26, 2, 26, 4, 26, 4, 23, 4, 21, 4, 19, 2, 16, 6,
36, 4, 26, 2, 26, 2, 26, 4, 26, 4, 23, 4, 21, 4, 19, 2, 16, 6,
21, 4, 36, 2, 21, 26
};  

flash unsigned char music7[192] = {
 7, 2, 12, 6, 16, 2, 19, 6, 12, 2, 11, 6, 16, 2, 19, 4, 36, 2,
19, 2, 21, 2, 23, 4, 24, 6, 21, 2, 21, 2, 19, 14,
16, 2, 14, 2, 12, 6, 12, 2, 12, 4, 16, 2, 14,  2, 12, 6, 12, 2, 12, 4,
14, 2, 16, 2, 14, 6,  9, 2, 11, 4, 12, 2, 14,  2, 12, 12,
16, 2, 19, 2, 16, 6, 14, 2, 12, 4, 19, 4, 11, 12,
 9, 2, 11, 2,  9, 6, 11, 2,  9, 6,  7, 4, 16, 12,
19, 4, 16, 6, 14, 2, 12, 4, 19, 4, 11, 12,
 9, 2, 11, 2, 12, 6, 12, 2, 12, 4, 14,  2, 16, 2, 14, 12, 36, 2,
 7, 2, 12, 6, 16, 2, 19, 6, 12, 2, 11, 6, 16, 2, 19, 6, 
19, 2, 21, 6, 23, 2, 24, 6, 21, 2, 21, 2, 19, 10,
16, 2, 14, 2, 12, 6, 12, 2, 12, 4, 16, 2, 14,  2, 12, 6, 12, 2, 12, 4,
14, 2, 16, 2, 14, 6,  9, 2, 11, 4, 12, 2, 14,  2, 12, 12
};

flash unsigned char music8[250] = {
 9, 2, 12, 4,  9, 2, 16, 6, 14, 2, 14, 2, 16, 1, 14, 1, 12, 12,
11, 2,  9, 4, 11, 2, 14, 6, 16, 2,  9, 16,
16, 8, 21, 6, 16, 2, 21, 4, 19, 2, 17,  2, 16, 8,
12, 6, 14, 2, 16, 2, 14, 1, 16, 1, 17, 2, 16, 2, 14, 16,
 9, 4, 16, 4, 16, 4,  9, 4, 12, 12, 16, 4, 
14, 2, 11, 4, 16, 2, 14, 2,  9, 2, 12, 2, 14, 2, 16, 16,
16, 8, 21, 6, 16, 2, 21, 4, 19, 2, 17,  2, 16, 8,
19, 2, 14, 4, 17, 2, 16, 2, 14, 2, 12, 4, 14, 16,
14, 2, 11, 4, 16, 2, 11, 2,  9, 2,  7, 4,  9, 12,
16, 4, 19, 12, 16, 2, 19, 2, 21, 6, 24, 2, 23, 2, 21, 2, 19, 4, 21, 16,
24, 8, 23, 6, 21, 2, 19, 2, 21, 2, 19, 8, 19, 2, 21, 2, 16, 16,
24, 8, 23, 6, 21, 2, 19, 2, 21, 2, 19, 8, 19, 2, 21, 2, 16, 16,
 7, 2,  9, 4, 12, 2, 16, 6, 12, 2, 14, 2, 16, 2, 14, 12,
14, 2, 11, 4, 14, 2, 11, 2,  9, 2,  7, 4,  9, 16,
 7, 2,  9, 4, 12, 2, 16, 6, 12, 2, 14, 2, 16, 2, 14, 12,
 16, 4, 19, 8, 16, 4, 23, 6, 24, 2, 23, 2, 21, 2, 19, 4, 21, 32
};
flash unsigned char music9[302] = {
16, 4, 16, 4, 16, 4, 19, 4, 14, 8, 14, 4, 19, 4,
12, 4, 12, 4, 12, 4, 16, 4,  9, 8, 36, 8,
17, 4, 16, 4, 17, 4, 21, 4, 16, 8, 16, 4, 19, 4,
14, 8, 12, 4,  9, 4, 12, 4, 14, 12,
16, 4, 14, 4, 16, 4, 19, 4, 19, 4, 14, 4, 36, 4, 16, 4,
24, 8, 24, 4, 19, 4, 19, 4, 21, 12,
17, 4, 16, 4, 17, 4, 21, 4,  9, 4, 12, 2, 16, 10,
14, 4, 12, 12, 36, 8, 16, 4, 19, 2, 24, 2,
24, 4, 23, 4, 21, 4, 19, 4, 19, 8, 16, 4, 17, 2, 19, 2,
21, 4, 17, 4, 17, 4, 16, 4, 14, 8, 14, 4, 12, 2, 14, 4,
16, 4, 19, 2, 19, 2, 36, 4, 16, 4, 21, 4, 16, 4, 14, 4, 12, 4,
14, 8, 36, 4,  9, 2, 12, 2, 16, 4, 14, 4, 14, 4, 16, 4,
19,24, 24, 2, 23, 2, 21, 2, 23, 2,
21, 4, 19, 4, 19, 4, 12, 4, 16, 4, 19, 4, 19, 8,
21, 4, 21, 2, 21, 2, 17, 4, 16, 4, 14, 8, 16, 4, 16, 2, 24, 2,
19, 8, 16, 4, 16, 2, 19, 2, 12, 8, 36, 4, 16, 2, 16, 2, 
14, 4, 14, 2, 14, 2, 21, 4, 16, 4, 19, 8, 24, 2, 23, 2, 21, 2, 23, 2,
23, 4, 19, 4, 19, 4, 12, 4, 16, 4, 19, 4, 19, 8,
21, 4, 21, 2, 21, 2, 21, 4, 24, 4, 23, 8, 21, 4, 23, 4, 
24, 4, 19, 4, 19, 4, 16, 4, 19, 4, 21, 8, 19, 4,
19, 4, 17, 4,  9, 4, 11, 4, 11, 2, 12, 38
};
flash unsigned char music10[4] = {36, 10, 17, 10};
/***********************************************************
***********************************************************/
flash unsigned char *pMusic;                    //指向一首音乐数据首地址的指针
unsigned int maxMusic;                         //被指向音乐数据的个数
unsigned int iCompaCycle;                      //比较匹配的次数
unsigned int iMusicCycle;                      //循环变量,用于取音乐数据
unsigned char playCycle;                        //音乐播放次数

void MusicInit(void);   //音乐播放初始化函数

void PlayMusic(unsigned char musicChoose, unsigned char counterChoose);

void PlayMusic1(unsigned char counter1);
void PlayMusic2(unsigned char counter2);
void PlayMusic3(unsigned char counter3);
void PlayMusic4(unsigned char counter4);
void PlayMusic5(unsigned char counter5);
void PlayMusic6(unsigned char counter6);
void PlayMusic7(unsigned char counter7);
void PlayMusic8(unsigned char counter8);
void PlayMusic9(unsigned char counter9);
void PlayMusic10(unsigned char counter10);

#endif
/************************************************************
播放音乐使能TIME1之前必须完成以下工作
初始化*pMusic指针,使其指向某一首音乐
初始化maxMusic,使其等于*pMusic指针指向的音乐的数据的个数
初始化音乐播放的次数playCycle
初始化OCR1A,使其对应于第一个音符
初始化第一个音符比较匹配的次数iCompaCycle
初时话iMusicCycle为1
************************************************************/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -