1. 求51單片機蜂鳴器程序
#include<reg51.h>
sbit buzzer = P1^0 ;聲明區
void delay(int) ;
void pulse_BZ(int,int,int);聲明函數void main(void)
{
while(1)
{
pulse_BZ(500,1,1); 調用發聲
delay(1000); 延時1000 X 0.5ms
pulse_BZ(500,1,1);
delay(1000);
pulse_BZ(500,1,1);
delay(1000);
pulse_BZ(200,1,1);
delay(1000);
pulse_BZ(200,1,1);
delay(1000);
}
}void delay(int x)
{
int i,j;
for(i=0;i<x;i++)
for(j=0;j<60;j++);
}void pulse_BZ(int count;int TH;int TL)
{
int i;
for(i=o;i<count;i++) //循環count次,時間count x 1ms
{
buzzer=1; //此程序段產生1HZ 信號
delay(TH);
buzzer=0;
delay(TL);
}
}
2. 單片機驅動蜂鳴器的程序,原理不懂,為什麼能用定時器工作方式1來驅動
用定時器的工作方式1是用其16位的數據,也就是說數據范圍是最大的,可以做到頻率更精確,TR0在子程序PlayMusic裡面,因為是播放音樂,所以需要較為嚴格的控制定時器的啟停,所以沒有開始初始化時就打開定時器。
3. 關於單片機驅動蜂鳴器發出滴滴的聲音的程序怎麼寫
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit SPK=P1^0;
sbit K1=P1^7;
//發聲函數,注意這里是用揚聲器,不能用普通的蜂鳴器
void Alarm(uchar t)
{
uchari,j;
for(i=0;i<200;i++)
{
SPK=~SPK;
for(j=0;j<t;j++); //由參數t行成不同的頻率產生不同的聲音
}
}
voidmain()
{
SPK=0;
while(1)
{
if(K1==1)
{
Alarm(90);
Alarm(120);
}
}
}
4. 怎麼使用單片機控制蜂鳴器發聲
蜂鳴器有兩種,一種是無源的,另一種為有源的,確認的方法為:1)看封裝,如果引腳端為PCB板的,一般為無源的,引腳端為樹脂灌封的,一般為有源的。2)加電實驗,用5V電壓點擊接觸引腳時,只有「噠噠」聲的為無源的,發出一個單音響的為有源的。
兩種蜂鳴器用單片機的控制方法是一樣的,對於無源的,要求單片機送出一組斷續的音頻信號,使蜂鳴器按要求發聲,對於有源蜂鳴器,要求單片機送出一組斷續的電脈沖信號,用於分斷蜂鳴器的通斷狀態,而使有源蜂鳴器發出「嘀...嘀」,「嘀...嘀...嘀」等希望的聲音。
無源蜂鳴器舉例:
/**********************************************************************/
//聲響驅動程序 BELL--整點報時(鬧鍾音兩短一長)
/**********************************************************************/
void Beep(void)
{
uint a;//定義變數用於發聲的長度設置
uchar b;
for(b=2;b>0;b--){
for(a=200;a>0;a--){//第一個聲音的長度
beep = ~beep;//取反揚聲器驅動口,以產生音頻
Delay_1us(500);//音調設置延時
}
DelayM(1000);
}
for(a=1000;a>0;a--){//第一個聲音的長度
beep = ~beep;//取反揚聲器驅動口,以產生音頻
Delay_1us(500);//音調設置延時
}
beep = 1;//音樂結束後揚聲器關閉
}
有源蜂鳴器舉例:
void main(void)
{
NB=0;//有源蜂鳴器初始不送電
while(1)
{
NB=0;//有源蜂鳴器斷電
delay(300);//停一段時間
NB=1;//有源蜂鳴器送電
delay(1000);//響一段時間
}
}
5. 用單片機驅動蜂鳴器一秒響一次的程序!!!
用單片機驅動蜂鳴器一秒響一次的程序!!!
這個程序用的不精準的延時所以不行啊,你最好用定時器去做延時,這樣能精準·!
6. 51單片機蜂鳴器程序是什麼
51單片機蜂鳴器程序為:
#include"reg52.h"
typedef unsigned char u8;
typedef unsigned int u16;
sbit beep=P1^5;
void delay(u16 i)
{
while(i--);
}
void main()
{
while(1)
{
beep=~beep;
delay(1000);//控制音調頻率
beep=~beep;/控制聲音大小
delay(10);
}
}
(6)單片機驅動蜂鳴器程序擴展閱讀:
BUZZER蜂鳴器的分類:
1、按其驅動方式的原理分,可分為:有源蜂鳴器(內含驅動線路,也叫自激式蜂鳴器)和無源蜂鳴器(外部驅動,也叫他激式蜂鳴器)。
2、按構造方式的不同,可分為:電磁式蜂鳴器和壓電式蜂鳴器。
3、按封裝的不同,可分為:DIP BUZZER(插針蜂鳴器)和SMD BUZZER(貼片式蜂鳴器)。
4、按電流的不同,可分為:直流蜂鳴器和交流蜂鳴器,其中,以直流最為常見壓電式蜂鳴器,用的是壓電材料,即當受到外力導致壓電材料發生形變時壓電材料會產生電荷。同樣,當通電時壓電材料會發生形變。
電磁式蜂鳴器,主要是利用通電導體會產生磁場的特性,用一個固定的永久磁鐵與通電導體產生磁力推動固定在線圈上的鼓膜。
由於兩種蜂鳴器發音原理不同,壓電式結構簡單耐用但音調單一音色差,適用於報警器等設備。而電磁式由於音色好,所以多用於語音、音樂等設備。
7. 求51單片機蜂鳴程序代碼
SPK BIT P2.1
ORG 0000H
LJMP START
ORG 000BH
INC 20H ;中斷服務,中斷計數器加1
MOV TH0,#0D8H
MOV TL0,#0EFH ;12M晶振,形成10毫秒中斷
RETI
START:
MOV SP,#50H
MOV TH0,#0D8H
MOV TL0,#0EFH
MOV TMOD,#01H
MOV IE,#82H
MUSIC0:
NOP
MOV DPTR,#DAT ;表頭地址送DPTR
MOV 20H,#00H ;中斷計數器清0
MOV B,#00H ;表序號清0
MUSIC1:
NOP
CLR A
MOVC A,@A+DPTR ;查表取代碼
JZ END0 ;是00H,則結束
CJNE A,#0FFH,MUSIC5
LJMP MUSIC3
MUSIC5:
NOP
MOV R6,A
INC DPTR
MOV A,B
MOVC A,@A+DPTR ;取節拍代碼送R7
MOV R7,A
SETB TR0 ;啟動計數
MUSIC2:
NOP
CPL SPK
MOV A,R6
MOV R3,A
LCALL DEL
MOV A,R7
CJNE A,20H,MUSIC2 ;中斷計數器(20H)=R7否?
;不等,則繼續循環
MOV 20H,#00H ;等於,則取下一代碼
INC DPTR
; INC B
LJMP MUSIC1
MUSIC3:
NOP
CLR TR0 ;休止100毫秒
MOV R2,#0DH
MUSIC4:
NOP
MOV R3,#0FFH
LCALL DEL
DJNZ R2,MUSIC4
INC DPTR
LJMP MUSIC1
END0:
NOP
MOV R2,#64H ;歌曲結束,延時1秒後繼續
MUSIC6:
MOV R3,#00H
LCALL DEL
DJNZ R2,MUSIC6
LJMP MUSIC0
DEL:
NOP
DEL3:
MOV R4,#02H
DEL4:
NOP
DJNZ R4,DEL4
NOP
DJNZ R3,DEL3
RET
NOP
DAT:
db 26h,20h,20h,20h,20h,20h,26h,10h,20h,10h,20h,80h,26h,20h,30h,20h
db 30h,20h,39h,10h,30h,10h,30h,80h,26h,20h,20h,20h,20h,20h,1ch,20h
db 20h,80h,2bh,20h,26h,20h,20h,20h,2bh,10h,26h,10h,2bh,80h,26h,20h
db 30h,20h,30h,20h,39h,10h,26h,10h,26h,60h,40h,10h,39h,10h,26h,20h
db 30h,20h,30h,20h,39h,10h,26h,10h,26h,80h,26h,20h,2bh,10h,2bh,10h
db 2bh,20h,30h,10h,39h,10h,26h,10h,2bh,10h,2bh,20h,2bh,40h,40h,20h
db 20h,10h,20h,10h,2bh,10h,26h,30h,30h,80h,18h,20h,18h,20h,26h,20h
db 20h,20h,20h,40h,26h,20h,2bh,20h,30h,20h,30h,20h,1ch,20h,20h,20h
db 20h,80h,1ch,20h,1ch,20h,1ch,20h,30h,20h,30h,60h,39h,10h,30h,10h
db 20h,20h,2bh,10h,26h,10h,2bh,10h,26h,10h,26h,10h,2bh,10h,2bh,80h
db 18h,20h,18h,20h,26h,20h,20h,20h,20h,60h,26h,10h,2bh,20h,30h,20h
db 30h,20h,1ch,20h,20h,20h,20h,80h,26h,20h,30h,10h,30h,10h,30h,20h
db 39h,20h,26h,10h,2bh,10h,2bh,20h,2bh,40h,40h,10h,40h,10h,20h,10h
db 20h,10h,2bh,10h,26h,30h,30h,80h,00H
END
這是一個音樂播放程序,通過使用不同頻率的方波驅動蜂鳴器,產生不同音符
8. 單片機AT80S52怎麼驅動蜂鳴器
AT80S52
單片機
io口的
驅動能力
很弱,如果把
蜂鳴器
的+接正
電源
蜂鳴器的-接單片機的io口,並在程序中把這個io口置「0」,也許會聽到很輕微的
響聲
,但是,如果把蜂鳴器的-接電源地,蜂鳴器的+接單片機的io口,並在程序中把這個io口置「1」,由於單片機的驅動能力嚴重不足,是聽不到響聲的。需要加驅動才可以。