標(biāo)題: 怎么使用ds18b20的告警搜索指令0ECH,能寫一簡單c程序嗎 [打印本頁]

作者: 安裝阿斯    時間: 2015-3-19 21:54
標(biāo)題: 怎么使用ds18b20的告警搜索指令0ECH,能寫一簡單c程序嗎
怎么使用ds18b20的告警搜索指令0ECH,能寫一簡單c程嗎

作者: jiajiamei    時間: 2015-3-20 05:08

個人理解:
     告警設(shè)置溫度的上下限,每次溫度轉(zhuǎn)換結(jié)束后,DS18B20自動將測得的結(jié)果跟告警值進(jìn)行比較。如果超過告警值,那么當(dāng)主機(jī)發(fā)出告警搜素指令的時候,該DS18B20就會響應(yīng),如果沒有超過告警值,就不響應(yīng)該指令。
     這樣就可以對多點(diǎn)測溫系統(tǒng)的溫度情況進(jìn)行檢測和設(shè)置,比如共有6個測溫點(diǎn),設(shè)置告警值為30度,如果1,3,5這三個點(diǎn)的溫度超過告警值時,當(dāng)主機(jī)發(fā)出告警搜素指令后,1,3,5就會發(fā)出響應(yīng)指令,而2,4,6不會對該指令響應(yīng)

    系統(tǒng)正常工作時,在啟動所有的DS18B20作溫度轉(zhuǎn)換后,可以使用報警搜索命令ECH,發(fā)現(xiàn)溫度值高于TH或低于TL的數(shù)值時,則讀取報警的DS18B20的ROM代碼,這樣就可以判斷出是那些點(diǎn)告警了
作者: manaibi    時間: 2022-5-8 13:12
  Reset();   Write_BYTE(0xec); //告警搜索   HL=Read_BIT();   if(HL==0)Alarm=1;         //為0表示有告警,開啟蜂鳴器   else Alarm=0;                //沒有告警,關(guān)閉蜂鳴器
作者: manaibi    時間: 2022-5-8 13:12
  Reset();
  Write_BYTE(0xec); //告警搜索
  HL=Read_BIT();
  if(HL==0)Alarm=1;         //為0表示有告警,開啟蜂鳴器
  else Alarm=0;                //沒有告警,關(guān)閉蜂鳴器
作者: wufa1986    時間: 2022-5-9 10:48
不要用這些功能,沒什么用,直接度溫度,自己程序判斷
作者: univers    時間: 2022-5-10 17:21
我覺得兩種方法都可以。最好還是要多判斷一兩次,怕誤判出錯。




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1