<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

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

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




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

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

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

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


          125℃/2000 = 0.0625
          當(dāng)符號(hào)位為0時(shí),表示正數(shù),0.0625*hex得到溫度的值 ;
          當(dāng)符號(hào)位為1時(shí),表示負(fù)數(shù),將所得到的(數(shù)值取反+1)*0.0625得到溫度的值;
          四、程序
          1.啟動(dòng)溫度轉(zhuǎn)換
          1)復(fù)位DS18B20;
          2)發(fā)出Skip Rom命令(CCH)【僅適用于只有一個(gè)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--) ;
          }
          上一頁(yè) 1 2 下一頁(yè)

          評(píng)論


          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();