《單片機(jī)應(yīng)用技術(shù)》課程設(shè)計(jì)報(bào)告基于單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)_第1頁
《單片機(jī)應(yīng)用技術(shù)》課程設(shè)計(jì)報(bào)告基于單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)_第2頁
《單片機(jī)應(yīng)用技術(shù)》課程設(shè)計(jì)報(bào)告基于單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)_第3頁
《單片機(jī)應(yīng)用技術(shù)》課程設(shè)計(jì)報(bào)告基于單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)_第4頁
《單片機(jī)應(yīng)用技術(shù)》課程設(shè)計(jì)報(bào)告基于單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、學(xué)號(hào):0709111001 2009 - 2010 學(xué)年 第 2 學(xué)期 單片機(jī)應(yīng)用技術(shù)單片機(jī)應(yīng)用技術(shù)課課 程程 設(shè)設(shè) 計(jì)計(jì) 報(bào)報(bào) 告告題題 目:目:基于單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì) 專專 業(yè):業(yè): 電氣自動(dòng)化電氣自動(dòng)化 班班 級(jí):級(jí): 0707 電氣自動(dòng)化本電氣自動(dòng)化本 姓姓 名:名: 指導(dǎo)教師:指導(dǎo)教師: 成成 績:績: 電氣工程系12010 年 5 月 25 日課課 程程 設(shè)設(shè) 計(jì)計(jì) 任任 務(wù)務(wù) 書書學(xué)生班級(jí): 07 電氣自動(dòng)化本 學(xué)生姓名: 學(xué)號(hào):0709111001 設(shè)計(jì)名稱: 基于單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì) 起止日期: 2010 年 5 月 242010 年 5 月 28 指導(dǎo)教師: 臧老師

2、設(shè)計(jì)要求:本設(shè)計(jì)主要是介紹了單片機(jī)控制下的溫度檢測系統(tǒng),詳細(xì)介紹了其硬件和軟件設(shè)計(jì),并對(duì)其各功能模塊做了詳細(xì)介紹,其主要功能和指標(biāo)如下:利用溫度傳感器(ds18b20)測量某一點(diǎn)環(huán)境溫度測量范圍為-5599,精度為0.5用液晶進(jìn)行實(shí)際溫度值顯示能夠根據(jù)需要方便設(shè)定上下限報(bào)警溫度2目目 錄錄一、一、引言引言 5 5二、設(shè)計(jì)內(nèi)容及性能指標(biāo)二、設(shè)計(jì)內(nèi)容及性能指標(biāo)5 5三、系統(tǒng)方案論證三、系統(tǒng)方案論證 5 5(一)、方案.6四、系統(tǒng)器件選擇四、系統(tǒng)器件選擇7 7(一)、 單片機(jī)的選擇 .71、 89s51 引腳功能介紹.8(二)、溫度傳感器的選擇.101、 ds18b20 簡單介紹:.102、 ds1

3、8b20 使用中的注意事項(xiàng).123、 ds18b20 內(nèi)部結(jié)構(gòu).134、ds18b20 測溫原理.175、提高 ds1820 測溫精度的途徑 .18(三)、顯示及報(bào)警模塊器件選擇.20五、硬件設(shè)計(jì)電路五、硬件設(shè)計(jì)電路2121(一)、主控制器.22(二)、顯示電路.223(三)、 溫度檢測電路 .22(四)、溫度報(bào)警電路.29六、六、 軟件設(shè)計(jì)軟件設(shè)計(jì)(一)、 概述 .30(二)、主程序模塊.30(三)、各模塊流程設(shè)計(jì).311、 溫度檢測流程 .312、報(bào)警模塊流程 .323、 中斷設(shè)定流程 .33七、自我評(píng)價(jià)七、自我評(píng)價(jià)3535八、致謝八、致謝 3636參考文獻(xiàn)參考文獻(xiàn) 36364摘要:摘要:

4、隨著時(shí)代的進(jìn)步和發(fā)展,單片機(jī)技術(shù)已經(jīng)普及到我們生活、工作、科研、各個(gè)領(lǐng)域,已經(jīng)成為一種比較成熟的技術(shù), 本文主要介紹了一個(gè)基于89s51 單片機(jī)的測溫系統(tǒng),詳細(xì)描述了利用數(shù)字溫度傳感器 ds18b20 開發(fā)測溫系統(tǒng)的過程,重點(diǎn)對(duì)傳感器在單片機(jī)下的硬件連接,軟件編程以及各模塊系統(tǒng)流程進(jìn)行了詳盡分析,對(duì)各部分的電路也一一進(jìn)行了介紹,該系統(tǒng)可以方便的實(shí)現(xiàn)實(shí)現(xiàn)溫度采集和顯示,并可根據(jù)需要任意設(shè)定上下限報(bào)警溫度,它使用起來相當(dāng)方便,具有精度高、量程寬、靈敏度高、體積小、功耗低等優(yōu)點(diǎn),適合于我們?nèi)粘I詈凸?、農(nóng)業(yè)生產(chǎn)中的溫度測量,也可以當(dāng)作溫度處理模塊嵌入其它系統(tǒng)中,作為其他主系統(tǒng)的輔助擴(kuò)展。ds18b2

5、0 與 at89c51 結(jié)合實(shí)現(xiàn)最簡溫度檢測系統(tǒng),該系統(tǒng)結(jié)構(gòu)簡單,抗干擾能力強(qiáng),適合于惡劣環(huán)境下進(jìn)行現(xiàn)場溫度測量,有廣泛的應(yīng)用前景。5一、引言一、引言隨著科技的不斷發(fā)展,現(xiàn)代社會(huì)對(duì)各種信息參數(shù)的準(zhǔn)確度和精確度的要求都有了幾何級(jí)的增長,而如何準(zhǔn)確而又迅速的獲得這些參數(shù)就需要受制于現(xiàn)代信息基礎(chǔ)的發(fā)展水平。在三大信息信息采集(即傳感器技術(shù))、信息傳輸(通信技術(shù))和信息處理(計(jì)算機(jī)技術(shù))中,傳感器屬于信息技術(shù)的前沿尖端產(chǎn)品,尤其是溫度傳感器技術(shù),在我國各領(lǐng)域已經(jīng)引用的非常廣泛,可以說是滲透到社會(huì)的每一個(gè)領(lǐng)域,人民的生活與環(huán)境的溫度息息相關(guān),在工業(yè)生產(chǎn)過程中需要實(shí)時(shí)測量溫度,在農(nóng)業(yè)生產(chǎn)中也離不開溫度的測

