STC学习:蜂鸣器

本文需要用到定时器与中断的相关内容,已做该内容总结:
STC学习:定时器与中断

程序设计目标及程序运行效果说明
程序设计目标:通过按下按键1来控制无源蜂鸣器的发声。
程序运行效果说明:蜂鸣器初始状态是没有发声;按下按键1,则蜂鸣器开始发声。再次按下按键1,蜂鸣器停止发声。

程序相关电路及原理说明
1.原理说明
本实验利用无源蜂鸣器与按键key1两外接模块实现蜂鸣器的发声功能。
蜂鸣器分为有源蜂鸣器和无源蜂鸣器,这里的源特指振荡源;有源蜂鸣器直接加电就可以响起,无源蜂鸣器需要我们给提供振荡源。理想的振荡源为一定频率的方波。
本实验板采用的是无源蜂鸣器,相比于有源蜂鸣器,无源蜂鸣器的优点在于价格便宜,可以通过控制其振动频率来改变发出的声音,因此,无源蜂鸣器可以用于音乐的播放。而有源蜂鸣器的优点在于使用简单,不需要编写“乐谱”。本实验板使用的无源蜂鸣器是电磁式蜂鸣器,电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。接通电源后,接收到的音频信号电流通过电磁线圈,使电磁线圈产生磁场。振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。
无源蜂鸣器只需改变Beep端口的电平,产生一个周期性的方波即可使蜂鸣器发生声音,不同的频率发出的声音不同。其中,ULN2003是一个功放,用于放大电流。电阻R14和电容C21是用来保护电路的。若人为将Beep端口的电平一直置为高电平,在没有保护电路的情况下,容易烧毁电路,但即使有保护电路也应该注意不要将Beep端口长时间置于高电平,这对器件也是有一定损害的
程序烧入单片机后,需要按下按键key1才会进行演奏。

蜂鸣器引脚:Bee=P3.4
KEY1引脚:KEY1=P3.2
初始化:设置推挽输出,设置中断

2.相关电路
2.2无源蜂鸣器电路原理图
在这里插入图片描述
2.3按键控制电路
在这里插入图片描述
在这里插入图片描述

用途
蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中做发声器件

代码如下

#include<STC15F2K60S2.H>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit Bee=P3^4;
sbit KEY1=P3^2;
uchar flag;
void init()
{
     P3M1=0x00;
	 P3M0=0x10;//调整蜂鸣器为推挽模式
	 TMOD=0x00;
	 TH0=0xff;
	 TL0=0x10;
	 ET0=1;
	 EA=1;
	 TR0=1;
	 flag=0;
	 P0=0X00;
	 Bee=0;
}
void delay(int n)
{
   while(n--);
}
void T0_interrupt()interrupt 1
{
   if(flag)
	    Bee=~Bee;
	 else
	    Bee=0;
}
void main()
{
   init();
	 while(1)
	 {
        if(KEY1==0)
        {
            delay(10);//延时消抖
            if(KEY1==0)
            {
                while(!KEY1);
                flag=~flag;//蜂鸣器开关标志位变化
            }
        }
	 }
}

  • 11
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

布布要成为最负责的男人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值