基于單片機(jī)的溫度控制系統(tǒng)方案_第1頁
基于單片機(jī)的溫度控制系統(tǒng)方案_第2頁
基于單片機(jī)的溫度控制系統(tǒng)方案_第3頁
基于單片機(jī)的溫度控制系統(tǒng)方案_第4頁
基于單片機(jī)的溫度控制系統(tǒng)方案_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 . PAGE27 / NUMPAGES32 . 機(jī)電職業(yè)技術(shù)學(xué)院畢 業(yè) 論 文基于單片機(jī)的溫度控制系統(tǒng)系(部) 電氣工程系 專業(yè) 機(jī)電一體化 班級 機(jī)電3112班 姓名 珍珍 學(xué)號 1302113124 指導(dǎo)教師 曾勁松 20132014學(xué)年 第 1 學(xué)期指導(dǎo)教師評語等級簽名日期摘要單片機(jī)在電子產(chǎn)品中的應(yīng)用已經(jīng)越來越廣泛,并且在很多電子產(chǎn)品中也將其用到溫度檢測和溫度控制。為此在本文中設(shè)計了基于STC89C51的溫度測量系統(tǒng)。這是一種低成本的利用單片機(jī)多余I/O口實現(xiàn)的溫度檢測電路, 該電路非常簡單, 易于實現(xiàn), 并且適用于幾乎所有類型的單片機(jī)。國外溫度控制系統(tǒng)發(fā)展迅速,并在智能化、自適應(yīng)、參

2、數(shù)自整定等方面取得成果。目前社會上溫度控制系統(tǒng)大多采用智能調(diào)節(jié)器,國產(chǎn)調(diào)節(jié)器分辨率和精度較低,溫度控制效果不是很理想,但價格便宜,國外調(diào)節(jié)器分辨率和精度較高,價格較高。日本、美國、德國、瑞典等技術(shù)領(lǐng)先,都生產(chǎn)出了一批商品化的、性能優(yōu)異的溫度控制器與儀器儀表,并在各行業(yè)廣泛應(yīng)用本設(shè)計研究了一種高精度溫度控制系統(tǒng),采用單總線數(shù)字式溫度傳感器DS18B20和單片機(jī)STC89C51組成溫度測量儀。首先分析了DS18B20的結(jié)構(gòu)和工作原理,并以此建立,以STC89C51單片機(jī)為處理器的溫度測量和控制裝置的硬件組成和軟件設(shè)計。測量溫度通過LED數(shù)碼管進(jìn)行顯示。溫度控制系統(tǒng)可以通過鍵盤修改期望的控制溫度值。

3、基于DS18B20的溫度測量控制系統(tǒng),具有測量準(zhǔn)確、測量圍寬、體積小、控制方便等優(yōu)點(diǎn)1。該控制系統(tǒng)適于人們?nèi)粘I睢⒐I(yè)生產(chǎn)和科學(xué)領(lǐng)域?qū)囟鹊目刂埔?。關(guān)鍵詞:溫度控制、溫度測量、DS18B20傳感器、STC89C51單片機(jī)目錄 TOC o 1-3 h z u HYPERLINK l _Toc23081 第1章 概述 PAGEREF _Toc23081 1 HYPERLINK l _Toc16620 1.1論文研究的目的 PAGEREF _Toc16620 1 HYPERLINK l _Toc27537 1.2論文研究的容 PAGEREF _Toc27537 2 HYPERLINK l _To

4、c17157 1.3論文研究的意義 PAGEREF _Toc17157 2 HYPERLINK l _Toc6644 第2章 溫度控制系統(tǒng)方案的論證與選擇 PAGEREF _Toc6644 3 HYPERLINK l _Toc4857 2.1 顯示的選擇 PAGEREF _Toc4857 3 HYPERLINK l _Toc11615 2.2 鍵盤模塊的選擇 PAGEREF _Toc11615 3 HYPERLINK l _Toc4346 2.3 控制模塊的選取 PAGEREF _Toc4346 3 HYPERLINK l _Toc17463 2.4 加熱器的選擇 PAGEREF _Toc17

5、463 4 HYPERLINK l _Toc27906 2.5 溫度傳感模塊的選擇 PAGEREF _Toc27906 4 HYPERLINK l _Toc21772 2.6 MCU模塊的選擇 PAGEREF _Toc21772 4 HYPERLINK l _Toc14303 第3章 系統(tǒng)設(shè)計 PAGEREF _Toc14303 5 HYPERLINK l _Toc14342 3.1 報警模塊 PAGEREF _Toc14342 5 HYPERLINK l _Toc4446 3.2 控制模塊 PAGEREF _Toc4446 6 HYPERLINK l _Toc15583 3.3顯示模塊 PA