6、量,因此研究溫度的測量方法和裝置具有重要的意義。測量溫度的關(guān)鍵是溫度傳感器,溫度傳感器的發(fā)展經(jīng)歷了三個(gè)發(fā)展階段:傳統(tǒng)的分立式溫度傳感器模擬集成溫度傳感器智能集成溫度傳感器。目前的智能溫度傳感器(亦稱數(shù)字溫度傳感器)是在20世紀(jì)90年代中期問世的,它是微電子技術(shù)、計(jì)算機(jī)技術(shù)和自動(dòng)測試技術(shù)(ate)的結(jié)晶,特點(diǎn)是能輸出溫度數(shù)據(jù)及相關(guān)的溫度控制量,適配各種微控制器(mcu)。社會(huì)的發(fā)展使人們對(duì)傳感器的要求也越來越高,現(xiàn)在的溫度傳感器正在基于單片機(jī)的基礎(chǔ)上從模擬式向數(shù)字式,從集成化向智能化、網(wǎng)絡(luò)化的方向飛速發(fā)展,并朝著高精度、多功能、總線標(biāo)準(zhǔn)化、高可靠性及安全性、開發(fā)虛擬傳感器和網(wǎng)絡(luò)傳感器、研制單片測

7、溫系統(tǒng)等高科技的方向迅速發(fā)展,本文將介紹智能集成溫度傳感器ds18b20的結(jié)構(gòu)特征及控制方法,并對(duì)以此傳感器,89s51單片機(jī)為控制器構(gòu)成的數(shù)字溫度測量裝置的工作原理及程序設(shè)計(jì)作了詳細(xì)的介紹。與傳統(tǒng)的溫度計(jì)相比,其具有讀數(shù)方便,測溫范圍廣,測溫準(zhǔn)確,輸出溫度采用數(shù)字顯示,主要用于對(duì)測溫要求比較準(zhǔn)確的場所,或科研實(shí)驗(yàn)室使用。該設(shè)計(jì)控制器使用atmel公司的at89s51單片機(jī),測溫傳感器使用dallas公司ds18b20,用液晶來實(shí)現(xiàn)溫度顯示。二、設(shè)計(jì)內(nèi)容及性能指標(biāo)二、設(shè)計(jì)內(nèi)容及性能指標(biāo)本設(shè)計(jì)主要是介紹了單片機(jī)控制下的溫度檢測系統(tǒng),詳細(xì)介紹了其硬件和軟件設(shè)計(jì),并對(duì)其各功能模塊做了詳細(xì)介紹,其主要

8、功能和指標(biāo)如下:利用溫度傳感器(ds18b20)測量某一點(diǎn)環(huán)境溫度6測量范圍為-5599,精度為0.5用液晶進(jìn)行實(shí)際溫度值顯示能夠根據(jù)需要方便設(shè)定上下限報(bào)警溫度三、系統(tǒng)方案論證三、系統(tǒng)方案論證該系統(tǒng)主要由溫度測量和數(shù)據(jù)采集兩部分電路組成,實(shí)現(xiàn)的方法有很多種,下面將列出一種在日常生活中和工農(nóng)業(yè)生產(chǎn)中經(jīng)常用到的實(shí)現(xiàn)方案。(一)、方案(一)、方案采用數(shù)字溫度芯片ds18b20 測量溫度,輸出信號(hào)全數(shù)字化。便于單片機(jī)處理及控制,省去傳統(tǒng)的測溫方法的很多外圍電路。且該芯片的物理化學(xué)性很穩(wěn)定,它能用做工業(yè)測溫元件,此元件線形較好。在0100 攝氏度時(shí),最大線形偏差小于1 攝氏度。ds18b20 的最大特點(diǎn)

9、之一采用了單總線的數(shù)據(jù)傳輸,由數(shù)字溫度計(jì)ds18b20和微控制器at89s51構(gòu)成的溫度測量裝置,它直接輸出溫度的數(shù)字信號(hào),可直接與計(jì)算機(jī)連接。這樣,測溫系統(tǒng)的結(jié)構(gòu)就比較簡單,體積也不大。采用51 單片機(jī)控制,軟件編程的自由度大,可通過編程實(shí)現(xiàn)各種各樣的算術(shù)算法和邏輯控制,而且體積小,硬件實(shí)現(xiàn)簡單,安裝方便。既可以單獨(dú)對(duì)多ds18b20控制工作,還可以與pc 機(jī)通信上傳數(shù)據(jù),另外at89s51 在工業(yè)控制上也有著廣泛的應(yīng)用,編程技術(shù)及外圍功能電路的配合使用都很成熟。該系統(tǒng)利用at89s51芯片控制溫度傳感器ds18b20進(jìn)行實(shí)時(shí)溫度檢測并顯示,能夠?qū)崿F(xiàn)快速測量環(huán)境溫度,并可以根據(jù)需要設(shè)定上下限

10、報(bào)警溫度。該系統(tǒng)擴(kuò)展性非常強(qiáng),它可以在設(shè)計(jì)中加入時(shí)鐘芯片ds1302以獲取時(shí)間數(shù)據(jù),在數(shù)據(jù)處理同時(shí)顯示時(shí)間,并可以利用at24c16芯片作為存儲(chǔ)器件,以此來對(duì)某些時(shí)間點(diǎn)的溫度數(shù)據(jù)進(jìn)行存儲(chǔ),利用鍵盤來進(jìn)行調(diào)時(shí)和溫度查詢,獲得的數(shù)據(jù)可以通過max232芯片與計(jì)算機(jī)的rs232接口進(jìn)行串口通信,方便的采集和整理時(shí)間溫度數(shù)據(jù)。7系統(tǒng)框圖如圖 3.3所示圖 3.3 ds18b20溫度測溫系統(tǒng)框圖四、系統(tǒng)器件選擇四、系統(tǒng)器件選擇(一)、(一)、 單片機(jī)的選擇單片機(jī)的選擇對(duì)于單片機(jī)的選擇,可以考慮使用8031與8051系列,由于8031沒有內(nèi)部ram,系統(tǒng)又需要大量內(nèi)存存儲(chǔ)數(shù)據(jù),因而不適用。at89s51

11、是美國 atmel 公司生產(chǎn)的低功耗,高性能 cmos8 位單片機(jī),片內(nèi)含 4kbytes 的可編程的 flash 只讀程序存儲(chǔ)器,兼容標(biāo)準(zhǔn) 8051 指令系統(tǒng)及引腳。它集 flash 程序存儲(chǔ)器既可在線編程(isp),也可用傳統(tǒng)方法進(jìn)行編程,所以低價(jià)位 at89s51單片機(jī)可為提供許多高性價(jià)比的應(yīng)用場合,可靈活應(yīng)用于各種控制領(lǐng)域,對(duì)于簡單的測溫系統(tǒng)已經(jīng)足夠。單片機(jī)at89s51 具有低電壓供電和體積小等特點(diǎn),四個(gè)端口只需要兩個(gè)口就能滿足電路系統(tǒng)的設(shè)計(jì)需要,很適合便攜手持式產(chǎn)品的設(shè)計(jì)使用系統(tǒng)可用二節(jié)電池供電。主要特性如下與mcs-51 兼容4k字節(jié)可編程閃爍存儲(chǔ)器8壽命:1000寫/擦循環(huán)數(shù)據(jù)

