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

2019-04-15 17:29发布

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