|
給你一個
void Music_Play(uint8 *MusicTab)
{
uint8 *pMusic;
uint8 temp,i;
pMusic=MusicTab; //將歌曲首地址給指針變量
while(*pMusic!=0)
{
if((*pMusic&0xf0)==0x00)
Fre=65536-1000000/FreTab_Low[*pMusic&0x0f];
else if((*pMusic&0xf0)==0x10)
Fre=65536-1000000/FreTab_Mid[*pMusic&0x0f];
else if((*pMusic&0xf0)==0x20)
Fre=65536-1000000/FreTab_Hight[*pMusic&0x0f];
TH0=Fre/256; //計算頻率初值,賦高八位
TL0=Fre%256; //計算頻率初值,賦低八位
TH1=0x3c; //定時器1賦初值,定時50ms
TL1=0xb0;
pMusic++; //獲得節(jié)拍值
temp=*pMusic;
TR0=1; //開啟定時器T0
TR1=1; //開啟定時器T1
for(i=0;i<temp;i++)
{
while(TF1==0); //判斷定時器1是否溢出
TH1=0x3c;
TL1=0xb0;
TF1=0;
}
pMusic++;
}
} |
評分
-
查看全部評分
|