溫度控制設(shè)計(jì)555_第1頁(yè)
溫度控制設(shè)計(jì)555_第2頁(yè)
溫度控制設(shè)計(jì)555_第3頁(yè)
溫度控制設(shè)計(jì)555_第4頁(yè)
溫度控制設(shè)計(jì)555_第5頁(yè)
已閱讀5頁(yè),還剩17頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、目錄第1章 總體設(shè)計(jì)方案51.1 DS18B20 歷史簡(jiǎn)介51.2 DS18B20性能簡(jiǎn)介51.2.1 DS18B20的性能特點(diǎn)如下:51.2.2 DS18B20封裝51.2.3 DS18B20內(nèi)部結(jié)構(gòu)主要由四部分組成:51.3 DS18B20的工作原理81.3.1 DS18B20工作時(shí)序81.3.2 ROM操作命令91.3.3 DS18B20測(cè)溫原理91.4 DS18B20 測(cè)溫流程11第2章 單片機(jī)接口設(shè)計(jì)122.1 設(shè)計(jì)原則122.2 引腳連接122.2.1晶振電路122.2.2 顯示電路122.2.3 低溫加熱電路122.2.4 高溫降熱電路132.2.5 溫度采集電路142.2.6

2、復(fù)位電路14第3章 系統(tǒng)整體設(shè)計(jì)153.1 系統(tǒng)硬件電路153.2 系統(tǒng)軟件設(shè)計(jì)153.2.1 軟件的選擇153.2.2 具體程序流程15 3.2.3具體程序17結(jié)束語(yǔ).22參考文獻(xiàn)2322 引言 隨著社會(huì)的發(fā)展,科技的進(jìn)步,以及測(cè)溫儀器在各個(gè)領(lǐng)域的應(yīng)用,智能化已是現(xiàn)代溫度控制系統(tǒng)發(fā)展的主流方向。特別是近年來(lái),溫度控制系統(tǒng)已應(yīng)用到人們生活的各個(gè)方面,但溫度控制一直是一個(gè)未開(kāi)發(fā)的領(lǐng)域,卻又是與人們息息相關(guān)的一個(gè)實(shí)際問(wèn)題。針對(duì)這種實(shí)際情況,設(shè)計(jì)一個(gè)溫度控制系統(tǒng),具有廣泛的應(yīng)用前景與實(shí)際意義。 溫度是科學(xué)技術(shù)中最基本的物理量之一,物理、化學(xué)、生物等學(xué)科都離不開(kāi)溫度。在工業(yè)生產(chǎn)和實(shí)驗(yàn)研究中,像電力、化

3、工、石油、冶金、航空航天、機(jī)械制造、糧食存儲(chǔ)、酒類(lèi)生產(chǎn)等領(lǐng)域內(nèi),溫度常常是表征對(duì)象和過(guò)程狀態(tài)的最重要的參數(shù)之一。比如,發(fā)電廠鍋爐的溫度必須控制在一定的范圍之內(nèi);許多化學(xué)反應(yīng)的工藝過(guò)程必須在適當(dāng)?shù)臏囟认虏拍苷_M(jìn)行;煉油過(guò)程中,原油必須在不同的溫度和壓力條件下進(jìn)行分餾才能得到汽油、柴油、煤油等產(chǎn)品。沒(méi)有合適的溫度環(huán)境,許多電子設(shè)備就不能正常工作,糧倉(cāng)的儲(chǔ)糧就會(huì)變質(zhì)霉?fàn)€,酒類(lèi)的品質(zhì)就沒(méi)有保障。因此,各行各業(yè)對(duì)溫度控制的要求都越來(lái)越高。可見(jiàn),溫度的測(cè)量和控制是非常重要的。 單片機(jī)在電子產(chǎn)品中的應(yīng)用已經(jīng)越來(lái)越廣泛,在很多的電子產(chǎn)品中也用到了溫度檢測(cè)和溫度控制。隨著溫度控制器應(yīng)用范圍的日益廣泛和多樣,各

