在10ms中断中扫描函数Buzzer();就可以了。牛吧!!!
使用方法:将全局变量 AlmCnt设置为需要报警的组数。蜂鸣器每次报警蜂鸣4次短声,再隔一长段时间,进行下一组报警;
如果 AlmCnt =3;
到时间后,蜂蜜器 Bi.Bi.Bi.Bi...Bi.Bi.Bi.Bi...Bi.Bi.Bi.Bi.完成
AlmDelay 必须也是全局变量!
/*蜂鸣器报警次数,由全局变量AlmCnt决定*/
void Buzzer(void)
{
static uchar n,status;
if(++AlmDelay >n)
{
AlmDelay = 0;
if(Almn!=0)
{
switch(status)
{
case 0: // 开始启动叫声
{
BuzzeOn;
n = 5; // 叫 50ms
status =1;
break;
}
case 1: // 关闭50ms
{
BuzzeOff;
if(++AlmCnt>=4)
{
AlmCnt =0;
n= 25;
status =2;
}
else
{
n= 5;
status =0;
}
break;
}
case 2:
{
--Almn;
status =0;
break;
}
}
}
else
BuzzeOff;
}
}