基于單片機(jī)的溫度控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第1頁
基于單片機(jī)的溫度控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第2頁
基于單片機(jī)的溫度控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第3頁
基于單片機(jī)的溫度控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第4頁
基于單片機(jī)的溫度控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩49頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、基于單片機(jī)的溫度控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)下位機(jī)系統(tǒng)摘 要溫度的測量與控制在工業(yè)生產(chǎn)和日常生活中應(yīng)用廣泛。本文介紹了一個(gè)基于單片機(jī)STC89C52的簡單溫度控制系統(tǒng),該系統(tǒng)由上下位機(jī)兩級(jí)組成,上位機(jī)采用PC機(jī)運(yùn)行溫度監(jiān)控程序,對(duì)溫度進(jìn)行實(shí)時(shí)監(jiān)控,同時(shí)設(shè)定下位機(jī)的控制參數(shù),可實(shí)現(xiàn)對(duì)溫度數(shù)據(jù)的存儲(chǔ)管理。下位機(jī)由單片機(jī)構(gòu)成溫度現(xiàn)場采集與控制終端,負(fù)責(zé)現(xiàn)場溫度的采集與控制。本文著重介紹了下位機(jī)系統(tǒng)的設(shè)計(jì)方案與軟硬件實(shí)現(xiàn)。下位機(jī)系統(tǒng)采用8051單片機(jī)組成溫度現(xiàn)場測控單元,使用DS18B20數(shù)字式溫度傳感器進(jìn)行溫度測量,溫度的實(shí)時(shí)測量數(shù)據(jù)通過RS-232上傳至上位機(jī),進(jìn)行實(shí)時(shí)監(jiān)視,同時(shí)接收上位機(jī)的控制指令,通過繼

2、電器控制電加熱絲的通斷,實(shí)現(xiàn)對(duì)溫度的控制。實(shí)驗(yàn)表明該系統(tǒng)能夠?qū)崿F(xiàn)對(duì)溫度的控制,具有一定的控制精度。該系統(tǒng)測溫電路簡單、連接方便,可用于簡單溫度控制的場合。關(guān)鍵詞:單片機(jī);溫度控制;溫度傳感器;串口通訊Based on a Temperature Control System Design and Implementation - Controller SystemAbstractThe application about temperature measurement and control is normal in the area of industry and daily life. A

3、 simple temperature control system, based on the STC89C52 MCU,is introduced in this paper, which include host computer and slave one. The host one, that is PC, runs temperature monitor software which monitors real-time temperature value, sets the control parameters to the slave, and save the data. T

4、he slave is temperature field collection and control unit composed by MCU, the digital temperature sensor, DS18B20, is used for the temperature measurement, the real-time data is transferred to the host computer by RS-232 for the online monitoring, the control instruction downloaded from the host is

5、 used to control temperature by means of heating wire make-break controlled by relay. The experiment shows that the system can control the temperature with the better control precise. With the simplicity of the temperature measurement circuit and the convenient connection procedure, this system may

6、be adaptable for the situations needed simple temperature control.Keywords: MCU; Temperature control; Temperature sensor; Serial communication目 錄1 緒論11.1 溫度控制系統(tǒng)的發(fā)展現(xiàn)狀11.2 課題的內(nèi)容及要求31.3 論文的內(nèi)容及安排42 溫度控制系統(tǒng)總體方案設(shè)計(jì)52.1 系統(tǒng)總體方案設(shè)計(jì)52.2 硬件總體方案設(shè)計(jì)52.3 軟件總體方案設(shè)計(jì)73 溫度控制系統(tǒng)硬件系統(tǒng)設(shè)計(jì)83.1 單片機(jī)最小系統(tǒng)設(shè)計(jì)83.2 測溫電路設(shè)計(jì)103.2.1 DS18B20

7、的介紹10 測溫電路設(shè)計(jì)133.3 控溫電路設(shè)計(jì)143.4 電平轉(zhuǎn)換及串口通信電路15 電平轉(zhuǎn)化電路16 串口通信電路164 溫度控制系統(tǒng)的軟件方案設(shè)計(jì)194.1 初始化子程序設(shè)計(jì)194.2 DS18B20測溫子程序設(shè)計(jì)194.3 串口通信子程序設(shè)計(jì)224.4 控制部分子程序設(shè)計(jì)245 系統(tǒng)調(diào)試255.1 硬件部分調(diào)試255.2 軟件部分調(diào)試265.3 系統(tǒng)聯(lián)調(diào)27結(jié)論29社會(huì)經(jīng)濟(jì)效益分析30參考文獻(xiàn)31致謝33附錄 電路圖34附錄 程序清單35附錄 元器件清單441 緒論溫度是生活及生產(chǎn)中最基本的物理量,它表征的是物體的冷熱程度。自然界中任何物理、化學(xué)過程都緊密的與溫度相聯(lián)系。在很多生產(chǎn)過程

8、中,溫度的測量和控制都直接和安全生產(chǎn)、提高生產(chǎn)效率、保證產(chǎn)品質(zhì)量、節(jié)約能源等重大技術(shù)經(jīng)濟(jì)指標(biāo)相聯(lián)系。因此,溫度的測量與控制在國民經(jīng)濟(jì)各個(gè)領(lǐng)域中均受到了相當(dāng)程度的重視。在實(shí)際的生產(chǎn)實(shí)驗(yàn)環(huán)境下,由于系統(tǒng)內(nèi)部與外界的熱交換是難以控制的,其他熱源的干擾也是無法精確計(jì)算的,因此溫度量的變化往往受到不可預(yù)測的外界環(huán)境擾動(dòng)的影響。為了使系統(tǒng)與外界的能量交換盡可能的符合人們的要求,就需要采取其他手段來達(dá)到這樣一個(gè)絕熱的目的,例如可以讓目標(biāo)系統(tǒng)外部環(huán)境的溫度與其內(nèi)部溫度同步變化。根據(jù)熱力學(xué)第二定律,兩個(gè)溫度相同的系統(tǒng)之間是達(dá)到熱平衡的,這樣利用一個(gè)與目標(biāo)系統(tǒng)溫度同步的隔離層,就可以把目標(biāo)系統(tǒng)與外界進(jìn)行熱隔離。另

9、外,在大部分實(shí)際的環(huán)境中,增溫要比降溫方便得多。因此,對(duì)溫度的控制精度要求比較高的情況下,是不允許出現(xiàn)過沖現(xiàn)象的,即不允許實(shí)際溫度超過控制的目標(biāo)溫度。特別是隔熱效果很好的環(huán)境,溫度一旦出現(xiàn)過沖,將難以很快把溫度降下來。這是因?yàn)楹芏鄳?yīng)用中只有加熱環(huán)節(jié),而沒有冷卻的裝置。同樣道理,對(duì)于只有冷卻沒有加熱環(huán)節(jié)的應(yīng)用中,實(shí)際溫度低于控制的目標(biāo)溫度,對(duì)控制效果的影響也是很大的。鑒于上述這些特點(diǎn),高精度溫度控制的難度比較大,而且不同的應(yīng)用環(huán)境也需要不同的控制策略。下面就簡要的討論一下溫度測控技術(shù)的發(fā)展與現(xiàn)狀。1.1 溫度控制系統(tǒng)的發(fā)展現(xiàn)狀近年來,溫度的檢測在理論上發(fā)展比較成熟,但在實(shí)際測量和控制中,如何保證

