色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

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

DS18B20數(shù)字溫度傳感器概述及控制時(shí)序

CHANBAEK ? 來(lái)源:CSDN-_會(huì)飛_的魚(yú) ? 作者:CSDN-_會(huì)飛_的魚(yú) ? 2023-03-07 15:08 ? 次閱讀

一. 概述

DS18B20數(shù)字溫度傳感器提供9-Bit到12-Bit的攝氏溫度測(cè)量精度和一個(gè)用戶可編程的非易失性且具有過(guò)溫和低溫觸發(fā)報(bào)警的報(bào)警功能。 DS18B20采用的1-Wire通信即僅采用一個(gè)數(shù)據(jù)線(以及地)與微控制器進(jìn)行通信,采集數(shù)據(jù)的精度為12bit。

傳感器的溫度檢測(cè)范圍為-55℃至+125℃,并且在溫度范圍超過(guò)-10℃至85℃之外時(shí)還具有+-0.5℃的精度。 此外,DS18B20可以直接由數(shù)據(jù)線供電而不需要外部電源供電。

截圖20230301181839.png

二. 電氣參數(shù)

1.特點(diǎn)

  • 供電電壓:3.0V-5.5V。
  • 測(cè)量溫度范圍:-55~+125℃
  • 精度:±0.5℃
  • 數(shù)據(jù)傳輸:“一線總線”的數(shù)字方式傳輸
  • 采集精度:可以由用戶自定義為9-Bits至12-Bits。

2.引腳說(shuō)明

截圖20230301181839.png

3.參考電路圖

截圖20230301181839.png

DS18B20供電一般采用外部供電方式,并且在數(shù)據(jù)線上并聯(lián)一個(gè)4.7k的上拉電阻,以增強(qiáng)數(shù)據(jù)的抗干擾能力。

三. 控制時(shí)序

1.初始化時(shí)序

與DS18B20所有的通信都是由初始化時(shí)序開(kāi)始的,該時(shí)序包括從主設(shè)備發(fā)出的復(fù)位脈沖及從DS18B20響應(yīng)的存在脈沖組成。 如圖所示。

截圖20230301181839.png

當(dāng)DS18B20響應(yīng)復(fù)位信號(hào)的存在脈沖后,則其向主設(shè)備表明其在該總線上,并且已經(jīng)做好操作命令。

/*******************************************************************************
* 函 數(shù) 名         : Ds18b20Init
* 函數(shù)功能       : 初始化
* 輸    入         : 無(wú)
* 輸    出         : 初始化成功返回1,失敗返回0
*******************************************************************************/
uchar Ds18b20Init()
{
  unsigned char x=0;
  DSPORT = 1;         //DQ復(fù)位
  Delay_DS18B20(8);    //稍做延時(shí)
  DSPORT = 0;         //單片機(jī)將DQ拉低
  Delay_DS18B20(80);   //精確延時(shí),大于480us
  DSPORT = 1;         //拉高總線
  Delay_DS18B20(14);
  x = DSPORT;           //稍做
return x;//初始化成功
}

2.讀時(shí)序

寫(xiě)時(shí)段有兩種情況:“寫(xiě)1”時(shí)段和“寫(xiě)0”時(shí)段。 主設(shè)備通過(guò)寫(xiě)1時(shí)段來(lái)向DS18B20中寫(xiě)入邏輯1以及通過(guò)寫(xiě)0時(shí)段來(lái)向DS18B20中寫(xiě)入邏輯0。 每個(gè)寫(xiě)時(shí)段最小必須有60us的持續(xù)時(shí)間且獨(dú)立的寫(xiě)時(shí)段間至少有1us的恢復(fù)時(shí)間。 兩個(gè)寫(xiě)時(shí)段都是由主設(shè)備通過(guò)將1-Wire總線拉低來(lái)進(jìn)行初始化,如圖。

截圖20230301181839.png

根據(jù)以上讀0及1的時(shí)序,便可實(shí)現(xiàn)讀取一個(gè)完整字節(jié)的函數(shù),如下:

/*******************************************************************************
* 函 數(shù) 名         : Ds18b20ReadByte
* 函數(shù)功能       : 讀取一個(gè)字節(jié)
* 輸    入         : 無(wú)
* 輸    出         : dat
*******************************************************************************/
uchar Ds18b20ReadByte()
{
  unsigned char i=0;
  unsigned char dat = 0;
  for (i=8;i>0;i--)
  {
    DSPORT = 0;     // 給脈沖信號(hào)
    dat>>=1;
    DSPORT = 1;     // 給脈沖信號(hào)
    if(DSPORT)
    dat|=0x80;
    Delay_DS18B20(4);
  }
  return(dat);
}

