基于數(shù)字溫度傳感器的數(shù)字溫度計(jì)_第1頁
基于數(shù)字溫度傳感器的數(shù)字溫度計(jì)_第2頁
基于數(shù)字溫度傳感器的數(shù)字溫度計(jì)_第3頁
基于數(shù)字溫度傳感器的數(shù)字溫度計(jì)_第4頁
基于數(shù)字溫度傳感器的數(shù)字溫度計(jì)_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、黃 河 科 技 學(xué) 院?jiǎn)纹瑱C(jī)應(yīng)用技術(shù)課程設(shè)計(jì)題目:基于數(shù)字溫度傳感器的數(shù)字溫度計(jì)姓 名: 時(shí)鵬 院 (系): 工學(xué)院 專業(yè)班級(jí): 學(xué) 號(hào): 指導(dǎo)教師: 黃河科技學(xué)院課程設(shè)計(jì)任務(wù)書 工 學(xué)院 機(jī)械 系 機(jī)械設(shè)計(jì)制造及其自動(dòng)化 專業(yè) S13 級(jí) 1 班學(xué)號(hào) 1303050025 姓名 時(shí)鵬 指導(dǎo)教師 朱煜鈺 題目: 基于數(shù)字溫度傳感器的數(shù)字溫度計(jì)設(shè)計(jì) 課程: 單片機(jī)應(yīng)用技術(shù)課程設(shè)計(jì) 課程設(shè)計(jì)時(shí)間 2014年 10月27 日 至2014年11 月 10 日 共 2 周課程設(shè)計(jì)工作內(nèi)容與基本要求(設(shè)計(jì)要求、設(shè)計(jì)任務(wù)、工作計(jì)劃、所需相關(guān)資料)(紙張不夠可加頁)課程設(shè)計(jì)任務(wù)書及摘要一、課程設(shè)計(jì)題目:基于數(shù)

2、字溫度傳感器的數(shù)字溫度計(jì)二、課程設(shè)計(jì)要求利用數(shù)字溫度傳感器DS18B20與單片機(jī)結(jié)合來測(cè)量溫度。利用數(shù)字溫度傳感器DS18B20測(cè)量溫度信號(hào),計(jì)算后在LED數(shù)碼管上顯示相應(yīng)的溫度值。其溫度測(cè)量范圍為-55125,精確到0.5。數(shù)字溫度計(jì)所測(cè)量的溫度采用數(shù)字顯示,控制器使用單片機(jī)AT89C51,溫度傳感器使用DS18B20,用3位共陽極LED數(shù)碼管以串口傳送數(shù)據(jù),實(shí)現(xiàn)溫度顯示。3、 課程設(shè)計(jì)摘要DS18B20是一種可組網(wǎng)的高精度數(shù)字式溫度傳感器,由于其具有單總線的獨(dú)特優(yōu)點(diǎn),可以使用戶輕松地組建起傳感器網(wǎng)絡(luò),并可使多點(diǎn)溫度測(cè)量電路變得簡(jiǎn)單、可靠。本文結(jié)合實(shí)際使用經(jīng)驗(yàn),介紹了DS18B20數(shù)字溫度傳

3、感器在單片機(jī)下的硬件連接及軟件編程,并給出了軟件流程圖。該系統(tǒng)由上位機(jī)和下位機(jī)兩大部分組成。下位機(jī)實(shí)現(xiàn)溫度的檢測(cè)并提供標(biāo)準(zhǔn)RS232通信接口,芯片使用了ATMEL公司的AT89C51單片機(jī)和DALLAS公司的DS18B20數(shù)字溫度傳感器。上位機(jī)部分使用了通用PC。該系統(tǒng)可應(yīng)用于倉(cāng)庫(kù)測(cè)溫、樓宇空調(diào)控制和生產(chǎn)過程監(jiān)控等領(lǐng)域。四、關(guān)鍵字:?jiǎn)纹瑱C(jī) 溫度測(cè)量 DS18B20 數(shù)字溫度傳感器 AT89C511目錄緒論.31. 原理介紹.41.1總體設(shè)計(jì)方案.41.2主控制部分.41.3總體設(shè)計(jì)框圖.42. 硬件電路.52.1 硬件電路預(yù)覽.52.2 DS18B20介紹.52.3 AT89C51介紹.82.

