STC51单片机C语言开启蜂鸣器

STC51单片机C语言开启蜂鸣器,第1张

#include<reg52.h>

sbit  beep=P0^4

void  main()

  

   beep=0

   while(1)

}

试试这个怎样,单片机在执行完程序之后会回到初始状态,然后再重新执行程序,所以蜂鸣器就会反复的开和关,听起来声音会小很多;加个while(1)死循环,让程序一直保持在beep=0的状态。

蜂鸣器有两种,一种是无源的,另一种为有源的,确认的方法为:1)看封装,如果引脚端为PCB板的,一般为无源的,引脚端为树脂灌封的,一般为有源的。2)加电实验,用5V电压点击接触引脚时,只有“哒哒”声的为无源的,发出一个单音响的为有源的。

两种蜂鸣器用单片机的控制方法是一样的,对于无源的,要求单片机送出一组断续的音频信号,使蜂鸣器按要求发声,对于有源蜂鸣器,要求单片机送出一组断续的电脉冲信号,用于分断蜂鸣器的通断状态,而使有源蜂鸣器发出“嘀...嘀”,“嘀...嘀...嘀”等希望的声音。

无源蜂鸣器举例:

/**********************************************************************/

//声响驱动程序 BELL--整点报时(闹钟音两短一长)

/**********************************************************************/

void Beep(void)

{

uint a//定义变量用于发声的长度设置

uchar b

for(b=2b>0b--){

for(a=200a>0a--){//第一个声音的长度

beep = ~beep//取反扬声器驱动口,以产生音频

Delay_1us(500)//音调设置延时

}

DelayM(1000)

}

for(a=1000a>0a--){//第一个声音的长度

beep = ~beep//取反扬声器驱动口,以产生音频

Delay_1us(500)//音调设置延时

}

beep = 1//音乐结束后扬声器关闭

}

有源蜂鸣器举例:

void main(void)

{

NB=0//有源蜂鸣器初始不送电

while(1)

{

NB=0//有源蜂鸣器断电

delay(300)//停一段时间

NB=1//有源蜂鸣器送电

delay(1000)//响一段时间

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7779420.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-09
下一篇 2023-04-09

发表评论

登录后才能评论

评论列表(0条)

保存