4、種適用于不同場(chǎng)合的智能溫度控制器應(yīng)運(yùn)而生。 本設(shè)計(jì)的內(nèi)容是溫度測(cè)試控制系統(tǒng),控制對(duì)象是溫度。溫度控制在日常生活及工業(yè)領(lǐng)域應(yīng)用相當(dāng)廣泛,比如溫室、水池、發(fā)酵缸、電源等場(chǎng)所的溫度控制。而以往溫度控制是由人工完成的而且不夠重視,其實(shí)在很多場(chǎng)所溫度都需要監(jiān)控以防止發(fā)生意外。 本設(shè)計(jì)是對(duì)溫度進(jìn)行實(shí)時(shí)監(jiān)測(cè)與控制,設(shè)計(jì)的溫度控制系統(tǒng)實(shí)現(xiàn)了基本的溫度控制功能:當(dāng)溫度低于設(shè)定下限溫度時(shí),系統(tǒng)自動(dòng)啟動(dòng)加熱繼電器加溫,使溫度上升。當(dāng)溫度高于設(shè)定上限溫度時(shí),系統(tǒng)自動(dòng)啟動(dòng)風(fēng)扇降溫,使溫度下降。當(dāng)溫度下降到上限溫度以下時(shí),停止降溫。溫度在上下限溫度之間時(shí),執(zhí)行機(jī)構(gòu)不執(zhí)行。數(shù)碼管顯示即時(shí)溫度,精度為正負(fù)0.5攝氏度。第1章

5、 總體設(shè)計(jì)方案 本設(shè)計(jì)采用了DS18B20數(shù)字是溫度傳感器,將采集的溫度信號(hào)直接通過(guò)傳感器轉(zhuǎn)化為數(shù)字信號(hào)傳給單片機(jī)處理。電路結(jié)構(gòu)得到了很大的簡(jiǎn)化,否則使用模擬式溫度傳感器,采集信號(hào)后還需A/D轉(zhuǎn)換器變模擬信號(hào)為數(shù)字信號(hào)才能供單片機(jī)處理。 本設(shè)計(jì)處理流程為:DS18B20將采集的溫度信號(hào)轉(zhuǎn)化為數(shù)字信號(hào)保存在DS18B20的內(nèi)部暫存器中,然后將暫存器中完整的數(shù)字信號(hào)通過(guò)單一數(shù)據(jù)傳遞線傳給單片機(jī)處理。單片機(jī)將接收的信號(hào)與給定的正常溫度范圍進(jìn)行比較,若低于正常范圍則輸出一個(gè)信號(hào)讓加熱繼電器動(dòng)作,若高于正常范圍則輸出一個(gè)信號(hào)給直流電機(jī)進(jìn)行降溫處理。1.1 DS18B20 歷史簡(jiǎn)介溫度的測(cè)量是從金屬(物質(zhì)

6、)的熱脹冷縮開(kāi)始。水銀溫度計(jì)至今仍是各種溫度測(cè)量的計(jì)量標(biāo)準(zhǔn)??墒撬娜秉c(diǎn)是只能近距離觀測(cè),而且水銀有毒,玻璃管易碎。代替水銀的有酒精溫度計(jì)和金屬簧片溫度計(jì),他們雖然沒(méi)有毒性但精度很低。不能滿足工業(yè)要求,在工業(yè)生產(chǎn)和實(shí)驗(yàn)研究中為了配合遠(yuǎn)傳儀表指示,出現(xiàn)了許多不同的溫度檢測(cè)方法,常用的有電阻式、熱電偶式、PN結(jié)型等,原理都是基于溫度的變化而引起其它物理量的變化。隨著大規(guī)模集成電路工藝的提高,出現(xiàn)了多種集成的數(shù)字化溫度傳感器,例如DS18B20數(shù)字式溫度傳感器。1.2 DS18B20性能簡(jiǎn)介1.2.1 DS18B20的性能特點(diǎn)如下: 1)獨(dú)特的單線接口僅需要一個(gè)端口引腳進(jìn)行通信; 2)多個(gè)DS18B

