【51单片机】蜂鸣器

【51单片机】蜂鸣器

  • 【51单片机】蜂鸣器
    • 1 蜂鸣器介绍
      • 1.1蜂鸣器分类
    • 2. 电路设计
    • 3.软件设计
      • 3.1单片机如何实现延时
      • 3.2示例代码

【51单片机】蜂鸣器

1 蜂鸣器介绍

1.1蜂鸣器分类

  1. 无源蜂鸣器
    无源蜂鸣器: 百科.

无源蜂鸣器利用电磁感应现象,为音圈接入交变电流后形成的电磁铁与永磁铁相吸或相斥而推动振膜发声,接入直流电只能持续推动振膜而无法产生声音,只能在接通或断开时产生声音。
无源蜂鸣器的工作原理与扬声器相同。

  1. 有源蜂鸣器
    有源蜂鸣器: 百科.

有源蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。蜂鸣器在电路中用字母“H”或“HA”(旧标准用“FM”、“LB”、“JD”等)表示。

Note:本试验采用无源蜂鸣器

2. 电路设计

【51单片机】蜂鸣器_第1张图片

  • 由于蜂鸣器的工作电流一般比较大,以致于单片机的I/O 口是无法直接驱动的,所以要利用放大电路来驱动,一般使用三极管来放大电流就可以了

3.软件设计

软件设计方法
• 先分析一下蜂鸣器。所使用的蜂鸣器的工作频率是2000Hz,也就是说蜂鸣器的驱动信号波形周期是500μs,由于是1/2duty 的信号,所以一个周期内的高电平和低电平的时间宽度都为250μs。
• IO口电平取反方法:I/O 口的电平进行翻转一次,直到蜂鸣器不需要鸣叫的时候,将I/O 口的电平设置为低电平即可。不鸣叫时将I/O 口的输出电平设置为低电平是为了防止漏电。

3.1单片机如何实现延时

  1. 用单片机中的小闹钟----定时器
  2. 利用指令执行时要消耗时间的特性来实现延时 , 用_nop_();空操作指令实现短暂延
    与汇编中的NOP直接对应,单周期指令;晶振为11.0592MHz时,延时0.0904us。
    注意:如果要用_nop_();请先包含 头文件

3.2示例代码

#include
sbit FM=P2^3;	  //把J1 LED跳线帽取下
void delay(float t)
{
     
	unsigned int j,i;
	j=t*100;
	while(j--)	 // 150400-1 
	{
     
	  for(i=1505;i;i--);   //1505-1=1504   1504-1=1503 
	}
}
void main()
{
     
	while(1)
	{
     
	FM=1;  //高电平报警 发声音
	delay(0.5);
	FM=0;   //不响
    delay(0.5);
	}
}

你可能感兴趣的:(51单片机,单片机)