12、保留時(shí)間:10年全靜態(tài)工作:0hz-24hz三級(jí)程序存儲(chǔ)器鎖定128*8位內(nèi)部ram32可編程i/o線兩個(gè)16位定時(shí)器/計(jì)數(shù)器5個(gè)中斷源可編程串行通道低功耗的閑置和掉電模式片內(nèi)振蕩器和時(shí)鐘電路 圖 4.1 at89s51單片機(jī)引腳圖1 1、89s5189s51 引腳功能介紹引腳功能介紹 at89s51 單片機(jī)為40 引腳雙列直插式封裝。 其引腳排列和邏輯符號(hào)如圖4.1 所示。各引腳功能簡單介紹如下:vcc:供電電壓 gnd:接地 p0口:p0口為一個(gè)8位漏級(jí)開路雙向i/o口,每個(gè)管腳可吸收8ttl門電流。當(dāng)p1口的管腳寫“1”時(shí),被定義為高阻輸入。p0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為

13、數(shù)據(jù)/地址的第八位。在flash編程時(shí),p0口作為原碼輸入口,當(dāng)flash進(jìn)行9校驗(yàn)時(shí),p0輸出原碼,此時(shí)p0外部電位必須被拉高。p1口:p1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向i/o口,p1口緩沖器能接收輸出4ttl門電流。p1口管腳寫入“1”后,電位被內(nèi)部上拉為高,可用作輸入,p1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在flash編程和校驗(yàn)時(shí),p1口作為第八位地址接收。p2口:p2口為一個(gè)內(nèi)部上拉電阻的8位雙向i/o口,p2口緩沖器可接收,輸出4個(gè)ttl門電流,當(dāng)p2口被寫“1”時(shí),其管腳電位被內(nèi)部上拉電阻拉高,且作為輸入。作為輸入時(shí),p2口的管腳電位被外部拉低,將輸出

14、電流,這是由于內(nèi)部上拉的緣故。p2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),p2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉的優(yōu)勢,當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),p2口輸出其特殊功能寄存器的內(nèi)容。p2口在flash編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。p3口:p3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向i/o口,可接收輸出4個(gè)ttl門電流。當(dāng)p3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入時(shí),由于外部下拉為低電平,p3口將輸出電流(ill),也是由于上拉的緣故。p3口也可作為at89c51的一些特殊功能口:p3.0 rxd(串行輸入口)p3.1

15、txd(串行輸出口)p3.2 int0(外部中斷0)p3.3 int1(外部中斷1)p3.4 t0(記時(shí)器0外部輸入)p3.5 t1(記時(shí)器1外部輸入)p3.6 wr (外部數(shù)據(jù)存儲(chǔ)器寫選通)p3.7 rd (外部數(shù)據(jù)存儲(chǔ)器讀選通)同時(shí)p3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。10rst:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持rst腳兩個(gè)機(jī)器周期的高電平時(shí)間。ale / prog :當(dāng)訪問外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在flash編程期間,此引腳用于輸入編程脈沖。在平時(shí),ale端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出

16、的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過一個(gè)ale脈沖。如想禁止ale的輸出可在sfr8eh地址上置0。此時(shí), ale只有在執(zhí)行movx,movc指令時(shí)ale才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ale禁止,置位無效。psen:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取址期間,每個(gè)機(jī)器周期psen兩次有效。但在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的psen信號(hào)將不出現(xiàn)。ea/vpp:當(dāng)ea保持低電平時(shí),訪問外部rom;注意加密方式1時(shí),ea將內(nèi)部鎖定為reset;當(dāng)ea端保持高電平時(shí),訪問內(nèi)部rom。在flash編程期間,此引腳也用于施加12

17、v編程電源(vpp)。xtal1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。xtal2:來自反向振蕩器的輸出。(二)、溫度傳感器的選擇(二)、溫度傳感器的選擇由于傳統(tǒng)的熱敏電阻等測溫元件測出的一般都是電壓,再轉(zhuǎn)換成對(duì)應(yīng)的溫度,需要比較多的外部元件支持,且硬件電路復(fù)雜,制作成本相對(duì)較高。這里采用dallas公司的數(shù)字溫度傳感器ds18b20作為測溫元件。111 1、ds18b20ds18b20 簡單介紹簡單介紹: :dallas 最新單線數(shù)字溫度傳感器ds18b20是一種新型的“一線器件”,其體積更小、更適用于多種場合、且適用電壓更寬、更經(jīng)濟(jì)。dallas 半導(dǎo)體公司的數(shù)字化溫度傳感器ds1

18、8b20是世界上第一片支持“一線總線”接口的溫度傳感器。溫度測量范圍為-55+125 攝氏度,可編程為9位12 位轉(zhuǎn)換精度,測溫分辨率可達(dá)0.0625攝氏度,分辨率設(shè)定參數(shù)以及用戶設(shè)定的報(bào)警溫度存儲(chǔ)在eeprom 中,掉電后依然保存。被測溫度用符號(hào)擴(kuò)展的16位數(shù)字量方式串行輸出;其工作電源既可以在遠(yuǎn)端引入,也可以采用寄生電源方式產(chǎn)生;多個(gè)ds18b20可以并聯(lián)到3 根或2 根線上,cpu只需一根端口線就能與諸多ds18b20 通信,占用微處理器的端口較少,可節(jié)省大量的引線和邏輯電路。因此用它來組成一個(gè)測溫系統(tǒng),具有線路簡單,在一根通信線,可以掛很多這樣的數(shù)字溫度計(jì),十分方便。ds18b20 的

19、性能特點(diǎn)如下:獨(dú)特的單線接口方式,ds18b20在與微處理器連接時(shí)僅需要一條口線即可實(shí)現(xiàn)微處理器與ds18b20的雙向通訊ds18b20支持多點(diǎn)組網(wǎng)功能,多個(gè)ds18b20可以并聯(lián)在唯一的三線上,實(shí)現(xiàn)組網(wǎng)多點(diǎn)測溫ds18b20在使用中不需要任何外圍元件,全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi)適應(yīng)電壓范圍更寬,電壓范圍:3.05.5v,在寄生電源方式下可由數(shù)據(jù)線供電溫范圍55125,在-10+85時(shí)精度為0.5零待機(jī)功耗可編程的分辨率為912位,對(duì)應(yīng)的可分辨溫度分別為0.5、0.25、120.125和0.0625,可實(shí)現(xiàn)高精度測溫在9位分辨率時(shí)最多在93.75ms內(nèi)把溫度轉(zhuǎn)換為數(shù)

