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箇中斷...