有源跟無源,其實就是蜂鳴器的內部是否帶有一個振動源,不過就因為硬件的一點點差異,導致編寫代碼會出現很大的區別。
單片機程序如下:
- #include <reg52.h>
- #define uchar unsigned char
- #define uint unsigned int
- sbit beep = P0^7;
- void Delay(uint time)//延時函數,有參函數
- {
- uint i,j;
- for(i=time; i>0; i--)
- for(j=110; j>0; j--);
- }
- void Buzzer(uint Number,uint Time) //可以選擇鳴響次數和音頻
- {
- uint i=0,j=0,k=0;
- for(i = 0; i < Number; i ++)
- {
- for(j=0; j<Time; j++)
- {
- beep = !beep; //beep取反
- for (k=0; k<100; k++); //需要產生方波,調節音頻
- }
- Delay(100); //間隔時間
- }
- beep = 1; //注意PNP=0;NPN=1關閉蜂鳴器,否則三極管電流會很大。
- }
- void main()
- {
- while(1)
- {
- Buzzer(50,1000); //任意調節參數,選擇自己喜歡的鳴叫次數和音頻
- }
- }
復制代碼
所有資料51hei提供下載:
無源蜂鳴器驅動.zip
(25.87 KB, 下載次數: 21)
2018-12-3 23:54 上傳
點擊文件名下載附件
無源蜂鳴器驅動 下載積分: 黑幣 -5
|