蜂鸣器发出7种音阶c语言程序_单片机蜂鸣器的驱动电路图,以及它的控制程序!收藏一下...

本文介绍了蜂鸣器的类型、驱动方式,并提供了使用C语言编写实现7种音阶的蜂鸣器程序,以及包含三极管驱动和续流二极管保护的蜂鸣器电路图。通过示例代码展示了4KHz和1KHz频率的发声,同时提及了用蜂鸣器播放音乐的可能性。
摘要由CSDN通过智能技术生成

蜂鸣器从结构区分分为压电式蜂鸣器和电磁式蜂鸣器。压电式为压电陶瓷片发音,电流比较小一些,电磁式蜂鸣器为线圈通电震动发音,体积比较小。

按照驱动方式分为有源蜂鸣器和无源蜂鸣器。这里的有源和无源不是指电源,而是振荡源。有源蜂鸣器内部带了振荡源,如图1中所示,给了 BUZZ 引脚一个低电平,蜂鸣器就会直接响。而无源蜂鸣器内部是不带振荡源的,要让他响必须给 500Hz~4.5KHz 之间的脉冲频率信号来驱动它才会响。有源蜂鸣器往往比无源蜂鸣器贵一些,因为里边多了振荡电路,驱动发音也简单,靠电平就可以驱动,而无源蜂鸣器价格比较便宜,此外无源蜂鸣器声音频率可以控制,而音阶与频率又有确定的对应关系,因此就可以做出来“do re mi fa sol la si”的效果,可以用它制作出简单的音乐曲目,比如生日歌、两只老虎等等。

201a140645715904d5435dd3e2bbbc40.png

图1 蜂鸣器电路原理图

我们来看一下图1的电路,蜂鸣器电流依然相对较大,因此需要用三极管驱动,并且加了一个 100 欧的电阻作为限流电阻。此外还加了一个 D4 二极管,这个二极管叫做续流二极管。我们的蜂鸣器是感性器件,当三极管导通给蜂鸣器供电时,就会有导通电流流过蜂鸣器。而我们知道,电感的一个特点就是电流不能突变,导通时电流是逐渐加大的,这点没有问题,但当关断时,经“电源-三极管-蜂鸣器-地”这条回路就截断了,过不了任何电流了,那么储存的电流往哪儿去呢,就是经过这个 D4 和蜂鸣器自身的环路来消耗掉了,从而就避免了关断时由于电感电流造成的反向冲击。接续关断时的电流,这就是续流二极管名称的由来。

蜂鸣器经常用于电脑、打印机、万用表这些设备上做提示音,提示音一般也很简单,就是简单发出个声音就行,我们用程序简单做了个 4KHZ 频率下的发声和 1KHZ 频率下的发声程序,同学们可以自己研究下程序,比较下实际效果。

4177d9d2489f591de831553c80897ee5.png

#include

sbit BUZZ = P1^6; //蜂鸣器控制引脚

unsigned char T0RH = 0; //T0 重载值的高字节

unsigned char T0RL = 0; //T0 重载值的低字节

void OpenBuzz(unsigned int frequ);

void StopBuzz();

void main(){

unsigned int i;

TMOD = 0x01; //配置 T0 工作在模式 1,但先不启动

EA = 1;<

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
蜂鸣器是一能够发出不同音调的电子设备,通过改变脉冲信号的频率来实现不同的音调。在C语言中,我们可以利用输出引脚和控制脉冲的延时来模拟发出不同的音阶。 为了实现7个音阶,我们首先需要确定每个音阶对应的频率。在标准音阶中,我们可以使用以下频率来表示每个音阶: C - 261.63 Hz D - 293.66 Hz E - 329.63 Hz F - 349.23 Hz G - 392.00 Hz A - 440.00 Hz B - 493.88 Hz 接下来,我们可以使用C语言中的延时函数来控制每个音阶发出的持续时间。假设我们要每个音阶持续100毫秒,那么我们可以使用延时函数delay(100)来实现。 最后,我们可以使用C语言中的IO口控制函数来控制蜂鸣器输出引脚的电平,从而发出不同频率的音调。假设我们使用IO口3作为蜂鸣器的输出引脚,那么我们可以使用以下代码来实现: #include <stdio.h> #include <wiringPi.h> #define outputPin 3 int main() { wiringPiSetup(); // 初始化GPIO pinMode(outputPin, OUTPUT); // 设置outputPin为输出模式 while(1) { digitalWrite(outputPin, HIGH); // 发出音调 delay(100); // 音调持续100毫秒 digitalWrite(outputPin, LOW); // 停止发声 delay(100); // 间隔100毫秒 } return 0; } 以上代码中,我们使用了wiringPi库来进行GPIO操作,需要提前安装并导入wiringPi头文件。通过循环不断发出音调,并在音调之间加上一定的间隔,从而实现7音阶的发声效果。 这样,我们就可以通过编写以上的C语言程序来让蜂鸣器发出7音阶了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值