单片机蜂鸣器编程
1. 单片机无源蜂鸣器的程序,请求解释下这个程序从第一个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就自增1,直到i=10
{ //当i=100是,for循环就结束
BEEP=!BEEP; //BEEP取反//蜂鸣器发生原理,进行电平取反,原来为高电平,下一次执行就变成低电平
for (j = 0 ; j<200 ; j++); //需要产生方波这个是延时程序
}
BEEP=1; //关闭蜂鸣器蜂鸣器电平不发生变化的时候,蜂鸣器无法发声。
}
2. 51单片机蜂鸣器程序
#include<reg51.h>
#include<intrins.h>
#defineucharunsignedchar
ucharpwm,ctl=5;
sbitfmq=P1^0;
bitflag;
voiddelay(uchara)
{
uchari;
while(a--)for(i=0;i<120;i++);
}
voidt0isr()interrupt1
{
pwm++;
if(pwm<=ctl)P0=0xff;
elseP0=0x00;
if(pwm==100)
{
pwm=0;
ctl++;
}
if(ctl==100)flag=1;
}
main()
{
uchari,led;
TMOD=0x02;
TH0=236;
TL0=236;
ET0=1;
EA=1;
while(1)
{
led=0xfe;
for(i=0;i<8;i++)
{
P0=led;
led=led<<1;
delay(200);
}
led=0xff;
delay(200);
led=0x7f;
for(i=0;i<8;i++)
{
P0=led;
led=led>>1;
delay(200);
}
TR0=1;
flag=1;
while(flag);
TR0=0;
}
}
3. 单片机用C语言让蜂鸣器发出两种声调,怎么编程
让蜂鸣器发出两种不同的声调很容易,只要给蜂鸣器的控制信号发送不同频率的脉冲就可以实现了,以下以延时方式来做。
#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++);
//由参数t行成不同的频率
}
}
voidmain()
{
SPK=0;
while(1)
{
if(K1==1)
{
Alarm(90);
Alarm(120);
}
}
}
4. 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);
}
}
(4)单片机蜂鸣器编程扩展阅读:
BUZZER蜂鸣器的分类:
1、按其驱动方式的原理分,可分为:有源蜂鸣器(内含驱动线路,也叫自激式蜂鸣器)和无源蜂鸣器(外部驱动,也叫他激式蜂鸣器)。
2、按构造方式的不同,可分为:电磁式蜂鸣器和压电式蜂鸣器。
3、按封装的不同,可分为:DIP BUZZER(插针蜂鸣器)和SMD BUZZER(贴片式蜂鸣器)。
4、按电流的不同,可分为:直流蜂鸣器和交流蜂鸣器,其中,以直流最为常见压电式蜂鸣器,用的是压电材料,即当受到外力导致压电材料发生形变时压电材料会产生电荷。同样,当通电时压电材料会发生形变。
电磁式蜂鸣器,主要是利用通电导体会产生磁场的特性,用一个固定的永久磁铁与通电导体产生磁力推动固定在线圈上的鼓膜。
由于两种蜂鸣器发音原理不同,压电式结构简单耐用但音调单一音色差,适用于报警器等设备。而电磁式由于音色好,所以多用于语音、音乐等设备。