10、快速實(shí)時(shí)地對(duì)溫度進(jìn)行采樣,確保數(shù)據(jù)的正確傳輸,并能對(duì)所測溫度場進(jìn)行較精確的控制,仍然是目前需要解決的問題。溫度測控技術(shù)包括溫度測量技術(shù)和溫度控制技術(shù)兩個(gè)方面。在溫度的測量技術(shù)中,接觸式測溫發(fā)展較早,這種測量方法的優(yōu)點(diǎn)是:簡單、可靠、低廉、測量精度較高,一般能夠測得真實(shí)溫度;但由于檢測元件熱慣性的影響,響應(yīng)時(shí)間較長,對(duì)熱容量小的物體難以實(shí)現(xiàn)精確的測量,并且該方法不適宜于對(duì)腐蝕性介質(zhì)測溫,不能用于超高溫測量,難于測量運(yùn)動(dòng)物體的溫度。另外的非接觸式測溫方法是通過對(duì)輻射能量的檢測來實(shí)現(xiàn)溫度測量的方法,其優(yōu)點(diǎn)是:不破壞被測溫場,可以測量熱容量小的物體,適于測量運(yùn)動(dòng)物體的溫度,還可以測量區(qū)域的溫度分布,響

11、應(yīng)速度較快。但也存在測量誤差較大,儀表指示值一般僅代表物體表觀溫度,測溫裝置結(jié)構(gòu)復(fù)雜,價(jià)格昂貴等缺點(diǎn)。因此,在實(shí)際的溫度測量中,要根據(jù)具體的測量對(duì)象選擇合適的測量方法,在滿足測量精度要求的前提下盡量減少投入。溫度控制技術(shù)按照控制目標(biāo)的不同可分為兩類:動(dòng)態(tài)溫度跟蹤與恒值溫度控制。動(dòng)態(tài)溫度跟蹤實(shí)現(xiàn)的控制目標(biāo)是使被控對(duì)象的溫度值按預(yù)先設(shè)定好的曲線進(jìn)行變化。在工業(yè)生產(chǎn)中很多場合需要實(shí)現(xiàn)這一控制目標(biāo),如在發(fā)酵過程控制,化工生產(chǎn)中的化學(xué)反應(yīng)溫度控制,冶金工廠中燃燒爐中的溫度控制等;恒值溫度控制的目的是使被控對(duì)象的溫度恒定在某一給定數(shù)值上,且要求其波動(dòng)幅度(即穩(wěn)態(tài)誤差)不能超過某允許值。本文所討論的基于單片

12、機(jī)的溫度控制系統(tǒng)就是要實(shí)現(xiàn)對(duì)溫控箱的恒值溫度控制要求,故以下僅對(duì)恒值溫度控制進(jìn)行討論。從工業(yè)控制器的發(fā)展過程來看,溫度控制技術(shù)大致可分以下幾種:1. 定值開關(guān)控溫法所謂定值開關(guān)控溫法,就是通過硬件電路或軟件計(jì)算判別當(dāng)前溫度值與設(shè)定目標(biāo)溫度值之間的關(guān)系,進(jìn)而對(duì)系統(tǒng)加熱裝置(或冷卻裝置)進(jìn)行通斷控制。若當(dāng)前溫度值比設(shè)定溫度值高,則關(guān)斷加熱器,或者開動(dòng)制冷裝置;若當(dāng)前溫度值比設(shè)定溫度值低,則開啟加熱器并同時(shí)關(guān)斷制冷器。這種開關(guān)控溫方法比較簡單,在沒有計(jì)算機(jī)參與的情況下,用很簡單的模擬電路就能夠?qū)崿F(xiàn)。目前,采用這種控制方法的溫度控制器在我國許多工廠的老式工業(yè)電爐中仍被使用。由于這種控制方式是當(dāng)系統(tǒng)溫度

13、上升至設(shè)定點(diǎn)時(shí)關(guān)斷電源,當(dāng)系統(tǒng)溫度下降至設(shè)定點(diǎn)時(shí)開通電源,因而無法克服溫度變化過程的滯后性,致使被控對(duì)象溫度波動(dòng)較大,控制精度低,完全不適用于高精度的溫度控制。2. PID線性控溫法這種控溫方法是基于經(jīng)典控制理論中的PID調(diào)節(jié)器控制原理,PID控制是最早發(fā)展起來的控制策略之一,由于其算法簡單、魯棒性好、可靠性高等優(yōu)點(diǎn)被廣泛應(yīng)用工業(yè)過程控制中,尤其適用于可建立精確數(shù)學(xué)模型的確定性控制系統(tǒng)。由于PID調(diào)節(jié)器模型中考慮了系統(tǒng)的誤差、誤差變化及誤差積累三個(gè)因素,因此,其控制性能大大地優(yōu)越于定值開關(guān)控溫。其具體控制電路可以采用模擬電路或計(jì)算機(jī)軟件方法來實(shí)現(xiàn)PID調(diào)節(jié)功能。前者稱為模擬PID控制器,后者稱

14、為數(shù)字PID控制器。其中數(shù)字PID控制器的參數(shù)可以在現(xiàn)場實(shí)現(xiàn)在線整定,因此具有較大的靈活性,可以得到較好的控制效果。采用這種方法實(shí)現(xiàn)的溫度控制器,其控制品質(zhì)的好壞主要取決于三個(gè)PID參數(shù)(比例值、積分值、微分值)。只要PID參數(shù)選取的正確,對(duì)于一個(gè)確定的受控系統(tǒng)來說,其控制精度是比較令人滿意的。但是,它的不足也恰恰在于此,當(dāng)對(duì)象特性一旦發(fā)生改變,三個(gè)控制參數(shù)也必須相應(yīng)地跟著改變,否則其控制品質(zhì)就難以得到保證。3. 智能溫度控制法為了克服PID線性控溫法的弱點(diǎn),人們相繼提出了一系列自動(dòng)調(diào)整PID參數(shù)的方法,PID參數(shù)的自學(xué)習(xí),自整定等等。并通過將智能控制與PID控制相結(jié)合,從而實(shí)現(xiàn)溫度的智能控制

15、。智能控溫法以神經(jīng)網(wǎng)絡(luò)和模糊數(shù)學(xué)為理論基礎(chǔ),并適當(dāng)加以專家系統(tǒng)來實(shí)現(xiàn)智能化。其中應(yīng)用較多的有模糊控制、神經(jīng)網(wǎng)絡(luò)控制以及專家系統(tǒng)等。尤其是模糊控溫法在實(shí)際工程技術(shù)中得到了極為廣泛的應(yīng)用。目前已出現(xiàn)一種高精度模糊控制器,可以很好的模擬人的操作經(jīng)驗(yàn)來改善控制性能,從理論上講,可以完全消除穩(wěn)態(tài)誤差。所謂第三代智能溫控儀表,就是指基于智能控溫技術(shù)而研制的具有自適應(yīng)PID算法的溫度控制儀表。目前國內(nèi)溫控儀表的發(fā)展,相對(duì)國外而言在性能方面還存在一定的差距,它們之間最大的差別主要還是在控制算法方面,具體表現(xiàn)為國內(nèi)溫控儀在全量程范圍內(nèi)溫度控制精度比較低,自適應(yīng)性較差。這種不足的原因是多方面造成的,如針對(duì)不同的被