7、20可以并聯(lián)在惟一的三線上,實(shí)現(xiàn)多點(diǎn)組網(wǎng)功能; 3)無(wú)須外部器件; 4)可通過(guò)數(shù)據(jù)線供電,電壓范圍為3.05.5V; 5)零待機(jī)功耗; 6)溫度以3位數(shù)字顯示; 7)用戶可定義報(bào)警設(shè)置; 8)報(bào)警搜索命令識(shí)別并標(biāo)志超過(guò)程序限定溫度(溫度報(bào)警條件)的器件; 9)負(fù)電壓特性,電源極性接反時(shí),溫度計(jì)不會(huì)因發(fā)熱而燒毀,但不能正常工作。1.2.2 DS18B20封裝 本設(shè)計(jì)采用的是DS18B20的3腳PR35封裝,其中中間一個(gè)引腳是進(jìn)行數(shù)據(jù)傳遞的。另外兩個(gè)引腳分別是地線引腳和電源引腳。 1.2.3 DS18B20內(nèi)部結(jié)構(gòu)主要由四部分組成: (1)DS18B20內(nèi)部結(jié)構(gòu)如下圖1-1所示 圖1-1 DS18

8、B20內(nèi)部結(jié)構(gòu)圖 (2)64位光刻ROM。開(kāi)始8位是產(chǎn)品類(lèi)型的編號(hào),接著是每個(gè)器件的惟一的序號(hào),共有48位,最后8位是前56位的CRC校驗(yàn)碼,這也是多個(gè)DS18B20可以采用一線進(jìn)行通信的原因。其排序如下表1.1.3。 8b檢驗(yàn)CRC 48b序列號(hào) 8b工廠代碼(10H) MSB LSB MSB LSB MSB LSB 表1-1 (3)非揮發(fā)的溫度報(bào)警觸發(fā)器TH和TL,可通過(guò)軟件寫(xiě)入用戶報(bào)警上下限值。 (4)高速暫存存儲(chǔ),可以設(shè)置DS18B20溫度轉(zhuǎn)換的精度。DS18B20溫度傳感器的內(nèi)部存儲(chǔ)器還包括一個(gè)高速暫存RAM和一個(gè)非易失性的可電擦除的EEPRAM。高速暫存RAM的結(jié)構(gòu)為9字節(jié)的存儲(chǔ)器

9、,結(jié)構(gòu)如表1 - 2所示。頭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ù)值。它的內(nèi)部存儲(chǔ)器結(jié)構(gòu)和字節(jié)定義如圖1.3所示。低5位一直為,TM是工作模式位,用于設(shè)置DS18B20在工作模式還是在測(cè)試模式。 表1-2 RAM的內(nèi)部存儲(chǔ)器 (5)告訴暫存存儲(chǔ),可以設(shè)置DS18B20溫度轉(zhuǎn)換的精度。DS18B20出廠時(shí)該位被設(shè)置為0,用戶可以去改動(dòng),其中R1和R0用來(lái)設(shè)置轉(zhuǎn)換精度,用于設(shè)置分辨率。其字節(jié)定義如下表1-3所示。 表1-3