6、GEREF _Toc15583 6 HYPERLINK l _Toc1260 3.4 按鍵模塊 PAGEREF _Toc1260 7 HYPERLINK l _Toc14726 3.5 溫度傳感器特性 PAGEREF _Toc14726 8 HYPERLINK l _Toc28716 3.6 溫度采樣部分 PAGEREF _Toc28716 10 HYPERLINK l _Toc7887 3.7 模數(shù)轉(zhuǎn)換部分 PAGEREF _Toc7887 11 HYPERLINK l _Toc27474 3.8 系統(tǒng)電路圖 PAGEREF _Toc27474 12 HYPERLINK l _Toc1944

7、4 第4章 程序的設(shè)計 PAGEREF _Toc19444 13 HYPERLINK l _Toc10564 4.1程序流程圖 PAGEREF _Toc10564 13 HYPERLINK l _Toc24226 4.2 具體應(yīng)用程序設(shè)計 PAGEREF _Toc24226 13 HYPERLINK l _Toc13773 第5章 元件的介紹 PAGEREF _Toc13773 23 HYPERLINK l _Toc27880 5.1 DS18B20傳感器 PAGEREF _Toc27880 23 HYPERLINK l _Toc27245 5.2 STC89C51單片機(jī) PAGEREF _T

8、oc27245 24 HYPERLINK l _Toc16210 致 PAGEREF _Toc16210 26 HYPERLINK l _Toc30333 參考文獻(xiàn) PAGEREF _Toc30333 27第1章 概述1.1論文研究的目的近年來,溫度檢測在理論上發(fā)展的比較成熟 ,但在實際測量和控制中,如何保證快速實時的對溫度進(jìn)行采樣,確保數(shù)據(jù)的正常傳輸,并能對所測溫度場進(jìn)行較精確的控制,仍然是目前需要解決的問題。溫度測控技術(shù)包括溫度測量技術(shù)和溫度控制技術(shù)兩方面。在溫度的測量技術(shù)中,接觸式測溫發(fā)展較早,這種測量的方式優(yōu)點(diǎn)是:簡單、可靠、低廉、測量精度高,一般能夠測得真實溫度;但由于檢測元件熱慣性

9、的影響,響應(yīng)時間較長,對熱容量小的物體難以實現(xiàn)精確的測量,并且該方法不適宜于對腐蝕性介質(zhì)測溫,不能用于超高溫測量,難以測量運(yùn)動物體的溫度。另外的非接觸式的測量方法是通過對輻射能量的檢測來實現(xiàn)溫度測量的方法,其優(yōu)點(diǎn)是:不破壞被測溫場,可以測量熱容量小的物體,適于測量運(yùn)動物體的測量,還可以測量區(qū)域的溫度分布,響應(yīng)速度較快。但也存在測量誤差較大,儀表指示值一般僅代表物體表觀溫度,測溫裝置結(jié)構(gòu)復(fù)雜,價格昂貴等缺點(diǎn)。因此,在實際的溫度測量中,要根據(jù)具體的測量對象選擇合適的測量方法,在滿足測量精度要求的前提下盡量減少投入。溫度控制是工業(yè)生產(chǎn)中經(jīng)常遇到的過程控制,在很多工藝生產(chǎn)中,溫度的控制效果直接影響到產(chǎn)

10、品的質(zhì)量,因而設(shè)計一種比較理想的溫度控制系統(tǒng)是非常有價值的。日常生活中,溫度值也是一個重要的參考量。此外,對溫度信息的采集,檢測,控制,不僅保證了產(chǎn)品質(zhì)量,還節(jié)約了能源,在安全生產(chǎn)方面有積極作用。本控制器可實時測量現(xiàn)場溫度,并根據(jù)溫度情況和人為設(shè)置情況調(diào)節(jié)現(xiàn)場溫度,使溫度保持在一個設(shè)定的圍2。其中人為設(shè)置可通過操作按鍵完成。另外,本系統(tǒng)還具有溫度超越界限時的報警功能。防潮、防霉、防腐、防爆是倉庫日常工作的重要容,是衡量倉庫管理質(zhì)量的重要指標(biāo)。它直接影響到儲備物資的使用壽命和工作可靠性。為保證日常工作的順利進(jìn)行,首要問題是加強(qiáng)倉庫溫度與濕度的監(jiān)測工作。但傳統(tǒng)的方法是用與濕度表、毛發(fā)濕度表、雙金屬

11、式測量計和濕度試紙等測試器材,通過人工進(jìn)行檢測,對不符合溫度和濕度要求的庫房進(jìn)行通風(fēng)、去濕和降溫等工作。這種人工測試方法費(fèi)時費(fèi)力、效率低,且測試的溫度與濕度誤差大,隨機(jī)性大。因此我們需要一種造價低廉、使用方便且測量準(zhǔn)確的溫濕度測量儀。1.2論文研究的容本設(shè)計的容是溫度測試控制,控制對象就是溫度。溫度控制在日常生活與工業(yè)領(lǐng)域應(yīng)用相當(dāng)廣泛,比如浴室、水池、電源等場所的溫度控制。而以往溫度控制是由人工完成的而且不夠重視,其實在很多場所溫度都需要監(jiān)控以防意外發(fā)生。本文將采用了單片機(jī)對溫度實現(xiàn)自動控制。主要實現(xiàn)的功能是:對被控對象的溫度進(jìn)行實時采集,其主要是通過一傳感器(可編程溫度傳感器DS18B20)

