51单片机蜂鸣器程序是什么?

要蜂鸣器3次长音 2次短音

51单片机蜂鸣器程序为:

#include"reg52.h"

typedef unsigned char u8;

typedef unsigned int u16;

sbit beep=P1^5;

void delay(u16 i)

{

while(i--);

}

void main()

{

while(1)

{

beep=~beep;

delay(1000);//控制音调频率

beep=~beep;/控制声音大小

delay(10);

}

}

扩展资料:

BUZZER蜂鸣器的分类:

1、按其驱动方式的原理分,可分为:有源蜂鸣器(内含驱动线路,也叫自激式蜂鸣器)和无源蜂鸣器(外部驱动,也叫他激式蜂鸣器)。

2、按构造方式的不同,可分为:电磁式蜂鸣器和压电式蜂鸣器。

3、按封装的不同,可分为:DIP BUZZER(插针蜂鸣器)和SMD BUZZER(贴片式蜂鸣器)。

4、按电流的不同,可分为:直流蜂鸣器和交流蜂鸣器,其中,以直流最为常见压电式蜂鸣器,用的是压电材料,即当受到外力导致压电材料发生形变时压电材料会产生电荷。同样,当通电时压电材料会发生形变。

电磁式蜂鸣器,主要是利用通电导体会产生磁场的特性,用一个固定的永久磁铁与通电导体产生磁力推动固定在线圈上的鼓膜

由于两种蜂鸣器发音原理不同,压电式结构简单耐用但音调单一音色差,适用于报警器等设备。而电磁式由于音色好,所以多用于语音、音乐等设备。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2019-08-27

#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=0;i<x;i++)
for(j=0;j<60;j++);
}void pulse_BZ(int count;int TH;int TL)
{
int i;
for(i=o;i<count;i++)    //循环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=x;i>0;i--)
for(j=50;j>0;j--);
}
void main(void)
{

while(1) //循环
{
fengmingqi=1; //p0.0口高电平,蜂鸣器发声
delay(500); //延时
fengmingqi=0; //p0.0口低电平,蜂鸣器不发声
delay(500); //延时
}
}

本回答被网友采纳
第2个回答  2019-12-21
#include <REGX51.H>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit buzzer=P2^0;
uchar temp[4]={4,0,2,0};
uchar n=1;
void delay250uS(void)//延时250us
{
unsigned char a,b;
for(b=19;b>0;b--)
for(a=5;a>0;a--);
}
void main(void)
{
uchar i=0,n0=0;
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
ET0=1;
EA=1;
TR0=1;
while(1)
{
n0=n;
if(n0!=0)
{
if(++i==temp[n])i=1;
if((i==1)|(i==temp[n]/2))buzzer=~buzzer;
delay250uS();
}

}
}
void Timer0Interrupt(void) interrupt 1
{
static uchar temp1=0;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
if(++temp1==10)
{
if(++n==4)n=0;
}
}
第3个回答  2019-12-21
蜂鸣器经常用于电脑、打印机、万用表这些设备上做提示音,提示音一般也很简单,就是简单发出个声音就行,

51单片机蜂鸣器程序是什么?
51单片机蜂鸣器程序为:include"reg52.h"typedef unsigned char u8;typedef unsigned int u16;sbit beep=P1^5;void delay(u16 i){ while(i--);} void main(){ while(1){ beep=~beep;delay(1000);\/\/控制音调频率 beep=~beep;\/控制声音大小 delay(10);} } ...

求51单片机蜂鸣器程序
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=x;i>0;i--)for(j=50;j>0;j--);}void main(void){while(1) \/\/循环{fe...

51单片机蜂鸣器程序
include<reg51.h>#include<intrins.h>#define uchar unsigned charuchar pwm,ctl=5;sbit fmq=P1^0;bit flag;void delay(uchar a){uchar i;while(a--)for(i=0;i<120;i++);}void t0isr() interrupt 1{pwm++;if(pwm<=ctl)P0=0xff;else P0=0x00;if(pwm==100) { pwm=0; ...

51单片机用三个按键控制报警,任意按两个按键蜂鸣器就报警的程序
1. 程序的主要功能是通过三个按键(k1、k2、k3)来控制蜂鸣器的报警。2. 在主函数main()中,定义了一个字符变量beepflag,用于表示蜂鸣器的状态,初始值为0。3. 进入一个无限循环,等待用户操作。4. 首先检查k1按键是否被按下,如果是,将beepflag的最低位设置为1;否则,将其设置为0。5. 接着...

51单片机如何让蜂鸣器只响0.5s
51单片机驱动蜂鸣器(蜂鸣器分有源与无源两种,有源指加电压就会响的,无源需要以一定频率的交变脉冲电压驱动),如果只响0.5S,只要用一个定时0.5S开关信号驱动、或者用0.5S的一定频率的脉动信号驱动就可以了。

51单片机,让发光二极管由亮变灭时蜂鸣器响一声的程序该怎么写?
你们给问题总是条件不全面!假设P1.1控制LED,低电平亮;P1.2控制蜂鸣器,低电平响。sbit p11=p1^1;sbit p12=p1^2;if((p11=!p11) && (p11==1)){ p12=0;\/\/此处延时50毫秒 p12=1;}

求: 用51单片机c语言操作使蜂鸣器奏出“祝你生日快乐”音乐的全部程序...
\/\/生日歌 code unsigned char sszymmh[]={5,1,1, 5,1,1, 6,1,2, 5,1,2, 1,2,2, 7,1,4,5,1,1, 5,1,1, 6,1,2, 5,1,2, 2,2,2, 1,2,4,5,1,1, 5,1,1, 5,2,2, 3,2,2, 1,2,2, 7,1,2, 6,1,2,4,2,1, 4,2,1, 3,2,2, 1,2,2, 2,2,...

单片机无源蜂鸣器的程序,请求解释下这个程序从第一个for开始的意思!_百...
include\/\/包含51的头文件 sbit BEEP=P1^5;\/\/sbit是位定义的意思,即使用beep来代表单片P1端口的第5个IO口 void beep()\/\/蜂鸣器子函数,方便调用,{ unsigned char i , j;\/\/设置无符号字符型变量i;和J for (i=0;i<100;i++)\/\/定义一个for循环,每次完整地执行for里面的所有语句,i就自...

有哪位大神知道51单片机蜂鸣器响1秒的c程序怎么写?
sbit key=P1^4;void t0isr() interrupt 1 { TH0=(65536-50000)\/256;TL0=(65536-50000)%256;cnt++;if(cnt>20){ TR0=0;cnt=0;fmq=1;} } main(){ TMOD=0x01;TH0=(65536-50000)\/256;TL0=(65536-50000)%256;ET0=1;EA=1;while(1){ if(key==0){ while(key==0);TR0=1;fmq...

求教,怎样控制51单片机的蜂鸣器发出不同频率的声音
蜂鸣器是不能发出不同频率的声音的,要发出不同频率的声音,你需要选择speaker,比如:include<reg51.h> define uchar unsigned char define uint unsigned int sbit SPK=P1^0;sbit K1=P1^7;\/\/发声函数 void Alarm(uchar t){ uchari,j;for(i=0;i<200;i++){ SPK=~SPK;for(j=0;j<t;j...

相似回答