STC89C52学习笔记(九)

STC89C52学习笔记(

综述:本文主要介绍了蜂鸣器、蜂鸣器如何使用以及如何利用蜂鸣器播放不同频率声音。

一、蜂鸣器

1.定义和作用

电信号→声音信号,常用来产生按键音和报警音。

2.分类

有源:自带振荡器,给正负极接直流电压即可持续发生,频率稳定

无源:需要控制器提供震荡脉冲,可发出不同频率声音

3.原理

(1)高电平触发蜂鸣器

Q1做开关作用,如果给高电平,那么Q1的发射结正偏,三极管Q1相当于开关的闭合状态,蜂鸣器发生发声;如果给低电平,那么Q1的发射结反偏,三极管Q1相当于开关的断开状态,蜂鸣器不发生发声。

(2)低电平触发蜂鸣器

类似的,这张图就是低电平触发,也即是给低电平时,开关闭合,高电平时,开关断开。

(3)ULN2003驱动蜂鸣器

在51开发板上借用了ULN2003(给步进电机驱动)的一个空余引脚来驱动蜂鸣器,但是,自己设置的时候可以只用上面的低电平触发就行。

①ULN2003的逻辑框图如下:

②内部的非门相当于达林顿管,与二极管的连接电路具体如下:

③常见的达林顿管驱动蜂鸣器的电路:

4.播放提示音

利用之前建立的xmsDelay函数,每隔1ms响一次

Buzzer=!Buzzer;

Delay(1);

xms提示音

for(i=0;i<xms;i++)

{

  Buzzer=!Buzzer;

  Delay(1);

}

写一个500us延时函数,放置在蜂鸣器函数内,构成1ms蜂鸣器响声一次的函数。

void Buzzer_Delay500us ()

{

  unsigned char i;

  nop ()

  1=247;

  while (--i);

}

void Buzzer_Time (unsigned int ms)

{

  unsigned int i;

  for(i=0;i<ms*2;i++)

  Buzzer=!Buzzer;

  Buzzer_Delay500us ();

}

5.播放音乐

①认识乐谱

乐谱记得看音高和音长。假设4分音符是500ms,2分音符是1s。

②转化乐谱

音符→频率→周期→翻转一次时间(周期一半)→取整→定时器的重载值


参考视频:51单片机学习.视频

侵权联系删除!

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值