12、將溫度轉(zhuǎn)變模擬電信號,再將所得的模擬量轉(zhuǎn)變成數(shù)字量送入單片機(jī)(AT89S52)中,單片機(jī)將傳感器所采集到的溫度和事先設(shè)定的溫度進(jìn)行對比,當(dāng)小于設(shè)定值時將發(fā)出信號啟動加熱裝置;當(dāng)大于設(shè)定值時將關(guān)閉加熱裝置,從而使得被控溫度控制在一定的圍之,達(dá)到實時控制的功能。1.3論文研究的意義本設(shè)計是一溫度控制器,擬要實現(xiàn)的功能是:對被控對象的溫度進(jìn)行實時采集,通過溫度傳感器將溫度轉(zhuǎn)變成模擬電信號,再將所得的模擬量轉(zhuǎn)變成數(shù)字量送入單片機(jī)中并從數(shù)碼管顯示出來,同時單片機(jī)將傳感器所采集到的溫度和事先設(shè)定的上下限溫度進(jìn)行對比,當(dāng)?shù)陀谠O(shè)定值時將發(fā)出信號啟動加熱裝置;當(dāng)高于設(shè)定值時將關(guān)閉加熱裝置,從而使得被控溫度控制在

13、一定的圍之,達(dá)到實時控制的功能。第2章 溫度控制系統(tǒng)方案的論證與選擇本設(shè)計的容是設(shè)計一溫度控制器。溫度是工業(yè)控制對象的主要被控參數(shù)之一。本設(shè)計將通過單片機(jī)實現(xiàn)對溫度自動控制。主要實現(xiàn)的功能是:對被控對象的溫度進(jìn)行實時采集和顯示,通過按鍵設(shè)定合適溫度圍,單片機(jī)將傳感器所采集到的溫度和設(shè)定的溫度圍進(jìn)行對比,當(dāng)小于設(shè)定值時將發(fā)出信號啟動加熱裝置;當(dāng)大于設(shè)定值時將關(guān)閉加熱裝置,從而使得被控溫度控制在一定的圍之,達(dá)到實時控制的功能。通過對要實現(xiàn)的功能進(jìn)行分析,可分為顯示、按鍵、控制模塊、加熱器、溫度傳感模塊、MCU模塊。2.1 顯示的選擇本設(shè)計需要將溫度進(jìn)行采集并實時顯示出來,所以一個合適的顯示器是很必

14、要的。就顯示來說,需要顯示清晰明朗,顯示字體要足夠大,而且成本要低,控制簡單3??紤]以上條件后再結(jié)合現(xiàn)有知識,本設(shè)計的顯示器最終選擇共陽四位數(shù)碼管。顯示圍從0-99.9,既滿足了溫度圍,又有足夠的精度(0.1)。最后一位設(shè)置并顯示C,代表溫度單位。2.2 鍵盤模塊的選擇本設(shè)計中需要通過按鍵來設(shè)定溫度圍,需由三個按鍵構(gòu)成,一個模式選擇:通過此按鍵可切換溫度顯示和報警溫度的顯示以與對報警極限值進(jìn)行調(diào)整。兩個溫度值上下調(diào)節(jié):一個增加,一個減小。、2.3 控制模塊的選取在工業(yè)生產(chǎn)中當(dāng)溫度超出設(shè)定圍時系統(tǒng)要與時作出相應(yīng)的反應(yīng)以維持溫度在設(shè)定圍。經(jīng)多方對比后本模塊選定由5V繼電器來實現(xiàn),當(dāng)溫度超過預(yù)設(shè)報警

15、溫度時,通過單片機(jī)輸出高低電平來控制繼電器的通斷,來實現(xiàn)對加熱器的控制。成本低,控制簡單,易于實現(xiàn)。2.4 加熱器的選擇此模塊是繼電器控制的外部控制器的一個簡單縮影,對不同的被控對象來說,實現(xiàn)此模塊所用的控制器不同。本設(shè)計實現(xiàn)對溫度的控制,此模塊可為加熱器和降溫設(shè)備。這些不在本設(shè)計考慮圍。2.5 溫度傳感模塊的選擇工業(yè)中溫度的檢測精確度是衡量溫度控制系統(tǒng)質(zhì)量好壞的一個非常重要的方面,因此選一個精確的溫度傳感器是非常關(guān)鍵的。此模塊可由多種途徑實現(xiàn):方案一:通過熱敏電阻對溫度的敏感感知來采集溫度信號,此方案需要用A/D轉(zhuǎn)換,使溫度模擬信號轉(zhuǎn)換成單片機(jī)所需的數(shù)字信號;方案二:通過DS18B20傳感器

