当前位置:首页 > 单片机 > 单片机
[导读]蜂鸣器发声原理是电流通过电磁线圈,使电磁线圈产生磁场来驱动振动膜发声的,因此需要一定的电流才能驱动它,单片机IO引脚输出的电流较小,单片机输出的TTL电平基本上驱动不了蜂鸣器,因此需要增加一个电流放大的电路

蜂鸣器发声原理是电流通过电磁线圈,使电磁线圈产生磁场来驱动振动膜发声的,因此需要一定的电流才能驱动它,单片机IO引脚输出的电流较小,单片机输出的TTL电平基本上驱动不了蜂鸣器,因此需要增加一个电流放大的电路。三极管的作用为驱动,通过三极管放大驱动电流,从而可以让蜂鸣器发出声音。

有源蜂鸣器和无源蜂鸣器的区别:

这里的“源”不是指电源。而是指震荡源。 也就是说,有源蜂鸣器内部带震荡源,所以只要一通电就会叫。
而无源内部不带震荡源,所以如果用直流信号无法令其鸣叫。必须用2K~5K的方波去驱动它。
有源蜂鸣器往往比无源的贵,就是因为里面多个震荡电路。
无源蜂鸣器的优点是:1。便宜,2。声音频率可控,可以做出“多来米发索拉西”的效果。3。在一些特例中,可以和LED复用一个控制口 有源蜂鸣器的优点是:程序控制方便 。

例程,参考自网络。

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

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

3 [功能] 通过单片机演奏音乐

4

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

6 #include

7 #include

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

9 //关于如何编制音乐代码, 其实十分简单,各位可以看以下代码.

10 //频率常数即音乐术语中的音调,而节拍常数即音乐术语中的多少拍;

11 //所以拿出谱子, 试探编吧!

12

13 sbit Beep = P1^5 ;

14

15 unsigned char n=0; //n为节拍常数变量

16 unsigned char code music_tab[] ={

17 0x18, 0x30, 0x1C , 0x10, //格式为: 频率常数, 节拍常数, 频率常数, 节拍常数,

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 控制节拍

68 { TH0=0xd8;

69 TL0=0xef;

70 n--;

71 }

72

73 void delay (unsigned char m) //控制频率延时

74 {

75 unsigned i=3*m;

76 while(--i);

77 }

78

79 void delayms(unsigned char a) //豪秒延时子程序

80 {

81 while(--a); //采用while(--a) 不要采用while(a--); 各位可编译一下看看汇编结果就知道了!

82 }

83

84 void main()

85 { unsigned char p,m; //m为频率常数变量

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;} //如果碰到结束符,延时1秒,回到开始再来一遍

96 else if(p==0xff) { i=i+1;delayms(100),TR0=0; goto a;} //若碰到休止符,延时100ms,继续取下一音符

97 else {m=music_tab[i++], n=music_tab[i++];} //取频率常数 和 节拍常数

98 TR0=1; //开定时器1

99 while(n!=0) Beep=~Beep,delay(m); //等待节拍完成, 通过P1口输出音频(可多声道哦!)

100 TR0=0; //关定时器1

101 }

102 }


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

这是一个很好的时钟,有很大的片段,你可以设置每个片段的颜色和强度。有三个按钮,蜂鸣器,光传感器和RTC与备用电池。时钟通过USB C供电,具有当前时间,计时器和秒表等功能。请随意添加您自己的功能!

关键字: 蜂鸣器 光传感器 RTC

Holtek新推出专为感烟报警器应用设计的Flash MCU - BA45F25752/BA45F25762,整合双通道感烟侦测AFE、红外/蓝光LED驱动、万年历与蜂鸣器驱动等功能。相较于先前的BA45F5750/BA...

关键字: 感烟报警器 MCU 蜂鸣器

HT16K24操作电压为2.4V~5.5V,内建I²C通信接口,提供三种LCD显示与按键模式:24SEG × 4COM + 24 KEY;22SEG × 6COM + 22 KEY;20SEG × 8COM + 20 K...

关键字: LCD MCU 蜂鸣器

Holtek新推出集成感烟探测AFE、双通道LED驱动及9 V蜂鸣器驱动的32-bit Arm® Cortex®-M0+ MCU HT32L62141,采用超低功耗ULP (Ultra-Low Power) 设计,并提供...

关键字: MCU 烟探测器 蜂鸣器

采用51单片机最小开发板,由8位自制独立按键控制。单片机芯片为STC89C52RC,晶振为@12.000 mhz。8X8LED点阵屏模块由MAX7219驱动,MAX7219包含一个自动扫描电路。你只需要把要显示的数据发送...

关键字: 51单片机 MAX7219 寄存器

这个项目是农业自动化的一个有趣的旋转:一个机器人松露嗅探器,可以自主导航一个空间,识别代表松露热点的AprilTags,并收集“松露”(用彩色球模拟)。灵感来源于现实生活中用猪和狗来定位地下的松露。

关键字: 机器人 蜂鸣器 计算机视觉

本项目将向您介绍来自Elecrow的新型1.28英寸圆形显示器,该显示器集成了ESP32C3芯片等!该项目将演示将设备固件更新到MicroPython并显示自定义消息的步骤。

关键字: 显示器 ESP32C3 蜂鸣器

把“G”分开是对吉尼斯啤酒饮用技巧的真正考验——准确地喝一口,液体的水平面要正好落在吉尼斯标志上“G”的中间。作为一个不喝酒的人,我想看看我是否能设计出一条通往成功的道路。所以,我做了一个设备,使用非接触式液体传感器和蜂...

关键字: 传感器 Arduino 蜂鸣器

在现代电子设备中,蜂鸣器作为一种能够发出声音信号的器件,被广泛应用于各种领域,如电子玩具、报警器、电子设备的提示音等。其中,有源压电式蜂鸣器以其只需接上额定直流电压即可发声的特点,受到了工程师们的青睐。那么,有源压电式蜂...

关键字: 蜂鸣器 器件 直流电压

我有很多魔方。有些很大;有些很小;有些花费了一大笔钱。两年前,我的弟弟把我的一个立方体扔在地上,毁了它,从那以后,我花了90美元升级了安全设备,以防止这种情况再次发生。但即使他没有破坏我的立方体,他也会在我展示的时候破坏...

关键字: Arduino Uno LCD 闪光灯 蜂鸣器
关闭