当前位置:首页 > 单片机 > 单片机
[导读]蜂鸣器发声原理是电流通过电磁线圈,使电磁线圈产生磁场来驱动振动膜发声的,因此需要一定的电流才能驱动它,单片机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 }


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

在市场中,您可以购买布雷瑟的气象站,它们可以直接与“天气地下地图”连接,并将您当地的环境数据发布给全世界。所以,如果您愿意的话,根本无需做任何工作。但实际上,据我所知,所有型号都可以用于我们的项目,比如我的这个(7 个接...

关键字: 蜂鸣器 BME280 湿度传感器

我想用ESP32打造一款手持游戏体验。该项目重现了经典的“破砖机”(Breakout)机制,并针对小型OLED屏幕进行了优化。它包括一个由模拟操纵杆控制的反应桨和一个随机评分系统,其中一些块的价值比其他块高5倍。

关键字: OLED ESP32 蜂鸣器

狗被广泛认为是人类最好的朋友,这是有充分理由的——它们忠诚,和它们一起玩很有趣,而且会认真地听命令。但任何养过狗或照顾过狗的人都知道,照顾狗是一项繁重的工作。他们总是需要食物和水。即使在极热或极冷的天气里,它们也需要持续...

关键字: 机器狗 游戏控制器 伺服电机 蜂鸣器

一个通过被动蜂鸣器产生声音的电子笛子,可以主动控制音高、音量和被动照明。我制作这个文档是为了让你去构建它——祝你制作过程愉快!

关键字: 蜂鸣器 Arduino 电位器

本项目演示了如何使用ESP8266开发板和蜂鸣器创建一个简单的钢琴风格的旋律播放器。通过代码精确控制时间和频率,ESP8266可以产生音符,可以用来播放熟悉的曲调,比如《铃儿响叮当》。

关键字: ESP8266 开发板 蜂鸣器

用OLED, RGB led和蜂鸣器升级您的SMARS机器人!遵循我的电路设计,3D打印和自定义Android应用程序控制指南。

关键字: OLED RGB LED 蜂鸣器 机器人

在本教程中,我将使用ESP12E和OLED显示器制作游戏机。有了这个主机,我们可以玩不同类型的复古游戏,如蛇,太空战,猎鸭等,所以让我们开始教程。

关键字: OLED显示屏 ESP12E 蜂鸣器

DRM Watch 3是我自制的手表,基于夏普内存液晶显示屏,ESP32-S2和我想戴在手上的愿望。

关键字: ESP32 液晶显示屏 蜂鸣器

我们都有过这样的经历。当你从工作中得到应得的休息,或者放下你正在阅读的书,你伸手去拿手机,以为你只是想玩一个快速的游戏来放松一下。但在你意识到之前,你已经花了三个小时沉浸在TikTok上关于长得像名人的猫的视频中,或者无...

关键字: ATtiny85 蜂鸣器 OLED

STM32单片机在性能、外设资源、存储容量、开发环境、功耗管理以及应用领域等方面通常优于51单片机。然而,51单片机仍因其简单的结构和成本效益而在一些特定应用中保持竞争力。在选择单片机时,应根据具体的应用需求和预算进行权...

关键字: STM32单片机 51单片机
关闭