16、控對(duì)象,由于控制算法的不足而導(dǎo)致控制精度不穩(wěn)定。1.2 課題的內(nèi)容及要求1.課題內(nèi)容本課題擬設(shè)計(jì)一個(gè)基于單片機(jī)的溫度控制系統(tǒng),控制對(duì)象基于電熱裝置,進(jìn)行水溫的控制,本設(shè)計(jì)為控制系統(tǒng)的下位機(jī)設(shè)計(jì),主要由單片機(jī)構(gòu)成溫度采集與控制終端,實(shí)現(xiàn)溫度的采集與控制,其控制器參數(shù)由上位機(jī)設(shè)定。具體設(shè)計(jì)方案如下:(1) 了解和掌握溫度控制系統(tǒng)設(shè)計(jì)原理及方法。(2) 查閱文獻(xiàn),掌握單片機(jī)數(shù)據(jù)采集、控制技術(shù)現(xiàn)狀。(3) 進(jìn)行系統(tǒng)方案設(shè)計(jì)。 (4) 構(gòu)建硬件平臺(tái),編制采集及通信程序,進(jìn)行聯(lián)機(jī)調(diào)試,完成系統(tǒng)功能。2.課題要求(1) 實(shí)現(xiàn)溫度在6090可調(diào)。(2) 控制精度:1。(3) 設(shè)備等條件要求:單片機(jī)開發(fā)系統(tǒng),P

17、C機(jī)。1.3 論文的內(nèi)容及安排本論文共分5章,具體內(nèi)容如下:第1章緒論,介紹溫度測控系統(tǒng)的背景和發(fā)展現(xiàn)狀。第2章針對(duì)該課題的任務(wù)進(jìn)行具體方案論證和可行性分析,包括硬件方案和軟件方案的設(shè)計(jì)及分析。第3章介紹溫度控制系統(tǒng)的硬件系統(tǒng)電路設(shè)計(jì)。包括單片機(jī)最小系統(tǒng)、測溫電路部分、控溫電路、電平轉(zhuǎn)換電路和串行通信電路等。第4章闡述了溫度控制系統(tǒng)的軟件設(shè)計(jì),包括DS18B20測溫子程序、串口通信子程序、溫度控制子程序等。第5章介紹軟硬件調(diào)試的步驟和故障分析,最后得出結(jié)論并作社會(huì)經(jīng)濟(jì)效應(yīng)分析。2 溫度控制系統(tǒng)總體方案設(shè)計(jì)溫度控制有許多種方法,可供選擇的器件和運(yùn)用的技術(shù)也有多種,因此,系統(tǒng)的總體方案設(shè)計(jì)應(yīng)在滿足

18、系統(tǒng)整體性能指標(biāo)的前提下,充分考慮系統(tǒng)使用的環(huán)境,所選的結(jié)構(gòu)要盡量簡單實(shí)用,易于實(shí)現(xiàn),器件的選用要著眼于合適的參數(shù)、穩(wěn)定的性能、較低的功耗、低廉的成本以及較好的性能等等。本章將介紹基于單片機(jī)的測控系統(tǒng)的總體方案的設(shè)計(jì)并給出結(jié)構(gòu)框圖,分別從軟硬件兩個(gè)方面來進(jìn)行討論。2.1 系統(tǒng)總體方案設(shè)計(jì)溫控系統(tǒng)是將負(fù)載的電加熱絲看成是被控對(duì)象,溫度是控制量,控制前先設(shè)定溫度值,然后對(duì)電加熱絲進(jìn)行溫度采集,并將采集的數(shù)據(jù)通過串行通信傳送給上位機(jī),通過控制P口的高低電平,控制電加熱絲的通斷,從而實(shí)現(xiàn)對(duì)溫度的控制。此課題是一個(gè)基于單片機(jī)的溫度測控系統(tǒng),需由上下位機(jī)聯(lián)合完成,此系統(tǒng)為下位機(jī)系統(tǒng),主要由單片機(jī)構(gòu)成溫度采

19、集與控制終端,實(shí)現(xiàn)溫度采集與控制,使受控對(duì)象達(dá)到上位機(jī)設(shè)定的溫度。此系統(tǒng)由軟硬件兩部分組成,硬件電路是系統(tǒng)的結(jié)構(gòu)框架,是軟件的載體,軟件是系統(tǒng)的內(nèi)核,通過硬件來進(jìn)行具體操作,因此軟硬件相互配合,共同完成各種功能。此系統(tǒng)硬件主要由以下幾個(gè)部分構(gòu)成:單片機(jī)、溫度采集電路、溫度控制電路、電平轉(zhuǎn)換電路以及串口通訊等部分組成,而系統(tǒng)軟件主要通過對(duì)單片機(jī)編程來實(shí)現(xiàn),此系統(tǒng)使用C語言來完成編程。2.2 硬件總體方案設(shè)計(jì)本文所研究的系統(tǒng)硬件部分按照功能大致分為以下幾個(gè)部分:最小系統(tǒng)、測溫部分、控溫部分以及電平轉(zhuǎn)換和串口通訊部分。其結(jié)構(gòu)框圖如圖2.1所示:受 控 對(duì) 象溫度采集電路溫度控制電路單片機(jī)串口通訊計(jì)算

20、機(jī)電平轉(zhuǎn)換圖2.1 硬件總體結(jié)構(gòu)框圖本設(shè)計(jì)本著低功耗、低成本、性能好等原則,最終選用以下器件來搭建硬件平臺(tái): 1.單片機(jī)最小系統(tǒng)單片機(jī)最小系統(tǒng)包括單片機(jī)芯片,時(shí)鐘電路和復(fù)位電路。時(shí)鐘電路用于產(chǎn)生單片機(jī)工作時(shí)所必須的時(shí)鐘信號(hào)。STC89C52單片機(jī)的內(nèi)部電路在時(shí)鐘信號(hào)控制下,嚴(yán)格地按時(shí)序執(zhí)行指令進(jìn)行工作;復(fù)位操作是單片機(jī)的初始化操作,只需給單片機(jī)的復(fù)位引腳RST加上大于2個(gè)機(jī)器周期的高電平就可以使單片機(jī)復(fù)位。2.測溫部分傳統(tǒng)的溫度檢測大多以熱敏電阻為溫度傳感器,這種熱敏傳感器的工作原理是其電阻值隨著溫度的變化而發(fā)生顯著變化,熱敏傳感器廣泛用于一般精度的溫度測量,或在計(jì)量設(shè)備、晶體管電路中作溫度補(bǔ)

