版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
基于單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)摘要隨著時(shí)代的進(jìn)步和開展,單片機(jī)技術(shù)已經(jīng)普及到我們生活、工作、科研、各個(gè)領(lǐng)域,已經(jīng)成為一種比擬成熟的技術(shù),本文主要介紹了一個(gè)基于AT89S52單片機(jī)的測(cè)溫系統(tǒng),詳細(xì)描述了利用數(shù)字溫度傳感器DS18B20開發(fā)測(cè)溫系統(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)中的溫度測(cè)量,也可以當(dāng)作溫度處理模塊嵌入其它系統(tǒng)中,作為其他主系統(tǒng)的輔助擴(kuò)展。DS18B20與AT89S52結(jié)合實(shí)現(xiàn)最簡(jiǎn)溫度檢測(cè)系統(tǒng),該系統(tǒng)結(jié)構(gòu)簡(jiǎn)單,抗干擾能力強(qiáng),適合于惡劣環(huán)境下進(jìn)行現(xiàn)場(chǎng)溫度測(cè)量,有廣泛的應(yīng)用前景。關(guān)鍵詞DS18B20/AT89S52/溫度測(cè)量TheDesignOfDigitalTemperatureMeasurementBasedOnTheSinglechipABSTRACTAbstract:Alongwiththeprogressanddevelopmentoftheages,singleslicethemachinetechniquehasalreadymakewidelyavailablethelifeistous,work,research,eachrealm,havealreadybecomethetechniqueofakindofcomparisonmaturity.ThispapermainlydescribesatemperaturemeasurementsystembasedonAT89S52singlechip,detailedlydescribingthedevelopmentprocessusedigitaltemperaturesensor,thepaperintroducesthehardwareconnectivityandsoftwareprogrammingoftheDS18B20basedonthesingle-chip,andgivethesoftwareflowchartofeachmodule,aswellasintroducedeachcircuitofthesystem.Systemcaneasilytocollectanddisplaythetemperature,itcanalsoarbitrarysetalarmtemperatureaccordingtotheactualneed,Itisusedconvenience,ithashighprecision,widerange,highsensitivity,smallsize,andlowpowerdissipation,Thedeviceisespeciallyappliedtomeasuretemperatureinpeople'sdailylivesindustrialandagriculturalproduction,andalsoeasilyasatemperatureprocessingmoduleembedintheothersystem,turnintoasacomplementaryexpansion.KEYWORD:at89s52,ds18b20,temperaturemeasurement。目錄中文摘要 I英文摘要 II1引言 12方案設(shè)計(jì) 22.1設(shè)計(jì)內(nèi)容及性能指標(biāo) 22.2系統(tǒng)方案確定 23系統(tǒng)器件選擇 33.1單片機(jī)的選擇 33.289S52引腳功能介紹 43.3溫度傳感器的選擇 53.4DS18B20簡(jiǎn)單介紹 63.4.1DS18B20的性能特點(diǎn)如下: 63.4.2DS18B20使用中的考前須知: 73.5DS18B20內(nèi)部結(jié)構(gòu) 83.6DS18B20測(cè)溫原理 113.7DS1820高精度測(cè)溫的理論依據(jù) 133.8測(cè)量數(shù)據(jù)比擬 144 硬件電路設(shè)計(jì) 164.1主控制器 184.2顯示電路設(shè)計(jì) 184.3復(fù)位電路設(shè)計(jì) 194.4時(shí)鐘電路 194.5溫度檢測(cè)電路設(shè)計(jì) 205.軟件設(shè)計(jì) 235.1概述 235.2主程序模塊 235.3各模塊流程設(shè)計(jì) 24各模塊流程設(shè)計(jì)下面對(duì)主要子程序的流程圖做介紹 245.4中斷設(shè)定流程 26自我評(píng)價(jià) 28致謝 29參考文獻(xiàn) 30〔附錄〕 311引言隨著科技的不斷開展,現(xiàn)代社會(huì)對(duì)各種信息參數(shù)的準(zhǔn)確度和精確度的要求都有了幾何級(jí)的增長,而如何準(zhǔn)確而又迅速的獲得這些參數(shù)就需要受制于現(xiàn)代信息根底的開展水平。在三大信息信息采集(即傳感器技術(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í)測(cè)量溫度,在農(nóng)業(yè)生產(chǎn)中也離不開溫度的測(cè)量,因此研究溫度的測(cè)量方法和裝置具有重要的意義。測(cè)量溫度的關(guān)鍵是溫度傳感器,溫度傳感器的開展經(jīng)歷了三個(gè)開展階段:1.傳統(tǒng)的分立式溫度傳感器。2.模擬集成溫度傳感器。3.智能集成溫度傳感器。目前的智能溫度傳感器(亦稱數(shù)字溫度傳感器)是在20世紀(jì)90年代中期問世的,它是微電子技術(shù)、計(jì)算機(jī)技術(shù)和自動(dòng)測(cè)試技術(shù)(ATE)的結(jié)晶,特點(diǎn)是能輸出溫度數(shù)據(jù)及相關(guān)的溫度控制量,適配各種微控制器(MCU)。社會(huì)的開展使人們對(duì)傳感器的要求也越來越高,現(xiàn)在的溫度傳感器正在基于單片機(jī)的根底上從模擬式向數(shù)字式,從集成化向智能化、網(wǎng)絡(luò)化的方向飛速開展,并朝著高精度、多功能、總線標(biāo)準(zhǔn)化、高可靠性及平安性、開發(fā)虛擬傳感器和網(wǎng)絡(luò)傳感器、研制單片測(cè)溫系統(tǒng)等高科技的方向迅速開展,本文將介紹智能集成溫度傳感器DS18B20的結(jié)構(gòu)特征及控制方法,并對(duì)以此傳感器,89S51單片機(jī)為控制器構(gòu)成的數(shù)字溫度測(cè)量裝置的工作原理及程序設(shè)計(jì)作了詳細(xì)的介紹。與傳統(tǒng)的溫度計(jì)相比,其具有讀數(shù)方便,測(cè)溫范圍廣,測(cè)溫準(zhǔn)確,輸出溫度采用數(shù)字顯示,主要用于對(duì)測(cè)溫要求比擬準(zhǔn)確的場(chǎng)所,或科研實(shí)驗(yàn)室使用。該設(shè)計(jì)控制器使用ATMEL公司的AT89S52單片機(jī),測(cè)溫傳感器使用DALLAS公司生產(chǎn)的DS18B20,用八段數(shù)碼來實(shí)現(xiàn)溫度顯示。2方案設(shè)計(jì)2.1設(shè)計(jì)內(nèi)容及性能指標(biāo)本設(shè)計(jì)主要是介紹了單片機(jī)控制下的溫度檢測(cè)系統(tǒng),詳細(xì)介紹了其硬件和軟件設(shè)計(jì),并對(duì)其各功能模塊做了詳細(xì)介紹,其主要功能和指標(biāo)如下:●利用溫度傳感器〔DS18B20〕測(cè)量某一點(diǎn)環(huán)境溫度;●測(cè)量范圍為-55℃~+99℃,精度為±0.5℃;●用液晶進(jìn)行實(shí)際溫度值顯示;●能夠根據(jù)需要方便設(shè)定上下限報(bào)警溫度。2.2系統(tǒng)方案確定該系統(tǒng)主要由溫度測(cè)量和數(shù)據(jù)采集兩局部電路組成,實(shí)現(xiàn)的方法有很多種,下面將列出一種在日常生活中和工農(nóng)業(yè)生產(chǎn)中經(jīng)常用到的實(shí)現(xiàn)方案。方案采用數(shù)字溫度芯片DS18B20測(cè)量溫度,輸出信號(hào)全數(shù)字化。便于單片機(jī)處理及控制,省去傳統(tǒng)的測(cè)溫方法的很多外圍電路。且該芯片的物理化學(xué)性很穩(wěn)定,它能用做工業(yè)測(cè)溫元件,此元件線形較好。在0—100攝氏度時(shí),最大線形偏差小于1攝氏度。DS18B20的最大特點(diǎn)之一采用了單總線的數(shù)據(jù)傳輸,由數(shù)字溫度計(jì)DS18B20和微控制器AT89S52構(gòu)成的溫度測(cè)量裝置,它直接輸出溫度的數(shù)字信號(hào),可直接與計(jì)算機(jī)連接。這樣,測(cè)溫系統(tǒng)的結(jié)構(gòu)就比擬簡(jiǎn)單,體積也不大。采用51單片機(jī)控制,軟件編程的自由度大,可通過編程實(shí)現(xiàn)各種各樣的算術(shù)算法和邏輯控制,而且體積小,硬件實(shí)現(xiàn)簡(jiǎn)單,安裝方便。既可以單獨(dú)對(duì)多DS18B20控制工作,還可以與PC機(jī)通信上傳數(shù)據(jù),另外AT89S52在工業(yè)控制上也有著廣泛的應(yīng)用,編程技術(shù)及外圍功能電路的配合使用都很成熟。該系統(tǒng)利用AT89S52芯片控制溫度傳感器DS18B20進(jìn)行實(shí)時(shí)溫度檢測(cè)并顯示,能夠?qū)崿F(xiàn)快速測(cè)量環(huán)境溫度,并可以根據(jù)需要設(shè)定上下限報(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ù)。系統(tǒng)框圖如圖2-2所示單單片機(jī)按鍵電路輸入時(shí)鐘復(fù)位電路電源電路驅(qū)動(dòng)電路顯示電路測(cè)溫電路圖2-2DS18B20溫度測(cè)溫系統(tǒng)框圖3系統(tǒng)器件選擇3.1單片機(jī)的選擇對(duì)于單片機(jī)的選擇,可以考慮使用8031與8051系列,由于8031沒有內(nèi)部RAM,系統(tǒng)又需要大量內(nèi)存存儲(chǔ)數(shù)據(jù),因而不適用。AT89S52是美國高性能CMOS8位單片機(jī),片內(nèi)含4kbytes的ATMEL公司生產(chǎn)的低功耗,可編程的Flash只讀程序存儲(chǔ)器,兼容標(biāo)準(zhǔn)8051指令系統(tǒng)及引腳。它集Flash程序存儲(chǔ)器既可在線編程〔ISP〕,也可用傳統(tǒng)方法進(jìn)行編程,所以低價(jià)位AT89S52單片機(jī)可為提供許多高性價(jià)比的應(yīng)用場(chǎng)合,可靈活應(yīng)用于各種控制領(lǐng)域,對(duì)于簡(jiǎn)單的測(cè)溫系統(tǒng)已經(jīng)足夠。單片機(jī)AT89S52具有低電壓供電和體積小等特點(diǎn),四個(gè)端口只需要兩個(gè)口就能滿足電路系統(tǒng)的設(shè)計(jì)需要,很適合便攜手持式產(chǎn)品的設(shè)計(jì)使用系統(tǒng)可用二節(jié)電池供電。主要特性如下●與MCS-51兼容●4K字節(jié)可編程閃爍存儲(chǔ)器;●壽命:1000寫/擦循環(huán)7;●數(shù)據(jù)保存時(shí)間:10年;●全靜態(tài)工作:0Hz-24Hz;●三級(jí)程序存儲(chǔ)器鎖定;●128*8位內(nèi)部RAM;●32可編程I/O線;●兩個(gè)16位定時(shí)器/計(jì)數(shù)器;●5個(gè)中斷源;3-1AT89S52單片機(jī)引腳圖●可編程串行通道;●低功耗的閑置和掉電模式;●片內(nèi)振蕩器和時(shí)鐘電路圖.3.289S52引腳功能介紹AT89S52單片機(jī)為40引腳雙列直插式封裝,其引腳排列和邏輯符號(hào)如圖3-1所示。各引腳功能簡(jiǎn)單介紹如下:●VCC:供電電壓●GND:接地●P0口:P0口為一個(gè)8位漏級(jí)開路雙向I/O口,每個(gè)管腳可吸收8TTL門電流。當(dāng)P1口的管腳寫“1〞時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在FLASH編程時(shí),P0口作為原碼輸入口,當(dāng)FLASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部電位必須被拉高?!馪1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入“1〞后,電位被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口8作為第八位地址接收。●P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1〞時(shí),其管腳電位被內(nèi)部上拉電阻拉高,且作為輸入。作為輸入時(shí),P2口的管腳電位被外部拉低,將輸出電流,這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1〞時(shí),它利用內(nèi)部上拉的優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),P2口輸出其特殊功能存放器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)?!馪3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1〞后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入時(shí),由于外部下拉為低電平,P3口將輸出電流(ILL),也是由于上拉的緣故。P3口也可作為AT89C51的一些特殊功能口:P3.0RXD(串行輸入口);P3.1TXD(串行輸出口);P3.2INT0(外部中斷0);P3.3INT1(外部中斷1);P3.4T0(記時(shí)器0外部輸入);P3.5T1(記時(shí)器1外部輸入);P3.6WR(外部數(shù)據(jù)存儲(chǔ)器寫選通);P3.7RD(外部數(shù)據(jù)存儲(chǔ)器讀選通)。同時(shí)P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)?!馬ST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。●ALE/PROG:當(dāng)訪問外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(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)?!馝A/VPP:當(dāng)EA保持低電平時(shí),訪問外部ROM;注意加密方式1時(shí),EA將內(nèi)部鎖定為RESET;當(dāng)EA端保持高電平時(shí),訪問內(nèi)部ROM。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)?!馲TAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入?!馲TAL2:來自反向振蕩器的輸出。3.3溫度傳感器的選擇由于傳統(tǒng)的熱敏電阻等測(cè)溫元件測(cè)出的一般都是電壓,再轉(zhuǎn)換成對(duì)應(yīng)的溫度,需要比擬多的外部元件支持,且硬件電路復(fù)雜,制作本錢相對(duì)較高。這里采用DALLAS公司的數(shù)字溫度傳感器DS18B20作為測(cè)溫元件。3.4DS18B20簡(jiǎn)單介紹DALLAS最新單線數(shù)字溫度傳感器DS18B20是一種新型的“一線器件〞,其體積更小、更適用于多種場(chǎng)合、且適用電壓更寬、更經(jīng)濟(jì)。DALLAS半導(dǎo)體公司的數(shù)字化溫度傳感器DS18B20是世界上第一片支持“一線總線〞接口的溫度傳感器。溫度測(cè)量范圍為-55~+125攝氏度,可編程為9位~12位轉(zhuǎn)換精度,測(cè)溫分辨率可達(dá)0.0625攝氏度,分辨率設(shè)定參數(shù)以及用戶設(shè)定的報(bào)警溫度存儲(chǔ)在EEPROM中,掉電后依然保存。被測(cè)溫度用符號(hào)擴(kuò)展的16位數(shù)字量方式串行輸出;其工作電源既可以在遠(yuǎn)端引入,也可以采用寄生電源方式產(chǎn)生;多個(gè)DS18B20可以并聯(lián)到3根或2根線上,CPU只需一根端口線就能與諸多DS18B20通信,占用微處理器的端口較少,可節(jié)省大量的引線和邏輯電路。因此用它來組成一個(gè)測(cè)溫系統(tǒng),具有線路簡(jiǎn)單,在一根通信線,可以掛很多這樣的數(shù)字溫度計(jì),十分方便。3.4.1DS18B20的性能特點(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)測(cè)溫;●DS18B20在使用中不需要任何外圍元件,全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi);●適應(yīng)電壓范圍更寬,電壓范圍:3.0~5.5V,在寄生電源方式下可由數(shù)據(jù)線供電;●溫范圍-55℃~+125℃,在-10~+85℃時(shí)精度為±0.5℃;●零待機(jī)功耗;●可編程的分辨率為9~12位,對(duì)應(yīng)的可分辨溫度分別為0.5℃、0.25℃、0.125℃和0.0625℃,可實(shí)現(xiàn)高精度測(cè)溫;●在9位分辨率時(shí)最多在93.75ms內(nèi)把溫度轉(zhuǎn)換為數(shù)字,12位分辨率時(shí)最多在750ms內(nèi)把溫度值轉(zhuǎn)換為數(shù)字,速度更快;●用戶可定義報(bào)警設(shè)置;●報(bào)警搜索命令識(shí)別并標(biāo)志超過程序限定溫度〔溫度報(bào)警條件〕的器件;●測(cè)量結(jié)果直接輸出數(shù)字溫度信號(hào),以"一線總線"串行傳送給CPU,同時(shí)可傳送CRC校驗(yàn)碼,具有極強(qiáng)的抗干擾糾錯(cuò)能力;●負(fù)電壓特性,電源極性接反時(shí),溫度計(jì)不會(huì)因發(fā)熱而燒毀,但不能正常工作11以上特點(diǎn)使DS18B20非常適用與多點(diǎn)、遠(yuǎn)距離溫度檢測(cè)系統(tǒng)。DS18B20內(nèi)部結(jié)構(gòu)主要由四局部組成:64位光刻ROM、溫度傳感器、非揮發(fā)的溫度報(bào)警觸發(fā)器TH和TL、配置存放器。DS18B20的管腳排列、各種封裝形式如圖3-2所示,DQ為數(shù)據(jù)輸入/輸出引腳。開漏單總線接口引腳。當(dāng)被用著在寄生電源下,也可以向器件提供電源;GND為地信號(hào);VDD為可選擇的VDD引腳。當(dāng)工作于寄生電源時(shí),此引腳必須接地。圖3-2外部封裝形式圖圖3-3所示圖為引腳圖3.4.2DS18B20使用中的考前須知:DS18B20雖然具有測(cè)溫系統(tǒng)簡(jiǎn)單、測(cè)溫精度高、連接方便、占用口線少等優(yōu)點(diǎn),但在實(shí)際應(yīng)用中也應(yīng)注意以下幾方面的問題:●DS18B20從測(cè)溫結(jié)束到將溫度值轉(zhuǎn)換成數(shù)字量需要一定的轉(zhuǎn)換時(shí)間,這是必須保證的,不然會(huì)出現(xiàn)轉(zhuǎn)換錯(cuò)誤的現(xiàn)象,使溫度輸出總是顯示85。●在實(shí)際使用中發(fā)現(xiàn),應(yīng)使電源電壓保持在5V左右,假設(shè)電源電壓過低,會(huì)使所測(cè)得的溫度精度降低。●較小的硬件開銷需要相對(duì)復(fù)雜的軟件進(jìn)行補(bǔ)償,由于DS1820與微處理器間采用串行數(shù)據(jù)傳送,因此,在對(duì)DS1820進(jìn)行讀寫編程時(shí),必須嚴(yán)格的保證讀寫時(shí)序,否那么將無法讀取測(cè)溫結(jié)果。在使用PL/M、C等高級(jí)語言進(jìn)行系統(tǒng)程序設(shè)計(jì)時(shí),對(duì)DS1820操作局部最好采用匯編語言實(shí)現(xiàn)?!裨贒S18B20的有關(guān)資料中均未提及單總線上所掛DS18B20數(shù)量問題,容易使人誤認(rèn)為可以掛任意多個(gè)DS18B20,在實(shí)際應(yīng)用中并非如此,就需要解決微處理器的總線驅(qū)當(dāng)單總線上所掛DS18B20超過8個(gè)時(shí),動(dòng)問題,這一點(diǎn)在進(jìn)行多點(diǎn)測(cè)溫系統(tǒng)設(shè)計(jì)時(shí)要加以注意。●在DS18B20測(cè)溫程序設(shè)計(jì)中,向DS18B20發(fā)出溫度轉(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.5DS18B20內(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采用3腳PR-35封裝或8腳SOIC封裝,其內(nèi)部結(jié)構(gòu)框圖如圖3-5所示6464位ROM單片機(jī)存儲(chǔ)器和控制邏輯高速緩存溫度傳感器高溫觸發(fā)TH低溫觸發(fā)TL配置存放器8位CRC發(fā)生器圖3-5DS18B20內(nèi)部結(jié)構(gòu)框圖8bit檢驗(yàn)CRC48bit序列號(hào)8bit檢驗(yàn)CRC48bit序列號(hào)8bit工廠代碼〔10H〕MSBLSBMSBLSBMSBLSB開始8位是產(chǎn)品類型的編號(hào),接著是每個(gè)器件的惟一的序號(hào),共有48位,最后8位是前面56位的CRC檢驗(yàn)碼,這也是多個(gè)DS18B20可以采用一線進(jìn)行通信的原因。溫度報(bào)警觸發(fā)器TH和TL,可通過軟件寫入戶報(bào)警上下限。主機(jī)操作ROM的命令有五種,如表3-5所列:指令說明讀ROM(33H)讀DS18B20的序列號(hào)匹配ROM〔55H〕繼續(xù)讀完64位序列號(hào)的一個(gè)命令用于跳過ROM〔CCH〕此命令執(zhí)行后的存儲(chǔ)器操作將針對(duì)搜ROM〔F0H〕識(shí)別總線各器件的編碼,為操作各報(bào)警搜索〔ECH〕僅溫度越限的器件對(duì)此命令作出響應(yīng)表3-5主機(jī)操作圖DS18B20溫度傳感器的內(nèi)部存儲(chǔ)器還包括一個(gè)高速暫存RAM和一個(gè)非易失性的可電擦除的EERAM。高速暫存RAM的結(jié)構(gòu)為8字節(jié)的存儲(chǔ)器,結(jié)構(gòu)如圖3-5-1所示。圖3-5-1高速暫存RAM結(jié)構(gòu)圖前2個(gè)字節(jié)包含測(cè)得的溫度信息,第3和第4字節(jié)TH和TL的拷貝,是易失的,每次上電復(fù)位時(shí)被刷新。第5個(gè)字節(jié),為配置存放器,它的內(nèi)容用于確定溫度值的數(shù)字轉(zhuǎn)換分辨率。DS18B20工作時(shí)存放器中的分辨率轉(zhuǎn)換為相應(yīng)精度的溫度數(shù)值。當(dāng)DS18B20接收到溫度轉(zhuǎn)換命令后,開始啟動(dòng)轉(zhuǎn)換。轉(zhuǎn)換完成后的溫度值就以16位帶符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼形式存儲(chǔ)在高速暫存存儲(chǔ)器的第1,152字節(jié)。單片機(jī)可通過單線接口讀到該數(shù)據(jù),讀取時(shí)低位在前,高位在后,數(shù)據(jù)格式以0.0625℃/LSB形式表示。溫度值格式如下:這是12位轉(zhuǎn)化后得到的12位數(shù)據(jù)存儲(chǔ)在18B20的兩個(gè)8比特的RAM中二進(jìn)制中的前面5位是符號(hào)位,如果測(cè)得的溫度大于0,這5位為0,只要將測(cè)到的數(shù)值乘于0.0625即可得到實(shí)際溫度;如果溫度小于0,這5位為1,測(cè)到的數(shù)值需要取反加1再乘于0.0625即可得到實(shí)際溫度。S表示位。對(duì)應(yīng)的溫度計(jì)算:當(dāng)符號(hào)位S=0時(shí),表示測(cè)得的溫度植為正值,直接將二進(jìn)制位轉(zhuǎn)換為十進(jìn)制;當(dāng)S=1時(shí),表示測(cè)得的溫度植為負(fù)值,先將補(bǔ)碼變換為原碼,再計(jì)算十進(jìn)制值。例如+125℃的數(shù)字輸出07D0H,+25.0625℃的數(shù)字輸出為0191H,-25.0625℃的數(shù)字輸出為FF6FH,-55℃的數(shù)字輸出為FC90H。DS18B20溫度傳感器主要用于對(duì)溫度進(jìn)行測(cè)量,數(shù)據(jù)可用16位符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼讀數(shù)形式提供,并以0.0625℃/LSB形式表示。表3-5-2是局部溫度值對(duì)應(yīng)的二進(jìn)制溫度表示數(shù)據(jù)。表3-5-2局部溫度值DS18B20完成溫度轉(zhuǎn)換后,就把測(cè)得的溫度值與RAM中的TH、TL字節(jié)內(nèi)容作比擬,假設(shè)T>TH或T<TL,那么將該器件內(nèi)的告警標(biāo)志置位,并對(duì)主機(jī)16發(fā)出的告警搜索命令作出響應(yīng)。因此,可用多只DS18B20同時(shí)測(cè)量溫度并進(jìn)行告警搜索。在64位ROM的最高有效字節(jié)中存儲(chǔ)有循環(huán)冗余校驗(yàn)碼〔CRC〕。主機(jī)根據(jù)ROM的前56位來計(jì)算CRC值,并和存入DS18B20中的CRC值做比擬,以判斷主機(jī)收到的ROM數(shù)據(jù)是否正確。3.6DS18B20測(cè)溫原理DS18B20的測(cè)溫原理如圖3-6所示,圖中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小用于產(chǎn)生固定頻率的脈沖信號(hào)送給減法計(jì)數(shù)器1,高溫度系數(shù)晶振隨溫度變化其震蕩頻率明顯改變,所產(chǎn)生的信號(hào)作為減法計(jì)數(shù)2的脈沖輸入,圖中還隱含著計(jì)數(shù)門,當(dāng)計(jì)數(shù)門翻開時(shí),DS18B20就對(duì)低溫度系數(shù)振蕩器產(chǎn)生的時(shí)鐘脈沖后進(jìn)行計(jì)數(shù),進(jìn)而完成溫度測(cè)量計(jì)數(shù)門的開啟時(shí)間由高溫度系數(shù)振蕩器來決定,每次測(cè)量前,首先將-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ù)值即為所測(cè)溫中的斜率累加器用于補(bǔ)償和修正測(cè)溫過程中的非線性其輸出用,于修正減法計(jì)數(shù)器的預(yù)置值,只要計(jì)數(shù)門仍未關(guān)閉就重復(fù)上述過程,直至溫度存放器值到達(dá)被測(cè)溫度值,這就是DS18B20的測(cè)溫原理另外,由于DS18B20單線通信功能是分時(shí)完成的,他有嚴(yán)格的時(shí)隙概念,因此讀寫時(shí)序很重要。系統(tǒng)對(duì)DS18B20的各種操作必須按協(xié)議進(jìn)〔發(fā)復(fù)位脈沖〕→發(fā)ROM功能命令行。操作協(xié)議為:初始化DS18B20→發(fā)存儲(chǔ)器操作命令→處理數(shù)據(jù)。斜率累加器斜率累加器預(yù)置低溫系數(shù)振蕩器高溫系數(shù)振蕩器Tn計(jì)數(shù)器1計(jì)數(shù)器2比擬預(yù)置溫度存放器=0=0圖3-6DS18B20測(cè)溫原理圖在正常測(cè)溫情況下,DS1820的測(cè)溫分辨力為0.5℃,可采用下述方法獲得高分辨率的溫度測(cè)量結(jié)果:首先用DS1820提供的讀暫存器指令〔BEH〕讀出以0.5℃為分辨率的溫度測(cè)量結(jié)果,然后切去測(cè)量結(jié)果中的最低有效位〔LSB〕,得到所測(cè)實(shí)際溫度的整數(shù)局部Tz,然后再用BEH指令取計(jì)數(shù)器1的計(jì)數(shù)剩余值Cs和每度計(jì)數(shù)值CD??紤]到DS1820測(cè)量溫度的整數(shù)局部以0.25℃、0.75℃為進(jìn)位界限的關(guān)系,實(shí)際溫度Ts可用下式計(jì)算:Ts=〔Tz-0.25℃〕+(CD-Cs)/CD3.7DS1820高精度測(cè)溫的理論依據(jù)DS1820正常使用時(shí)的測(cè)溫分辨率為0.5℃,這對(duì)于水輪發(fā)電機(jī)組軸瓦溫度監(jiān)測(cè)來講略顯缺乏,在對(duì)DS1820測(cè)溫原理詳細(xì)分析的根底上,我們采取直接讀取DS1820內(nèi)部暫存存放器的方法,將DS1820的測(cè)溫分辨率提高到0.1℃~0.01℃.DS1820內(nèi)部暫存存放器的分布如表3-7所示,其中第7字節(jié)存放的是當(dāng)溫度存放器停止增值時(shí)計(jì)數(shù)器1的計(jì)數(shù)剩余值,第8字節(jié)存放的是每度所對(duì)18應(yīng)的計(jì)數(shù)值。這樣,我們就可以通過下面的方法獲得高分辨率的溫度測(cè)量結(jié)果。首先DS1820提供的讀暫存存放器指令(BEH)讀出以0.5℃為分辨率的溫度測(cè)量結(jié)果,然后切去測(cè)量結(jié)果中的最低有效位(LSB),得到所測(cè)實(shí)際溫度整數(shù)局部T整數(shù),然后再用BEH指令讀取計(jì)數(shù)器1的計(jì)數(shù)剩余值M剩余和每度計(jì)數(shù)值M每度,考慮到DS1820測(cè)量溫度的整數(shù)局部以0.25℃、0.75℃為進(jìn)位界限的關(guān)系,實(shí)際溫度T實(shí)際可用下式計(jì)算得到:T實(shí)際=(T整數(shù)-0.25℃)+(M每度-M剩余)/M每度。表3-7DS18B20暫存存放器分布存放器內(nèi)容字節(jié)地址溫度最低數(shù)字0溫度最高數(shù)字1高溫限值2低溫限值3保存4保存5計(jì)數(shù)剩余值6每度計(jì)數(shù)值7CRC校驗(yàn)8該字節(jié)各位的定義如下:低5位一直都是1,TM是測(cè)試模式位,用于設(shè)置DS18B20在工作模式還是在測(cè)試模式。在DS18B20出廠時(shí)該位被設(shè)置為0,用戶不要去改動(dòng),R1和R0決定溫度轉(zhuǎn)換的精度位數(shù),即是來設(shè)置分辨率,如表3-7-1所示〔DS18B20出廠時(shí)被設(shè)置為12位〕。R1R0分辨率溫度轉(zhuǎn)換時(shí)/mm009位93.750110位187.751011位275.001112位750.00表3-7-1由表3-7-1可見,設(shè)定的分辨率越高,所需要的溫度數(shù)據(jù)轉(zhuǎn)換時(shí)間就越長。因此,在實(shí)際應(yīng)用中要在分辨率和轉(zhuǎn)換時(shí)間權(quán)衡考慮。高速暫存存儲(chǔ)器除了配置存放器外,還有其他8個(gè)字節(jié)組成,其分配如下所示。其中溫度信息〔第1,2字節(jié)〕H和TL值第3,4字節(jié)、第6~8字節(jié)未用,表現(xiàn)為全邏輯1;T第9字節(jié)讀出的是前面所有8個(gè)字節(jié)的CRC碼,可用來保證通信正確。根據(jù)DS18B20的通訊協(xié)議,主機(jī)控制DS18B20完成溫度轉(zhuǎn)換必須經(jīng)過三個(gè)步驟:每一次讀寫之前都要對(duì)DS18B20進(jìn)行復(fù)位,復(fù)位成功后發(fā)送一條ROM指令,最后發(fā)送RAM指令,這樣才能對(duì)DS18B20進(jìn)行預(yù)定的操作。復(fù)位要求主CPU將數(shù)據(jù)線下拉500微秒,然后釋放,DS18B20收到信號(hào)后等待16~60微秒左右,后發(fā)出60~240微秒的存在低脈沖,主CPU收到此信號(hào)表示復(fù)位成功。3.8測(cè)量數(shù)據(jù)比擬表3-8為采用直接讀取測(cè)溫結(jié)果方法和采用計(jì)算方法得到的測(cè)溫?cái)?shù)據(jù)比擬,通過比擬可以看出,計(jì)算方法在DS1820測(cè)溫中不僅是可行的,也可以大大的提高DS1820的測(cè)溫分辨率。表3-8DS18B20直度測(cè)溫結(jié)果與計(jì)算測(cè)溫結(jié)果數(shù)據(jù)比擬次數(shù)T溫度M剩余M每度T實(shí)際121.000728220.850234.000428334.238349.000308449.388452.000668551.964564.000498664.174679.000568779.106782.500168882.568表3-8硬件電路設(shè)計(jì)溫度計(jì)電路設(shè)計(jì)原理圖如圖4-1所示,控制器使用單片機(jī)AT89S52,溫度計(jì)傳感器使用DS18B20,用LED實(shí)現(xiàn)溫度顯示。本溫度計(jì)大體分三個(gè)工作過程。首先,由DS18820溫度傳感器芯片測(cè)量當(dāng)前的溫度,并將結(jié)果送入單片機(jī)。然后,通過AT89S52單片機(jī)芯片對(duì)送來的測(cè)量溫度讀數(shù)進(jìn)行計(jì)算和轉(zhuǎn)換,井將此結(jié)果送入液晶顯示模塊。最后,八段數(shù)碼管將送來的值顯示于顯示屏上。由圖4-1可看到,本電路主要由DSl8820溫度傳感器芯片,AT89S52單片機(jī)芯片組成。其中,DSI8B20溫度傳感器芯片采用“一線制〞與單片機(jī)相連,它獨(dú)立地完成溫度測(cè)量以及將溫度測(cè)量結(jié)果送到單片機(jī)的工作。圖4-1溫度計(jì)電路設(shè)計(jì)原理圖4.1主控制器主控制器單片機(jī)AT89S52具有低電壓供電和小體積等特點(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)換值。4.2顯示電路設(shè)計(jì)在單片機(jī)應(yīng)用系統(tǒng)中,為了控制系統(tǒng)的工作狀態(tài),以及向系統(tǒng)中輸入數(shù)據(jù)和數(shù)字信息,系統(tǒng)應(yīng)設(shè)有按鍵或鍵盤。為了觀察和監(jiān)視鍵盤輸入的信息,為了了解系統(tǒng)的工作情況以及得到系統(tǒng)完成任務(wù)的結(jié)果,系統(tǒng)應(yīng)設(shè)有顯示裝置。單片機(jī)最常用的顯示裝置是LED顯示器〔圖4-2〕。在顯示方面,我們選用了動(dòng)態(tài)顯示。靜態(tài)顯示雖然亮度較高,接口編程容易,但是每位的段碼線分別與一個(gè)8位的鎖存器輸出相連。但是占用的I/O口線比擬多,因此在顯示位數(shù)較多的時(shí)候,一般都采用動(dòng)態(tài)顯示方式。為了簡(jiǎn)化硬件,通常將所有位的段碼線相應(yīng)段并聯(lián)在一起,由一個(gè)8位I/O口控制,在同一時(shí)刻,只讓一位選通,如此循環(huán),就可以使各位顯示出將要顯示的字符。LED數(shù)碼有共陰和共陽兩種,把這些LED發(fā)光二極管的正極接到一塊作為一個(gè)引腳,就叫共陽的,陰極接到一塊就叫共陰的,那么應(yīng)用時(shí)這個(gè)腳就分別的接VCC和GND。再把多個(gè)這樣的8字裝在一起就成了多位的數(shù)碼管了。在本設(shè)計(jì)仿真中使用的是6個(gè)一組的共陰極8段數(shù)碼管。找公共共陰和公共共陽的方法:首先我們找個(gè)3到5伏的電源和1個(gè)電阻,VCC串接電阻后和GND接在任意2個(gè)腳上,組合有很多,找到一個(gè)LED會(huì)發(fā)光的,然后用GND不動(dòng),VCC逐個(gè)碰剩下的腳,如果有多個(gè)LED,那它就是共陰了。共陰極數(shù)碼管,陰極接地,當(dāng)某個(gè)發(fā)光二極管的陽極為高電平時(shí),發(fā)光二極管點(diǎn)亮,對(duì)應(yīng)的段就顯示圖4-2顯示電路4.3復(fù)位電路設(shè)計(jì)進(jìn)行復(fù)位工作是單片機(jī)進(jìn)入工作的狀態(tài)的初始化操作,是CPU和系統(tǒng)中的其它部件都處于一個(gè)確定初始狀態(tài),并從這個(gè)狀態(tài)開始工作。另外當(dāng)程序運(yùn)行錯(cuò)誤或由于錯(cuò)誤操作而是單片機(jī)進(jìn)入鎖死狀態(tài)的時(shí)侯。也可以通過復(fù)位操作進(jìn)行的從新啟動(dòng)的操作。等到復(fù)位以后,單片機(jī)的計(jì)算機(jī)初始值被初始化。圖4-3復(fù)位電路4.4時(shí)鐘電路對(duì)于每個(gè)系統(tǒng)工程的時(shí)鐘電路,都是用于單片機(jī)工作所需要的時(shí)鐘信號(hào),單片機(jī)只有在時(shí)鐘信號(hào)的控制下,其各部件之間才能協(xié)調(diào)一致工作,時(shí)鐘信號(hào)控制著計(jì)算機(jī)的工作節(jié)奏。在單片機(jī)的TXAL1、TXAL12、之間跨接晶體振蕩器和微調(diào)電容,可以喝單片機(jī)內(nèi)部的振蕩器構(gòu)成一個(gè)穩(wěn)定的自激振蕩器,這就是單片機(jī)的時(shí)鐘電路。這種方式稱之為內(nèi)部的時(shí)鐘源方式。電容C4和C5的主要作用是幫助振蕩器起振,且振蕩器大小對(duì)振蕩頻率有微調(diào)作用,在80C51系列中電容的大小20微法。另外,振蕩器的頻率只要由石英晶振的頻率來決定本次設(shè)計(jì)選用12MHz。圖4-4時(shí)鐘電路4.5溫度檢測(cè)電路設(shè)計(jì)DS18B20最大的特點(diǎn)是單總線數(shù)據(jù)傳輸方式,DS18B20的數(shù)據(jù)I/O均由同一條線來完成。DS18B20的電源供電方式有2種:外部供電方式和寄生電源方式。工作于寄生電源方式時(shí),VDD和GND均接地,他在需要遠(yuǎn)程溫度探測(cè)和空間受限的場(chǎng)合特別有用,原理是當(dāng)1Wire總線的信號(hào)線DQ為高電平時(shí),竊取信號(hào)能量給DS18B20供電,同時(shí)一局部能量給內(nèi)部電容充22電,當(dāng)DQ為低電平時(shí)釋放能量為DS18B20供電。但寄生電源方式需要強(qiáng)上拉電路,軟件控制變得復(fù)雜(特別是在完成溫度轉(zhuǎn)換和拷貝數(shù)據(jù)〔E2PROM時(shí)),同時(shí)芯片的性能也有所降低。因此,在條件允許的場(chǎng)合,盡量采用外供電方式。無論是內(nèi)部寄生電源還是外部供電,I/O口線要接5KΩ左右的上拉電。在這里采用前者方式供電。DS18B20與芯片連接電路如圖4-5-1所示:?jiǎn)螁纹瑱C(jī)AT89S52DS18B20R圖4-5-1DS18B20與單片機(jī)的連接外部電源供電方式是DS18B20最正確的工作方式,工作穩(wěn)定可靠,抗干擾能力強(qiáng),而且電路也比擬簡(jiǎn)單,可以開發(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ī)〕通信是需要串行通信,而AT89S52有兩個(gè)串行端口,所以可以不用軟件來模擬實(shí)現(xiàn)。經(jīng)過單線接口訪問DC18B20必須遵循如下協(xié)議:初始化、ROM操作命令、存儲(chǔ)器操作命令和控制操作。要使傳感器工作,一切處理均嚴(yán)格按照時(shí)序。主機(jī)發(fā)送〔Tx〕--復(fù)位脈沖〔最短為480μs的低電平信號(hào)〕。接著主機(jī)便釋放此線并進(jìn)入接收方式〔Rx〕??偩€經(jīng)過4.7K的上拉電阻被拉至高電平狀態(tài)。在檢測(cè)到I/O引腳上的上升沿之后,DS18B20等待15~60μs,并且接23著發(fā)送脈沖〔60~240μs的低電平信號(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ù)期,在各寫周期之間必須有最短為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),I/O引腳經(jīng)主機(jī)必須停止把引腳驅(qū)動(dòng)拉至低電平。在時(shí)間片結(jié)束時(shí),過外部的上_鱯__9L_€%拉電阻拉回高電平,所有讀時(shí)間片的最短持續(xù)期為60微秒,包括兩個(gè)讀周期間至少1μs的恢復(fù)時(shí)間。一旦主機(jī)檢測(cè)到DS18B20的存在,它便可以發(fā)送一個(gè)器件ROM操作命令。所有ROM操作命令均為8位長。所有的串行通訊,讀寫每一個(gè)bit位數(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ī)檢測(cè)到應(yīng)答脈沖后,就可以發(fā)出ROM命令。這些命令與各個(gè)從機(jī)設(shè)備的唯一64位ROM代碼相關(guān)。在主機(jī)發(fā)出ROM命令,以訪問某個(gè)指定的DS18B20,接著就可以發(fā)出DS18B20支持的某個(gè)功能命令。這些命令允許主機(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ù)位。(4)然后就可以從剛剛的二維數(shù)組匹配在線的溫度傳感器,隨后發(fā)溫度讀取命令就可以獲得對(duì)應(yīng)的度值了。在主機(jī)初始化過程,主機(jī)通過拉低單總線至少480us,來產(chǎn)生復(fù)位脈沖。接著,主機(jī)釋放總線,并進(jìn)入接收模式。當(dāng)總線被釋放后,上拉電阻將單總線拉高。在單總線器件檢測(cè)到上升沿后,延時(shí)15~60us,接著通過拉低總線60~240us,以產(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時(shí)序,而是把兩者結(jié)合起來,當(dāng)主機(jī)拉低總線后在15us之內(nèi)將要寫的位c給DO:如果c是高電平滿足15us內(nèi)釋放總線的要求,如果c是低電平,那么DO=c這條語句仍然是把總線拉在低電平,最后都通過延時(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ù)60μs,包括兩個(gè)寫周期至少1μs的恢復(fù)時(shí)間。I/O線電平變低后,DS18B20在一個(gè)15μs到60μs的窗口內(nèi)對(duì)I/O線采樣。如果線上事高電平,就是寫1,如果是低電平,就是寫0。主機(jī)要生成一個(gè)寫時(shí)間隙,必須把數(shù)據(jù)線拉到低電平然后釋放,在寫時(shí)間隙開始后的15μs內(nèi)允許數(shù)據(jù)線拉到高電平。主機(jī)要生成一個(gè)寫0時(shí)間隙,必須把數(shù)據(jù)線拉到低電平并保存60μs。5.軟件設(shè)計(jì)5.1概述整個(gè)系統(tǒng)的功能是由硬件電路配合軟件來實(shí)現(xiàn)的,當(dāng)硬件根本定型后,軟件的功能也就根本定下來了。從軟件的功能不同可分為兩大類:一是監(jiān)控軟件〔主程序〕,它是整個(gè)控制系統(tǒng)的核心,專門用來協(xié)調(diào)各執(zhí)行模塊和操作者的關(guān)系。二是執(zhí)行軟件〔子程序〕,它是用來完成各種實(shí)質(zhì)性的功能如測(cè)量、計(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í)性的要求,合理地安排監(jiān)控軟件和各執(zhí)行模塊之間地調(diào)度關(guān)系。5.2主程序模塊主程序模塊主程序需要調(diào)用4個(gè)子程序,分別為數(shù)碼管顯示程序,溫度測(cè)試及處理子程序,報(bào)警子程序,中斷設(shè)定子程序。各模塊程序功能如下:●數(shù)碼管顯示程序:向數(shù)碼的顯示送數(shù),控制系統(tǒng)的顯示局部?!駵囟葴y(cè)試及處理程序:對(duì)溫度芯片送過來的數(shù)據(jù)進(jìn)行處理,進(jìn)行判斷和顯示。●報(bào)警子程序:進(jìn)行溫度上下限判斷及報(bào)警輸出。●中斷設(shè)定程序:實(shí)現(xiàn)設(shè)定上下限報(bào)警功能。主程序流程見圖5-2:圖5-3-1DS18B20初始化流程圖圖5-2主程序流程圖5.3各模塊流程設(shè)計(jì)5.3.1各模塊流程設(shè)計(jì)1.溫度檢測(cè)流程DS18B20在單片機(jī)控制下分三個(gè)階段:●18B20初始化:初始化流程圖見5-3-1●讀18B20時(shí)序:讀DS18B20流程見圖5-3-2:●寫18B20時(shí)序:寫18B20流程見圖5-3-3;發(fā)出DS18B20復(fù)位命令發(fā)出DS18B20復(fù)位命令發(fā)跳過ROM命令發(fā)出度溫度命令讀取操作,CRC命令9字節(jié)完?CRC效驗(yàn),正確移入溫度暫存器結(jié)束圖5-3-2讀DS18B20流程圖DS18B20寫開始設(shè)置串行位數(shù)為8DS18B20寫開始設(shè)置串行位數(shù)為8DQ清零,將DQ總線電平拉低延時(shí)15us寫入一位數(shù)據(jù)延時(shí)15usDQ置1設(shè)置為恢復(fù)狀態(tài)8為數(shù)據(jù)送完否DS18B20寫入結(jié)束圖5-3-3寫DS18B20流程圖5.4中斷設(shè)定流程中斷模塊采用了外中斷和內(nèi)中斷套用方法。當(dāng)設(shè)計(jì)需要實(shí)現(xiàn)上下限報(bào)警時(shí),利用INT0口進(jìn)行中斷,set鍵進(jìn)行上下限報(bào)警溫度設(shè)定,進(jìn)入溫度設(shè)定狀態(tài)后〔按一下溫度設(shè)定鍵〕,首先會(huì)提示顯示“UP〞字母,表示要用戶設(shè)定高溫報(bào)警溫度,按S3鍵,表示本位數(shù)字+1,按S4表示移向下一位,如果4位高溫設(shè)定完畢,那么顯示“DO〞,表示要用戶設(shè)定低溫報(bào)警溫度。4位低溫設(shè)定完畢,如果用戶設(shè)置的高溫比設(shè)定的低溫高的話那么顯示“ERRO〞表示錯(cuò)誤提示,同時(shí)會(huì)有蜂鳴器及時(shí)報(bào)警提示,然后自動(dòng)顯示“UP〞,讓用戶重新進(jìn)行溫度設(shè)定。中斷設(shè)定子程序流程圖見下圖關(guān)于外部中斷開內(nèi)部中斷關(guān)于外部中斷開內(nèi)部中斷顯示UPSBS1跳到下一位四位設(shè)定完顯示DOS3S4跳到下一位四位設(shè)定完設(shè)置溫度比擬高溫?低溫?開外部中斷關(guān)內(nèi)部中斷顯示LED圖5-4中斷設(shè)定子程序流程圖自我評(píng)價(jià)本設(shè)計(jì)利用AT89S52芯片控制溫度傳感器DS18B20,再輔之以局部外圍電路實(shí)現(xiàn)對(duì)環(huán)境溫度的測(cè)控,性能穩(wěn)定,精度教高,而且擴(kuò)展性能很強(qiáng)大。由于DS18B20支持單總線協(xié)議,我們可以將多個(gè)DS18B20可以并聯(lián)到3根或2根線上,CPU只需一根端口線就能與諸多DS18B20通信,占用較少的微處理器的端口就可以實(shí)現(xiàn)多點(diǎn)測(cè)溫監(jiān)控系統(tǒng)。可以參加1302時(shí)鐘芯片實(shí)現(xiàn)對(duì)時(shí)間進(jìn)行顯示,加之AT24C16存儲(chǔ)芯片來實(shí)現(xiàn)對(duì)時(shí)間和溫度數(shù)據(jù)的記錄,利用MAX232芯片和計(jì)算機(jī)實(shí)現(xiàn)串口通訊,這樣就可以方便的統(tǒng)計(jì)出特定時(shí)間內(nèi)的需要的時(shí)間和溫度數(shù)據(jù)。由于DS18B20的測(cè)量精度只有±0.5度,往往很多場(chǎng)合需要更加精確的溫度,在所測(cè)溫度精度不變的根底上必須對(duì)數(shù)據(jù)進(jìn)行校正。由于DS18B20是基于帶隙結(jié)構(gòu)的數(shù)字式溫度傳感器,PN結(jié)增量電壓正比于IC絕對(duì)溫度〔PTAT〕,它的測(cè)溫精度較高,但存在著一定的誤差。不過,其誤差在時(shí)間和外部環(huán)境變化的條件下,保持相當(dāng)高的穩(wěn)定性。針對(duì)這一特性,基于線性插補(bǔ)的數(shù)學(xué)思想,利用DSP技術(shù),對(duì)其進(jìn)行誤差校正補(bǔ)償.這種誤差校正的補(bǔ)償方法,不需增加硬件電路,計(jì)算方法簡(jiǎn)單,軟件費(fèi)用也很小,既提高了測(cè)量精度。又不需增加本錢。它充分利用監(jiān)控計(jì)算機(jī)的處理能力,在監(jiān)控計(jì)算機(jī)上用線性插補(bǔ)的數(shù)學(xué)方法對(duì)其進(jìn)行誤差校正補(bǔ)償,能輕易地將其提高其精度。經(jīng)過將近一周的單片機(jī)課程設(shè)計(jì),終于完成了我的數(shù)字溫度計(jì)的設(shè)計(jì),雖然沒有完全到達(dá)設(shè)計(jì)要求,但從心底里說,還是快樂的,從這次的課程設(shè)計(jì)中,我真真正正的意識(shí)到,在以后的學(xué)習(xí)中,要理論聯(lián)系實(shí)際,把我們所學(xué)的理論知識(shí)用到實(shí)際當(dāng)中,學(xué)習(xí)單機(jī)片機(jī)更是如此,程序只有在經(jīng)常的寫與讀的過程中才能提高,這就是我在這次課程設(shè)計(jì)中的最大收獲。致謝在本畢業(yè)設(shè)計(jì)的設(shè)計(jì)和制作過程中,感謝老師給了我很大的幫助,同時(shí)也離不開很多的同學(xué)熱心幫助,是他們?cè)谖矣龅诫y題的時(shí)候給了我啟發(fā)。通過本次畢業(yè)設(shè)計(jì),我在專業(yè)知識(shí)、專業(yè)技能和解決問題方法方面得到很大的提高。更深入了解并掌握了傳感器的根本理論知識(shí),并在單片機(jī)實(shí)際電路開發(fā)和常用編程設(shè)計(jì)思路掌握方面有了一定程度的掌握,盡管本次設(shè)計(jì)還不是很完善,但這為我以后的設(shè)計(jì)之路積累了珍貴的經(jīng)驗(yàn)。參考文獻(xiàn)[1]孫育才.單片微型計(jì)算機(jī)及其應(yīng)用.東南大學(xué)出版社,2004[2]沈德金.陳粵初.單片機(jī)接口電路與應(yīng)用程序?qū)嵗?北京.北京航天航空大學(xué)出版社,1990.[3]潘新民.王燕芳.微型計(jì)算機(jī)控制技術(shù).電子工業(yè)出版社,2003[4]李朝青.單片機(jī)原理及接口技術(shù)〔簡(jiǎn)明修訂版〕杭州:北京航空航天大學(xué)出版社,1998[5]李廣弟.單片機(jī)根底〔M〕.北京:北京航空航天大學(xué)出版社,1994[6]閻石.數(shù)字電子技術(shù)根底〔第三版〕.北京:高等教育出版社,1989[7]廖常初.現(xiàn)場(chǎng)總線概述〔J〕.電工技術(shù),1999.[8]王勇.葉敦范.基于AT89S51的便攜式實(shí)時(shí)溫度檢測(cè)儀,2006附錄附錄一:程序#include"reg51.h"#include"intrins.h"http://_nop_();延時(shí)函數(shù)用#defineDisdataP2//段碼輸出口#definediscanP1//掃描口#defineucharunsignedchar#defineuintunsignedint#defineREADROM_18b20_CM0x33#defineMATCHROM_18b20_CM0x55#defineSKIPROM_18b20_CM0xCC#defineSEARCHROM_18b20_CM0xF0#defineALARMSEARCH_18b20_CM0xEC#defineCONVERTT_CM0x44#defineRSCRATCHPAD_CM0xBE#defineWSCRATCHPAD_CM0x4E#defineCSCRATCHPAD_CM0x48#defineRECALLE2_CM0xB8#defineRPOWERSUNNLY_CM0xB4sbitDQ=P3^2;//溫度輸入口sbitDIN=P2^7;//LED小數(shù)點(diǎn)控制sbitLED1=P1^7;sbitLED2=P1^6;sbitLED3=P1^5;sbitLED4=P1^4;uinth;uinttemp;//////**************溫度小數(shù)局部用查表法***********//ucharcodeditab[16]={0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09};//ucharcodedis_7[12]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0xbf};//共陽LED段碼表"0""1""2""3""4""5""6""7""8""9""不亮""-"ucharcodescan_con[4]={0x7f,0xbf,0xdf,0xef};//列掃描控制字uchardatatemp_data[2]={0x00,0x00};//讀出溫度暫放uchardatadisplay[5]={0x00,0x00,0x00,0x00,0x00};//顯示單元數(shù)據(jù),共4個(gè)數(shù)據(jù)和一個(gè)運(yùn)算暫用///////*****************11us延時(shí)函數(shù)*************************///voiddelay(uintt){for(;t>0;t--);}///****************顯示函數(shù)******************************/scan(){ chark; LED1=1; LED2=0; LED3=0; LED4=0; Disdata=dis_7[display[3]];//數(shù)據(jù)顯示 delay(300); LED1=0; LED2=1; LED3=0; LED4=0; Disdata=dis_7[display[2]];//數(shù)據(jù)顯示 delay(300); LED1=0; LED2=0; LED3=1; LED4=0; Disdata=dis_7[display[1]]; //數(shù)據(jù)顯示 delay(300); LED1=0; LED2=0; LED3=1; LED4=0; Disdata=0x7f; //數(shù)據(jù)顯示 delay(300); LED1=0; LED2=0; LED3=0; LED4=1; Disdata=dis_7[display[0]];//數(shù)據(jù)顯示 delay(300);}/////****************DS18B20復(fù)位函數(shù)************************/ow_reset(void){charpresence=1;while(presence){while(presence){DQ=1;_nop_();_nop_();//從高拉倒低DQ=0;delay(50);//550usDQ=1;delay(6);//66uspresence=DQ;//presence=0復(fù)位成功,繼續(xù)下一步}delay(45);//延時(shí)500uspresence=~DQ;}DQ=1;//拉高電平}/////****************DS18B20寫命令函數(shù)************************///向1-WIRE總線上寫1個(gè)字節(jié)voidwrite_byte(ucharval){uchari;for(i=8;i>0;i--){DQ=1;_nop_();_nop_();//從高拉倒低DQ=0;_nop_();_nop_();_nop_();_nop_();//5usDQ=val&0x01;//最低位移出delay(6);//66usval=val/2;//右移1位}DQ=1;delay(1);}///****************DS18B20讀1字節(jié)函數(shù)************************///從總線上取1個(gè)字節(jié)ucharread_byte(void){uchari;ucharvalue=0;for(i=8;i>0;i--){DQ=1;_nop_();_nop_();value>>=1
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 林地承包合同范本
- 2025年外研版八年級(jí)地理下冊(cè)月考試卷含答案
- 2025年中圖版七年級(jí)生物上冊(cè)階段測(cè)試試卷含答案
- 2025年牛津上海版七年級(jí)生物上冊(cè)月考試卷含答案
- 2025年統(tǒng)編版選擇性必修3化學(xué)上冊(cè)月考試卷含答案
- 2025年湘教版九年級(jí)歷史上冊(cè)階段測(cè)試試卷含答案
- 2025年華東師大版拓展型課程化學(xué)下冊(cè)階段測(cè)試試卷含答案
- 2025年木材加工企業(yè)安全生產(chǎn)責(zé)任保險(xiǎn)合同范本4篇
- 二零二五版明星代言合同違約責(zé)任及處理協(xié)議3篇
- 二零二五年度店面升級(jí)改造與智能安防系統(tǒng)集成合同4篇
- 霧化吸入療法合理用藥專家共識(shí)(2024版)解讀
- 2021年全國高考物理真題試卷及解析(全國已卷)
- 拆遷評(píng)估機(jī)構(gòu)選定方案
- 趣味知識(shí)問答100道
- 鋼管豎向承載力表
- 2024年新北師大版八年級(jí)上冊(cè)物理全冊(cè)教學(xué)課件(新版教材)
- 人教版數(shù)學(xué)四年級(jí)下冊(cè)核心素養(yǎng)目標(biāo)全冊(cè)教學(xué)設(shè)計(jì)
- JJG 692-2010無創(chuàng)自動(dòng)測(cè)量血壓計(jì)
- 三年級(jí)下冊(cè)口算天天100題(A4打印版)
- 徐州市2023-2024學(xué)年八年級(jí)上學(xué)期期末地理試卷(含答案解析)
- CSSD職業(yè)暴露與防護(hù)
評(píng)論
0/150
提交評(píng)論