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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 溫度傳感器DS75LX與PIC單片機的接口設(shè)計

          溫度傳感器DS75LX與PIC單片機的接口設(shè)計

          作者: 時間:2012-02-03 來源:網(wǎng)絡(luò) 收藏

          1 概述

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

          是一款高精度的串行數(shù)字輸出型,測量的數(shù)據(jù)可通過兩線串行總線(與I2C總線兼容)輸出。工作電壓為1.7 V到3.7 V。除了基本的測溫功能外,還具有報警功能,允許用戶通過軟件設(shè)置報警溫度的門限值。DS75LX測溫范圍為-55℃~+125℃,當測溫范圍為-25℃~+100℃時,測量精度為±2℃。DS75LX同時具有可編程的9至12位的溫度數(shù)據(jù)輸出格式。輸出的溫度數(shù)據(jù)為12位時,其分辨率可達0.0625℃。該具有三個地址引腳,可設(shè)置為三種狀態(tài)中的任意一種:接GND、VDD,或懸空,可設(shè)置27種地址組合。例如A2、A1和A0分別為接電源、接地和懸空時,DS75LX的器件地址為0101110。圖1是DS75LX的引腳排列,各功能描述如表1所示。

          6.jpg
          2 DS75LX的工作原理

          DS75LX通過一個能隙帶溫度感知體系結(jié)構(gòu)來實現(xiàn)溫度測量。片上△-∑模數(shù)轉(zhuǎn)換器將所測的環(huán)境溫度直接轉(zhuǎn)換成數(shù)字量并存儲在溫度寄存器中。DS75LX一上電就開始測量溫度,用戶可通過軟件設(shè)置配置寄存器的內(nèi)容以滿足自身的測量要求。DS75LX除了基本的溫度測量外還具有溫度報警模塊。與溫度報警模塊相關(guān)的兩個寄存器分別為報警門限寄存器Tos和溫度遲滯寄存器Thyst。該模塊可配置為兩種工作模式:比較器模式和中斷模式。在比較器模式時只要被測溫度在連續(xù)1、2、4或6次測量的結(jié)果均高于Tos中的值,O.S.引腳觸發(fā)并按照配置寄存器中的POL位的值輸出特定電平,此時與Thyst中的設(shè)定值無關(guān);而在中斷模式時只要被測的溫度在連續(xù)1、2、4或6次溫度測量的結(jié)果均高于Tos中的值或低于Thyst中的值時觸發(fā)O.S.引腳,輸出特定電平。

          7.jpg
          3 DS75LX的內(nèi)部結(jié)構(gòu)

          DS75LX的內(nèi)部結(jié)構(gòu)主要是由地址、I/O口控制單元、精確參考源、采樣調(diào)節(jié)器和可訪問寄存器等組成。對于用戶來說,只需了解DS75LX的地址、I/O口控制單元和可訪問寄存器即可,因為DS75LX的所有操作均是通過串行I/O口讀寫可訪問寄存器來實現(xiàn)的。

          3.1 DS75LX的配置寄存器

          DS75LX的配置寄存器如表2所示,該寄存器可讀/寫,允許用戶選擇不同功能。這些功能包括報警輸出類型、溫度測量分辨率等。

          8.jpg
          該寄存器各位的含義說明:最高位為保留位,該位讀出值為0;R1和R0位的取值決定了DS75LX輸出的溫度數(shù)據(jù)的位數(shù)。當R1和R0分別為00、01、10、或11時,DS75LX輸出溫度有效數(shù)據(jù)分別為9、10、11或12位;F1和F0位的值決定了觸發(fā)O.S.引腳所需要進行的連續(xù)溫度測量次數(shù)。當F1和F0分別為00、01、10、11時對應(yīng)的連續(xù)溫度測量次數(shù)為1、2、4和6次;POL位的值決定了O.S.引腳觸發(fā)時為高電平還是低電平。當POL=0時O.S.引腳觸發(fā)時輸出低電平,POL值為1時0.S.引腳觸發(fā)時輸出高電平;TM=0時溫度報警模塊工作在比較器模式,TM=1時溫度報警模塊工作在中斷模式;SD=1時DS75LX處于關(guān)斷模式,此時DS75LX不進行溫度采集,SD=0時,DS75LX處于正常工作狀態(tài)。該配置寄存器的各位上電時均為0。

          3.2 DS75LX的可訪問寄存器

          DS75LX有4個用戶可訪問寄存器,分別為溫度寄存器、配置寄存器、溫度遲滯寄存器和報警門限寄存器。其中溫度寄存器為只讀寄存器,用于存取測量的環(huán)境溫度數(shù)據(jù),報警門限寄存器和溫度遲滯寄存器均為可瀆/寫寄存器,用于提供用戶可編程的報警溫度值。如果環(huán)境溫度漂移超出編程設(shè)定值則溫度報警引腳輸出報警信號。

          3.3 寄存器指針

          寄存器指針是向用戶提供所要訪問寄存器地址,寄存器指針的內(nèi)容即為可訪問寄存器地址。由于DS75LX內(nèi)部只含有4個可訪問寄存器,因此寄存器指針的內(nèi)容只有低兩位(P1、P0)有效,當訪問某個寄存器時,必須確保寄存器指針已指向該寄存器。P1和P0的值與可訪問寄存器對應(yīng)關(guān)系如表3所示。

          9.jpg
          3.4 輸出的溫度數(shù)據(jù)格式

          DS75LX將測量的溫度轉(zhuǎn)換為16位二進制補碼形式并存儲在兩個字節(jié)的溫度寄存器中。最高位是符號位,為0時表示測量的溫度在0℃以上,反之,所測的溫度在0℃以下。而低字節(jié)的低4位無用,其值為0。當DS75LX輸出的溫度數(shù)據(jù)為12位即DS75LX具有12位分辨率時,溫度寄存器的位15至位4為有效的溫度數(shù)據(jù)。同理,當分辨率分別為11、10、和9位時,對應(yīng)的有效溫度數(shù)據(jù)分別是溫度寄存器的位15至位5、位15至位6和位15至位7。

          3.5 兩線串行總線

          DX75LX的讀寫操作是通過兩線串行總線實現(xiàn)的,該串行總線與I2C總線兼容。圖2所示為讀溫度及溫度門限寄存器的時序圖。此時假定寄存器指針已指向溫度寄存器,否則需要對指針進行設(shè)置。設(shè)置方法如下:主器件產(chǎn)生起始位、發(fā)送包含DS75LX地址的寫命令、收到應(yīng)答、發(fā)送寄存器指針字節(jié)。注意只有指針字節(jié)的低兩位(P1、P0位)有效。

          10.jpg
          4 DS75LX與電路

          DS75LX與的硬件電路很簡單,如圖3所示。由于16F737具有I2C總線接口,只需將兩者的時鐘和數(shù)據(jù)引腳對應(yīng)相連,無論時鐘還是數(shù)據(jù)線都必須通過上拉電阻與電源相連。本文假定DS75LX的三個地址輸入引腳都接地,此時DS75LX的地址為1001000。

          11.jpg
          5 軟件

          軟件部分包括DS75LX與PIC的初始化程序,讀溫度數(shù)據(jù)子程序等,限于篇幅以下給出PIC單片機讀取DS75LX輸出的溫度數(shù)據(jù)的子程序。該子程序?qū)?yīng)的時序見圖2。采用C語言編程,編譯器為PICC編程環(huán)境MPLAB IDE。該程序既可用查詢方式也可用中斷方式實現(xiàn),本文利用查詢中斷標志SSPIF實現(xiàn),具體程序代碼如下:

          12.jpg

          13.jpg

          6 結(jié)束語

          本文主要介紹數(shù)字溫度DS75LX的工作原理以及與單片機的接口。DS75LX具有測量精度高、分辨率可調(diào)等特點。DS75LX的片選引腳具有三態(tài)輸入,在同樣數(shù)量的地址引腳情況下,與其他同類器件相比,DS75LX具有更多的地址組合可用,因此非常適用于多點溫度測量系統(tǒng)。同時DS75LX的兩線串行接口簡化了與單片機的硬件接口設(shè)計。DS75LX體積小巧,可廣泛應(yīng)用在小型基站、路由器、服務(wù)器及便攜式溫度計。



          評論


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