21、償。由于熱敏電阻的可靠性差,測量溫度準(zhǔn)確率低,而且必須經(jīng)過專門的接口電路轉(zhuǎn)換為數(shù)字信號(hào)后才能由單片機(jī)進(jìn)行處理,在高精度要求的溫度檢測應(yīng)用中,熱敏電阻已經(jīng)被精度高、準(zhǔn)確性好的各種集成溫度采集設(shè)備所代替。本部分采用的是DS18B20傳感器進(jìn)行溫度測量,它在測量溫度、轉(zhuǎn)換時(shí)間、傳輸距離、分辨率等方面也有很大的改進(jìn)。與傳統(tǒng)的熱敏電阻相比,它不僅能夠直接讀出被測溫度值,并且可以根據(jù)實(shí)際要求通過簡單的變成來讀取9到12位的溫度值,DS18B20溫度變換功率來源于數(shù)據(jù)總線,總線本身也可以向所掛接的DS18B20供電,而無需額外電源,因而使用DS18B20可使系統(tǒng)結(jié)構(gòu)更簡單,可靠性更高,因此,DS18B20被

22、廣泛應(yīng)用于溫度采集與處理、數(shù)字溫度計(jì)及各種溫度控制系統(tǒng)中。 3.控制電路部分該部分通過單片機(jī)的P口輸出的高低電平來控制固態(tài)繼電器的通斷,從而決定電熱絲是否加熱,當(dāng)P口輸出低電平時(shí),加熱電阻通電,周圍的溫度緩慢升高,DS18B20測得的溫度值也升高;當(dāng)P口輸出高電平時(shí),加熱電路斷開,溫度回落。4.電平轉(zhuǎn)換與串口通信部分由于單片機(jī)的TTL電平與計(jì)算機(jī)要求的232電平并不兼容,故使用MAX232芯片對(duì)電平進(jìn)行轉(zhuǎn)換,轉(zhuǎn)換后的電平通過串口與計(jì)算機(jī)進(jìn)行串口通信。2.3 軟件總體方案設(shè)計(jì)溫度控制系統(tǒng)的硬件電路確定之后,其主要功能將依賴于軟件來實(shí)現(xiàn),本系統(tǒng)的軟件主要是完成溫度數(shù)據(jù)的采集并把采集的數(shù)據(jù)通過串口通

23、信傳送給上位機(jī),同時(shí)接收上位機(jī)的命令,達(dá)到溫度控制的目的。軟件具體結(jié)構(gòu)框圖如圖2.2所示:開始初始化調(diào)用溫度模塊程序?qū)囟葌魉徒o上位機(jī)繼電器控制接收上位機(jī)指令圖2.2 系統(tǒng)結(jié)構(gòu)圖3 溫度控制系統(tǒng)硬件系統(tǒng)設(shè)計(jì)本系統(tǒng)需要焊接硬件電路。硬件電路作為整個(gè)系統(tǒng)運(yùn)行的必要框架,是軟件正常運(yùn)行的結(jié)構(gòu)基礎(chǔ),離開了硬件架構(gòu),整個(gè)系統(tǒng)需要實(shí)現(xiàn)的功能就無從談起。本章內(nèi)容首先介紹數(shù)字式溫度傳感器,說明了傳感器的使用特點(diǎn),以及它的工作原理及主要特點(diǎn)。其次分別介紹了系統(tǒng)的硬件模塊:單片機(jī)最小系統(tǒng)、DS18B20與單片機(jī)接口電路、控制電路、電平轉(zhuǎn)換和串口通信電路。3.1 單片機(jī)最小系統(tǒng)設(shè)計(jì)本系統(tǒng)主控芯片選用的是STC89C

24、52單片機(jī),是由深圳宏晶公司代理銷售的一款MCU,是美國設(shè)計(jì)生產(chǎn)的一種低電壓、高性能CMOS8位單片機(jī),片內(nèi)含8kbytes的可反復(fù)寫的FlashROM和128位bytes和RAM,2個(gè)16位定時(shí)計(jì)數(shù)器。STC89C52單片機(jī)內(nèi)部主要包括累加器ACC、程序狀態(tài)字PSW、地址指示器DPTR、制度存儲(chǔ)器ROM、隨機(jī)存取存儲(chǔ)器RAM、寄存器、并行I/O接口P0-P3,定時(shí)器/計(jì)數(shù)器、串行I/O接口以及定時(shí)控制邏輯電路等,這些部件通過內(nèi)部總線連接起來,構(gòu)成一個(gè)完整的微型計(jì)算機(jī),其管腳圖如圖3.1所示:圖3.1 STC89C52引腳圖單片機(jī)系統(tǒng)是本溫度測控系統(tǒng)的核心部件,包括時(shí)鐘電路和復(fù)位電路的設(shè)計(jì)。時(shí)

25、鐘電路采用的是內(nèi)部方式時(shí)鐘電路(如圖3.2所示)。STC89C52要形成時(shí)鐘信號(hào),必須外接元件。用外接11.0592 MHz晶振以及電容C1和C2構(gòu)成并聯(lián)諧振電路,接在反饋回路中,電容C1和C2的值選擇為30pF。圖3.2 單片機(jī)內(nèi)部方式時(shí)鐘電路圖本系統(tǒng)的復(fù)位電路是采用按鈕復(fù)位的電路,如圖3.3所示,是常用復(fù)位電路之一。當(dāng)STC89C52單片機(jī)的ALE及PSEN兩引腳輸出高電平,RET引腳高電平到時(shí),單片機(jī)復(fù)位。RET/VPD端的高電平直接由上電瞬間產(chǎn)生則為上電復(fù)位。若通過按動(dòng)按鈕產(chǎn)生高電平復(fù)位稱手動(dòng)復(fù)位。上電時(shí),剛接通電源,電容C相當(dāng)于瞬間短路,+5V立即加到RET/VPD端,該高電平使ST

26、C89C52全機(jī)自動(dòng)復(fù)位,這就是上電復(fù)位;若運(yùn)行過程中需要程序從頭執(zhí)行,只需按動(dòng)按鈕即可。按下按鈕,則直接把+5V加到了RET/VPD端從而復(fù)位稱為手動(dòng)復(fù)位。復(fù)位后,P0到P3并行I/O口全為高電平,其它寄存器全部清零,只有SBUF寄存器狀態(tài)不確定。圖3.3 單片機(jī)復(fù)位電路原理圖由單片機(jī)以及時(shí)鐘電路和復(fù)位電路構(gòu)成了單片機(jī)的最小系統(tǒng),最小系統(tǒng)的電路圖如圖3.4所示:圖3.4 單片機(jī)最小系統(tǒng)電路圖3.2 測溫電路設(shè)計(jì)本部分電路主要通過傳感器來實(shí)現(xiàn)對(duì)溫度的測量,本系統(tǒng)選用的是DS18B20傳感器,DS18B20是美國DALLAS公司繼DS1820之后推出的增強(qiáng)型單總線數(shù)字溫度傳感器。它在測溫精度、轉(zhuǎn)

