标题:
51单片机温度传感器和蜂鸣器程序结合问题
[打印本页]
作者:
小小彩姬
时间:
2022-2-27 20:50
标题:
51单片机温度传感器和蜂鸣器程序结合问题
如果要时时检测温度到达一个零界点,传出来的温度本来就有延时,而且还要继续显示温度,都会影响蜂鸣器的频率怎么解决void BeepRing() {
if (Ds18b20ReadTemp() * 0.0625 > 25) { //大于25°C就报警
while (1) {
beep = ~beep;
delay(10);
datapros(Ds18b20ReadTemp());
weixuan();
if (Ds18b20ReadTemp() * 0.0625 <= 25) //不大于就推出
break;
}
}
}
蜂鸣器部分代码
作者:
lkc8210
时间:
2022-2-27 21:34
给你一个思路
bit Beep_On = 0;
void 1微秒中斷() interrupt 1
{
if(Beep_On)
{
beep = ~beep;
}
flag1ms = 1;
}
void main()
{int msCount = 0;
float Temp = 0.0;
while(1)
{
if(flag1ms)
{
flag1ms = 0;
if(msCount++ >= 1000)
{
msCount = 0;
Temp = Ds18b20ReadTemp() * 0.0625;
if(Temp > 25)
{
Beep_On = 1;
}
if(Temp <= 25)
{
Beep_On = 0;
}
}
}
}
}
复制代码
作者:
wulin
时间:
2022-2-27 21:49
给你一个示例参考,数码管和LCD任选。
DS18B20温度上下限报警数码 1602显示.rar
(182.67 KB, 下载次数: 36)
2022-2-27 21:48 上传
点击文件名下载附件
作者:
yzwzfyz
时间:
2022-2-28 15:14
音域:20-20K,蜂鸣器不超过10K,周期>100us。
你的CPU执行指令周期远小于100us,如何就不够了呢?
更何况,你使用的是长鸣蜂鸣器,触发一下即能实现鸣叫的起、停,就更不会有冲突了。
一定是你把CPU的大量时间用于等待了!请修改一下程序。
作者:
不想学单片机了
时间:
2022-3-28 10:47
wulin 发表于 2022-2-27 21:49
给你一个示例参考,数码管和LCD任选。
感谢感谢
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1