10、 DS18B20字節(jié)定義 (6)其分辨率與溫度轉(zhuǎn)換的時(shí)間如表1-4所示,由此可見(jiàn)分辨率越高轉(zhuǎn)換時(shí)間越長(zhǎng)。 表1-4 DS18B20溫度轉(zhuǎn)換時(shí)間表 (7)部分溫度數(shù)值與二進(jìn)制之間的對(duì)應(yīng)關(guān)系如下表1-5所示。表1-5 部分溫度對(duì)應(yīng)表 (8)CRC的產(chǎn)生在64 b ROM的最高有效字節(jié)中存儲(chǔ)有循環(huán)冗余校驗(yàn)碼(CRC)。主機(jī)根據(jù)ROM的前56位來(lái)計(jì)算CRC值,并和存入DS18B20中的CRC值做比較,以判斷主機(jī)收到的ROM數(shù)據(jù)是否正確。另外,由于DS18B20單線通信功能是分時(shí)完成的,它有嚴(yán)格的時(shí)隙概念,因此讀寫(xiě)時(shí)序很重要。系統(tǒng)對(duì)DS18B20的各種操作按協(xié)議進(jìn)行。操作協(xié)議為:初使化DS18B20(發(fā)

11、復(fù)位脈沖)發(fā)ROM功能命令發(fā)存儲(chǔ)器操作令處理數(shù)據(jù)。1.3 DS18B20的工作原理1.3.1 DS18B20工作時(shí)序 根據(jù)DS18B20的通訊協(xié)議,主機(jī)控制DS18B20完成溫度轉(zhuǎn)換必須經(jīng)過(guò)三個(gè)步驟:1.每一次讀寫(xiě)前都必須要對(duì)DS18B20進(jìn)行復(fù)位;2.復(fù)位成功后發(fā)送一條ROM指令;3.最后發(fā)送RAM指令,這樣才能對(duì)DS18B20進(jìn)行預(yù)定的操作。復(fù)位要求主CPU將數(shù)據(jù)線下拉500微秒,然后釋放,DS18B20收到信號(hào)后等待1560微秒左右后發(fā)出60240微秒的存在低脈沖,主CPU收到此信號(hào)表示復(fù)位成功。其工作時(shí)序包括初始化時(shí)序、寫(xiě)時(shí)序和讀時(shí)序,具體工作方法如圖1-2,1-3,1-4所示。(1)

12、.初始化程序 , 圖1-2 DS18B20初始化時(shí)序 總線上的所有傳輸過(guò)程都是以初始化開(kāi)始的,主機(jī)響應(yīng)應(yīng)答脈沖。應(yīng)答脈沖使主機(jī)知道,總線上有從機(jī)設(shè)備,且準(zhǔn)備就緒。主機(jī)輸出低電平,保持低電平時(shí)間至少480us,以產(chǎn)生復(fù)位脈沖。接著主機(jī)釋放總線,4.7K上拉電阻將總線拉高,延時(shí)1560us并進(jìn)入接收模式,以產(chǎn)生低電平應(yīng)答脈沖,若為低電平,再延時(shí)480us。(2) .寫(xiě)時(shí)序 圖1-3 DS18B20寫(xiě)時(shí)序 寫(xiě)時(shí)序包括寫(xiě)0時(shí)序和寫(xiě)1時(shí)序。所有寫(xiě)時(shí)序至少需要60us,且在2次獨(dú)立的寫(xiě)時(shí)序之間至少需要1us的恢復(fù)時(shí)間,都是以總線拉低開(kāi)始。寫(xiě)1時(shí)序,主機(jī)輸出低電平,延時(shí)2us,然后釋放總線,延時(shí)60us。寫(xiě)

13、0時(shí)序,主機(jī)輸出低電平,延時(shí)60us,然后釋放總線,延時(shí)2us。(3) 讀時(shí)序 圖1-4 DS18B20讀時(shí)序 總線器件僅在主機(jī)發(fā)出讀時(shí)序是,才向主機(jī)傳輸數(shù)據(jù),所以,在主機(jī)發(fā)出讀數(shù)據(jù)命令后,必須馬上產(chǎn)生讀時(shí)序,以便從機(jī)能夠傳輸數(shù)據(jù)。所有讀時(shí)序至少需要60us,且在2次獨(dú)立的讀時(shí)序之間至少需要1us的恢復(fù)時(shí)間。每個(gè)讀時(shí)序都由主機(jī)發(fā)起,至少拉低總線1us。主機(jī)在讀時(shí)序期間必須釋放總線,并且在時(shí)序起始的15us之內(nèi)采樣總線狀態(tài)。主機(jī)輸出低電平延時(shí)2us,然后主機(jī)轉(zhuǎn)入輸入模式延時(shí)12us,然后讀取總線當(dāng)前電平,然后延時(shí)50us。1.3.2 ROM操作命令 當(dāng)主機(jī)收到DSl8B20的響應(yīng)信號(hào)后,便可以發(fā)