27、換時(shí)間、傳輸距離、分辨率等方面較DS1820有了很大的改進(jìn),給用戶帶來了更方便的使用和更令人滿意的效果。3.2.1 DS18B20的介紹1. DS18B20的結(jié)構(gòu)DS18B20主要由寄生電源、溫度傳感器、64位串行ROM單線接口、存儲(chǔ)中間數(shù)據(jù)的高速暫存器(內(nèi)含便箋式RAM)、用于存儲(chǔ)用戶設(shè)定的溫度上下限值的TH和TL觸發(fā)器存儲(chǔ)與控制邏輯、8位循環(huán)冗余檢驗(yàn)碼(CRC)發(fā)生器部分。DS18B20管腳排列如圖3.5所示:圖3.5 DS18B20的引腳圖本設(shè)計(jì)使用的是三引腳的產(chǎn)品。其中,1號(hào)引腳接地,2號(hào)引腳接數(shù)據(jù)端,3號(hào)引腳接電源。2. DS18B20的主要特點(diǎn)數(shù)字型智能溫度傳感器有以下主要特點(diǎn):(

28、1) 適應(yīng)電壓范圍更寬,電壓范圍:3.05.5V,在寄生電源方式下可由數(shù)據(jù)線供電。(2) 獨(dú)特的單線接口方式,DS18B20 在與微處理器連接時(shí)僅需要一條口線即可實(shí)現(xiàn)微處理器與 DS18B20 的雙向通訊。 (3) DS18B20 支持多點(diǎn)組網(wǎng)功能,多個(gè) DS18B20 可以并聯(lián)在唯一的單總線上,實(shí)現(xiàn)組網(wǎng)多點(diǎn)測溫 。(4) DS18B20 在使用中不需要任何外圍元件,全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi) 。(5) 溫范圍55125,在-10+85時(shí)精度為0.5 。(6) 溫度分辨力可編程。DS18B20的數(shù)字溫度輸出可進(jìn)行912位編程。在實(shí)際應(yīng)用時(shí),需要在分辨力與轉(zhuǎn)換時(shí)間兩者

29、之間權(quán)衡考慮。當(dāng)DS18B20工作在12位分辨力時(shí),溫度與數(shù)字輸出的對(duì)應(yīng)關(guān)系見表3.1。表3.3 DS18B20輸出數(shù)據(jù)與溫度的對(duì)應(yīng)關(guān)系溫度/數(shù)字輸出(二進(jìn)制)數(shù)字輸出(十六進(jìn)制)+1250000 0111 1101 000007D0H+850000 0101 0101 00000550H+25.06250000 0001 1001 00010191H+10.1250000 0001 1010 001000A2H+0.50000 0001 1010 10000008H00000 0000 0000 00000000H-10.1251111 1111 0101 1110FF5EH-25.0625

30、1111 1110 0101 1111FE6FH-551111 1100 1001 0000FC90H(7) 測量結(jié)果直接輸出數(shù)字溫度信號(hào),以“一線總線”串行傳送給 CPU,同時(shí)可傳送 CRC 校驗(yàn)碼,具有極強(qiáng)的抗干擾糾錯(cuò)能力 。(8) 測量結(jié)果直接輸出數(shù)字溫度信號(hào),以“一線總線”串行傳送給 CPU,同時(shí)可傳送 CRC 校驗(yàn)碼,具有極強(qiáng)的抗干擾糾錯(cuò)能力 。3. DS18B20測溫原理用一個(gè)高溫度系數(shù)的振蕩器確定一個(gè)門周期,內(nèi)部計(jì)數(shù)器在這個(gè)門周期內(nèi)對(duì)一個(gè)低溫度系數(shù)的振蕩器的脈沖進(jìn)行計(jì)數(shù)來得到溫度值。計(jì)數(shù)器被預(yù)置到對(duì)應(yīng)于-55的一個(gè)值。如果計(jì)數(shù)器在門周期結(jié)束前達(dá)到0,則溫度寄存器(同樣被預(yù)置到-5

31、5)的值增加,表明所測量的溫度大于-55。同時(shí),計(jì)數(shù)器被復(fù)位到一個(gè)值,這個(gè)值由斜坡式累加器電路確定,斜坡式累加器電路用來補(bǔ)償感溫振蕩器的拋物線特性。然后計(jì)數(shù)器又開始計(jì)數(shù)直到0,如果門周期仍未結(jié)束,將重復(fù)這一過程。斜坡式累加器用來補(bǔ)償感溫振蕩器的非線性,以期在測溫時(shí)獲得比較高的分辨力。這是通過改變計(jì)數(shù)器對(duì)溫度每增加一度所需計(jì)數(shù)的值來實(shí)現(xiàn)的。因此,要想獲得所需的分辨力,必須同時(shí)知道在給定溫度下計(jì)數(shù)器得值和每一度的計(jì)數(shù)值。溫度測電路的方框圖如圖3.6所示:停止增加斜率累加器減法計(jì)數(shù)器1減法計(jì)數(shù)器2比較計(jì)數(shù)器溫度寄存器減到0減到0預(yù)置高溫度系數(shù)振蕩器低溫度系數(shù)振蕩器預(yù)置圖3.6 DS18B20測溫原理

32、圖3.2.2 測溫電路設(shè)計(jì)本文中測溫電路主要使用DS18B20傳感器,通過P1.0口與單片機(jī)相連,實(shí)現(xiàn)數(shù)據(jù)的傳遞,其具體硬件原理圖如圖3.7所示:圖3.7 測溫電路原理圖DS18B20芯片有兩種供電方式:寄生電源供電方式和外部電源供電方式。本文采用的是外部電源供電方式。在外部電源供電方式下,DS18B20工作電源由VDD引腳接入,此時(shí)I/O線不需要強(qiáng)上拉,不存在電源電流不足的問題,可以保證轉(zhuǎn)換精度,同時(shí)在理論上總線上可以掛接任意多個(gè)DS18B20傳感器,組成多點(diǎn)測溫系統(tǒng)。注意:在外部供電的方式下,DS18B20的GND引腳不能懸空,否則不能轉(zhuǎn)換溫度,讀取的溫度總是85。外部電源供電方式是DS1

33、8B20的最佳工作方式,工作穩(wěn)定可靠,抗干擾能力強(qiáng),而且電路也比較簡單,可以開發(fā)出穩(wěn)定可靠的多點(diǎn)溫度監(jiān)控系統(tǒng),在外接電源方式下,可以充分發(fā)揮DS18B20寬電源電壓范圍的優(yōu)點(diǎn),即使電源電壓VCC降到3V,依然能夠保證溫度量精度。在實(shí)際應(yīng)用中還需要注意的是,連接DS18B20的總線電纜是有長度限制的,試驗(yàn)中,當(dāng)采用普通信號(hào)電纜傳輸長度超過50m時(shí),讀取的溫度數(shù)據(jù)將發(fā)生錯(cuò)誤,當(dāng)將總線電纜改為雙絞線帶屏蔽電纜時(shí),正常通信距離可達(dá)150m,當(dāng)采用每米絞合次數(shù)更多的雙絞線帶屏蔽電纜時(shí),正常通信距離進(jìn)一步加長,這種情況主要是由總線分布電容使信號(hào)波形發(fā)生畸形造成的,因此,在用DS18B20進(jìn)行長距離測溫系統(tǒng)

34、設(shè)計(jì)時(shí),要充分考慮總線分布電容和阻抗匹配問題。3.3 控溫電路設(shè)計(jì)控制電路是硬件電路部分中十分重要的一部分,這部分的功能通過改變單片機(jī)輸出口高低電平來控制固態(tài)繼電器的開關(guān)通斷,調(diào)節(jié)加熱電阻絲的他通斷,從而達(dá)到控制水溫的目的,使之達(dá)到設(shè)定溫度值。在設(shè)計(jì)這部分電路時(shí),選用下面的方案。該方案所需的元器件主要有:1.電加熱絲電加熱絲的選擇是主要要考慮穩(wěn)定性,耐熱性能,額定功率等。在此電路中,選用了一個(gè)300W的電加熱棒來作為電熱絲,以此來加熱容器內(nèi)的水,水的溫度則是被控對(duì)象。2.固態(tài)繼電器主要作用是控制加熱電路的通斷,它是用半導(dǎo)體器件代替?zhèn)鹘y(tǒng)電接點(diǎn)作為切換裝置的具有繼電器特性的無觸點(diǎn)開關(guān)器件,單相SS

