标题: 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
给你一个思路
  1. bit Beep_On = 0;

  2. void 1微秒中斷() interrupt 1
  3. {
  4.         if(Beep_On)
  5.         {
  6.                 beep = ~beep;
  7.         }
  8.         flag1ms = 1;
  9. }

  10. void main()
  11. {int msCount = 0;
  12. float Temp = 0.0;
  13.         while(1)
  14.         {
  15.                 if(flag1ms)
  16.                 {
  17.                         flag1ms = 0;
  18.                         if(msCount++ >= 1000)
  19.                         {
  20.                                 msCount = 0;
  21.                                 Temp = Ds18b20ReadTemp() * 0.0625;
  22.                                 if(Temp > 25)
  23.                                 {
  24.                                         Beep_On = 1;
  25.                                 }
  26.                                 if(Temp <= 25)
  27.                                 {
  28.                                         Beep_On = 0;
  29.                                 }
  30.                         }
  31.                 }
  32.         }
  33. }
复制代码

作者: wulin    时间: 2022-2-27 21:49
给你一个示例参考,数码管和LCD任选。 DS18B20温度上下限报警数码 1602显示.rar (182.67 KB, 下载次数: 36)


作者: 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