江科大51單片機筆記【12】DS18B20溫度傳感器(上)

寫在前言

? 此為博主自學江科大51單片機(B站)的筆記,方便后續重溫知識

? 在后面的章節中,為了防止篇幅過長和易于查找,我把一個小節分成兩部分來發,上章節主要是關于本節課的硬件介紹、電路圖、原理圖等理論知識,主要是為下章節的代碼部分打基礎。

? 我的單片機是24年12月在tb普中買的,型號是STC89C52,在原視頻中引腳或接口不對應的我都會改正,保證在我的機子上能運行才發上來的,還有一些文字部分是我的理解,并非照搬,所以可能有理解不到位的現象。

??如有誤或交流,敬請指點提問

思維導圖:

先介紹溫度傳感器,然后是引腳及應用電路,內部結構,存儲格式,單總線介紹、電路規劃和時序結構,最后是數據幀

一、DS18B20

1.介紹

  • DS18B20是一種常見的數字溫度傳感器,其控制命令和數據都是以數字信號的方式輸入輸出,相比較于模擬溫度傳感器,具有功能強大、硬件簡單、易擴展、抗干擾性強等特點,如熱敏電阻,?電壓隨溫度變化,我們就可以需要額外一個AD轉換芯片測量它的電壓,這樣單片機才能讀取他的溫度,應用方面不如數字溫度傳感器。比如下面左圖1就是我們的DS18B20,他在內部集成了模擬溫度傳感器還有控制器,可以把溫度轉換好直接存在RAM里面,我們只需要讀取就行了
  • 測溫范圍:-55℃到+125攝氏度
  • 通信接口:1-Wire(單總線)
  • 其他特征:可形成總線結構、內置溫度報警功能、可寄生供電(就是不用單獨配置VCC,節省IO口)
  • 左圖2是一個關于DS18B20的模塊,右圖1是一個芯片?

2.引腳及應用電路

VDD:電源(3.0V-5.5V);GND:電源地;DQ:單總線接口

3.內部結構框圖

  • 從左往右解釋以此是:外部一個上拉電阻,內部左邊是一個寄生供電結構,從DQ的數據端口,經過寄生結構后,是一個64-BIT ROM接口,然后是一個內部控制邏輯,下面是一個RAM,SCRATCHPAD(暫存器),最右邊是一些溫度傳感器,報警高觸發寄存器(報警閾值),報警低觸發寄存器,配置寄存器(設置分辨率,最高0.0625最低0.5),8位的CRC生成器(校驗碼判斷數據是否正確)等模塊 (從上到下)
  • 寄生供電結構:可以節省VDD,如果下邊的VDD沒有接的話,就是由DQ的VDD供電的,但是在這里我們不使用,因為寄生供電需要強上拉,但是我們的開發板沒有強上拉
  • 64-BIT ROM:作為器件地址,用于總線通信的尋址
  • SCRATCHPAD(暫存器):用于總線的數據交互
  • EEPROM:用于保存溫度觸發閾值和配置參數

4.寄存器結構

這一塊對應上一幅圖

左邊就是SCRATCHPAD的詳細內部結構,右邊就是對應報警高觸發寄存器(報警閾值),報警低觸發寄存器,配置寄存器(設置分辨率,最高0.0625最低0.5)

左邊一共有九個字節,前兩位存的是溫度,第0位是最低有效字節,第1位是最高有效字節,這兩位共同構成了溫度;然后是兩個 TH和TL寄存器,還有一個配置寄存器,右邊也是對應這三個,作用就是寫入左邊的三個寄存器,然后再存入右邊的寄存器里存儲起來;后面三個位是保留位,最后一位是CRC校驗位

二、單總線

1.介紹

  • 單總線(1-Wire Bus)是由Dallas公司開發的一種通用數據總線
  • 一種通信新:DQ
  • 異步、半雙工
  • 單總線只需要一根通信線即可實現數據的雙向傳輸,當采用寄生供電時,還可以省去設備的VDD線路,此時,供電加通信只需要DQ和GND兩根線。
  • DS18B20
  • DHT11,溫濕度傳感器

2.電路規范(硬件規范)

  • 設備的DQ均要配置成開漏輸出模式
  • DQ添加一個上拉電阻,阻值一般為4.7K歐左右,前兩條跟I2C的配置一樣
  • 若此總線的從機采用寄生供電,則主機還應配一個強上拉輸出電路
  • 總線可以掛載多個設備,可以單獨通信跟I2C很像
  • 下面比上面多了一個強上拉電路,如果左邊的圈接低電平就會閉合,就會接到VCC,如果斷開,就是弱上拉供電

?3.時序結構(軟件規范)

(1)初始化

主機將總線拉低至少480us,然后釋放總線,等待15~60us后,存在的從機會拉低總線60~240us以響應主機,之后從機將釋放總線

詳解:總線的空閑狀態是高電平,如果要開始工作就拉低至少480us,然后再釋放,但是圖中拉上去的是彎的,其實是弱上拉電阻,不會馬上拉高,然后從機拉低,然后從機釋放

