十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
1、无源蜂鸣器,需要外部提供脉冲信号才会发声,且声音会随脉冲频率变化而变化。而有源蜂鸣器内部有振荡器,所以只需要提供电压(高电平)就能发声,它们的原理不同。
成都创新互联专注于射阳网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供射阳营销型网站建设,射阳网站制作、射阳网页设计、射阳网站官网定制、成都微信小程序服务,打造射阳网络公司原创品牌,更为您提供射阳网站排名全网营销落地服务。
2、例如定义 一个IO连接蜂鸣器。比如,sbit fmq=P1^0; 再来个500US延时函数。
void beep() //所以会产生1KHZ频率声音
{
fmq=0;
delay500us();
fmq=1;
delay500us();
}
就是一段声音啊 for只是控制蜂鸣器响的时间长短而已 你把400变800就会发现响的时间延长一倍,另外你这个应该是无源蜂鸣器吧 我估计你可能认为SOUND = 0,蜂鸣器不响。SOUND = 1,蜂鸣器响,,而实际上不是这样的 你可以将它置1,你会发现置1他也不会响的。详细的去找一下无缘蜂鸣器的资料 你就会知道的
让蜂鸣器发出两种不同的声调很容易,只要给蜂鸣器的控制信号发送不同频率的脉冲就可以实现了,以下以延时方式来做。
#includereg51.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;i200;i++)
{
SPK=~SPK;
for(j=0;jt;j++);
//由参数t行成不同的频率
}
}
voidmain()
{
SPK=0;
while(1)
{
if(K1==1)
{
Alarm(90);
Alarm(120);
}
}
}