(中國船舶重工集團公司第七一○研究所,湖北 宜昌 443003) 梁中明,徐 陽
梁中明(1978—)
男,南京航空航天大學碩士畢業,現從事系統仿真研究工作,助理工程師。
溫度是一個很重要的環境參數,人們的生活與環境的溫度息息相關,工業生產過程中需要實時測量溫度,在農業生產中也離不開溫度測量。因此,研究溫度測量裝置很有實際意義與實用價值。本文介紹了數字溫度傳感器DS18B20的內部結構與工作時序,虛擬 總線的溫度顯示方式,以及它們與單片機P89C51RD2的應用接口。該溫度測量裝置適用于人們的日常生活和工業、農業生產用于溫度測量。
DS18B20是一種單線式數字溫度傳感器,具有3引腳TO-92小體積封裝形式;測溫范圍為-55℃~+125℃,可編程為9~12位A/D轉換精度,被測溫度用符號擴展的16位數字量方式串行輸出,工作電源為+3V~+5.5V,可在遠端引入,也可采用寄生電源方式產生。
1.1 DS18B20的內部結構
DS18B20內部結構如圖1所示,主要由4部分組成:64位ROM、溫度傳感器、非揮發的溫度報警觸發器TH和TL、配置寄存器。其中DQ為數字信號輸入/輸出端;VDD為外接供電電源輸入端(在寄生電源接線方式時接地)。
圖1 DS18B20內部結構
DS18B20用12位存貯溫度值,最高位為符號位,圖2為DS18B20的溫度存儲方式,負溫度S=1,正溫度S=0,如0550H為+85℃,FC90H為-55℃。
圖2 DS18B20溫度寄存器存儲方式
DS18B20的單線式工作協議流程是:初始化→ROM操作指令→存儲器操作指令→數據傳輸。其工作時序包括初始化時序、寫時序和讀時序,如圖3所示。
(a) 初始化時序
(b)寫時序
(c)寫時序
圖3 DS18B20工作時序圖
2 虛擬總線顯示方式
溫度顯示采用LED數碼管,其驅動芯片是ZLG7290。ZLG7290是接口的鍵盤及LED驅動器,可驅動8位共陰數碼管,無需外接元件即直接驅動LED,可擴展驅動電流及驅動電壓。在每個顯示刷新周期,ZLG7290按照掃描位數寄存器指定的顯示位數N,把顯示緩存DpRam0~DpRamN的內容先后順序送入LED驅動器實現動態顯示,減少N值可提高每位顯示掃描時間的占空比,以提高LED亮度,顯示緩存中的內容不受影響。修改閃爍控制寄存器(FlashOnOff)可改變閃爍頻率和占空比(亮與滅的時間)。
總線是PHILIPS公司推出的芯片間串行數據傳輸總線,2根線(SCL、SDA)即可實現完善的全雙工同步數據傳送,能夠十分方便地構成多機系統和外圍器件擴展系統。
ZLG7290的接口傳輸速率可達32Kbit/s,容易與處理器接口,本文采用單主
總線形式,硬件接口是SCL、SDA。本文設計的硬件電路圖如圖4所示,采用P89C51RD2的P1.6與P1.7模擬
的SCL與SDA,構成虛擬的
總線顯示方式。
溫度測量裝置的主程序流程,如圖5所示。P89C51RD2控制DS18B20完成溫度讀取必須經過三個步驟:初始化、ROM操作指令、存儲器操作指令。程序必須先啟動DS18B20開始轉換,再讀出溫度值,其中包括讀DS18B20,寫DS18B20以及延時子函數。

/*DS18B20初始化程序*/
INIT_1820:
SETB DQ
NOP
CLR DQ
MOV R0,#80H
TSR1: DJNZ R0,TSR1 ; /*延時*/
SETB DQ
MOV R0,#25H
TSR2: DJNZ R0,TSR2
JNB DQ,TSR3
LJMP TSR4 ;/*延時*/
TSR3: SETB FLAG1 ; /*置標志位*/
LJMP TSR5
TSR4: CLR FLAG1 ;/*清標志位*/
LJMP TSR7
TSR5: MOV R0,#06BH ;/*200μs*/
TSR6: DJNZ R0,TSR6 ; /*延時*/
TSR7: SETB DQ
RET
void Start_I2c() /*啟動總線*/
{
SDA=1; /*發送起始條件的數據信號*/
_Nop();
SCL=1;
_Nop(); /*起始建立時間大于4.7μs*/
_Nop();
_Nop();
_Nop();
_Nop();
SDA=0; /*發送起始信號*/
_Nop(); /*起始鎖定時間大于4μs*/
_Nop();
_Nop();
_Nop();
_Nop();
SCL=0; /*鉗住總線*/
_Nop();
_Nop();
}
圖5 主程序流程圖
void Stop_I2c() /*結束總線*/
{
SDA=0; /*發送結束條件的數據信號*/
_Nop(); /*發送結束條件的時鐘信號*/
SCL=1; /*結束時建立時間大于4μs*/
_Nop();
_Nop();
_Nop();
_Nop();
_Nop();
SDA=1; /*發送總線結束信號*/
_Nop();
_Nop();
_Nop();
_Nop();
}
圖4 硬件電路原理圖
數字式溫度傳感器DS18B20集溫度測量、A/D轉換于一體,具有單總線結構,數字量輸出,直接與微機接口等優點;虛擬

參考文獻:
[1] DallasCorp.DS18B20[EB/OL].http://www.dalsem.com,2003.
[2] 馬云峰等.數字溫度傳感器DS18B20原理與應[EB/OL].http://www.chinacd.com/dzkw//2002-1/9.htm,2002-01-12/2003-09-26.
[3] 呂元穎等.總線概述及有關例程.科技情報開發與經濟,2005,No15.P177~180.
[4] P89c51RA2xx/RB2xx/RC2xx/RD2xx.datasheet. Philips Semiconductors .2002.