20、字,12位分辨率時(shí)最多在750ms內(nèi)把溫度值轉(zhuǎn)換為數(shù)字,速度更快用戶可定義報(bào)警設(shè)置報(bào)警搜索命令識(shí)別并標(biāo)志超過程序限定溫度(溫度報(bào)警條件)的器件測量結(jié)果直接輸出數(shù)字溫度信號(hào),以一線總線串行傳送給cpu,同時(shí)可傳送crc校驗(yàn)碼,具有極強(qiáng)的抗干擾糾錯(cuò)能力負(fù)電壓特性,電源極性接反時(shí),溫度計(jì)不會(huì)因發(fā)熱而燒毀,但不能正常工作以上特點(diǎn)使ds18b20非常適用與多點(diǎn)、遠(yuǎn)距離溫度檢測系統(tǒng)。ds18b20內(nèi)部結(jié)構(gòu)主要由四部分組成:64位光刻rom、溫度傳感器、非揮發(fā)的溫度報(bào)警觸發(fā)器th和tl、配置寄存器。ds18b20的管腳排列、各種封裝形式如圖 4.2 所示,dq 為數(shù)據(jù)輸入/輸出引腳。開漏單總線接口引腳。當(dāng)被

21、用著在寄生電源下,也可以向器件提供電源;gnd為地信號(hào);vdd為可選擇的vdd引腳。當(dāng)工作于寄生電源時(shí),此引腳必須接地。其電路圖 4.3所示.。 13 圖 4.2 外部封裝形式 圖4.3 傳感器電路圖2 2、ds18b20ds18b20 使用中的注意事項(xiàng)使用中的注意事項(xiàng)ds18b20 雖然具有測溫系統(tǒng)簡單、測溫精度高、連接方便、占用口線少等優(yōu)點(diǎn),但在實(shí)際應(yīng)用中也應(yīng)注意以下幾方面的問題:ds18b20 從測溫結(jié)束到將溫度值轉(zhuǎn)換成數(shù)字量需要一定的轉(zhuǎn)換時(shí)間,這是必須保證的,不然會(huì)出現(xiàn)轉(zhuǎn)換錯(cuò)誤的現(xiàn)象,使溫度輸出總是顯示85。在實(shí)際使用中發(fā)現(xiàn),應(yīng)使電源電壓保持在5v 左右,若電源電壓過低,會(huì)使所測得的溫

22、度精度降低。較小的硬件開銷需要相對(duì)復(fù)雜的軟件進(jìn)行補(bǔ)償,由于ds1820與微處理器間采用串行數(shù)據(jù)傳送,因此,在對(duì)ds1820進(jìn)行讀寫編程時(shí),必須嚴(yán)格的保證讀寫時(shí)序,否則將無法讀取測溫結(jié)果。在使用pl/m、c等高級(jí)語言進(jìn)行系統(tǒng)程序設(shè)計(jì)時(shí),對(duì)ds1820操作部分最好采用匯編14語言實(shí)現(xiàn)。在ds18b20的有關(guān)資料中均未提及單總線上所掛ds18b20 數(shù)量問題,容易使人誤認(rèn)為可以掛任意多個(gè)ds18b20,在實(shí)際應(yīng)用中并非如此,當(dāng)單總線上所掛ds18b20 超過8 個(gè)時(shí),就需要解決微處理器的總線驅(qū)動(dòng)問題,這一點(diǎn)在進(jìn)行多點(diǎn)測溫系統(tǒng)設(shè)計(jì)時(shí)要加以注意。在ds18b20測溫程序設(shè)計(jì)中,向ds18b20 發(fā)出溫度

23、轉(zhuǎn)換命令后,程序總要等待ds18b20的返回信號(hào),一旦某個(gè)ds18b20 接觸不好或斷線,當(dāng)程序讀該ds18b20 時(shí),將沒有返回信號(hào),程序進(jìn)入死循環(huán),這一點(diǎn)在進(jìn)行ds18b20硬件連接和軟件設(shè)計(jì)時(shí)也要給予一定的重視。3 3、ds18b20ds18b20 內(nèi)部結(jié)構(gòu)內(nèi)部結(jié)構(gòu)圖為 ds1820 的內(nèi)部框圖,它主要包括寄生電源、溫度傳感器、64 位激光 rom 單線接口、存放中間數(shù)據(jù)的高速暫存器(內(nèi)含便箋式 ram) ,用于存儲(chǔ)用戶設(shè)定的溫度上下限值的 th 和 tl 觸發(fā)器存儲(chǔ)與控制邏輯、8 位循環(huán)冗余校驗(yàn)碼(crc)發(fā)生器等七部分。ds18b20采用腳pr35 封裝或腳soic封裝,其內(nèi)部結(jié)構(gòu)框

24、圖如圖 4.4所示15圖 4.4 ds18b20內(nèi)部結(jié)構(gòu)框圖64 b 閃速 rom 的結(jié)構(gòu)如下:開始位是產(chǎn)品類型的編號(hào),接著是每個(gè)器件的惟一的序號(hào),共有48 位,最后位是前面56 位的crc 檢驗(yàn)碼,這也是多個(gè)ds18b20 可以采用一線進(jìn)行通信的原因。溫度報(bào)警觸發(fā)器和,可通過軟件寫入戶報(bào)警上下限。主機(jī)操作rom的命令有五種,如表所列16指 令說 明讀rom(33h)讀ds1820的序列號(hào)匹配rom(55h)繼讀完64位序列號(hào)的一個(gè)命令,用于多個(gè)ds1820時(shí)定位跳過rom(cch)此命令執(zhí)行后的存儲(chǔ)器操作將針對(duì)在線的所有ds1820搜rom(f0h)識(shí)別總線上各器件的編碼,為操作各器件作好準(zhǔn)

25、備報(bào)警搜索(ech)僅溫度越限的器件對(duì)此命令作出響應(yīng)ds18b20 溫度傳感器的內(nèi)部存儲(chǔ)器還包括一個(gè)高速暫存和一個(gè)非易失性的可電擦除的eeram。高速暫存ram 的結(jié)構(gòu)為字節(jié)的存儲(chǔ)器,結(jié)構(gòu)如圖 4.5所示。 圖 4.5 高速暫存ram結(jié)構(gòu)圖前個(gè)字節(jié)包含測得的溫度信息,第和第字節(jié)和的拷貝,是易失的,每次上電復(fù)位時(shí)被刷新。第個(gè)字節(jié),為配置寄存器,它的內(nèi)容用于確定溫度值的數(shù)字轉(zhuǎn)換分辨率。ds18b20 工作時(shí)寄存器中的分辨率轉(zhuǎn)換為相應(yīng)精度的溫度數(shù)值。溫度低位溫度高位thtl配置保留保留保留8 位 crclsb msb當(dāng) ds18b20 接收到溫度轉(zhuǎn)換命令后,開始啟動(dòng)轉(zhuǎn)換。轉(zhuǎn)換完成后的溫度值就以 16

26、 位帶符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼形式存儲(chǔ)在高速暫存存儲(chǔ)器的第171,2 字節(jié)。單片機(jī)可通過單線接口讀到該數(shù)據(jù),讀取時(shí)低位在前,高位在后,數(shù)據(jù)格式以 0.062 5 /lsb 形式表示。溫度值格式如下:這是 12 位轉(zhuǎn)化后得到的 12 位數(shù)據(jù),存儲(chǔ)在 18b20 的兩個(gè) 8 比特的ram 中,二進(jìn)制中的前面 5 位是符號(hào)位,如果測得的溫度大于 0,這 5 位為 0,只要將測到的數(shù)值乘于 0.0625 即可得到實(shí)際溫度;如果溫度小于0,這 5 位為 1,測到的數(shù)值需要取反加 1 再乘于 0.0625 即可得到實(shí)際溫度。圖中,s 表示位。對(duì)應(yīng)的溫度計(jì)算:當(dāng)符號(hào)位 s=0 時(shí),表示測得的溫度植為正值,直接將

