實際的精確溫度值便可計算出來,分辨率高達0.1℃。
DS1620的工作方式及狀態檢測位由設置寄存器決定,在進行溫度轉換之前首先要對其初始化,由PC機或單片機設定設置寄存器的相應位。設置寄存器格式如下:
DONE | THF | TLF | * | * | * | CPU | ISHOT |
DONE(D7)位為"1"時表示溫度轉換已經完成,為"0"時表示轉換正在進行。注意此位只在單次轉換方式時有效。
THF(D6)TLF(D5)位分別為高于高溫極限值或低于低溫極限值時置位。
ISHOT(D0)位為"1"時表示以溫度單次轉換方式運行,為"0"時表示連續方式。
CPU(D1)位為"1"時表示DS1620以3線串行接口與PC機或單片機通信,為"0"時表示獨立工作方式。
*表示無關位。
在DS1620以CPU方式工作時,PC機或單片機的程序流程如圖2所示。
在實現過程中注意下面問題:
1.實現過程中必須用到兩條特殊指令:讀計數器指令(A0H)和裝載計數器指令(41H),這兩條指令在DS1620使用手冊上查不到。前一條指令的作用為讀出計數器中的數值,后一條指令的作用為將非線性累加器中的數值裝入計數器。
2.在數據傳輸過程中,DQ線上數據的傳輸順序為LSB(最低有效位)在先,MSB(最高有效位)在最后。例如設置寄存器狀態字節的傳送,第一位ISHOT位(D0),其次為CPU位(D1),依次下去,第八位為DONE位(D7)。
3.從DQ引腳上讀取數據時,設置寄存器的狀態為8位數據,而溫度數據為9位,這在編程時要加以區別。可以編讀取8位數據和9位數據的子函數分別調用,也可只編讀取9位的程序,但在判斷設置寄存器狀態時只取前8位。
4.注意在常溫下,每次寫入DS1620存儲器都需要近10ms,所以在寫指令之后不能立即對DS1620進行讀寫訪問,通常加10ms的延時。
5.DS1620是以STOP(RST=0)作為一次數據通信的結束。因此在每次設置操作結束或讀取8位溫度數據后,都要將RST引腳復位為低電平,然后置為高電平重新開始工作。
6.以在溫度單次轉換方式工作時,每次轉換完成并讀取溫度值之后,都要重新發送開始溫度轉換指令(EE H)。而在連續轉換方式只需開始發送轉換指令,DS1620會在一次溫度轉換完成后,繼續進行一睛次轉換,時間間隔為1秒。此時停止轉換指令(22H)將暫停溫度轉換,開始轉換指令會重新開始轉換。
用戶評論
共 0 條評論