for(i=0i<100i++)
{
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次
#include<reg51.h>sbit B1=P1^5
void delay(unsigned int t)
void main()
{
int n=3,t=100//n为响的次数,t控制一次响声持续的时间
while(n--)
{
while(t--)
{
B1=0
delay(40000)
B1=1
delay(40000)
}
delay(40000)
delay(40000)
delay(40000)
delay(40000)
delay(40000)
delay(40000)//此处可以根据实际使用情况增删delay数目。
}
}
void delay(unsigned int t)
{
while(t--)
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)