4、4 數(shù)碼管介紹.103. 程序設(shè)計(jì).113.1 程序流程圖.113.2 程序清單.124. 仿真效果圖.165. 結(jié)論與總結(jié).18緒論隨著人們生活水平的不斷提高,單片機(jī)控制無疑是人們追求的目標(biāo)之一,它所給人帶來的方便一是不可否定的,其中數(shù)字溫度計(jì)就是一個(gè)典型的例子,但人們對(duì)它的要求越來越高,腰圍現(xiàn)代人工作、科研、生活提供更好更方便的設(shè)施就需要從單片機(jī)技術(shù)入手,一切向著數(shù)字化控制,智能化控制方向發(fā)展。隨著時(shí)代的進(jìn)步和發(fā)展,單片機(jī)技術(shù)已經(jīng)普及到我們生活,工作,科研等各個(gè)領(lǐng)域,已經(jīng)成為一種比較成熟的技術(shù),在工、農(nóng)業(yè)生產(chǎn)和日常生活中,對(duì)溫度的測(cè)量及控制占據(jù)著極其重要的地位。首先了解一下多點(diǎn)溫度檢測(cè)系統(tǒng)

5、在各個(gè)方面的應(yīng)用領(lǐng)域:消防電氣的非破壞性溫度檢測(cè),電力、電訊設(shè)備之過熱故障預(yù)知檢測(cè),空調(diào)系統(tǒng)的溫度檢測(cè),各類運(yùn)輸工具之組件的過熱檢測(cè),保全與監(jiān)視系統(tǒng)之應(yīng)用,醫(yī)療與健診的溫度測(cè)試,化工、機(jī)械等設(shè)備溫度過熱檢測(cè)。由此可見,溫度檢測(cè)系統(tǒng)應(yīng)用十分廣闊。本設(shè)計(jì)所介紹的數(shù)字溫度計(jì)與傳統(tǒng)的溫度計(jì)相比,具有讀數(shù)方便,測(cè)溫范圍廣,測(cè)溫準(zhǔn)確,其輸出溫度采用數(shù)字顯示,該設(shè)計(jì)控制器使用單片機(jī)AT89C51,測(cè)溫傳感器使用DS18B20,用3位共陽極LED數(shù)碼管以串口傳送數(shù)據(jù),實(shí)現(xiàn)溫度顯示,能準(zhǔn)確達(dá)到以上要求。本溫度計(jì)屬于多功能溫度計(jì),可以設(shè)置上下報(bào)警溫度,當(dāng)溫度不在設(shè)置范圍內(nèi)報(bào)警。1.原理介紹1.1總體設(shè)計(jì)方案總體設(shè)

6、計(jì)方案采用AT89C51單片機(jī)作控制器,溫度傳感器選用DS18B20來設(shè)計(jì)數(shù)字溫度計(jì),系統(tǒng)由3個(gè)模塊組成:主控制器、測(cè)溫電路及顯示電路。主控制器由單片機(jī)AT89C51實(shí)現(xiàn),測(cè)溫電路由溫度傳感器DS18B20實(shí)現(xiàn),顯示電路由4位LED數(shù)碼管直讀顯示。本設(shè)計(jì)所介紹的數(shù)字溫度計(jì)與傳統(tǒng)的溫度計(jì)相比,具有讀數(shù)方便,測(cè)溫范圍廣,測(cè)溫準(zhǔn)確其輸出溫度采用數(shù)字顯示,主要用于對(duì)測(cè)溫比較準(zhǔn)確的場(chǎng)所,或科研實(shí)驗(yàn)室使用,該設(shè)計(jì)控制器使用單片機(jī)AT89C51,測(cè)溫傳感器使用DS18B20,用4位共陽極LED數(shù)碼管以串口傳送數(shù)據(jù),實(shí)現(xiàn)溫度顯示,能準(zhǔn)確達(dá)到以上要求。1.2主控制部分本設(shè)計(jì)采用AT89C51八位單片機(jī)實(shí)現(xiàn)。單片

