📄 music1.c
字号:
//music接管0.5W扬声器,就可以唱歌了,如果你觉得不好听,就调节一下与时间有关了延迟涵数,看看有何变化.
//我是没空整了!
#include <reg51.h>
#include <Intrins.h>
#include <absacc.h>
//#include <my.h>
#define uchar unsigned char
#define uint unsigned int
#define WriteDeviceAddress 0xa0
#define ReadDviceAddress 0xa1
uint ff;
uchar CC;
uchar BB;
uchar ZD_count;
uchar shuj;
uchar csh_flag;
uchar data_flag;
uchar sec_1;
uchar sec;
uchar time;
uchar shuju;
sbit sstb=P3^2;
sbit csh=P3^4;
sbit music=P1^0;
sbit ack=P1^1;
sbit dog=P1^2;
sbit cw=P1^3;
sbit oe=P1^4;
sbit SCL=P1^5;
sbit SDA=P1^6;
sbit wxf=P1^7;
uchar data sd[12];
uchar data prn_buf[8];
uchar data end_buf[4];
uchar data baund_code;
uchar data baund_flag;
uchar data prn_flag;
uchar data end_flag;
uchar data self_code;
uchar data self_flag;
uchar data DAT1[]={0x40,0x30,0x2b,0x26,0x20,0x1c,0x18,0x15,0x13,0x00};
uchar data DAT2[]={0x44,0x38,0x2e,0x24,0x19,0x16,0x13,0x10,0x8,0x00};
uchar data DAT3[]={0x41,0x2f,0x29,0x24,0x19,0x16,0x13,0x10,0x0b,0x00};
uchar code DAT[]={ 0x18,0x30,0x1c,0x10,//1
0x19,0x40,0x16,0x10,//2
0x13,0x10,0x19,0x10,//3
0x16,0x10,0x13,0x40,//4
0x16,0x20,0x19,0x20,//5
0x16,0x20,0x13,0x20,//6
0x19,0x80,0xff,0x20,//7
0x2f,0x1c,0x0b,0x18,//8
0x19,0x15,0x19,0x1c,//9
0x19,0x20,0x19,0x26,//10
0x41,0x20,0x19,0x2b,//11
0x19,0x26,0x19,0x20,//12
0x19,0x30,0x40,0xff,//13
0x19,0x20,0x16,0x10,//14
0x13,0x10,0x19,0x20,//15
0x24,0x20,0x29,0x20,//16
0x2f,0x20,0x29,0x40,//17
0x19,0x20,0x16,0x10,
0x13,0x10,0x19,0x20,
0x24,0x20,0x29,0x20,
0x2f,0x20,0x29,0x40,
0x19,0x30,0x19,0x10,//18
0x13,0x20,0x10,0x20,//19
0x16,0x20,0x19,0x20,//20
0x24,0x40,0x19,0x20,//21
0x29,0x20,0x23,0x20,//22
0x19,0x20,0x29,0x80,//23
0x19,0x30,0x16,0x10,//24
0x19,0x10,0x16,0x10,//25
0x19,0x20,0x23,0x20,//26
0x29,0x20,0x29,0x20,//27
0x29,0x40,0x19,0x15,//28
0x17,0x05,0x19,0x10,//29
0x16,0x10,0x19,0x20,//30
0x24,0x20,0x29,0x20,//31
0x2f,0x20,0x29,0x40,//32
0x19,0x30,0x19,0x10,//33
0x13,0x20,0x10,0x20,//34
0x16,0x20,0x19,0x20,//35
0x23,0x40,0x19,0x20,//36
0x29,0x20,0x23,0x20,//37
0x19,0x20,0x29,0x30,//38
0x19,0x30,0x19,0x10,//39
0x13,0x40,0x19,0x20,//40
0x19,0x20,0x23,0x40,//41
0x0b,0x60,0x13,0x20,//42
0x10,0x40,0x0b,0x40,//43
0x13,0x80,0x00};
uchar del(uchar m)
{
uchar j,k;
_nop_( );
while(m--)
{
for(k=0;k<=4;k++)
{dog=~dog;}
}
}
uchar Msec(uint x)
{uchar j;
while(x--)
{for(j=0;j<200;j++)
{dog=~dog;}
}
}
void Intt0() interrupt 1
{ dog=~dog;
ZD_count++;
TH0=0xd8;
TL0=0xef;//12M晶振,形成10毫秒中断
}
void chu( )
{
shuj=0;
BB=0;
CC=0;
ZD_count=0;
}
void music1( )
{
TR0=0;
Msec(100);
shuj++;
}
void music2( )
{ uchar h;
shuj++;
h=DAT[BB+shuj];
TR0=1;
while(h!=ZD_count)
{
music=~music;
del(CC);
}
ZD_count=0;
//TR0=0;
shuj++;
BB++;
}
void Main()
{ uchar t,i;
TH0=0xd8;
TL0=0xef;
TMOD=0x01;
IE=0x82;
do{
dog=~dog;
chu( );
do
{
t=DAT[shuj];
if(t==0xff)
music1( );
else
{
CC=t;
music2( );
}
dog=~dog;
} while(t!=0);
Msec(2000);
}while(1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -