#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit fm=P3^4;
sbit key1=P3^3;
sbit huayang=P3^2;
sbit lcdrw=P2^6;
sbit lcdrs=P2^5;
sbit lcden=P2^7;
uchar count1;//歌曲标志
uchar count2;
uchar jp;
uint i,t,y=1;
uchar time1h;
uchar time1l;
uchar num;
uint temp;
uchar code yinyue[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf};
uchar code table0[]="COME TO MUSICBOX";
uchar code table1[]="The East Is Red";
uchar code table2[]="Golden BeiJing";
uchar code table3[]="Lonely Sandbank";
uchar code table4[]="Forever Love";
uchar code table5[]="Enjoy LED Style";
uchar code table6[]="Stop Play Music";
uchar code bjdjss[]={0X92,0XB2,0XC2,0XD2,0X92,0XB2,0XC2,0XC2,0X62,
0X82,0X92,0XB2,0XC4,0XC1,0XB1,0XB1,0X91,0X9F,0X94,
0X92,0XB2,0XD4,0XD2,0XC2,0XB4,0XC2,0XD2,0XC4,
0XC1,0XB1,0XB1,0X91,0X9C,0XB4,0XD4,0XC2,0XB1,
0X91,0XB4,0XC2,0XD2,0X92,0X92,0XB2,0XC2,0X94,
0X91,0X81,0X81,0X61,0X6F,0X92,0X92,0X82,0X62,
0X92,0X92,0X82,0X62,0X92,0X91,0X91,0XB2,0XD1,
0XD1,0XC2,0XC2,0XC1,0XB1,0XB1,0X91,0X9F,0XB2,0X91,
0XB1,0XC2,0XD2,0X92,0X91,0X81,0X64,0X62,0X82,
0X92,0XB2,0XC2,0XC1,0XC1,0XC2,0XD2,0X9F,0X94,
0X92,0XB2,0XD4,0XD2,0XC2,0XB4,0XC2,0XD2,0XC4,
0XC1,0XB1,0XB1,0X91,0X9C,0XB4,0XD4,0XC2,0XB1,
0X91,0XB4,0XC2,0XD2,0X92,0X92,0XB2,0XC2,0X94,
0X91,0X81,0X81,0X61,0X6F,0X92,0X92,0X82,0X62,
0X92,0X92,0X82,0X62,0X92,0X91,0X91,0XB2,0XD1,
0XD1,0XC2,0XC2,0XC1,0XB1,0XB1,0X91,0X9F,0XB2,
0X91,0XB1,0XC2,0XD2,0X92,0X91,0X81,0X64,0X62,0X82,
0X92,0XB2,0XC2,0XC1,0XC1,0XC2,0XD2,0X9F,0XC1,
0XB1,0XB1,0X91,0X92,0X92,0X92,0X02,0X04,0X04,0X0a
};
uchar code qnzl[]={
0x42,0x52,0x64,0xB4,0xA4,0x84,0x68,0x72,0x62,0x52,0x72,0x64,0xB4,0xA2,0xB2,0xC4,0xD8,0x08,
//前奏
0x62,0x61,0x51,0x62,0x82,0x62,0x61,0x51,0x62,0x92,
//竹林的灯火 到过的沙漠
0x62,0x61,0x51,0x62,0xB2,0xA1,0xB1,0xA1,0x81,0x62,0x52,
//七色的国度 不断飘逸风中
0x62,0x61,0x51,0x62,0x82,0x62,0x61,0x51,0x62,0x92,
//有一种神秘 灰色的旋涡
0x62,0x61,0x51,0x62,0xB3,0xB2,0xA1,0xA2,0x02,
//将我卷入了迷雾中
0x93,0xD1,0xD2,0x92,0xC2,0xB2,0x82,
//看不清的双手
0x61,0x81,0x93,0x81,0x93,0x81,0x93,0x81,0x92,0xB2,0xAC,0x02,
//一朵花传来谁经过的温柔
0x91,0xA1,0xB2,0xA1,0x92,0xD2,0xA1,0xA6,
//穿越千年的伤痛
0x91,0xA1,0xB2,0xA1,0x92,0x82,0x61,0x66,
//只为求一个结果
0x91,0xA1,0xB2,0xA1,0x92,0xD3,0xA3,0x92,0x83,
//你留下的轮廓 指引我
0x72,0x93,0xA3,0xB3,0xC1,0xC1,
//黑夜中不寂寞
0x91,0xA1,0xB2,0xA1,0x92,0x92,0xD1,0xA2,0XA4,
//穿越千年的哀愁
0x91,0xA1,0xB2,0xA1,0x92,0x82,0x61,0x66,
//是你在尽头等我
0x91,0xA1,0xB2,0xA1,0x92,0xD3,0xA3,0x92,0x83,
//最美丽的感动 会值得
0x72,0xB2,0xB8,0x02,0xA4,0xC3,0xB9,0x0a};
uchar code dfh[]={
0x84,0x82,0x92,0x58,0x44,0x42,0x22,0x58,0x84,
0x84,0x92,
0xB2,0x92,0x82,0x44,0x42,0x22,0x58,
0x84,0x54,0x44,0x32,0x22,0x14,0x84,0x54,0x62,0x52,
0x44,0x42,0x22,0x52,0x62,0x52,0
x42,0x52,
0x42,0x32,0x22,0x18,0X02,0x84,0x82,0x92,0x58,0x44,0x42,0x22,0x58,0x84,
0x84,0x92,0xB2,0x92,0x82,0x44,0x42,0x22,0x58,
0x84,0x54,0x44,0x32,0x22,0x14,0x84,0x54,0x62,0x52,
0x44,0x42,0x22,0x52,0x62,0x52,0x42,0x52,
0x42,0x32,0x22,0x18,0x0a};//结束标志
uchar code jmszl[]={ //寂寞沙洲冷
0x42,0x42,0x52,0x62,0x61,0x52,0x51,0x52,
//自你走后心憔悴
0x51,0x61,0x81,0x82,0x61,0x82,0x91,0x45,0x44,
//白色油桐风中纷飞
0x81,0x82,0x61,0x82,0x92,0x43,0x41,0x43,0x62,0x58,0x08,0x58,
//落花似人有情 这个季节
0x61,0x62,0x61,0x62,0x41,0x51,0x81,0x82,0x81,0x82,
//河畔的风放肆拼命地吹
0x81,0x81,0x61,0x62,0x61,0x62,0xB1,0xA2,0x93,
//不断拨弄离人的眼泪
0x92,0xA1,0xB1,0xA2,0x91,0x91,0x82,0x61,0x51,0x62,0x81,0x84,
//那样浓烈的爱再也无法给
0x52,0x42,0x41,0x42,0x41,0x22,0x22,0x44,0x66,0x62,0x56,
//伤感一夜一夜
0x62,0x91,0x81,0x81,0x61,0x61,0x51,0x61,0x81,0x91,0x81,0x61,0x81,
//当记忆的线缠绕过往支离破碎
0x02,0x62,0xB1,0xB1,0xB1,0xB1,0x92,0x82,0x64,
//是慌乱占据了心扉
0x61,0xB1,0xB1,0xB1,0x91,0xC1,0xB2,
//有花儿伴着蝴蝶
0x81,0x81,0x81,0x81,0x61,0x91,0x83,
//孤雁可以双飞
0x51,0x41,0x51,0x41,0x52,0x41,0x51,0x56,
//夜深人静独徘徊
0x62,0x91,0x81,0x81,0x61,0x61,0x51,0x61,0x81,0x91,0x81,0x81,0x81,0x82,
//当幸福恋人寄来红色分享喜悦
0x61,0x61,0xB1,0xB1,0xB1,0x91,0xC1,0xB1,0x91,0x61,0x86,
//闭上双眼难过头也不敢回
0x62,0x62,0xB1,0xB1,0xB1,0xB1,0xC1,0xB1,0x91,0x91,0x91,0x81,0x61,0x81,0x64,
//仍然捡尽寒枝不肯安歇微带着后悔
0x51,0x61,0x81,0x61,0x51,0x41,0x21,0x51,0x46,0x0a
//寂寞沙洲我该思念谁
};
uchar code chuzhi[]={
0xff,0xff,
0xFB,0x0A,
0xFb,0x90,
0xFC,0x0C,
0xFC,0x44,//中央C调1-7
0xFC,0xAC,
0xFD,0x09,
0xFD,0x34,
0xFD,0x82,
0xFD,0xC8,
0xFE,0x06,
0xFE,0x22, //高八度1-7
0xFE,0x56,
0xFE,0x85,
0xFE,0x9A,
0xFE,0xC1,
};
uchar code huayang1[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,
0xfd,0xfb,0xf7,0xef,0xdf,0xbf};//花样1
uchar code huayang2[]={0x7f,0xfe,0xbf,0xfd,0xdf,0xfb,0xef,0xf7,
0xef,0xfb,0xdf,0xfd,0xbf,0xfe};//花样2
uchar code huayang3[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x0,
0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff};
char code huayang4[]={ 0x55,0xaa,0xcc,0x33,0x99,0x66,0x0f,0xf0};
void led();
void write_data(uchar);
void init();
void write_com(uchar);
void song();
void delay1(uint z);
void delay(uint z); //延时165MS,即十六分音符
void main()
{ uchar x;
t=0;
led();//led快闪
init();
for(num=0;num<16;num++)
{ write_data(table0[num]);
delay1(1);
}
delay(12);
count1=1;
count2=0;//流水灯无花样
EA=1;//开总中断
EX1=1;
EX0=1;
IT1=1;//外部中断1下降沿触发方式
IT0=1;
ET1=1;
TMOD=0x11;//定时器1工作
在方式1
TH1=0;
TL1=0;
while(1)
{
if(count2!=0)
{
switch(coun
t2)
{
case 1:
if(y==1)
{write_com(0x01);
write_com(0x80);
delay1(1);
for(num=0;num<15;num++)
{write_data(table6[num]);
delay1(1);
}
write_com(0x01);
write_com(0x80);
for(num=0;num<15;num++)
{write_data(table5[num]);
delay1(1);
}
y=0; }
for(x=0;x<14;x++)
{
P1=huayang1[x];
delay1(200);
if(count2!=1)
break;
}
break;
case 2:
for(x=0;x<14;x++)
{
P1=huayang2[x];
delay1(250);
if(count2!=2)
break;
}
break;
case 3:
for(x=0;x<16;x++)
{
P1=huayang3[x];
delay1(250);
if(count2!=3)
break;
}
break;
case 4:
for(x=0;x<8;x++)
{
P1=huayang4[x];
delay1(250);
if(count2!=4)
break;
}
break;
}
}
else
{
song();
delay1(1000);
}
}
}
void int0() interrupt 0
{
EA=0;//关总中断
delay1(1);//去抖
if(huayang==0)
{
count1=0;//不让蜂鸣器唱歌
TR1=0;
count2++;
if(count2==5)
count2=1;
y=1;
}
EA=1;//开总中断
}
void int1() interrupt 2
{ EA=0;//关总中断
delay1(1);//去抖
if(key1==0)
{
count2=0;//流水灯无花样
TR1=1;
i=0;//从头开始唱
count1++;
t=0;
}
EA=1;//开总中断
}
void t1int() interrupt 3
{
TH1=time1h;
TL1=time1l;
fm=!fm;
}
void song() //唱歌
{ i=0;
while(1)
{
if(count1==0)
break;
if(count1==5)
count1=1;
if(count1==1)
{temp=dfh[i];
if(t==0)
{ TR1=0;
fm=1;
write_com(0x01);
write_com(0x80);
for(num=0;num<15;num++)
{write_data(table1[num]);
delay1(1);
}
t=1;TR1=1;
delay(1);
}
}
if(count1==2)
{temp=bjdjss[i];
if(t==0)
{ TR1=0;
fm=1;
write_com(0x01);
write_com(0x80);
for(num=0;num<15;num++)
{write_data(table2[num]);
delay1(1);
}
t=1;TR1=1;
delay(1);
}
}
if(count1==3)
{temp=jmszl[i];
if(t==0)
{ TR1=0;
fm=1;
write_com(0x01);
write_com(0x80);
for(num=0;num<15;num++)
{write_data(table3[num]);
delay1(1);
}
t=1;TR1=1;
delay(1);
}
}
if(count1==4)
{temp=qnzl[i];
if(t==0)
{ TR1=0;
fm=1;
write_com(0x01);
write_com(0x80);
for(num=0;num<12;num++)
{write_data(table4[num]);
delay1(1);
}
t=1;TR1=1;
delay(1);
}
}
jp=temp/16;
P1=yinyue[jp];
if(jp!=0)
{time1h=chuzhi[jp*2];
time1l=chuzhi[jp*2+1];
}
else
{TR1=0;
fm=1;
}
delay(temp%16);
TR1=0;
fm=1;
delay1(10);
TR1=1;
i++;
if(temp==
0x0a)
break;
}
TR1=0;
fm=1;
}
void init()//液晶初始化
{
write_com(0x38);
lcdrw=0;
write_com(0x01);
write_com(0x0f);
write_com(0x06);
write_com(0x80);//第一行首位
}
void write_com(uchar com)//写指令
{lcdrs=0;
P0=com;
delay1(50);
lcden=1;
delay1(50);
lcden=0;
}
void write_data(uchar dat)//写数据
{lcdrs=1;
P0=dat;
delay1(50);
lcden=1;
delay1(50);
lcden=0;
}
void delay(uint z) //延时2(165MS,即十六分音符)
{ uint x,y;
for(x=z;x>0;x--)
for(y=20000;y>0;y--);
}
void delay1(uint z) //延时1
{uint x,y;
for(x=z;x>0;x--)
for(y=112;y>0;y--);
}
void led() //led快闪
{ i=0;
num=0xfe;
P1=num;
while(i<7)
{delay1(100);
num=_crol_(num,1);
P1=num;
i++;
}
delay1(100);
i=0;
while(i<7)
{delay1(100);
num=_cror_(num,1);
P1=num;
i++;
}
}
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit fm=P3^4;
sbit key1=P3^3;
sbit huayang=P3^2;
sbit lcdrw=P2^6;
sbit lcdrs=P2^5;
sbit lcden=P2^7;
uchar count1;//歌曲标志
uchar count2;
uchar jp;
uint i,t,y=1;
uchar time1h;
uchar time1l;
uchar num;
uint temp;
uchar code yinyue[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf};
uchar code table0[]="COME TO MUSICBOX";
uchar code table1[]="The East Is Red";
uchar code table2[]="Golden BeiJing";
uchar code table3[]="Lonely Sandbank";
uchar code table4[]="Forever Love";
uchar code table5[]="Enjoy LED Style";
uchar code table6[]="Stop Play Music";
uchar code bjdjss[]={0X92,0XB2,0XC2,0XD2,0X92,0XB2,0XC2,0XC2,0X62,
0X82,0X92,0XB2,0XC4,0XC1,0XB1,0XB1,0X91,0X9F,0X94,
0X92,0XB2,0XD4,0XD2,0XC2,0XB4,0XC2,0XD2,0XC4,
0XC1,0XB1,0XB1,0X91,0X9C,0XB4,0XD4,0XC2,0XB1,
0X91,0XB4,0XC2,0XD2,0X92,0X92,0XB2,0XC2,0X94,
0X91,0X81,0X81,0X61,0X6F,0X92,0X92,0X82,0X62,
0X92,0X92,0X82,0X62,0X92,0X91,0X91,0XB2,0XD1,
0XD1,0XC2,0XC2,0XC1,0XB1,0XB1,0X91,0X9F,0XB2,0X91,
0XB1,0XC2,0XD2,0X92,0X91,0X81,0X64,0X62,0X82,
0X92,0XB2,0XC2,0XC1,0XC1,0XC2,0XD2,0X9F,0X94,
0X92,0XB2,0XD4,0XD2,0XC2,0XB4,0XC2,0XD2,0XC4,
0XC1,0XB1,0XB1,0X91,0X9C,0XB4,0XD4,0XC2,0XB1,
0X91,0XB4,0XC2,0XD2,0X92,0X92,0XB2,0XC2,0X94,
0X91,0X81,0X81,0X61,0X6F,0X92,0X92,0X82,0X62,
0X92,0X92,0X82,0X62,0X92,0X91,0X91,0XB2,0XD1,
0XD1,0XC2,0XC2,0XC1,0XB1,0XB1,0X91,0X9F,0XB2,
0X91,0XB1,0XC2,0XD2,0X92,0X91,0X81,0X64,0X62,0X82,
0X92,0XB2,0XC2,0XC1,0XC1,0XC2,0XD2,0X9F,0XC1,
0XB1,0XB1,0X91,0X92,0X92,0X92,0X02,0X04,0X04,0X0a
};
uchar code qnzl[]={
0x42,0x52,0x64,0xB4,0xA4,0x84,0x68,0x72,0x62,0x52,0x72,0x64,0xB4,0xA2,0xB2,0xC4,0xD8,0x08,
//前奏
0x62,0x61,0x51,0x62,0x82,0x62,0x61,0x51,0x62,0x92,
//竹林的灯火 到过的沙漠
0x62,0x61,0x51,0x62,0xB2,0xA1,0xB1,0xA1,0x81,0x62,0x52,
//七色的国度 不断飘逸风中
0x62,0x61,0x51,0x62,0x82,0x62,0x61,0x51,0x62,0x92,
//有一种神秘 灰色的旋涡
0x62,0x61,0x51,0x62,0xB3,0xB2,0xA1,0xA2,0x02,
//将我卷入了迷雾中
0x93,0xD1,0xD2,0x92,0xC2,0xB2,0x82,
//看不清的双手
0x61,0x81,0x93,0x81,0x93,0x81,0x93,0x81,0x92,0xB2,0xAC,0x02,
//一朵花传来谁经过的温柔
0x91,0xA1,0xB2,0xA1,0x92,0xD2,0xA1,0xA6,
//穿越千年的伤痛
0x91,0xA1,0xB2,0xA1,0x92,0x82,0x61,0x66,
//只为求一个结果
0x91,0xA1,0xB2,0xA1,0x92,0xD3,0xA3,0x92,0x83,
//你留下的轮廓 指引我
0x72,0x93,0xA3,0xB3,0xC1,0xC1,
//黑夜中不寂寞
0x91,0xA1,0xB2,0xA1,0x92,0x92,0xD1,0xA2,0XA4,
//穿越千年的哀愁
0x91,0xA1,0xB2,0xA1,0x92,0x82,0x61,0x66,
//是你在尽头等我
0x91,0xA1,0xB2,0xA1,0x92,0xD3,0xA3,0x92,0x83,
//最美丽的感动 会值得
0x72,0xB2,0xB8,0x02,0xA4,0xC3,0xB9,0x0a};
uchar code dfh[]={
0x84,0x82,0x92,0x58,0x44,0x42,0x22,0x58,0x84,
0x84,0x92,
0xB2,0x92,0x82,0x44,0x42,0x22,0x58,
0x84,0x54,0x44,0x32,0x22,0x14,0x84,0x54,0x62,0x52,
0x44,0x42,0x22,0x52,0x62,0x52,0
x42,0x52,
0x42,0x32,0x22,0x18,0X02,0x84,0x82,0x92,0x58,0x44,0x42,0x22,0x58,0x84,
0x84,0x92,0xB2,0x92,0x82,0x44,0x42,0x22,0x58,
0x84,0x54,0x44,0x32,0x22,0x14,0x84,0x54,0x62,0x52,
0x44,0x42,0x22,0x52,0x62,0x52,0x42,0x52,
0x42,0x32,0x22,0x18,0x0a};//结束标志
uchar code jmszl[]={ //寂寞沙洲冷
0x42,0x42,0x52,0x62,0x61,0x52,0x51,0x52,
//自你走后心憔悴
0x51,0x61,0x81,0x82,0x61,0x82,0x91,0x45,0x44,
//白色油桐风中纷飞
0x81,0x82,0x61,0x82,0x92,0x43,0x41,0x43,0x62,0x58,0x08,0x58,
//落花似人有情 这个季节
0x61,0x62,0x61,0x62,0x41,0x51,0x81,0x82,0x81,0x82,
//河畔的风放肆拼命地吹
0x81,0x81,0x61,0x62,0x61,0x62,0xB1,0xA2,0x93,
//不断拨弄离人的眼泪
0x92,0xA1,0xB1,0xA2,0x91,0x91,0x82,0x61,0x51,0x62,0x81,0x84,
//那样浓烈的爱再也无法给
0x52,0x42,0x41,0x42,0x41,0x22,0x22,0x44,0x66,0x62,0x56,
//伤感一夜一夜
0x62,0x91,0x81,0x81,0x61,0x61,0x51,0x61,0x81,0x91,0x81,0x61,0x81,
//当记忆的线缠绕过往支离破碎
0x02,0x62,0xB1,0xB1,0xB1,0xB1,0x92,0x82,0x64,
//是慌乱占据了心扉
0x61,0xB1,0xB1,0xB1,0x91,0xC1,0xB2,
//有花儿伴着蝴蝶
0x81,0x81,0x81,0x81,0x61,0x91,0x83,
//孤雁可以双飞
0x51,0x41,0x51,0x41,0x52,0x41,0x51,0x56,
//夜深人静独徘徊
0x62,0x91,0x81,0x81,0x61,0x61,0x51,0x61,0x81,0x91,0x81,0x81,0x81,0x82,
//当幸福恋人寄来红色分享喜悦
0x61,0x61,0xB1,0xB1,0xB1,0x91,0xC1,0xB1,0x91,0x61,0x86,
//闭上双眼难过头也不敢回
0x62,0x62,0xB1,0xB1,0xB1,0xB1,0xC1,0xB1,0x91,0x91,0x91,0x81,0x61,0x81,0x64,
//仍然捡尽寒枝不肯安歇微带着后悔
0x51,0x61,0x81,0x61,0x51,0x41,0x21,0x51,0x46,0x0a
//寂寞沙洲我该思念谁
};
uchar code chuzhi[]={
0xff,0xff,
0xFB,0x0A,
0xFb,0x90,
0xFC,0x0C,
0xFC,0x44,//中央C调1-7
0xFC,0xAC,
0xFD,0x09,
0xFD,0x34,
0xFD,0x82,
0xFD,0xC8,
0xFE,0x06,
0xFE,0x22, //高八度1-7
0xFE,0x56,
0xFE,0x85,
0xFE,0x9A,
0xFE,0xC1,
};
uchar code huayang1[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,
0xfd,0xfb,0xf7,0xef,0xdf,0xbf};//花样1
uchar code huayang2[]={0x7f,0xfe,0xbf,0xfd,0xdf,0xfb,0xef,0xf7,
0xef,0xfb,0xdf,0xfd,0xbf,0xfe};//花样2
uchar code huayang3[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x0,
0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff};
char code huayang4[]={ 0x55,0xaa,0xcc,0x33,0x99,0x66,0x0f,0xf0};
void led();
void write_data(uchar);
void init();
void write_com(uchar);
void song();
void delay1(uint z);
void delay(uint z); //延时165MS,即十六分音符
void main()
{ uchar x;
t=0;
led();//led快闪
init();
for(num=0;num<16;num++)
{ write_data(table0[num]);
delay1(1);
}
delay(12);
count1=1;
count2=0;//流水灯无花样
EA=1;//开总中断
EX1=1;
EX0=1;
IT1=1;//外部中断1下降沿触发方式
IT0=1;
ET1=1;
TMOD=0x11;//定时器1工作
在方式1
TH1=0;
TL1=0;
while(1)
{
if(count2!=0)
{
switch(coun
t2)
{
case 1:
if(y==1)
{write_com(0x01);
write_com(0x80);
delay1(1);
for(num=0;num<15;num++)
{write_data(table6[num]);
delay1(1);
}
write_com(0x01);
write_com(0x80);
for(num=0;num<15;num++)
{write_data(table5[num]);
delay1(1);
}
y=0; }
for(x=0;x<14;x++)
{
P1=huayang1[x];
delay1(200);
if(count2!=1)
break;
}
break;
case 2:
for(x=0;x<14;x++)
{
P1=huayang2[x];
delay1(250);
if(count2!=2)
break;
}
break;
case 3:
for(x=0;x<16;x++)
{
P1=huayang3[x];
delay1(250);
if(count2!=3)
break;
}
break;
case 4:
for(x=0;x<8;x++)
{
P1=huayang4[x];
delay1(250);
if(count2!=4)
break;
}
break;
}
}
else
{
song();
delay1(1000);
}
}
}
void int0() interrupt 0
{
EA=0;//关总中断
delay1(1);//去抖
if(huayang==0)
{
count1=0;//不让蜂鸣器唱歌
TR1=0;
count2++;
if(count2==5)
count2=1;
y=1;
}
EA=1;//开总中断
}
void int1() interrupt 2
{ EA=0;//关总中断
delay1(1);//去抖
if(key1==0)
{
count2=0;//流水灯无花样
TR1=1;
i=0;//从头开始唱
count1++;
t=0;
}
EA=1;//开总中断
}
void t1int() interrupt 3
{
TH1=time1h;
TL1=time1l;
fm=!fm;
}
void song() //唱歌
{ i=0;
while(1)
{
if(count1==0)
break;
if(count1==5)
count1=1;
if(count1==1)
{temp=dfh[i];
if(t==0)
{ TR1=0;
fm=1;
write_com(0x01);
write_com(0x80);
for(num=0;num<15;num++)
{write_data(table1[num]);
delay1(1);
}
t=1;TR1=1;
delay(1);
}
}
if(count1==2)
{temp=bjdjss[i];
if(t==0)
{ TR1=0;
fm=1;
write_com(0x01);
write_com(0x80);
for(num=0;num<15;num++)
{write_data(table2[num]);
delay1(1);
}
t=1;TR1=1;
delay(1);
}
}
if(count1==3)
{temp=jmszl[i];
if(t==0)
{ TR1=0;
fm=1;
write_com(0x01);
write_com(0x80);
for(num=0;num<15;num++)
{write_data(table3[num]);
delay1(1);
}
t=1;TR1=1;
delay(1);
}
}
if(count1==4)
{temp=qnzl[i];
if(t==0)
{ TR1=0;
fm=1;
write_com(0x01);
write_com(0x80);
for(num=0;num<12;num++)
{write_data(table4[num]);
delay1(1);
}
t=1;TR1=1;
delay(1);
}
}
jp=temp/16;
P1=yinyue[jp];
if(jp!=0)
{time1h=chuzhi[jp*2];
time1l=chuzhi[jp*2+1];
}
else
{TR1=0;
fm=1;
}
delay(temp%16);
TR1=0;
fm=1;
delay1(10);
TR1=1;
i++;
if(temp==
0x0a)
break;
}
TR1=0;
fm=1;
}
void init()//液晶初始化
{
write_com(0x38);
lcdrw=0;
write_com(0x01);
write_com(0x0f);
write_com(0x06);
write_com(0x80);//第一行首位
}
void write_com(uchar com)//写指令
{lcdrs=0;
P0=com;
delay1(50);
lcden=1;
delay1(50);
lcden=0;
}
void write_data(uchar dat)//写数据
{lcdrs=1;
P0=dat;
delay1(50);
lcden=1;
delay1(50);
lcden=0;
}
void delay(uint z) //延时2(165MS,即十六分音符)
{ uint x,y;
for(x=z;x>0;x--)
for(y=20000;y>0;y--);
}
void delay1(uint z) //延时1
{uint x,y;
for(x=z;x>0;x--)
for(y=112;y>0;y--);
}
void led() //led快闪
{ i=0;
num=0xfe;
P1=num;
while(i<7)
{delay1(100);
num=_crol_(num,1);
P1=num;
i++;
}
delay1(100);
i=0;
while(i<7)
{delay1(100);
num=_cror_(num,1);
P1=num;
i++;
}
}