本人:非科班出生的初學者哈!
最近開始學習單片機,購買的是最小系統(tǒng)板類型,想通過IO口觸發(fā)蜂鳴器報警。蜂鳴器如下圖所示,

具體程序代碼如下。
#include <reg52.h>
#include <intrins.h>
#define on 0
#define off 1
sbit fm = P1^0;
void delay(unsigned int xms)
{
unsigned int i,j;
for(i = xms; i > 0; i--)
for(j = 112; j > 0 ; j--);
}
void main()
{
while(1)
{
fm = on;
delay(100);
fm = off ;
delay(100);
}
最開始直接用單片機的P1^0端口連接蜂鳴器的IO口,基本上不能夠聽到蜂鳴器發(fā)聲。
1、后來看到有人說需要連接上拉電阻,于是在P1^0端口串聯(lián)了一個10K歐姆的電阻,是可以發(fā)聲了,基本可以聽見,可是不夠大。
2、第二個方案,想通過IO連接一個發(fā)光二極管來檢測是否端口按照程序輸出高低電平。發(fā)現(xiàn)程序是可以正常輸出高低電平的。
3、第三個方案,將蜂鳴器的輸入端口與發(fā)光二極管串聯(lián),這個時候發(fā)光二極管按照預期閃爍,蜂鳴器發(fā)聲也特別尖銳和高分貝了。這個現(xiàn)象很奇怪,難道是因為發(fā)光二極管的原因導致,輸入電平的快速變化引起的么?!?!
二極管和蜂鳴器串聯(lián)
本人問題:
1、為什么采用發(fā)光二極管串聯(lián)后會發(fā)出較高分貝的聲音?
2、直接采用10K歐姆的電阻的時候聲音會比較小?
|