![]() |
發布時間: 2018-9-28 22:19
正文摘要:ds18b20為什么在寫入數據之前要把總線拉低啊???還有就是我這個ds18b20的i/o引腳都沒定義(他的i/o口是接在P3^7上在,但程序中沒定義,直接用DSPORT了),但程序可以實現功能 為什么啊? ... |
本帖最后由 zl2168 于 2018-10-1 21:07 編輯 實例97 一線式DS18B20測溫 ⒈ DS18B20簡介 ⑴ 內部組織結構 … ⑵ 操作步驟和操作指令 … ⒉ 電路設計 … ⒊ 程序設計 … ⒋ Keil調試 … ⒌ Proteus仿真 … 先Proteus仿真一下,確認有效。
![]() ![]() 以上摘自張志良編著《80C51單片機仿真設計實例教程——基于Keil C和Proteus》清華大學出版社ISBN 978-7-302-41682-1,內有常用的單片機應用100案例,用于仿真實驗操作,電路與程序真實可靠可信可行。 |
#include"temp.h" 這句話 是告訴你 他、調用了 temp.h 這個文件,這個文件里有很多東西,例如 #define DSPORT P3^7 這個 你看看有沒有 ? 總線拉低是他的通信協議,不只是拉低,拉低了過一會還要再拉高。問這個問題說明你沒看數據手冊!回去看數據手冊吧!人家是這么說的,你就按著做就好了,要不然出問題的可能性就很大。 通過單線總線端口訪問DS18B20的協議如下: 步驟1. 初始化 步驟2. ROM操作指令 步驟3. DS18B20功能指令 每一次DS18B20的操作都必須滿足以上步驟,若是缺少步驟或是順序混亂,器件將不會返回值。 例如這樣的順序:發起ROM搜索指令[F0h]和報警搜索指令[ECh]之后,總線控制器必須返回步驟 初始化:通過單總線的所有執行操作處理都從一個初始化序列開始。初始化序列包括一個由總線控制器發出的復位脈沖和其后由從機發出的存在脈沖。存在脈沖讓總線控制器知道DS18B20在總線上且已準備好操作 |