freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

基于單片機的單總線多點溫度測控系統(tǒng)(編輯修改稿)

2025-07-16 12:51 本頁面
 

【文章內容簡介】 試模式位,用于設置 DS18B20 在工作模式還是在測試模式。在 DS18B20 出廠時該位被設置為 0,用戶不要去改動。R1 和 R0用來設置分辨率,如下表所示:(DS18B20 出廠時被設置為 12 位)表 36R1 與 R0 確定傳感器分辨率設置表R1 R0 傳感器精度/bit 轉換時間/ms0 0 9 0 1 10 1 0 11 3751 1 12 750(5)DS18B20 的工作過程初始化ROM 命令跟隨著需要交換的數據;功能命令跟隨著需要交換的數據。訪問 DS18B20 必須嚴格遵守這一命令序列,如果丟失任何一步或序列混亂,DS18B20 都不會響應主機(除了 Search ROM 和 Alarm Search 這兩個命令,在這兩個命令后,主機都必須返回到第一步) 。a.初始化:DS18B20 所有的數據交換都由一個初始化序列開始。由主機發(fā)出的復位脈沖和跟在其后的由 DS18B20 發(fā)出的應答脈沖構成。當 DS18B20 發(fā)出響應主機的應答脈沖時,即向主機表明它已處在總線上并且準備工作。b. ROM 命令:ROM 命令通過每個器件 64bit 的 ROM 碼,使主機指定某一特定器件(如果有多個器件掛在總線上)與之進行通信。DS18B20 的 ROM 如表 34 所示,每個ROM 命令都是 8 bit 長。c. 功能命令:主機通過功能命令對 DS18B20 進行讀/寫 Scratchpad 存儲器,或者啟動溫度轉換。DS18B20 的功能命令如表 37 所示。表 37指令 協議 功能讀 ROM 33H 讀 DS18B20 中的編碼(即 64 位地址)符合 ROM 55H發(fā)出此命令后,接著發(fā)出 64 位 ROM 編碼,訪問單總線上與該編碼相對應的 DS18B20,使之作出響應,為下一步對該 DS18B20 的讀寫作準備搜索 ROM 0F0H 用于確定掛接在同一總線上 DS18B20 的個數和識別 64 位 ROM 地址,為操作各器件作好準備跳過 ROM 0CCH 忽略 64 位 ROM 地址,直接向 DS18B20V 溫度轉換命令,適用于單個 DS18B20 工作報警搜索命令 0ECH 執(zhí)行后,只有溫度超過廟宇值上限或下限的片子才做出響應溫度轉換 44H 啟動 DS18B20 進行溫度轉換,轉換時間最長為 500ms(典型為200ms),結果豐入內部 9 字節(jié) RAM 中讀暫存器 BEH 讀內部 RAM 中 9 字節(jié)的內容寫暫存器 4EH 發(fā)出向內部 RAM 的第 4 字節(jié)寫上、下溫度數據命令,緊該溫度命令之后,傳達兩字節(jié)的數據復制暫存器 48H 將 RAM 中第 4 字內容復制到 E2PROM 中重調 E2PROM 0B8H 將 E2PROM 中內容恢復到 RAM 中的第 4 字節(jié)讀供電方式 0B4H 讀 DS18B20 的供電模式,寄生供電時 DS18B20 發(fā)送“0” ,外部供電時 DS18B20 發(fā)送“1” (6)DS18B20 的信號方式DS18B20 采用嚴格的單總線通信協議,以保證數據的完整性。該協議定義了幾種信號類型:復位脈沖、應答脈沖、寫 0、寫 讀 0 和讀 1。除了應答脈沖所有這些信號都由主機發(fā)出同步信號??偩€上傳輸的所有數據和命令都是以字節(jié)的低位在前。:復位脈沖和應答脈沖在初始化過程中,主機通過拉低單總線至少 480181。s,以產生復位脈沖(TX)。然后主機釋放總線并進入接收(RX)模式。當總線被釋放后,5kΩ 的上拉電阻將單總線拉高。DS18B20 檢測到這個上升沿后,延時 15181。s~60181。s,通過拉低總線60181。s~240181。s 產生應答脈沖。初始化波形如圖 38 所示。 圖 38 初始化脈沖在寫時序期間,主機向 DS18B20 寫入指令;而在讀時序期間,主機讀入來自 DS18B20 的指令。在每一個時序,總線只能傳輸一位數據。讀/寫時序如圖39 所示。寫時序存在兩種寫時序:“寫 1”和“寫 0”。主機在寫 1 時序向 DS18B20 寫入邏輯 1,而在寫 0 時序向 DS18B20 寫入邏輯 0。所有寫時序至少需要 60181。s,且在兩次寫時序之間至少需要 1181。s 的恢復時間。兩種寫時序均以主機拉低總線開始。產生寫 1 時序:主機拉低總線后,必須在 15181。s 內釋放總線,然后由上拉電阻將總線拉至高電平。產生寫 0 時序:主機拉低總線后,必須在整個時序期間保持低電平(至少 60181。s) 。在寫時序開始后的 15181。s~60181。s 期間,DS18B20 采樣總線的狀態(tài)。如果總線為高電平,則邏輯 1 被寫入 DS18B20;如果總線為低電平,則邏輯 0 被寫入DS18B20。讀時序圖 39DS18B20 讀/寫時序圖DS18B20 只能在主機發(fā)出讀時序時才能向主機傳送數據。所以主機在發(fā)出讀數據命令后,必須馬上產生讀時序,以便 DS18B20 能夠傳送數據。所有讀時序至少 60181。s,且在兩次獨立的讀時序之間至少需要 1181。s 的恢復時間。每次讀時序由主機發(fā)起,拉低總線至少 1181。s。在主機發(fā)起讀時序之后,DS18B20 開始在總線上傳送 1 或 0。若 DS18B20 發(fā)送 1,則保持總線為高電平;若發(fā)送 0,則拉低總線。當傳送 0 時,DS18B20 在該時序結束時釋放總線,再由上拉電阻將總線拉回空閑高電平狀態(tài)。DS18B20 發(fā)出的數據在讀時序下降沿起始后的 15181。s 內有效,因此主機必須在讀時序開始后的 15181。s 內釋放總線,并且采樣總線狀態(tài)。DS18B20 在使用時,一般都采用單片機來實現數據采集。只需將 DS18B20 信號線與單片機 1 位 I/O 線相連,且單片機的 1 位 I/O 線可掛接多個 DS18B20 ,就可實現單點或多點溫度檢測。(7)DS18B20 的溫度計算DS18B20 允許通過程序對傳感器的分辨率,溫度報警的上、下限等參數進行配置。它的內部存儲器包括一個高速暫存存儲器和一個非易失性可擦除E178。PROM。速暫存存儲器共有 8 個字節(jié)(byte),每個字節(jié) 8 位(bit)。根據溫度的計算方法如下:S S S S S = 11111 b 溫度值:T = [ (MSB and 7) 256 + LSB] ℃SSSSS = 00000 b 溫度值:T = [ (256 MSB) 256 LSB] ℃如果,存儲器高位寄存器 MS 的 S S S S S 均為 1 ,則被測溫度為正值,用上面第 1 個公式來計算溫度。如果存儲器高位寄存器 MSB 的 S S S S S 均為 0,則被測溫度為負值,用上面第 2 個公式來計算溫度。在這里,有兩點應當注意:一是公式中中括號內的數值為二進制,在計算口號內計算完成后應轉化為十進制。二是這里的 7 與 是假設傳感器的分辨率設置 時的計算值。如果分辨率的設置值不是 ,那么就應當作相應的變化。第 3 和第 4 個字節(jié)分別用來存放溫度報警的上限(TH)和下限值(TL)。DS18B20 在完成溫度變換后,會將所測溫度值與貯存在 TH 和 TL 內的上下限值相比較,如果測溫結果高于 TH 或低于 TL,DS18B20 內部的告警標志就會被置位,表示溫值超出了測量范圍。并且該值在掉電后不會丟失,而是記憶其設定的上下限值。第 5 字節(jié)是配置寄存器,如表 所示,該寄存器用于對溫度轉換值的分辨率進行設置。其中,最高位用于設置傳感器是工作模式還是測試模式,是生產廠家為便于檢驗使用。其出廠時的默認值為 0,為工作模式(即用戶使用時的模式)。并且在用戶使用中,該位總是保持為 0。R1 與 R0 確定傳感器的分辨率,如表 所示,DS18B20 有 4 種分辨率可供選擇。使用時可以根據實際需要來設置,出廠時的默認設置是 12 位。最后5 位總保持 1 鍵盤電路設計根據設計任務書中要求實現的功能,我選擇了 4X4=16 個鍵盤的矩陣鍵盤來設置溫度的上、下限值,此鍵盤設計符合系統(tǒng)設置要求,所以我選擇此鍵盤完成本設計。①矩陣鍵盤結構:鍵盤實際上是一組按鍵開關的集合,平時按鍵開關總是處于斷開狀態(tài),當按下鍵時它才閉合。矩陣鍵盤又稱行列式鍵盤,這種行列式鍵盤結構能夠有效的提高單片機系統(tǒng)中 I/O 口的利用率。它的結構和產生的波形如圖 311 所示。圖 311 鍵盤結構及產生的波形圖②矩陣鍵盤工作原理:在鍵盤中按鍵數量較多時,為了減少 I/O 口的占用,通常將按鍵排列成矩陣形式,如圖 312 所示。在矩陣式鍵盤中,每條水平線和垂直線在交叉處不直接連通,而是通過一個按鍵來連通。利用這種行列矩陣結構只需 N 條行線和 M 條列線,即可組成具有 N*M 個按鍵的鍵盤。這樣,一個端口就可以構成 4X4=16 個按鍵,比直接將端口線用于鍵盤多出了一倍,而且線數越多,區(qū)別越明顯,比如再多加一條線就可以構成 20 鍵的鍵盤,而直接用端口線則只能多出一鍵(9 鍵) 。由此可見,在需要的鍵數比較多時,采用矩陣法來做鍵盤是合理的。矩陣式結構的鍵盤顯然比直接法要復雜一些,識別也要復雜一些,圖 312 中,行線所接的單片機的I/O 口作為輸出端,而列線所接的 I/O 口則作為輸入。這樣,當按鍵沒有按下時,所有的輸出端都是高電平,代表無鍵按下。行線輸出是低電平,一旦有鍵按下,則輸入線就會被拉低,這樣,通過讀入輸入線的狀態(tài)就可得知是否有鍵按下了。圖 312 鍵盤電路原理圖③鍵盤按鍵的判斷:上面是一個 4x4 的鍵盤,公用 4+4=8 條接口線,如果按下鍵 8,則第一行的線與第一列的線接通,當前第一行如果是低電平則第一列也輸出低電平,而其他沒有的列輸出為高電平,根據行列線的電平,就可以判斷按下的鍵的行位置。a)判斷有無鍵按下。b)去除鍵的機械抖動。方法是判別到有鍵按下,延時 10ms 在讀,如仍有鍵按下,再確定為鍵按下,否則為抖動。c)判別按下鍵的鍵號。d)CPU 對鍵的一次閉合只作一次處理。方法是等鍵釋放后再把鍵值作有效處理。列掃描法識別鍵號的工作原理如下:將第 0 列變?yōu)榈碗娖?,其余列為高電平,輸出編碼為 1110。然后讀取行的電平,辨別第 0 列是否有鍵按下。在第 0 列上若有某一個按鍵按下,則相應的行被拉到低電平,則表示第 0 列和此行相交的位置上有鍵按下。若沒有任一條行線為低電平,則說明列上無鍵按下。將第 1 列變?yōu)榈碗娖?,其余列為高電平,輸出編碼為本 1101。然后通過輸入口讀取各行的電平。檢測其中是否有變?yōu)榈碗娖降男芯€。若有鍵按下,則進而辨別哪一行有鍵按下,確定按鍵位置。將第 2 列變?yōu)榈碗娖?,其余列為低電時平,輸出編碼為本 1011。辨別是否有哪一行按鍵按下的方法同上。將第 3 列邊為第電平,其余列為低電平時,輸出編碼為本 0111。辨別是否有哪一行按鍵按下的方法同上。 顯示電路設計①溫度顯示工作原理:LCD1602 可以采用兩種方式與單片機連接,一種是采用 8 位數據總線 D0—D7,和 RS、R/W、EN 三個控制端口;另一種是只用 D4D7 作為四位數據分兩次傳送。本實驗將使用并采用八位數據方式來控制 1602 顯示,如圖 313 所示:圖 313 AT89C51 與 LCD1602 接口電路圖進行 LCD 設計主要是 LCD 的控制/驅動和外界的接口設計。控制主要是通過接口與外界通信、管理內/外顯示 RAM,控制驅動器,分配顯示數據;驅動主要是根據控制器要求,驅動 LCD 進行顯示??刂破鬟€常含有內部 ASCII 字符庫,或可外擴的大容量漢字庫。AT89C51 的 與 LCD1602 的使能端 E 相連, 與讀寫選擇端 R/W 相連, 與 RS 相連,當使能端使能時,再通過命令選擇端來控制讀數據,寫數據,寫命令。控制 P2 端口與 LCD1602A 的數據端口相連,傳輸數據。②LCD1602 的性能參數LCD1602A 的管腳排列如圖 31 ,它共有 16 個腳,各引腳功能如下:VSS: 電源地VDD:電源正極VL:液晶顯示偏壓信號,對比度調整端,接地時最高,接正電源最低,可接 10K電位器調整RS: 寄存器選擇,高電平選擇數據寄存器低電平選擇指令寄存器 圖 314 LCD1602A 的管腳R/W 讀/寫選擇端,高電平讀操作,低電平寫操
點擊復制文檔內容
法律信息相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1