7、機(jī)軟件編程的自由度大,可通過編程實(shí)現(xiàn)各種各樣的算術(shù)算法和邏輯控制。而且體積小,硬件實(shí)現(xiàn)簡(jiǎn)單,安裝方便。既可以單獨(dú)對(duì)多DS18B20控制工作,還可以與PC機(jī)通信.運(yùn)用主從分布式思想,由一臺(tái)上位機(jī)(PC微型計(jì)算機(jī)),下位機(jī)(單片機(jī))多點(diǎn)溫度數(shù)據(jù)采集,組成兩級(jí)分布式多點(diǎn)溫度測(cè)量的巡回檢測(cè)系統(tǒng),實(shí)現(xiàn)遠(yuǎn)程控制。另外AT89C51在工業(yè)控制上也有著廣泛的應(yīng)用,編程技術(shù)及外圍功能電路的配合使用都很成熟。 系統(tǒng)采用針對(duì)傳統(tǒng)溫度測(cè)溫系統(tǒng)測(cè)溫點(diǎn)少,系統(tǒng)兼容性及擴(kuò)展性較差的特點(diǎn),運(yùn)用分布式通訊的思想。設(shè)計(jì)一種可以用于大規(guī)模多點(diǎn)溫度測(cè)量的巡回檢測(cè)系統(tǒng)。該系統(tǒng)采用的是RS-232串行通訊的標(biāo)準(zhǔn),通過下位機(jī)(單

8、片機(jī))進(jìn)行現(xiàn)場(chǎng)的溫度采集,溫度數(shù)據(jù)既可以由下位機(jī)模塊實(shí)時(shí)顯示,也可以送回上位機(jī)進(jìn)行數(shù)據(jù)處理,具有巡檢速度快,擴(kuò)展性好,成本低的特點(diǎn)。1.3總體設(shè)計(jì)框圖控制器采用單片機(jī)AT89C51,溫度傳感器采用DS18B20,用4位LED數(shù)碼管顯示溫度??傮w設(shè)計(jì)框圖如圖1-1所示。圖1.1 總設(shè)計(jì)框圖2.硬件電路2.1硬件電路預(yù)覽圖2.1 總電路2.2 DS18B20介紹DS18B20是由美國(guó)DALLAS半導(dǎo)體公司研制的一款數(shù)字溫度傳感器,與一般的熱敏電阻相比,它能夠直接檢測(cè)出被測(cè)溫度并且可根據(jù)實(shí)際的要求通過簡(jiǎn)單的編程實(shí)現(xiàn)912位的數(shù)字讀取方式。DS18B20采用獨(dú)特的單總線接口方式,只需一根線與單片機(jī)直接

9、連接便可實(shí)現(xiàn)數(shù)據(jù)的讀寫操作,簡(jiǎn)化了分布式溫度傳感網(wǎng)絡(luò)的應(yīng)用。DS18B20數(shù)字溫度傳感器的優(yōu)點(diǎn)是結(jié)構(gòu)簡(jiǎn)單,耐磨耐碰,體積較小,使用方便,與傳統(tǒng)溫度傳感器相比測(cè)量精度較高,其抗干擾能力強(qiáng),封裝形式也有很多種,可以根據(jù)不同的應(yīng)用場(chǎng)合而選擇不同形式的封裝。因此,本系統(tǒng)選擇DS18B20作為系統(tǒng)溫度傳感器,可以簡(jiǎn)化系統(tǒng)結(jié)構(gòu),使測(cè)量方便、可靠,同時(shí)DS18B20的價(jià)格也比較便宜。DS18B20有以下優(yōu)點(diǎn):(1)單總線接口方式:DS18B20與單片機(jī)聯(lián)接只需一根數(shù)據(jù)總線便能完成數(shù)據(jù)的全雙工通信。(2)在使用時(shí)不需要外圍元器件。(3)DS18B20工作電壓范圍寬,可工作于3.0 V5.5V,可以由數(shù)據(jù)線直接

