摘 要:探討工業場合溫度測量處理方法及系統構成。根據數字溫度傳感器DS18B20的特點,構成溫度測量系統。利用簡單的接口與單片機組成一個溫度測量系統,通過鍵盤和LED顯示數碼管對系統進行控制和顯示,給出用DS18B20和AT89C51單片機構成的溫度測量系統的應用電路和參考程序。利用DS18B20的單總線結構,占用系統的端口少,非常適合遠距離多點溫度檢測系統。
關鍵詞:DS18B20;AT89C51;溫度;測量
中圖分類號:TP212 文獻標識碼:B
文章編號:1004-373X(2008)10-157-03
Temperature Measurement System Based on DS18B20
ZHAO Yongjie1,XU Yuan2
(1.Nanyang Radio and TV University,Nanyang,473066,China;2.Nanyang Institute of Technology,Nanyang,473004,China)
Abstract:Exploring the methods and system structure of temperature measurement in industrial situation.Methods Forming temperature measurement system by means of digital temperature sensor DS18B20.Creating a temperature measurement system by using simple I/O port and single chip microcomputer which has keyboard and LED,and providing the applied circuit and reference program by means of DS18B20 and AT89C51.According to the structure characteristics of DS18B20,which occupy less system ports.This temperature measurement system is appropriate to temperature test system based on long-distance and multi-ports.
Keywords:DS18B20;AT89C51;temperature;measurement
在許多工業場合中都要進行溫度檢測和溫度控制,常用方法是采用溫度傳感進行檢測,配合單片機進行控制。DS18B20是美國DALLAS公司生產的“一線總線”接口的數字化傳感器,他具有微型化、低功耗、抗干擾能力強、易與微處理器接口等優點,可直接將溫度轉化成串行數字信號供微處理器接收處理。利用這種溫度傳感器構成的溫度測量系統電路非常簡單、易于實現,并且適用于幾乎所有類型的單片機。
1 DS18B20介紹
1.1 DS18B20功能特點
DS18B20功能特點:3.0~5.5 V單電源供電;微型化、低功耗、抗干擾能力強、易與微處理器接口;溫度測量范圍為-55~+125 ℃,測溫分辨率可達0.5 ℃;3引腳TO-92小體積封裝或8引腳μSOP封裝;可編程為9~12位A/D轉換精度;只需一根端口線就能與微處理器通訊;每只DS18B20有惟一的序列號并可存入其ROM中,便于實現多芯片多點測量;在使用中不需要任何外圍元件;用戶可自設定非易失性的報警上下限值。
1.2 DS18B20引腳功能
DS18B20引腳分布如圖1所示。
1.3 DS18B20內部結構
DS18B20內部由64位閃速ROM、觸發器TH和TL、高速暫存存儲器、配置寄存器和8位CRC發生器等組成。
圖1DS18B20引腳
(1) 64位閃速ROM的結構如下:
8位檢驗CRC48位序列號8位工廠代碼
開始8位是產品類型的編號,接著是每個器件的惟一的序號,共有48位,最后8位是前56位的CRC校驗碼,這也是多個DS18B20可以采用一線進行通信的原因。
(2) 非易失性溫度報警觸發器TH和TL,可通過軟件寫入用戶報警上下限。
(3) 高速暫存存儲器:
DS18B20溫度傳感器的內部存儲器包括一個高速暫存RAM和一個非易失性的可電擦除的E2PROM。后者用于存儲TH,TL值,數據先寫入RAM,經校驗后再傳給E2PROM。而配置寄存器為高速暫存器中的第5個字節,他的內容用于確定溫度值的數字轉換分辨率,DS18B20工作時按此寄存器中的分辨率將溫度轉換為相應精度的數值。
1.4 DS18B20的初始化
由于DS18B20單線通信功能是分時完成的,他有嚴格的時隙概念,因此讀寫時序很重要。系統對DS18B20的各種操作必須按協議進行。操作協議為:初始化DS18B20(發復位脈沖)→發ROM功能命令→發存儲器操作命令→處理數據。
2 單片機溫度測量系統硬件設計
2.1 系統的硬件結構
系統的硬件結構如圖2所示。以單片機AT89C51為核心,由溫度傳感器DS18B20、鍵盤和LED顯示電路、電源電路及時鐘電路等組成。
圖2 系統硬件結構
2.2 電源電路
電源電路中主要使用的是由交流220 V,50 Hz的市電轉換成直流電,該部分電路由降壓、整流、濾波、穩壓4部分組成,穩壓集成塊采用7805。
2.3 數據采集
數據采集電路如圖3所示。 Atmel的AT89C51單片機,內有4 kB閃爍可編程可擦除只讀存儲器,128 B的數據存儲器空間,可直接推動LED。由溫度傳感器DS18B20采集被控對象的實時溫度,提供給AT89C51的P3.7口作為數據輸入。
圖3 單片機89C51與溫度傳感器DS18B20的連接圖
2.4 接口電路
P1口接4×4行列鍵盤,P1.0~P1.3與行線相連,每條行線接10 kB的電阻到電源,P1.4~P1.7與列線相連。P0口用作7段數碼管的字段選擇信號,控制數碼管的字段LED發光,P2口的P2.0~P2.3用于產生4位數碼管的位選擇信號,控制應該顯示的7段數碼管發光。
3 軟件設計
3.1 系統程序流程圖
系統程序流程圖如圖4所示。
圖4 系統程序流程圖
3.2 溫度部分軟件設計
DS18B20的一線工作協議流程是:初始化→ROM操作指令→存儲器操作指令→數據傳輸。其工作時序包括初始化時序、寫時序和讀時序。故主機控制DS18B20完成溫度轉換必須經過3個步驟:每一次讀寫之前都要對DS18B20進行復位,復位成功后發送一條ROM指令,最后發送RAM指令,這樣才能對DS18B20進行預定的操作。復位要求CPU將數據線下拉500 μs,然后釋放,DS18B20收到信號后等待16~60 μs左右,發出60~240 μs的低脈沖,CPU收到此信號表示復位成功。部分函數如下:
3.2.1 初始化函數
初始化函數:
void TxReset(void)
{ uint i;
DQ = 0;
i = 100;
while (i>0) i--;
DQ = 1; // 產生上升沿
i = 4;
while (i>0) i--;}
3.2.2 等待應答函數
等待應答函數:
void RxWait(void)
{ uint i;
while(DQ);
while(~DQ); // 檢測到應答脈沖
i = 4;
while (i>0) i--; }
3.2.3 讀數據函數
讀數據函數:
uchar RdByte(void)
{ uchar i,j,b;
b = 0;
for (i=1;i<=8;i++)
{ j = RdBit();
b = (j<<7)|(b>>1);
}
return(b);}
3.2.4 寫數據函數
寫數據函數:
void WrByte(uchar b)
{ uint i;
uchar j;
bit btmp;
for(j=1;j<=8;j++)
{ btmp = b0x01;
b = b>>1; // 取下一位(由低位向高位)
if (btmp)
{ /* 寫1 */
DQ = 0;
i++;i++; // 延時,使得15 μs以內拉高
DQ = 1;
i = 8;
while(i>0) i-; // 整個寫1時隙不低于60 μs
}
else
{ /* 寫0 */
DQ = 0;
i = 8;
while(i>0) i--; // 保持低在60~120 μs之間
DQ = 1;
i++;
i++; } } }
[BT4+*3]3.2.5 啟動溫度轉換函數
啟動溫度轉換函數:
void convert(void)
{ TxReset(); // 產生復位脈沖,初始化DS18B20
RxWait(); // 等待DS18B20給出應答脈沖
delay(1); // 延時
WrByte(0xcc); // skip rom 命令
WrByte(0x44); // convert T 命令
}
3.2.6 讀取溫度值函數
讀取溫度值函數:
void RdTemp(void)
{ TxReset(); // 產生復位脈沖,初始化DS18B20
RxWait(); // 等待DS18B20給出應答脈沖
delay(1); // 延時
WrByte(0xcc); // skip rom 命令
WrByte(0xbe); // read scratchpad 命令
tplsb = RdByte(); // 溫度值低位字節(其中低4位為二進制的“小數”部分)
tpmsb = RdByte(); // 高位值高位字節(其中高5位為符號位)
}
4 結 語
溫度傳感器DS18B20轉化溫度的方法非常簡潔且精度高、測試范圍較廣。單片機體積小、重量輕、抗干擾能力強、對環境要求不高、價格低廉、可靠性高、靈活性好。因此這種溫度測量系統能應用于各種場合,具有很大的應用價值。
參 考 文 獻
[1]田俊英.基于51單片機的溫度測試系統的設計與實現[J]. 現代電子技術,2007,30(10):15-17.
[2]MAXIM公司.MAXIM產品資料全集[M/CD].2000.
[3]吉雷.Protel 99從入門到精通[M].西安:西安電子科技大學出版社,2000.
[4]林伸茂.8051單片機徹底研究基礎篇[M].北京:中國電力出版社,2007.
作者簡介 趙永杰 男,1975年出生,南陽廣播電視大學,講師,在讀碩士研究生。研究方向為嵌入式系統。
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。