16、來實現(xiàn)對溫度的采集,采集的信號直接為數(shù)字信號;對比此兩種方案,可看出方案二易于實現(xiàn),電路簡單,并且DS18B20的溫度分辨率高,最小誤差僅為0.1C。因此本設(shè)計選用DS18B20來采集溫度4。2.6 MCU模塊的選擇在系統(tǒng)中MCU是核心,考慮到本設(shè)計的復(fù)雜程度、對MCU的要求與穩(wěn)定性,本設(shè)計采用普通的51 單片機(jī),具體選型時采用可在線編程的STC89C51單片機(jī)為系統(tǒng)核心。溫度信號通過熱敏電阻和放大器轉(zhuǎn)換成電信號,再由ADC0809轉(zhuǎn)換成為數(shù)字信號,測溫電路采用橋式電路,溫度設(shè)定采用按鍵移位式設(shè)定方法,溫度控制采用光耦和可控硅控制加熱器。軟件算法采用設(shè)定值和測量值相比較的算法。在單片機(jī)應(yīng)用的基

17、礎(chǔ)上,實現(xiàn)了一種用帶有EPROM的AT89C51單片機(jī)控制傳感器的自動化溫度監(jiān)控系統(tǒng)。第3章 系統(tǒng)設(shè)計3.1報警模塊蜂鳴器報警電路報警采用蜂鳴器發(fā)聲,由于單片機(jī)引腳選通PNP型三極管8550來控制蜂鳴器報警,具體電路如圖3.1。圖3.1 報警模塊3.2 控制模塊此模塊采用5V繼電器來實現(xiàn),同報警電路一樣,也用8550三極管選通,具體電路如圖2.2。圖3.2 控制模塊圖3.3顯示模塊LED顯示器是單片機(jī)應(yīng)用系統(tǒng)中常見的輸出器件,而在單片機(jī)的應(yīng)用上也是被廣泛運(yùn)用的。如果需要顯示的容只有數(shù)碼和某些字母,使用LED數(shù)碼管是一種較好的選擇。LED數(shù)碼管顯示清晰、成本低廉、配置靈活,與單片機(jī)接口簡單易行。

18、此模塊采用三極管驅(qū)動四位共陽數(shù)碼管來顯示5LED數(shù)碼管作為顯示字段的數(shù)碼型顯示器件,它是由若干個發(fā)光二極管組成的。當(dāng)發(fā)光二極管導(dǎo)通時,相應(yīng)的一個點(diǎn)或一個筆畫發(fā)亮,控制不同組合的二極管導(dǎo)通,就能顯示出各種字符,常用的LED數(shù)碼管有7段和“米”字段之分。這種顯示器有共陽極和共陰極兩種。共陰極LED顯示器的發(fā)光二極管的陰極連在一起,通常此共陰極接地。當(dāng)某個發(fā)光二極管的陽極為高電平時,發(fā)光二極管點(diǎn)亮,相應(yīng)的段被顯示。同樣,共陽極LED顯示器的發(fā)光二極管的陽極接在一起,通常此共陽極接正電壓,當(dāng)某個發(fā)光二極管的陰極接低電平時,發(fā)光二極管被點(diǎn)亮,相應(yīng)的段被顯示。本次設(shè)計所用的LED數(shù)碼管顯示器為共陽極。LE

19、D數(shù)碼管的使用與發(fā)光二極管一樣,根據(jù)材料不同正向壓降一般為1.52V,額定電流為10MA,最大電流為40MA。靜態(tài)顯示時取10MA為宜,動態(tài)掃描顯示可加大脈沖電流,但一般不超過40MA。具體電路圖如下:圖3.3 顯示模塊3.4 按鍵模塊本設(shè)計共三個按鍵,低電平有效。電路如上圖。圖3.4 按鍵模塊圖3.5 溫度傳感器特性本設(shè)計中選擇DS18B20作為溫度傳感器。DS1820S(16 腳SSOP):所有上表中未提與的引腳都無連接。表3.1 引腳說明16腳SSOPPR35符號說明91GND接地82DQ數(shù)據(jù)輸入/輸出腳;對于單線操作:漏極開路73VDD可選的VDD引腳DS18B20的特性: 獨(dú)特的單線

20、接口僅需一個端口引腳進(jìn)行通訊; 簡單的多點(diǎn)分布應(yīng)用; 無需外部器件; 可通過數(shù)據(jù)線供電; 零待機(jī)功耗; 測溫圍-55+125,以0.5遞增。華氏器件-672570F,以0.90F 遞增; 溫度以9 位數(shù)字量讀出; 溫度數(shù)字量轉(zhuǎn)換時間200ms(典型值); 用戶可定義的非易失性溫度報警設(shè)置。 報警搜索命令識別并標(biāo)志超過程序限定溫度(溫度報警條件)的器件 應(yīng)用包括溫度控制、工業(yè)系統(tǒng)、消費(fèi)品、溫度計或任何熱感測系統(tǒng)6DS1820 數(shù)字溫度計以9 位數(shù)字量的形式反映器件的溫度值。DS1820 通過一個單線接口發(fā)送或接收信息,因此在中央微處理器和DS1820 之間僅需一條連接線(加上地線)。用于讀寫和溫

