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

正文內(nèi)容

基于單片機(jī)的單總線多點(diǎn)溫度測(cè)控系統(tǒng)(編輯修改稿)

2025-07-16 12:51 本頁面
 

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