




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
..單位代碼01學(xué)號(hào)100119026分類號(hào)TP273密級(jí)畢業(yè)設(shè)計(jì)說(shuō)明書基于PID的水溫控制系統(tǒng)設(shè)計(jì)院〔系〕名稱信息工程學(xué)院專業(yè)名稱測(cè)控技術(shù)與儀器學(xué)生指導(dǎo)教師2014年4月25日..基于PID的水溫控制系統(tǒng)設(shè)計(jì)摘要本次設(shè)計(jì)采用proteus仿真軟件,以AT89C51單片機(jī)做為主控單元,運(yùn)用PID控制算法,仿真實(shí)現(xiàn)了一個(gè)恒溫控制系統(tǒng)。設(shè)計(jì)中使用溫度傳感器DS18B20采集實(shí)時(shí)溫度,不需要復(fù)雜的信號(hào)調(diào)理電路和A/D轉(zhuǎn)換電路,能直接與單片機(jī)完成數(shù)據(jù)的采集和處理,使用PID算法控制加熱爐仿真模型進(jìn)展溫度控制,總體實(shí)現(xiàn)了一個(gè)恒溫控制仿真系統(tǒng)。系統(tǒng)設(shè)計(jì)中包含硬件設(shè)計(jì)和軟件設(shè)計(jì)兩局部,硬件設(shè)計(jì)包含顯示模塊、按鍵模塊、溫度采集模塊、溫度加熱模塊、蜂鳴器報(bào)警模塊。軟件設(shè)計(jì)的局部,采用分層模塊化設(shè)計(jì),主要有:鍵盤掃描、按鍵處理程序、數(shù)碼管顯示程序、繼電器控制程序、溫度信號(hào)處理程序、超溫報(bào)警程序。另外以AT89C51單片機(jī)為控制核心,利用PID控制算法提高了水溫的控制精度,使用PID控制算法實(shí)施自動(dòng)控制系統(tǒng),具有控制參數(shù)精度高、反映速度快和穩(wěn)定性好的特點(diǎn)。關(guān)鍵詞:proteus仿真,PID,AT89C51,DS18B20溫度控制..TheDesignofWaterTemperatureControlBasedonPIDAuthor:Tutor:AbstractThisdesignusesproteussimulationsoftwareandtakesAT89C51asmasterunit,usingPIDcontrolalgorithmtosimulationatemperaturecontrolsystem.TheDesignusestemperaturesensorDS18B20acquisitionreal-timetemperature,anddoesnotrequireplexsignalconditioningcircuitryandA/DconvertercircuitwiththeMCUpletingtheacquisitionandprocessingofdatadirectly.TheuseofPIDalgorithmcontrolfurnacetemperaturecontrolsimulationmodel,theoverallimplementationofatemperaturecontrolsimulationsystem.ThesystemdesigncontainshardwaredesignandsoftwaredesigntwopartsandtheHardwaredesignincludetemperaturecontrolcircuit,temperaturedetectionandLEDdisplaycircuitandsoon.Partofthesoftwaredesignadoptsmodularstructure.ThemainmoduleisKeypadscanning.Keyprocessingprogramdigitalpipedisplayprocedures,relaycontrolprocedures,temperaturesignalprocessingprogramandsupertemperaturealarmingprogram.InadditiontoAT89C51controlcore,theuseofPIDcontrolalgorithmtoimprovetheaccuracyoftemperaturecontrolusingPIDcontrolalgorithmtoimplementautomaticcontrolsystemwithhighprecisioncontrolparameters,reflectingthespeedandstabilitycharacteristics.Keywords:proteussimulation,PID,AT89C51,DS18B20TemperatureControl..目錄TOC\o"1-3"\h\u86731緒論 130941.1背景意義1321231.2溫度控制系統(tǒng)國(guó)外開(kāi)展現(xiàn)狀 192021.3本課題研究的主要容 2247132系統(tǒng)總體設(shè)計(jì)方案論證 4314922.1設(shè)計(jì)要求 4231052.2總體設(shè)計(jì)方案 446593系統(tǒng)的硬件設(shè)計(jì)611013.1系統(tǒng)硬件構(gòu)成概述 6203143.2各單元總體說(shuō)明 6318923.3按鍵單元 6129113.4LED數(shù)碼管顯示單元 7241163.5溫度超、低溫與異常情況報(bào)警單元 884683.6溫度測(cè)試單元 9151943.7溫度控制器件單元 10254824恒溫控制算法研究〔PID〕 11263364.1PID控制器的設(shè)計(jì) 1116294.2PID算法的流程實(shí)現(xiàn)方法與具體程序 1250815系統(tǒng)的軟件設(shè)計(jì) 16118395.1統(tǒng)軟件設(shè)計(jì)概述 16170065.2系統(tǒng)軟件程序流程及程序流程圖 1761245.3溫度數(shù)據(jù)顯示模塊分析 18278395.4測(cè)試分析 2030926模擬仿真結(jié)果 22..15262結(jié)論 253987致 262661參考文獻(xiàn) 276796附錄 29..1緒論1.1背景意義在現(xiàn)實(shí)情況中,由于環(huán)境中溫度值的滯后現(xiàn)象嚴(yán)重,慣性很大,且存在很多不確定的因素,所以很難建立準(zhǔn)確的數(shù)學(xué)模型,因此常常導(dǎo)致控制系統(tǒng)的性能不佳,有時(shí)還會(huì)出現(xiàn)控制不穩(wěn)定和失控現(xiàn)象。本次設(shè)計(jì)采用proteus仿真軟件,以AT89C51單片機(jī)做為主控單元,運(yùn)用PID控制算法,仿真實(shí)現(xiàn)了一個(gè)恒溫控制系統(tǒng),可以防止一些不確定的影響因素。傳統(tǒng)的繼電器溫控電路雖然運(yùn)用起來(lái)比擬簡(jiǎn)單,但由于繼電器運(yùn)作頻繁,可能會(huì)因觸點(diǎn)不良而影響正常工作?,F(xiàn)今在控制領(lǐng)域,一般使用PID算法進(jìn)展溫度控制,不過(guò)PID控制對(duì)象的數(shù)學(xué)參數(shù)也是難以建立的,并且當(dāng)擾動(dòng)因素不確定時(shí),參數(shù)調(diào)整會(huì)比擬麻煩,這依然是普遍存在的技術(shù)難題。本設(shè)計(jì)中的溫度采集是用數(shù)字溫度傳感器DS18B20,在其部集成了A/D轉(zhuǎn)換器,可使電路構(gòu)造更簡(jiǎn)單,且減少了溫度測(cè)量轉(zhuǎn)換時(shí)的精度損失,從而使測(cè)量溫度更為準(zhǔn)確。數(shù)字溫度傳感器DS18B20只用一個(gè)引腳,即可與單片機(jī)進(jìn)展連接了,這樣大大的減少了設(shè)計(jì)中接線麻煩的問(wèn)題,使得單片機(jī)可以節(jié)約許多端口。DS18B20芯片的體積又比擬小,且還是單線與主控芯片連接,于是在實(shí)際運(yùn)用中,常常把數(shù)字溫度傳感器DS18B20做成小型的測(cè)量溫度的探頭,即使是一些狹小的位置也能很方便的檢測(cè)到,使溫控系統(tǒng)發(fā)揮最大的作用[1]?,F(xiàn)在國(guó)外市場(chǎng)用單片機(jī)作為為核心的溫度控制系統(tǒng)已經(jīng)越來(lái)越廣泛了,且設(shè)計(jì)方案都很靈活,應(yīng)用起來(lái)相當(dāng)?shù)膹V泛,應(yīng)用于工業(yè)上的加熱爐、熱處理爐、反響爐,在我們?nèi)粘I钪械膽?yīng)用也是比擬廣的,如熱水器,室溫控制,農(nóng)業(yè)中的大棚溫度控制等等?,F(xiàn)在人們的物質(zhì)生活已經(jīng)轉(zhuǎn)好,隨之而來(lái)的就是對(duì)生活質(zhì)量的需求了。在舒適的溫度下休息、活動(dòng),在不同的季節(jié)里都可以吃到各種蔬菜、水果,等等這些都需要對(duì)溫度的控制??梢?jiàn)不僅在工業(yè)生產(chǎn)上溫度控制是重點(diǎn),在人們的日常生活中溫度控制領(lǐng)域也潛藏這巨大的前景。如飼養(yǎng)幾條魚(yú)兒也成為一種趨勢(shì),這也將會(huì)帶動(dòng)與之相關(guān)的產(chǎn)業(yè)也應(yīng)運(yùn)開(kāi)展起來(lái)。魚(yú)缸是養(yǎng)魚(yú)的必備用具,型魚(yú)缸也在市場(chǎng)上層出,其中水溫的控制是關(guān)鍵。1.2溫度控制系統(tǒng)國(guó)外開(kāi)展現(xiàn)狀目前,國(guó)外溫度控制系統(tǒng)正向著高精度、高智能化開(kāi)展。溫度控制系統(tǒng)在我國(guó)各個(gè)行業(yè)的應(yīng)用雖然已經(jīng)很普遍了,可是從國(guó)生產(chǎn)的溫度控制器來(lái)看,總體開(kāi)展水平還是落后與先進(jìn)國(guó)家,同先進(jìn)國(guó)家相比,還是有著很大的差距。在高端,高精度的溫度控制方面,我國(guó)的溫度控制技術(shù)受到了很大的局限性。在這方面有待與我們這代人的努力,同時(shí)在這方面我國(guó)還潛藏著巨大的潛力,有許多我們伸展的空間[2]。由于市場(chǎng)的需求,國(guó)以信息化時(shí)代的到來(lái),帶動(dòng)了溫度控制產(chǎn)業(yè)的迅速開(kāi)展。溫度已成為工業(yè)對(duì)象控制中一個(gè)最重要的參數(shù),特別是在化工工業(yè)、冶金工業(yè)、機(jī)械工業(yè)、電力工業(yè)、食品工業(yè)等等領(lǐng)域,都需要對(duì)各種加熱爐的溫度進(jìn)展準(zhǔn)確的控制。隨著信息工業(yè)不斷的開(kāi)展,傳統(tǒng)的控制方式已滿足不來(lái)高精度、高速度的控制要求了。必須不斷的開(kāi)發(fā)研究創(chuàng)造出新型的信息花的溫度控制系統(tǒng)。近幾年,國(guó)外對(duì)溫度控制系統(tǒng)都進(jìn)展了大量的研究。在各國(guó),溫度控制系統(tǒng)技術(shù)都已經(jīng)被列為未來(lái)控制領(lǐng)域研究的幾大方向之一,具有廣闊的應(yīng)用、市場(chǎng)前景。1.3本課題研究的主要容溫度是工業(yè)生產(chǎn)過(guò)程中最常見(jiàn)的變量參數(shù)之一,對(duì)溫度控制的準(zhǔn)確度,直接影響到產(chǎn)品的質(zhì)量。及時(shí)準(zhǔn)確地獲得溫度信息并對(duì)其進(jìn)展準(zhǔn)確的控制。不同產(chǎn)品和不同工藝要求下的溫度控制,所采用的控制方式和加熱方式都是不一樣的?,F(xiàn)今基于數(shù)字PID和單片機(jī)的溫度控制系統(tǒng)在工業(yè)生產(chǎn)上已經(jīng)被廣泛的使用,此系統(tǒng)的任務(wù)是對(duì)溫度進(jìn)展實(shí)時(shí)監(jiān)控。在控制過(guò)程中,系統(tǒng)采用的是數(shù)字PID控制算法來(lái)實(shí)現(xiàn)其功能的。傳統(tǒng)PID控制電路構(gòu)造相當(dāng)?shù)膹?fù)雜〔不適應(yīng)現(xiàn)代工業(yè)開(kāi)展的需求〕,對(duì)溫度進(jìn)展控制時(shí)需要配合可控硅控制電路才能實(shí)現(xiàn),此系統(tǒng)不僅器件煩多,生產(chǎn)本錢高,而且電路調(diào)試還很復(fù)雜。在新型的溫度控制系統(tǒng)中,運(yùn)用單片機(jī)來(lái)進(jìn)展數(shù)字PID運(yùn)算,這樣可以充分發(fā)揮其軟件系統(tǒng)的靈活性,可以使得工業(yè)生產(chǎn)中控制方便,簡(jiǎn)單和靈活性大等等優(yōu)點(diǎn)。而系統(tǒng)中的單片機(jī)是整個(gè)控制系統(tǒng)的核心。在溫度控制系統(tǒng)的設(shè)計(jì)中,溫度采集為很一個(gè)重要的模塊。在本次設(shè)計(jì)中,采用數(shù)字傳感器DS18B20來(lái)采集溫度。數(shù)字溫度傳感DS18B20只用一個(gè)引腳,即可與51單片機(jī)進(jìn)展連接了,這樣大大的減少了設(shè)計(jì)中接線麻煩的問(wèn)題,使得單片機(jī)可以節(jié)約許多端口。DS18B20芯片不僅體積比擬小,且還是單線與主控芯片連接,于是在實(shí)際運(yùn)用中,常常把數(shù)字溫度傳感器DS18B20做成小型的測(cè)量溫度的探頭,即使是一些狹小的位置也能很方便的檢測(cè)到,使溫控系統(tǒng)發(fā)揮最大的作用。先通過(guò)按鍵設(shè)置溫度,然后通過(guò)溫度傳感器DS18B20,從環(huán)境中采集溫度,由單片機(jī)獲取采集的溫度值,經(jīng)過(guò)處理后,可得到當(dāng)前環(huán)境溫度中一個(gè)比擬穩(wěn)定的溫度值,并且通過(guò)LED數(shù)碼管顯示。再去根據(jù)當(dāng)前設(shè)定的溫度值的上下限,溫度未到達(dá)預(yù)定的下限溫度時(shí),單片機(jī)向蜂鳴器發(fā)送高電平信號(hào)驅(qū)動(dòng)使其發(fā)出警報(bào)生,同時(shí)輸出高電平控制信號(hào)來(lái)驅(qū)動(dòng)加熱爐工作,為系統(tǒng)提供熱量,來(lái)升高溫度。溫度上升到預(yù)定上限溫度時(shí),單片機(jī)向蜂鳴器發(fā)送高電平信號(hào)使其發(fā)出警報(bào)生,同時(shí)輸出低電平控制信號(hào)來(lái)驅(qū)動(dòng)使得加熱爐停頓加熱,讓溫度慢慢回落。當(dāng)因環(huán)境溫度變化劇烈或因加熱、降溫設(shè)備出現(xiàn)故障時(shí),或者因溫度傳感頭出現(xiàn)故障,導(dǎo)致在一段時(shí)間不能將環(huán)境溫度調(diào)整到溫度限的時(shí),單片機(jī)向蜂鳴器發(fā)送高電平信號(hào)使其發(fā)出警報(bào)生。..2系統(tǒng)總體設(shè)計(jì)方案論證2.1設(shè)計(jì)要求一種基于數(shù)字PID和單片機(jī)的溫度控制系統(tǒng)設(shè)計(jì)。要求如下:1、超調(diào)量≤10%2、溫度連續(xù)可調(diào),圍為20℃~40℃3、人—機(jī)對(duì)話方便4、溫度誤差≤±0.5℃2.2總體設(shè)計(jì)方案在仿真設(shè)計(jì)中,先通過(guò)按鍵設(shè)置溫度,然后通過(guò)溫度傳感器DS18B20,從環(huán)境中采集溫度,由單片機(jī)獲取采集的溫度值,經(jīng)過(guò)處理后,可得到當(dāng)前環(huán)境溫度中一個(gè)比擬穩(wěn)定的溫度值,并且通過(guò)LED數(shù)碼管顯示。再去根據(jù)當(dāng)前設(shè)定的溫度值的上下限,溫度未到達(dá)預(yù)定的下限溫度時(shí),單片機(jī)將通過(guò)P1.5口向蜂鳴器發(fā)送高電平信號(hào)使其發(fā)出警報(bào)聲,同時(shí)通過(guò)P2.6口連接的RELAY輸出高電平控制信號(hào)來(lái)驅(qū)動(dòng)RL1,使得加熱爐工作,為系統(tǒng)提供熱量,來(lái)升高溫度。溫度上升到預(yù)定上限溫度時(shí),單片機(jī)將通過(guò)P1.5口向蜂鳴器發(fā)送高電平信號(hào)使其發(fā)出警報(bào)生,同時(shí)通過(guò)P2.6口連接的RELAY輸出低電平控制信號(hào)來(lái)驅(qū)動(dòng)RL1,使得加熱爐停頓加熱,讓溫度慢慢回落[3]。當(dāng)因環(huán)境溫度變化劇烈或因加熱、降溫設(shè)備出現(xiàn)故障時(shí),或者因溫度傳感頭出現(xiàn)故障,導(dǎo)致在一段時(shí)間不能將環(huán)境溫度調(diào)整到溫度限的時(shí),單片機(jī)將通過(guò)P1.5口向蜂鳴器發(fā)送高電平信號(hào)使其發(fā)出警報(bào)聲。工作原理圖如圖2.1所示:圖2.1工作原理圖在設(shè)計(jì)中使用溫度傳感器DS18B20采集實(shí)時(shí)溫度,使用PID算法控制加熱爐仿真模型進(jìn)展溫度控制。DS18B20是DALLAS公司生產(chǎn)的經(jīng)典的數(shù)字溫度傳感器,具有低功耗、高性能、抗干擾能力、微型化、強(qiáng)易配處理器等等優(yōu)點(diǎn),它特別適合用于多點(diǎn)溫度測(cè)控的系統(tǒng),它可直接將溫度轉(zhuǎn)化成數(shù)字信號(hào),交給單片機(jī)處理,并且在同一總線上可掛接多個(gè)傳感器芯片,進(jìn)展圍性的溫度檢測(cè)。在其部集成了A/D轉(zhuǎn)換器,可使電路構(gòu)造更簡(jiǎn)單,且減少了溫度測(cè)量轉(zhuǎn)換時(shí)的精度損失。數(shù)字溫度傳感DS18B20只用一個(gè)引腳,即可與單片機(jī)進(jìn)展連接了,這樣大大的減少了設(shè)計(jì)中接線麻煩的問(wèn)題,使得單片機(jī)可以節(jié)約許多端口。DS18B20芯片的體積又比擬小,且還是單線與主控芯片連接,于是在實(shí)際運(yùn)用中,常常把數(shù)字溫度傳感器DS18B20做成小型的測(cè)量溫度的探頭,即使是一些狹小的位置也能很方便的檢測(cè)到,使溫控系統(tǒng)發(fā)揮最大的作用[4]。在本仿真設(shè)計(jì)中DS18B20與51單片機(jī)的P3.4口。DS18B20可以仿真設(shè)置環(huán)境溫度,來(lái)完成設(shè)計(jì)要求,設(shè)置到20和40攝氏度時(shí)蜂鳴器就會(huì)發(fā)起警報(bào)。本次設(shè)計(jì)采用proteus仿真軟件,以AT89C51單片機(jī)做為主控單元。51單片機(jī)上連接晶振和復(fù)位電路,保證單片機(jī)的正常運(yùn)行。P0口與LED數(shù)碼管連接,顯示測(cè)量結(jié)果。P1.0,P1.4,P3.3分別與3個(gè)控制按鍵連接,P1.5口與報(bào)警系統(tǒng)蜂鳴器連接。由AT89C51的端口豐富使得整個(gè)系統(tǒng)設(shè)計(jì)起來(lái)方便簡(jiǎn)單,線路清晰,且AT89C51是一個(gè)高性能,低功耗的CMOS8位單片機(jī),AT89C51設(shè)計(jì)和配置了振蕩頻率可為0Hz,在實(shí)際的應(yīng)用中性價(jià)比很高,是溫控系統(tǒng)的不二選擇。本設(shè)計(jì)中選擇AT89C51做為主控單位也是考慮到了實(shí)際的需求和做此設(shè)計(jì)的意義的[5]。..3系統(tǒng)的硬件設(shè)計(jì)3.1系統(tǒng)硬件構(gòu)成概述本章主要介紹本次設(shè)計(jì)中的硬件設(shè)計(jì)局部,其中包含:顯示模塊、按鍵掃描模塊、溫度采集模塊、溫度加熱模塊、蜂鳴器報(bào)警模塊。3.2各單元總體說(shuō)明顯示模塊:本設(shè)計(jì)中采用4位LED數(shù)碼管顯示溫度值,其中最后一位為小數(shù)位。按鍵模塊:本設(shè)計(jì)中采用3按鍵設(shè)置,第一按鍵為復(fù)位按鍵,第2、3按鍵為溫度調(diào)節(jié)按鍵,連接上拉電阻使其未按鍵時(shí)能夠保持高電平。溫度采集模塊:本次設(shè)計(jì)中使用溫度傳感器DS18B20采集實(shí)時(shí)溫度,使用PID算法控制加熱爐仿真模型進(jìn)展溫度控制,數(shù)字溫度傳感器DS18B20只需一個(gè)引腳,即可與單片機(jī)進(jìn)展通信,在設(shè)計(jì)中將DS18B20與51單片機(jī)的P3.4口連接,用其來(lái)完成溫度的測(cè)量[6]。溫度加熱模塊:本設(shè)計(jì)采用加熱爐來(lái)進(jìn)展溫度值的控制,其配有功率顯示表,以便在仿真中與溫度傳感器DS18B20相對(duì)應(yīng),便于統(tǒng)計(jì)。加熱爐與光電耦合器連接,光電耦合器通過(guò)RELAY與51單片機(jī)的P2.6口連接。通過(guò)51單片機(jī)發(fā)送信號(hào)來(lái)控制加熱爐的運(yùn)作。蜂鳴器報(bào)警模塊:本設(shè)計(jì)中采用蜂鳴器做為報(bào)警系統(tǒng),當(dāng)采集到的溫度經(jīng)過(guò)處理后,超過(guò)規(guī)定溫度上、下限時(shí),單片機(jī)將通過(guò)P1.5口向蜂鳴器發(fā)送高電平信號(hào)使其發(fā)出警報(bào)生。3.3按鍵單元一般的鍵盤設(shè)計(jì)采用的是硬件設(shè)計(jì),可是其在仿真設(shè)計(jì)中連接,線路會(huì)比擬麻煩。所以在本此設(shè)置中我采用的是3按鍵軟件控制,第一個(gè)按鍵為復(fù)位按鍵,其他兩個(gè)為調(diào)節(jié)按鍵,3按鍵即可完成設(shè)計(jì)中起始溫度設(shè)置與復(fù)位要求,方便簡(jiǎn)潔,線路清晰設(shè)計(jì)起來(lái)也較為方便。連接上上拉電阻,使其當(dāng)未有按鍵按下時(shí),各各按鍵位都處于高電平。按鍵操作說(shuō)明:1號(hào)按鍵為復(fù)位設(shè)置按鍵,第一次按下它時(shí),1號(hào)按鍵位將處于低電平,LED數(shù)碼管將會(huì)顯示HT〔上限溫度值〕,此時(shí),可通過(guò)2號(hào)鍵和3好鍵來(lái)調(diào)整預(yù)設(shè)的上限溫度值,每次按一下2號(hào)按鍵預(yù)設(shè)的溫度上限值就上升一度,每次按一下3號(hào)鍵時(shí)預(yù)設(shè)的溫度上限值就下降一度,此過(guò)程都會(huì)同過(guò)LED數(shù)碼管顯示。設(shè)置好上限溫度后,再次按下1號(hào)按鍵,同樣1號(hào)按鍵位處于了低電平,LED數(shù)碼管將會(huì)顯示LT〔下限溫度值〕,此時(shí)同樣此時(shí),可通過(guò)2號(hào)鍵和3好鍵來(lái)調(diào)整預(yù)設(shè)的下限溫度值,每次按一下2號(hào)按鍵預(yù)設(shè)的溫度下限值就上升一度,每次按一下3號(hào)鍵時(shí)預(yù)設(shè)的溫度下限值就下降一度,此過(guò)程都會(huì)同過(guò)LED數(shù)碼管顯示。在設(shè)置好預(yù)設(shè)溫度的上、下限時(shí),我們?cè)俅伟聪?號(hào)鍵,此時(shí)LED數(shù)碼管顯示的將是溫度傳感器DS18B20傳送的溫度值,51單片機(jī)將會(huì)把此測(cè)量值與先前預(yù)設(shè)的溫度上、下限值進(jìn)展比擬處理,然后進(jìn)展其他功能模塊的操作。復(fù)位具體如下:復(fù)位,按一下為設(shè)置上限,按兩下為設(shè)置下限,再按一下進(jìn)入顯示狀態(tài)。上限上限按下復(fù)位進(jìn)入上下限設(shè)置時(shí),每按一下為上限升高一度。下限下限按下復(fù)位進(jìn)入上下限設(shè)置時(shí),每按一下為下限降低一度。電路如圖3.1所示:圖3.1按鍵電路3.4LED數(shù)碼管顯示單元為使溫度顯示的更為準(zhǔn)確,本次設(shè)計(jì)中我選擇的是8段的供陽(yáng)的4位LED數(shù)碼管〔其中一段為小數(shù)點(diǎn)〕,LED數(shù)碼管的8段位分別連接51單片機(jī)的P0.0~P0.7端口,數(shù)碼管的4位選位分別通過(guò)P2.0~P2.3端口連接。LED數(shù)碼管在工作時(shí),由于其為供陽(yáng)的,每個(gè)段位只有當(dāng)輸入低電平時(shí)此段位被點(diǎn)亮,以顯示數(shù)字"0〞為例,共陽(yáng)的gfedcba相應(yīng)的為1000000,字型碼為C0H。在本設(shè)計(jì)中將所以LED數(shù)碼管的8個(gè)顯示筆劃"a,b,c,d,e,f,g,dp〞的同名端連接在一起,另外為每個(gè)數(shù)碼管的公共極增加位元選通的控制電路,位元選通由它們自己的I/O端口控制。當(dāng)51單片機(jī)運(yùn)作時(shí),所有的數(shù)碼管都會(huì)接收到同樣的字符碼,我們可以通過(guò)51單片機(jī)對(duì)端電路進(jìn)展控制,來(lái)決定那個(gè)數(shù)碼管顯示字符,所以只要將需要顯示的數(shù)碼管的選通控制翻開(kāi),該單元就會(huì)顯示字形,沒(méi)選通的就不會(huì)點(diǎn)亮。這樣通過(guò)分時(shí)分別控制LED數(shù)碼管的端,可以使每個(gè)位輪流顯示,每位點(diǎn)亮的時(shí)間間隔大概為1ms左右[7]。LED數(shù)碼管如圖3.2所示:圖3.2LED數(shù)碼管電路3.5溫度超、低溫與異常情況報(bào)警單元采集到的溫度經(jīng)過(guò)處理后,超過(guò)規(guī)定溫度上限時(shí),單片機(jī)將通過(guò)P1.5口向蜂鳴器發(fā)送高電平信號(hào)使其發(fā)出警報(bào)聲,同時(shí)通過(guò)P2.6口連接的RELAY輸出低電平控制信號(hào)來(lái)驅(qū)動(dòng)RL1,使得加熱爐停頓加熱,讓溫度慢慢回落;當(dāng)采集到的溫度經(jīng)過(guò)處理后,低于設(shè)定溫度下限時(shí),單片機(jī)將通過(guò)P1.5口向蜂鳴器發(fā)送高電平信號(hào)使其發(fā)出警報(bào)生,同時(shí)通過(guò)P2.6口連接的RELAY輸出高電平控制信號(hào)來(lái)驅(qū)動(dòng)RL1,使得加熱爐工作,為系統(tǒng)提供熱量,來(lái)升高溫度。要是由于環(huán)境溫度變化太劇烈或加熱、降溫設(shè)備出現(xiàn)故障,或溫度傳感頭出現(xiàn)故障,而在一定時(shí)間,不能將溫度控制到規(guī)定的溫度限,單片機(jī)也將會(huì)通過(guò)P1.5口向蜂鳴器發(fā)送高電平信號(hào)使其發(fā)出警報(bào)聲[8]。在實(shí)驗(yàn)中設(shè)置的下限溫度是20攝氏度,當(dāng)溫度到達(dá)20攝氏度時(shí),蜂鳴器就會(huì)發(fā)出報(bào)警。實(shí)驗(yàn)中設(shè)置的上限溫度為40攝氏度,當(dāng)溫度到達(dá)所示的40攝氏度時(shí),蜂鳴器就會(huì)開(kāi)場(chǎng)報(bào)警。仿真電路如圖3.3所示:圖3.3蜂鳴器電路3.6溫度測(cè)試單元在本設(shè)計(jì)中溫度測(cè)試采用溫度芯片DS18B20與51單片機(jī)的P3.4口連接。此集成芯片,可以很好的減少外界的干擾。其部集成A/D轉(zhuǎn)換器,使得電路構(gòu)造更簡(jiǎn)單,且減少了溫度測(cè)量轉(zhuǎn)換時(shí)的精度損失,從而使測(cè)量的溫度值更為準(zhǔn)確,具有實(shí)在的設(shè)計(jì)意義。且數(shù)字溫度傳感器DS18B20只用一個(gè)引腳,即可與單片機(jī)進(jìn)展通信了,大大的減少了接線麻煩的問(wèn)題,使得單片機(jī)更加具擴(kuò)展性。由于DS18B20芯片的小型化,通過(guò)單條數(shù)據(jù)線,就可以和主電路連接,在實(shí)際應(yīng)用中,可把數(shù)字溫度傳感器DS18B20做成測(cè)溫探頭,可方便的探入到狹小的地方,從而增加了實(shí)用性[9]。DS18B20的開(kāi)場(chǎng)運(yùn)作時(shí),首先要做的是復(fù)位工作,即在開(kāi)場(chǎng)工作前,51單片機(jī)將會(huì)給DS18B20當(dāng)總先發(fā)送一個(gè)不小于480us的低電平信號(hào),對(duì)其進(jìn)展復(fù)位。DS18B20在接收到這個(gè)信號(hào)后的15~60us會(huì)回發(fā)一個(gè)芯片的存在脈沖。為了接收存在脈沖,數(shù)據(jù)當(dāng)總線將會(huì)被控制器拉高,存在脈沖是一個(gè)60~240us的低電平信號(hào)。接下去將進(jìn)展51單片機(jī)與DS18B20間的通信。51單片機(jī)發(fā)送控制的指令共有5指令,而每一個(gè)工作周期只可以發(fā)送一條指令。5條指令分別為:讀取數(shù)據(jù)、指定匹配的芯片、跳躍ROM、芯片搜索、報(bào)警芯片搜索。接著51單片機(jī)發(fā)送存儲(chǔ)器操作指令〔在指令發(fā)送給DS18B20后,馬上就發(fā)送存儲(chǔ)器操作指令了〕。存儲(chǔ)器指令的功能就是控制DS18B20怎么樣進(jìn)展工作。DS18B20同51單片機(jī)的接線如圖3.4所示:圖3.4DS18B20電路見(jiàn)圖可知DS18B20只需與單片機(jī)的一個(gè)端口連接即可,不過(guò)當(dāng)總線為開(kāi)漏需要外接一個(gè)上拉電阻,為4.7KΩ。3.7溫度控制器件單元在本次設(shè)計(jì)中,是采用加熱爐通過(guò)PID算法來(lái)對(duì)溫度進(jìn)展控制的,其配有功率顯示表,以便在仿真中與溫度傳感器DS18B20相對(duì)應(yīng),便于統(tǒng)計(jì)。加熱爐與光電耦合器連接,光電耦合器通過(guò)RELAY與51單片機(jī)的P2.6口連接。當(dāng)測(cè)量到的溫度值未到達(dá)先前設(shè)定的預(yù)期溫度值下限時(shí),51單片機(jī)通過(guò)RELAY口向光電耦合器發(fā)送高電平時(shí),無(wú)電流流過(guò),光電耦合器將不導(dǎo)通,繼電器也不能導(dǎo)通,繼電器的線圈無(wú)電流通過(guò),RL1打向電源處,加熱爐通電開(kāi)場(chǎng)工作加熱,可以根據(jù)功率表的數(shù)據(jù)顯示看出加熱爐提升的溫度。當(dāng)測(cè)量到的溫度值超出先前設(shè)定的預(yù)期溫度值上限時(shí),51單片機(jī)通同過(guò)RELAY口向光電耦合器發(fā)送低電平時(shí),光電耦合器將導(dǎo)通,有電流流過(guò),使得繼電器也導(dǎo)通,繼電器的線圈有電流通過(guò),RL1打向繼電器線圈,加熱爐斷開(kāi)連接,停頓工作,使溫度慢慢的回落。溫控系統(tǒng)連接方法如圖3.5所示:圖3.5溫控系統(tǒng)電路4恒溫控制算法研究〔PID〕4.1PID控制器的設(shè)計(jì)PID控制是目前在溫度控制中應(yīng)用最廣泛的一種控制算法,其核心思想是按設(shè)定值與測(cè)量值之間的偏差比例、偏差的積累和偏差變化的趨勢(shì)來(lái)控制輸出量,即根據(jù)偏差值來(lái)計(jì)算控制量。數(shù)字PID控制律的實(shí)現(xiàn),需采用數(shù)值逼近法,當(dāng)采樣的周期相當(dāng)短時(shí),可以用用差商代替微分,求和代替積分,可以有如下近似變換[10]?!?.1〕式中,k為采樣的序號(hào),k=l,2,…;T為采樣的周期。在離散化的過(guò)程中,采樣時(shí)間T須足夠的短,不然難以確保精度。在運(yùn)算時(shí),把表示成等,省去了T。那么可推算出離散的PID表達(dá)式寫成:〔4.2〕式中,k為采樣的序號(hào),k=1,2,…;是第k次采樣時(shí),計(jì)算機(jī)輸出的值;是第k次采樣時(shí)輸入的偏差值;是第次采樣時(shí)輸入的偏差值;是積分系數(shù),;是積分系數(shù),。在實(shí)際的應(yīng)用中,通常采用增量式PID控制算法,即數(shù)字控制器輸出只是控制量的增量,該算法編程簡(jiǎn)單,數(shù)據(jù)可以遞推使用,占用存儲(chǔ)空間少,運(yùn)算快。根據(jù)遞推原理可得:〔4.3〕公式〔4.2〕與公式〔4.3〕相減,即得到增量式PID控制算法(4.4):〔4.4〕本次設(shè)計(jì)中,控制器的設(shè)計(jì)采用增量數(shù)字PID控制算法的功能,可以比擬靈活的調(diào)節(jié)控制信號(hào)的導(dǎo)通時(shí)間來(lái)控制溫度值控制的工作。能夠根本滿足溫度控制的要求。4.2PID算法的流程實(shí)現(xiàn)方法與具體程序本系統(tǒng)設(shè)計(jì)的溫度控制系統(tǒng)是與光電耦合器連接的加熱爐。傳統(tǒng)的方法是:當(dāng)測(cè)量的環(huán)境溫度到達(dá)設(shè)定值時(shí),加熱爐不在加熱狀態(tài),可是此時(shí)加熱爐的溫度仍然會(huì)高與設(shè)定的溫度值,加熱爐還是會(huì)起到加熱的作用,使得系統(tǒng)的溫度經(jīng)常繼續(xù)要升高一會(huì)后才能開(kāi)場(chǎng)下降。當(dāng)下降到設(shè)定的下限溫度值時(shí),溫控系統(tǒng)會(huì)促使加熱爐開(kāi)場(chǎng)工作,對(duì)系統(tǒng)進(jìn)展加熱,此過(guò)程需要一定的時(shí)間,所以往往又會(huì)下降一定溫度,才能開(kāi)場(chǎng)上升溫度。所以傳統(tǒng)的方法往往會(huì)出現(xiàn)一定的誤差,此誤差就是溫度的慣性引起的[11]。PID算法是PID模糊控制技術(shù)的核心局部,通過(guò)比例、積分、微分三方面的結(jié)合與調(diào)整構(gòu)成一個(gè)反響控制,可解由于溫度的慣性而產(chǎn)生的誤差。經(jīng)過(guò)PID控制器處理后可輸出電壓的控制信號(hào),從而反響調(diào)節(jié)溫度。數(shù)字PID的控制示意圖如圖4.1所示:圖4.1數(shù)字PID的控制實(shí)驗(yàn)中最主要的就是PID參數(shù)的選擇,它決定著整個(gè)溫度控制的準(zhǔn)確度。我們可以根據(jù)具體情況的要求,來(lái)調(diào)節(jié)適宜的參數(shù)。P為比例系數(shù),當(dāng)在一定圍假設(shè)是調(diào)節(jié)增加P時(shí),系統(tǒng)的反映將會(huì)變的靈敏,穩(wěn)態(tài)的誤差值將會(huì)變小,可要是P值過(guò)大時(shí)的話,同樣會(huì)時(shí)系統(tǒng)變得不穩(wěn)定。P值過(guò)于小了,系統(tǒng)的反映又會(huì)變的很慢??梢?jiàn)的,P值要是選取不恰當(dāng),測(cè)量值就會(huì)和設(shè)定值的偏差越來(lái)越大,要是出現(xiàn)了這樣的問(wèn)題時(shí),可將P值的符號(hào)取反[12]。I為積分系數(shù),I的值越小積分的作用就會(huì)越強(qiáng),積分作用強(qiáng)了就會(huì)導(dǎo)致系統(tǒng)的穩(wěn)定性下降,不過(guò)T值小了,穩(wěn)態(tài)所產(chǎn)生的誤差將會(huì)減小。D為微分控制,微分控制可以改善動(dòng)態(tài)的特性,當(dāng)D偏大時(shí),超調(diào)量隨之變大,調(diào)節(jié)時(shí)間會(huì)減短;D偏小時(shí),超調(diào)量同樣變大,不過(guò)調(diào)節(jié)時(shí)間就會(huì)比擬長(zhǎng),只有D適宜時(shí),才能使超調(diào)量較小,調(diào)節(jié)時(shí)間也較短。調(diào)試時(shí),只能參考參數(shù)對(duì)系統(tǒng)控制過(guò)程的變化趨勢(shì),來(lái)對(duì)參數(shù)調(diào)整來(lái)先比例,后積分,再微分的步驟慢慢調(diào)試,一直湊到滿意的結(jié)果為止。數(shù)字PID的差分方程:(4.5)在上式中,稱為比例項(xiàng);稱為積分項(xiàng);稱為微分項(xiàng)。得到增量式公式為:(4.6)在此式中,,,。PID的具體算法程序如下[13]:Enum{Y,U,R,,};//Y采集量、U控制量、R設(shè)定量、采樣時(shí)間、微分、比例intpara[6],ptr,out;//out是從PID()得到的控制量intr,,,Ts,e2,e1,e0,u;/************************************************************************/VoidinitPID()//初始化PID函數(shù){para[R]=20;para[]=2;para[]=2;para[]=1}VoidPID(){para[Y]=(int)(ad_data);r=para[R];e0=e1;e1=e2;e2=r-para[Y]/10;=para[];Kd=para[];ts=para[];u=r+*[e2+*(e2-e1)];,if(u<0)u=0;//控制量限制if(u>200)u=200;para[u[=u/10;out=para[u];}VoidTem_timer0()interrupt1//采樣時(shí)間{THO=tim0>>8;TL0=tim0;If(tm++>out)TEM=1;elseTEM=0;if(m>200)tm=0;if(out<10)TEM=1;if(timet++==100)timet=0;}Voidtimer1()interrupt3{TH1=timer1()>>8;TLI=tim1;If(dealCS==0){wdCtrl=para[R];if((wdCtrl-(int)(ad_data)/10)>10)out=200;elseif(((int)(ad_data)/10-wdCtrl)>2)out=0;elseout=Ctrltab[wdCtrl+2-(int)(ad_data)/10];}Elseif(tx++>=ts){PID();t=0;}}5系統(tǒng)的軟件設(shè)計(jì)5.1統(tǒng)軟件設(shè)計(jì)概述在恒溫PID控制系統(tǒng)中軟件是整個(gè)系統(tǒng)的核心,在軟件設(shè)計(jì)中采用分層模塊化設(shè)計(jì),其中主要的模塊包含:人機(jī)交互模塊、數(shù)據(jù)顯示模塊、PID控制器模塊、信號(hào)采集模塊、超、低溫報(bào)警模塊幾局部[14]。1、人機(jī)交互模塊,是通過(guò)3位按鍵來(lái)實(shí)現(xiàn)的。第一個(gè)按鍵為復(fù)位按鍵,其他兩個(gè)為調(diào)節(jié)按鍵,當(dāng)有鍵按下時(shí)該鍵位將會(huì)處于低電平狀態(tài),按鍵連接上了電阻,使其當(dāng)未有按鍵按下時(shí),各各按鍵位都處于高電平[15]。本設(shè)計(jì)中的按鍵具體原理與操作方法,在第三章的按鍵單元中已經(jīng)做了詳細(xì)的說(shuō)明。2、數(shù)據(jù)顯示模塊,是通過(guò)8段的供陽(yáng)的4位LED數(shù)碼管〔其中一段為小數(shù)點(diǎn)〕實(shí)現(xiàn)的。采用的是通過(guò)動(dòng)態(tài)顯示法,分時(shí)分別控制LED數(shù)碼管的端,使每個(gè)位輪流顯示,每位點(diǎn)亮的時(shí)間間隔大概為1ms左右。3、PID控制器模塊,本設(shè)計(jì)是運(yùn)用PID控制算法,仿真實(shí)現(xiàn)一個(gè)恒溫控制系統(tǒng)。在上一章中我們已經(jīng)描述了,電壓的控制信號(hào),從而反響調(diào)節(jié)溫度。設(shè)計(jì)中最主要的就是PID參數(shù)的選擇,它決定著整個(gè)溫度控制的準(zhǔn)確度。我們可以根據(jù)具體情況的要求,來(lái)調(diào)節(jié)適宜的參數(shù)。對(duì)PID函數(shù)進(jìn)展初始化時(shí),需設(shè)置函數(shù)參數(shù),這些參數(shù)都是根據(jù)實(shí)驗(yàn)測(cè)定獲得的,具體參數(shù)在上一章PID算法研究中有詳細(xì)說(shuō)明。4、信號(hào)采集模塊,本設(shè)計(jì)中是運(yùn)用DS18B20進(jìn)展溫度采集的,在DS18B20開(kāi)場(chǎng)運(yùn)作時(shí),首先要做的是復(fù)位工作,DS18B20在接收到這個(gè)信號(hào)后的15~60us會(huì)回發(fā)一個(gè)芯片的存在脈沖。為了接收存在脈沖,數(shù)據(jù)當(dāng)總線將會(huì)被控制器拉高,存在脈沖是一個(gè)60~240us的低電平信號(hào)。接下去將進(jìn)展51單片機(jī)與DS18B20間的通信。接著51單片機(jī)發(fā)送存儲(chǔ)器操作指令〔在指令發(fā)送給DS18B20后,馬上就發(fā)送存儲(chǔ)器操作指令了〕??刂艱S18B20怎么樣進(jìn)展工作[16]。5、超、低溫報(bào)警模塊,本設(shè)計(jì)中采用蜂鳴器,對(duì)異常情況進(jìn)展報(bào)警。當(dāng)出現(xiàn)異常情況,溫度過(guò)高或是過(guò)低時(shí),控制芯片將會(huì)向蜂鳴器發(fā)送高電平,蜂鳴器在接收高電平時(shí)就會(huì)發(fā)出鳴叫聲報(bào)警。5.2系統(tǒng)軟件程序流程及程序流程圖系統(tǒng)軟件流程如圖5.2所示:圖5.2系統(tǒng)軟件流程圖程序流程為:在程序開(kāi)場(chǎng)的時(shí),先設(shè)置初始化,通過(guò)按鍵設(shè)置預(yù)定溫度值,然后通過(guò)數(shù)碼管來(lái)顯示當(dāng)前的溫度,再比擬設(shè)定的預(yù)期溫度與測(cè)量溫度值的大小,將比擬的信息通過(guò)繼電器,去根據(jù)當(dāng)前設(shè)定的溫度值的上下限,當(dāng)測(cè)量到的溫度值未到達(dá)先前設(shè)定的預(yù)期溫度值下限時(shí),使單片機(jī)向蜂鳴器發(fā)送高電平信號(hào)使其發(fā)出警報(bào)生,再通過(guò)RELAY口向光電耦合器發(fā)送高電平時(shí),無(wú)電流流過(guò),光電耦合器將不導(dǎo)通,繼電器也不能導(dǎo)通,繼電器的線圈無(wú)電流通過(guò),RL1打向電源處,加熱爐通電開(kāi)場(chǎng)工作加熱,可以根據(jù)功率表的數(shù)據(jù)顯示看出加熱爐提升的溫度。當(dāng)測(cè)量到的溫度值超出先前設(shè)定的預(yù)期溫度值上限時(shí),使單片機(jī)將向蜂鳴器發(fā)送高電平信號(hào)使其發(fā)出警報(bào)生,再通過(guò)過(guò)RELAY口向光電耦合器發(fā)送低電平時(shí),光電耦合器將導(dǎo)通,有電流流過(guò),使得繼電器也導(dǎo)通,繼電器的線圈有電流通過(guò),RL1打向繼電器線圈,加熱爐斷開(kāi)連接,停頓工作,使溫度慢慢的回落。5.3溫度數(shù)據(jù)顯示模塊分析在本次軟件設(shè)計(jì)中,核心的局部就是PID算法的控制與DS18B20溫度采集的實(shí)現(xiàn),PID算法在上文中已經(jīng)做了詳細(xì)的介紹,在此再具體的分析下DS18B20。在本次設(shè)計(jì)我選擇了DS18B20來(lái)繼續(xù)溫度檢測(cè),因?yàn)閿?shù)字溫度傳感器DS18B20只需一個(gè)引腳,即可與單片機(jī)進(jìn)展通信了,大大的減少了接線麻煩的問(wèn)題,使得單片機(jī)更加具擴(kuò)展性。由于DS18B20芯片的小型化,通過(guò)單條數(shù)據(jù)線,就可以和主電路連接,可把數(shù)字溫度傳感器DS18B20做成測(cè)溫探頭,可方便的探入到狹小的地方,從而增加了實(shí)用性。且本次設(shè)計(jì)采用proteus仿真軟件,在proteus仿真軟件里DS18B20可以隨意設(shè)定溫度,模仿實(shí)際環(huán)境溫度值,便于實(shí)驗(yàn)[17]。DS18B20數(shù)字溫度傳感器的部包含了高速暫存RAM與用來(lái)存儲(chǔ)TH、TL的E2ARM。承受到的數(shù)據(jù)先是存入RAM,經(jīng)檢驗(yàn)后傳送至E2ARM。RAM中的第5個(gè)字節(jié)用與控制溫度的數(shù)字轉(zhuǎn)換分辨率,此分辨率決定DS18B20工作時(shí)溫度轉(zhuǎn)換的先對(duì)應(yīng)的數(shù)值。其中要注意的是設(shè)定的分辨率越高,就需要消耗越多的轉(zhuǎn)換時(shí)間。所以在設(shè)置分辨率時(shí)我們需要有所考慮[18]。DS18B20在接收到溫度轉(zhuǎn)換的命令后,將溫度值數(shù)據(jù)轉(zhuǎn)換成以二進(jìn)制補(bǔ)碼的形式存儲(chǔ)在RAM中,然后51單片機(jī)再通過(guò)單總線接收此數(shù)據(jù),以地位在前高位在后的方式來(lái)讀取數(shù)據(jù)。接收數(shù)據(jù)后通過(guò)溫度計(jì)算,將得出的溫度值與設(shè)定的TH、TL進(jìn)展比擬,51單片機(jī)再根據(jù)比擬的結(jié)果做出相應(yīng)的運(yùn)行工作。為此我們?cè)诔绦蛟O(shè)計(jì)中設(shè)計(jì)了下面主要幾個(gè)子程序。首先對(duì)DS18B20進(jìn)展初始化處理voidInit_DS18B20(void){ unsignedcharx=0; DQ=0;//單片機(jī)將DQ拉低 delay_18B20(80);//準(zhǔn)確延時(shí)大于480us DQ=1;//拉高總線 delay_18B20(14); x=DQ;//稍做延時(shí)后,如果x=0那么初始化成功x=1那么初始化失敗 delay_18B20(20);}在初始化后,先讓DS18B20讀一個(gè)字節(jié)unsignedcharReadOneChar(void){ unsignedchari=0; unsignedchardat=0; for(i=8;i>0;i--) { DQ=0;//給脈沖信號(hào) dat>>=1; DQ=1;//給脈沖信號(hào) if(DQ) dat|=0x80; delay_18B20(4); } return(dat);}再讓其寫一個(gè)字節(jié),運(yùn)行子程序如下:voidWriteOneChar(unsignedchardat){ unsignedchari=0; for(i=8;i>0;i--) { DQ=0; DQ=dat&0x01; delay_18B20(5); DQ=1; dat>>=1;}}接下來(lái)設(shè)計(jì)DS18B20的工作狀態(tài),設(shè)置其上、下限報(bào)警溫度分別為TH和TL,且設(shè)置顯示的分辨率為RS,執(zhí)行的子程序如下[18]:voidsetds18b20(unsignedcharTH,unsignedcharTL,unsignedcharRS){ Init_DS18B20(); WriteOneChar(0xCC); //跳過(guò)讀序號(hào)列號(hào)的操作 WriteOneChar(0x4E); ////寫入"寫暫存器〞命令,修改TH和TL和分辯率配置存放器 //先寫TH,再寫TL,最后寫配置存放器 WriteOneChar(TH); //寫入想設(shè)定的溫度報(bào)警上限 WriteOneChar(TL); //寫入想設(shè)定的溫度報(bào)警下限 WriteOneChar(RS); //寫配置存放器,格式為0R1R01,1111 //R1R0=00分辨率婁9位,R1R0=11分辨率為12位}最后就是讀取DS18B20的溫度值了,執(zhí)行子程序如下:unsignedchar*ReadTemperature(void){ unsignedchartt[2]; Init_DS18B20(); WriteOneChar(0xCC); //跳過(guò)讀序號(hào)列號(hào)的操作 WriteOneChar(0x44); //啟動(dòng)溫度轉(zhuǎn)換 delay_18B20(70);//溫度轉(zhuǎn)化要一段時(shí)間 Init_DS18B20(); WriteOneChar(0xCC); //跳過(guò)讀序號(hào)列號(hào)的操作 WriteOneChar(0xBE); //讀取溫度存放器等〔共可讀9個(gè)存放器〕前兩個(gè)就是溫度 //delay_18B20(70); tt[0]=ReadOneChar(); //讀取溫度值低位 tt[1]=ReadOneChar(); //讀取溫度值高位 return(tt);}5.4測(cè)試分析1、測(cè)試環(huán)境仿真環(huán)境溫度20—40攝氏度。2、測(cè)試方法用調(diào)節(jié)DS18B20,來(lái)模擬環(huán)境溫度,通過(guò)按鍵來(lái)設(shè)置溫度的上、下限與復(fù)位,根據(jù)LED數(shù)碼管顯示來(lái)觀察結(jié)果。3、測(cè)試結(jié)果(1)設(shè)定溫度由20攝氏度到40攝氏度。(2)標(biāo)定溫差≦1攝氏度調(diào)節(jié)時(shí)間15s〔具體情況隨實(shí)際情況〕。(3)靜態(tài)誤差≦0.5攝氏度最大超調(diào)量1攝氏度。4、通過(guò)仿真測(cè)試分析,對(duì)于實(shí)際的室的溫度控制,可以再得出以下2點(diǎn)方法:(1)我們可以通過(guò)增加傳感器的個(gè)數(shù),然后算出平均值,這樣可以獲得較為準(zhǔn)確的溫度值。(2)在對(duì)環(huán)境溫度的控制環(huán)節(jié)中,我們可采用功率較大的加熱電阻,實(shí)現(xiàn)對(duì)環(huán)境溫度的提升,用風(fēng)扇來(lái)對(duì)環(huán)境溫度進(jìn)展降溫處理。6模擬仿真結(jié)果在模擬仿真中,當(dāng)將DS18B20的溫度設(shè)置為17攝氏度時(shí),如圖6.1所示:圖6.117℃的溫度顯示51單片機(jī)通過(guò)RELAY口向光電耦合器發(fā)送高電平時(shí),無(wú)電流流過(guò),光電耦合器將不導(dǎo)通,繼電器也不能導(dǎo)通,繼電器的線圈無(wú)電流通過(guò),RL1打向電源處,如圖6.2所示:圖6.217℃時(shí)系統(tǒng)電流流向圖此時(shí)加熱爐通電開(kāi)場(chǎng)工作加熱,可以根據(jù)功率表的數(shù)據(jù)顯示得出加熱爐提升的溫度,如圖6.3所示:圖6.317℃時(shí)加熱爐顯示當(dāng)將DS18B20的溫度設(shè)置為41攝氏度時(shí),如圖6.4所示:圖6.441℃的溫度顯示51單片機(jī)通同過(guò)RELAY口向光電耦合器發(fā)送低電平時(shí),光電耦合器將導(dǎo)通,有電流流過(guò),使得繼電器也導(dǎo)通,繼電器的線圈有電流通過(guò),RL1打向繼電器線圈,如圖6.5所示:圖6.541℃時(shí)的系統(tǒng)電流流向圖此時(shí)加熱爐斷開(kāi)連接,停頓工作,但是加熱爐還是會(huì)有一定的延遲性,只能讓溫度慢慢的回落,如圖6.6所示:圖6.641℃時(shí)加熱爐顯示結(jié)論本次設(shè)計(jì)采用proteus仿真軟件,以AT89C51單片機(jī)做為主控單元,運(yùn)用PID控制算法,仿真實(shí)現(xiàn)了一個(gè)恒溫控制系統(tǒng)。設(shè)計(jì)中使用溫度傳感器DS18B20采集實(shí)時(shí)溫度,使用PID算法控制加熱爐仿真模型進(jìn)展溫度控制,總體實(shí)現(xiàn)了一個(gè)恒溫控制仿真系統(tǒng)。仿真中先通過(guò)按鍵設(shè)置溫度,然后通過(guò)溫度傳感器DS18B20,從環(huán)境中采集溫度,由單片機(jī)獲取采集的溫度值,經(jīng)過(guò)處理后,可得到當(dāng)前環(huán)境溫度中一個(gè)比擬穩(wěn)定的溫度值,并且通過(guò)LED數(shù)碼管顯示。再去根據(jù)當(dāng)前設(shè)定的溫度值的上下限,溫度未到達(dá)預(yù)定的下限溫度時(shí),單片機(jī)將通過(guò)P1.5口向蜂鳴器發(fā)送高電平信號(hào)使其發(fā)出警報(bào)生,同時(shí)通過(guò)P2.6口連接的RELAY輸出高電平控制信號(hào)來(lái)驅(qū)動(dòng)RL1,使得加熱爐工作,為系統(tǒng)提供熱量,來(lái)升高溫度。溫度上升到預(yù)定上限溫度時(shí),單片機(jī)將通過(guò)P1.5口向蜂鳴器發(fā)送高電平信號(hào)使其發(fā)出警報(bào)生,同時(shí)通過(guò)P2.6口連接的RELAY輸出低電平控制信號(hào)來(lái)驅(qū)動(dòng)RL1,使得加熱爐停頓加熱,讓溫度慢慢回落。致首先,我要感黃河科技學(xué)院,感信院電子系對(duì)我四年的培養(yǎng),讓我學(xué)到了許許多多的知識(shí),感電子系各位教師在這四年里對(duì)我的關(guān)心與照顧,在此致以我深深的意。本論文從選題到最后定稿成文,本校付瑞玲教師一直給予了悉心指導(dǎo),付教師那種嚴(yán)謹(jǐn)?shù)淖黠L(fēng),廣博深邃的洞察力,孜孜不倦的開(kāi)拓精神和敬業(yè)精神令我深受啟迪和教益,謹(jǐn)向我的指導(dǎo)教師付瑞玲教師致以深深的意。最后,我還要向所有幫助過(guò)我的同學(xué)和朋友們致敬,你們的鼓勵(lì)和幫助永遠(yuǎn)是我前進(jìn)的動(dòng)力。參考文獻(xiàn)[1]昭斌.單片機(jī)控制的溫度控制系統(tǒng)[J].石化職業(yè)技術(shù)學(xué)院學(xué)報(bào),1999,12(02A):43-46.[2]於丹.春風(fēng)化雨芽將萌——談我國(guó)單片機(jī)的開(kāi)展[J].微電腦世界,1998,06(17A):22-23.[3]黃天戍,羅璠,徐長(zhǎng)寶,任清珍.一種可靈活使用的溫度控制系統(tǒng)設(shè)計(jì)方法研究[J].中國(guó)儀器儀表,2003,22(07):55-58.[4]毅剛.單片機(jī)原理及應(yīng)用[M].:高等教育,2001:10-15,31.[5]健云,振輝,訾壯輝.一種新型恒溫控制系統(tǒng)[J].大學(xué)自然科學(xué)學(xué)報(bào),1998,37(01A):78-79.[6]豐隆.新型二線AT24C系列串行E~2PROM及其在單片機(jī)系統(tǒng)中的應(yīng)用[J].微電腦世界,1995,29(01A):89-91.[7]元紅妍,鑫.電子綜合設(shè)計(jì)實(shí)驗(yàn)教程[M].:大學(xué),1999:19-21.[8]鳳山,穎宏,正熙.混PID的設(shè)計(jì)及仿真研究[J].北方工業(yè)大學(xué)學(xué)報(bào),2003,19(03):67-68.[9]岱,永海,馬源.智能化PID控制實(shí)驗(yàn)系統(tǒng)[J].實(shí)驗(yàn)技術(shù)與管理,1995,29(03):89-99.[10]StefaniRT,SavantCJJr,ShahianB.HostetterGH.Designoffeedbackcontrolsystems[M].Boston:SaundersCollege,1994:222-234.[11]CannellMB.LedererWJnovelexperimentalchamberforsingle-cellvoltage-clampandpath-clampapplicationswithlowelectricalnoiseandexcellenttemperatureandflowcontrol[J].PflugersArch,1986:V15536-539.[12]VelichkovIVSimpletemperaturecontrollerusing723integratedvoltageregulator[J].PhysESciInstrum,1984:1098-1099.[13]何小艇.電子系統(tǒng)設(shè)計(jì)[M].:大學(xué),2004:111-121.[14]譚克俊.電爐爐溫微機(jī)群控系統(tǒng)的設(shè)計(jì)[J].微型機(jī)與應(yīng)用,1993,21(11):33-35.[15]馬云峰.數(shù)字溫度傳感器DS18B20的原理與應(yīng)用[J].電子原器件應(yīng)用,2002,31(13):66-69.[16]宋非.基于DS18B20傳感器的溫度檢測(cè)系統(tǒng)[J].光電技術(shù)應(yīng)用,2009,11(11):93-94.[17]黃燦勝.基于DS18B20數(shù)字溫度計(jì)溫度補(bǔ)償和測(cè)量系統(tǒng)設(shè)計(jì)[J].XX民族師學(xué)院學(xué)報(bào),2010,29(12A):11-12.[18]金以慧.過(guò)程控制[M].:清華大學(xué),1993:45-48.
附錄主程序#include<reg51.h>#defineucharunsignedchar#defineuintunsignedintsbitDQ=P3^4;//ds18b20與單片機(jī)連接口unsignedcharcodeled[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};uchardatadisdata[5];ucharVref=5;uchara[6];sbitPIN=P0^7;unsignedinttvalue;//溫度值signedinttemp=0;uchartflag;//溫度正負(fù)標(biāo)志signedcharth=40;//上線溫度signedchartl=20;//下線溫度sbitSPEAKER=P1^5;sbitSET=P1^0;sbit ADD=P1^4;sbit SUB=P3^3;unsignedcharnum;sbitRELAY=P2^6;/*************************LCD1602程序**************************/voiddelay1ms(unsignedintms)//延時(shí)1毫秒〔不夠準(zhǔn)確的〕{unsignedinti,j;for(i=0;i<ms;i++)for(j=0;j<100;j++);}voidkeyscan(){ if(SET==0) { delay1ms(10); if(SET==0) { num++; if(num==3) num=0; while(!SET); } } if(num!=0) { if(ADD==0) { delay1ms(10); if(ADD==0) { if(num==1) { th++; if(th==125) th=tl+1; } if(num==2) {if(tl<(th-1)) tl++; } } while(!ADD); } if(SUB==0) { delay1ms(10); if(SUB==0) { if(num==1) { th--; if(th==(tl+1)) th=125; } if(num==2) { tl--; if(tl==-25) tl=th-1; } } while(!SUB); } }}/*************************DS18B20程序**************************/voiddelay_18B20(unsignedinti)//延時(shí)1微秒{ while(i--);}voidds1820rst()/*ds1820復(fù)位*/{unsignedcharx=0; DQ=1;//DQ復(fù)位 delay_18B20(4);//延時(shí) DQ=0;//DQ拉低 delay_18B20(100);//準(zhǔn)確延時(shí)大于480us DQ=1;//拉高 delay_18B20(40); }uchards1820rd()/*讀數(shù)據(jù)*/{unsignedchari=0; unsignedchardat=0; for(i=8;i>0;i--) {DQ=0;//給脈沖信號(hào) dat>>=1; DQ=1;//給脈沖信號(hào) if(DQ) dat|=0x80; delay_18B20(10); } return(dat);}voidds1820wr(ucharwdata)/*寫數(shù)據(jù)*/{unsignedchari=0;for(i=8;i>0;i--){DQ=0;DQ=wdata&0x01;delay_18B20(10);DQ=1;wdata>>=1;}}read_temp()/*讀取溫度值并轉(zhuǎn)換*/{uchara,b;ds1820rst();ds1820wr(0xcc);//*跳過(guò)讀序列號(hào)*/ds1820wr(0x44);//*啟動(dòng)溫度轉(zhuǎn)換*/ds1820rst();ds1820wr(0xcc);//*跳過(guò)讀序列號(hào)*/ds1820wr(0xbe);//*讀取溫度*/a=ds1820rd();b=ds1820rd();tvalue=b;tvalue<<=8;tvalue=tvalue|a;if(tvalue<0x0fff) { tflag=0;}else{tvalue=~tvalue+1;//低于零度 tflag=1;}tvalue=tvalue*(0.625);//溫度值擴(kuò)大10倍,準(zhǔn)確到1位小數(shù) return(tvalue);}/*******************************************************************/voidds1820disp()//溫度值顯示 { disdata[0]=tvalue/1000; disdata[1]=tvalue%1000/100; disdata[2]=tvalue%100/10; disdata[3]=tvalue%10;//小數(shù)位 //disdata[]=0; //} if(tflag==0) { P2=0x01; P0=led[disdata[0]]; delay1ms(10); P2=0x02; P0=led[disdata[1]]; delay1ms(10); P2=0x04; P0=led[disdata[2]]; PIN=0; delay1ms(10); P2=0x08; P0=led[disdata[3]]; delay1ms(10); } else { P2=0x01; P0=0xbf; delay1ms(10); P2=0x02; P0=led[tvalue%1000/100]; delay1ms(10); P2=0x04; P0=led[tvalue%100/10]; PIN=0; delay1ms(10); P2=0x08; P0=led[tvalue%10]; delay1ms(10); }}voiddisplayth(void){ P2=0x01; P0=0x89; delay1ms(10); if(th>0) { P2=0x02; P0=led[th/100]; delay1ms(10); P2=0x04;P0=led[th%100/10]; delay1ms(10); P2=0x08; P0=led[th%100%10]; delay1ms(10); } else { P2=0x02; P0=0xbf; delay1ms(10); P2=0x
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 職業(yè)道德與公司戰(zhàn)略風(fēng)險(xiǎn)試題及答案
- 企業(yè)戰(zhàn)略與技術(shù)創(chuàng)新的風(fēng)險(xiǎn)評(píng)估試題及答案
- 2025年法學(xué)概論考試的重要變量與試題及答案
- 行業(yè)發(fā)展與個(gè)人進(jìn)步的結(jié)合計(jì)劃
- 法學(xué)概論學(xué)習(xí)計(jì)劃試題及答案
- 音樂(lè)欣賞與表演技巧社團(tuán)工作計(jì)劃
- 2025地質(zhì)鉆探設(shè)備購(gòu)銷合同
- 客戶投訴處理流程計(jì)劃
- 行政管理領(lǐng)域的前沿試題及答案探討
- 2025年北京市農(nóng)產(chǎn)品買賣合同樣本版
- 2025年臨床醫(yī)師定期考核必考復(fù)習(xí)題庫(kù)及答案(1080題)
- 二零二五年度老舊小區(qū)改造房屋聯(lián)建合作協(xié)議3篇
- 計(jì)算機(jī)輔助制造(CAM)技術(shù)實(shí)踐考核試卷
- 創(chuàng)新創(chuàng)業(yè)創(chuàng)造:職場(chǎng)競(jìng)爭(zhēng)力密鑰知到智慧樹(shù)章節(jié)測(cè)試課后答案2024年秋上海對(duì)外經(jīng)貿(mào)大學(xué)
- 《廣西高標(biāo)準(zhǔn)農(nóng)田耕地質(zhì)量評(píng)價(jià)工作 指導(dǎo)手冊(cè)》
- 中國(guó)高血壓防治指南(2024年修訂版)
- 課件中華民族共同體概論課件專家版15第十五講:新時(shí)代與中華民族共同體建設(shè)
- 【MOOC】航空航天材料概論-南京航空航天大學(xué) 中國(guó)大學(xué)慕課MOOC答案
- 機(jī)械傷害應(yīng)急處理措施
- 新能源材料與器件基礎(chǔ)知識(shí)單選題100道及答案解析
- 北師大版數(shù)學(xué)四年級(jí)下冊(cè)期末考試試卷及答案
評(píng)論
0/150
提交評(píng)論