单片机学习记录——蜂鸣器

时间:2022-11-19 04:05:39

硬件连接
单片机学习记录——蜂鸣器
从图中可知,蜂鸣器只有一个接口与外部相连接。我们通过跳线把J8接口与单片机的P0.0接口相连接。

蜂鸣器发声原理
有源蜂鸣器,也称压电式压蜂鸣器,主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。 其中最重要的就是它的压电蜂鸣片,通常这是一种压电陶瓷,能进行电能与机械能的转换。
发声过程为:外部提供恒定直流电压,提供能量给多谐振荡器,多揩振荡器起振,并提供变化的电压和频率给压电陶瓷,压电陶瓷将电能转化为机械能,也就发出了声音。

无源蜂鸣器,也称电磁式蜂鸣器,主要由永磁体,线圈,振荡片构成。
发声过程为:外部按一定频率提供驱动一个振荡信号(一定占空比的方波,该信号作用于线圈,产生的磁声与永磁体共同作用,使一片金属片(振荡片)发生振动,从而发出声音。

总结:实验中所用的为无源蜂鸣器,只给高电平或者低电平是不能够发声的。需给出交替的电平,让其振荡片一张一合,才可以发出声音。

软件设计

/**************************************************************
* 函 数 名         : beep_on
* 函数功能         : 让蜂鸣器一直响
* 输    入         : 无
* 输    出         : 无
**************************************************************/
void beep_on(void)
{
 BEEP = 1;
 delay100us();

 BEEP = 0;
 delay100us();
}


/********************************************************
* 函 数 名         : beep_didi
* 函数功能         : 让蜂鸣器发出滴滴声
* 输    入         : 无
* 输    出         : 无
********************************************************/
void beep_didi(void)
{
 unsigned int i = 0;

 for(i=0; i<1000; i++)
 {
 beep_on(); 
 }

 for(i=0; i<1000; i++)
 {
 delay100us();
 delay100us(); 
 } 
}

烧录至开发板

扩展
既然能让蜂鸣器响,发出滴滴声,就能让它按照一定的节奏发出音乐来。