蜂鳴器編程
① 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);
}
}
(1)蜂鳴器編程擴展閱讀:
BUZZER蜂鳴器的分類:
1、按其驅動方式的原理分,可分為:有源蜂鳴器(內含驅動線路,也叫自激式蜂鳴器)和無源蜂鳴器(外部驅動,也叫他激式蜂鳴器)。
2、按構造方式的不同,可分為:電磁式蜂鳴器和壓電式蜂鳴器。
3、按封裝的不同,可分為:DIP BUZZER(插針蜂鳴器)和SMD BUZZER(貼片式蜂鳴器)。
4、按電流的不同,可分為:直流蜂鳴器和交流蜂鳴器,其中,以直流最為常見壓電式蜂鳴器,用的是壓電材料,即當受到外力導致壓電材料發生形變時壓電材料會產生電荷。同樣,當通電時壓電材料會發生形變。
電磁式蜂鳴器,主要是利用通電導體會產生磁場的特性,用一個固定的永久磁鐵與通電導體產生磁力推動固定在線圈上的鼓膜。
由於兩種蜂鳴器發音原理不同,壓電式結構簡單耐用但音調單一音色差,適用於報警器等設備。而電磁式由於音色好,所以多用於語音、音樂等設備。
② S7-400程序設置蜂鳴器用什麼指令
S7-400程序設置蜂鳴器用延時子程序。
蜂鳴器是一種一體化結構的電子訊響器,採用直流電壓供電,廣泛應用於計算機、列印機、電子玩具、定時器等電子產品中作為發聲器件。蜂鳴器分為有源蜂鳴器和無源蜂鳴器兩種,在電路中用字母「H」或「HA」(舊標准用「FM」、「ZZG」、「LB」、「JD」等)表示。那麼,怎麼區分有源蜂鳴器和無源蜂鳴器呢?有源蜂鳴器內部帶震盪源,所以只要一通電就會叫;而無源內部不帶震盪源,所以如果用直流信號無法令其鳴叫。必須用2K-5K的方波去驅動它,有源蜂鳴器往往比無源的貴,就是因為裡面多個震盪電路。
無源蜂鳴器的優點是:
1. 便宜;
2. 聲音頻率可控,可以做出「多來米發索拉西」的效果;
3. 在一些特例中,可以和LED復用一個控制口
③ 控制無源蜂鳴器響一聲的編程關鍵是什麼
摘要 不是BEEP=1,無源蜂鳴器就響,BEEP=0,無源蜂鳴器就不響,
④ 單片機用C語言讓蜂鳴器發出兩種聲調,怎麼編程
不會修改程序,但是可以送你一段程序,如果有心就看看吧;
//以下程序運行於STC12C**單片機
// BUZ為蜂鳴器輸出I/O口定義名稱
void Delay_1us(uint aa) //1T單片機/12MHz的n個us用於蜂鳴器
{
while (aa--)
{
_nop_();
_nop_();
}
}
/*----------------------------
響一聲短音
----------------------------*/
void beep(void)
{
uint a;//定義變數用於發聲的長度設置
for(a=300;a>0;a--)//第一個聲音的長度
{
BUZ = ~BUZ;//產生音頻
Delay_1us(100);//音調設置,延時調整賦值量可以調節音調
}
BUZ = 1;//音樂結束後揚聲器關閉
}
⑤ 51單片機蜂鳴器程序
#include<reg51.h>
#include<intrins.h>
#defineucharunsignedchar
ucharpwm,ctl=5;
sbitfmq=P1^0;
bitflag;
voiddelay(uchara)
{
uchari;
while(a--)for(i=0;i<120;i++);
}
voidt0isr()interrupt1
{
pwm++;
if(pwm<=ctl)P0=0xff;
elseP0=0x00;
if(pwm==100)
{
pwm=0;
ctl++;
}
if(ctl==100)flag=1;
}
main()
{
uchari,led;
TMOD=0x02;
TH0=236;
TL0=236;
ET0=1;
EA=1;
while(1)
{
led=0xfe;
for(i=0;i<8;i++)
{
P0=led;
led=led<<1;
delay(200);
}
led=0xff;
delay(200);
led=0x7f;
for(i=0;i<8;i++)
{
P0=led;
led=led>>1;
delay(200);
}
TR0=1;
flag=1;
while(flag);
TR0=0;
}
}
⑥ 單片機無源蜂鳴器的程序,請求解釋下這個程序從第一個for開始的意思!
#include//包含51的頭文件
sbit BEEP=P1^5;//sbit是位定義的意思,即使用beep來代表單片P1埠的第5個IO口
void beep()//蜂鳴器子函數,方便調用,
{
unsigned char i , j;//設置無符號字元型變數i;和J
for (i=0;i<100;i++)//定義一個for循環,每次完整地執行for裡面的所有語句,i就自增1,直到i=10
{ //當i=100是,for循環就結束
BEEP=!BEEP; //BEEP取反//蜂鳴器發生原理,進行電平取反,原來為高電平,下一次執行就變成低電平
for (j = 0 ; j<200 ; j++); //需要產生方波這個是延時程序
}
BEEP=1; //關閉蜂鳴器蜂鳴器電平不發生變化的時候,蜂鳴器無法發聲。
}
⑦ C51 單片機控制蜂鳴器程序
把2個蜂鳴器的頻率各寫成一個函數。
然後主函數里這樣寫
if (key1 == 0)
"執行1蜂鳴器頻率"
else if (key2 == 0)
"執行2蜂鳴器頻率"
⑧ 關於單片機編程式控制制蜂鳴器的問題。想問從第幾行程序蜂鳴器開始響,又是怎麼控制它的頻率變化,求大神解析
看你題里的意思應該是用單片機的P3.4口連接一個三極體,然後用三級管的開關作用驅動蜂鳴器發聲,從第12行開始,蜂鳴器開始響,然後經過延時,到第14行,響聲停止。想要控制蜂鳴器響的頻率,只要改變第13行和15行延時函數括弧裡面的數就可以了,設1為250微秒、設2為500微秒依次類推就可以了
⑨ 89c52單片機蜂鳴器程序編程
簡易蜂鳴器程序:
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit P36=P3^6;//我的系統板蜂鳴器口定義
sbit k1=P1^4; //按鈕1
sbit k2=P1^5; //按鈕2
void Delay(uint num)//延時函數
{uchar i,j;
for(i=0;i<255;i--)
{for(j=0;j>0;j++)}
}
main()
{
while(1)
{
if(k1==0)
{P36=0;//蜂鳴器響
Delay();
P36=1;//蜂鳴器停
Dalay();
key_time();
}
}
}