在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

您好,歡迎來電子發燒友網! ,新用戶?[免費注冊]

您的位置:電子發燒友網>電子元器件>傳感器>

DS18b20如何讀取它的負溫度值呢?

2017年11月23日 15:24 網絡整理 作者: 用戶評論(0
關鍵字:DS18B20(80969)

  單片機 測溫芯片 18B20 是一款常用的IC,優勢特點不多說,這里主要討論溫度值的處理,尤其是負溫度。

  18B20片內有一個9Byte的 SRAM 和一個3Byte的 EEPROM。如下圖:

 DS18b20如何讀取它的負溫度值呢?

  其中我們需要使用的就是SRAM中的前兩個字節,這里儲存的就是我們要的溫度值。這兩個字節的結構如下:

 DS18b20如何讀取它的負溫度值呢?

  我們可以看到,LS(低字節)的高四位 和 MS(高字節)的低四位共8個字節構成了實際的一個帶符號位的字節數據可以表示(-128~127)足夠表示18B20的溫度范圍。MS的高四位為符號為的擴展,當溫度值為正時MS高5位(圖中S的五位)全為0,溫度值為負時全為1。LS的低四位為小數部分,不是要求太高的話可以忽略。我們這里暫不套路小數部分的處理方法。

  下面我們就來討論整數部分的數據處理方法。

  整數部分我們實際只要高字節的第四位和低字節的高四位。首先通過移位求或后生成一個無符號位的字節。然后判斷這個無符號的值是否大于127,如果大于128說明是個負溫度需要處理,否則就可以直接返回。

  18B20的負溫度使用補碼形式輸出,我們只需要對這個字節進行取反加1后就是這個負溫度的絕對值,這時候我們需要一個符號標記告訴輸出函數這是個負溫度需要顯示負號即可。

  下面貼出數據處理部分的代碼:

  uchar readtemp() //讀取溫度

  {

  uchar temp = 0;

  uchar tmp[2]

  reset();

  writebyte(0xCC); // 跳過序列號

  writebyte(0x44); // 啟動溫度轉換

  delayms(1000);

  reset();

  writebyte(0xCC);

  writebyte(0xBE); //讀9個寄存器,前兩個為溫度

  tmp[0]=readbyte(); //低位

  tmp[1]=readbyte(); //高位

  temp = ((tmp[1]《《4)&0xF0)|((tmp[0]》》4)&0x0F);

  if(temp》127)

  {

  temp = ~temp + 1;

  }

  return (temp);

  }

  如何用51單片機讀取ds18b20的取負溫度?

  18b20的ram中,前兩個字節放的是溫度信息。其中第二個字節的高五位是符號位,當溫度為正的時候,高五位的字節是0,當溫度為負的時候,高五位字節為一。當溫度為正的時候,只需要將兩個字節的數合到一個字節,然后乘以0.0625就是實際的溫度。

  那么,當溫度為負的時候,該怎么讀取溫度呢?是將兩個字節合為一個字節,然后先取反,再加一,最后再和0.0625相乘嗎?這樣得出的結果就是實際的負溫度值嗎?

  判斷是否是負,就是取高幾位的讀取值采用與的方式判斷,比如(000) 11111 00001000,那么高5位可以這樣弄,tempH&0x1f,如果這個值=1;說明是負的,否則就是正的啊,不過有一點,取反是對的,還要加1啊,記得哦。

  至于在LCD中顯示的,確實是按你說的那樣,直接寫上一個符號即可。

  DS18b20 輸出的負溫度數據是定點補碼(小數點后固定二進制四位),符號可由最高位判定(0為正,1為負)。若是負數,則求其補碼即可,具體為“取反加一”或 0x10000 - T (T為度出來的補碼)。

  把讀出來的數temperaturebuffer定義成16位的帶符號整形,進行帶符號的移位,直接轉成浮點數,正負號就在里面了,用下面的表達式,你不用判斷正負。

  ((float)(temperaturebuffer》》4))+((temperaturebuffer&0x0F)/16.0)

  其內有兩個溫度上下限寄存器TH和TL,所采溫度若超過此溫度范圍后會置相應的報警標志位。至于那個校驗,是CRC-8,這并不太復雜,可以找些相關資料了解一下便知。

非常好我支持^.^

(16) 94.1%

不好我反對

(1) 5.9%

( 發表人:李倩 )

      發表評論

      用戶評論
      評價:好評中評差評

      發表評論,獲取積分! 請遵守相關規定!

      ?
      主站蜘蛛池模板: 亚洲最色网 | 又黄又湿又爽 | 国产在线视欧美亚综合 | 四虎黄色网址 | 亚洲免费色视频 | 狠狠色噜噜狠狠狠狠97影音先锋 | 色视频一区二区三区 | 在线欧美国产 | 亚洲国产色图 | 色综合久久久久久久久五月性色 | 国产色噜噜 | 国产女乱淫真高清免费视频 | 九九热精品视频在线播放 | 综合婷婷 | 欧美3d动漫网站 | 四虎影院永久网站 | 亚洲理论在线 | 国产精品免费久久 | 可以看黄色的网站 | 久久美女精品国产精品亚洲 | 日本www色视频成人免费网站 | 六月天婷婷 | 天天干夜夜夜操 | 成人性色生活影片 | 色噜噜噜| 上色天天综合网 | 激情婷婷色 | 中文在线1区二区六区 | 精品一区 二区三区免费毛片 | 国产伦一区二区三区免费 | 婷婷丁香视频 | 天天狠狠干 | 亚洲男女免费视频 | 亚洲理论在线 | 西西人体44renti大胆亚洲 | 成人18视频拍拍拍拍拍拍 | 亚洲色图在线视频 | 欧美成人天天综合天天在线 | 不卡精品国产_亚洲人成在线 | 老师在办公室被躁得舒服小说 | 狠狠色狠狠干 |