📄 music.h~
字号:
#ifndef _MUSIC_ZHENGZUOWEI_H_
#define _MUSIC_ZHENGZUOWEI_H_
/***********************************************************
存放音乐数据的数组的元素个数
***********************************************************/
#define maxMusic1 31
#define maxMusic2 31 //音乐2为我爱北京天安门
#define maxMusic3 31
#define maxMusic4 123 //音乐4为送别
#define maxMusic5 61 // 音乐5为梁祝
#define maxMusic6 31
#define maxMusic7 31
#define maxMusic8 31
#define maxMusic9 31
#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[32] = {19, 2, 24, 2, 19, 2, 17, 2, 16, 2, 14, 2, 12, 4, 12, 2, 12, 2, 14, 2, 16, 2, 16, 2, 12, 2, 16, 2, 17, 2, 19, 8};
flash unsigned char music2[32] = {19, 2, 24, 2, 19, 2, 17, 2, 16, 2, 14, 2, 12, 4, 12, 2, 12, 2, 14, 2, 16, 2, 16, 2, 12, 2, 16, 2, 17, 2, 19, 8};
flash unsigned char music3[32] = {19, 2, 24, 2, 19, 2, 17, 2, 16, 2, 14, 2, 12, 4, 12, 2, 12, 2, 14, 2, 16, 2, 16, 2, 12, 2, 16, 2, 17, 2, 19, 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[32] = {19, 2, 24, 2, 19, 2, 17, 2, 16, 2, 14, 2, 12, 4, 12, 2, 12, 2, 14, 2, 16, 2, 16, 2, 12, 2, 16, 2, 17, 2, 19, 8};
flash unsigned char music7[32] = {19, 2, 24, 2, 19, 2, 17, 2, 16, 2, 14, 2, 12, 4, 12, 2, 12, 2, 14, 2, 16, 2, 16, 2, 12, 2, 16, 2, 17, 2, 19, 8};
flash unsigned char music8[32] = {19, 2, 24, 2, 19, 2, 17, 2, 16, 2, 14, 2, 12, 4, 12, 2, 12, 2, 14, 2, 16, 2, 16, 2, 12, 2, 16, 2, 17, 2, 19, 8};
flash unsigned char music9[32] = {19, 2, 24, 2, 19, 2, 17, 2, 16, 2, 14, 2, 12, 4, 12, 2, 12, 2, 14, 2, 16, 2, 16, 2, 12, 2, 16, 2, 17, 2, 19, 8};
flash unsigned char music10[4] = {36, 10, 17, 10};
/***********************************************************
***********************************************************/
flash unsigned char *pMusic; //指向一首音乐数据首地址的指针
unsigned char maxMusic; //被指向音乐数据的个数
unsigned int iCompaCycle; //比较匹配的次数
unsigned char 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 + -