35、R為四端有源器件,其中兩個(gè)輸入控制端,兩個(gè)輸出端,輸入輸出間為光隔離,輸入端加上直流或脈沖信號(hào)到一定電流值后,輸出端就能從斷態(tài)轉(zhuǎn)變成通態(tài)。固態(tài)繼電器的有點(diǎn)可以歸結(jié)為以下幾點(diǎn):(1) 高壽命,高可靠:SSR沒有機(jī)械零部件,有固體器件完成觸點(diǎn)功能,由于沒有運(yùn)動(dòng)的零部件,因此能在高沖擊,振動(dòng)的環(huán)境下工作,由于組成固態(tài)繼電器的元器件的固有特性,決定了固態(tài)繼電器的壽命長,可靠性高。 (2) 靈敏度高,控制功率小,電磁兼容性好:固態(tài)繼電器的輸入電壓范圍較寬,驅(qū)動(dòng)功率低,可與大多數(shù)邏輯集成電路兼容不需加緩沖器或驅(qū)動(dòng)器。 (3) 快速轉(zhuǎn)換:固態(tài)繼電器因?yàn)椴捎霉腆w器件,所以切換速度可從幾毫秒至幾微妙。(4) 電

36、磁干擾小:固態(tài)繼電器沒有輸入“線圈”,沒有觸點(diǎn)燃弧和回跳,因而減少了電磁干擾。大多數(shù)交流輸出固態(tài)繼電器是一個(gè)零電壓開關(guān),在零電壓處導(dǎo)通,零電流處關(guān)斷,減少了電流波形的突然中斷,從而減少了開關(guān)瞬態(tài)效應(yīng)。SSR在導(dǎo)通時(shí),元件將承受P=V(管壓降)I(負(fù)載)的耗散功率,其中V有效值和I有效值分別為飽和壓降和工作電流的有效值。此時(shí),需依據(jù)實(shí)際工作環(huán)境條件,嚴(yán)格參照額定工作電流時(shí)允許的外殼溫升(75),合理選用散熱器尺寸或降低電流使用,否則將因過熱引起失控,甚至造成產(chǎn)品損壞。該方案的特點(diǎn)是:元器件簡單、價(jià)格低、應(yīng)用廣泛。電路的搭接簡單易行。實(shí)際操作時(shí)安全。由于電源電壓很小,以致溫度不會(huì)上升太高,故只能在

37、被控制的溫度不太高的情況下使用。由于本設(shè)計(jì)處于初級(jí)設(shè)計(jì)階段,且控制溫度不使太高,因此采用器件較為簡單、成本較低、易于實(shí)現(xiàn)的方案。該方案的設(shè)計(jì)圖如圖3.8所示:圖3.8 控溫電路原理圖3.4 電平轉(zhuǎn)換及串口通信電路STC89C52單片機(jī)串行口的輸入輸出均為TTL電平,這種以TTL電平傳輸數(shù)據(jù)的方式,抗干擾性差,傳輸距離短,為了提高串行通信的可靠性,增大通信距離,工程設(shè)計(jì)人員一般采用標(biāo)準(zhǔn)串行接口,如RS-232、RS-422、RS485等標(biāo)準(zhǔn)單行接口來進(jìn)行串行通信,本文選用RS-232標(biāo)準(zhǔn)串行接口來實(shí)現(xiàn)穿行通信的功能,電平轉(zhuǎn)換部分選用MAX232芯片來實(shí)現(xiàn),其具體電路圖如3.9所示:圖3.9 電平

38、轉(zhuǎn)換及串行通信電路圖3.4.1 電平轉(zhuǎn)化電路由于RS-232C的邏輯0電平規(guī)定為十5 V+15V,邏輯1電平規(guī)定為-15V-5V,因此,在與TTL電路接口時(shí)必須經(jīng)過電平轉(zhuǎn)換。此系統(tǒng)選用的電平轉(zhuǎn)換芯片為MAX232芯片。其引腳分配圖如圖3.10所示:圖3.10 MAX232引腳分配圖MAX232是MAXIM公司生產(chǎn)的、包含兩路接收器和驅(qū)動(dòng)器的RS-232C電平轉(zhuǎn)換芯片,適用于各種232通信接口。MAX232芯片內(nèi)部有一個(gè)電源電壓變換器,可以把輸入的+5V電源電壓變換成為RS-232C輸出電平所需的士lOV電壓。所以,采用此芯片接口的串行通信系統(tǒng)只需單一的+5V電源就可以了。由于其適應(yīng)性強(qiáng),加之價(jià)

39、格低廉,硬件接口簡單,所以被廣泛采用。3.4.2 串口通信電路隨著計(jì)算機(jī)系統(tǒng)的應(yīng)用和微機(jī)網(wǎng)絡(luò)的發(fā)展,計(jì)算機(jī)的通信功能顯得越來越重要。從廣義上講,計(jì)算機(jī)通信可以分為并行通信和串行通信。并行通信速度快、實(shí)時(shí)性好,但占用的口線多、成本高、通信距離短,不適用于小型化產(chǎn)品。串行通信只需一根傳輸線即可完成通信功能,成本低,在通信中得到了廣泛應(yīng)用。計(jì)算機(jī)與外界的數(shù)據(jù)傳送大多數(shù)都是串行的,通常把計(jì)算機(jī)與外界的數(shù)據(jù)傳送稱之為通信,因此提到通信就是指串行通信。串行通信是計(jì)算機(jī)與外圍設(shè)備之間進(jìn)行信息交換的一種方式,是指數(shù)據(jù)一位一位的按順序在一根信號(hào)線上進(jìn)行傳輸?shù)耐ㄐ欧绞?。串行通信有兩種基本工作方式:異步傳送和同步傳

40、送。在單片機(jī)中使用的串行通信都是異步方式,因此本系統(tǒng)中采用異步串行通信方式來實(shí)現(xiàn)單片機(jī)與PC之間的通信。異步串行通信是以字符為單位組成的幀傳送的,即一幀一幀的傳送。幀由發(fā)送端一幀一幀地發(fā)送,通過傳輸線被接收設(shè)備一幀一幀地接收。發(fā)送端何時(shí)開始發(fā)送和何時(shí)結(jié)束發(fā)送是由幀格式規(guī)定的。通信線上沒有數(shù)據(jù)傳送時(shí)為邏輯高電平,每當(dāng)接收端檢測到傳輸線上發(fā)送來的邏輯低電平(幀起始位)時(shí)就知道發(fā)送端已開始發(fā)送,每當(dāng)接收端接收到幀的停止時(shí)就知道一幀字符信息已發(fā)送完畢。幀是一個(gè)字符的完整通信格式,由起始位、數(shù)據(jù)位、奇偶校驗(yàn)位和停止位等四部分組成。字符串送的幀格式如圖3.11所示:圖3.11 異步通信的幀格式1.幀中各部

