讓51無源蜂鳴器響0.5s,不響0.5s。交替響三次后關閉LED燈(普中開發板)
求大神解答,蜂鳴器響的時間怎么控制的呀,我弄不清蜂鳴器響的時間控制與音量大小怎樣結合。
我敲的代碼可以實作響與不響交替三次關閉LED燈,不過聲音好小,怎么調大聲音呀 #include"reg51.h"
sbit beep=P0^0;
void delay(unsigned int i)
{
unsigned char k;
while(i--)
for(k=0;k<120;k++);
}
void main()
{
unsigned char j,g=0;
beep=0;
while(1)
{
if(g<3)
{
g++;
for(j=0;j<10;j++)
{
beep=~beep ;
delay(50);
}
for(j=0;j<10;j++)
{
beep=0;
delay(500);
}
}
P1=0x00;
}
}
uj5u.com熱心網友回復:
試著調整蜂鳴器的頻率for(j=0;j<10;j++){
beep=~beep ;
delay(50);調整延時大小改變頻率
}
uj5u.com熱心網友回復:
delay(50)改成delay(5),響0.5s的時間就該變了呀
uj5u.com熱心網友回復:
有什么方法可以控制無緣蜂鳴器的發聲時間的呀uj5u.com熱心網友回復:
你寫的陳述句本身就是個嵌套回圈,調整一個回圈外,再調整另一個回圈試看,uj5u.com熱心網友回復:
0.5S會被改變的這樣
uj5u.com熱心網友回復:
彼消此長,此長彼消的道理,內回圈減小則外回圈增加,總量保持不變就是,這是很簡單的算術道理而已。10*50=500,5*100=500,與你下一個停止的500對應,不是?按你的代碼計算。uj5u.com熱心網友回復:
好的,等一下試試看,謝謝
uj5u.com熱心網友回復:
大神還有其他方法可以實作讓51無源蜂鳴器響0.5s,不響0.5s。交替響三次后關閉LED燈
uj5u.com熱心網友回復:
當然有,使用定時器,可同時設定頻率和時間。uj5u.com熱心網友回復:
怎么設計呀,求大神救救孩子吧
uj5u.com熱心網友回復:
求詳細代碼,我不是很懂
uj5u.com熱心網友回復:
到我的博客上去找都有例子uj5u.com熱心網友回復:
沒有PWM,代碼延遲控制前提是不要有頻繁中斷,否則聲音不甜美的uj5u.com熱心網友回復:
delay函式時間得調整uj5u.com熱心網友回復:
理論上講蜂鳴器直接通過開關量控制的,不能夠調節音量,只能調節頻率,你所說的“音量”只是頻率太高或者太低,人耳聽不見了而已,所以只需要修改延時函式,改頻率就可以實作轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/64318.html
標籤:單片機/工控
上一篇:Quartus II 13.1 (64-bit)程式問題
下一篇:sf3914引腳圖
