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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于單片機(jī)和DS18B20的數(shù)字溫度計(jì)

          基于單片機(jī)和DS18B20的數(shù)字溫度計(jì)

          作者: 時(shí)間:2011-11-11 來源:網(wǎng)絡(luò) 收藏
          2.3 溫度傳感器
          單線數(shù)字溫度傳感器可以把溫度信號(hào)直接轉(zhuǎn)換成數(shù)字信號(hào),每片含有唯一的64位序列號(hào),測(cè)溫范圍是-55~+125℃,完全符合系統(tǒng)要求。
          提供9位溫度讀數(shù),指示器件的溫度信息經(jīng)過單線接口送入DS18B20或從DS18B20送出,和MCU之間只需一條線連接,讀寫和完成溫度變換所需的電源可以由數(shù)據(jù)線本身提供而無需外部電源。由于每個(gè)DS18B20有唯一的系列號(hào)(silicon serial number),因此,多個(gè)DS18B20可存在于同一條單線總線上,此特性可以應(yīng)用于HVAC環(huán)境控制建筑物設(shè)備或機(jī)械內(nèi)的溫度檢測(cè)以及過程監(jiān)視和控制中的溫度檢測(cè)。
          數(shù)字溫度傳感器DS18B20有如下特性:
          1)獨(dú)特的單線接口只需1個(gè)接口引腳即可通信;
          2)多點(diǎn)(muhidrop)能力使分布式溫度檢測(cè)應(yīng)用得以簡(jiǎn)化;
          3)測(cè)量范圍從-55~+125℃增量值為0.5℃;
          4)以9位數(shù)字值方式讀出溫度;
          5)在1 s(典型值)內(nèi)把溫度變換為數(shù)字。
          DS18B20采用3引腳PR-35封裝,其內(nèi)部結(jié)構(gòu)框圖如圖4所示。

          基于單片機(jī)和DS18B20的數(shù)字溫度計(jì)



          3 系統(tǒng)軟件設(shè)計(jì)
          3.1 系統(tǒng)程序

          系統(tǒng)的程序主要包括主程序、讀出溫度子程序、溫度轉(zhuǎn)換命令子程序、計(jì)算溫度子程序和顯示數(shù)據(jù)刷新子程序。
          程序的主要功能是實(shí)時(shí)顯示溫度、讀出并處理DS18B20的測(cè)量溫度值,溫度測(cè)量每1 s進(jìn)行一次。其程序流程如圖5所示。

          基于單片機(jī)和DS18B20的數(shù)字溫度計(jì)


          DS18B20采用單總線方式傳輸數(shù)據(jù),對(duì)時(shí)序的要求比較嚴(yán)格。MSP430的控制操作不同于51系列,它的I/O口有方向控制及輸入輸出寄存器,讀寫操作要分別控制。以DS18B20為例,給出在MSP430系列語言編譯環(huán)境Work-bench下部分程序代碼。
          基于單片機(jī)和DS18B20的數(shù)字溫度計(jì)



          評(píng)論


          相關(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); })();