前辈们,请问如何编写使蜂鸣器只响一声的程序,试过了很多,都是一直响的,请各位前辈指导、、

2025年03月22日 17:25
有2个网友回答
网友(1):

你好!!

你在蜂鸣器一直再响,是因为你的单片机程序一直在重新启动;

你的程序少了while 的循环,在程序的结尾加上:

   while(1){}

完整的代码是:

#include 
sbit Beep =  P1^5 ;
void delay(unsigned int i) ;
void main()
{
    unsigned int m,n=1;
    for(m=0;m<2000; m++)
    {
        Beep= 1;
        delay(5);
        Beep= 0;
        delay(5);
    

    while(1){}
 }
 void delay(unsigned int i)
{
    char j;
    for(i; i > 0; i--)
        for(j = 200; j > 0; j--);
}

网友(2):

目测是delay时间太短,导致声响还没结束,下一声又响了,加到足够大的延时(几秒)再看