3.寫(xiě)時(shí)序

僅在讀時(shí)段期間DS18B20才能向主設(shè)備傳送數(shù)據(jù)。 因此,主設(shè)備在執(zhí)行完讀暫存寄存器[BEh]或讀取供電模式[B4h]后,必須及時(shí)地生成讀時(shí)段,這樣DS18B20才能提供所需的數(shù)據(jù)。 此外,主設(shè)備可以在執(zhí)行完轉(zhuǎn)換溫度[指令:44h]或拷貝EEPROM[指令:B8h]命令后生成讀時(shí)段,以便獲得在“DS18B20功能命令”表中提到的操作信息。 時(shí)序如圖:

截圖20230301181839.png

根據(jù)以上寫(xiě)0及1的時(shí)序,便可實(shí)現(xiàn)寫(xiě)入一個(gè)完整字節(jié)的函數(shù),如下:

/*******************************************************************************
* 函 數(shù) 名         : Ds18b20WriteByte
* 函數(shù)功能       : 向18B20寫(xiě)入一個(gè)字節(jié)
* 輸    入         : com
* 輸    出         : 無(wú)
*******************************************************************************/
void Ds18b20WriteByte(uchar dat)
{
  unsigned char i=0;
  for (i=8; i>0; i--)
  {
    DSPORT = 0;
    DSPORT = dat&0x01;
    Delay_DS18B20(5);
    DSPORT = 1;
    dat>>=1;
  }
}

四. 控制程序

1.讀取溫度流程

截圖20230301181839.png

要讀取一個(gè)完整的溫度值,需要根據(jù)以上流程進(jìn)行操作。 先對(duì)DS18B20進(jìn)行復(fù)位操作,再發(fā)送開(kāi)始轉(zhuǎn)換指令(指令值:0x44),再發(fā)送復(fù)位操作,等待DS18B20應(yīng)答后,發(fā)送讀取溫度指令,最后就可以讀取16位的數(shù)據(jù)(有限位最大為12位)。

2.讀取溫度程序

