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

硬件连接
这里写图片描述
从图中可知,蜂鸣器只有一个接口与外部相连接。我们通过跳线把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();   
    }   
}

烧录至开发板

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

猜你喜欢

转载自blog.csdn.net/jiaruitao777/article/details/80696071