原创 蜂鸣器发声

2009-11-10 10:19 2138 4 4 分类: MCU/ 嵌入式
 

无源蜂鸣器,要输入交流电才可以发声,不同频率的输入,发出不同的声音。当然,并不美妙。

//蜂鸣器试验
#include<reg51.h>
#define uint unsigned int
sbit beep="P3"^2;
void main(void)
{
 uint n;
 while(1)
 {
  for(n=0;n<100;n++); //延时一段时间
  beep=~beep;     //取反,输出交流信号
 }
}
 

 


//间断的嘀嘀声,led闪烁
#include<reg51.h>
#define ulong unsigned long
#define uint unsigned int
sbit P10=P1^0;
sbit beep="P3"^2;


bi(ulong t)
{
 ulong c;
 uint n;
 for(c=0;c<t;c++)
 {
  for(n=0;n<50;n++); //延时
  beep=~beep;  //取反,产生交流信号
 }
}


void main(void)
{
 ulong n;
 while(1)
 {
  
  P10=0; //led on
  bi(1000); //嘀一阵
  P10=1;  //led off
  for(n=0;n<5000;n++); //停一阵
 }
}


 


//不断交替输出两个频率的声音,就会发出类似救护车的声音
//同时闪烁两个LED
#include<reg51.h>
#define ulong unsigned long
#define uint unsigned int
sbit P10=P1^0;
sbit P11=P1^1;
sbit beep="P3"^2;
void main(void)
{
 ulong ul;
 uint n;
 P10=0; //先点亮一个LED,以便两个LED交替闪烁
 while(1)
 { //输出约1秒钟一个频率的声音
  for(ul=0;ul<1000;ul++)
  {
   for(n=0;n<80;n++); //延时
   beep=~beep;
  }
  P10=~P10;
  P11=~P11;
  //输出约1S另外一种频率的声音
  for(ul=0;ul<1000;ul++)
  {
   for(n=0;n<50;n++); //延时
   beep=~beep;
  }
  P10=~P10;
  P11=~P11;
 }
}


 


//按键声音(类似手记等东东的按键声音)
#include<reg51.h>
#define ulong unsigned long
#define uint unsigned int
sbit beep="P3"^2;
sbit k1=P3^3;
bi(ulong t)
{
 ulong C;
 uint n;
 for(C=0;C<t;C++)
 {
  for(n=0;n<50;n++); //延时
  beep=~beep;
 }
}
void main(void)
{
 uint n;
 while(1)
 {
  if(!k1)
  {
   bi(200); //按键声音
   while(!k1); //等待按键松开
   for(n=0;n<2000;n++); //消除后沿抖动
  }
 }
}

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
4
关闭 站长推荐上一条 /3 下一条