21、度轉(zhuǎn)換的電源可以從數(shù)據(jù)線本身獲得,無需外部電源。因為每個 DS1820 都有一個獨(dú)特的片序列號,所以多只DS1820 可以同時連在一根單線總線上,這樣就可以把溫度傳感器放在許多不同的地方。這一特性在HVAC 環(huán)境控制、探測建筑物、儀器或機(jī)器的溫度以與過程監(jiān)測和控制等方面非常有用。DS1820 數(shù)字溫度計以9 位數(shù)字量的形式反映器件的溫度值7。DS1820 通過一個單線接口發(fā)送或接收信息,因此在中央微處理器和DS1820 之間僅需一條連接線(加上地線)。用于讀寫和溫度轉(zhuǎn)換的電源可以從數(shù)據(jù)線本身獲得,無需外部電源。因為每個DS1820 都有一個獨(dú)特的片序列號,所以多只DS1820 可以同時連在一根

22、單線總線上,這樣就可以把溫度傳感器放在許多不同的地方。這一特性在HVAC 環(huán)境控制、探測建筑物、儀器或機(jī)器的溫度以與過程監(jiān)測和控制等方面非常有用。DS1820 有三個主要數(shù)字部件8:1)64 位激光ROM,2)溫度傳感器,3)非易失性溫度報警觸發(fā)器TH 和TL。器件用如下方式從單線通訊線上汲取能量:在信號線處于高電平期間把能量儲存在部電容里,在信號線處于低電平期間消耗電容上的電能工作,直到高電平到來再給寄生電源(電容)充電。DS1820 也可用外部5V 電源供電。DS1820 依靠一個單線端口通訊。在單線端口條件下,必須先建立ROM 操作協(xié)議,才能進(jìn)行存儲器和控制操作。因此,控制器必須首先提供

23、下面5 個ROM 操作命令之一:1)讀ROM,2)匹配ROM,3)搜索ROM,4)跳過ROM,5)報警搜索。這些命令對每個器件的激光ROM 部分進(jìn)行操作,在單線總線上掛有多個器件時,可以區(qū)分出單個器件,同時可以向總線控制器指明有多少器件或是什么型號的器件。成功執(zhí)行完一條ROM操作序列后,即可進(jìn)行存儲器和控制操作,控制器可以提供6 條存儲器和控制操作指令中的任一條。一條控制操作命令指示DS1820 完成一次溫度測量。測量結(jié)果放在DS1820 的暫存器里,用一條讀暫存器容的存儲器操作命令可以把暫存器中數(shù)據(jù)讀出。溫度報警觸發(fā)器TH 和TL 各由一個EEPROM 字節(jié)構(gòu)成。如果沒有對DS1820 使用

24、報警搜索命令,這些寄存器可以做為一般用途的用戶存儲器使用。可以用一條存儲器操作命令對TH 和TL 進(jìn)行寫入,對這些寄存器的讀出需要通過暫存器。所有數(shù)據(jù)都是以最低有效位在前的方式進(jìn)行讀寫。DS18B20供電方式圖3.5 供電方式圖 DS1820 是這樣測溫的:用一個高溫度系數(shù)的振蕩器確定一個門周期,部計數(shù)器在這個門周期對一個低溫度系數(shù)的振蕩器的脈沖進(jìn)行計數(shù)來得到溫度值。計數(shù)器被預(yù)置到對應(yīng)于-55的一個值。如果計數(shù)器在門周期結(jié)束前到達(dá)0,則溫度寄存器(同樣被預(yù)置到-55)的值增加,表明所測溫度大于-55。同時,計數(shù)器被復(fù)位到一個值,這個值由斜坡式累加器電路確定,斜坡式累加器電路用來補(bǔ)償感溫振蕩器的

25、拋物線特性。然后計數(shù)器又開始計數(shù)直到0,如果門周期仍未結(jié)束,將重復(fù)這一過程。斜坡式累加器用來補(bǔ)償感溫振蕩器的非線性,以期在測溫時獲得比較高的分辨力9。這是通過改變計數(shù)器對溫度每增加一度所需計數(shù)的的值來實現(xiàn)的。因此,要想獲得所需的分辨力,必須同時知道在給定溫度下計數(shù)器的值和每一度的計數(shù)值。DS1820 部對此計算的結(jié)果可提供0.5的分辨力。溫度以16bit 帶符號位擴(kuò)展的二進(jìn)制補(bǔ)碼形式讀出,表1 給出了溫度值和輸出數(shù)據(jù)的關(guān)系。數(shù)據(jù)通過單線接口以串行方式傳輸。DS1820 測溫圍-55+125,以0.5遞增。如用于華氏溫度,必須要用一個轉(zhuǎn)換因子查找表。3.6 溫度采樣部分溫度采樣單元,用于采集被控

