標(biāo)題:
無(wú)源蜂鳴器的發(fā)生控制(部分程序)
[打印本頁(yè)]
作者:
藍(lán)野
時(shí)間:
2017-10-2 15:17
標(biāo)題:
無(wú)源蜂鳴器的發(fā)生控制(部分程序)
while(1)
{
beep=~beep;、//蜂鳴器已經(jīng)定義,
delay(10); //延時(shí)大約100us 通過(guò)修改此延時(shí)時(shí)間達(dá)到不同的發(fā)聲效果(頻率改變音色)
beep=1;
delay(10); //延時(shí)函數(shù),前面已經(jīng)定義
beep=0;
delay(5); //調(diào)節(jié)占空比達(dá)到通過(guò)改變聲音的大小 (還要進(jìn)一步思考。因?yàn)榕c上面的周期不一致)
}
問(wèn)題:對(duì)無(wú)源蜂鳴器第一部分設(shè)置頻率(改變聲音的音色),第二部分設(shè)置占空比(改變聲音大。;但是前后的高低電平一個(gè)周期內(nèi),時(shí)間并不想等,有毛病嗎?
作者:
wulin
時(shí)間:
2017-10-2 17:01
驅(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)閉
}
}
作者:
anhuiyesu
時(shí)間:
2017-10-3 11:06
牛人大贊
作者:
kelaosan
時(shí)間:
2019-4-21 15:44
請(qǐng)問(wèn)此程序如何和通過(guò)按鍵控制蜂鳴器音量大小結(jié)合起來(lái)呢?
作者:
LH2344
時(shí)間:
2019-4-21 21:14
新手表示很難呀,看不明白
作者:
sewell
時(shí)間:
2019-4-22 01:15
贊一個(gè)
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1