硬件连接
从图中可知,蜂鸣器只有一个接口与外部相连接。我们通过跳线把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();
}
}
烧录至开发板
扩展
既然能让蜂鸣器响,发出滴滴声,就能让它按照一定的节奏发出音乐来。