27、二進(jìn)制位轉(zhuǎn)換為十進(jìn)制;當(dāng) s=1 時(shí),表示測得的溫度植為負(fù)值,先將補(bǔ)碼變換為原碼,再計(jì)算十進(jìn)制值。例如+125的數(shù)字輸出為 07d0h,+25.0625的數(shù)字輸出為 0191h,-25.0625的數(shù)字輸出為ff6fh,-55的數(shù)字輸出為 fc90h。ds18b20 溫度傳感器主要用于對(duì)溫度進(jìn)行測量,數(shù)據(jù)可用 16 位符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼讀數(shù)形式提供,并以 0.0625lsb 形式表示。表 2 是部分溫度值對(duì)應(yīng)的二進(jìn)制溫度表示數(shù)據(jù)。表 2 部分溫度值ds18b20 完成溫度轉(zhuǎn)換后,就把測得的溫度值與 ram 中的 th、tl字節(jié)內(nèi)容作比較,若 tth 或 ttl,則將該器件內(nèi)的告警標(biāo)志置位,并對(duì)

28、18主機(jī)發(fā)出的告警搜索命令作出響應(yīng)。因此,可用多只 ds18b20 同時(shí)測量溫度并進(jìn)行告警搜索。在 64 位 rom 的最高有效字節(jié)中存儲(chǔ)有循環(huán)冗余校驗(yàn)碼(crc)。主機(jī)根據(jù) rom 的前 56 位來計(jì)算 crc 值,并和存入 ds18b20 中的 crc 值做比較,以判斷主機(jī)收到的 rom 數(shù) 據(jù)是否正確。4 4、ds18b20ds18b20 測溫原理測溫原理ds18b20 的測溫原理如圖 2 所示,圖中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小用于產(chǎn)生固定頻率的脈沖信號(hào)送給減法計(jì)數(shù)器 1,高溫度系數(shù)晶振隨溫度變化其震蕩頻率明顯改變,所產(chǎn)生的信號(hào)作為減法計(jì)數(shù)器 2的脈沖輸入,圖中還隱含著計(jì)數(shù)門

29、,當(dāng)計(jì)數(shù)門打開時(shí),ds18b20 就對(duì)低溫度系數(shù)振蕩器產(chǎn)生的時(shí)鐘脈沖后進(jìn)行計(jì)數(shù),進(jìn)而完成溫度測量.計(jì)數(shù)門的開啟時(shí)間由高溫度系數(shù)振蕩器來決定,每次測量前,首先將-55 所對(duì)應(yīng)的基數(shù)分別置入減法計(jì)數(shù)器 1 和溫度寄存器中,減法計(jì)數(shù)器 1 和溫度寄存器被預(yù)置在-55 所對(duì)應(yīng)的一個(gè)基數(shù)值。減法計(jì)數(shù)器 1 對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行減法計(jì)數(shù),當(dāng)減法計(jì)數(shù)器 1 的預(yù)置值減到 0 時(shí)溫度寄存器的值將加 1,減法計(jì)數(shù)器 1 的預(yù)置將重新被裝入,減法計(jì)數(shù)器 1 重新開始對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行計(jì)數(shù),如此循環(huán)直到減法計(jì)數(shù)器 2 計(jì)數(shù)到 0 時(shí),停止溫度寄存器值的累加,此時(shí)溫度寄存器中的數(shù)值即為所

30、測溫圖 2 中的斜率累加器用于補(bǔ)償和修正測溫過程中的非線性其輸出用,于修正減法計(jì)數(shù)器的預(yù)置值,只要計(jì)數(shù)門仍未關(guān)閉就重復(fù)上述過程,直至溫度寄存器值達(dá)到被測溫度值,這就是 ds18b20 的測溫原理。另外,由于 ds18b20 單線通信功能是分時(shí)完成的,他有嚴(yán)格的時(shí)隙概念,因此讀寫時(shí) 序很重要。系統(tǒng)對(duì) ds18b20 的各種操作必須按協(xié)議進(jìn)行。操作協(xié)議為:初始化 ds18b20 (發(fā)復(fù)位脈沖)發(fā) rom 功能命令發(fā)存儲(chǔ)器操作命令處理數(shù)據(jù)。19圖(2) ds18b20 測溫原理圖在正常測溫情況下,ds1820 的測溫分辨力為 0.5,可采用下述方法獲得高分辨率的溫度測量結(jié)果:首先用 ds1820 提

31、供的讀暫存器指令(beh)讀出以 0.5為分辨率的溫度測量結(jié)果,然后切去測量結(jié)果中的最低有效位(lsb) ,得到所測實(shí)際溫度的整數(shù)部分 tz,然后再用 beh 指令取計(jì)數(shù)器 1的計(jì)數(shù)剩余值 cs 和每度計(jì)數(shù)值 cd。考慮到 ds1820 測量溫度的整數(shù)部分以0.25、0.75為進(jìn)位界限的關(guān)系,實(shí)際溫度 ts 可用下式計(jì)算: ts=(tz-0.25)+(cd-cs)/cd 5 5、提高、提高 ds1820ds1820 測溫精度的途徑測溫精度的途徑(1)、ds1820 高精度測溫的理論依據(jù) ds1820 正常使用時(shí)的測溫分辨率為 0.5,這對(duì)于水輪發(fā)電機(jī)組軸瓦溫度監(jiān)測來講略顯不足,在對(duì) ds182

32、0 測溫原理詳細(xì)分析的基礎(chǔ)上,我們采取直接讀取 ds1820 內(nèi)部暫存寄存器的方法,將 ds1820 的測溫分辨率提高到 0.10.0120ds1820 內(nèi)部暫存寄存器的分布如表 1 所示,其中第 7 字節(jié)存放的是當(dāng)溫度寄存器停止增值時(shí)計(jì)數(shù)器 1 的計(jì)數(shù)剩余值,第 8 字節(jié)存放的是每度所對(duì)應(yīng)的計(jì)數(shù)值,這樣,我們就可以通過下面的方法獲得高分辨率的溫度測量結(jié)果。首先用 ds1820 提供的讀暫存寄存器指令(beh)讀出以 0.5為分辨率的溫度測量結(jié)果,然后切去測量結(jié)果中的最低有效位(lsb),得到所測實(shí)際溫度整數(shù)部分 t 整數(shù),然后再用 beh 指令讀取計(jì)數(shù)器 1 的計(jì)數(shù)剩余值m 剩余和每度計(jì)數(shù)值

