想问下以下程序是如何实现让蜂鸣器间隔不同时间响一次的?是什么语句在起作用?

2024年12月25日 12:33
有2个网友回答
网友(1):

主要起作用的代码是(不过根据代码,一共会响50次才对)
for(i=0;i<100;i++)
{
BEEP=~BEEP; //取反
DelayMS(t);
}

BEEP=~BEEP;作用就是让蜂鸣器进行响一次停一次的交替,交替的时间间隔是由DelayMS(t);实现的。其中参数t就是想要延时的时间。
循环前i为0,BEEP应该初始化为0(不响)。
第一次循环:
BEEP取反得1,此时蜂鸣器在响,延迟t毫秒(响t毫秒),i++,进入下一次循环
第二次循环:
BEEP取反得0,此时蜂鸣器不响,延迟t毫秒(不响t毫秒),i++,进入下一次循环
.........
循环结束后BEEP赋值为0,让蜂鸣器停止。
所以就实现了蜂鸣器每隔tms响一次,不过能听见50次

网友(2):

延时子程序的调用。在play中调用了DelayMS延时程序