51微控制器的蜂鳴器怎麼關閉求程式段

時間 2021-08-31 18:46:51

1樓:

while 迴圈中只有 speaker=0;就關閉了.

如果採用npn三極體作為蜂鳴器的開關管,使用 speaker=0; 關閉。

如果採用 pnp 的三極體,使用 speaker = 1; 關閉。

具體的程式段:

#include

sbit speaker=p1^0;

void delay(unsigned char x){unsigned char i,j;

for(i=0;i

2樓:匿名使用者

while 迴圈中只有

speaker=0;

一句,不就關閉了。如果採用npn三極體作為蜂鳴器的開關管,使用 speaker=0; 關閉。

如果採用 pnp 的三極體,使用 speaker = 1; 關閉。

3樓:匿名使用者

看你的怎麼接的, 給那個腳置高或者置底就行了。

4樓:匿名使用者

#include

sbit speaker=p1^0;

void delay(unsigned char x)main}

5樓:匿名使用者

直接輸出0/1不就ok了麼

6樓:匿名使用者

#include

sbit beep=p3^0;

void delayms(uint x) //延時}void main()}

求51微控制器蜂鳴器程式

7樓:匿名使用者

#include

sbit buzzer = p1^0   ;宣告區void delay(int)   ;

void pulse_bz(int,int,int);宣告函式void main(void)

}void delay(int x)

if(keynum==1)//第一次按下;

if(keynum==2)/第二次按下;}}51微控制器,編寫延時程式,控制蜂鳴器發聲:

很簡單的

#include

#define uchar unsigned char#define uint unsigned intsbit fengmingqi=p0^0; //宣告io口void delay(uint x)//延時子函式void main(void)}

8樓:匿名使用者

蜂鳴器是上點就響的,你兩個響中間弄個延時就可以了賽

51微控制器蜂鳴器開關c語言程式 15

9樓:匿名使用者

sbit p2^0=key;

sbit p2^1=beep;

unsigned char keynum=0;

void main()

if(keynum==1)//第一次按du下;

if(keynum==2)/第二次按下;}}開關去zhi抖我就不寫dao了!有什麼問題再討論吧!!

10樓:匿名使用者

檢測到按鍵按下,接蜂鳴器的管腳電位取反

11樓:匿名使用者

#include

#include

//本例採用89c52, 晶振為11.0592mhz

//關於如何編制**62616964757a686964616fe58685e5aeb931333332623262**, 其實十分簡單,各位可以看以下**.

//頻率常數即**術語中的音調,而節拍常數即**術語中的多少拍;

//所以拿出譜子, 試探編吧!

sbit beep = p1^5 ;

unsigned char n=0; //n為節拍常數變數

unsigned char code music_tab =;

void int0() interrupt 1 //採用中斷0 控制節拍

void delay (unsigned char m) //控制頻率延時

void delayms(unsigned char a) //豪秒延時子程式

void main()

//如果碰到結束符,延時1秒,回到開始再來一遍

else if(p==0xff) //若碰到休止符,延時100ms,繼續取下一音符

else //取頻率常數 和 節拍常數

tr0=1; //開定時器1

while(n!=0) beep=~beep,delay(m); //等待節拍完成, 通過p1口輸出音訊(可多聲道哦!)

tr0=0; //關定時器1}}

51微控制器蜂鳴器響程式怎麼寫?最簡單的。

12樓:

如果是有源蜂鳴器的話很簡單,只需要按照對應的電路給出電平(比如pnp驅動的只要給出低電平即可),無源的麻煩一點,需要給一定頻率的方波才能發聲,增強型51可以直接使用pwm,普通51可以使用定時器模擬pwm進行驅動,網上的例子很多,多看看就行了

13樓:做而論道

參考

求教,怎樣控制51微控制器的蜂鳴器發出不同頻率的聲音

14樓:你大爺

我這裡有現成的程式bai,把分給我,留du下信箱,我就給zhi你發過去,呵呵

dao。我利用軟體定時和中斷回方式都有,答可以演奏**,不過蜂鳴器演奏的實在夠難聽。

看來樓主對程式不感興趣,我還是告訴你吧,你定時必須知道準確的定時時間,**中do re mi-----si都是有一定的頻率也就是hz,都如下:

c1:262hz--thtl=0xf8b3

d1:294hz--0xf972

e1:330hz--0xfa14

f1:349hz--0xfa66

g1:392hz--0xfb03

a1:440hz--0xfb8f

b1:494hz--0xfc0b

前面是hz,後面是我用硬體定時得到的th和tl的值。

比如你想發c1的音,先用軟體定一個262*2hz的延時反覆呼叫,在一個週期內使buzzer響,再接著一個週期使buzzer不響,如此反覆就得到了262hz的聲音,也就類似發出了c1的聲音。

反正是夠難聽的。

15樓:那次遇到過你

用定時器來產生頻率,如產生100hz的聲音。

思路:100hz即每秒變換200次,每次的專時間就是1/200秒=0.005秒=5毫秒。

計算屬定時器的初值:th0 = 0x0ee; tl0 = 0x00;

#include

sbit beep=p0^0;//蜂鳴器引腳void main(void)

void timer0interrupt(void) interrupt 1

16樓:做而論道

搜一下:微控制器電子琴,即可。

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 100...

51微控制器的pc值怎麼算,51微控制器中如何進行相對定址?pc值怎麼計算?rel又怎麼給

鈺瀟 a 50h sp 50h 51h 30h 52h 50h pc 5030h a 50h sp 50h 因為在程式中,sp減了兩次,後來又加了兩次,在程式最後ret有在返回的時候減了兩次,即地址出棧,故最終結果是50h。51h 30h 52h 50h 因為ret指令返回時,出棧的結果是高地址 5...

關於51微控制器的中斷,關於51微控制器的中斷。

廣東人讀書好 中斷的概念 cpu在處理某一事件a時,發生了另一事件b請求cpu迅速去處理 中斷髮生 cpu暫時中斷當前的工作,轉去處理事件b 中斷響應和中斷服務 待cpu將事件b處理完畢後,再回到原來事件a被中斷的地方繼續處理事件a 中斷返回 這一過程稱為中斷 二 中斷源 在51微控制器中有5箇中斷...