DS18B20數字溫度感測器

2023-01-09 04:12:04 字數 2616 閱讀 5158

dallas半導體公司的數位化溫度感測器ds1820是世界上第一片支援 「一線匯流排」介面的溫度感測器,體積更小、適用電壓更寬、更經濟。一線匯流排獨特而且經濟的特點,使使用者可輕鬆地組建溫度感測器網路,為測量系統的構建引入全新概念。ds18b20、 ds1822 「一線匯流排」數位化溫度感測器同ds1820一樣,支援「一線匯流排」介面,測量溫度範圍為-55°c~+125°c,在-10~+85°c範圍內,精度為±0.

5°c,而ds1822的精度較差為± 2°c 。現場溫度直接以「一線匯流排」的數字方式傳輸,大大提高了系統的抗干擾性,適合於惡劣環境的現場溫度測量,如:環境控制、裝置或過程控制、測溫類消費電子產品等。

ds18b20可以程式設定9~12位的解析度,精度為±0.5°c,解析度設定,以及使用者設定的報警溫度儲存在eeprom中,掉電後依然儲存。ds1822與 ds18b20軟體相容,是ds18b20的簡化版本。

省略了儲存使用者定義報警溫度、解析度引數的eeprom,精度降低為±2°c,適用於對效能要求不高,成本控制嚴格的應用,是經濟型產品。 繼「一線匯流排」的早期產品後,ds1820開闢了溫度感測器技術的新概念。ds18b20和ds1822使電壓、特性及封裝有更多的選擇,讓我們可以構建適合自己的經濟的測溫系統。

1、ds18b20效能特點

ds18b20的效能特點:①採用單匯流排專用技術,既可通過序列口線,也可通過其它i/o口線與微機介面,無須經過其它變換電路,直接輸出被測溫度值(9位二進位制數,含符號位),②測溫範圍為-55℃-+125℃,測量解析度為0.0625℃,③內含64位經過雷射修正的唯讀儲存器rom,④適配各種微控制器或系統機,⑤使用者可分別設定各路溫度的上、下限,⑥內含寄生電源。

2、ds18b20內部結構

ds18b20內部結構主要由四部分組成:64位光刻rom,溫度感測器,非揮發的溫度報警觸發器th和tl,高速暫存器。ds18b20的管腳排列如圖1所示。

64位光刻rom是出廠前被光刻好的,它可以看作是該ds18b20的位址序列號,不同的器件位址序列號不同。

ds18b20高速暫存器共9個儲存單元,如表所示:

以12位轉化為例說明溫度高低位元組存放形式及計算:12位轉化後得到的12位資料,儲存在18b20的兩個高低兩個8位的ram中,二進位制中的前面5位是符號位。如果測得的溫度大於0,這5位為0,只要將測到的數值乘於0.

0625即可得到實際溫度(等價說明:高8位位元組的低3位和低8位位元組的高4位組成溫度整數值的二進位制數;或者說:12位測量時,所測數值乘以0.

0625(=1/16),即右移4位後去掉了二進位制數的小數部分);如果溫度小於0,這5位為1,測到的數值需要取反加1再乘於0.0625才能得到實際溫度(等價說明:當溫度小於0時,整數部分就是各位取反,小數部分則是各位取反後加1)。

1、ds18b20控制方法

在硬體上,ds18b20與微控制器的連線有兩種方法,一種是vcc接外部電源,gnd接地,i/o與微控制器的i/o線相連;另一種是用寄生電源供電,此時udd、gnd接地,i/o接微控制器i/o。無論是內部寄生電源還是外部供電,i/o口線要接5kω左右的上拉電阻。ds18b20有六條控制命令,如下表所示:

cpu對ds18b20的訪問流程是:先對ds18b20初始化,再進行rom操作命令,最後才能對儲存器操作,資料操作。ds18b20每一步操作都要遵循嚴格的工作時序和通訊協議。

如主機控制ds18b20完成溫度轉換這一過程,根據ds18b20的通訊協議,須經三個步驟:每一次讀寫之前都要對ds18b20進行復位,復位成功後傳送一條rom指令,最後傳送ram指令,這樣才能對ds18b20進行預定的操作。

initialization procedure 「reset and presence pulses」

c51程式

#include <>

#include <>

unsigned char code displaybit=;

unsigned char code displaycode=;

unsigned char code dotcode[32]=;

unsigned char displaycount;

unsigned char displaybuf[8]=;

unsigned char timecount;

unsigned char readdata[8];

sbit dq=p3^7;

bit sflag;

bit resetpulse( void)

void write command to ds18b20 (unsigned char command)

else

command=_cror_(command,1); }

} unsigned char readdatafromds18b20(void)

else

for(j=200;j>0;j--);

} return(temp);

} void main(void)

void t0(void) interrupt 1 using 0

else

p2=displaybit[displaycount];

displaycount++;

if(displaycount==8)

timecount++;

if(timecount==150)

{ timecount=0;

while(resetpulse());

溫度感測器DS18B20工作原理

溫度感測器 ds18b20是dallas公司生產的一線式數字溫度感測器,具有3引腳to 92小體積封裝形式 溫度測量範圍為 55 125 可程式設計為9位 12位a d轉換精度,測溫解析度可達0.0625 被測溫度用符號擴充套件的16位數字量方式序列輸出 其工作電源既可在遠端引入,也可採用寄生電源方...

菜鳥的ds18b20總結

之前玩了一下ds18b20,但一直沒有總結,忽然有種總結的衝動,所以就寫了這些。以下的這些只是我個人對部分文件的理解,水平不夠,難免會有誤,請各位指正,一 初始化,如圖一 資料線拉低至少480us後再將其拉高,大約等待15 60us,就會收到60 240us的低電平的存在脈衝,其後資料線會恢復被拉高...

我寫DS18B20總結

unsigned int n for n 0 n void chushihua dq 0 delay 600 送480us脈衝 根據時序 dq 1 delay 35 大約60us左右 這樣就完成了ds18b20的初始化工作。初始化之後要向資料埠dq寫資料,寫0或者是1 當主機匯流排從高電平拉到低電平...