10、供電,不需要外部電源。(4)測(cè)溫范圍為:-55+125,可以滿足一般的生產(chǎn)生活需要,測(cè)溫分辨率0.5(5)可編程的分辨率為912位,對(duì)應(yīng)的可分辨溫度分別為0.5、0.25、0.125、0.0625,可實(shí)現(xiàn)高精度測(cè)溫。(6)DS18B20支持多傳感器組成測(cè)溫網(wǎng)功能,可以由單片機(jī)引出的一條總線上并聯(lián)多個(gè)溫度傳感器以實(shí)現(xiàn)多點(diǎn)組網(wǎng)測(cè)溫。DS18B20的封裝有很多種,最常見的是TO-92封裝,它的管腳說明如圖所示。其封裝結(jié)構(gòu)共有三個(gè)引腳,分別為電源引腳(VCC),數(shù)據(jù)線引腳(DQ)和接地引腳(GND)。圖2.2 DS18B20的TO-92封裝DS18B20的內(nèi)部結(jié)構(gòu)如圖所示。 圖2.3 DS18B20的

11、內(nèi)部結(jié)構(gòu)圖從圖中我們可以看出,DS18B20數(shù)字溫度傳感器主要由四部分組成:64位ROM只讀存儲(chǔ)器、溫度傳感器、高低溫度觸發(fā)器TH和TL、配置寄存器。DS18B20的管腳排列如圖2.3所示,其中DQ為數(shù)字信號(hào)I/O口;GND為電源地,需要與單片機(jī)共地;VDD為外接電源輸入端。每個(gè)DS18B20的ROM都有不同64位序列號(hào),其序列號(hào)是出廠前被光刻好的,不可更改,它可以看作是該DS18B20的地址序列碼。64位ROM的排循環(huán)冗余校驗(yàn)碼是CRC=X8X5X41。ROM序列號(hào)的作用是使每一個(gè)DS18B20都各不相同,這樣就可以實(shí)現(xiàn)一根總線上并聯(lián)多個(gè)DS18B20實(shí)現(xiàn)多點(diǎn)組網(wǎng)測(cè)溫的目的。溫度的測(cè)量由DS

12、18B20中的溫度傳感器完成,并將檢測(cè)到的溫度用16位帶符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼讀數(shù)形式由數(shù)據(jù)總線傳出,以0.0625/LSB形式表達(dá),其中S為符號(hào)位。例如125的數(shù)字輸出為07D0H,25.0625的數(shù)字輸出為0191H,25.0625的數(shù)字輸出為FF6FH,55的數(shù)字輸出為FC90H。 高速暫存器是一個(gè)9字節(jié)的隨機(jī)存儲(chǔ)器。開始低位兩個(gè)字節(jié)包含被測(cè)溫度的數(shù)字量信息;第3、4、5字節(jié)分別是TH、TL、配置寄存器的臨時(shí)拷貝,每一次上電復(fù)位時(shí)被重置;第6、7、8字節(jié)未用,默認(rèn)為全邏輯1;第9字節(jié)讀出的是前面所有8個(gè)字節(jié)的CRC碼,可用來保證通信正確。DS18B20在使用中的注意事項(xiàng)。DS18B20雖然

13、具有測(cè)溫電路簡(jiǎn)單、測(cè)溫精度較高、連接方便、占用I/O端口線少等優(yōu)點(diǎn),在實(shí)際應(yīng)用中應(yīng)注意以下幾個(gè)問題:(1)簡(jiǎn)單的硬件電路需要相對(duì)復(fù)雜的軟件進(jìn)行編輯,DS18B20與單片機(jī)間采用串行數(shù)據(jù)傳送,因此,在對(duì)DS18B20進(jìn)行讀取和寫入編程時(shí),必須嚴(yán)格保證讀寫時(shí)序,否則將無法讀取測(cè)溫結(jié)果。(2)在實(shí)際應(yīng)用中,當(dāng)單總線上所掛DS18B20最好不要超過8個(gè),否則,就需要解決單片機(jī)的總線驅(qū)動(dòng)問題。(3)連接DS18B20的總線電路是有長(zhǎng)度限制的。當(dāng)采用普通信號(hào)電纜傳輸數(shù)據(jù),且電纜長(zhǎng)度超過50M時(shí),讀取的測(cè)溫?cái)?shù)據(jù)會(huì)因?yàn)橛型饨绲母蓴_而發(fā)生錯(cuò)誤。而將總線電纜改為雙絞線帶屏蔽電纜時(shí),正常通信距離最遠(yuǎn)可達(dá)150M。因