/*******************************************************************************
* 函 數(shù) 名         : Ds18b20ChangTemp
* 函數(shù)功能       : 讓18b20開(kāi)始轉(zhuǎn)換溫度
* 輸    入         : 無(wú)
* 輸    出         : 無(wú)
*******************************************************************************/
void  Ds18b20ChangTemp()
{
  Ds18b20Init();
  Delay1ms(1);
  Ds18b20WriteByte(0xcc);    //跳過(guò)ROM操作命令     
  Ds18b20WriteByte(0x44);      //溫度轉(zhuǎn)換命令
//  Delay1ms(100);  //等待轉(zhuǎn)換成功,而如果你是一直刷著的話,就不用這個(gè)延時(shí)了
}
/*******************************************************************************
* 函 數(shù) 名         : Ds18b20ReadTempCom
* 函數(shù)功能       : 發(fā)送讀取溫度命令
* 輸    入         : 無(wú)
* 輸    出         : 無(wú)
*******************************************************************************/
void  Ds18b20ReadTempCom()
{  
  Ds18b20Init();
  Delay1ms(1);
  Ds18b20WriteByte(0xcc);   //跳過(guò)ROM操作命令
  Ds18b20WriteByte(0xbe);   //發(fā)送讀取溫度命令
}
/*******************************************************************************
* 函 數(shù) 名         : Ds18b20ReadTemp
* 函數(shù)功能       : 讀取溫度
* 輸    入         : 無(wú)
* 輸    出         : 溫度值
*******************************************************************************/
int Ds18b20ReadTemp()
{
  int temp = 0;
  uchar tmh, tml;




  Ds18b20ChangTemp();         //先寫(xiě)入轉(zhuǎn)換命令
  Ds18b20ReadTempCom();      //然后等待轉(zhuǎn)換完后發(fā)送讀取溫度命令
  tml = Ds18b20ReadByte();    //讀取溫度值共16位,先讀低字節(jié)
  tmh = Ds18b20ReadByte();    //再讀高字節(jié)
  temp = tmh;
  temp <<= 8;
  temp |= tml;
  return temp;
}
/*******************************************************************************
* 函 數(shù) 名         : GetTemp
* 函數(shù)功能       : 串口輸出溫度值
* 輸    入         : 無(wú)
* 輸    出         : 無(wú)
*******************************************************************************/
Void GetTemp(void)
{
  int temp;
  float tp; 
  ET0 = 0;
  temp = Ds18b20ReadTemp();
  ET0 = 1;
  if(temp<= 0)            //當(dāng)溫度值為負(fù)數(shù)
    {
//    temp=temp-1;
//    temp=~temp;
//    tp=temp;
//    temp=tp*0.0625*100+0.5;  
        Uart_SendString("Overrate!\\r\\n");    //超過(guò)量程
    }
   else
  {      
    tp=temp;//因?yàn)閿?shù)據(jù)處理有小數(shù)點(diǎn)所以將溫度賦給一個(gè)浮點(diǎn)型變量
    //如果溫度是正的那么,那么正數(shù)的原碼就是補(bǔ)碼它本身
    temp=tp*0.0625*100+0.5;  
    //留兩個(gè)小數(shù)點(diǎn)就*100,+0.5是四舍五入,因?yàn)?a href="http://m.1cnz.cn/v/tag/1743/" target="_blank">C語(yǔ)言浮點(diǎn)數(shù)轉(zhuǎn)換為整型的時(shí)候把小數(shù)點(diǎn)
    //后面的數(shù)自動(dòng)去掉,不管是否大于0.5,而+0.5之后大于0.5的就是進(jìn)1了,小于0.5的就
    //算加上0.5,還是在小數(shù)點(diǎn)后面。
  }
  Uart_SendString("The Current Temperature is: ");
  Uart_SendByte((temp% 10000 / 1000) + 0x30);
  Uart_SendByte((temp% 1000 / 100) + 0x30);
  Uart_SendByte('.');
  Uart_SendByte((temp% 100 / 10) + 0x30);
  Uart_SendByte((temp% 10) + 0x30);
  Uart_SendString("℃\\r\\n"); 
}
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 電源
    +關(guān)注

    關(guān)注

    184

    文章

    17766

    瀏覽量

    250708
  • 傳感器
    +關(guān)注

    關(guān)注

    2551

    文章

    51207

    瀏覽量

    754536
  • DS18B20
    +關(guān)注

    關(guān)注

    10

    文章

    779

    瀏覽量

    80943
  • 時(shí)序
    +關(guān)注

    關(guān)注

    5

    文章

    389

    瀏覽量

    37355
  • 數(shù)字溫度傳感器

    關(guān)注

    0

    文章

    188

    瀏覽量

    15475
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    DS18B20溫度傳感器是什么

    DALLAS最新單線數(shù)字溫度傳感器DS18B20簡(jiǎn)介新的“一線器件”體積更小、適用電壓更寬、更經(jīng)濟(jì) Dallas 半導(dǎo)體公司的數(shù)字
    發(fā)表于 04-27 08:14

    DS18B20溫度傳感器實(shí)驗(yàn)

    STM32學(xué)習(xí)記錄:DS18B20溫度傳感器實(shí)驗(yàn)(HAL庫(kù))實(shí)驗(yàn)摘要DS18B20簡(jiǎn)述STMCubeMX引腳配置芯片選型引腳和時(shí)鐘配置生成ARM-MDK工程編寫(xiě)
    發(fā)表于 08-18 07:44

    DS18B20數(shù)字溫度傳感器概述

    一、概述DS18B20數(shù)字溫度傳感器DS18B20數(shù)字
    發(fā)表于 12-08 06:34

    外設(shè)溫度傳感器DS18B20概述

    參看:《嵌入式-STM32開(kāi)發(fā)指南》第三部分 外設(shè)篇 - 第2章 溫度傳感器DS18B20這篇文章講的非常詳細(xì)了。一、簡(jiǎn)介1、概述DS18B20
    發(fā)表于 01-05 07:17

    單片機(jī)與數(shù)字溫度傳感器DS18B20的接口設(shè)計(jì)

    本章簡(jiǎn)要介紹了DALLAS公司生產(chǎn)的-線式數(shù)字溫度傳感器DS18B20的基本原理、功能特點(diǎn)及工作時(shí)序,給出了
    發(fā)表于 07-13 11:20 ?138次下載

    數(shù)字溫度傳感器DS18B20的遠(yuǎn)離于應(yīng)用

    文章簡(jiǎn)要介紹了DALLAS公司生產(chǎn)的一線式數(shù)字溫度傳感器DS18B20D的基本原理、共恩呢個(gè)特點(diǎn)及工作時(shí)序。給出了
    發(fā)表于 07-14 09:35 ?46次下載

    數(shù)字溫度傳感器DS18B20的設(shè)計(jì)及應(yīng)用

    數(shù)字溫度傳感器DS18B20的設(shè)計(jì)及應(yīng)用 1引言 DS18B20是DALLAS公司生產(chǎn)的一線式數(shù)字
    發(fā)表于 04-02 18:00 ?2833次閱讀
    <b class='flag-5'>數(shù)字</b><b class='flag-5'>溫度</b><b class='flag-5'>傳感器</b><b class='flag-5'>DS18B20</b>的設(shè)計(jì)及應(yīng)用

    DS18B20數(shù)字溫度傳感器

    本設(shè)計(jì)基于單片機(jī)STM32開(kāi)發(fā)板,對(duì)DS18B20數(shù)字溫度傳感器進(jìn)行控制,有源代碼
    發(fā)表于 05-11 14:54 ?42次下載

    智能溫度傳感器DS18B20的原理與應(yīng)用

    DS18B20是DALLAS公司生產(chǎn)的單線數(shù)字溫度傳感器,他具有獨(dú)特的單線總線接口方式。文章詳細(xì)的介紹了單線數(shù)字
    發(fā)表于 10-11 18:19 ?49次下載

    ds18b20的特性_ds18b20溫度傳感器應(yīng)用

    本文首先介紹了ds18b20的特性,其次介紹了DS18B20工作原理,最后介紹了ds18b20溫度傳感器應(yīng)用。
    發(fā)表于 04-24 09:10 ?1.1w次閱讀
    <b class='flag-5'>ds18b20</b>的特性_<b class='flag-5'>ds18b20</b><b class='flag-5'>溫度</b><b class='flag-5'>傳感器</b>應(yīng)用

    單總線數(shù)字溫度傳感器DS18B20時(shí)序溫度采集與讀取研究

    在分布式測(cè)溫系統(tǒng)中應(yīng)用了大量的新型傳感器DS18B20DS18B20是單總線數(shù)字溫度傳感器其硬
    發(fā)表于 04-28 09:43 ?5305次閱讀

    單片機(jī)外設(shè)介紹:溫度傳感器 DS18B20

    文章目錄溫度傳感器 DS18B20溫度傳感器 DS18B20DS18B20 是美信公司的一款
    發(fā)表于 12-04 15:21 ?48次下載
    單片機(jī)外設(shè)介紹:<b class='flag-5'>溫度</b><b class='flag-5'>傳感器</b> <b class='flag-5'>DS18B20</b>

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

    本設(shè)計(jì)采用的主控芯片是ATMEL公司的AT89S52單片機(jī),數(shù)字溫度傳感器是DALLAS公司的DS18B20。本設(shè)計(jì)用數(shù)字
    發(fā)表于 05-09 16:02 ?57次下載

    ds18b20溫度傳感器如何使用

    DS18B20是一款廣泛使用的數(shù)字溫度傳感器,它具有高精度、低功耗和易于使用的特點(diǎn)。 DS18B20溫度
    的頭像 發(fā)表于 09-03 16:51 ?720次閱讀

    ds18b20溫度傳感器怎么接線

    DS18B20是一種廣泛使用的數(shù)字溫度傳感器,它基于1-Wire(一線)通信協(xié)議工作。這種傳感器因其高精度、易用性和低成本而受到歡迎。
    的頭像 發(fā)表于 10-18 14:50 ?1603次閱讀
    主站蜘蛛池模板: 动漫美女性侵| 柠檬福利精品视频导航| 精品国产影院| 秘密教学26我们在做一次吧免费 | 国产在线精品亚洲一品区| 金瓶梅 快播| 欧美高清xxx| 香蕉动漫库| 99re这里只有精品国产| 国产乱人视频在线观看| 免费看国产精品麻豆| 小776 论坛| 99热.com| 好嗨哟在线看片免费| 暖暖 免费 高清 日本视频大全| 午夜电影三级还珠格格| 在线高清电影理论片4399| 儿子你得太大了慢点插| 久久久久久久久久久福利观看| 色欲AV精品一区二区入口| 在线播放无码字幕亚洲| 国产精品爆乳尤物99精品| 免费a毛片| 亚洲看片无码免费视频| 出差无套内射小秘书| 久久欧洲视频| 小伙无套内射老女人| JAVAPARSER丰满白老师| 九九热在线视频精品店| 少妇无套内谢久久久久 | 草莓国产视频免费观看| 精品人伦一区二区三区潘金莲| 日韩精品人成在线播放| 中文无码不卡的岛国片国产片| 国产精品久久久久影院嫩草 | 极品美女穴| 日韩亚洲不卡在线视频| 中文字幕无码A片久久| 国产亚洲精品AV麻豆狂野| 日本视频一区二区免费观看| 538视频这里只有精品|