[讨论] DS18B20的告警搜索命令如何用啊

ounie   2009-7-14 00:03 楼主
手册上只说了超过设定值,告警标志位会置位,但是如何查询到呢?单片机在那个Alarm Search(ECh)命令发出后,18B20里面也没有寄存器可以读到报警位啊?
现在只能用软件方式查询,当前温度值与实现设定好的TH,TL的比较关系,从而判断是否超过了温度的上下限值。这样做比较浪费单片机的时间啊。
那个Alarm Search(ECh)告警搜索具体怎么用啊?哪位大侠谈谈吧

回复评论 (16)

2推荐 tiankai001 

个人理解:
     告警设置温度的上下限,每次温度转换结束后,DS18B20自动将测得的结果跟告警值进行比较。如果超过告警值,那么当主机发出告警搜素指令的时候,该DS18B20就会响应,如果没有超过告警值,就不响应该指令。
     这样就可以对多点测温系统的温度情况进行检测和设置,比如共有6个测温点,设置告警值为30度,如果1,3,5这三个点的温度超过告警值时,当主机发出告警搜素指令后,1,3,5就会发出响应指令,而2,4,6不会对该指令响应

    系统正常工作时,在启动所有的DS18B20作温度转换后,可以使用报警搜索命令ECH,发现温度值高于TH或低于TL的数值时,则读取报警的DS18B20ROM代码,这样就可以判断出是那些点告警了

[ 本帖最后由 tiankai001 于 2009-7-15 15:42 编辑 ]
点赞  2009-7-15 15:27
到网上找找说明,可以设置报警寄存器的值的,这是18B20的的方便之处
点赞  2009-7-14 09:36
就是查不到才来问的啊 DATASHEET上也没有说明白啊:Q
点赞  2009-7-15 14:37
告警标志置位 里面哪个寄存器是这个标志位?
点赞  2009-7-15 14:50
点赞  2009-9-12 22:20
我也在做DS18B20也碰到这样的问题,哪为高手会的教教小弟
小弟在此谢了
点赞  2009-10-22 20:56

回复 7楼 guozhonglun 的帖子

可以具体说出你的问题,大家好帮忙~~
加油!在电子行业默默贡献自己的力量!:)
点赞  2009-10-23 08:37

ds18B20

ds1b820 怎样实现上下限报警,我看过好多资料都说DS18B20在接到告警搜索命令后就那测得的温度与TH、TL比较如果超出界限就会置为一个标志位,我不知道是什么标志位
点赞  2009-10-27 09:27
俺也有这问题哦:(
点赞  2010-8-3 22:04

我也是

我也正在弄这个!我想法和楼主是一样的!就想TH,TL,里面判断了,能执行一个什么操作什么的!多点测温那个目前没有考虑……就是资料里没有说过对一个判断后执行什么样的操作……

各位大侠,还请指教……

如果是一个18b20,温度超过TH,TL后,可不可以执行一个什么变量改变,或者发个什么脉冲什么的%……

新生,还请关照,谢谢

我爱电子……
点赞  2010-10-12 20:03
我也一样 看数据手册 只说会响应  原话是Any DS18B20s with a set alarm flag will respond to the command 但到底如何响应 不大清楚 求教
点赞  2011-11-22 00:05

回复 5楼 tiankai001 的帖子

请问如果是多点同时超过温度上限 比如1  2同时超过TH 使用报警搜索命令ECH以后 会得到谁得ID 如果都得到 先得到谁的 程序上如何处理(不知道几个满足条件 即不知道接受多少个ID)
点赞  2011-11-22 00:15
引用: tiankai001 发表于 2009-7-15 15:27
个人理解:
     告警设置温度的上下限,每次温度转换结束后,DS18B20自动将测得的结果跟告警值进行比较。如果超过告警值,那么当主机发出告警搜素指令的时候,该DS18B20就会响应,如果没有超过告警值,就不响应该指令。
     这样就可以对多点测温系统的温度情况进行检测和设置,比如共有6个测温点,设置告警值为30度,如果1,3,5这三个点的温度超过告警值时,当主机发出告警搜素指令后,1,3,5就会发出响应指令,而2,4,6不会对该指令响应

    系统正常工作时,在启动所有的DS18B20作温度转换后,可以使用报警搜索命令ECH,发现温度值高于TH或低于TL的数值时,则读取报警的DS18B20的ROM代码,这样就可以判断出是那些点告警了

[ 本帖最后由 tiankai001 于 2009-7-15 15:42 编辑 ]




点赞  2015-3-19 21:48
引用: tiankai001 发表于 2009-7-15 15:27
个人理解:
     告警设置温度的上下限,每次温度转换结束后,DS18B20自动将测得的结果跟告警值进行比较。如果超过告警值,那么当主机发出告警搜素指令的时候,该DS18B20就会响应,如果没有超过告警值,就不响应该指令。
     这样就可以对多点测温系统的温度情况进行检测和设置,比如共有6个测温点,设置告警值为30度,如果1,3,5这三个点的温度超过告警值时,当主机发出告警搜素指令后,1,3,5就会发出响应指令,而2,4,6不会对该指令响应

    系统正常工作时,在启动所有的DS18B20作温度转换后,可以使用报警搜索命令ECH,发现温度值高于TH或低于TL的数值时,则读取报警的DS18B20的ROM代码,这样就可以判断出是那些点告警了

[ 本帖最后由 tiankai001 于 2009-7-15 15:42 编辑 ]
能具体举个例子吗只是报警这块的c程序




点赞  2015-3-19 22:10
设置了温度上下限寄存器后,如果你发送报警搜索命令,那么有报警的DS18B20就会响应,而没有报警的,就不会响应,它响应的是自身的ID号,所以你就可以判断出那个报警了。
点赞  2015-3-22 23:43
报警搜索指令跟ROM搜索指令类似,比较复杂。

一般多用只从DS18B20读温度,然后自己写一个温度比较和报警程序

点赞  2015-3-22 23:49
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复