33、 m 每度,考慮到 ds1820 測量溫度的整數(shù)部分以0.25、0.75為進(jìn)位界限的關(guān)系,實(shí)際溫度 t 實(shí)際可用下式計(jì)算得到:t實(shí)際=(t 整數(shù)0.25)+(m 每度m 剩余)/m 每度。表 1 ds18b20 暫存寄存器分布該字節(jié)各位的定義如下:tm r1 r0 1 1 1 1 1低 5 位一直都是 1,tm 是測試模式位,用于設(shè)置 ds18b20 在工作模式還是在測試模式。在 ds18b20 出廠時(shí)該位被設(shè)置為 0,用戶不要去改動(dòng),r1 和 r0 決定溫度轉(zhuǎn)換的精度位數(shù),即是來設(shè)置分辨率,如表 1 所示(ds18b20 出廠時(shí)被設(shè)置為 12 位)。r1r0分辨率溫度最大轉(zhuǎn)換時(shí)/mm009

34、位93.750110 位187.751011 位275.001112 位750.00表 1 r1 和 r2 模式表21由表 1 可見,設(shè)定的分辨率越高,所需要的溫度數(shù)據(jù)轉(zhuǎn)換時(shí)間就越長。因此,在實(shí)際應(yīng)用中要在分辨率和轉(zhuǎn)換時(shí)間權(quán)衡考慮。高速暫存存儲(chǔ)器除了配置寄存器外,還有其他 8 個(gè)字節(jié)組成,其分配如下所示。其中溫度信息(第 1,2 字節(jié)) 、th和 tl值第 3,4 字節(jié)、第 68 字節(jié)未用,表現(xiàn)為全邏輯 1;第 9 字節(jié)讀出的是前面所有 8 個(gè)字節(jié)的 crc 碼,可用來保證通信正確。 根據(jù) ds18b20 的通訊協(xié)議,主機(jī)控制 ds18b20 完成溫度轉(zhuǎn)換必須經(jīng)過三個(gè)步驟:每一次讀寫之前 都要

35、對(duì) ds18b20 進(jìn)行復(fù)位,復(fù)位成功后發(fā)送一條 rom 指令,最后發(fā)送 ram 指令,這樣才能對(duì) ds18b20 進(jìn)行預(yù)定的操作。復(fù)位要求主 cpu 將數(shù)據(jù)線下拉 500 微秒,然后釋放,ds18b20 收到信號(hào)后等待 1660 微秒左右,后發(fā)出 60240 微秒的存在低脈沖,主 cpu收到此信號(hào)表示復(fù)位成功。(2)、 測量數(shù)據(jù)比較表 2 為采用直接讀取測溫結(jié)果方法和采用計(jì)算方法得到的測溫?cái)?shù)據(jù)比較,通過比較可以看出,計(jì)算方法在 ds1820 測溫中不僅是可行的,也可以大大的提高 ds1820 的測溫分辨率。表 2 ds18b20 直度測溫結(jié)果與計(jì)算測溫結(jié)果數(shù)據(jù)比較(三)、顯示及報(bào)警模塊器件選

36、擇(三)、顯示及報(bào)警模塊器件選擇在本設(shè)計(jì)中溫度測量范圍為0125,精度為0.5,因此只需要液晶就可以完成相關(guān)的顯示功能,報(bào)警器可以用有源蜂鳴器配合三極管來代替。22五、硬件設(shè)計(jì)電路五、硬件設(shè)計(jì)電路溫度計(jì)電路設(shè)計(jì)原理圖如圖5.1所示,控制器使用單片機(jī)at89c2051,溫度計(jì)傳感器使用ds18b20,用液晶實(shí)現(xiàn)溫度顯示。本溫度計(jì)大體分三個(gè)工作過程。首先,由ds18820溫度傳感器芯片測量當(dāng)前的溫度,并將結(jié)果送入單片機(jī)。然后,通過89c205i單片機(jī)芯片對(duì)送來的測量溫度讀數(shù)進(jìn)行計(jì)算和轉(zhuǎn)換,井將此結(jié)果送入液晶顯示模塊。最后,smc1602a芯片將送來的值顯示于顯示屏上。 由圖1可看到,本電路主要由d

37、sl8820溫度傳感器芯片、smcl602a液晶顯示模塊芯片和89c2051單片機(jī)芯片組成。其中,dsi8b20溫度傳感器芯片采用“一線制”與單片機(jī)相連,它獨(dú)立地完成溫度測量以及將溫度測量結(jié)果送到單片機(jī)的工作。圖5.1 溫度計(jì)電路設(shè)計(jì)原理圖23(一)、主控制器(一)、主控制器單片機(jī)at89c2051具有低電壓供電和小體積等特點(diǎn),兩個(gè)端口剛好滿足電路系統(tǒng)的設(shè)計(jì)需要,很合適攜手特式產(chǎn)品的使用。主機(jī)控制ds18b20完成溫度轉(zhuǎn)換必須經(jīng)過三個(gè)步驟:初始化、rom操作指令、存儲(chǔ)器操作指令。必須先啟動(dòng)ds18b20開始轉(zhuǎn)換,再讀出溫度轉(zhuǎn)換值。(二)、顯示電路(二)、顯示電路顯示電路采用smci602a液晶

38、顯示模塊芯片該芯片可顯示162個(gè)字符,比以前的七段數(shù)碼管led顯示器在顯示字符的數(shù)量上要多得多。另外,由于smcl602芯片編程比較簡單,界面直觀,因此更加易于使用者操作和觀測。smcl602a芯片的接口信號(hào)說明如表1所列。表1 smcl602a芯片的接口信號(hào)說明 (三)、(三)、 溫度檢測電路溫度檢測電路ds18b20 最大的特點(diǎn)是單總線數(shù)據(jù)傳輸方式,ds18b20 的數(shù)據(jù)i/o 均由同一條線來完成。ds18b20 的電源供電方式有2 種: 外部供電方式和寄生電源方式。工作于寄生電源方式時(shí), vdd 和gnd 均接地, 他在需要遠(yuǎn)程溫度探測和空間受限的場合特別有用, 原理是當(dāng)1 w ire

39、總線的信號(hào)線dq 為高電平時(shí), 竊取信號(hào)能量給ds18b20 供電, 同時(shí)一部分能量給內(nèi)部電容24充電, 當(dāng)dq為低電平時(shí)釋放能量為ds18b20 供電。但寄生電源方式需要強(qiáng)上拉電路, 軟件控制變得復(fù)雜(特別是在完成溫度轉(zhuǎn)換和拷貝數(shù)據(jù)到e2prom 時(shí)) , 同時(shí)芯片的性能也有所降低。因此, 在條件允許的場合, 盡量采用外供電方式。無論是內(nèi)部寄生電源還是外部供電,i/o口線要接5k左右的上拉電。在這里采用前者方式供電。ds18b20與芯片連接電路如圖 5.2所示:圖 5.2 ds18b20與單片機(jī)的連接外部電源供電方式是ds18b20最佳的工作方式,工作穩(wěn)定可靠,抗干擾能力強(qiáng),而且電路也比較簡