26、對象的溫度參數(shù),它由溫度電壓轉(zhuǎn)換、小信號放大與A/D轉(zhuǎn)換三部分組成。其中,將溫度轉(zhuǎn)化為電量的溫度電壓轉(zhuǎn)換由溫度傳感器-熱敏電阻實現(xiàn),小信號放大由橋式放大電路實現(xiàn),A/D轉(zhuǎn)換選擇模數(shù)轉(zhuǎn)換器ADC0809,將采集到的溫度模擬信號轉(zhuǎn)換為AT89C51能夠處理的二進(jìn)制數(shù)字信號。圖3-2 溫度采樣單元溫度傳感器:廣義來講,一切隨溫度變化而物體性質(zhì)亦發(fā)生變化的物質(zhì)均可作為溫度傳感器。例如,我們平常使用的各種材料、元件,其性質(zhì)或多或少地都會隨其所處的環(huán)境溫度變化而變化,因而它們幾乎都能作為溫度傳感器使用。但是,一般真正能作為實際中可使用的溫度傳感器的物體一般需要具備下述條件:1物體的特性隨溫度的變化有較大的

27、變化,且該變化量易于測量。2對溫度的變化有較好的一一對應(yīng)關(guān)系,即對除溫度外其他物理量的變化不敏感。3性能誤差與老化小、重復(fù)性好,尺寸小。4有較強(qiáng)的耐機(jī)械、化學(xué)與熱作用等的特點(diǎn)。5與被檢測的溫度圍和精度相適應(yīng)。6價格適宜,適合于批量生產(chǎn)。符合上述條件的常用溫度傳感器有熱電偶、熱電阻、光輻射溫度計、玻璃溫度計、半導(dǎo)體集成溫度傳感器等。3.7 模數(shù)轉(zhuǎn)換部分模數(shù)轉(zhuǎn)換是將模擬輸入信號轉(zhuǎn)換為N位二進(jìn)制數(shù)字輸出信號的技術(shù)。采用數(shù)字信號處理能夠方便地實現(xiàn)各種先進(jìn)的自適應(yīng)算法,完成模擬電路無法實現(xiàn)的功能,因此,越來越多的模擬信號處理正在被數(shù)字技術(shù)所取代。與之相應(yīng)的是,作為模擬系統(tǒng)和數(shù)字系統(tǒng)之間橋梁的模數(shù)轉(zhuǎn)換的應(yīng)

28、用日趨廣泛。為了滿足市場的需求,各芯片制造公司不斷推出性能更加先進(jìn)的新產(chǎn)品、新技術(shù),令人目不暇接。一、 模數(shù)轉(zhuǎn)換技術(shù)本次設(shè)計還涉與到數(shù)模轉(zhuǎn)換技術(shù),而模數(shù)轉(zhuǎn)換技術(shù)包括采樣、保持、量化和編碼四個過程。1采樣就是將一個連續(xù)變化的模擬信號x(t)轉(zhuǎn)換成時間上離散的采樣信號x(n)。根據(jù)奈奎斯特采樣定理,對于采樣信號x(t),如果采樣頻率fs大于或等于2fmax(fmax為x(t)最高頻率成分),則可以無失真地重建恢復(fù)原始信號x(t)。實際上,由于模數(shù)轉(zhuǎn)換器器件的非線性失真、量化噪聲與接收機(jī)噪聲等因素的影響采樣速率一般取fs=2.5fmax。通常采樣脈沖的寬度tw是很短的,故采樣輸出是斷續(xù)的窄脈沖。2要

29、把一個采樣輸出信號數(shù)字化,需要將采樣輸出所得的瞬時模擬信號保持一段時間,這就是保持過程。3量化是將連續(xù)幅度的抽樣信號轉(zhuǎn)換成離散時間、離散幅度的數(shù)字信號,量化的主要問題就是量化誤差。假設(shè)噪聲信號在量化電平中是均勻分布的,則量化噪聲均方值與量化間隔和模數(shù)轉(zhuǎn)換器的輸入阻抗值有關(guān)。4編碼是將量化后的信號編碼成二進(jìn)制代碼輸出。這些過程有些是合并進(jìn)行的,例如,采樣和保持就利用一個電路連續(xù)完成,量化和編碼也是在轉(zhuǎn)換過程中同時實現(xiàn)的,且所用時間又是保持時間的一部分。二、 積分型模數(shù)轉(zhuǎn)換器積分型模數(shù)轉(zhuǎn)換器稱雙斜率或多斜率數(shù)據(jù)轉(zhuǎn)換器,是應(yīng)用最為廣泛的轉(zhuǎn)換器類型。雙斜率轉(zhuǎn)換器包括兩個主要部分:一部分電路采樣并量化輸

