讓蜂鳴器發(fā)出兩種不同的聲調(diào)很容易,只要給蜂鳴器的控制信號發(fā)送不同頻率的脈沖就可以實現(xiàn)了,以下以延時方式來做。
從策劃到設(shè)計制作,每一步都追求做到細(xì)膩,制作可持續(xù)發(fā)展的企業(yè)網(wǎng)站。為客戶提供成都網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站策劃、網(wǎng)頁設(shè)計、域名與空間、網(wǎng)頁空間、網(wǎng)絡(luò)營銷、VI設(shè)計、 網(wǎng)站改版、漏洞修補等服務(wù)。為客戶提供更好的一站式互聯(lián)網(wǎng)解決方案,以客戶的口碑塑造優(yōu)易品牌,攜手廣大客戶,共同發(fā)展進步。
#includereg51.h
#define
uchar
unsigned
char
#define
uint
unsigned
int
sbit
SPK=P1^0;
sbit
K1=P1^7;
//發(fā)聲函數(shù)
void
Alarm(uchar
t)
{
uchari,j;
for(i=0;i200;i++)
{
SPK=~SPK;
for(j=0;jt;j++);
//由參數(shù)t行成不同的頻率
}
}
voidmain()
{
SPK=0;
while(1)
{
if(K1==1)
{
Alarm(90);
Alarm(120);
}
}
}
1、無源蜂鳴器,需要外部提供脈沖信號才會發(fā)聲,且聲音會隨脈沖頻率變化而變化。而有源蜂鳴器內(nèi)部有振蕩器,所以只需要提供電壓(高電平)就能發(fā)聲,它們的原理不同。
2、例如定義 一個IO連接蜂鳴器。比如,sbit fmq=P1^0; 再來個500US延時函數(shù)。
void?beep()????//所以會產(chǎn)生1KHZ頻率聲音
{
fmq=0;
delay500us();
fmq=1;
delay500us();????
}
兩個聲音函數(shù)sound(),nosound()和延遲函數(shù)delay()由函數(shù)庫
提供。
函數(shù)名:
sound
功
能:
以指定頻率打開PC揚聲器
用
法:
void
sound(unsigned
frequency);
程序例:
#include
int
main(void)
{
sound(7);
delay(10000);
nosound();
return
0;
}