代码里面只存了两首歌曲的信息,每首歌曲的信息包括音符音名的集合和对应的时值的集合。
/*************************************************************音乐播放器:按键 0 - 9 对应最多10首乐曲,当一首乐曲播放完毕后,响应按键的动作去播放相应的音乐,另外,右、下这两个按键对应着下一首,左上这两个按键对应着上一首。作者:宁静致远
*************************************************************/
#include <reg52.h>
#include <string.h>
#define RldTmr(fr) 65536 - (11059200 / 12) / ((fr) << 1)
#define FuDian(n) ((n) << 1) / 3 //附点n分音符的换算typedef unsigned char uchar;
typedef unsigned int uint;
typedef unsigned long ulong;
typedef struct music {char * pNote;char * pDur;
} Music;sbit BUZZ = P1^6;sbit KEY_OUT_3 = P2^0;
sbit KEY_OUT_2 = P2^1;
sbit KEY_OUT_1 = P2^2;
sbit KEY_OUT_0 = P2^3;
sbit KEY_IN_0 = P2^4;
sbit KEY_IN_1 = P2^5;
sbit KEY_IN_2 = P2^6;
sbit KEY_IN_3 = P2^7;uint code noteFreq[] =