衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

DS18B20數(shù)字溫度計(jì)的單片機(jī)接口應(yīng)用詳細(xì)說明

Wildesbeast ? 來源:單片機(jī)教程網(wǎng) ? 作者:h1654155169.2086 ? 2020-05-05 14:53 ? 次閱讀

1.DS18B20基本知識(shí)

DS18B20數(shù)字溫度計(jì)是DALLAS公司生產(chǎn)的1-Wire,即單總線器件,具有線路簡單,體積小的特點(diǎn)。因此用它來組成一個(gè)測溫系統(tǒng),具有線路簡單,在一根通信線,可以掛很多這樣的數(shù)字溫度計(jì),十分方便。

1、DS18B20產(chǎn)品的特點(diǎn)

(1)、只要求一個(gè)端口即可實(shí)現(xiàn)通信。

(2)、在DS18B20中的每個(gè)器件上都有獨(dú)一無二的序列號(hào)。

(3)、實(shí)際應(yīng)用中不需要外部任何元器件即可實(shí)現(xiàn)測溫。

(4)、測量溫度范圍在-55。C到+125。C之間。

(5)、數(shù)字溫度計(jì)的分辨率用戶可以從9位到12位選擇。

(6)、內(nèi)部有溫度上、下限告警設(shè)置。

2、DS18B20的引腳介紹

TO-92封裝的DS18B20的引腳排列見圖1,其引腳功能描述見表1。

(底視圖)

圖1

表1DS18B20詳細(xì)引腳功能描述

序號(hào)名稱引腳功能描述

1GND地信號(hào)

2DQ數(shù)據(jù)輸入/輸出引腳。開漏單總線接口引腳。當(dāng)被用著在寄生電源下,也可以向器件提供電源。

3VDD可選擇的VDD引腳。當(dāng)工作于寄生電源時(shí),此引腳必須接地。

3. DS18B20的使用方法

由于DS18B20采用的是1-Wire總線協(xié)議方式,即在一根數(shù)據(jù)線實(shí)現(xiàn)數(shù)據(jù)的雙向傳輸,而對(duì)AT89S51單片機(jī)來說,硬件上并不支持單總線協(xié)議,因此,我們必須采用軟件的方法來模擬單總線的協(xié)議時(shí)序來完成對(duì)DS18B20芯片的訪問。

由于DS18B20是在一根I/O線上讀寫數(shù)據(jù),因此,對(duì)讀寫的數(shù)據(jù)位有著嚴(yán)格的時(shí)序要求。DS18B20有嚴(yán)格的通信協(xié)議來保證各位數(shù)據(jù)傳輸?shù)恼_性和完整性。該協(xié)議定義了幾種信號(hào)的時(shí)序:初始化時(shí)序、讀時(shí)序、寫時(shí)序。所有時(shí)序都是將主機(jī)作為主設(shè)備,單總線器件作為從設(shè)備。而每一次命令和數(shù)據(jù)的傳輸都是從主機(jī)主動(dòng)啟動(dòng)寫時(shí)序開始,如果要求單總線器件回送數(shù)據(jù),在進(jìn)行寫命令后,主機(jī)需啟動(dòng)讀時(shí)序完成數(shù)據(jù)接收。數(shù)據(jù)和命令的傳輸都是低位在先。

DS18B20的復(fù)位時(shí)序

DS18B20的讀時(shí)序

對(duì)于DS18B20的讀時(shí)序分為讀0時(shí)序和讀1時(shí)序兩個(gè)過程。

對(duì)于DS18B20的讀時(shí)隙是從主機(jī)把單總線拉低之后,在15秒之內(nèi)就得釋放單總線,以讓DS18B20把數(shù)據(jù)傳輸?shù)絾慰偩€上。DS18B20在完成一個(gè)讀時(shí)序過程,至少需要60us才能完成。

DS18B20的寫時(shí)序

對(duì)于DS18B20的寫時(shí)序仍然分為寫0時(shí)序和寫1時(shí)序兩個(gè)過程。

