欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

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

英創(chuàng)信息技術基于DS18B20測溫系統(tǒng)解決思路

英創(chuàng)信息技術 ? 來源:英創(chuàng)信息技術 ? 作者:英創(chuàng)信息技術 ? 2019-11-13 09:38 ? 次閱讀

英創(chuàng)嵌入式主板以其優(yōu)異的穩(wěn)定性、獨特的設計及方便使用等優(yōu)點,在嵌入式領域占有一席之地。在工業(yè)現(xiàn)場,經(jīng)常有監(jiān)測環(huán)境溫度的需求,本方案應用DS18B20為溫度采集芯片,與英創(chuàng)嵌入式主板的GPIO相連,就可以組成完整的測溫系統(tǒng)。由于DS18B20每條總線上可以最多接8個測溫點,那么英創(chuàng)嵌入式主板至少可以接64個測溫點。
DS18B20數(shù)字溫度計是DALLAS公司生產(chǎn)的1-Wire即單總線器件,具有線路簡單,體積小的特點。實際應用中不需要外部任何元器件即可實現(xiàn)測溫,測量溫度范圍在-55°C到+125°C之間,數(shù)字溫度計的分辨率用戶可以從9位到12位選擇;并且內(nèi)部有溫度上、下限告警設置,使用非常方便。
TO-92封裝的DS18B20的引腳排列見圖1,其引腳功能描述見表1。

表1 DS18B20詳細引腳功能描述:

序號

名稱

引腳功能描述

1

GND

信號

2

DQ

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

3

VDD

可選的VDD引腳。當工作于寄生電源時,此引腳必須接地

DS18B20的使用方法

由于DS18B20采用的是1-Wire總線協(xié)議方式,即在一根數(shù)據(jù)線實現(xiàn)數(shù)據(jù)的雙向傳輸,而對嵌入式主板來說,硬件上并不支持單總線協(xié)議,因此,我們必須采用GPIO的方法來模擬單總線的協(xié)議時序來完成對DS18B20芯片的訪問。在本示例中,只需把管腳2接英創(chuàng)嵌入式主板的GPIO,管腳3接5V電源,管腳1接地,就可以搭建起測試環(huán)境,如圖二所示。如果需要測試多點溫度,可以把多個DS18B20并起。

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

下面是18B20的時序圖,根據(jù)時序的要求,改變GPIO的電平,可以完成18B20的操作。

DS18B20復位時序

根據(jù)以上DS18B20的時序,初始化的函數(shù)如下:

Init18b20()

{

char flag;

OutBit(1);

Delayus(1);

OutBit(0);

Delayus(600); // 復位信號480—960us

OutBit(1);

Delayus(60); // 等待15-60us

if(ReadBit()) // 檢查存在電平,如果為低,說明18B20正確復位

{

printf(‘init fail’);

return false; // detect 1820 fail!

}

else

{

Sleep(1);

OutBit(1);

return true; // detect 1820 success!

}

}

DS18B20的數(shù)據(jù)讀寫時通過時間間隙處理位和命令字來確認信息交換。

DS18B20的寫時間隙

當主機把數(shù)據(jù)線從邏輯高電平拉到邏輯低電平的時候,寫時間隙開始。有兩種寫時間隙:寫1時間隙和寫0時間隙。所有寫時間隙必須最少持續(xù)60us,包括兩個寫周期間至少1us的恢復時間。

I/O線電平變低后,DS18B20在一個15us到60us的窗口內(nèi)對I/O線采樣。如果線上是高電平,就是寫1,如果線上是低電平,就是寫0。如圖所示。

void DS18B20::WriteByte(uchar wr)

{

uchar i;

OutBit(1);

Delayus(1);

for (i=0;i《8;i++) // 寫8bit

{

OutBit(0) ; // 總線拉低,寫間隙開始

Delayus(10); // 延時 2-12us

OutBit(wr&0x01) ; // 寫數(shù)據(jù)到總線

Delayus(30); // 在15us-60us之間采用

OutBit(1); // 釋放總線

wr 》》= 1;

Delayus(2);

}

Sleep(1); // 字節(jié)之間最好間隔的稍微長一點

}