(2)發送一位

主機將總線拉低60~120us,然后釋放總線,表示發送0;主機將總線拉低1~15us,然后釋放總線,表示發送1.從機將在總線拉低30us后(典型值)讀取電平,整個時間片應大于60us

圖中左邊是發送0,右邊是發送1?

發送間隔還規定不能連續,需要間隔1u s

(3)接收一位

?主機將總線拉低1~15us,然后釋放總線,并在拉低后15us內讀取總線電平(盡量貼近15us的末尾),讀取為低電平則為接收0,讀取為高電平則為接收1,整個時間片應大于60us?

在這里可能會有疑問,這里的接和發都是是拉低總線然后釋放這樣會不會混淆。其實不會的,主機在發之前就已經定義后了是發送還是接收,不會出現混淆的現象

(4)發送一個字節:連續調用8次發送一位的時序,依次發送一個字節的8位(低位在前)

?接收一個字節:連續調用8次接收一位的時序,依次接收一個字節的8為(低位在前)

三、DB18B30操作流程和數據幀

初始化:從機復位,主機判斷從機是否響應

ROM操作:ROM指令+本指令需要的讀寫操作

功能操作:功能指令+本指令需要的讀寫操作

本節課只有一個設備,所以不會用到搜索ROM,只用跳過ROM就可以直接訪問設備了

我們要進行的功能有,第一條是轉換溫度,第二條是寫暫存器,第三條是讀暫存器,第四條是復制暫存器,將暫存器里的字節存入到E2里,實現掉電不丟失;第五條是將E2的字節覆蓋回雜草,第六條是讀取一位時序,響應供電模式?

  • 溫度變換:初始化→跳過ROM→開始溫度變換

  • 溫度讀取:初始化→跳過ROM→讀暫存器→連續的讀操作

  • 溫度存儲格式

前五位都是符號位(BIT15-11),后面四位(BIT3-0)是存小數的,其余位(BIT10-4)是整數部分

下面是一些舉例

負數就是整數的補碼+1

下面是流程圖可以看一下

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/73063.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/73063.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/73063.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

基于springboot+vue的佳途旅行分享預約平臺

一、系統架構 前端:vue2 | element-ui | html 后端:springboot | mybatis-plus 環境:jdk1.8 | mysql | maven | node 二、代碼及數據庫 三、功能介紹 01. web端-注冊 02. web端-登錄 03. web端-系統主頁1 04. web端-系統主頁2 05. we…

【數據結構】2算法及分析

0 章節 1.4到1.5小節。 掌握算法概念、特性、描述、算法性能時間復雜度和空間復雜度; 理解遞歸含義? 掌握實現遞歸的條件和時機; 應用簡單遞歸問題的算法設計; 重點 算法…

【一起學Rust | Tauri2.0框架】基于 Rust 與 Tauri 2.0 框架實現軟件開機自啟

文章目錄 前言 一、準備工作1.1 環境搭建1.2 創建 Tauri 項目1.3 添加依賴 二、實現開機自啟的基本原理2.1 開機自啟的基本概念2.2 Tauri 應用的生命周期 三、Windows 平臺實現3.1 Windows 注冊表機制3.2 實現步驟3.3 注意事項 四、Linux 平臺實現4.1 Linux systemd 服務4.2 實…

一周熱點-OpenAI 推出了 GPT-4.5,這可能是其最后一個非推理模型

在人工智能領域,大型語言模型一直是研究的熱點。OpenAI 的 GPT 系列模型在自然語言處理方面取得了顯著成就。GPT-4.5 是 OpenAI 在這一領域的又一力作,它在多個方面進行了升級和優化。 1 新模型的出現 GPT-4.5 目前作為研究預覽版發布。與 OpenAI 最近的 o1 和 o3 模型不同,…

css中的浮動

在 CSS 中,浮動(float)是一種定位元素的方式,它允許元素脫離正常的文檔流,并向左或向右移動,直到其邊緣碰到包含塊或者另一個浮動元素的邊緣。下面從多個方面詳細介紹 CSS 浮動: 一&#xff0c…

element-plus中form表單組件的使用

1.如何讓每個表單項對齊? 問題描述:如下圖,每個表單項的輸入框/下拉框/日期選擇器是沒有對齊的,我們希望它們縱向是對齊的。 解決方案:給el-form標簽,加上label-width"100px"即可。意思就是給每個…

線性搜索算法

何時使用線性搜索算法? 當處理一個小數據集時。當搜索存儲在連續內存中的數據集時。 線性搜索算法在什么情況下優于其他搜索算法? 當列表或數組未排序時,或者當輸入的大小相對較小時,首選線性搜索算法。它易于實現,并…

踩坑記錄:yolov5環境版本要求比較嚴苛?

