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