|
驅(qū)動(dòng)無(wú)源蜂鳴器最好用定時(shí)器中斷輸出2000Hz,占空比50%的方波,用延時(shí)函數(shù)會(huì)嚴(yán)重影響其它程序運(yùn)行。要改變頻率就改一下定時(shí)器重載值。改變占空比并不能明顯改變音量。
void Timer0Init() //250微秒@12.000MHz
{
TMOD= 0x02; //設(shè)置定時(shí)器自動(dòng)重載模式
TL0 = 0x06; //設(shè)置定時(shí)初值
TH0 = 0x06; //設(shè)置定時(shí)重載值
// TR0 = 1; //定時(shí)器0開(kāi)始計(jì)時(shí)
EA=1; //開(kāi)全局中斷
ET0=1; //允許T0中斷
}
void timer0() interrupt 1
{
static uint count=0;//中斷計(jì)數(shù)變量
count++;
Buzzer=~Buzzer; //蜂鳴器端口取反
if(count>=500) //持續(xù)時(shí)間
{
count=0; //計(jì)數(shù)清0
Buzzer=0; //蜂鳴器端口復(fù)位
TR0 = 0; //定時(shí)器0關(guān)閉
}
}
|
|