代码如下
void MusicPlay(const word *tp)
{
word Freq;
do
{
Freq = (*tp)&0x03FF; //低10位为频率
if(0==Freq) //0频率时,输出低
MusicStop(); }
//定时器4设置,用于播放声音
Bank1();
T4CON = 0x00; //停止定时器4
TL4 = (65536-Freq)%256; //赋初值
TH4 = (65536-Freq)/256;
T4CON = 0x52; //系统时钟(6MHz),1:8预分频,比较方式,P0.3输出PWM
Bank0();
}
for(Systime=0;Systime<=((*tp)>>10);)//节拍时间
{
TimerQuery();
tp++;
while(0!=*tp);
MusicStop();
}
}