色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 單片機(jī)·DS18B20溫度傳感器

          單片機(jī)·DS18B20溫度傳感器

          作者: 時間:2016-11-24 來源:網(wǎng)絡(luò) 收藏
          一、DS18B20的特點
          1.“一線總線”數(shù)字化溫度傳感器。(一線掌握好時序,比較簡單)
          2. 3~5V寬電壓工作范圍
          3. 分辨9-12位可調(diào)
          二、DS18B20的正確接線




          面對著扁平的那一面,左負(fù)右正,一旦接反就有可能燒毀,也是溫度顯示85°C的原因。
          且只有一根I/O線,注意讀寫時序 。
          三、DS18B20時序介紹
          1)復(fù)位

          輸入
          t0-t1時刻:復(fù)位脈沖 480-960us ;
          t1-t2時刻:釋放總線 15-60us ;
          檢測
          t2-t3時刻:虛線部分由DS18B20控制,60-240us低電平則表示復(fù)位成功,否則失敗 ;
          t3-t4時刻:釋放總線
          2)寫操作

          寫0時序
          輸入
          t0-15us:保持低電平,輸入0;
          檢測
          15-60us:檢測i/o是否為低電平 ;
          輸入間隔>1us
          寫1時序
          輸入
          t0-15us:拉高電平,輸入1;
          檢測
          15-60us:檢測i/o是否為高電平
          輸入間隔>1us
          3)讀操作

          t0-t1:保持4us低電平
          t1-15us:DS18B20或者上拉電阻起作用,低電平或者高電平讀出
          15us-60us:釋放總線
          三、DS18B20的溫度
          1.DS18B20的溫度格式表
          一共是16位,我們用前5位表示符號位,后11位表示數(shù)值
          2.DS18B20的溫度數(shù)據(jù)表


          125℃/2000 = 0.0625
          當(dāng)符號位為0時,表示正數(shù),0.0625*hex得到溫度的值 ;
          當(dāng)符號位為1時,表示負(fù)數(shù),將所得到的(數(shù)值取反+1)*0.0625得到溫度的值;
          四、程序
          1.啟動溫度轉(zhuǎn)換
          1)復(fù)位DS18B20;
          2)發(fā)出Skip Rom命令(CCH)【僅適用于只有一個DS18B20】 ;
          3)發(fā)出convert命令(44H)
          2.讀取溫度
          1)復(fù)位DS18B20;
          2)發(fā)出Skip Rom命令(CCH);
          3)發(fā)出convert命令(BEH);
          4)讀2字節(jié)的溫度 ;
          5)溫度格式轉(zhuǎn)換 ;
          程序
          main.h
          # ifndef _MAIN_H_
          # define _MAIN_H_
          # include
          # include
          sbit DQ = P3^2 ;
          sbit RS = P1^0 ;
          sbit RW = P1^1 ;
          sbit EN = P1^5 ;
          sbit BUSY = P0^7;
          typedef unsigned char uint8 ;
          typedef unsigned int uint16 ;
          typedef int int16 ;
          #define nops() {_nop_();_nop_();_nop_();_nop_();}
          #endif
          main.c
          # include "main.h"
          void delay(uint16 n)
          {
          while(n--) ;
          }
          上一頁 1 2 下一頁

          評論


          技術(shù)專區(qū)

          關(guān)閉