14、出ROM操作命令之一,這些命令如下表1-6 ROM操作命令。1.3.3 DS18B20測(cè)溫原理 每一片DSl8B20在其ROM中都存有其唯一的48位序列號(hào),在出廠前已寫(xiě)入片內(nèi)ROM中。主機(jī)在進(jìn)操作程序前必須用讀ROM(33H)命令將該DSl8B20的序列號(hào)讀出。 程序可以先跳過(guò)ROM,啟動(dòng)所有DSl8B20進(jìn)行溫度變換,之后通過(guò)匹配ROM,再逐一地讀回每個(gè)DSl8B20的溫度數(shù)據(jù)。DS18B20的測(cè)溫原理如圖1-5所示,圖中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號(hào)送給減法計(jì)數(shù)器,高溫度系數(shù)晶振隨溫度變化其震蕩頻率明顯改變,所產(chǎn)生的信號(hào)作為另外一個(gè)減法計(jì)數(shù)器的脈沖輸表

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

16、圖1-5中的斜率累加器用于補(bǔ)償和修正測(cè)溫過(guò)程中的非線性,其輸出用修正法修正計(jì)數(shù)器的預(yù)置值,只要計(jì)數(shù)門(mén)仍未關(guān)閉就重復(fù)上述過(guò)程,直至溫度寄存器值達(dá)到被測(cè)溫度值。 另外,由于DS18B20單線通信功能是分時(shí)完成的,他有嚴(yán)格的時(shí)隙概念,因此讀寫(xiě)時(shí)序很重要。系統(tǒng)對(duì)DS18B20的各種操作必須按協(xié)議進(jìn)行。操作協(xié)議為:初始化DS18B20(發(fā)復(fù)位脈沖)發(fā)ROM功能命令發(fā)存儲(chǔ)器操作命令處理數(shù)據(jù)。圖1-5 測(cè)溫原理圖1.4 DS18B20 測(cè)溫流程 測(cè)溫流程如下圖1-6所示。 圖1-6 DS18B20測(cè)溫流程圖第2章 單片機(jī)接口設(shè)計(jì)2.1 設(shè)計(jì)原則 DS18B20可以采用兩種方式供電,一種是采用電源供電方式,此

17、時(shí)DS18B20的1腳接地,2腳作為信號(hào)線,3腳接電源。另一種是寄生電源供電方式,如圖3.1所示單片機(jī)端口接單線總線,為保證在有效的DS18B20時(shí)鐘周期內(nèi)提供足夠的電流,可用一個(gè)MOSFET管來(lái)完成對(duì)總線的上拉。本設(shè)計(jì)采用電源供電方式,P2.7口接單線總線。當(dāng)DS18B20處于寫(xiě)存儲(chǔ)器操作和溫度A/D變換操作時(shí),總線上必須有強(qiáng)的上拉,上拉啟時(shí)間最大為10s。采用寄生電源供電方式是VDD和GND端均接地。由于單線制只有一根線,因此發(fā)送接收口必須是三狀態(tài)的。主機(jī)控制DS18B20完成溫度轉(zhuǎn)換必須經(jīng)過(guò)3個(gè)步驟:1.初始化; 2.RO操作指令;l3.存儲(chǔ)器操作指令。2.2 引腳連接2.2.1晶振電路

