基于DS1620和AT89C2051的數(shù)字溫度計的設(shè)計
DS1620是一片8引腳的片內(nèi)建有溫度測量并轉(zhuǎn)換為數(shù)字值的集成電路,他集溫度傳感、溫度數(shù)據(jù)轉(zhuǎn)換與傳輸、溫度控制等功能于一體。測溫范圍:-55~+125℃,精度為0.5℃。該芯片非常容易與單片機連接,實現(xiàn)溫度的測控應(yīng)用,單獨做溫度控制器使用時,可不用外加其他輔助元件。
引腳功能及排列如圖1所示。
其中:RST,CLK/CONV及DQ為三線串行通信線;DQ為數(shù)據(jù)輸入輸出端。當RST保持高電平,對應(yīng)CLK/CONV時鐘脈沖的上升沿處,DQ可按位輸入各種控制指令及數(shù)據(jù),在CLK/CONV時鐘脈沖的下降沿處開始按位輸出9 B溫度值,分2個字節(jié)輸出,最低位(LSB)在最先輸出,先輸出的1個字節(jié)(8 B)除以2就是攝氏溫度值,后輸出的1個字節(jié)(僅1 B)為溫度的符號位,是0為正,是1為負。RST為低電平時結(jié)束通信,CLK/CONV保持低電平,DQ呈現(xiàn)高阻態(tài),但芯片內(nèi)部在進行溫度的測量與數(shù)字轉(zhuǎn)換(即溫度值的更新),這需要大約1 s的時間。
引腳THIGH為高溫臨界觸發(fā)輸出端,當所測溫度高于高溫臨界寄存器中設(shè)定的溫度TH時,該引腳由低電平變?yōu)楦唠娖?,而溫度低于TH時又回到低電平;TLOW為低溫臨界觸發(fā)輸出端,其電平變化與THIGH類似;TCOM為高/低溫臨界組合觸發(fā)輸出端;他們都可作為溫度調(diào)節(jié)器的輸出端,直接控制加熱或冷卻設(shè)備。
DS1620內(nèi)部有一個工作方式寄存器,如表1所示。
其中:DONE為溫度數(shù)據(jù)轉(zhuǎn)換位,為0時表示正,在轉(zhuǎn)換過程中,為1表示已轉(zhuǎn)換完畢;THF:高溫標志位,當溫度高于或等于高溫臨界寄存器中的設(shè)定值TH時,硬件對該位置位,但硬件不能對該位清零;TLF:低溫標志位,當溫度低于或等于設(shè)定值TL時,硬件對該位置位,同樣,硬件不能對該位清零;CPU:CPU使用位,通過軟件對該位清零時,若RST為低電平,則可由CLK/CONV控制溫度數(shù)據(jù)的轉(zhuǎn)換,通過軟件對該特定溫度轉(zhuǎn)換位,若通過軟件對該位置1,則DS1620進行該時刻的溫度轉(zhuǎn)換,并等待讀取,若該位被置0,則DS1620將不停地進行溫度轉(zhuǎn)換。
DS1620的工作狀態(tài)都是由外部輸入的指令來控制的,具體的指令如下:
AAH 讀取轉(zhuǎn)換好的溫度數(shù)據(jù);從指令輸入后的第9個時鐘(亦稱移位)脈沖開始,將輸出溫度寄存器中的數(shù)據(jù)。
01H 給高溫臨界寄存器寫入TH數(shù)據(jù)。
02H 給低溫臨界寄存器寫入TL數(shù)據(jù)。
A1H 讀高溫臨界寄存器中的TH數(shù)據(jù)。
A2H 讀低溫臨界寄存器中的TL數(shù)據(jù)。
EEH 開始轉(zhuǎn)換溫度數(shù)據(jù)。
22H 停止轉(zhuǎn)換溫度數(shù)據(jù)。
0CH 寫工作方式寄存器。
ACH 寫工作方式寄存器。
2 電路設(shè)計
如圖2所示,單片機P3.3~P3.5與DS1620按三線通信方式相連,P1口輸出七段碼,P3.0~P3.2通過驅(qū)動三極管接到共陽數(shù)碼管的COM端,3個按鍵在P3.7的配合下提供功能擴展。
3 程序設(shè)計
程序的流程圖如圖3所示,各程序模塊均為子程序及嵌套有子程序的調(diào)用,其中讀、寫DS1620模塊模塊為子程序,完成1個字節(jié)的溫度值或指令的讀寫;按鍵服務(wù)模塊主要完成對高/低溫臨界寄存器中TH、TL值的改寫。
下面給出寫/讀DS1620、配置DS1620、開始轉(zhuǎn)換、讀取溫度等5個子程序的匯編語言程序,其余模塊及程序不再贅述。
4 結(jié) 語
所設(shè)計的數(shù)字溫度計測量精度高、工作可靠、體積小、成本低,可擴展為溫度調(diào)節(jié)器。不足之處是由于DS1620測溫的遲滯性,不宜做即時溫度測量。
評論