14、此,在用DS18B20進(jìn)行長(zhǎng)距離測(cè)溫系統(tǒng)設(shè)計(jì)時(shí),需要解決總線分布電容的阻抗匹配問題。(4)在DS18B20測(cè)溫程序設(shè)計(jì)中,向DS18B20發(fā)出溫度轉(zhuǎn)換命令后,程序需要等待DS18B20的返回信號(hào)。實(shí)際應(yīng)用中難免出現(xiàn)某個(gè)DS18B20斷線問題,當(dāng)程序需要讀該DS18B20時(shí),將沒有返回信號(hào),程序?qū)⑦M(jìn)入死循環(huán)。測(cè)溫電纜最好采用帶屏蔽4芯雙絞線,其中一對(duì)線接地線與信號(hào)線,另一組接電源線和地線,屏蔽層在源端單點(diǎn)接地。2.3AT89C51介紹MCS-51單片機(jī)是指由美國(guó)英特爾公司生產(chǎn)的一系列單片機(jī)的總稱,這一系列單片機(jī)包括很多種,如8031、8032、8051、8052、8752等。其中8051是最早研

15、制的且最具典型性的產(chǎn)品,而該系列其他單片機(jī)都是以8051為基礎(chǔ)發(fā)展起來的,與8051的基本結(jié)構(gòu)和軟件特征相似。8051單片機(jī)包含微型計(jì)算機(jī)所必須具備的基本功能部件,各部件相互獨(dú)立地集成在同一塊芯片上。8051基本功能特性如下:(1)8位CPU;(2)四個(gè)8位并行I/O端口;(3)4KB程序存儲(chǔ)器(ROM),外部可擴(kuò)充至64KB;(4)128B數(shù)據(jù)存儲(chǔ)器(RAM),外部可擴(kuò)充至64KB;(5)兩個(gè)16位定時(shí)/計(jì)數(shù)器;(6)5個(gè)中斷源;(7)全雙工的串行通信口;(8)具有布爾運(yùn)算能力;標(biāo)準(zhǔn)的8051單片機(jī)有幾種不同的封裝形式。最常見,也是最廉價(jià)的是PDIP40封裝的塑料雙列直插40引腳8051單片

16、機(jī),其引腳排列如圖所示。圖2.4單片機(jī)的管腳排列圖40個(gè)引腳功能如下:(1)主電源引腳VSS和VCC。VSS:地線。VCC:5V電源。(2)外界晶振引腳XTAL1和XTAL2。XTAL1:外接晶體的引線端。當(dāng)使用芯片內(nèi)部時(shí)鐘時(shí),此端用于外接石英晶體和微調(diào)電容;當(dāng)使用外部時(shí)鐘時(shí),對(duì)于HMOS單片機(jī),此引腳接地;對(duì)于CHMOS單片機(jī),此引腳作為外部振蕩信號(hào)的輸入端。XTAL2:外接晶體引線端。當(dāng)使用芯片內(nèi)部時(shí)鐘時(shí),此端用于外接石英晶體和微調(diào)電容;當(dāng)使用外部時(shí)鐘時(shí),對(duì)于HMOS單片機(jī),此引腳接外部振蕩源;對(duì)于CHMOS單片機(jī),此引腳懸空不接。(3)控制或與其他電源復(fù)用引腳RST,ALE/,和。RST