對(duì)于DS18B20寫0時(shí)序和寫1時(shí)序的要求不同,當(dāng)要寫0時(shí)序時(shí),單總線要被拉低至少60us,保證DS18B20能夠在15us到45us之間能夠正確地采樣IO總線上的“0”電平,當(dāng)要寫1時(shí)序時(shí),單總線被拉低之后,在15us之內(nèi)就得釋放單總線。

4. 實(shí)驗(yàn)任務(wù)

用一片DS18B20構(gòu)成測溫系統(tǒng),測量的溫度精度達(dá)到0.1度,測量的溫度的范圍在-20度到+100度之間,用8位數(shù)碼管顯示出來。

5. 電路原理

6. 系統(tǒng)板上硬件連線

(1). 把“單片機(jī)系統(tǒng)”區(qū)域中的P0.0-P0.7用8芯排線連接到“動(dòng)態(tài)數(shù)碼顯示”區(qū)域中的ABCDEFGH端子上。

(2). 把“單片機(jī)系統(tǒng)”區(qū)域中的P2.0-P2.7用8芯排線連接到“動(dòng)態(tài)數(shù)碼顯示”區(qū)域中的S1S2S3S4S5S6S7S8端子上。

(3). 把DS18B20芯片插入“四路單總線”區(qū)域中的任一個(gè)插座中,注意電源與地信號(hào)不要接反。

(4). 把“四路單總線”區(qū)域中的對(duì)應(yīng)的DQ端子連接到“單片機(jī)系統(tǒng)”區(qū)域中的P3.7/RD端子上。

7. C語言源程序

#include 《AT89X52.H》

#include 《INTRINS.h》

unsigned char code displaybit[]={0xfe,0xfd,0xfb,0xf7,

0xef,0xdf,0xbf,0x7f};

unsigned char code displaycode[]={0x3f,0x06,0x5b,0x4f,

0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,

0x39,0x5e,0x79,0x71,0x00,0x40};

unsigned char code dotcode[32]={0,3,6,9,12,16,19,22,

25,28,31,34,38,41,44,48,

50,53,56,59,63,66,69,72,

75,78,81,84,88,91,94,97};

unsigned char displaycount;

unsigned char displaybuf[8]={16,16,16,16,16,16,16,16};

unsigned char timecount;

unsigned char readdata[8];

sbit DQ=P3^7;

bit sflag;

bit resetpulse(void)

{

unsigned char i;

DQ=0;

for(i=255;i》0;i--);

DQ=1;

for(i=60;i》0;i--);

return(DQ);

for(i=200;i》0;i--);

}

void writecommandtods18b20(unsigned char command)

{

unsigned char i;

unsigned char j;

for(i=0;i《8;i++)

{

if((command & 0x01)==0)

{

DQ=0;

for(j=35;j》0;j--);

DQ=1;

}

else

{

DQ=0;

for(j=2;j》0;j--);

DQ=1;

for(j=33;j》0;j--);

}

command=_cror_(command,1);

}

}

unsigned char readdatafromds18b20(void)

{

unsigned char i;

unsigned char j;

unsigned char temp;

temp=0;

for(i=0;i《8;i++)

{

temp=_cror_(temp,1);

DQ=0;

_nop_();

_nop_();

DQ=1;

for(j=10;j》0;j--);

if(DQ==1)

{

temp=temp | 0x80;

}

else

{

temp=temp | 0x00;

}

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

}

return(temp);

}

void main(void)

{

TMOD=0x01;

TH0=(65536-4000)/256;

TL0=(65536-4000)%6;

ET0=1;

EA=1;

while(resetpulse());

writecommandtods18b20(0xcc);

writecommandtods18b20(0x44);

TR0=1;

while(1)

{

;

}

}

void t0(void) interrupt 1 using 0