30、人電壓,產(chǎn)生一個時域間隔或脈沖序列,再由一個計數(shù)器將其轉(zhuǎn)換為數(shù)字量輸出。雙斜率轉(zhuǎn)換器由1個帶有輸人切換開關(guān)的模擬積分器、1個比較器和1個計數(shù)單元構(gòu)成。積分器對輸入電壓在固定的時間間隔積分,該時間間隔通常對應(yīng)于部計數(shù)單元的最大計數(shù)。時間到達(dá)后將計數(shù)器復(fù)位并將積分器輸入連接到反極性(負(fù))參考電壓。在這個反極性信號作用下,積分器被“反向積分”直到輸出回到零,并使計數(shù)器終止,積分器復(fù)位。 積分型模數(shù)轉(zhuǎn)換器的采樣速度和帶寬都非常低,但它們的精度可以做得很高,并且抑制高頻噪聲和固定的低頻干擾(如50 Hz或60 Hz)的能力,使其對于嘈雜的工業(yè)環(huán)境以與不要求高轉(zhuǎn)換速率的應(yīng)用非常有效。3.8 系統(tǒng)電路圖圖3

31、.6 系統(tǒng)電路圖系統(tǒng)的總體連接電路圖如圖3.6。圖中,四位數(shù)碼管采用動態(tài)掃描顯示。第4章 程序的設(shè)計4.1程序流程圖圖4.1 程序流程圖程序簡要說明:DS18B20溫度計,溫度測量圍099.9攝氏度, 可設(shè)置上限報警溫度、下限報警溫度,即高于上限值或者低于下限值時蜂鳴器報警,默認(rèn)上限報警溫度為32、默認(rèn)下限報警溫度為10,報警值可設(shè)置圍:最低上限報警值等于當(dāng)前下限報警值,最高下限報警值等于當(dāng)前上限報警值,將下限報警值調(diào)為0時為關(guān)閉下限報警功能10。4.2 具體應(yīng)用程序設(shè)計#include #include DS18B20.h #define uint unsigned int#define u

32、char unsigned char /宏定義#define SET P3_1 /定義調(diào)整鍵#define DEC P3_2 /定義減少鍵#define ADD P3_3 /定義增加鍵#define BEEP P3_7 /定義蜂鳴器#define JDQ P3_5 bit shanshuo_st; /閃爍間隔標(biāo)志bit beep_st; /蜂鳴器間隔標(biāo)志sbit DIAN = P27; /小數(shù)點(diǎn)uchar x=0; /計數(shù)器signed char m; /溫度值全局變量uchar n; /溫度值全局變量uchar set_st=0; /狀態(tài)標(biāo)志signed char shangxian=32;

33、 /上限報警溫度,默認(rèn)值為38signed char xiaxian=10; /下限報警溫度,默認(rèn)值為38uchar code LEDData=0 xC0,0 xF9,0 xA4,0 xB0,0 x99,0 x92,0 x82,0 xF8,0 x80,0 x90,0 xff;/*延時子程序*/void Delay(uint num) while( -num );void shortdelay(void) /誤差 0us unsigned char a,b,c; for(c=165;c0;c-) for(b=100;b0;b-) for(a=150;a0;a-); _nop_; /if Keil

34、,require use intrins.h _nop_; /if Keil,require use intrins.h/*初始化定時器0*/void InitTimer(void) TMOD=0 x1; TH0=0 x3c; TL0=0 xb0; /50ms(晶振12M)/*定時器0中斷服務(wù)程序*/void timer0(void) interrupt 1 TH0=0 x3c; TL0=0 xb0; x+;/*外部中斷0服務(wù)程序*/void int0(void) interrupt 0 EX0=0; /關(guān)外部中斷0if(DEC=0&set_st=1) shangxian-; if(shang

35、xianxiaxian)shangxian=xiaxian; else if(DEC=0&set_st=2) xiaxian-; if(xiaxian99)shangxian=99; else if(ADD=0&set_st=2) xiaxian+; if(xiaxianshangxian)xiaxian=shangxian; /*讀取溫度*/void check_wendu(void) uint a,b,c; c=ReadTemperature()-5; /獲取溫度值并減去DS18B20的溫漂誤差 a=c/100; /計算得到十位數(shù)字 b=c/10-a*10; /計算得到個位數(shù)字 m=c/1

36、0; /計算得到整數(shù)位 n=c-a*100-b*10; /計算得到小數(shù)位 if(m99)m=99;n=9; /設(shè)置溫度顯示上限 /*顯示開機(jī)初始化等待畫面*/Disp_init() P2 = 0 xbf; /顯示- P1 = 0 xf7; Delay(200);P1 = 0 xfb; Delay(200); P1 = 0 xfd; Delay(200); P1 = 0 xfe; Delay(200); P1 = 0 xff; /關(guān)閉顯示/*顯示溫度子程序*/Disp_Temperature() /顯示溫度 P2 =0 xc6; /顯示C P1 = 0 xf7; Delay(300); P2 =

37、LEDDatan; /顯示個位 P1 = 0 xfb; Delay(300); P2 =LEDDatam%10; /顯示十位 DIAN = 0; /顯示小數(shù)點(diǎn) P1 = 0 xfd; Delay(300); P2 =LEDDatam/10; /顯示百位 P1 = 0 xfe; Delay(300); P1 = 0 xff; /關(guān)閉顯示/*顯示報警溫度子程序*/Disp_alarm(uchar baojing) P2 =0 xc6; /顯示C P1 = 0 xf7; Delay(200); P2 =LEDDatabaojing%10; /顯示十位 P1 = 0 xfb; Delay(200);