41、分結(jié)構(gòu)和功能如下:(1) 起始位:位于字符幀開頭,始終為邏輯“0”低電平。用于向接收設(shè)備表示發(fā)送端開始發(fā)送一幀信息。(2) 數(shù)據(jù)位:緊跟起始位之后,數(shù)據(jù)位的個(gè)數(shù)可以是5, 6,7,8或9位。PC機(jī)中經(jīng)常采用7位或8位數(shù)據(jù)傳送,8051串行口采用8位或9位數(shù)據(jù)傳送。傳送時(shí),數(shù)據(jù)位從最低有效位開始發(fā)送,依次在接收設(shè)備中被轉(zhuǎn)換為并行數(shù)據(jù)。(3) 奇偶校驗(yàn)位:位于數(shù)據(jù)位后,用于對(duì)字符傳送作正確性檢查,因此奇偶校驗(yàn)位是可選擇的,共有3種可能,即奇(4) 停止位:位于字符幀末尾,為邏輯“1”高電平,用于標(biāo)志一個(gè)字符傳送的結(jié)束??扇?,1.5或2位。2.串行通信的數(shù)據(jù)傳送方式在串行通信中,數(shù)據(jù)通常是校驗(yàn)、偶

42、校驗(yàn)和無校驗(yàn),由用戶根據(jù)需要選定。在發(fā)送端和接收端之間進(jìn)行傳送,根據(jù)數(shù)據(jù)傳送的方向,可分成三種基本的傳送形式:單工、全雙工和半雙工。3.串行通信的傳送速率在串行通信中,用“波特率”來描述數(shù)據(jù)的傳輸速率。所謂波特率,即每秒鐘傳送的二進(jìn)制位數(shù),其單位為bps。它是衡量串行數(shù)據(jù)傳輸速度決慢的重要指標(biāo)。接收方的波特率和發(fā)送方的波特率可以分別設(shè)置,但接收方的接收波特率必須與發(fā)送方的發(fā)送波特率相同。在串行通信時(shí),要求雙方都采用一個(gè)標(biāo)準(zhǔn)接口,使不同的設(shè)備可以方便地連接起來進(jìn)行通信。RS-232C是美國電子工業(yè)EIA公布的串行通信標(biāo)準(zhǔn),RS代表推薦,232是標(biāo)識(shí)號(hào),C表示修改的次數(shù)。RS-232C適用于短距離

43、或帶調(diào)制解器的通信場合,目前已廣泛應(yīng)用于計(jì)算機(jī)外圍設(shè)備的串行異步通信接口中。RS-232C的機(jī)械特性主要指兩個(gè)通信裝置如何實(shí)現(xiàn)機(jī)械對(duì)接。RS-232C是數(shù)據(jù)終端設(shè)備DTE和數(shù)據(jù)通訊設(shè)備DCE之間的接口,RS-232C的機(jī)械標(biāo)準(zhǔn)規(guī)定DTE應(yīng)配置DB25的插頭,即25針連接器,DEC應(yīng)配置DB25的插座,即25孔連接器。實(shí)際應(yīng)用中,DB25型連接器的許多信號(hào)用不上,對(duì)于一般的雙工通信,僅需幾條信號(hào)線就可以實(shí)現(xiàn),包括一條發(fā)送線、一條接收線和一條地線。因此普遍采用DB9插頭,即9針連接器。為使數(shù)據(jù)PC和單片機(jī)之間無差錯(cuò)地傳送,本文采用協(xié)議來約定數(shù)據(jù)的傳輸。PC與單片機(jī)雙方的通信協(xié)議約定如下:波特率:9

44、600bps數(shù)據(jù)格式:8位數(shù)據(jù)位,1位停止位,無奇偶校驗(yàn)。傳送方式:單片機(jī)采用查詢法向PC發(fā)送數(shù)據(jù),傳送的數(shù)據(jù)格式為二進(jìn)制格式。DS18B20轉(zhuǎn)換出的溫度信息包含兩個(gè)字節(jié),經(jīng)過處理后,一個(gè)字節(jié)為溫度的整數(shù)部分,另一個(gè)字節(jié)為溫度的小數(shù)部分。每個(gè)DS1820共傳送二個(gè)字節(jié),第一個(gè)字節(jié)是溫度整數(shù)部分,第二個(gè)字節(jié)是溫度小數(shù)部分。4 溫度控制系統(tǒng)的軟件方案設(shè)計(jì)溫度控制電路的硬件電路確定之后,測控系統(tǒng)的主要功能將依賴于軟件實(shí)現(xiàn)。軟件的設(shè)計(jì)應(yīng)遵循結(jié)構(gòu)化設(shè)計(jì)原則,在總體概況設(shè)計(jì)的基礎(chǔ)上進(jìn)行具體的詳細(xì)設(shè)計(jì),功能分解,模塊劃分,細(xì)化軟件層次,優(yōu)化軟件結(jié)構(gòu),以達(dá)到模塊功能的獨(dú)立性,執(zhí)行的高效性??傊O(shè)計(jì)的程序應(yīng)該

45、達(dá)到可讀性,可理解性,可維護(hù)性,有效性,可修改性。該溫度控制系統(tǒng)程序主要包括以下幾個(gè)模塊:初始化子程序、DS18B20測溫子程序、串口通信子程序、溫度控制子程序等。4.1 初始化子程序設(shè)計(jì)在初始化子程序中,主要是對(duì)單片機(jī)的各種參數(shù)進(jìn)行軟件設(shè)置,本文設(shè)置的是定時(shí)器1、工作方式2、波特率為9600Kbps。void InitUART(void) TMOD = 0x20; /*定時(shí)器1,工作方式2*/ SCON = 0x50; TH1 = 0xFD; /*設(shè)置波特率為9600Kbps*/ TL1 = TH1; PCON = 0x00; EA = 1; ES = 1; TR1 = 1;4.2 DS18

46、B20測溫子程序設(shè)計(jì)DS18B20測溫過程,調(diào)用程序開始后,首先進(jìn)行初始化,定義全局變量,局部變量等。然后判斷DS18B20是否存在,是則執(zhí)行下不操作命令,否則返回繼續(xù)判斷程序,接下來執(zhí)行程序存儲(chǔ)器ROM操作命令,然后執(zhí)行存儲(chǔ)操作命令,延時(shí)等待轉(zhuǎn)換完成后執(zhí)行讀取操作命令,最后結(jié)束并輸出結(jié)果。其具體工作流程圖如圖4.1所示:NY返回讀取溫度值存儲(chǔ)操作命令ROM操作命令開始初始化DS18B20是否存在圖4.1 測溫子程序流程圖具體子程序如下:void TemperatuerResult(void) p = id_buff; ReadID(); Init18b20 ();WriteByte(0xcc

47、); /跳過 rom WriteByte(0x44); /溫度轉(zhuǎn)換 Init18b20 (); WriteByte(0xcc); /跳過 rom WriteByte(0xbe); /讀取溫度 p = temp_buff; GetTemp();從DS18B20測溫工作流程圖可以看出,主CPU經(jīng)過單總線接口訪問DS18B20芯片的命令可以分為初始化命令、ROM操作命令、存儲(chǔ)器操作命令。1.DS18B20初始化命令單總線上的所有處理均從初始化命令開始,初始化命令為主機(jī)發(fā)出一個(gè)復(fù)位脈沖并由總線送入DS18B20芯片,隨后等待芯片送出的存在的應(yīng)答脈沖。若檢測到應(yīng)答脈沖,則說明DS18B20芯片可以正常工