DS18B20的讀時間隙

當從DS18B20讀取數(shù)據(jù)時,主機生成讀時間隙。當主機把數(shù)據(jù)線從高電平拉到低電平時,讀時間隙開始,數(shù)據(jù)線必須保持至少1us;從DS8B20輸出的數(shù)據(jù)在讀時間隙的下降沿出現(xiàn)后15us內(nèi)有效。對于DS18B20的讀時隙是從主機把總線拉低之后,在15微秒之內(nèi)就得釋放單總線,以讓DS18B20把數(shù)據(jù)傳輸?shù)絾慰偩€上。DS18B20在完成一個讀時序過程,至少要60us才能完成。

根據(jù)以上的讀時序圖,讀字節(jié)函數(shù)如下:

UCHAR DS18B20::ReadByte()

{

uchar i,u=0;

OutBit(1);

Delayus(1);

for(i=0;i《8;i++) // 讀一字節(jié)

{

OutBit(0) ; // 總線拉低,讀間隙開始

Delayus(2);

OutBit(1) ; // 拉高總線

Delayus(4); // 在1-14us之內(nèi)讀取總線數(shù)據(jù)

u 》》= 1;

if(ReadBit()==1) u |= 0x80;

Delayus(60); // 讀取數(shù)據(jù)周期至少60us

OutBit(1) ;

}

return(u);

}

在讀溫度之前,要先啟動溫度轉(zhuǎn)換,如果采用寄生電源供電,溫度轉(zhuǎn)換的時間應該大于500毫秒。對于一條總線的多個18B20來說,啟動轉(zhuǎn)換不需要匹配18B20的ROM地址。

void DS18B20::StartConvert()

{

Init18b20 ();

WriteByte(0xcc); // 跳過ROM

WriteByte(0x44); // 啟動轉(zhuǎn)換命令

}

在讀指定的18B20時,就要先發(fā)匹配命令,再發(fā)ROM序列號,具體請參考下面的程序:

void DS18B20::TemperatuerResult(char id)

{

uchar i;

Init18b20 ();

WriteByte(0x55); // 匹配ROM地址

for(i=0;i《8;i++) // 發(fā)18B20地址碼

{

WriteByte(b20rom[id][i]);

}

WriteByte(0xbe); // 發(fā)讀溫度命令

read_bytes(2); // 前2個字節(jié)為溫度值

temp=temp_buff[1]&0x0f; // 去掉符號位

temp=temp《《8;

temp=temp+temp_buff[0];

Temperature=temp*0.0625; // 得到溫度值

}


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

    關注

    7

    文章

    6086

    瀏覽量

    35636