38、P2 =LEDDatabaojing/10; /顯示百位 P1 = 0 xfd; Delay(200);if(set_st=1)P2 =0 x89; else if(set_st=2)P2 =0 xc7; /上限H、下限L標(biāo)示 P1 = 0 xfe; Delay(200); P1 = 0 xff; /關(guān)閉顯示/*報警子程序*/void Alarm() if(x=10)beep_st=beep_st;x=0;if(m=shangxian&beep_st=1)|(m=shangxian)|(mxiaxian) shortdelay();JDQ=0; else JDQ=1;/*主函數(shù)*11/void

39、 main(void) uint z; InitTimer(); /初始化定時器 EA=1; /全局中斷開關(guān) TR0=1; ET0=1; /開啟定時器0 IT0=1; IT1=1; check_wendu(); check_wendu(); for(z=0;z2)set_st=0; if(set_st=0) EX0=0; /關(guān)閉外部中斷0 EX1=0; /關(guān)閉外部中斷1 check_wendu(); Disp_Temperature();Alarm(); /報警檢測 else if(set_st=1) BEEP=1; /關(guān)閉蜂鳴器 EX0=1; /開啟外部中斷0 EX1=1; /開啟外部中斷1

40、 if(x=10)shanshuo_st=shanshuo_st;x=0; if(shanshuo_st) Disp_alarm(shangxian); else if(set_st=2) BEEP=1; /關(guān)閉蜂鳴器 EX0=1; /開啟外部中斷0 EX1=1; /開啟外部中斷1 if(x=10)shanshuo_st=shanshuo_st;x=0; if(shanshuo_st) Disp_alarm(xiaxian); /*END*/*DS18B20頭文件*/DS18B20.h:#include #define DQ P3_6 /定義DS18B20總線I/O/*延時子程序*/void

41、Delay_DS18B20(int num) while(num-) ;/*初始化DS18B20*/void Init_DS18B20(void) unsigned char x=0; DQ = 1; /DQ復(fù)位 Delay_DS18B20(8); /稍做延時 DQ = 0; /單片機(jī)將DQ拉低 Delay_DS18B20(80); /精確延時,大于480us DQ = 1; /拉高總線 Delay_DS18B20(14); x = DQ; /稍做延時后,如果x=0則初始化成功,x=1則初始化失敗 Delay_DS18B20(20);/*讀一個字節(jié)*/unsigned char ReadOne

42、Char(void) unsigned char i=0; unsigned char dat = 0; for (i=8;i0;i-) DQ = 0; / 給脈沖信號 dat=1; DQ = 1; / 給脈沖信號 if(DQ) dat|=0 x80; Delay_DS18B20(4); return(dat);/*寫一個字節(jié)*/void WriteOneChar(unsigned char dat) unsigned char i=0; for (i=8; i0; i-) DQ = 0; DQ = dat&0 x01; Delay_DS18B20(5); DQ = 1; dat=1; /*讀

43、取溫度*/unsigned int ReadTemperature(void) unsigned char a=0; unsigned char b=0; unsigned int t=0; float tt=0; Init_DS18B20(); WriteOneChar(0 xCC); /跳過讀序號列號的操作 WriteOneChar(0 x44); /啟動溫度轉(zhuǎn)換 Init_DS18B20(); WriteOneChar(0 xCC); /跳過讀序號列號的操作 WriteOneChar(0 xBE); /讀取溫度寄存器a=ReadOneChar(); /讀低8位 b=ReadOneChar

44、(); /讀高8位 t=b; t=8; t=t|a; tt=t*0.0625; t= tt*10+0.5; /放大10倍輸出并四舍五入 return(t);第5章 元件的介紹5.1 DS18B20傳感器DS18B20數(shù)字溫度傳感器接線方便,封裝成后可應(yīng)用于多種場合,如管道式,螺紋式,磁鐵吸附式,不銹鋼封裝式,型號多種多樣,有LTM8877,LTM8874等等。主要根據(jù)應(yīng)用場合的不同而改變其外觀。封裝后的DS18B20可用于電纜溝測溫,高爐水循環(huán)測溫,鍋爐測溫,機(jī)房測溫,農(nóng)業(yè)大棚測溫,潔凈室測溫,彈藥庫測溫等各種非極限溫度場合。耐磨耐碰,體積小,使用方便,封裝形式多樣,適用于各種狹小空間設(shè)備數(shù)字測溫和控制領(lǐng)域。1: 技術(shù)性能描述(1)、 獨(dú)特的單線接口方式,DS18B20在與微處理器連接時僅需要一條口線即可實現(xiàn)微處理器與DS18B20的雙向通訊。(2)、測溫圍 55+125,固有測溫誤差(注意,不是分辨率,這里之前是錯誤的)0.5。(3)、支持多點(diǎn)組網(wǎng)功能,多個DS18B20可以并聯(lián)在唯一的三線上,最多只能并聯(lián)8

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論