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

          關(guān) 閉

          新聞中心

          EEPW首頁 > 工控自動化 > 設(shè)計(jì)應(yīng)用 > 基于單總線數(shù)字溫度傳感器DS18B20的測溫系統(tǒng)設(shè)計(jì)

          基于單總線數(shù)字溫度傳感器DS18B20的測溫系統(tǒng)設(shè)計(jì)

          作者: 時間:2013-01-18 來源:網(wǎng)絡(luò) 收藏

          的單總線訪問協(xié)議由如下4個步驟構(gòu)成。
          (1)主機(jī)對進(jìn)行復(fù)位初始化,初始化時序如圖2(a)所示,主機(jī)在t1時刻在單總線上發(fā)出一持續(xù)480~960μs的低電平脈沖的復(fù)位脈沖,在t2時刻釋放單總線至少等待480μs確保應(yīng)答正確,并接收采樣,等待15~60 μs,在t3時刻發(fā)出60~240μs的低電平存在脈沖,如圖中加粗虛線所示;

          本文引用地址:http://www.ex-cimer.com/article/159549.htm

          b.JPG


          (2)主機(jī)向DS18B20寫ROM操作指令,一旦檢測到總線上有從屬期間存在,主機(jī)便可發(fā)送ROM操作命令,主要包含讀ROM[33h]、匹配ROM[55h]、跳過ROM、搜索ROM、告警搜索命令;
          (3)主機(jī)向DS18B20寫RAM操作指令以啟動溫度轉(zhuǎn)換(44h)、讀暫存器(BEh)、寫暫存器(4Eh)、復(fù)制暫存器(43h)、重新調(diào)出E2(B8h)、獲取供電方式(B4h);
          (4)主機(jī)與DS18B20進(jìn)行數(shù)據(jù)傳送。
          寫ROM命令、RAM命令和收發(fā)數(shù)據(jù)都通過單總線傳輸,單總線通過時間片來讀寫數(shù)據(jù),每個時間片傳送1位數(shù)據(jù),分寫時間片和讀時間片。兩種時間片都必須持續(xù)最短60μs,兩個時間片之間必須插入至少1μs的恢復(fù)時間,讀/寫時序如圖2(b),(c)所示。讀操作通過讀時間片控制完成,分讀“0”和讀“1”時間片;寫操作通過寫時間片控制完成,分寫“0”和寫“1”時間片。
          溫度變換結(jié)束后,主機(jī)向DS18B20發(fā)送讀溫度命令(BEh),DS18B20以16位、符號擴(kuò)展的二進(jìn)制補(bǔ)碼形式發(fā)送到數(shù)據(jù)總線,低位在前,高位在后。

          2 測溫系統(tǒng)硬件設(shè)計(jì)
          系統(tǒng)硬件主要由單片機(jī)最小系統(tǒng)、DS18B20傳感器溫度采集電路、數(shù)碼管顯示驅(qū)動電路、LED報警電路組成,DS18B20采用外部電源供電方式,抗干擾性強(qiáng),系統(tǒng)硬件電路如圖3所示。

          c.JPG



          3 測溫系統(tǒng)軟件設(shè)計(jì)
          系統(tǒng)軟件分兩層設(shè)計(jì),上層是應(yīng)用層,負(fù)責(zé)系統(tǒng)初始化、溫度符號、百位、十位、個位、十分位數(shù)據(jù)提取,溫度異常報警等;底層負(fù)責(zé)DS18B20初始化、讀寫驅(qū)動和數(shù)據(jù)顯示驅(qū)動,DS18B20與處理器采用串行數(shù)據(jù)傳輸,在對其進(jìn)行初始化、讀寫編程時,必須嚴(yán)格保證讀寫時序,否則將出現(xiàn)錯誤。

          51單片機(jī)相關(guān)文章:51單片機(jī)教程


          熱電偶相關(guān)文章:熱電偶原理


          評論


          相關(guān)推薦

          技術(shù)專區(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); })();