收藏 人收藏

    評論

    相關推薦

    基于LPC2292 和DS18B20測溫節(jié)點設計The Des ign of Temperature measure node B

    設計方案和軟件的設計思路, 給出了主要驅(qū)動程序代碼。測溫節(jié)點的實現(xiàn)方法具有一定的通用性。關鍵詞:LPC2292; DS18B20; 測溫Abstract:The paper intro
    發(fā)表于 10-19 14:52

    測試測量技術社區(qū)-- 基于CC2430和DS18B20的無線測溫系統(tǒng)設計 ...

    測試測量技術社區(qū)-- 基于CC2430和DS18B20的無線測溫系統(tǒng)設計 -通用測量
    發(fā)表于 08-12 23:12

    測試測量技術社區(qū)-- 基于CC2430和DS18B20的無線測溫系統(tǒng)設計 ...

    測試測量技術社區(qū)-- 基于CC2430和DS18B20的無線測溫系統(tǒng)設計 -通用測量
    發(fā)表于 08-12 23:13

    DS18B20測溫系統(tǒng)設計

    誰那有DS18B20測溫系統(tǒng)設計幫忙發(fā)過來吧,時間緊迫,老師催著交,最好有原理圖和仿真的原件
    發(fā)表于 12-04 13:14

    DS18B20多點測溫方法探討

    、功耗低、性能高、抗干擾能力強、使用簡單等優(yōu)點。其獨特的單總線技術使用戶可輕松地組建傳感器網(wǎng)絡,特別適合于構成多點溫度測控系統(tǒng)。每個DS18B20 都有一個唯一的64 位ROM 序列號,通過查詢此序列號
    發(fā)表于 11-02 16:10

    基于DS18B20組網(wǎng)測溫的研究

    隨著現(xiàn)代信息技術的飛速發(fā)展,能夠獨立工作的溫度檢測和顯示系統(tǒng)已經(jīng)應用于諸多領域。簡單介紹了DALLAS公司推出的DS18B20數(shù)
    發(fā)表于 03-15 02:43 ?47次下載

    一種新型多點測溫系統(tǒng)的設計(基于DS18B20設計的多點測溫

    一種新型多點測溫系統(tǒng)的設計(基于DS18B20設計的多點測溫系統(tǒng)) 介紹DS18B20的基本特
    發(fā)表于 10-15 23:50 ?2003次閱讀
    一種新型多點<b class='flag-5'>測溫</b><b class='flag-5'>系統(tǒng)</b>的設計(基于<b class='flag-5'>DS18B20</b>設計的多點<b class='flag-5'>測溫</b>

    基于DS18B20測溫系統(tǒng)設計

    針對單線總線數(shù)字溫度傳感器 DS18B20 的工作特性,本文對基于DS18B20測溫系統(tǒng)進行了硬件和軟件的設計。仿真實驗結(jié)果表明,該測溫
    發(fā)表于 07-22 16:13 ?552次下載
    基于<b class='flag-5'>DS18B20</b><b class='flag-5'>測溫</b><b class='flag-5'>系統(tǒng)</b>設計

    DS18B20 構成測溫系統(tǒng)

    用一片 DS18B20 構成測溫系統(tǒng),測量的溫度精度達到 0.1 度,測量的溫度的范圍在-20度到+50度之間,用4位數(shù)碼管顯示出來。
    發(fā)表于 10-12 11:46 ?0次下載

    DS18B20構成測溫系統(tǒng)

    學習單片機電路圖的很好的資料——DS18B20 構成測溫系統(tǒng)
    發(fā)表于 11-03 15:15 ?0次下載

    ds18b20測溫程序詳解

    DS18B20是一種單總線數(shù)字溫度傳感器,測試溫度范圍-55℃-125℃,具有體積小,硬件開銷低,抗干擾能力強,精度高的特點。網(wǎng)上關于DS18B20的資料很多,但是光有程序,沒有講解,導致身邊很多同學即使拿到源碼也無從下手,下面就來看一下
    發(fā)表于 10-18 11:33 ?4.1w次閱讀
    <b class='flag-5'>ds18b20</b><b class='flag-5'>測溫</b>程序詳解

    ds18b20測溫電路圖詳解

    對于DS18B20的電路連接,除了上面所說的傳統(tǒng)的外部電源供電時的電路連接圖,DS18B20也可以工作在“寄生電源模式”,而下圖則表示了DS18B20工作在“寄生電源模式”下的電路連接圖。沒錯,這樣就可以使
    發(fā)表于 11-07 10:16 ?9w次閱讀

    dht11和ds18b20區(qū)別_dht11與ds18b20哪個測溫度更精確

    本文開始介紹介紹了DHT11特性、DHT11技術參數(shù),其次介紹了DS18B20工作原理與DS18B20技術性能,最后介紹了DS18B20&D
    發(fā)表于 01-26 12:19 ?8.8w次閱讀

    基于DS18B20多點測溫源碼

    DS18B20 單線數(shù)字溫度傳感器,多個 DS18B20 可以并聯(lián)在惟一的單線上,實現(xiàn)多點測溫。里面包含源碼和文章詳解。致力于開源項目的分享!
    發(fā)表于 01-05 16:28 ?25次下載

    基于DS18B20的多點測溫方案詳解

    DS18B20 單線數(shù)字溫度傳感器,多個 DS18B20 可以并聯(lián)在惟一的單線上,實現(xiàn)多點測溫。具體方案主要是以下步驟:
    的頭像 發(fā)表于 09-15 16:23 ?4218次閱讀
    基于<b class='flag-5'>DS18B20</b>的多點<b class='flag-5'>測溫</b>方案詳解