#include <reg52.h>
#define uchar unsigned char
#define in unsigned int
#define N 6
#define m 50
#define h 125
sbit s0 = P1^0; //键盘检测
sbit s1 = P1^1;
sbit s2 = P1^2;
sbit s3 = P1^3;
sbit s4 = P1^4;
sbit s5 = P1^5;
sbit s6 = P1^6;
sbit u1 = P0^1; //按键灯
sbit u2 = P0^2;
sbit u3 = P0^3;
sbit u4 = P0^4;
sbit u5 = P2^5;
sbit u6 = P0^6;
sbit u7 = P0^7;
sbit u8 = P2^7;
sbit u9 = P2^6;
sbit m1 = P2^4; //周边灯
sbit m2 = P2^3;
uchar code yf1[6] = {0x7E ,0x04,0x03,0x00,0x01,0xEF};//mp3模块字符串
uchar code yf2[6] = {0x7E,0x04,0x03,0x00,0x02,0xEF};
uchar code yf3[6] = {0x7E,0x04,0x03,0x00,0x03,0xEF};
uchar code yf4[6] = {0x7E,0x04,0x03,0x00,0x04,0xEF};
uchar code yf5[6] = {0x7E,0x04,0x03,0x00,0x05,0xEF};
uchar code yf6[6] = {0x7E,0x04,0x03,0x00,0x06,0xEF};
uchar code yf7[6] = {0x7E,0x04,0x03,0x00,0x07,0xEF};
uchar code yf8[6] = {0x7E,0x04,0x03,0x00,0x08,0xEF};
uchar code yf9[6] = {0x7E,0x04,0x03,0x00,0x09,0xEF};
uchar code yf0[6] = {0x7E,0x04,0x03,0x00,0xa,0xEF};
void init() //初始化子程序
{
TMOD = 0x20;
TH1 = 0xFD;
TL1 = 0xFD;
TR1 = 1;
REN = 1;
SM0 = 0;
SM1 = 1;
EA = 1;
ES = 1;
}
void ys(in x) //延时函数
{
in i, j;
for(i=x;i>0;i--)
for(j=110;j>0;j--);
}
void SendByte(uchar dat) //字节发送
{
SBUF = dat;
while(!TI);
TI = 0;
}
void SendStr(uchar *s) //字符发送
{
int i;
for(i = 0; i < 6; i++)
{
SendByte(*s);
s++;
}
}
/*琴键*/
void main()
{
init();
if(s1 == 0)
{
if(s0 == 1 &&s2 == 0&&s3 == 1&&s4 == 1&&s5 == 1&&s6 == 1)
{
ys(N);
if(s0 == 1 && s2 == 0&&s3 == 1&&s4 == 1&&s5 == 1&&s6 == 1)
{
SendStr(yf7);u2 = u8 = u3 = m1 = m2 = 0;ys(h);u2 = u8 = u3 = m1 = m2 = 1;
}
while(s0 == 1&&s1 == 0&&s2 == 0&&s3 == 1&&s4 == 1&&s5 == 1&&s6 == 1)ys(m);
}// 音符1
if(s0 == 1 && s2 == 1&&s3 == 0&&s4 == 1&&s5 == 1&&s6 == 1)
{
ys(N);
if(s0 == 1 && s2 == 1&&s3 == 0&&s4 == 1&&s5 == 1&&s6 == 1)
{
SendStr(yf8);u2 = u8 = u4 = m1 = 0;ys(h);u2 = u8 = u4 = m1 = 1;
}
while(s0 == 1 && s1 == 0&&s2 == 1&&s3 == 0&&s4 == 1&&s5 == 1&&s6 == 1)ys(m);
}//音符2
if(s0 == 1 && s2 == 1&&s3 == 1&&s4 == 0&&s5 == 1&&s6 == 1)
{
ys(N);
if(s0 == 1 && s2 == 1&&s3 == 1&&s4 == 0&&s5 == 1&&s6 == 1)
{
SendStr(yf9);u2 = u8 = u5 = m2 = 0;ys(h); u2 = u8 = u5 = m2 = 1;
}
while(s0 == 1 && s1 == 0&&s2 == 1&&s3 == 1&&s4 == 0&&s5 == 1&&s6 == 1)ys(m);
}//音符3
if(s0 == 1 && s2 == 1&&s3 == 1&&s4 == 1&&s5 == 0&&s6 == 1)
{
ys(N);
if(s0 == 1 && s2 == 1&&s3 == 1&&s4 == 1&&s5 == 0&&s6 == 1)
{
SendStr(yf0);u2 = u8 = u6 = m1 = m2 = 0;ys(h);u2 = u8 = u6 = m1 = m2 = 1;
}
while(s0 == 1 && s1 == 0&&s2 == 1&&s3 == 1&&s4 == 1&&s5 == 0&&s6 == 1)ys(m);
}//音符4
if(s0 == 1 && s2 == 1&&s3 == 1&&s4 == 1&&s5 == 1&&s6 == 0)
{
ys(N);
if(s0 == 1 && s2 == 1&&s3 == 1&&s4 == 1&&s5 == 1&&s6 == 0)
{
SendStr(yf1);u2 = u8 = u7 = m1 = 0;ys(h);u2 = u8 = u7 = m1 = 1;
}
while(s0 == 1 && s1 == 0&&s2 == 1&&s3 == 1&&s4 == 1&&s5 == 1&&s6 == 0)ys(m);
}//音符5
}
if(s0 == 0)
{
if( s1 == 1&&s2 == 0&&s3 == 1&&s4 == 1&&s5 == 1&&s6 == 1)
{
ys(N);
if(s1 == 1&&s2 == 0&&s3 == 1&&s4 == 1&&s5 == 1&&s6 == 1)
{
SendStr(yf2);u1 = u9 = u3 = m2 = 0;ys(h);u1 = u9 = u3 = m2 = 1;
}
while(s0 == 0 && s1 == 1&&s2 == 0&&s3 == 1&&s4 == 1&&s5 == 1&&s6 == 1)ys(m);
}//音符6
if(s1 == 1&&s2 == 1&&s3 == 0&&s4 == 1&&s5 == 1&&s6 == 1)
{
ys(N);
if(s1 == 1&&s2 == 1&&s3 == 0&&s4 == 1&&s5 == 1&&s6 == 1)
{
SendStr(yf3);u1 = u9 = u4 = m1 = 0;ys(h);u1 = u9 = u4 = m1 = 1;
}
while(s0 == 0 && s1 == 1&&s2 == 1&&s3 == 0&&s4 == 1&&s5 == 1&&s6 == 1)ys(m);
}//音符7
if(s1 == 1&&s2 == 1&&s3 == 1&&s4 == 0&&s5 == 1&&s6 == 1)
{
ys(N);
if(s1 == 1&&s2 == 1&&s3 == 1&&s4 == 0&&s5 == 1&&s6 == 1)
{
SendStr(yf4);u1 = u9 = u5 = m1 = m2 = 0;ys(h);u1 = u9 = u5 = m1 = m2 = 1;
}
while(s0 == 0 && s1 == 1&&s2 == 1&&s3 == 1&&s4 == 0&&s5 == 1&&s6 == 1)ys(m);
}//音符8
if( s1 == 1&&s2 == 1&&s3 == 1&&s4 == 1&&s5 == 0&&s6 == 1)
{
ys(N);
if(s1 == 1&&s2 == 1&&s3 == 1&&s4 == 1&&s5 == 0&&s6 == 1)
{
SendStr(yf5);u1 = u9 = u6 = m1 = 0;ys(h);u1 = u9 = u6 = m1 = 1;
}
while(s0 == 0 && s1 == 1&&s2 == 1&&s3 == 1&&s4 == 1&&s5 == 0&&s6 == 1)ys(m);
}//音符9
if(s1 == 1&&s2 == 1&&s3 == 1&&s4 == 1&&s5 == 1&&s6 == 0)
{
ys(N);
if(s1 == 1&&s2 == 1&&s3 == 1&&s4 == 1&&s5 == 1&&s6 == 0)
{
SendStr(yf6);u1 = u9 = u7 = m2 = 0;ys(h);u1 = u9 = u7 = m2 = 1;
}
while(s0 == 0 && s1 == 1&&s2 == 1&&s3 == 1&&s4 == 1&&s5 == 1&&s6 == 0)ys(m);
}//音符10
}
}
void UART() interrupt 4
{;}