|
如題 ,用兩個定時器控制蜂鳴器發(fā)聲時 怎么用定時器控制頻率以及頻率持續(xù)的時間?我看過網(wǎng)上的一些程序,下載下來后運(yùn)行確實(shí)不錯,但程序表示看不懂...以下是中斷服務(wù)程序......不理解怎么寫的....求指點(diǎn)
void time1() interrupt 3
{
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
flag++;
if(flag==360)
{
flag=0;
fre=50000;
}
}
void time0() interrupt 1
{
TH0=(65536-fre)/256;
TL0=(65536-fre)%256;
tt++;
if(flag<40)
{
if(tt==10)
{
tt=0;
fre=50000;
beep=~beep;
}
}
if(flag>=40&&flag<80)
{
tt=0;
fre=50000;
beep=~beep;
}
if(flag>=80&&flag<120)
{
tt=0;
fre=10000;
beep=~beep;
}
if(flag>=120&&flag<160)
{
tt=0;
fre=5000;
beep=~beep;
}
if(flag>=1600&&flag<200)
{
tt=0;
fre=2500;
beep=~beep;
}
if(flag>=200&&flag<240)
{
tt=0;
fre=1250;
beep=~beep;
}
if(flag>=240&&flag<280)
{
tt=0;
fre=625;
beep=~beep;
}
if(flag>=280&&flag<320)
{
tt=0;
fre=312;
beep=~beep;
}
if(flag>=320&&flag<360)
{
tt=0;
fre=156;
beep=~beep;
}
TR0=1;
}
|
|