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

正文內(nèi)容

基于ds18b20單線多點(diǎn)溫度測(cè)量系統(tǒng)_畢業(yè)論文設(shè)計(jì)(編輯修改稿)

2024-10-03 19:31 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 可以通過按下圖所示設(shè)置 R0 和 R1位來設(shè)定 DS18B20 的精度。上電默認(rèn)設(shè)置: R0=1,R1=1( 12 位精度)。 注意:精度和轉(zhuǎn)換時(shí)間之間有直接的關(guān)系。暫存器的位 7 和位 04被器件保留,禁止寫入;在讀回?cái)?shù)據(jù)時(shí),它們?nèi)勘憩F(xiàn)為邏輯 1。 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 0 R1 R0 1 1 1 1 1 圖 17 配置寄存器 表 11 溫度分辨率配置 R1 R0 精度 最大轉(zhuǎn)換時(shí)間 0 0 9bit Tconv/8 0 1 10bit Tconv/4 1 0 11bit 375ms Tconv/2 1 1 12bit 750ms Tconv (3)溫度傳感器 DS18B20 中的溫度傳感器可完成對(duì)溫度的測(cè)量。 當(dāng)溫度轉(zhuǎn)換命令發(fā)布后,經(jīng)轉(zhuǎn)換所得的溫度值以二字節(jié)補(bǔ)碼形式存放在高速暫存存儲(chǔ)器的第 0和第 1 個(gè)字節(jié)。單片機(jī)可通過單線接口讀到該數(shù)據(jù),讀取時(shí)低位在前,高位在后,數(shù)據(jù)格式如圖所示。對(duì)應(yīng)的溫度 計(jì)算:當(dāng)符號(hào)位 S=0 時(shí),直接將二進(jìn)制位轉(zhuǎn)換為十進(jìn)制;當(dāng) S=1 時(shí),先將補(bǔ)碼變?yōu)樵a,再計(jì)算十進(jìn)制值。 TEMPERATURE LSB TEMPERATURE MSB TH/USERBYTE1 TL/USERBYTE2 RESERVED RESERVED COUNT REMAIN COUNT PER℃ CRC SCRATCHPAD BYTE 0 1 2 3 4 5 6 7 8 EERAM TH/USERBYTE1 TL/USERBYTE2 基于 DS18B20 單線多點(diǎn)溫度測(cè)量系統(tǒng) 10 圖 18 DS18B20 溫度寄存器格式 表 12 溫度 /數(shù)據(jù)關(guān)系 溫度 /℃ 二進(jìn)制表示 十六進(jìn)制表示 +125 00000111 11010000 07D0H + 00000001 10010001 0191H + 00000000 10100010 00A2H + 00000000 00001000 0008H 0 00000000 00000000 0000H 11111111 11111000 FFF8H 11111111 01011110 FF5EH 11111110 01101111 FE6FH 55 11111100 10010000 FC90H ( 4) CRC 發(fā)生器 CRC 字節(jié)作為 DS18B20 64 位 ROM 的一部分存儲(chǔ)在存儲(chǔ)器中。 CRC 碼由 ROM的前 56 位計(jì)算得到,被包含在 ROM 的重要字節(jié)當(dāng)中。 CRC 由存儲(chǔ)在存儲(chǔ)器中的數(shù)據(jù)計(jì)算得到,因此當(dāng)存儲(chǔ)器 中的數(shù)據(jù)發(fā)生改變時(shí), CRC 的值也隨之改變。 CRC能夠在總線控制器讀 DS18B20 時(shí)進(jìn)行數(shù)據(jù)校驗(yàn)。為校驗(yàn)數(shù)據(jù)是否被正確讀取,總線控制器必須用接受到的數(shù)據(jù)計(jì)算出一個(gè) CRC 值,和存儲(chǔ)在 DS18B20 的 64 位 ROM 中的值(讀 ROM時(shí))或 DS18B20 內(nèi)部計(jì)算出的 8位 CRC值(讀存儲(chǔ)器時(shí))進(jìn)行比較。如果計(jì)算得到的 CRC 值和讀取出來的 CRC 值相吻合,數(shù)據(jù)被無錯(cuò)傳輸。 C23 22 21 20 21 22 23 24 S S S S S 26 25 24 BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0 LS BYTE BIT15 BIT14 BIT13 BIT12 BIT11 BIT10 BIT9 BIT8 MS BYTE S=SIGN 基于 DS18B20 單線多點(diǎn)溫度測(cè)量系統(tǒng) 11 RC值的比較以及是否進(jìn)行下一步操作完全由總線控制器決定。 圖 19 CRC 生成 單線總線系 統(tǒng) 單總線系統(tǒng)只有一條定義的信號(hào)線。每一個(gè)總線上的器件必須是漏極開路或三態(tài)輸出。這樣的系統(tǒng)允許每一個(gè)掛在總線上的區(qū)間都能在適當(dāng)?shù)臅r(shí)間驅(qū)動(dòng)它。DS18B20 的單總線端口( DQ 引腳)是漏極開路式的,單總線需要一個(gè)約 5KΩ的外部上拉電阻;單總線的空閑狀態(tài)是高電平。無論任何理由需要暫停某一執(zhí)行過程時(shí),如果還想恢復(fù)執(zhí)行的畫,總線必須停留在空閑狀態(tài)。在恢復(fù)期間,如果單總線處于非活動(dòng)(高電平)狀態(tài),位與位間的恢復(fù)時(shí)間可以無限長(zhǎng)。如果總線停留在低電平超過 480us,總線上的所有器件都將被復(fù)位。 圖 110 DS18B20電路連接 處理順序 經(jīng)過單線總線接口訪問 DS18B20 的協(xié)議如下: 步驟 1:初始化 步驟 2: ROM 操作指令 步驟 3: DS18B20 功能指令 5UA Typ RX TX +5V 100Ω MOSFET RX XOR XOR XOR INPUT (MSB) (LSB) 基于 DS18B20 單線多點(diǎn)溫度測(cè)量系統(tǒng) 12 初始化 通過單總線的所有執(zhí)行操作處理都從一個(gè)初始化序列開始。初始化序列包括一個(gè)由總線控制器發(fā)出的復(fù)位脈沖和其后由從機(jī)發(fā)出的存在脈沖。存在脈沖讓總線控制器知道 DS18B20 在總線上且已準(zhǔn)備好操作。 ROM 操作指令 一旦總線控制器探測(cè)到一個(gè)存在脈沖,它就發(fā)出一條 ROM指令。如果總線上掛有多只 DS18B20,這些指令將基于器件獨(dú)有的 64 位 ROM 片序列碼使得總線控制器選出特定要進(jìn)行操作的器件。這些指令同樣也可以使總線控制器識(shí)別有多少個(gè)什么型號(hào)的器件掛在總線上,同樣,它們也可以識(shí)別哪些器件已經(jīng)符合報(bào)警條件。 ROM指令有 5條,都是 8 位長(zhǎng)度??偩€控制器在發(fā)起一條 DS18B20 功能指令之前必須先發(fā)出一條 ROM 指令。 表 23 ROM 操作指令 DS18B20 功能指令 在總線控制器發(fā)給欲連接的 DS18B20 一條 ROM 命令后,跟著可以發(fā)送一條 DS18B20 功能指令。這些命令允許總線控制器讀寫 DS18B20 的暫存器,發(fā)起溫度轉(zhuǎn)換和識(shí)別電源模式。 DS18B20 功能指令如下圖所示: 指令名稱 指令代碼 指令功能 讀 ROM 33H 讀 DS18B20 ROM 中的編碼 (即讀 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 地址,直接向 DS18B20 發(fā)溫度變換命令,適用于單片機(jī)工作 報(bào)警搜索 0ECH 該指令執(zhí)行后,只有溫度超過設(shè)定值上限或下限的片子才做出響應(yīng) 基于 DS18B20 單線多點(diǎn)溫度測(cè)量系統(tǒng) 13 表 24 DS18B20 功能指令 指令名稱 指令代碼 指令功能 溫度變換 44H 啟動(dòng) DS18B20 進(jìn)行溫度轉(zhuǎn)換,轉(zhuǎn)換時(shí)間最長(zhǎng)為 500ms(典型為 200ms),結(jié)果存入內(nèi)部 9 字節(jié) RAM 中 讀暫存器 0BEH 讀內(nèi)部 RAM 中 9 字節(jié)的內(nèi)容 寫暫存器 4EH 發(fā)出向內(nèi)部 RAM 的第 3,4 字節(jié)寫上,下限溫度數(shù)據(jù)命令,緊跟著該命令之后是傳送兩字節(jié)的數(shù)據(jù) 復(fù)制暫存器 48H 將 RAM 的第 3,4字節(jié)的內(nèi)容復(fù)制到 EEPROM中 重調(diào) EEPROM 0B8H EEPROM 中的內(nèi)容恢復(fù)到 RAM 中的第 3,4 字節(jié) 讀供電方式 0B4H 讀 DS18B20 的供電模式,寄生供電時(shí) DS18B20 發(fā)送 “0” ,外接供電時(shí)DS18B20發(fā)送 “1” 基于 DS18B20 單線多點(diǎn)溫度測(cè)量系統(tǒng) 14 第三章 系統(tǒng)軟件設(shè)計(jì) 整個(gè)系統(tǒng)的功能是由硬件電路配合軟件來實(shí)現(xiàn)的,當(dāng)硬件基本定型后,軟件的功能也就基本定下來了。從軟件的功能不同可分為兩大類:一是監(jiān)控軟件(主程序),它是整個(gè)控制系統(tǒng)的核心,專門用來協(xié)調(diào)各執(zhí)行模塊和操作者的關(guān)系。二 是執(zhí)行軟件(子程序),它是用來完成各種實(shí)質(zhì)性的功能如測(cè)量、計(jì)算、顯示、報(bào)警等。每一個(gè)執(zhí)行軟件也就是一個(gè)小的功能執(zhí)行模塊。這里將各執(zhí)行模塊一一列出,并為每一個(gè)執(zhí)行模塊進(jìn)行功能定義和接口定義。各執(zhí)行模塊規(guī)劃好后,就可以規(guī)劃監(jiān)控程序了。以下是系統(tǒng)軟件結(jié)構(gòu)圖 : 圖 31 系統(tǒng)軟件結(jié)構(gòu)圖 DSl8B20 溫度測(cè)量 單點(diǎn)測(cè)量溫度 如果總線上只有一個(gè)器件 , 則不需要識(shí)別器件的編碼 , 直接訪問該器件即可。訪問流程圖如下: 主程序 液晶顯示子程序 溫度測(cè)量子程序 中斷程序控制 鍵盤掃描選擇程序 基于 DS18B20 單線多點(diǎn)溫度測(cè)量系統(tǒng) 15 圖 32 單點(diǎn)溫度測(cè)量流程圖 多點(diǎn)測(cè)量溫度 多點(diǎn)測(cè)量溫度中需每一片 DSl8B20在 ROM中都存有唯一的序列號(hào) , 在出廠前己寫入片內(nèi) ROM中 ,主機(jī)在進(jìn)入操作程序前必須逐一接入 DS18B20用讀 ROM(33H)命令將該 DS18B20 的序列號(hào)讀出并登錄。當(dāng)主機(jī)需要對(duì)眾多在線 DS18B20 的某一個(gè)進(jìn)行操作時(shí) , 首先要發(fā)出匹配 ROM 命令 (55H),緊接著主機(jī)提供 64 位序列號(hào) ,之后的操作就是針對(duì)該 DS18B20 的。而所謂跳過 ROM命令即為:之后的操作是對(duì)初始化 DS18B20 開始 發(fā) Skip ROM 命令 溫度轉(zhuǎn)換 延時(shí) 500ms 等待溫度轉(zhuǎn)換 初始化 DS18B20 發(fā) Skip ROM 命令 發(fā)讀溫度命令 讀 DS18B20 返回 EEPROM 中的內(nèi)容,順序從字節(jié) 0 的 LSB 位開始 讀兩次,即讀出溫度值的高低 兩字 將二進(jìn)制溫度轉(zhuǎn)換成十進(jìn)制溫度取整數(shù)部分的 7 位至 ACC 各位中以實(shí)現(xiàn)溫度轉(zhuǎn)換 結(jié)束 基于 DS18B20 單線多點(diǎn)溫度測(cè)量系統(tǒng) 16 所有 DS18B20 的。框圖 中先有跳過 ROM,即是啟動(dòng)所有 DS18B20 進(jìn)行溫度變換 ,之后通過匹配 ROM,再逐一地讀回每個(gè) DS18B20 的溫度數(shù)據(jù)。在 DS18B20 組成的測(cè)溫系統(tǒng)中 ,主機(jī)在發(fā)出跳過 ROM 命令之后 , 再發(fā)出統(tǒng)一的溫度轉(zhuǎn)換啟動(dòng)碼 44H, 就可以實(shí)現(xiàn)所有 DS18B20的統(tǒng)一轉(zhuǎn)換 ,再經(jīng)過 1秒后 ,就可以用很少的時(shí)間去逐一讀取。 圖 33 多點(diǎn)溫度測(cè)量流程圖 開始 結(jié)束 初始化 DS18B20 發(fā)送搜索 ROM 命令 讀在線 DS18B20序列號(hào) 初始化 DS18B20 存在一個(gè) DS18B20 發(fā)送溫度轉(zhuǎn)換命令 發(fā)送匹配 ROM 命令 發(fā)送匹配溫度傳感器序列號(hào) 所有傳感器溫度讀取完畢 讀取溫度 N YN N Y 基于 DS18B20 單線多點(diǎn)溫度測(cè)量系統(tǒng) 17 DS18B20 ROM 搜索 算法 搜索算法采用的是二叉樹型結(jié)構(gòu),搜索過程沿各分節(jié)點(diǎn)進(jìn)行,直到找到器件的 ROM 碼即葉子為止;后續(xù)的搜索操作沿著節(jié)點(diǎn)上的其它路徑進(jìn)行,按照同樣的方式直到找到 總線 上的所有器件代碼。 搜索算法首先通過復(fù)位( reset)和在線應(yīng)答脈沖( presence pulse)時(shí)隙將 1Wire 總線上的所有器件復(fù)位;成功地執(zhí)行該操作后,發(fā)送 1 個(gè)字節(jié)的搜索命令;搜索命令使 1Wire 器件準(zhǔn)備就緒、開始進(jìn)行搜索操作。 搜索命令分為兩類:標(biāo)準(zhǔn)搜索命令 (F0 hex)用來搜索連接到網(wǎng)絡(luò)中所有器件;報(bào)警或有條件搜索命令 (EC hex)只 用來搜索那些處于報(bào)警狀態(tài)下的器件 ,這種方式縮小了搜索范圍,可以快速查找到所需要注意的器件。 當(dāng)單線總線上掛有多個(gè) DS18B20 時(shí),系統(tǒng)對(duì)總線上器件的數(shù)量和每個(gè)器件的ROM的識(shí)別與搜索是通過 DS18820 ROM 搜索命令與算法配合來實(shí)現(xiàn)的。下面具體介紹 ROM 搜索命令的工作過程。對(duì) 64 位 ROM 編碼識(shí)別從最低位開始, ROM 編碼的每一位搜索過程可總結(jié)為 “ 兩讀一寫 ” :讀一位,讀該位補(bǔ)碼;寫一位??偩€主機(jī)在 ROM 編碼每一位上完成這三步就可以獲得一個(gè)器件的 ROM 編碼。 (1)讀兩位 總線主機(jī)發(fā)布 ROM 搜索 命令后執(zhí)行一次讀,總線上所有器件就把它們各自 ROM 編碼的第一位放到總線來作出響應(yīng)。這次讀獲得的數(shù)據(jù)是所有器件放在總線上數(shù)據(jù)的 “ 與 ” 。再執(zhí)行一次讀,因?yàn)?ROM 搜索命令正在執(zhí)行所以總線上所有器件把各自 ROM 編碼的第一位的補(bǔ)碼放在總線上,第二次讀獲得的數(shù)據(jù)也是所有器件放在總線上數(shù)據(jù)的 “ 與 ” 。對(duì)第一位的 “ 兩讀 ” 就此完成。之后主機(jī)再次進(jìn)行的 “ 兩讀 ” 則是針對(duì) ROM 編碼的第二位,以此類推。從 “ 兩讀 ” 獲得的數(shù)據(jù)有以下解釋,如 下 表所列。 表 31
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1