18、單片機(jī)XIAL1和XIAL2分別接22PF的電容,中間并接12MHZ的晶振,為單片機(jī)提供工作周期。具體電路圖如下2-1所示。 圖2-1 晶振電路2.2.2 顯示電路 采用AT89C51作CPU,其中P0端口和P2.0,P2.1,P2.2作溫度顯示輸出口。連接圖如下2-2所示。2.2.3 低溫加熱電路 用P1.0作控制加熱器的輸出口,外接一個(gè)紅色發(fā)光二極管做加熱顯示,并串接一個(gè)220歐的限流電阻。通過(guò)控制Q2(三極管)的導(dǎo)通與截止來(lái)控制加熱繼電器的導(dǎo)通與關(guān)閉。其連接圖如下2-3所示。圖2-2 顯示電路圖2-3低溫加熱電路2.2.4 高溫降熱電路用P1.1作控制電機(jī)工作的輸出端口,其中P1.1外接

19、一個(gè)黃色的二極管做降溫顯示,并通過(guò)一個(gè)電壓跟蹤運(yùn)算放大器將驅(qū)動(dòng)電機(jī)電路域單片機(jī)隔離。具體連接如圖2-4所示。圖2-4 高溫降熱電路2.2.5 溫度采集電路用DS18B20中間一個(gè)引腳作數(shù)字式溫度信號(hào)的輸入口,將其接在單片機(jī)P2.7口上。具體連接如圖2-5所示。圖2-5 溫度采集電路2.2.6 復(fù)位電路本設(shè)計(jì)采用上電自動(dòng)復(fù)位。其具體連接如圖2-6所示。圖2-6 復(fù)位電路 第3章 系統(tǒng)整體設(shè)計(jì)3.1 系統(tǒng)硬件電路 硬件電路整體設(shè)計(jì)如圖3-1所示。圖3-1 整體連接圖3.2 系統(tǒng)軟件設(shè)計(jì)3.2.1 軟件的選擇程序設(shè)計(jì)語(yǔ)言有三種:機(jī)器語(yǔ)言,匯編語(yǔ)言,高級(jí)語(yǔ)言,其中前兩種語(yǔ)言編程復(fù)雜,而高級(jí)語(yǔ)言編寫(xiě)既簡(jiǎn)

20、單又容易理解,故本設(shè)計(jì)采用高級(jí)語(yǔ)言中的C語(yǔ)言編寫(xiě)程序。本裝置的軟件包括主程序、讀出溫度子程序、復(fù)位電路子程序、延時(shí)電路子程序、以及有關(guān)DS18B20的程序(初始化子程序、寫(xiě)程序和讀程序)、溫度數(shù)據(jù)處理子程序、溫度顯示子程序。3.2.2 具體程序流程A.主函數(shù)流程如下圖3-2所示。B.溫度處理流程如下圖3-3所示。初始化端口開(kāi)機(jī)顯示0000復(fù)位發(fā) Skip ROM發(fā)轉(zhuǎn)換指令處理溫度數(shù)據(jù)轉(zhuǎn)換溫度值顯示溫度圖3-2 主函數(shù)流程圖3-3 溫度處理流程3.2.3具體程序 如下: /溫度計(jì)讀寫(xiě)程序源代碼/#include "reg51.h"#include "intrins.

21、h" #define dm P0 /以P0口作為L(zhǎng)ED段碼輸出口#define uchar unsigned char#define uint unsigned intsbit DQ=P27; /以P2.7口作為溫度傳感器輸入口sbit w0=P20; /數(shù)碼管4sbit w1=P21; /數(shù)碼管3sbit w2=P22; /數(shù)碼管2sbit w3=P23; /數(shù)碼管1sbit led0=P10;/加熱驅(qū)動(dòng)端sbit led1=P11;/降溫驅(qū)動(dòng)端int temp1=0; /顯示當(dāng)前溫度和設(shè)置溫度的標(biāo)志位為0 時(shí)顯示當(dāng)前溫度uint h;uint temp;uchar r;uchar