40、單,可以開發(fā)出穩(wěn)定可靠的多點(diǎn)溫度監(jiān)控系統(tǒng)。站長推薦大家在開發(fā)中使用外部電源供電方式,畢竟比寄生電源方式只多接一根vcc引線。在外接電源方式下,可以充分發(fā)揮ds18b20寬電源電壓范圍的優(yōu)點(diǎn),即使電源電壓vcc 降到3v 時(shí),依然能夠保證溫度量精度。由于ds18b20 只有一根數(shù)據(jù)線,因此它和主機(jī)(單片機(jī))通信是需要串行通信,而at89s51 有兩個(gè)串行端口,所以可以不用軟件來模擬實(shí)現(xiàn)。經(jīng)過單線接口訪問dc18b20 必須遵循如下協(xié)議:初始化、rom 操作命令、存儲(chǔ)器操作命令和控制操作。要使傳感器工作,一切處理均嚴(yán)格按照時(shí)序。25主機(jī)發(fā)送(tx)-復(fù)位脈沖(最短為480s 的低電平信號(hào))。接著主

41、機(jī)便釋放此線并進(jìn)入接收方式(rx)??偩€經(jīng)過4.7k的上拉電阻被拉至高電平狀態(tài)。在檢測到i/o 引腳上的上升沿之后,ds18b20 等待1560s,并且接著發(fā)送脈沖(60240s 的低電平信號(hào))。然后以存在復(fù)位脈沖表示ds18b20 已經(jīng)準(zhǔn)備好發(fā)送或接收,然后給出正確的rom 命令和存儲(chǔ)操作命令的數(shù)據(jù)。ds18b20 通過使用時(shí)間片來讀出和寫入數(shù)據(jù),時(shí)間片用于處理數(shù)據(jù)位和進(jìn)行何種指定操作的命令。它有寫時(shí)間片和讀時(shí)間片兩種:寫時(shí)間片:當(dāng)主機(jī)把數(shù)據(jù)線從邏輯高電平拉至邏輯低電平時(shí),產(chǎn)生寫時(shí)間片。有兩種類型的寫時(shí)間片:寫1 時(shí)間片和寫0 時(shí)間片。所有時(shí)間片必須有60 微秒的持續(xù)期,在各寫周期之間必須有

42、最短為1微秒的恢復(fù)時(shí)間.讀時(shí)間片:從ds18b20 讀數(shù)據(jù)時(shí),使用讀時(shí)間片。當(dāng)主機(jī)把數(shù)據(jù)線從邏輯高電平拉至邏輯低電平時(shí)產(chǎn)生讀時(shí)間片。數(shù)據(jù)線在邏輯低電平必須保持至少1 微秒;來自ds18b20 的輸出數(shù)據(jù)在時(shí)間下降沿之后的15 微秒內(nèi)有效。為了讀出從讀時(shí)間片開始算起15微秒的狀態(tài),主機(jī)必須停止把引腳驅(qū)動(dòng)拉至低電平。在時(shí)間片結(jié)束時(shí),i/o 引腳經(jīng)過外部的上_鱯_9l_%拉電阻拉回高電平,所有讀時(shí)間片的最短持續(xù)期為60 微秒,包括兩個(gè)讀周期間至少1s 的恢復(fù)時(shí)間。一旦主機(jī)檢測到ds18b20 的存在,它便可以發(fā)送一個(gè)器件rom 操作命令。所有rom 操作命令均為8位長。所有的串行通訊,讀寫每一個(gè)bi

43、t 位數(shù)據(jù)都必須嚴(yán)格遵守器件的時(shí)序邏輯來編程,同時(shí)還必須遵守總線命令序列,對(duì)單總線的ds18b20 芯片來說,訪問每個(gè)器件都要遵守下列命令序列:首先是初始化;其次執(zhí)行rom 命令;最后就是執(zhí)行功能命令(rom 命令和功能命令后面以表格形式給出)。如果出現(xiàn)序列混亂,則單總線器件不會(huì)響應(yīng)主機(jī)。當(dāng)然,搜索rom命令和報(bào)警搜索命令,在執(zhí)行兩者中任何一條命令之后,要返回初始化。基于單總線上的所有傳輸過程都是以初始化開始的,初始化過程由主機(jī)發(fā)出的復(fù)位脈沖和從機(jī)響應(yīng)的應(yīng)答脈沖組成。應(yīng)答脈沖使主機(jī)知道,總線上有從機(jī),且準(zhǔn)備就緒。在主機(jī)檢測到應(yīng)答脈沖后,就可以發(fā)出rom 命令。這些命令與各個(gè)從機(jī)設(shè)備的唯一64

44、位rom 代碼相關(guān)。在主機(jī)發(fā)出rom命令,以訪問某個(gè)指定的ds18b20,接著就可以發(fā)出ds18b20支持的某個(gè)功能命令。這些命令26允許主機(jī)寫入或讀出ds18b20便箋式ram、啟動(dòng)溫度轉(zhuǎn)換。軟件實(shí)現(xiàn)ds18b20的工作嚴(yán)格遵守單總線協(xié)議:(1)主機(jī)首先發(fā)出一個(gè)復(fù)位脈沖,信號(hào)線上的ds18b20 器件被復(fù)位。(2)接著主機(jī)發(fā)送rom命令,程序開始讀取單個(gè)在線的芯片rom編碼并保存在單片機(jī)數(shù)據(jù)存儲(chǔ)器中,把用到的ds18b20 的rom 編碼離線讀出,最后用一個(gè)二維數(shù)組保存rom 編碼,數(shù)據(jù)保存在x25043中。(3)系統(tǒng)工作時(shí),把讀取了編碼的ds18b20 掛在總線上。發(fā)溫度轉(zhuǎn)換命令,再總線復(fù)

45、位。(4)然后就可以從剛才的二維數(shù)組匹配在線的溫度傳感器,隨后發(fā)溫度讀取命令就可以獲得對(duì)應(yīng)的度值了。在主機(jī)初始化過程,主機(jī)通過拉低單總線至少480us,來產(chǎn)生復(fù)位脈沖。接著,主機(jī)釋放總線,并進(jìn)入接收模式。當(dāng)總線被釋放后,上拉電阻將單總線拉高。在單總線器件檢測到上升沿后,延時(shí)1560us,接著通過拉低總線60240us,以產(chǎn)生應(yīng)答脈沖。寫時(shí)序均起始于主機(jī)拉低總線,產(chǎn)生寫1 時(shí)序的方式:主機(jī)在拉低總線后,接著必須在15us之內(nèi)釋放總線。產(chǎn)生寫0 時(shí)序的方式:在主機(jī)拉低總線后,只需在整個(gè)時(shí)序期間保持低電平即可(至少60us)。在寫字節(jié)程序中的寫一個(gè)bit 位的時(shí)候,沒有按照通常的分別寫0時(shí)序和寫1