17、:復(fù)位信號(hào)。當(dāng)輸入的復(fù)位信號(hào)延續(xù)2個(gè)機(jī)器周期以上高電平即為有效,用以完成單片機(jī)的復(fù)位初始化操作。在VCC發(fā)生故障、降低到低電平規(guī)定值掉電期間,此引腳可接上備用電源VPD,由VPD向內(nèi)部RAM供電,以保持內(nèi)部RAM中的數(shù)據(jù)。ALE/:地址鎖存控制信號(hào)。在系統(tǒng)擴(kuò)展時(shí),ALE用于控制把P0口輸出的低8位地址鎖存器鎖存起來,以實(shí)現(xiàn)低位地址和數(shù)據(jù)的隔離。此外由于ALE是以晶振六分之一的固定頻率輸出的正脈沖,因此可作為外部時(shí)鐘或外部定時(shí)脈沖使用。:外部程序存儲(chǔ)器讀選通信號(hào)。在讀外部ROM時(shí)有效(低電平),以實(shí)現(xiàn)外部ROM單元的讀操作。:訪問程序存儲(chǔ)控制信號(hào)。當(dāng)信號(hào)為低電平時(shí),對(duì)ROM的讀操作先低昂在外部程

18、序存儲(chǔ)器;而當(dāng)信號(hào)為高電平時(shí),則對(duì)ROM的讀操作是從內(nèi)部程序存儲(chǔ)器開始,并可延至外部程序存儲(chǔ)器。(4)輸入/輸出引腳,P0口P3口。P0口(P0.0-P0.7):8位雙向并行I/O口。擴(kuò)展片外存儲(chǔ)器或I/O口時(shí),作為低8位地址總線和8位數(shù)據(jù)總線的分時(shí)復(fù)用接口,它為雙向三態(tài)。P0口能以吸收電流的方式驅(qū)動(dòng)8個(gè)LSTTL負(fù)載。P1口(P1.0-P1.7):8位準(zhǔn)雙向并行I/O接口。P1口每一位都可以獨(dú)立設(shè)置成輸入輸出位。P1口能驅(qū)動(dòng)4個(gè)LSTTL負(fù)載。P2口(P2.0-P2.7):8位準(zhǔn)雙向并行I/O口。擴(kuò)展外部數(shù)據(jù)、程序存儲(chǔ)器時(shí),作為高八位地址輸出端口。P2口能驅(qū)動(dòng)4個(gè)LSTTL負(fù)載。P3口(P3

19、.0-P3.7):8位準(zhǔn)雙向并行I/O口。P3口除了作為一般的準(zhǔn)雙向口使用外,每個(gè)引腳還有特殊功能.P3口能驅(qū)動(dòng)4個(gè)LSTTL負(fù)載。2.4數(shù)碼管介紹LED數(shù)碼管(LED Segment Displays)由多個(gè)發(fā)光二極管封裝在一起組成“8”字型的器件,引線已在內(nèi)部連接完成,只需引出它們的各個(gè)筆劃,公共電極。數(shù)碼管實(shí)際上是由七個(gè)發(fā)光管組成8字形構(gòu)成的,加上小數(shù)點(diǎn)就是8個(gè)。這些段分別由字母a,b,c,d,e,f,g,dp來表示。LED數(shù)碼管常用段數(shù)一般為7段有的另加一個(gè)小數(shù)點(diǎn),還有一種是類似于3位“+1”型。位數(shù)有半位,1,2,3,4,5,6,8,10位等等.,led數(shù)碼管根據(jù)LED的接法不同分為

20、共陰和共陽兩類,了解LED的這些特性,對(duì)編程是很重要的,因?yàn)椴煌愋偷臄?shù)碼管,除了它們的硬件電路有差異外,編程方法也是不同的。圖2是共陰和共陽極數(shù)碼管的內(nèi)部電路,它們的發(fā)光原理是一樣的,只是它們的電源極性不同而已。顏色有紅,綠,藍(lán),黃等幾種。led數(shù)碼管廣泛用于儀表,時(shí)鐘,車站,家電等場(chǎng)合。選用時(shí)要注意產(chǎn)品尺寸顏色,功耗,亮度,波長(zhǎng)等。下面將介紹常用LED數(shù)碼管內(nèi)部引腳圖片。圖2.5數(shù)碼管3.程序設(shè)計(jì)3.1 程序流程圖圖3.1主程序流程圖圖3.2 DS18B20程序流程圖3.2 程序清單#include<reg52.h>#include<stdio.h>#define

