/************************************************
跳線設(shè)置:
1.蜂鳴器和繼電器 共用p2.2 ,跳線J5設(shè)置到23端選中蜂鳴器
2.J7拔掉,雙排針除PSEN外全部插上
效果:
1,生日快樂(lè)歌曲
相關(guān)知識(shí)點(diǎn):
1,利用單片機(jī)的定時(shí)器精準(zhǔn)定時(shí)
************************************************/
#include"AT89x52.h"
#define uchar unsigned char
#define uint unsigned int
sbit P32=P2^2;
uchar i,j,time1,time2;
uint code array1[]={
400,400,650,650,650,1200,
400,400,650,650,650,1200,
400,400,650,650,650,650,1200,
400,400,650,650,650,1200
};
uchar code array[]={
0xfd,0x79,0xfd,0x79,0xfd,0xc7,0xfd,0x79,0xfe,0x21,0xfe,0x05,
0xfd,0x79,0xfd,0x79,0xfd,0xc7,0xfd,0x79,0xfe,0x51,0xfe,0x21,
0xfd,0x79,0xfd,0x79,0xfe,0xc0,0xfe,0x84,0xfe,0x21,0xfe,0x05,0xfd,0xc7,
0xfe,0x99,0xfe,0x99,0xfe,0x90,0xfe,0x21,0xfe,0x51,0xfe,0x21
};
void delay(uint m)
{
uint n;
for(;m>0;m--)
for(n=125;n>0;n--);
}
void main()
{
TMOD=0x01;
TH0=0;
TL0=0;
EA=1;
ET0=1;
TR0=1;
while(1)
{
time1=array[i++];
time2=array[i++];
if(i==50)
i=0;
delay(array1[j++]);
if(j==25)
j=0;
}
}
void init() interrupt 1
{
TR0=0;
P32=~P32;
TH0=time1;
TL0=time2;
TR0=1;
}
我想要問(wèn)的是:
uchar code array[]={
0xfd,0x79,0xfd,0x79,0xfd,0xc7,0xfd,0x79,0xfe,0x21,0xfe,0x05,
0xfd,0x79,0xfd,0x79,0xfd,0xc7,0xfd,0x79,0xfe,0x51,0xfe,0x21,
0xfd,0x79,0xfd,0x79,0xfe,0xc0,0xfe,0x84,0xfe,0x21,0xfe,0x05,0xfd,0xc7,
0xfe,0x99,0xfe,0x99,0xfe,0x90,0xfe,0x21,0xfe,0x51,0xfe,0x21
};
這個(gè)是什么意思啊?0xfd,0x79,0xfd,0x79。0xfd是什么意思?,0x79是什么意思?,為什么播放一個(gè)音調(diào)要兩個(gè)16進(jìn)制代碼?為什么啊啊啊啊啊啊啊啊啊啊啊?請(qǐng)求大神解答啊。。。 |