{

unsigned char x;

unsigned int result;

TH0=(65536-4000)/256;

TL0=(65536-4000)%6;

if(displaycount==2)

{

P0=displaycode[displaybuf[displaycount]] | 0x80;

}

else

{

P0=displaycode[displaybuf[displaycount]];

}

P2=displaybit[displaycount];

displaycount++;

if(displaycount==8)

{

displaycount=0;

}

timecount++;

if(timecount==150)

{

timecount=0;

while(resetpulse());

writecommandtods18b20(0xcc);

writecommandtods18b20(0xbe);

readdata[0]=readdatafromds18b20();

readdata[1]=readdatafromds18b20();

for(x=0;x《8;x++)

{

displaybuf[x]=16;

}

sflag=0;

if((readdata[1] & 0xf8)!=0x00)

{

sflag=1;

readdata[1]=~readdata[1];

readdata[0]=~readdata[0];

result=readdata[0]+1;

readdata[0]=result;

if(result》255)

{

readdata[1]++;

}

}

readdata[1]=readdata[1]《《4;

readdata[1]=readdata[1] & 0x70;

x=readdata[0];

x=x》》4;

x=x & 0x0f;

readdata[1]=readdata[1] | x;

x=2;

result=readdata[1];

while(result/10)

{

displaybuf[x]=result;

result=result/10;

x++;

}

displaybuf[x]=result;

if(sflag==1)

{

displaybuf[x+1]=17;

}

x=readdata[0] & 0x0f;

x=x《《1;

displaybuf[0]=(dotcode[x]);

displaybuf[1]=(dotcode[x])/10;

while(resetpulse());

writecommandtods18b20(0xcc);

writecommandtods18b20(0x44);

}

}

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6043

    文章

    44622

    瀏覽量

    638527
  • DS18B20
    +關(guān)注

    關(guān)注

    10

    文章

    780

    瀏覽量

    81110
  • 溫度計(jì)
    +關(guān)注

    關(guān)注

    6

    文章

    406

    瀏覽量

    78566
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    DS18B20 數(shù)字溫度計(jì)特點(diǎn)

    一.DS18B20特點(diǎn) DS18B20 數(shù)字溫度計(jì)提供12位(二進(jìn)制)溫度讀數(shù)的數(shù)字型傳感器。傳
    的頭像 發(fā)表于 09-11 11:19 ?2998次閱讀
    <b class='flag-5'>DS18B20</b> <b class='flag-5'>數(shù)字</b><b class='flag-5'>溫度計(jì)</b>特點(diǎn)

    基于DS18B20的51單片機(jī)數(shù)字溫度計(jì)設(shè)計(jì)

    本帖最后由 kuofonfon 于 2020-1-3 17:39 編輯 實(shí)驗(yàn)原理DS18B20數(shù)字溫度計(jì)是DALLAS公司生產(chǎn)的1-Wire,即單總線器件,具有線路簡單,體積小的特點(diǎn)。因此用它
    發(fā)表于 11-04 12:27

    數(shù)字溫度計(jì)DS18B20的特性及應(yīng)用

    DS18B20是美國DALLAS公司生產(chǎn)的可完全替代DS1820的全新型單線數(shù)字溫度計(jì).文中介紹了DS18B20的性能結(jié)構(gòu)和與
    發(fā)表于 04-25 15:19 ?69次下載

    基于MSP430單片機(jī)DS18B20數(shù)字溫度計(jì)

    為了在工業(yè)生產(chǎn)及過程控制中準(zhǔn)確測量溫度,設(shè)計(jì)了一種基于低功耗MSP430單片機(jī)數(shù)字溫度計(jì)。整個(gè)系統(tǒng)通過單片機(jī)MSP430F1121A控制
    發(fā)表于 11-22 16:14 ?269次下載

    DS18B20數(shù)字溫度計(jì)使用

    DS18B20數(shù)字溫度計(jì)使用 1.DS18B20基本知識(shí) DS18B20數(shù)字
    發(fā)表于 01-25 11:29 ?1591次閱讀
    <b class='flag-5'>DS18B20</b><b class='flag-5'>數(shù)字</b><b class='flag-5'>溫度計(jì)</b>使用

    基于DS18B20數(shù)字溫度計(jì)設(shè)計(jì)

    基于DS18B20數(shù)字溫度計(jì)設(shè)計(jì),供大家下載。
    發(fā)表于 12-21 18:26 ?24次下載

    DS18B20溫度測試實(shí)驗(yàn)

    基于單片機(jī)STC89C52的DS18B20數(shù)字溫度計(jì),測量實(shí)時(shí)溫度
    發(fā)表于 12-31 14:36 ?10次下載

    DS18B20數(shù)字溫度計(jì)使用

    DS18B20數(shù)字溫度計(jì)使用。
    發(fā)表于 05-05 14:56 ?0次下載

    51單片機(jī)DS18B20數(shù)字溫度計(jì)

    51單片機(jī)DS18B20數(shù)字溫度計(jì)
    發(fā)表于 05-19 15:32 ?117次下載

    DS18B20數(shù)字溫度計(jì)使用

    學(xué)習(xí)單片機(jī)電路圖的很好的資料——DS18B20數(shù)字溫度計(jì)使用
    發(fā)表于 11-03 15:15 ?0次下載

    DS18B20溫度計(jì)原理圖和PCB和單片機(jī)程序

    DS18B20溫度計(jì)原理圖和PCB和單片機(jī)程序
    發(fā)表于 11-06 16:43 ?46次下載

    使用89C51單片機(jī)DS18B20溫度傳感器設(shè)計(jì)數(shù)字溫度計(jì)的源代碼

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用89C51單片機(jī)DS18B20溫度傳感器設(shè)計(jì)數(shù)字溫度計(jì)的源代碼
    發(fā)表于 03-07 17:06 ?97次下載
    使用89C51<b class='flag-5'>單片機(jī)</b>和<b class='flag-5'>DS18B20</b><b class='flag-5'>溫度</b>傳感器設(shè)計(jì)<b class='flag-5'>數(shù)字</b><b class='flag-5'>溫度計(jì)</b>的源代碼

    DS18B20溫度計(jì)原理圖和PCB及單片機(jī)程序免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是DS18B20溫度計(jì)原理圖和PCB及單片機(jī)程序免費(fèi)下載。
    發(fā)表于 06-16 16:22 ?80次下載
    <b class='flag-5'>DS18B20</b><b class='flag-5'>溫度計(jì)</b>原理圖和PCB及<b class='flag-5'>單片機(jī)</b>程序免費(fèi)下載

    使用STC單片機(jī)實(shí)現(xiàn)DS18B20溫度計(jì)的C51配套例程免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用STC單片機(jī)實(shí)現(xiàn)DS18B20溫度計(jì)的C51配套例程免費(fèi)下載。
    發(fā)表于 03-16 10:12 ?42次下載

    DS18B20溫度傳感器的數(shù)字溫度計(jì)設(shè)計(jì)案例

    本設(shè)計(jì)采用的主控芯片是ATMEL公司的AT89S52單片機(jī)數(shù)字溫度傳感器是DALLAS公司的DS18B20。本設(shè)計(jì)用數(shù)字傳感器
    發(fā)表于 05-09 16:02 ?57次下載
    海燕百家乐论| 棋牌类玩具| 红宝石百家乐的玩法技巧和规则| 去澳门百家乐娱乐城| 百家乐官网真人游戏| 百家乐官网在线赌场娱乐网规则| 网上百家乐官网庄家有赌场优势吗| 百家乐官网作弊视频| 泸溪县| 永胜博| 龙博娱乐| 香港六合彩官方| 沈阳娱乐棋牌网| 大发888娱乐城手机版| 威尼斯人娱乐网开户| 自贡百家乐赌| 大西洋百家乐的玩法技巧和规则 | 德州扑克网站| 波音现金网投注| 顶级赌场官方直营网| 钱大发888斗地主| 大发888bet娱乐场下载| 大发888赌城| 大发888官网充值| 皇冠现金网怎么样| 大发888代理平台| 大发888游戏官方| 大发888娱乐场下载英皇国际| 大发888技巧| 大发888游戏官方下载客户端| 大发888是什么游戏| 决胜德州扑克刷金币| 17pk棋牌官方下载| 大赢家即时比分网| 去澳门百家乐的玩法技巧和规则 | 评测百家乐官网博彩网站| 百家乐官网投注方法网| 半圆百家乐官网桌布| 百家乐官网赌场技巧网| 新濠百家乐官网的玩法技巧和规则| 百家乐官网有试玩的吗|