工作原理
蜂鳴器發聲原理是電流通過電磁線圈,使電磁線圈産生磁場來驅動振動膜發聲的,是以需要一定的電流才能驅動它。51單片機IO口輸出的TTl電流無法驅動蜂鳴器,故而蜂鳴器内部需要一個三極管來進行電流放大。
有源與無源:
含有震蕩源的蜂鳴器稱為有源蜂鳴器,沒有震蕩源的蜂鳴器需要一個2k~5k的方波進行驅動。
原理圖
示例代碼
#include "reg52.h" //此檔案中定義了單片機的一些特殊功能寄存器
#include<intrins.h> //因為要用到左右移函數,是以加入這個頭檔案
typedef unsigned int u16; //對資料類型進行聲明定義
typedef unsigned char u8;
sbit beep=P1^5;
/*******************************************************************************
* 函 數 名 : delay
* 函數功能 : 延時函數,i=1時,大約延時10us
*******************************************************************************/
void delay(u16 i)
{
while(i--);
}
/*******************************************************************************
* 函 數 名 : main
* 函數功能 : 主函數
* 輸 入 : 無
* 輸 出 : 無
*******************************************************************************/
void main()
{
while(1)
{
beep=~beep;
delay(100); //延時大約1ms 通過修改此延時時間達到不同的發聲效果
}
}