22、 high=35,low=20;uchar sign;uchar q=0;uchar tt=0;uchar scale;uchar code ditab16=0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09;uchar code table_dm12=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40;uchar table_dm1=0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xf

23、f,0xef; uchar data temp_data2=0x00,0x00; uchar data display5=0x00,0x00,0x00,0x00,0x00; /延時(shí)電路程序/void delay(uint t)for (;t>0;t-);void scan()int j;for(j=0;j<4;j+)switch (j)case 0: dm=table_dmdisplay0;w0=0;delay(50);w0=1;/xiaoshucase 1: dm=table_dm1display1;w1=0;delay(50);w1=1;/geweicase 2: dm=tab

24、le_dmdisplay2;w2=0;delay(50);w2=1;/shiweicase 3: dm=table_dmdisplay3;w3=0;delay(50);w3=1;/baiwei/ elsedm=table_dmb3;w3=0;delay(50);w3=1;/復(fù)位電路程序/ow_reset(void)char presence=1;while(presence)while(presence)DQ=1;_nop_();_nop_(); DQ=0;delay(50); DQ=1;delay(6); presence=DQ; /presence=0 delay(45); presenc

25、e=DQ;DQ=1; /DS18B20 寫(xiě)命令函數(shù)/void write_byte(uchar val)uchar i;for(i=8;i>0;i-)DQ=1;_nop_();_nop_(); DQ=0;_nop_();_nop_();_nop_();_nop_(); /5 usDQ=val&0x01; delay(6); val=val/2; DQ=1;delay(1);/DS18B20 讀1 字節(jié)函數(shù)/uchar read_byte(void)uchar i;uchar value=0;for(i=8;i>0;i-)DQ=1;_nop_();_nop_();value&

26、gt;>=1;DQ=0;_nop_();_nop_();_nop_();_nop_(); /4 usDQ=1;_nop_();_nop_();_nop_();_nop_(); /4 usif(DQ)value|=0x80;delay(6); /66 usDQ=1;return(value);/讀出溫度函數(shù)/read_temp()ow_reset();delay(200);write_byte(0xcc); write_byte(0x44); ow_reset();delay(1);write_byte(0xcc); write_byte(0xbe);temp_data0=read_byt

27、e();temp_data1=read_byte();temp=temp_data1;temp<<=8;temp=temp|temp_data0; return temp; /溫度數(shù)據(jù)處理函數(shù)/work_temp(uint tem)uchar n=0;if(tem>6348) / 溫度值正負(fù)判斷tem=65536-tem;n=1; / 負(fù)溫度求補(bǔ)碼,標(biāo)志位置1display4=tem&0x0f; / 取小數(shù)部分的值display0=ditabdisplay4; / 存入小數(shù)部分顯示值display4=tem>>4; / 取中間八位,即整數(shù)部分的值displ

28、ay3=display4/100; / 取百位數(shù)據(jù)暫存display1=display4%100; / 取后兩位數(shù)據(jù)暫存display2=display1/10; / 取十位數(shù)據(jù)暫存display1=display1%10; /個(gè)位數(shù)據(jù)r=display1+display2*10+display3*100;if (r<30) /低溫加熱 led0=1;led1=0; if (r>=30)&(r<40)/在溫度區(qū)間不動(dòng)作 led0=0;led1=0;if (r>=40) /高溫降溫 led0=0;led1=1;/符號(hào)位顯示判斷/if(!display3)display3=0x0a; /最高位為0 時(shí)不顯示if(!display2)display2=0x0a; /次高位為0 時(shí)不顯示if(n)display3=0x0b; /負(fù)溫度時(shí)最高位顯示"-"/*設(shè)置溫度顯示轉(zhuǎn)換*/void xianshi(int horl)int n=0;if(horl>128)horl=256-horl;n=1;display3=horl/100;display3=display3&0x0f;display2=horl%100/10;display1=horl%10;display0=0;if(!display3)display

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論