#include
#include
#define uhar unsigned char
#define uint unsigned int
sbit key1=P3^2;//定义按key1可切换花样
sbit key2=P3^3;//定义按key2可切换歌曲
sbit fm=P3^5;//蜂鸣器连续的IO口,接蜂鸣器的管脚
sbit rs=P2^0;
sbit rw=P2^1;
sbit ep=P2^2;
uchar i;
uchar Tong_index=0;//音乐片段索引音符索引
uchar song_index=0;
uchar *discode;//暂存LCD需要显示的歌名
uchar *song_Tone,*song_Time;
uchar code dis1[]={"song1"};//第一首歌名,dis1~dis4位LCD第一行要显示的歌名;
uchar code dis2[]={"song2"};
uchar code dis3[]={"song3"};
uchar code dis4[]={"song4"};
uchar code dis[]={"K1:Down K2:Up"}; //第二行显示的内容
uint code Tong_tab[]={62018,62401,62491,62895,63184,63441,63506,63773,
63965,64137,64215,64360,64488,64603,64654,64751,64836,64876,64948,65012,65067,65535};
//---------------------------简谱---------------------------------------
//编程规则:字节高位是简谱,低位是持续时间,代表多少个十六分音符。
//1-7代表中央C调,8-E代表高八度,0代表停顿
//最后的0是结束标志
//uchar code song1_Tone[]={ // 歌曲1的演奏音符
//11,9,11,14,12,14,12,11,11,7,8,9,8,7,8,
//11,9,11,14,13,12,14,11,11,7,8,9,6,7,
//12,14,14,13,12,13,14,12,13,14,12,12,11,10,7,8,
//11,9,11,14,13,12,14,11,11,8,9,10,6,7,0xff};//结束标志
//uchar code song1_Time[]={ // 歌曲1的节拍频率
//4,2,2,8,4,2,2,8,4,2,2,4,2,2,12,
//4,2,2,4,2,4,4,8,4,2,2,4,2,12,
//4,4,8,4,2,2