关于温度报警电路,已设置了温度上下限的值,为何喇叭还是响个不行

自己制作的简单温度传感器,温度可以正常显示,但是在设置报警电路时,已经输入了温度的上下限,但是喇叭却一直响,没有停下来
喇叭的设置程序为:
void sound()
{
int n=100;
while(n--)
{
beep=~beep;
delay_ms(100);
}
}
void baojing()
{
if(temp>30.00||temp<10.00)
{
sound();
}
}

在while(1)的设置为
while(1)

{ LCD_write_english_string(0,0,"t:");
// if(RunStatus)
{

tdata=MemRead(SlaveAddress,command); //Read memory

temp=tdata*2-27315;
for(i=10000;i>0;i=i/10)
{

j=temp/i;
LCD_write_char(j+'0');

temp=temp-i*j;
if(i=100)
LCD_write_char('.');

}
baojing();

LCD_write_char(temp+'^');
LCD_write_char('C');

delay_ms(500);

}

if(temp>30.00||temp<10.00)
{
print("temp = %f",temp);
sound();
}
确认下报警时温度值是否是需要报警的值来排除数据问题。

void sound()
{
int n=100;
while(n--)
{
beep=~beep;
delay_ms(100);
}
}
你这个代码大概报警会响10秒 100次*100毫秒 会不会是报警间隔导致上次的报警一直没取消
其次没在你这个代码上看到关闭报警的地方,
beep=~beep; 应该是将控制寄存器修改了一下。但是没发现你修改回来啊。具体机制不清楚请自行根据情况考虑
望采纳