在安裝yolov5環境時,numpy安裝失敗報錯metadata-generation-failed 報錯如下: Collecting numpy1.18.5 (from -r /*****/yolov5-5.0/requirements.txt (line 5))Using cached https://pypi.tuna.tsinghua.edu.cn/packages/01/1b/d3ddcabd5817be02df0e6…

Java設計模式系列:單例模式的7種實現與適用場景

一、單例模式核心價值與實現原則 1. 使用場景 全局配置類(如數據庫連接池)日志記錄器Spring默認Bean作用域硬件設備訪問(如打印機)2. 設計三原則 私有構造器:禁止外部實例化靜態實例持有:全局唯一訪問點延遲加載(可選):避免資源浪費二、七種單例實現方式深度解析 1.…

OpenManus-通過源碼方式本地運行OpenManus,含踩坑及處理方案,chrome.exe位置修改

前言:最近 Manus 火得一塌糊涂啊,OpenManus 也一夜之間爆火,那么作為程序員應該來嘗嘗鮮 1、前期準備 FastGithub:如果有科學上網且能正常訪問 github 則不需要下載此軟件,此軟件是提供國內直接訪問 githubGit&#…

【最新】DeepSeek 實用集成工具有那些?

deepseek 系列github倉庫地址 【主頁】deepseek-aiDeepSeek-R1DeepSeek-V3DeepSeek-VL2【本文重點介紹】awesome-deepseek-integration 注意:以下內容來自awesome-deepseek-integration DeepSeek 實用集成(awesome-deepseek-integration) 將…

開源!速度100Kb/s的有線和無線雙模ESP32S3芯片的DAP-Link調試器

開源!速度100Kb/s的有線和無線雙模ESP32S3芯片的DAP-Link調試器 目錄 開源!速度100Kb/s的有線和無線雙模ESP32S3芯片的DAP-Link調試器本項目未經授權,禁止商用!本項目未經授權,禁止商用!本項目未經授權&…

Flink測試環境Standalone模式部署實踐

1.JDK環境 參考官方文檔: https://nightlies.apache.org/flink/flink-docs-release-1.20/release-notes/flink-1.18/ 2.下載Flink:https://flink.apache.org/downloads/ 本次驗證用的是:https://www.apache.org/dyn/closer.lua/flink/flink…

在16卡服務器上使用最新版的CUDA和驅動訓練`llama - 2 - 7b`和`llama - 2 - 70b`模型,并生成訓練指標數據

要在16卡服務器上使用最新版的CUDA和驅動訓練llama - 2 - 7b和llama - 2 - 70b模型,并生成訓練指標數據,你可以按照以下步驟進行: 1. 環境準備 確保你的服務器已經安裝了最新版的CUDA和驅動,并且安裝了必要的Python庫&#xff0…

macOS 終端優化

macOS 安裝、優化、還原、升級 Oh My Zsh 完全指南 🚀 Oh My Zsh 是 macOS 終端增強的利器,它能提供強大的自動補全、主題定制和插件支持,讓你的終端更高效、更炫酷。本文將全面介紹 如何安裝、優化、還原、重新安裝和升級 Oh My Zsh&#x…

計算機網絡--訪問一個網頁的全過程

文章目錄 訪問一個網頁的全過程應用層在瀏覽器輸入URL網址http://www.aspxfans.com:8080/news/index.aspboardID5&ID24618&page1#r_70732423通過DNS獲取IP地址生成HTTP請求報文應用層最后 傳輸層傳輸層處理應用層報文建立TCP連接傳輸層最后 網絡層網絡層對TCP報文進行處…

CAAC無人機考證備考清單

一、培訓機構內部的考試大綱/備考指南 《機長筆試大綱》 《機長口試大綱》 《教員筆試大綱》 《教員口試大綱》(不同機構的文件、命名可能不同) 二、培訓機構內部題庫 題庫內容包含(仿照多旋翼題庫制作): 分類 子分…

【BUG】類文件具有錯誤的版本 61.0, 應為 52.0,請刪除該文件或確保該文件位于正確的類路徑子目錄中。

報錯: [ERROR] 類文件具有錯誤的版本 61.0, 應為 52.0 [ERROR] 請刪除該文件或確保該文件位于正確的類路徑子目錄中。 報錯截圖: 原因:Java 版本和 Spring 不兼容,顯示 Spring 版本過高 解決方法 1. 使用更高版本的 J…

卷積神經網絡(筆記01)

視覺處理三大任務:分類、目標檢測、圖像分割 CNN網絡主要有三部分構成:卷積層(Convolutional Layer)、池化層(Pooling Layer)和激活函數 一、解釋卷積層中的偏置項是什么,并討論在神經網絡中引…

Django-ORM-prefetch_related

Django-ORM-prefetch_related 模型定義N1 查詢問題示例 使用 prefetch_related 優化查詢處理更復雜的查詢示例:預取特定條件的書籍示例:預取多個關聯字段 性能比較注意事項總結 通過 Author 和 Books 兩個模型來理解 Django 的 prefetch_related 方法。 …