日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]蜂鳴器發(fā)聲原理是電流通過電磁線圈,使電磁線圈產(chǎn)生磁場(chǎng)來驅(qū)動(dòng)振動(dòng)膜發(fā)聲的,因此需要一定的電流才能驅(qū)動(dòng)它,單片機(jī)IO引腳輸出的電流較小,單片機(jī)輸出的TTL電平基本上驅(qū)動(dòng)不了蜂鳴器,因此需要增加一個(gè)電流放大的電路

蜂鳴器發(fā)聲原理是電流通過電磁線圈,使電磁線圈產(chǎn)生磁場(chǎng)來驅(qū)動(dòng)振動(dòng)膜發(fā)聲的,因此需要一定的電流才能驅(qū)動(dòng)它,單片機(jī)IO引腳輸出的電流較小,單片機(jī)輸出的TTL電平基本上驅(qū)動(dòng)不了蜂鳴器,因此需要增加一個(gè)電流放大的電路。三極管的作用為驅(qū)動(dòng),通過三極管放大驅(qū)動(dòng)電流,從而可以讓蜂鳴器發(fā)出聲音。

有源蜂鳴器和無源蜂鳴器的區(qū)別:

這里的“源”不是指電源。而是指震蕩源。 也就是說,有源蜂鳴器內(nèi)部帶震蕩源,所以只要一通電就會(huì)叫。
而無源內(nèi)部不帶震蕩源,所以如果用直流信號(hào)無法令其鳴叫。必須用2K~5K的方波去驅(qū)動(dòng)它。
有源蜂鳴器往往比無源的貴,就是因?yàn)槔锩娑鄠€(gè)震蕩電路。
無源蜂鳴器的優(yōu)點(diǎn)是:1。便宜,2。聲音頻率可控,可以做出“多來米發(fā)索拉西”的效果。3。在一些特例中,可以和LED復(fù)用一個(gè)控制口 有源蜂鳴器的優(yōu)點(diǎn)是:程序控制方便 。

例程,參考自網(wǎng)絡(luò)。

1 /************************************************************************

2 [文件名] C51音樂程序(八月桂花)

3 [功能] 通過單片機(jī)演奏音樂

4

5 /**********************************************************************/

6 #include

7 #include

8 //本例采用89C52, 晶振為11.0592MHZ

9 //關(guān)于如何編制音樂代碼, 其實(shí)十分簡(jiǎn)單,各位可以看以下代碼.

10 //頻率常數(shù)即音樂術(shù)語中的音調(diào),而節(jié)拍常數(shù)即音樂術(shù)語中的多少拍;

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

12

13 sbit Beep = P1^5 ;

14

15 unsigned char n=0; //n為節(jié)拍常數(shù)變量

16 unsigned char code music_tab[] ={

17 0x18, 0x30, 0x1C , 0x10, //格式為: 頻率常數(shù), 節(jié)拍常數(shù), 頻率常數(shù), 節(jié)拍常數(shù),

18 0x20, 0x40, 0x1C , 0x10,

19 0x18, 0x10, 0x20 , 0x10,

20 0x1C, 0x10, 0x18 , 0x40,

21 0x1C, 0x20, 0x20 , 0x20,

22 0x1C, 0x20, 0x18 , 0x20,

23 0x20, 0x80, 0xFF , 0x20,

24 0x30, 0x1C, 0x10 , 0x18,

25 0x20, 0x15, 0x20 , 0x1C,

26 0x20, 0x20, 0x20 , 0x26,

27 0x40, 0x20, 0x20 , 0x2B,

28 0x20, 0x26, 0x20 , 0x20,

29 0x20, 0x30, 0x80 , 0xFF,

30 0x20, 0x20, 0x1C , 0x10,

31 0x18, 0x10, 0x20 , 0x20,

32 0x26, 0x20, 0x2B , 0x20,

33 0x30, 0x20, 0x2B , 0x40,

34 0x20, 0x20, 0x1C , 0x10,

35 0x18, 0x10, 0x20 , 0x20,

36 0x26, 0x20, 0x2B , 0x20,

37 0x30, 0x20, 0x2B , 0x40,

38 0x20, 0x30, 0x1C , 0x10,

39 0x18, 0x20, 0x15 , 0x20,

40 0x1C, 0x20, 0x20 , 0x20,

41 0x26, 0x40, 0x20 , 0x20,

42 0x2B, 0x20, 0x26 , 0x20,

43 0x20, 0x20, 0x30 , 0x80,

44 0x20, 0x30, 0x1C , 0x10,

45 0x20, 0x10, 0x1C , 0x10,

46 0x20, 0x20, 0x26 , 0x20,

47 0x2B, 0x20, 0x30 , 0x20,

48 0x2B, 0x40, 0x20 , 0x15,

49 0x1F, 0x05, 0x20 , 0x10,

50 0x1C, 0x10, 0x20 , 0x20,

51 0x26, 0x20, 0x2B , 0x20,

52 0x30, 0x20, 0x2B , 0x40,

53 0x20, 0x30, 0x1C , 0x10,

54 0x18, 0x20, 0x15 , 0x20,

55 0x1C, 0x20, 0x20 , 0x20,

56 0x26, 0x40, 0x20 , 0x20,

57 0x2B, 0x20, 0x26 , 0x20,

58 0x20, 0x20, 0x30 , 0x30,

59 0x20, 0x30, 0x1C , 0x10,

60 0x18, 0x40, 0x1C , 0x20,

61 0x20, 0x20, 0x26 , 0x40,

62 0x13, 0x60, 0x18 , 0x20,

63 0x15, 0x40, 0x13 , 0x40,

64 0x18, 0x80, 0x00

65 };

66

67 void int0() interrupt 1 //采用中斷0 控制節(jié)拍

68 { TH0=0xd8;

69 TL0=0xef;

70 n--;

71 }

72

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

74 {

75 unsigned i=3*m;

76 while(--i);

77 }

78

79 void delayms(unsigned char a) //豪秒延時(shí)子程序

80 {

81 while(--a); //采用while(--a) 不要采用while(a--); 各位可編譯一下看看匯編結(jié)果就知道了!

82 }

83

84 void main()

85 { unsigned char p,m; //m為頻率常數(shù)變量

86 unsigned char i=0;

87 TMOD&=0x0f;

88 TMOD"=0x01;

89 TH0=0xd8;TL0=0xef;

90 IE=0x82;

91 play:

92 while(1)

93 {

94 a: p=music_tab[i];

95 if(p==0x00) { i=0, delayms(1000); goto play;} //如果碰到結(jié)束符,延時(shí)1秒,回到開始再來一遍

96 else if(p==0xff) { i=i+1;delayms(100),TR0=0; goto a;} //若碰到休止符,延時(shí)100ms,繼續(xù)取下一音符

97 else {m=music_tab[i++], n=music_tab[i++];} //取頻率常數(shù) 和 節(jié)拍常數(shù)

98 TR0=1; //開定時(shí)器1

99 while(n!=0) Beep=~Beep,delay(m); //等待節(jié)拍完成, 通過P1口輸出音頻(可多聲道哦!)

100 TR0=0; //關(guān)定時(shí)器1

101 }

102 }


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