版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、基于DS18B20的溫度測量模塊設(shè)計1. 設(shè)計目的(1) 掌握DS18B20數(shù)字溫度傳感器的工作原理及使用方法(2) 掌握對DS18B20轉(zhuǎn)換數(shù)據(jù)進(jìn)行處理的方法(3) 學(xué)習(xí)用數(shù)碼管顯示復(fù)雜數(shù)據(jù)的方法2. 設(shè)計任務(wù)用AT89S52控制DS18B20,讀取數(shù)據(jù),并對DS18B20轉(zhuǎn)換后的數(shù)據(jù)進(jìn)行處理,最后在數(shù)碼管上顯示DS18B20測出的溫度。要求使用6位數(shù)碼管顯示,最高位為符號位,如果溫度值為正,不顯示,如果溫度為負(fù),則顯示負(fù)號;第24位顯示溫度值的整數(shù)部分,并在第4位數(shù)據(jù)上顯示小數(shù)點(diǎn);第5位顯示一位小數(shù),最低位顯示攝氏度符號“C”。(1) 基本要求Ø 用AT89C51控制DS18B2
2、0,讀取數(shù)據(jù)Ø 對DS18B20轉(zhuǎn)換后的數(shù)據(jù)進(jìn)行處理,轉(zhuǎn)換成實(shí)際溫度值Ø 將符號位,整數(shù)值和小數(shù)值分別存放在特定的存儲單元中.(2) 進(jìn)階要求在數(shù)碼管上顯示DS18B20測出的溫度,只要求顯示出溫度值的整數(shù)部分及符號位。(3) 高級要求Ø 使用6位數(shù)碼管顯示測得的溫度Ø 最高位為符號位,如果溫度值為正,不顯示,如果溫度為負(fù),則顯示負(fù)號Ø 第24位顯示溫度值的整數(shù)部分,并在第4位數(shù)據(jù)上顯示小數(shù)點(diǎn)Ø 第5位顯示一位小數(shù)Ø 最低位顯示攝氏度符號“C”3. 設(shè)計原理(1) 系統(tǒng)結(jié)構(gòu)圖圖4-1 基于DS18B20的測溫系統(tǒng)結(jié)構(gòu)圖(2)
3、 DS18B20數(shù)字溫度傳感器概述DS18B20數(shù)字溫度計是DALLAS公司生產(chǎn)的1Wire,即單總線器件,具有線路簡單,體積小的特點(diǎn)。因此用它來組成一個測溫系統(tǒng),具有線路簡單,在一根通信線,可以掛很多這樣的數(shù)字溫度計,十分方便。DS18B20產(chǎn)品的特點(diǎn):Ø 只要求一個端口即可實(shí)現(xiàn)通信。Ø 在DS18B20中的每個器件上都有獨(dú)一無二的序列號。Ø 實(shí)際應(yīng)用中不需要外部任何元器件即可實(shí)現(xiàn)測溫。Ø 測量溫度范圍在55。C到125。C之間。Ø 數(shù)字溫度計的分辨率用戶可以從9位到12位選擇。Ø 內(nèi)部有溫度上、下限告警設(shè)置。TO92封裝的DS18
4、B20的引腳排列見圖4-2,其引腳功能描述見表4-1。圖4-2 DS18B20引腳結(jié)構(gòu)圖(底視圖)表4-1DS18B20詳細(xì)引腳功能描述序號名稱引腳功能描述1GND地信號2DQ數(shù)據(jù)輸入/輸出引腳。開漏單總線接口引腳。當(dāng)被用著在寄生電源下,也可以向器件提供電源。3VDD可選擇的VDD引腳。當(dāng)工作于寄生電源時,此引腳必須接地。(3) DS18B20的內(nèi)部結(jié)構(gòu)DS18B20的內(nèi)部框圖如圖4-3所示。64位ROM存儲器件獨(dú)一無二的序列號。暫存器包含兩字節(jié)(0和1字節(jié))的溫度寄存器,用于存儲溫度傳感器的數(shù)字輸出。暫存器還提供一字節(jié)的上線警報觸發(fā)(TH)和下線警報觸發(fā)(TL)寄存器(2和3字節(jié)),和一字節(jié)
5、的配置寄存器(4字節(jié)),使用者可以通過配置寄存器來設(shè)置溫度轉(zhuǎn)換的精度。暫存器的5、6和7字節(jié)器件內(nèi)部保留使用。第八字節(jié)含有循環(huán)冗余碼(CRC )。使用寄生電源時,DS18B20不需額外的供電電源;當(dāng)總線為高電平時,功率由單總線上的上拉電阻通過DQ引腳提供;高電平總線信號同時也向內(nèi)部電容CPP充電,CPP在總線低電平時為器件供電。圖4-3 DS18B20的內(nèi)部框圖DS18B20加電后,處在空閑狀態(tài)。要啟動溫度測量和模擬到數(shù)字的轉(zhuǎn)換,處理器須向其發(fā)出Convert T 44h 命令;轉(zhuǎn)換完后,DS18B20回到空閑狀態(tài)。溫度數(shù)據(jù)是以帶符號位的16-bit補(bǔ)碼存儲在溫度寄存器中的,如圖4-4所示:圖
6、4-4 溫度寄存器格式符號位說明溫度是正值還是負(fù)值,正值時S=0,負(fù)值時S=1。表4-2給出了一些數(shù)字輸出數(shù)據(jù)與對應(yīng)的溫度值的例子。表4-2 溫度/數(shù)據(jù)的關(guān)系(4) DS18B20的命令序列Ø 初始化Ø ROM命令跟隨著需要交換的數(shù)據(jù);Ø 功能命令跟隨著需要交換的數(shù)據(jù)。訪問DS18B20必須嚴(yán)格遵守這一命令序列,如果丟失任何一步或序列混亂,DS18B20都不會響應(yīng)主機(jī)(除了Search ROM 和Alarm Search這兩個命令,在這兩個命令后,主機(jī)都必須返回到第一步)。 初始化:DS18B20所有的數(shù)據(jù)交換都由一個初始化序列開始。由主機(jī)發(fā)出的復(fù)位脈沖和跟在其后
7、的由DS18B20發(fā)出的應(yīng)答脈沖構(gòu)成。當(dāng)DS18B20發(fā)出響應(yīng)主機(jī)的應(yīng)答脈沖時,即向主機(jī)表明它已處在總線上并且準(zhǔn)備工作。 ROM命令:ROM命令通過每個器件64-bit的ROM碼,使主機(jī)指定某一特定器件(如果有多個器件掛在總線上)與之進(jìn)行通信。DS18B20的ROM如表4-3所示,每個ROM命令都是8 bit長。表4-3 DS18B20 ROM命令 命令描述協(xié)議此命令發(fā)出后1-Wire總線上的活動SEARCH ROM識別總線上掛著的所有DS18B20的ROM碼F0h所有DS18B20向主機(jī)傳送ROM碼READ ROM當(dāng)只有一個DS18B20掛在總線上時,可用此命令來讀取ROM碼33hDS18B
8、20向主機(jī)傳送ROM碼MATCH ROM主機(jī)用ROM碼來指定某一DS18B20,只有匹配的DS18B20才會響應(yīng)55h主機(jī)向總線傳送一個ROM碼SKIP ROM用于指定總線上所有的器件CCh無ALARM SEARCH與SEARCH ROM命令類似,但只有溫度超出警報線的DS18B20才會響應(yīng)ECh超出警報線的DS18B20向主機(jī)傳送ROM碼 功能命令:主機(jī)通過功能命令對DS18B20進(jìn)行讀/寫Scratchpad存儲器,或者啟動溫度轉(zhuǎn)換。DS18B20的功能命令如表4-4所示。表4-4 DS18B20功能命令命令描述協(xié)議此命令發(fā)出后1-Wire總線上的活動溫 度 轉(zhuǎn) 換 命 令Convert
9、T開始溫度轉(zhuǎn)換44hDS18B20向主機(jī)傳送轉(zhuǎn)換狀態(tài)(寄生電源不適用)存 儲 器 命 令Read Scratchpad讀暫存器完整的數(shù)據(jù)BEhDS18B20向主機(jī)傳送總共9字節(jié)的數(shù)據(jù)Write Scratchpad向暫存器的2、3和4字節(jié)寫入數(shù)據(jù)(TH, TL和精度)4Eh主機(jī)向DS18B20傳送3個字節(jié)的數(shù)據(jù)Copy Scratchpad將TH, TL和配置寄存器的數(shù)據(jù)復(fù)制到EEPROM48h無Recall E2將TH, TL和配置寄存器的數(shù)據(jù)從EEPROM中調(diào)到暫存器中B8hDS18B20向主機(jī)傳送調(diào)用狀態(tài)Read Power Supply向主機(jī)示意電源供電狀態(tài)B4hDS18B20向主機(jī)傳
10、送供電狀態(tài)(5) DS18B20的信號方式DS18B20采用嚴(yán)格的單總線通信協(xié)議,以保證數(shù)據(jù)的完整性。該協(xié)議定義了幾種信號類型:復(fù)位脈沖、應(yīng)答脈沖、寫0、寫1、讀0和讀1。除了應(yīng)答脈沖所有這些信號都由主機(jī)發(fā)出同步信號。總線上傳輸?shù)乃袛?shù)據(jù)和命令都是以字節(jié)的低位在前。 初始化序列:復(fù)位脈沖和應(yīng)答脈沖在初始化過程中,主機(jī)通過拉低單總線至少480µs,以產(chǎn)生復(fù)位脈沖(TX)。然后主機(jī)釋放總線并進(jìn)入接收(RX)模式。當(dāng)總線被釋放后,5k的上拉電阻將單總線拉高。DS18B20檢測到這個上升沿后,延時15µs60µs,通過拉低總線60µs240µs產(chǎn)生應(yīng)答
11、脈沖。初始化波形如圖4-5所示。 圖4-5 初始化脈沖 讀和寫時序在寫時序期間,主機(jī)向DS18B20寫入數(shù)據(jù);而在讀時序期間,主機(jī)讀入來自DS18B20的數(shù)據(jù)。在每一個時序,總線只能傳輸一位數(shù)據(jù)。讀/寫時序如圖3-6所示。² 寫時序存在兩種寫時序:“寫1”和“寫0”。主機(jī)在寫1時序向DS18B20寫入邏輯1,而在寫0時序向DS18B20寫入邏輯0。所有寫時序至少需要60µs,且在兩次寫時序之間至少需要1µs的恢復(fù)時間。兩種寫時序均以主機(jī)拉低總線開始。產(chǎn)生寫1時序:主機(jī)拉低總線后,必須在15µs內(nèi)釋放總線,然后由上拉電阻將總線拉至高電平。產(chǎn)生寫0時序:主機(jī)
12、拉低總線后,必須在整個時序期間保持低電平(至少60µs)。在寫時序開始后的15µs60µs期間,DS18B20采樣總線的狀態(tài)。如果總線為高電平,則邏輯1被寫入DS18B20;如果總線為低電平,則邏輯0被寫入DS18B20。² 讀時序DS18B20只能在主機(jī)發(fā)出讀時序時才能向主機(jī)傳送數(shù)據(jù)。所以主機(jī)在發(fā)出讀數(shù)據(jù)命令后,必須馬上產(chǎn)生讀時序,以便DS18B20能夠傳送數(shù)據(jù)。所有讀時序至少60µs,且在兩次獨(dú)立的讀時序之間至少需要1µs的恢復(fù)時間。每次讀時序由主機(jī)發(fā)起,拉低總線至少1µs。在主機(jī)發(fā)起讀時序之后,DS18B20開始在總線
13、上傳送1或0。若DS18B20發(fā)送1,則保持總線為高電平;若發(fā)送0,則拉低總線。當(dāng)傳送0時,DS18B20在該時序結(jié)束時釋放總線,再由上拉電阻將總線拉回空閑高電平狀態(tài)。DS18B20發(fā)出的數(shù)據(jù)在讀時序下降沿起始后的15µs內(nèi)有效,因此主機(jī)必須在讀時序開始后的15µs內(nèi)釋放總線,并且采樣總線狀態(tài)。圖4-6 DS18B20讀/寫時序圖DS18B20 在使用時,一般都采用單片機(jī)來實(shí)現(xiàn)數(shù)據(jù)采集。只需將DS18B20 信號線與單片機(jī)1 位I/O線相連,且單片機(jī)的1 位I/O 線可掛接多個DS18B20 ,就可實(shí)現(xiàn)單點(diǎn)或多點(diǎn)溫度檢測。(6) 小數(shù)的顯示方法DS18B20轉(zhuǎn)換后的數(shù)據(jù)有四
14、位二進(jìn)制小數(shù),精度為0.0625,可連續(xù)表示一位十進(jìn)制小數(shù),因此在數(shù)碼顯示時,只顯示1位小數(shù)。在對四位二進(jìn)制小數(shù)進(jìn)行處理時,可先計算出這四位二進(jìn)制小數(shù)對應(yīng)的四位十進(jìn)制小數(shù),然后對這四位十進(jìn)制小數(shù)舍棄后三位,只保留一位。在編寫程序時,可編制一個反映二進(jìn)制小數(shù)與顯示碼對應(yīng)關(guān)系的表格,根據(jù)四位二進(jìn)制小數(shù)的十六種不同情況查找對應(yīng)的一位十進(jìn)制小數(shù)的段碼,具體映射關(guān)系如表4-5所示:表4-5 二進(jìn)制小數(shù)與顯示碼的對應(yīng)關(guān)系二進(jìn)制小數(shù)位四位十進(jìn)制小數(shù)保留一位對應(yīng)顯示碼(共陰)00000.000003FH00010.0625106H00100.1250106H00110.187525BH01000.250034
15、FH01010.312534FH01100.3750466H01110.4375466H10000.500056DH10010.562567DH10100.625067DH10110.6875707H11000.750087FH11010.812587FH11100.875096FH11110.937596FH4. 程序設(shè)計流程主程序開始初始化、設(shè)置常量調(diào)DS18B20初始化子程序讀取轉(zhuǎn)換溫度值調(diào)數(shù)據(jù)處理子程序生成顯示碼顯示溫度值DS18B20復(fù)位子程序DQ置1DQ置0延時至少573微秒DQ置1短延時,等待DS18B20回應(yīng)DQ=0?FLAG1置1延時DQ置1返回FLAG1置0YN讀溫度值子程序DQ置1DS18B20復(fù)位FLAG1=1發(fā)送0CCH命令,跳過ROM匹配發(fā)送溫度轉(zhuǎn)換命令44H延時750微秒以上DS18B20初始化跳過ROM匹配發(fā)送讀溫度命令0BEH調(diào)用讀數(shù)據(jù)子程序返回寫DS18B20命令子程序設(shè)R2=8進(jìn)位標(biāo)志位C清零短延時DQ置0ACC帶進(jìn)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度曹瑞與張麗離婚協(xié)議中公司股權(quán)分割及轉(zhuǎn)讓協(xié)議3篇
- 2024美食盛宴商業(yè)合作伙伴合同版B版
- 2025年度漁業(yè)資源承包與可持續(xù)發(fā)展合同4篇
- 2025年度體育場館食堂承包合同范本3篇
- 2025年度生物科技研發(fā)公司部分股權(quán)出售合同3篇
- 2025年度智慧社區(qū)建設(shè)承包合同股東內(nèi)部經(jīng)營協(xié)議4篇
- 2025年度潯購F000353632生鮮產(chǎn)品展示冰柜采購合同3篇
- 2025年度水產(chǎn)養(yǎng)殖蟲害綜合防控技術(shù)合同4篇
- 職業(yè)教育培訓(xùn)需求分析課件
- 2025年幼兒園食堂承包及幼兒營養(yǎng)餐服務(wù)合同4篇
- 火災(zāi)安全教育觀后感
- 農(nóng)村自建房屋安全協(xié)議書
- 快速康復(fù)在骨科護(hù)理中的應(yīng)用
- 國民經(jīng)濟(jì)行業(yè)分類和代碼表(電子版)
- ICU患者外出檢查的護(hù)理
- 公司收購設(shè)備合同范例
- 廣東省潮州市2023-2024學(xué)年高二上學(xué)期語文期末考試試卷(含答案)
- 2024年光伏發(fā)電項目EPC總包合同
- 子女放棄房產(chǎn)繼承協(xié)議書
- 氧化還原反應(yīng)配平專項訓(xùn)練
- 試卷(完整版)python考試復(fù)習(xí)題庫復(fù)習(xí)知識點(diǎn)試卷試題
評論
0/150
提交評論