天天看點

51單片機系列--蜂鳴器

工作原理

蜂鳴器發聲原理是電流通過電磁線圈,使電磁線圈産生磁場來驅動振動膜發聲的,是以需要一定的電流才能驅動它。51單片機IO口輸出的TTl電流無法驅動蜂鳴器,故而蜂鳴器内部需要一個三極管來進行電流放大。

有源與無源:

含有震蕩源的蜂鳴器稱為有源蜂鳴器,沒有震蕩源的蜂鳴器需要一個2k~5k的方波進行驅動。

原理圖

51單片機系列--蜂鳴器

示例代碼

#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   通過修改此延時時間達到不同的發聲效果	
	}
}