48、作,若無則繼續(xù)檢測。void Init18b20 (void) dq=1; _nop_(); dq=0; TempDelay(86); /延時(shí) 530 uS/80 _nop_(); dq=1; TempDelay(14); /延時(shí)100 uS/14 _nop_(); _nop_(); _nop_(); if(dq=0) flag = 1; /DS18B20 存在 else flag = 0; / DS18B20 不存在 TempDelay(20); /延時(shí)20 _nop_(); _nop_(); dq = 1;2.ROM操作命令一旦總線主機(jī)檢測到從屬器件的存在,它便可以發(fā)出器件ROM操作命令之

49、一,所有ROM操作命令均為8位,在單片機(jī)檢測到應(yīng)答脈沖后,就可以發(fā)ROM命令,該命令字要通過1-Wire通信協(xié)議規(guī)定的嚴(yán)格的寫時(shí)隙,逐位寫到單總線上,DS18B20會(huì)自動(dòng)接收到這些命令,并準(zhǔn)備響應(yīng)相應(yīng)的操作。與DS18B20的通信經(jīng)過一個(gè)單線接口,在單線接口情況下,在ROM操作未建立之前,不能使用存儲(chǔ)器和控制操作,主機(jī)必須首先提供5種ROM操作命令之一:Read ROM(讀ROM)、Match ROM(匹配ROM)、Search ROM(搜索ROM)、Skip ROM(跳過ROM)、Alarm Search(告警搜索)。3.存儲(chǔ)器操作命令在DS18B20成功地執(zhí)行了ROM操作序列之后,要使用存

50、儲(chǔ)器命令。主機(jī)可以提供6種存儲(chǔ)器命令:溫度變換、讀暫存器、寫暫存器、復(fù)制暫存器、重寫、讀供電方式。4.3 串口通信子程序設(shè)計(jì)1.數(shù)據(jù)的接收接收數(shù)據(jù)時(shí),不斷查詢RI是否置1,一旦發(fā)現(xiàn)RI置1后就將串行數(shù)據(jù)緩存器SBUF讀出,再把接收中斷標(biāo)志位RI清0。void UARTInterrupt(void) interrupt 4 if(RI) RI = 0; if(!inbufful) inbufinlast= SBUF; /*放入數(shù)據(jù)*/ inlast+; /*最后放入的位置加一*/ inbufsign=1; if (inlast=ILEN) inlast=0; /*地址到頂部回到底部*/ if (

51、inlast=getlast)inbufful=1; /*接收緩沖區(qū)滿置滿標(biāo)志*/ else TI = 0;unsigned char GetByte (void)unsigned char c ;unsigned int i; ES=0; c= inbufgetlast; /*取數(shù)據(jù)*/ getlast+; /*最后取走的數(shù)據(jù)位置加一*/ inbufful=0; /*輸入緩沖區(qū)的滿標(biāo)志清零*/ if (getlast=ILEN) getlast=0; /*地址到頂部回到底部*/ if (getlast=inlast) inbufsign=0; /*地址相等置接收緩沖區(qū)空空標(biāo)志,再取數(shù)前要檢該

52、標(biāo)志*/ ES=1; return (c); /*取回?cái)?shù)據(jù)*/2.數(shù)據(jù)的發(fā)送本系統(tǒng)采用的是單點(diǎn)采集,即單片機(jī)采集一個(gè)數(shù)據(jù)便保存起來,待全部采集完后存放在指定存儲(chǔ)單元中,通過串口發(fā)送給上位機(jī)。發(fā)送結(jié)束后清發(fā)送標(biāo)志位。void SendOneByte(unsigned char c) ES=0; SBUF = c; while(!TI); TI = 0; ES=1;4.4 控制部分子程序設(shè)計(jì)本部分主要實(shí)現(xiàn)的功能是接收上位機(jī)的命令,當(dāng)接收的命令為“K”時(shí),對(duì)單片機(jī)P0.1輸出低電平,固態(tài)繼電器閉合,從而接通加熱絲使其對(duì)水進(jìn)行加熱;反之,若接收的命令為“G”,則P0.1口輸出高電平,加熱絲停止加熱,使

53、溫度回落。子程序的流程圖如圖4.2所示: “K”“G”接收數(shù)據(jù)P0.1=0加熱絲工作P0.1=1加熱絲停止工作判斷數(shù)據(jù)為“K”還是“G” 開始圖4.2 控制部分流程圖具體子程序如下: if (inbufsign)k=GetByte(); if (k=K) DRV=0; if (k=G) DRV=1; 5 系統(tǒng)調(diào)試STC89C52單片機(jī)功能雖然很強(qiáng),但只是一個(gè)芯片,本身無自開發(fā)能力,必須借助一定的開發(fā)系統(tǒng)來開發(fā)軟件和對(duì)硬件電路進(jìn)行診斷、調(diào)試。本設(shè)計(jì)使用的仿真系統(tǒng)是偉福開發(fā)系統(tǒng),對(duì)所設(shè)計(jì)的測控系統(tǒng)進(jìn)行仿真。該仿真系統(tǒng)可以對(duì)用戶樣機(jī)硬件電路進(jìn)行診斷與檢查,具有程序的輸入與修改,運(yùn)行、調(diào)試、排錯(cuò)等功能

54、,而且具有較全的開發(fā)軟件,支持多種語言進(jìn)行軟件開發(fā)。5.1 硬件部分調(diào)試按照電路圖焊接好電路板后,就需要對(duì)硬件電路進(jìn)行調(diào)試了,我焊接的硬件電路板如圖5.1所示:圖5.1 焊接完成后電路板硬件部分的調(diào)試主要是對(duì)照設(shè)計(jì)的電路圖,利用萬用表來檢測各個(gè)引腳之間有沒有虛焊,硬件板上各個(gè)相鄰引腳之間有沒有短路。1.系統(tǒng)板焊接完后,測試單片機(jī)各個(gè)功能管腳,當(dāng)測到(RESET)腳時(shí),發(fā)現(xiàn)不復(fù)位時(shí),此腳的電壓也為高電平。原因及解決方法:復(fù)位電路中有一些地方焊接得不對(duì)。解決方法:把復(fù)位電路中的錯(cuò)誤地方拆下來,再按照正確的方式焊接上。2.單片機(jī)復(fù)位電路中,經(jīng)查,10uF電容的兩個(gè)引腳發(fā)生短路,導(dǎo)致復(fù)位電路失效。經(jīng)重新焊接,使該部分功能恢復(fù)正常。3.溫度控制電路的調(diào)試在調(diào)試溫度控制電路時(shí),由于控制比較復(fù)雜,所以采用先用面板上進(jìn)行插接,通過給一個(gè)高電平到控制電路輸入,看是否能控制繼電器的通斷以至控制加熱電路的通斷。在面板上調(diào)試成功后再焊接到電路板上。調(diào)試的目的是排除硬件和軟件的故障,使研制的樣機(jī)符合預(yù)定

溫馨提示

  • 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)論