数字温度传感器ds18b20啥时候进行报警搜索,怎样检测报警标志位

2023-03-21

报警标志位具体怎么检测 数字温度传感器DS18b20只能测量温度,本身并无报警功能。当需要用它来监控温度时,需要在程序中,设定报警温度的上限与下限。然后实时读取温度值并与这个温度限值进行比较,高于 上限或低于下限量,通过点亮不同颜色的LED灯或驱动蜂鸣器来完成报警功能。

比如,设定温度上限为32℃,下限设定为25℃,
void deal(uint t) //报警温度范围设定

uchar i; //定义变量
if((t>warn_l2)&&(t<=warn_l1)) //大于25度小于27度
warn(40,0x01); //长音报警,显示温度
else if(t<=warn_l2) //小于25度
warn(10,0x03); //短音报警,显示温度
else if((t<warn_h2)&&(t>=warn_h1)) //小于32度大于30度
warn(40,0x04); //长音报警,显示温度
else if(t>=warn_h2) //高于32度
warn(10,0x0c); //短音报警,显示温度
else //正常范围

for(i=40;i>0;i--) //循环
dis_temp(get_temp()); //显示正常温度

追问

哦 谢谢 有一点不明白 数据手册里有报警标志位flag不知道能不能用来判断是否报警

追答

可以用。所谓18b20的报警标志位,只是由18b20提供一个存储温度上、下限设定值的寄存空间,这个设定值是需要编程写入的,然后由18b20内部去比较设定值与测量值的高低,当高于或低于设定范围时,它会通过总线向CPU发出一串脉冲,这串脉冲也是需要编程指挥CPU去读取,然后再编程来区分是高于设定温度还是低于设定温度,最后再编程通过CPU端口输出相应控制信号去驱动蜂鸣器发声或者是驱动LED发光来完成报警功能。
两相比较,这岂止是绕了360度,简直是绕了720度的弯,所以但凡编程人员都不会去做这种得不偿失的工作。不信你去网上搜一搜,看看有谁采用这样的操作方法?

追问

原来这么麻烦 谢谢了

参考知识1   数字温度传感器根据温度的设置来达到报警的目的。
  数字温度传感器DS18b20只能测量温度,本身并无报警功能。当需要用它来监控温度时,需要在程序中,设定报警温度的上限与下限。然后实时读取温度值并与这个温度限值进行比较,高于 上限或低于下限量,通过点亮不同颜色的LED灯或驱动蜂鸣器来完成报警功能。
比如,设定温度上限为32℃,下限设定为25℃,
void deal(uint t) //报警温度范围设定

uchar i; //定义变量
if((t>warn_l2)&&(t<=warn_l1)) //大于25度小于27度
warn(40,0x01); //长音报警,显示温度
else if(t<=warn_l2) //小于25度
warn(10,0x03); //短音报警,显示温度
else if((t<warn_h2)&&(t>=warn_h1)) //小于32度大于30度
warn(40,0x04); //长音报警,显示温度
else if(t>=warn_h2) //高于32度
warn(10,0x0c); //短音报警,显示温度
else //正常范围

for(i=40;i>0;i--) //循环
dis_temp(get_temp()); //显示正常温度

相似知识
使用温度传感器DS18B20设计一温控系统,当温度超过35度或低于20度时,LED红灯闪烁,蜂鸣器发出报警声。 //这是我曾经做的一个温度控制系统,可以调节上下限温度,低于下限温度启动加热,高于上限停止加热。//温控系统控制程序//版本号:V1.0;2015.6.19//温度传感器:DS18B20//显示方式:
LCD162与DS18B20,显示时钟与温度 参考知识1给你个参考,不一定满足你的要求,但基本思想你可以借鉴开机时对DS18B20进行检测,如果DS18B20检测不正常,LCD1602显示:DS18B20ERRORPLEASECHECK蜂鸣器报警
热敏电阻好还是温度芯片(如DS18B20)好? 当然ds18b20了,热敏电阻是非线性的。就是说之前改变一定的温度,电阻改变了一个数值,然后在继续改变温度,阻值变化是不通的,而且你也不好得到这条变化曲线。使用时都是线把一个电阻对应的一个温度先写入到
温度测量芯片有几种 温度测量芯片有很多种,常见的DS18B20、TMP35、TMP36。以DS18B20温度测量芯片为例,有TS-18B20、TS-18B20A、TS-18B20B这3种型号。1、型号TS-18B20;测
LED电子钟温度不准怎么调 参考知识1这要看你是采用的什么温度传感器,如果是模拟的就看电路参数有没变化,然后调整校准电路。如果是数字传感器(常见的有DS18B20),就有可能是MCU里面的程序有问题,这就只能找到单片机里面配套的
现在我要用AT89C51、SHT11、DS18B20和COMPIM做一个温湿度数据采集,请问代码怎么怎么做? 写程序,要是不想自己写,可以出银子,我给你写。参考知识1用sht11就可以不用ds18b20了可以测量温湿度
工业上用啥样的温度传感器 首先18B20是单总线器件,它的总线抗噪性不是很好,其次18B20集成电路对电磁兼容性要求较高的场合也不是很适用,因此不建议工业上应用,工业上温度传感器主要是Pt100等各种铂电阻,或是热电偶等。追问
基于51单片机及RS485总线的温湿度变送模块设计 :基于AT89C51单片机,用DS18B20温度传感器和湿敏传感器设计大棚温建议使用JCJ100N数字式温湿度变送器,工业级产品,精度高,温度、湿度参考知识1问题补充:基于AT89C51单片机,用DS