21、uchar unsigned char#define uint unsigned intsbit ds=P10; /溫度傳感器信號(hào)線uint temp; /定義整形的溫度數(shù)據(jù)float f_temp; /定義浮點(diǎn)型的溫度數(shù)據(jù)bit flag; /正負(fù)溫度標(biāo)志位uchar code table=0xc0,0xf9,0xa4,0xb0, /共陽極數(shù)碼管顯示0-9 0x99,0x92,0x82,0xf8, 0x80,0x90, 0x40,0x79,0x24,0x30, /帶小數(shù)點(diǎn)的0-9 0x19,0x12,0x02,0x78, 0x00,0x10, 0xbf,0xff; /正負(fù)號(hào)void dela

22、y(uint z) /延時(shí)函數(shù),約1msuint x,y;for(x=z;x>0;x-)for(y=110;y>0;y-);void dsreset(void) /DS18B20復(fù)位,初始化函數(shù)uint i;ds=0;i=103;while(i>0)i-;ds=1;i=4;while(i>0)i-;bit tempreadbit(void) /讀一位數(shù)據(jù)函數(shù)uint i;bit dat;ds=0;i+;ds=1;i+;i+;dat=ds;i=8;while(i>0)i-;return(dat);uchar tempread(void)/讀一個(gè)字節(jié)數(shù)據(jù)函數(shù)uchar

23、 i,j,dat;dat=0;for(i=1;i<=8;i+)j=tempreadbit();dat=(j<<7)|(dat>>1);return(dat);void tempwritebyte(uchar dat) /向DS18B20寫一個(gè)字節(jié)數(shù)據(jù)函數(shù)uint i;uchar j;bit testb;for(j=1;j<=8;j+)testb=dat&0x01;dat=dat>>1;if(testb)ds=0;i+;i+;ds=1;i=8;while(i>0)i-;elseds=0;i=8;while(i>0)i-;ds=1

24、;i+;i+;void tempchange(void) /DS18B20開始獲取溫度并轉(zhuǎn)換dsreset();delay(1);tempwritebyte(0xcc); /跳過讀ROM指令tempwritebyte(0x44); /寫溫度轉(zhuǎn)換指令uint get_temp() /讀取寄存器中存儲(chǔ)的溫度數(shù)據(jù)uchar a,b;dsreset();delay(1);tempwritebyte(0xcc);tempwritebyte(0xbe);a=tempread(); /讀低八位b=tempread(); /讀高八位temp=b; temp<<=8; /兩個(gè)字節(jié)組合為一個(gè)字temp

25、=temp|a;if(temp<0x800)flag=0; /判斷正負(fù)溫度else if(temp>=0x800)flag=1;temp=temp+1;f_temp=temp*0.0625; /溫度在寄存器中為12位,分辨率為0.0625°temp=f_temp*10+0.5;/乘以10表示小數(shù)點(diǎn)后取一位,加0.5是四舍五入f_temp=f_temp+0.05;return temp; /temp是整型 void dis_temp(int t) /顯示溫度數(shù)值函數(shù),t傳遞的是整型的溫度值uchar b,s,g;b=t/100; /除100得到商,為溫度的十位s=t%100

26、/10; /100取余除以10,為溫度的各位g=t%100%10; /100取余再用10取余,為溫度的小數(shù)位if(flag=1) /溫度的正負(fù)號(hào)P2=0x01;P0=table20;delay(1);else if(flag=0)P2=0x01;P0=table21;delay(1);P2=0x02; /溫度顯示P0=tableb;delay(1);P2=0x04;P0=tables+10;delay(1);P2=0x08;P0=tableg;delay(1);void init(void) /I/O口初始化P0=0X00;P2=0X00;P1=0X00;void main()/主函數(shù)uchar i

溫馨提示

  • 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. 人人文庫(kù)網(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)論