46、時(shí)序,而是把兩者結(jié)合起來,當(dāng)主機(jī)拉低總線后在15us 之內(nèi)將要寫的位c 給do:如果c 是高電平滿足15us 內(nèi)釋放總線的要求,如果c是低電平,則doc這條語句仍然是把總線拉在低電平,最后都通過延時(shí)58us 完成一個(gè)寫時(shí)序(寫時(shí)序0或?qū)憰r(shí)序1)過程。寫時(shí)間時(shí)序:當(dāng)主機(jī)把數(shù)據(jù)從邏輯高電平拉到邏輯低電平的時(shí)候,寫時(shí)間隙開始。有兩種寫時(shí)間隙,寫1 時(shí)間隙和寫0 時(shí)間隙。所有寫時(shí)間隙必須最少持續(xù)60s,包括兩個(gè)寫周期至少1s 的恢復(fù)時(shí)間。i/o線電平變低后,ds18b20 在一個(gè)15s 到60s 的窗口內(nèi)對(duì)i/o 線采樣。如果線上事高電平,就是寫1,如果是低電平,就是寫0。主機(jī)要生成一個(gè)寫時(shí)間隙,必須

47、把數(shù)據(jù)線拉到低電平然后釋放,在寫時(shí)間隙開始后的15s 內(nèi)允許數(shù)據(jù)線拉到高電平。主機(jī)要生成一個(gè)寫0 時(shí)間隙,必須把數(shù)據(jù)線拉到低電平并保存60s。每個(gè)讀時(shí)隙都由主機(jī)發(fā)起,至少拉低總線1us,在主機(jī)發(fā)起讀時(shí)序之后,單總線器件才開始在總線上發(fā)送0 或1。所有讀時(shí)序至少需要60us。27源程序: 假設(shè)要寫1 b 的數(shù)據(jù), 且數(shù)據(jù)放在a 中。setbtem pdnnopnopwriteds1820lop: clrtem pd inmov r6, # 08h ; 延時(shí)15 lsdjn zr6, rrca ; 將要寫數(shù)據(jù)存入cmov tem pd in , c ; 將數(shù)據(jù)寫入總線mov r6, # 14h ;

48、 延時(shí)40 lsdjn zr6, setbtem pd in ; 釋放總線djn zr7,wr iteds1820lo p ; 寫8 位ret讀時(shí)間時(shí)序:當(dāng)從ds18b20 讀數(shù)據(jù)時(shí),主機(jī)生成讀時(shí)間隙。當(dāng)主機(jī)把數(shù)據(jù)從高電平拉到低電平時(shí),寫時(shí)間隙開始,數(shù)據(jù)線必須保持至少1s;從ds18b20輸出的數(shù)據(jù)在讀時(shí)間隙的下降沿出現(xiàn)后15s 內(nèi)有效。因此,主機(jī)在讀時(shí)間隙開始后必須把i/o 腳驅(qū)動(dòng)拉為的電平保持15s,以讀取i/o 腳狀態(tài)。在讀時(shí)間隙的結(jié)尾,i/o 引腳將被外部上拉電阻拉到高電平。所有讀時(shí)間隙必須最少60s,包括兩個(gè)讀周期至少1s的恢復(fù)時(shí)間。源程序: 假設(shè)要讀1b 的數(shù)據(jù), 且數(shù)據(jù)放在a 中

49、。readds1820:mov r7, # 08h ; 1 個(gè)字節(jié)8 位setbtem pd inno pno preadds1820loo p: clrtem pd inno p setbtem pd in ; 釋放總線mov r6, # 05h ; 延時(shí)10 lsdjn zr6, mov c, tem pd n ; 采樣總線28數(shù)據(jù)mov r6, # 14h ; 延時(shí)40 lsdjn zr6, rrca ; 采樣數(shù)據(jù)存入asetbtem pd in ; 釋放總線djn zr7, readds1820loo p ; 采樣下一位mov r6, # 14h ; 延時(shí)40 lsdjn zr6, r

50、et讀/寫時(shí)序如圖 5.3如下:29圖 5.3 ds18b20的讀寫時(shí)序圖復(fù)位時(shí)序:復(fù)位要求主cpu將數(shù)據(jù)線下拉500微秒,然后釋放,ds18b20收到信號(hào)后等待1660 微秒左右,后發(fā)出60240 微秒的存在低脈沖,主cpu 收到此信號(hào)表示復(fù)位成功。源程序: 其中tem pd in 定義為ds18b20 的數(shù)據(jù)管腳, 主機(jī)為a t89c2051。n itds1820: setbtem pd nno pno pclrtem pd nmov r6, # 0a 0h ; 延時(shí)640 lsdjn zr6, mov r6, # 0a 0hdjn zr6, setbtem pd n ; 釋放總線mov

51、r6, # 32h ; 延時(shí)100 ls, 等待回應(yīng)djn zr6, mov r6, # 3chloo p1820: mov c, tem pd n ; 采樣總線信號(hào)jcn itds1820ou tdjn zr6,loo p1820mov r6, # 064hdjn zr6, 30sjm pn itds1820retin itds1820ou t: setbtem pd nret復(fù)位時(shí)序如圖 5.3所示:(四)、溫度報(bào)警電路(四)、溫度報(bào)警電路本設(shè)計(jì)采軟件處理報(bào)警,利用有源蜂鳴器進(jìn)行報(bào)警輸出,采用直流供電。當(dāng)所測溫度超過獲低于所預(yù)設(shè)的溫度時(shí),數(shù)據(jù)口相應(yīng)拉高電平,報(bào)警輸出。(也可采用發(fā)光二級(jí)管報(bào)

52、警電路,如過需要報(bào)警,則只需將相應(yīng)位置1,當(dāng)參數(shù)判斷完畢后,再看報(bào)警模型單元alarm 的內(nèi)容是否與預(yù)設(shè)一樣,如不一樣,則發(fā)光報(bào)警)報(bào)警電路硬件連接見圖 5.10。31圖 5.10蜂鳴器電路連接圖六、六、 軟件設(shè)計(jì)軟件設(shè)計(jì)(一)、(一)、 概述概述整個(gè)系統(tǒng)的功能是由硬件電路配合軟件來實(shí)現(xiàn)的,當(dāng)硬件基本定型后,軟件的功能也就基本定下來了。從軟件的功能不同可分為兩大類:一是監(jiān)控軟件(主程序),它是整個(gè)控制系統(tǒng)的核心,專門用來協(xié)調(diào)各執(zhí)行模塊和操作者的關(guān)系。二是執(zhí)行軟件(子程序),它是用來完成各種實(shí)質(zhì)性的功能如測量、計(jì)算、顯示、通訊等。每一個(gè)執(zhí)行軟件也就是一個(gè)小的功能執(zhí)行模塊。這里將各執(zhí)行模塊一一列出,并為每一個(gè)執(zhí)行模塊進(jìn)行功能定義和接口定義。各執(zhí)行模塊規(guī)劃好后,就可以規(guī)劃監(jiān)控程序了。首先要根據(jù)系統(tǒng)的總體功能選擇一種最合適的監(jiān)控程序結(jié)構(gòu),然后根據(jù)實(shí)時(shí)性的要求

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論