51单片机之蜂鸣器

51单片机之蜂鸣器,第1张

      蜂鸣器是一种一体化结构的电子讯响器,采用直局闷灶流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。我们开发板上常用的蜂鸣器就是常桐扮常说的交流蜂鸣器或直流蜂鸣器(自激式蜂鸣器)。 直流蜂鸣器是给一定的驱动直流电压就会响。而交流蜂鸣器是需要给蜂鸣器一个脉冲才会响。常见的有PWM波控制蜂鸣器的频率。脉冲就是高低电平的切换,如下图:一个方波脉冲

我们用单片机的IO口实现一种这样高低电平的方波,驱动蜂鸣器发音。我们板子上配的就是交流蜂鸣器。

     接下来我们看一下蜂鸣器的硬件电路:

蜂鸣器通过三极管驱动。我们利用杜邦线将蜂鸣器的一端J8连接到板子上P1.5管脚上。

 示例程序:

  #include "reg52.h"

  #include "intrins.h"

  typedef unsigned char uint8

  typedef unsigned int  uint16

  sbit beep = P1^5

  void delay(uint16 i)

  {

  while(i--)

  }

  void main()

  {

while(1)

{

beep = ~beep

delay(10)

}

 罩尘 }

该程序实现蜂鸣器的响和停,程序较为简单,可以在此基础上进行扩展。

#include<reg51.h>

sbit buzzer = P1^0   声明区

void delay(int)  

void pulse_BZ(int,int,int)声明函数void main(void)

{

while(1)

{

pulse_BZ(500,1,1)  调用发声

delay(1000)        延时1000 X 0.5ms

pulse_BZ(500,1,1)

delay(1000)

pulse_BZ(500,1,1)

delay(1000)

pulse_BZ(200,1,1)

delay(1000)

pulse_BZ(200,1,1)

delay(1000)

}

}void delay(int x)

{

int i,j

for(i=0i<xi++)

for(j=0j<60j++)

}void pulse_BZ(int countint THint TL)

{

int i

for(i=oi<counti++)    //循环count次,时间count x 1ms

{

buzzer=1              银隐 //此程序段产生1HZ 信号

delay(TH)

buzzer=0

delay(TL)

}

}

51单片机蜂鸣器

开关C语言程锋皮厅序:

sbit P2^0=KEY

sbit P2^1=BEEP

unsigned char KEYNUM=0

void main()

{

while(1)

{

if(KEY==0)//开关按下;

{

KEYNUM++

}

if(KEYNUM==1)//第一次按下;

{

BEEP=1//蜂鸣器响

}

if(KEYNUM==2)/第二次按下;

{

BEEP=0//蜂鸣器不响

KEYNUM=0

}

}

}

51单片机,编写延时程序,控制蜂鸣器发声:

很简单的

#include<reg52.h>

#define uchar unsigned char

#define uint unsigned int

sbit fengmingqi=P0^0//声明IO口

void delay(uint x)//延时子函数

{

uint i,j

for(i=xi>0i--)

for(j=50j>0j--)

}

void main(void)

{

while(1) //循环

{

fengmingqi=1//p0.0口高电平,蜂鸣握辩器发声

delay(500)//延时

fengmingqi=0//p0.0口低电平,蜂鸣器不发声

delay(500)//延时

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8265342.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存