![單片機(jī)控制自動(dòng)恒溫箱畢業(yè)設(shè)計(jì)論文_第1頁](http://file4.renrendoc.com/view/4aa0f3be3825beba5cf65ac8e647b758/4aa0f3be3825beba5cf65ac8e647b7581.gif)
![單片機(jī)控制自動(dòng)恒溫箱畢業(yè)設(shè)計(jì)論文_第2頁](http://file4.renrendoc.com/view/4aa0f3be3825beba5cf65ac8e647b758/4aa0f3be3825beba5cf65ac8e647b7582.gif)
![單片機(jī)控制自動(dòng)恒溫箱畢業(yè)設(shè)計(jì)論文_第3頁](http://file4.renrendoc.com/view/4aa0f3be3825beba5cf65ac8e647b758/4aa0f3be3825beba5cf65ac8e647b7583.gif)
![單片機(jī)控制自動(dòng)恒溫箱畢業(yè)設(shè)計(jì)論文_第4頁](http://file4.renrendoc.com/view/4aa0f3be3825beba5cf65ac8e647b758/4aa0f3be3825beba5cf65ac8e647b7584.gif)
![單片機(jī)控制自動(dòng)恒溫箱畢業(yè)設(shè)計(jì)論文_第5頁](http://file4.renrendoc.com/view/4aa0f3be3825beba5cf65ac8e647b758/4aa0f3be3825beba5cf65ac8e647b7585.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
摘要近年來單片機(jī)發(fā)展十分迅速,單片機(jī)的應(yīng)用已經(jīng)滲透到各個(gè)行業(yè)。而溫度的測量及控制變得越來越重要,溫度的控制在各個(gè)領(lǐng)域都有積極的意義。傳統(tǒng)的溫度采集方法不僅費(fèi)時(shí)費(fèi)力,而且精度差,單片機(jī)的出現(xiàn)使得溫度的采集和數(shù)據(jù)處理問題能夠得到很好的解決。所以采用單片機(jī)對溫度進(jìn)行控制不僅具有控制方便、簡單、靈活性大等特點(diǎn),而且還可以大幅度提高被控溫度的技術(shù)指標(biāo),從而能夠大大提高產(chǎn)品的質(zhì)量。本設(shè)計(jì)是基于AT89C51單片機(jī)的恒溫箱控制系統(tǒng),系統(tǒng)分為硬件和軟件兩部分,其中硬件包括:溫度傳感器、顯示、控制和報(bào)警的設(shè)計(jì);軟件包括:顯示程序設(shè)計(jì)、控制程序設(shè)計(jì)和溫度報(bào)警程序設(shè)計(jì)。編寫程序結(jié)合硬件進(jìn)行調(diào)試,能夠?qū)崿F(xiàn)設(shè)置和調(diào)節(jié)初始溫度值,進(jìn)行顯示屏顯示,當(dāng)加熱到設(shè)定值后立刻報(bào)警。本設(shè)計(jì)從實(shí)際應(yīng)用出發(fā)選取了體積小、精度相對高的數(shù)字式溫度傳感元件DS18B20作為溫度采集器,單片機(jī)AT89C51作為主控芯片,LCD1602作為顯示輸出,并且其中包含了PID算法,實(shí)現(xiàn)了對溫度的實(shí)時(shí)測量與恒定控制。關(guān)鍵詞:單片機(jī);恒溫;控制;報(bào)警;PIDAbstractInrecentyears,microcontrollerisdevelopedveryrapid,microcontrollerapplicationshavepenetratedintovariousindustries.Andthemeasurementandcontroloftemperaturebecomesmoreandmoreimportant,thetemperaturecontrolhasapositivesignificanceinvariousfields.Thetraditionalmethodoftemperatureacquisitionisnotonlytime-consumingandlaborious,butpooraccuracy,theemergenceofmicrocontrollermakestheproblemofdataacquisitionandprocessingtemperaturecangetverygoodsettlement.Sousingmicrocontrollertocontroltemperatureisnotonlyeasytocontrol,simple,flexibilityandothercharacteristics,butalsocangreatlyimprovethetemperaturewhichwaschargedwithtechnicalindicators,whichcangreatlyimprovethequalityoftheproduct.Thermostaticcontrolplayadecisiveroleintheprocessofindustrialproduction,temperaturecontroldirectlyaffectstheyieldandqualityofindustrialproduction.ThisdesignistheconstanttemperatureboxcontrolsystembasedonAT89C51microcontroller,thesystemisdividedintotwopartsofhardwareandsoftware,thehardwareincludes:temperaturesensor,display,controlandalarmdesign;softwareincludes:adisplayprogramdesign,programdesignandtemperaturealarmprogramdesign.Writeaprogramcombininghardwaredebugging,canrealizethesettingandadjustingtheinitialtemperature,fordisplay,alarmimmediatelywhenheatedtothesetvalue.Thedesignfrompracticalapplicationselectedsmall,relativelyhighaccuracydigitaltemperaturesensorDS18B20asthetemperaturelogger,AT89C51microcontrollerasthemasterchip,LCD1602asdisplayoutput,andalsocontainsthePIDalgorithm,realizethereal-timemeasurementoftemperatureandconstantcontrol.Keywords:microcontroller;thermostat;control;alarm;PID目錄TOC\o"1-2"\u第1章緒論 11.1課題背景 11.2課題意義 11.3課題內(nèi)容 21.4恒溫箱的發(fā)展與趨勢 21.5本文結(jié)構(gòu)安排 3第2章系統(tǒng)概述 42.1設(shè)計(jì)思路分析 42.2系統(tǒng)需求分析 42.3方案選擇 52.4恒溫箱的工作過程 62.5本章小結(jié) 6第3章系統(tǒng)硬件設(shè)計(jì) 73.1硬件電路設(shè)計(jì)概述 73.2系統(tǒng)功能介紹 83.3時(shí)鐘頻率電路設(shè)計(jì) 83.4顯示電路的設(shè)計(jì) 93.5開關(guān)鍵盤設(shè)計(jì) 113.6溫度報(bào)警電路設(shè)計(jì) 123.7溫度采集電路 133.8本章小結(jié) 19第4章系統(tǒng)軟件設(shè)計(jì) 204.1軟件任務(wù)分析 204.2程序流程圖 204.3系統(tǒng)控制算法 244.4參數(shù)整定 264.5本章小結(jié) 27結(jié)論 28參考文獻(xiàn) 29致謝 30附錄 31第1章緒論1.1課題背景二十一世紀(jì)是科技高速發(fā)展的信息時(shí)代,電子技術(shù)、微型單片機(jī)技術(shù)的應(yīng)用更是空前廣泛,是隨著超大規(guī)模集成電路技術(shù)的發(fā)展而誕生的。由于它具有體積小、功能強(qiáng)、性價(jià)比高等特點(diǎn),所以廣泛應(yīng)用于電子儀表、家用電器、節(jié)能裝置、軍事裝置、機(jī)器人、工業(yè)控制等諸多領(lǐng)域,使產(chǎn)品小型化。智能化,既提高了產(chǎn)品的功能和質(zhì)量,又降低了成本,簡化了設(shè)計(jì)。它迅猛的發(fā)展到了各個(gè)領(lǐng)域,人們也越來越感到應(yīng)用單片機(jī)技術(shù)的優(yōu)越性,因而單片機(jī)也得到了廣泛的應(yīng)用。同時(shí),它也不斷地完善和發(fā)展。智能恒溫箱的溫度是醫(yī)療、工業(yè)生產(chǎn)和食品加工等領(lǐng)域的關(guān)鍵,因此對溫度的測量及控制始終占據(jù)著重要的地位。市場上常見的溫度傳感器以電壓輸出為主要形式,不同的的傳感器其非線性曲線也各不相同,缺乏一個(gè)產(chǎn)品應(yīng)具備的通用性和互換性。溫度傳感器應(yīng)用范圍很廣、使用數(shù)量很大,但是在常規(guī)的環(huán)境參數(shù)中由于溫度受其它因素影響較大,而且難以校準(zhǔn),因此,溫度也是最難準(zhǔn)確測量的一個(gè)參數(shù)。常規(guī)方法測量溫度誤差大、準(zhǔn)確度低、測量滯后的時(shí)間長。傳統(tǒng)的溫度檢測大多以熱敏電阻為溫度傳感器,但熱敏電阻的可靠性差、測量溫度準(zhǔn)確率低,而且必須經(jīng)過專門的接口電路轉(zhuǎn)換成數(shù)字信號(hào)后才能由單片機(jī)進(jìn)行處理。隨著微電子技術(shù)的發(fā)展,單片微處理器功能日益增強(qiáng),價(jià)格低廉,在各方面得到廣泛應(yīng)用。在溫度控制器中應(yīng)用單片機(jī),具有設(shè)計(jì)簡單、可靠性高、控制精度高,功能易擴(kuò)展,有較強(qiáng)的通用性等優(yōu)點(diǎn)。溫度控制器主要實(shí)現(xiàn)對恒溫箱溫度的控制,并滿足不同用戶的個(gè)性需求。因此一個(gè)較完善的控制器應(yīng)具有以下功能:溫度的測量與顯示;用戶設(shè)定功能(如溫度設(shè)定,定時(shí)設(shè)定等);對電加熱管的控制功能;一些功能鍵(如定時(shí)自動(dòng)加熱,恒溫控制,手動(dòng)加熱等);安全措施(漏電檢測,安全失效保護(hù),限溫保護(hù)等)。1.2課題意義溫度控制是工業(yè)生產(chǎn)過程中經(jīng)常遇到的過程控制,特別是在冶金、化工、建材、食品、機(jī)械、石油等工業(yè)中,具有舉足重輕的作用,其溫度的控制效果直接影響著產(chǎn)品的質(zhì)量,因而設(shè)計(jì)一種較為理想的溫度控制系統(tǒng)是非常有價(jià)值的。對于不同場所、不同工藝、所需溫度高低范圍不同、精度不同,則采用的測溫元件、測溫方法以及對溫度的控制方法也將不同;產(chǎn)品工藝不同、控制溫度的精度不同、時(shí)效不同,則對數(shù)據(jù)采集的精度和采用的控制算法也不同。因而,對溫度的測控方法多種多樣。隨著電子技術(shù)和微型計(jì)算機(jī)的迅速發(fā)展,微機(jī)測量和控制技術(shù)也得到了迅速的發(fā)展和廣泛的應(yīng)用。利用微機(jī)對溫度進(jìn)行測控的技術(shù),也便隨之而生,并得到日益發(fā)展和完善,越來越顯示出其優(yōu)越性。單片機(jī)已經(jīng)在測控中獲得了廣泛的應(yīng)用,它除了可以測量電信號(hào)以外,還可以用于溫度、濕度等非電信號(hào)的測量,能獨(dú)立工作的單片機(jī)溫度檢測、溫度控制系統(tǒng)已經(jīng)廣泛應(yīng)用到很多領(lǐng)域。1.3課題內(nèi)容本設(shè)計(jì)采用數(shù)字溫度傳感器DS18B20,其內(nèi)部集成了A/D轉(zhuǎn)換器,使得電路結(jié)構(gòu)更加簡單,而且減少了溫度測量轉(zhuǎn)換時(shí)的精度損失,使得測量溫度更加精確。數(shù)字溫度傳感器DS18B20只用一個(gè)引腳即可與單片機(jī)進(jìn)行通信,大大減少了接線的麻煩,使得單片機(jī)更加具有擴(kuò)展性。由于DS18B20芯片的小型化,更加可以通過單跳數(shù)據(jù)線就可以和主電路連接,故可以把數(shù)字溫度傳感器DS18B20做成探頭,探入到狹小的地方,增加了實(shí)用性,更能串接多個(gè)數(shù)字溫度傳感器DS18B20進(jìn)行多范圍的溫度檢測。由于單片機(jī)功能強(qiáng)大,可大大加快系統(tǒng)的開發(fā)與調(diào)試速度,并具有控制方便、簡單、靈活等特點(diǎn),因此本設(shè)計(jì)采用單片機(jī)為主控制器,通過數(shù)字傳感器測得箱內(nèi)溫度,再將溫度信號(hào)送入主控制器,來完成恒溫箱的溫度控制。箱內(nèi)溫度可保持在設(shè)定的溫度范圍內(nèi),當(dāng)設(shè)置的溫度低于實(shí)時(shí)溫度時(shí),單片機(jī)送出加熱信號(hào);當(dāng)設(shè)置的溫度高于實(shí)時(shí)溫度時(shí),單片機(jī)送出停止信號(hào)。1.4恒溫箱的發(fā)展與趨勢溫度控制技術(shù)在現(xiàn)代信息技術(shù)中是三大基礎(chǔ)之一。恒溫箱不管是在生活上,還是在工業(yè)上都有著巨大的經(jīng)濟(jì)效益。恒溫箱自動(dòng)控制系統(tǒng)在國內(nèi)外都到研究與發(fā)展。恒溫箱的控制系統(tǒng)從開始的由人工調(diào)節(jié)達(dá)到需要的溫度及控制,到現(xiàn)在發(fā)展到采用單片機(jī)的自動(dòng)控制其溫度。恒溫箱最基礎(chǔ)的器件是由溫度檢測系統(tǒng),模數(shù)轉(zhuǎn)換系統(tǒng),單片機(jī)為核心,溫度顯示的組成。溫度檢測系統(tǒng)一般使用溫度傳感器。溫度傳感器從1821年由德國物理學(xué)家賽貝發(fā)明后到熱電偶傳感器。在德國西門子發(fā)明了鉑電阻,后在半導(dǎo)體技術(shù)的支持下相繼開發(fā)了半導(dǎo)體熱電偶傳感器、PN結(jié)溫度傳感器和集成溫度傳感器。20世紀(jì)90年代時(shí)又發(fā)明了智能溫度傳感器。這樣可控制的溫度范圍有所加大,溫度控制的精度也逐步提高。模數(shù)轉(zhuǎn)換器是現(xiàn)實(shí)中各種模擬信號(hào)通向數(shù)字化數(shù)字世界的橋梁。ADC模數(shù)轉(zhuǎn)換器有8位,12,14,16,24位等。ADC的位數(shù)越高分辨率也越高,位數(shù)越高,精度也越高?,F(xiàn)在工業(yè)需要高精度的電器也越來越多。對不同的產(chǎn)品要求的精度不一樣,對ADC的選擇也不一樣。單片機(jī)是一種集成電路的芯片。從1976年起是單片機(jī)的開始階段到1978年的單片機(jī)的完善階段。到了1982年后到1990年,8位的單片機(jī)得到鞏固發(fā)展,以及16位單片機(jī)推出。從1990到現(xiàn)在微控制器的全面發(fā)展階段。所以單片機(jī)深入了各個(gè)領(lǐng)域的發(fā)展與應(yīng)用。因此產(chǎn)品越來越智能化多樣化。顯示一般有數(shù)碼管和液晶顯示。
國內(nèi)恒溫箱的現(xiàn)狀多為傳統(tǒng)式電子產(chǎn)品,而國外溫度控制技術(shù)發(fā)展較為成熟。溫度傳感器采用熱敏電阻或熱電阻,部分產(chǎn)品溫度設(shè)定和電熱絲開關(guān)通過觸摸鍵和液晶顯示屏實(shí)現(xiàn)人機(jī)交互界面,電熱絲開關(guān)切換自動(dòng)完成,運(yùn)算放大電路和開關(guān)電路實(shí)現(xiàn)雙位調(diào)節(jié)。這類智能恒溫箱產(chǎn)品改善了人機(jī)交互界面,解決了“溫度設(shè)定分度值過粗”等問題,但仍存在“控制精度不高”、“時(shí)間常數(shù)大”、“操作較復(fù)雜”等問題。近年來,溫度控制器正朝著高精度、多功能、總線標(biāo)準(zhǔn)化、高可靠性及安全性、開發(fā)虛擬溫度控制器和網(wǎng)絡(luò)溫度控制器、研制單片測溫控溫系統(tǒng)等高科技的方向迅速發(fā)展。以當(dāng)今控制技術(shù)的發(fā)展智能控制溫控器將會(huì)很快取代傳統(tǒng)式電子產(chǎn)品。1.5本文結(jié)構(gòu)安排:緒論。簡要介紹了智能恒溫箱的發(fā)展現(xiàn)狀,說明了課題研究的內(nèi)容。:恒溫箱的概述。說明了恒溫箱的工作過程和主要功能,介紹了設(shè)計(jì)中需要用的單片機(jī)的基礎(chǔ)知識(shí)。:恒溫箱的硬件電路設(shè)計(jì)。詳細(xì)描述了本課題各個(gè)組成電路單元的設(shè)計(jì)。:恒溫箱的軟件設(shè)計(jì)。編寫程序。第2章系統(tǒng)概述單片機(jī)已經(jīng)在測控中獲得了廣泛的應(yīng)用,它除了可以測量電信號(hào)以外,還可以用于溫度、濕度等非電信號(hào)的測量,能獨(dú)立工作的單片機(jī)溫度檢測、溫度控制系統(tǒng)已經(jīng)廣泛應(yīng)用到很多領(lǐng)域。單片機(jī)的接口信號(hào)是數(shù)字電信號(hào),要想用單片機(jī)獲取溫度這類非電信號(hào)的信息,毫無疑問,必須使用溫度傳感器。溫度傳感器的作用是將溫度信息轉(zhuǎn)換為電流或電壓輸出,如果轉(zhuǎn)換后的電流或電壓輸出是模擬信號(hào),那么還必須進(jìn)行A/D轉(zhuǎn)換,以滿足單片機(jī)接口的需要。隨著微電子技術(shù)的發(fā)展,單片微處理器功能日益增強(qiáng),價(jià)格低廉,在各方面得到廣泛應(yīng)用。在溫度控制器中應(yīng)用單片機(jī),具有設(shè)計(jì)簡單、可靠性高、控制精度高,功能易擴(kuò)展,有較強(qiáng)的通用性等優(yōu)點(diǎn)。溫度控制器主要實(shí)現(xiàn)對恒溫箱溫度的控制,并滿足不同用戶的個(gè)性需求。因此一個(gè)較完善的控制器應(yīng)具有以下功能:溫度的測量與顯示;溫度設(shè)定功能;對燈泡的控制功能;安全措施等。本文將采用一種數(shù)字溫度傳感器DS18B20來實(shí)現(xiàn)基于51單片機(jī)的恒溫箱控制系統(tǒng)設(shè)計(jì)。整個(gè)控制系統(tǒng)分為硬件電路設(shè)計(jì)和軟件程序設(shè)計(jì)兩部分。2.1設(shè)計(jì)思路分析設(shè)計(jì)51單片機(jī)的恒溫箱控制系統(tǒng)設(shè)計(jì)時(shí),需要考慮下面4個(gè)方面的內(nèi)容:(1)選擇合適的溫度傳感器芯片。顯然,本文中的核心器件是單片機(jī)和溫度傳感器,單片機(jī)采用常用的51單片機(jī)即可,而溫度傳感器的選擇則需慎重。(2)單片機(jī)和溫度傳感器的接口電路設(shè)計(jì)。(3)控制溫度傳感器實(shí)現(xiàn)溫度信息采集以及數(shù)據(jù)傳輸?shù)能浖O(shè)計(jì)。(4)程序設(shè)計(jì)中運(yùn)用PID算法保證精確控制。2.2系統(tǒng)需求分析(1)在使用中可以將采集來的溫度數(shù)據(jù)計(jì)算轉(zhuǎn)換為我們熟悉的攝氏溫度。(2)在0~125℃的范圍內(nèi),人們可以自由調(diào)節(jié)預(yù)期達(dá)到的溫度。(3)將設(shè)定的預(yù)期溫度和實(shí)時(shí)溫度能顯示出來。(4)可以將實(shí)時(shí)溫度與設(shè)定溫度進(jìn)行比對,以調(diào)節(jié)溫度。2.3方案選擇方案一:采用熱敏電阻,可滿足40~90℃的測量范圍,但熱敏電阻精度、重復(fù)性、可靠性都比較差,其測量溫度范圍相對較小,穩(wěn)定性較差,不能滿足本系統(tǒng)溫度控制的范圍要求。方案二:采用溫度傳感器鉑電阻Pt1000。鉑熱電阻的物理化學(xué)性能在高溫和氧化性介質(zhì)中很穩(wěn)定,它能用作工業(yè)測溫元件,且此元件線性較好。在0—100攝氏度時(shí),最大非線性偏差小于0.5攝氏度。鉑熱電阻與溫度關(guān)系是,Rt=R0(1+At+Bt*t);其中Rt是溫度為t攝氏度時(shí)的電阻;R0是溫度為0攝氏度時(shí)的電阻;t為任意溫度值,A,B為溫度系數(shù)。方案三:采用模擬溫度傳感器AD590K,AD590K具有較高精度和重復(fù)性(重復(fù)性優(yōu)于0.1℃),其良好的非線性可以保證優(yōu)于±0.1℃的測量精度。但其測量的值需要經(jīng)過運(yùn)算放大、模數(shù)轉(zhuǎn)換再傳給單片機(jī),硬件電路較復(fù)雜,調(diào)試也會(huì)相對困難,所以本系統(tǒng)不宜采用此法。方案四:采用數(shù)字溫度傳感器DS18B20,DS18B20提供九位溫度讀數(shù),測量范圍-55℃~125℃,采用獨(dú)特1-WIRE總線協(xié)議,只需一根口線即實(shí)現(xiàn)與MCU的雙向通訊,具有連接簡單,高精度,高可靠性等特點(diǎn)。并且DS18B20支持一主多從。若想實(shí)現(xiàn)多點(diǎn)測溫,可方便擴(kuò)展。綜合以上四種方案,本設(shè)計(jì)采用第四種方案,利用數(shù)字溫度計(jì)DS18B20作為溫度傳感器。2.3.2顯示部件選擇方案一:采用I/O口直接驅(qū)動(dòng),需要占用大量可貴的I/O口資源,且系統(tǒng)運(yùn)行后,更換元件不易,不符合系統(tǒng)設(shè)計(jì)的可靠性、易擴(kuò)展性原則。方案二:采用串行口驅(qū)動(dòng)、靜態(tài)顯示,利用單片機(jī)的串行口輸出數(shù)據(jù),顯示多位數(shù)碼,可節(jié)省大量的I/O口,但每個(gè)數(shù)碼管必須有一個(gè)驅(qū)動(dòng)芯片,且每位段碼須接一個(gè)限流電阻,所須元件多,硬件電路比較復(fù)雜。方案三:采用串行口驅(qū)動(dòng)、動(dòng)態(tài)掃描顯示,利用單片機(jī)的串行口輸出數(shù)據(jù),顯示多位數(shù)碼,多個(gè)數(shù)碼管可共用驅(qū)動(dòng)芯片和限流電阻。這樣既可以簡化硬件電路,又可以節(jié)省大量的I/O口線,為功能擴(kuò)展留下空間。綜合以上三種方案,本設(shè)計(jì)采用方案三:串行口驅(qū)動(dòng)、動(dòng)態(tài)顯示。根據(jù)系統(tǒng)具體指標(biāo)要求,可以對每一個(gè)具體部分進(jìn)行分析設(shè)計(jì)。2.4恒溫箱的工作過程(1)設(shè)定預(yù)期溫度。調(diào)節(jié)預(yù)期的溫度,如果想加一攝氏度就按下“加”鍵,如果想減一攝氏度就按一下“減”鍵,溫度LCD顯示屏上會(huì)顯示改變后的溫度,調(diào)整范圍為0~125℃。(2)溫度采集和計(jì)算。單片機(jī)通過與溫度傳感器進(jìn)行通信,獲取實(shí)時(shí)溫度信息,并將所獲取的溫度信息數(shù)據(jù)轉(zhuǎn)化為攝氏溫度的形式存儲(chǔ)起來。(3)溫度比較和溫度調(diào)節(jié)。將存儲(chǔ)的實(shí)時(shí)攝氏溫度與設(shè)定的預(yù)期溫度經(jīng)行比較。如果實(shí)時(shí)溫度高于設(shè)定溫度,則熄滅燈泡;如果實(shí)時(shí)溫度低于設(shè)定溫度,則開啟燈泡。(4)設(shè)定溫度顯示。LCD顯示屏上“Set”后為存儲(chǔ)的設(shè)定溫度。(5)實(shí)時(shí)溫度顯示。LCD顯示屏上“Now”后為存儲(chǔ)的實(shí)時(shí)溫度??偠灾?,本課題利用89C51單片機(jī)及外圍接口實(shí)現(xiàn)的溫度控制系統(tǒng)設(shè)計(jì)了恒溫箱,該恒溫箱提高了系統(tǒng)的可靠性,簡化了電路結(jié)構(gòu),節(jié)約了成本,是一個(gè)實(shí)用的設(shè)計(jì)工程。2.5本章小結(jié)本章主要講述了恒溫箱主要部件的選擇及其工作原理。在說明工作原理的過程中,突出了電路的組成單元以及這些單元如何實(shí)現(xiàn)溫度采集和溫度控制等功能。第3章系統(tǒng)硬件設(shè)計(jì)3.1硬件電路設(shè)計(jì)概述本設(shè)計(jì)分為硬件設(shè)計(jì)和軟件設(shè)計(jì),這兩者相互結(jié)合,不可分離:從時(shí)間上看,硬件設(shè)計(jì)的絕大部分工作量是在最初階段,到后期往往還要做一些修改。只要技術(shù)準(zhǔn)備充分,硬件設(shè)計(jì)的大量返工是比較少的,軟件設(shè)計(jì)的任務(wù)是貫徹始終的,到中后期基本上都是軟件設(shè)計(jì)任務(wù),隨著集成電路計(jì)數(shù)器的飛速發(fā)展,各種功能很強(qiáng)的芯片不斷出現(xiàn),使硬件電路的集成度越來越高,硬件設(shè)計(jì)的工作量在整個(gè)項(xiàng)目中所占的比重逐漸下降,為使硬件電路設(shè)計(jì)盡可能合理,應(yīng)注意以下幾個(gè)方面:(1)盡可能采用功能強(qiáng)的芯片,以簡化電路。功能強(qiáng)的芯片可以代替若干個(gè)普通芯片,隨著生產(chǎn)工藝的提高,新型芯片的價(jià)格在不斷下降,并不一定比若干個(gè)普通芯片價(jià)格總和高。(2)留有設(shè)計(jì)余地。在設(shè)計(jì)硬件電路時(shí),要考慮到將來修改擴(kuò)展的方便。因?yàn)楹苌儆幸诲N定音的電路設(shè)計(jì),如果現(xiàn)在不留余地,將來可能要為一點(diǎn)小小的修改或擴(kuò)展而被迫進(jìn)行全面返工。(3)程序空間。選用片內(nèi)程序空間足夠大的單片機(jī),本設(shè)計(jì)采用80C51單片機(jī)。(4)RAM空間,80C51單片機(jī)內(nèi)部RAM不多,當(dāng)要增強(qiáng)軟件數(shù)據(jù)處理功能時(shí),往往覺得不足。如果系統(tǒng)配置了外部RAM,則建議多留一些空間。如果選用8155作I/O接口,就可以增強(qiáng)256字節(jié)RAM。如果有大批數(shù)據(jù)需要處理,則應(yīng)配置足夠的RAM,如6264、62256等。隨著軟件設(shè)計(jì)水平提高,往往只要改變或者增加軟件中的數(shù)據(jù)處理算法,就可以使系統(tǒng)功能提高很多,而系統(tǒng)的硬件不必做任何更換就使系統(tǒng)升級(jí)換代。只要在硬件電路設(shè)計(jì)初期考慮到這一點(diǎn),就應(yīng)該為系統(tǒng)將來升級(jí)留有足夠的RAM空間。I/O端口,在樣機(jī)研制出來后進(jìn)行現(xiàn)場試用時(shí),往往會(huì)發(fā)現(xiàn)一些被忽視的問題,而這些問題不是靠單純的軟件措施來解決的。如果有些新的信號(hào)需要采集,就必須增加輸入檢測端:有些物理量需要控制,就必須增加輸出端。如果在硬件電路設(shè)計(jì)就預(yù)留出一些I/O端口,雖然當(dāng)時(shí)空著沒用,那么要用的時(shí)候就能派上用場了。3.2系統(tǒng)功能介紹根據(jù)恒溫箱控制器的功能要求,并結(jié)合對51系列單片機(jī)的資源分析,即單片機(jī)軟件編程自由度大,可用編程實(shí)現(xiàn)各種控制算法和邏輯控制。所以采用AT89C51作為電路系統(tǒng)的控制核心。恒溫箱控制器的總體布局如圖3-1所示。按鍵將設(shè)置好的溫度值傳給單片機(jī),通過溫度顯示模塊顯示出來。初始溫度設(shè)置好后,單片機(jī)開啟輸出控制模塊,使燈泡開始加熱,同時(shí)將從數(shù)字溫度傳感器DS18B20測量到的溫度值實(shí)時(shí)的顯示出來,當(dāng)加熱到設(shè)定溫度值時(shí),單片機(jī)控制聲光報(bào)警模塊,發(fā)出聲光報(bào)警,同時(shí)發(fā)出信號(hào)關(guān)閉燈泡。當(dāng)自然冷卻到設(shè)定溫度以下時(shí),單片機(jī)再次啟動(dòng)加熱器,如此循環(huán)反復(fù),以達(dá)到恒溫控制的目的。系統(tǒng)結(jié)構(gòu)框圖如圖3-1所示。溫度采集溫度采集輸出控制聲光報(bào)警按鍵控制溫度顯示微控制器圖3-1系統(tǒng)結(jié)構(gòu)框圖本系統(tǒng)是采用模塊化設(shè)計(jì)的智能恒溫箱,在生活中有廣泛的應(yīng)用,系統(tǒng)上電后默認(rèn)設(shè)定的恒溫溫度為30℃,使用時(shí)可以自行調(diào)節(jié)預(yù)期的恒溫溫度,調(diào)節(jié)范圍為0~125℃。調(diào)節(jié)好后系統(tǒng)會(huì)將采集來的實(shí)時(shí)溫度與設(shè)定的預(yù)期溫度進(jìn)行比較,如果實(shí)時(shí)溫度比設(shè)定溫度高就關(guān)閉加熱設(shè)備,如果實(shí)時(shí)溫度比預(yù)期溫度低就開啟加熱設(shè)備。3.3時(shí)鐘頻率電路設(shè)計(jì)單片機(jī)必須在時(shí)鐘的驅(qū)動(dòng)下才能工作,在單片機(jī)內(nèi)部有一個(gè)時(shí)鐘振蕩電路,只需要外接一個(gè)振蕩源就能產(chǎn)生一定周期的時(shí)鐘信號(hào)送到單片機(jī)內(nèi)部的各個(gè)單元,決定單片的工作頻率,時(shí)鐘電路如圖3-2所示。圖3-2時(shí)鐘電路一般選用石英晶體振蕩器。此電路大約延遲10ms后振蕩器起振,在XTAL2引腳產(chǎn)生幅度為3V左右的正弦波時(shí)鐘信號(hào),其振蕩頻率主要有石英晶體的頻率確定。電路中兩個(gè)電容C3、C4的作用有兩個(gè):一是幫助振蕩器起振;二是對振蕩器的頻率進(jìn)行微調(diào)。C3、C4的典型值為22pF。單片機(jī)工作時(shí),由內(nèi)部振蕩器產(chǎn)生或由外直接輸入的送至內(nèi)部控制邏輯單元的時(shí)鐘信號(hào)的周期稱為時(shí)鐘周期,其大小是時(shí)鐘信號(hào)頻率的倒數(shù),時(shí)鐘信號(hào)頻率常用fosc表示。3.4顯示電路的設(shè)計(jì)3.4.1顯示電路概述顯示功能與硬件關(guān)系極大,在這里我們使用的是LCD顯示屏顯示,通常在顯示上我們采用的方法一般包括兩種:一種是靜態(tài)顯示,一種是動(dòng)態(tài)掃描。其中靜態(tài)顯示的特點(diǎn)是顯示穩(wěn)定不閃爍,程序編寫簡單,但占用端口資源多;動(dòng)態(tài)掃描的特點(diǎn)是顯示穩(wěn)定程度沒有靜態(tài)顯示好,程序編寫復(fù)雜,但是相對靜態(tài)顯示而言最大的優(yōu)點(diǎn)是占用端口資源少。由于本設(shè)計(jì)需要較多的端口用于其它的功能因此采用占用端口少的動(dòng)態(tài)掃描顯示的辦法。以下將對顯示電路的各個(gè)部件及整體設(shè)計(jì)做詳細(xì)的介紹。3.4.2LCD顯示屏工業(yè)字符型液晶,能夠同時(shí)顯示16x02即32個(gè)字符。(16列2行)1602液晶也叫1602字符型液晶,它是一種專門用來顯示字母、數(shù)字、符號(hào)等的點(diǎn)陣型液晶模塊。它由若干個(gè)5X7或者5X11等點(diǎn)陣字符位組成,每個(gè)點(diǎn)陣字符位都可以顯示一個(gè)字符,每位之間有一個(gè)點(diǎn)距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用,正因?yàn)槿绱怂运荒芎芎玫仫@示圖形。1602LCD是指顯示的內(nèi)容為16x2,即可以顯示兩行,每行16個(gè)字符液晶模塊(顯示字符和數(shù)字)。本次設(shè)計(jì)所用的LCD顯示屏的引腳如圖3-3所示。圖3-3LCD顯示屏引腳圖1602采用標(biāo)準(zhǔn)的16腳接口,其中:第1腳:GND為電源地;第2腳:VCC接5V電源正極;第3腳:VL為液晶顯示器對比度調(diào)整端,接正電源時(shí)對比度最弱,接地電源時(shí)對比度最高(對比度過高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過一個(gè)10K的電位器調(diào)整對比度)。第4腳:RS為寄存器選擇,高電平1時(shí)選擇數(shù)據(jù)寄存器、低電平0時(shí)選擇指令寄存器。第5腳:RW為讀寫信號(hào)線,高電平(1)時(shí)進(jìn)行讀操作,電平(0)時(shí)進(jìn)行寫操作。第6腳:E(或EN)端為使能(enable)端,高電平(1)時(shí)讀取信息,負(fù)跳變時(shí)執(zhí)行指令。第7~14腳:D0~D7為8位雙向數(shù)據(jù)端。第15~16腳:空腳或背燈電源。15腳背光正極,16腳背光負(fù)極。1602LCD有以下特性:3.3V或5V工作電壓,對比度可調(diào);內(nèi)含復(fù)位電路;提供各種控制命令,如:清屏、字符閃爍、光標(biāo)閃爍、顯示移位等多種功能;有80字節(jié)顯示數(shù)據(jù)存儲(chǔ)器DDRAM;內(nèi)建有192個(gè)5x7點(diǎn)陣的字型的字符發(fā)生器CGROM;8個(gè)可由用戶自定義的5x7的字符發(fā)生器CGRAM。特征應(yīng)用:微功耗、體積小、顯示內(nèi)容豐富、超薄輕巧,常用在袖珍式儀表和低功耗應(yīng)用系統(tǒng)中。3.4.3顯示電路整體設(shè)計(jì)顯示電路如圖3-4所示:圖3-4顯示電路圖中VEE接一外接電阻R4,VDD接電源,VSS接地,RS、RW、E分別接單片機(jī)的P1.0、P1.1、P1.2,而單片機(jī)的P0.0~P0.7則接D0~D7。3.5開關(guān)鍵盤設(shè)計(jì)按鍵開關(guān)為機(jī)械彈性開關(guān),當(dāng)按下鍵帽時(shí),按鍵內(nèi)的復(fù)位彈簧片被壓縮,動(dòng)片觸電與靜片觸電相連,鍵盤的兩個(gè)引腳被接通;松手后,復(fù)位彈簧將動(dòng)片彈開,使動(dòng)片與靜片脫離接觸,鍵盤的兩個(gè)引腳被斷開。由于機(jī)械接觸點(diǎn)的彈性作用,一個(gè)按鍵從開始接上至接觸穩(wěn)定要經(jīng)過5~10ms的抖動(dòng)時(shí)間,在此期間,有抖動(dòng)發(fā)生。按鍵抖動(dòng)波形如圖3-5所示。圖3-5按鍵抖動(dòng)電壓波形按鍵開關(guān)輸入需要解決的兩個(gè)主要問題是判斷是否有按鍵按下和消除按鍵抖動(dòng)的影響。按鍵的確認(rèn)反映在電壓上,就是和按鍵相連的引腳呈現(xiàn)出高電平還是低電平。消除按鍵的抖動(dòng)通常有硬件、軟件兩種消除方法。一般在按鍵較多時(shí),采用軟件的方法消除抖動(dòng),即在第一次檢測到有按鍵按下時(shí),執(zhí)行一段延時(shí)12~15ms的子程序后,再確認(rèn)該鍵電平是否任保持為閉合狀態(tài)電平,如果保持為閉合狀態(tài)電平就可以確認(rèn)真有按鍵按下,從而消除抖動(dòng)的影響。一般電子裝置中都設(shè)計(jì)有按鍵輸入,用以控制程序執(zhí)行時(shí)數(shù)據(jù)的輸入或是特殊功能的設(shè)置及操作。在控制電路中,如果按鍵數(shù)不多時(shí)可以使用一個(gè)按鍵對應(yīng)一條輸入位線控制,即獨(dú)立式按鍵。這種接法,一根輸入線上的按鍵是否被按下,不會(huì)影響其他輸入線上的工作狀態(tài)。因此,通過檢測輸入線的電平狀態(tài)就可以很容易判斷哪個(gè)鍵按下了。獨(dú)立式按鍵可以用單穩(wěn)態(tài)鎖存器消除抖動(dòng)。如果監(jiān)控程序中的讀鍵操作安排在主程序(后臺(tái)程序)或鍵盤中斷(外部中斷)子程序中,則該延時(shí)子程序便可直接插入讀鍵過程中。如果讀鍵過程安排在定時(shí)中斷子程序中,就可省去專門的延時(shí)子程序,利用兩次定時(shí)中斷的時(shí)間間隔來完成抖動(dòng)處理。按鍵電路如圖3-6所示。圖3-6按鍵電路3.6溫度報(bào)警電路設(shè)計(jì)報(bào)警電路如圖3-7所示,該電路采用一個(gè)小功率三極管Q2驅(qū)動(dòng)蜂鳴器SPEAKER,當(dāng)單片機(jī)接收到超額溫度信號(hào)或危險(xiǎn)信號(hào)時(shí),輸出腳SPEAKER輸出高點(diǎn)平,Q2導(dǎo)通,致使蜂鳴器SPEAKER得電工作,發(fā)出報(bào)警聲。同時(shí),電路中的發(fā)光二極管指示出電路的工作狀態(tài)。圖3-7溫度報(bào)警電路3.7溫度采集電路3.7.1DS18B20測溫電路DS18B20數(shù)字溫度計(jì)是Dallas公司生產(chǎn)的1-Wire器件,即單總線器件。與傳統(tǒng)的熱敏電阻有所不同,DS18B20可直接將被測溫度轉(zhuǎn)化成串行數(shù)字信號(hào),以供單片機(jī)處理,具有連線簡單、微型化、低功耗、高性能、抗干擾能力強(qiáng)、精度高等特點(diǎn)。因此用它來組成一個(gè)測溫系統(tǒng),具有電路簡單,在一根通信線上可以掛很多這樣的數(shù)字溫度計(jì),十分方便。目前已被眾多行業(yè)進(jìn)行廣泛的運(yùn)用(鍋爐、溫控表糧庫、冷庫、工業(yè)現(xiàn)場溫度監(jiān)控、儀器儀表溫度監(jiān)控、農(nóng)業(yè)大棚溫度監(jiān)控等)。通過編程,DS18B20可以實(shí)現(xiàn)9~12位的溫度讀數(shù)。信息經(jīng)過單線接口送入DS18B20或從DS18B20送出,因此從微處理器到DS18B20僅需連接一條信號(hào)線和地線。讀、寫和執(zhí)行溫度變換所需的電源可以由數(shù)據(jù)線本身提供,而不需要外部電源。每片DS18B20在出廠時(shí)都設(shè)有唯一的產(chǎn)品序列號(hào),因此多個(gè)DS18B20可以掛接于同一條單線總線上,這允許在許多不同的地方放置溫度傳感器,特別適合于構(gòu)成多點(diǎn)溫度測控系統(tǒng)。3.7.2DS18B20的特點(diǎn)介紹獨(dú)特的單線接口方式,與單片機(jī)通信只需一個(gè)引腳,DS18B20與微處理器連接時(shí)僅需要一條口線即可實(shí)現(xiàn)微處理器與DS18B20的雙向通訊。
(2)在使用中不需要任何外圍元件。
(3)可用數(shù)據(jù)線供電,電壓范圍:+3.0~+5.5V。
(4)測溫范圍為-55~+125℃。在-10~+85℃范圍內(nèi)誤差為0.5℃。
(5)通過編程可實(shí)現(xiàn)9~12位的數(shù)字讀數(shù)方式。
(6)用戶可自設(shè)定非易失性的報(bào)警上下限值。
(7)支持多點(diǎn)組網(wǎng)功能,通過識(shí)別芯片各自唯一的產(chǎn)品序列號(hào)從而實(shí)現(xiàn)單線多掛接,多個(gè)DS18B20可以并聯(lián)在唯一的線上,簡化了分布式溫度檢測的應(yīng)用,實(shí)現(xiàn)多點(diǎn)測溫。
(8)負(fù)壓特性,電源極性接反時(shí),溫度計(jì)不會(huì)因發(fā)熱而燒毀,但不能正常工作。(9)告警尋找命令可以識(shí)別和尋址那些溫度超出預(yù)設(shè)告警界限的器件。3.7.3單線(1-wire)技術(shù)目前常用的微機(jī)和外設(shè)之間數(shù)據(jù)傳輸?shù)拇锌偩€有I2C總線、SPI總線等,其中,I2C總線采用同步串行兩線(一根時(shí)鐘線、一根數(shù)據(jù)線)方式,而SPI總線采用同步串行三線(一根時(shí)鐘線、一根輸入線和一根數(shù)據(jù)出線)方式。這兩種總線需要至少兩根或兩根以上的信號(hào)線。美國達(dá)拉斯半導(dǎo)體公司推出了一項(xiàng)特有的單線(1-wire)技術(shù)。該技術(shù)與上述總線不同,它采用單根信號(hào)線,即可傳輸時(shí)鐘,又能傳輸數(shù)據(jù),而且數(shù)據(jù)傳輸是雙向的,因而這種單線技術(shù)具有線路簡單、硬件開銷少、成本低廉、便于擴(kuò)展的優(yōu)點(diǎn)。單線技術(shù)適用于單主機(jī)系統(tǒng),單主機(jī)能夠控制一個(gè)或多個(gè)從機(jī)設(shè)備。主機(jī)可以是微控制器,從機(jī)可以是單線器件,它們之間的數(shù)據(jù)交換、控制都由這根線完成。主機(jī)或從機(jī)通過一個(gè)漏極開路或三態(tài)端口連至數(shù)據(jù)線,以允許設(shè)備在不發(fā)送數(shù)據(jù)時(shí)能夠釋放該線,而讓其他設(shè)備使用。單線通常要外接一個(gè)約5KΩ的上拉電阻,這樣,當(dāng)該線閑置時(shí),其狀態(tài)為高電平。主機(jī)和從機(jī)之間的通信主要分3個(gè)步驟:初始化單線器件、識(shí)別單線器件和單線數(shù)據(jù)傳輸。由于只有一根線通信,所以它們必須是嚴(yán)格的主從結(jié)構(gòu),只有主機(jī)呼叫從機(jī)時(shí),從機(jī)才能應(yīng)答,主機(jī)訪問每個(gè)單線器件必須嚴(yán)格遵循單線命令序列,即遵守上述3個(gè)步驟的順序。如果命令序列混亂,單線器件將不會(huì)響應(yīng)主機(jī)。所有的單線器件都要遵循嚴(yán)格的協(xié)議,以保證數(shù)據(jù)的完整性。1-wire協(xié)議由復(fù)位脈沖、應(yīng)答脈沖、寫0、寫1、讀0和讀1這幾種信號(hào)類型組成。這些信號(hào)中,除了應(yīng)答脈沖,其他均由主機(jī)發(fā)起,并且所有命令和數(shù)據(jù)都是字節(jié)的地位在前。3.7.4DS18B20的引腳及功能介紹DS18B20的外形及TO-92封裝引腳排列見圖3-8,其引腳功能描述見表3-1。圖3-8DS18B20表3-1DS18B20引腳功能描述序號(hào)名稱引腳功能描述1GND地信號(hào)2DQ數(shù)據(jù)輸入/輸出引腳。開漏單總線接口引腳。當(dāng)被用著在寄生電源下,也可以向器件提供電源。3VDD可選擇的VDD引腳。當(dāng)工作于寄生電源時(shí),此引腳必須接地。3.7.5DS18B20在電路中的連接1-wire總線支持一主多從式結(jié)構(gòu),當(dāng)一方完成數(shù)據(jù)通信需要釋放總線時(shí),只需將總線置高點(diǎn)平即可;若需要獲得總線進(jìn)行通信時(shí)則要監(jiān)視總線是否空閑,若空閑,則置低電平獲得總線控制權(quán)。溫度采集電路如圖3-9所示:圖3-9溫度采集電路圖中U2為溫度采集電路的核心部件,溫度傳感器DS18B20。下面將詳細(xì)介紹它的參數(shù)和用法。DS18B20內(nèi)部的低溫度系數(shù)振蕩器是一個(gè)振蕩頻率隨溫度變化很小的振蕩器,為計(jì)數(shù)器1提供一頻率穩(wěn)定的計(jì)數(shù)脈沖。
高溫度系數(shù)振蕩器是一個(gè)振蕩頻率對溫度很敏感的振蕩器,為計(jì)數(shù)器2提供一個(gè)頻率隨溫度變化的計(jì)數(shù)脈沖。
初始時(shí),溫度寄存器被預(yù)置成-55℃,每當(dāng)計(jì)數(shù)器1從預(yù)置數(shù)開始減計(jì)數(shù)到0時(shí),溫度寄存器中寄存的溫度值就增加1℃,這個(gè)過程重復(fù)進(jìn)行,直到計(jì)數(shù)器2計(jì)數(shù)到0時(shí)便停止。
初始時(shí),計(jì)數(shù)器1預(yù)置的是與-55℃相對應(yīng)的一個(gè)預(yù)置值。以后計(jì)數(shù)器1每一個(gè)循環(huán)的預(yù)置數(shù)都由斜率累加器提供。為了補(bǔ)償振蕩器溫度特性的非線性性,斜率累加器提供的預(yù)置數(shù)也隨溫度相應(yīng)變化。計(jì)數(shù)器1的預(yù)置數(shù)也就是在給定溫度處使溫度寄存器寄存值增加1℃計(jì)數(shù)器所需要的計(jì)數(shù)個(gè)數(shù)。
DS18B20內(nèi)部的比較器以四舍五入的量化方式確定溫度寄存器的最低有效位。在計(jì)數(shù)器2停止計(jì)數(shù)后,比較器將計(jì)數(shù)器1中的計(jì)數(shù)剩余值轉(zhuǎn)換為溫度值后與0.25℃進(jìn)行比較,若低于0.25℃,溫度寄存器的最低位就置0;若高于0.25℃,最低位就置1;若高于0.75℃時(shí),溫度寄存器的最低位就進(jìn)位然后置0。這樣,經(jīng)過比較后所得的溫度寄存器的值就是最終讀取的溫度值了,其最后位代表0.5℃,四舍五入最大量化誤差為±1/2LSB,即0.25℃。
溫度寄存器中的溫度值以9位數(shù)據(jù)格式表示,最高位為符號(hào)位,其余8位以二進(jìn)制補(bǔ)碼形式表示溫度值。測溫結(jié)束時(shí),這9位數(shù)據(jù)轉(zhuǎn)存到暫存存儲(chǔ)器的前兩個(gè)字節(jié)中,符號(hào)位占用第一字節(jié),8位溫度數(shù)據(jù)占據(jù)第二字節(jié)。
DS18B20測量溫度時(shí)使用特有的溫度測量技術(shù)。DS18B20內(nèi)部的低溫度系數(shù)振蕩器能產(chǎn)生穩(wěn)定的頻率信號(hào);同樣的,高溫度系數(shù)振蕩器則將被測溫度轉(zhuǎn)換成頻率信號(hào)。當(dāng)計(jì)數(shù)門打開時(shí),DS18B20進(jìn)行計(jì)數(shù),計(jì)數(shù)門開通時(shí)間由高溫度系數(shù)振蕩器決定。芯片內(nèi)部還有斜率累加器,可對頻率的非線性度加以補(bǔ)償。測量結(jié)果存入溫度寄存器中。一般情況下的溫度值應(yīng)該為9位,但因符號(hào)位擴(kuò)展成高8位,所以最后以16位補(bǔ)碼形式讀出。
DS18B20工作過程一般遵循以下協(xié)議:初始化——ROM操作命令——存儲(chǔ)器操作命令——處理數(shù)據(jù)
(1)初始化
單總線上的所有處理均從初始化序列開始。初始化序列包括總線主機(jī)發(fā)出一復(fù)位脈沖,接著由從屬器件送出存在脈沖。存在脈沖讓總線控制器知道DS1820在總線上且已準(zhǔn)備好操作。
(2)ROM操作命令
一旦總線主機(jī)檢測到從屬器件的存在,它便可以發(fā)出器件ROM操作命令之一。所有ROM操作命令均為8位長。這些命令列表如下:
ReadROM(讀ROM)[33H]
此命令允許總線主機(jī)讀DS18B20的8位產(chǎn)品系列編碼,唯一的48位序列號(hào),以及8位的CRC。此命令只能在總線上僅有一個(gè)DS18B20的情況下可以使用。如果總線上存在多于一個(gè)的從屬器件,那么當(dāng)所有從片企圖同時(shí)發(fā)送時(shí)將發(fā)生數(shù)據(jù)沖突的現(xiàn)象(漏極開路會(huì)產(chǎn)生線與的結(jié)果)。
MatchROM(符合ROM)[55H]
此命令后繼以64位的ROM數(shù)據(jù)序列,允許總線主機(jī)對多點(diǎn)總線上特定的DS18B20尋址。只有與64位ROM序列嚴(yán)格相符的DS18B20才能對后繼的存貯器操作命令作出響應(yīng)。所有與64位ROM序列不符的從片將等待復(fù)位脈沖。此命令在總線上有單個(gè)或多個(gè)器件的情況下均可使用。
SkipROM(跳過ROM)[CCH]
在單點(diǎn)總線系統(tǒng)中,此命令通過允許總線主機(jī)不提供64位ROM編碼而訪問存儲(chǔ)器操作來節(jié)省時(shí)間。如果在總線上存在多于一個(gè)的從屬器件而且在SkipROM命令之后發(fā)出讀命令,那么由于多個(gè)從片同時(shí)發(fā)送數(shù)據(jù),會(huì)在總線上發(fā)生數(shù)據(jù)沖突(漏極開路下拉會(huì)產(chǎn)生線與的效果)。
SearchROM(搜索ROM)[F0H]
當(dāng)系統(tǒng)開始工作時(shí),總線主機(jī)可能不知道單線總線上的器件個(gè)數(shù)或者不知道其64位ROM編碼。搜索ROM命令允許總線控制器用排除法識(shí)別總線上的所有從機(jī)的64位編碼。
AlarmSearch(告警搜索)[ECH]
此命令的流程與搜索ROM命令相同。但是,僅在最近一次溫度測量出現(xiàn)告警的情況下,DS18B20才對此命令作出響應(yīng)。告警的條件定義為溫度高于TH或低于TL。只要DS18B20一上電,告警條件就保持在設(shè)置狀態(tài),直到另一次溫度測量顯示出非告警值或者改變TH或TL的設(shè)置,使得測量值再一次位于允許的范圍之內(nèi)。貯存在EEPROM內(nèi)的觸發(fā)器值用于告警。
(3)存儲(chǔ)器操作命令
WriteScratchpad(寫暫存存儲(chǔ)器)[4EH]
這個(gè)命令向DS18B20的暫存器中寫入數(shù)據(jù),開始位置在地址2。接下來寫入的兩個(gè)字節(jié)將被存到暫存器中的地址位置2和3??梢栽谌魏螘r(shí)刻發(fā)出復(fù)位命令來中止寫入。
ReadScratchpad(讀暫存存儲(chǔ)器)[BEH]
這個(gè)命令讀取暫存器的內(nèi)容。讀取將從字節(jié)0開始,一直進(jìn)行下去,直到第9(字節(jié)8,CRC)字節(jié)讀完。如果不想讀完所有字節(jié),控制器可以在任何時(shí)間發(fā)出復(fù)位命令來中止讀取。
CopyScratchpad(復(fù)制暫存存儲(chǔ)器)[48H]
這條命令把暫存器的內(nèi)容拷貝到DS18B20的E2存儲(chǔ)器里,即把溫度報(bào)警觸發(fā)字節(jié)存入非易失性存儲(chǔ)器里。如果總線控制器在這條命令之后跟著發(fā)出讀時(shí)間隙,而DS18B20又正在忙于把暫存器拷貝到E2存儲(chǔ)器,DS18B20就會(huì)輸出一個(gè)“0”,如果拷貝結(jié)束的話,DS18B20則輸出“1”。如果使用寄生電源,總線控制器必須在這條命令發(fā)出后立即起動(dòng)強(qiáng)上拉并最少保持10ms。
ConvertT(溫度變換)[44H]
這條命令啟動(dòng)一次溫度轉(zhuǎn)換而無需其他數(shù)據(jù)。溫度轉(zhuǎn)換命令被執(zhí)行,而后DS18B20保持等待狀態(tài)。如果總線控制器在這條命令之后跟著發(fā)出讀時(shí)間隙,而DS18B20又忙于做時(shí)間轉(zhuǎn)換的話,DS18B20將在總線上輸出“0”,若溫度轉(zhuǎn)換完成,則輸出“1”。如果使用寄生電源,總線控制器必須在發(fā)出這條命令后立即起動(dòng)強(qiáng)上拉,并保持500ms。
RecallE2(重新調(diào)整E2)[B8H]
這條命令把貯存在E2中溫度觸發(fā)器的值重新調(diào)至?xí)捍娲鎯?chǔ)器。這種重新調(diào)出的操作在對DS18B20上電時(shí)也自動(dòng)發(fā)生,因此只要器件一上電,暫存存儲(chǔ)器內(nèi)就有了有效的數(shù)據(jù)。在這條命令發(fā)出之后,對于所發(fā)出的第一個(gè)讀數(shù)據(jù)時(shí)間片,器件會(huì)輸出溫度轉(zhuǎn)換忙的標(biāo)識(shí):“0”=忙,“1”=準(zhǔn)備就緒。
ReadPowerSupply(讀電源)[B4H]
對于在此命令發(fā)送至DS18B20之后所發(fā)出的第一讀數(shù)據(jù)的時(shí)間片,器件都會(huì)給出其電源方式的信號(hào):“0”=寄生電源供電,“1”=外部電源供電。
(4)處理數(shù)據(jù)
DS18B20的高速暫存存儲(chǔ)器由9個(gè)字節(jié)組成,其分配如表3-2所示。當(dāng)溫度轉(zhuǎn)換命令發(fā)布后,經(jīng)轉(zhuǎn)換所得的溫度值以二字節(jié)補(bǔ)碼形式存放在高速暫存存儲(chǔ)器的第0和第1個(gè)字節(jié)。單片機(jī)可通過單線接口讀到該數(shù)據(jù),讀取時(shí)低位在前,高位在后。表3-2DS18B20暫存器字節(jié)分配溫度/℃二進(jìn)制表示十六進(jìn)制表示符號(hào)位(5位)數(shù)據(jù)位(11位)+125000001111101000007D0H+25.062500000001100100010191H+10.125000000001010001000A2H+0.500000000000010000008H000000000000000000000H-0.51111111111111000FFF8H-10.1251111111101011110FF5EH-25.6251111111001101111FE6FH-551111110010010000FC90H上表是DS18B20溫度采集轉(zhuǎn)化后得到的12位數(shù)據(jù),存儲(chǔ)在DS18B20的兩個(gè)8比特的RAM中,二進(jìn)制中的前面5位是符號(hào)位,如果測得的溫度大于或等于0,這5位為0,只要將測到的數(shù)值乘于0.0625即可得到實(shí)際溫度;如果溫度小于0,這5位為1,測到的數(shù)值需要取反加1再乘于0.0625即可得到實(shí)際溫度。
溫度轉(zhuǎn)換計(jì)算方法舉例:
例如當(dāng)DS18B20采集到+125℃的實(shí)際溫度后,輸出為07D0H,則:
實(shí)際溫度=07D0H╳0.0625=2000╳0.0625=125.0℃。
例如當(dāng)DS18B20采集到-55℃的實(shí)際溫度后,輸出為FC90H,則應(yīng)先將11位數(shù)據(jù)位取反加1得370H(符號(hào)位不變,也不作為計(jì)算),則:
實(shí)際溫度=370H╳0.0625=880╳0.0625=55.0℃。3.8本章小結(jié)本章詳細(xì)的講述了以AT89C51為核心元件的恒溫箱的硬件電路具體設(shè)計(jì)過程,分析了具體電路的工作原理。在設(shè)計(jì)過程中,實(shí)現(xiàn)溫度控制的是通過編寫程序的方法集成在89C51內(nèi)部。接著將程序下載到硬件電路中,配合周邊的溫度采集電路,時(shí)鐘電路,溫度報(bào)警電路,顯示電路等,制作出符合設(shè)計(jì)要求的恒溫箱。第4章系統(tǒng)軟件設(shè)計(jì)4.1軟件任務(wù)分析軟件任務(wù)分析和硬件電路設(shè)計(jì)結(jié)合進(jìn)行,哪些功能由硬件完成,哪些任務(wù)由軟件完成,在硬件電路設(shè)計(jì)基本定型后,也就基本上決定下來了。軟件任務(wù)分析環(huán)節(jié)是為軟件設(shè)計(jì)做一個(gè)總體規(guī)劃。從軟件的功能來看可分為兩大類:一類是執(zhí)行軟件,它能完成各種實(shí)質(zhì)性的功能,如測量,計(jì)算,顯示,打印,輸出控制和通信等;另一類是監(jiān)控軟件,它是專門用來協(xié)調(diào)各執(zhí)行模塊和操作者的關(guān)系,使在系統(tǒng)軟件中充當(dāng)組織調(diào)度角色的軟件。這兩類軟件的設(shè)計(jì)方法各有特色,執(zhí)行軟件的設(shè)計(jì)偏重算法效率,與硬件關(guān)系密切,千變?nèi)f化。軟件任務(wù)分析時(shí),應(yīng)將各執(zhí)行模塊一一列出,并為每一個(gè)執(zhí)行模塊進(jìn)行功能定義和接口定義(輸入輸出定義)。在對各執(zhí)行模塊進(jìn)行定義時(shí),將要牽扯到的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)類型問題也一并規(guī)劃好。各執(zhí)行模塊規(guī)劃好后,就可以設(shè)計(jì)監(jiān)控程序了。首先根據(jù)系統(tǒng)功能和鍵盤設(shè)置選擇一種最適合的監(jiān)控程序結(jié)構(gòu)。相對來講,執(zhí)行模塊任務(wù)明確單純,比較容易編程,而監(jiān)控程序較易出問題。這如同當(dāng)一名操作工人比較容易,而當(dāng)一個(gè)廠長就比較難一樣。軟件任務(wù)分析的另一個(gè)內(nèi)容是如何安排監(jiān)控軟件和執(zhí)行模塊。整個(gè)系統(tǒng)軟件可分為后臺(tái)程序(背景程序)和前臺(tái)程序。后臺(tái)程序指主程序及其調(diào)用的子程序,這類程序?qū)?shí)時(shí)性要求不是太高,延時(shí)幾十毫秒甚至幾百毫秒也沒關(guān)系,故通常將監(jiān)控程序(鍵盤解釋程序),顯示程序和打印程序等與操作者打交道的程序放在后臺(tái)程序中執(zhí)行;而前臺(tái)程序安排一些實(shí)時(shí)性要求較高的內(nèi)容,如定時(shí)系統(tǒng)和外部中斷。也可以將全部程序均安排在前臺(tái),后臺(tái)程序?yàn)椤笆瓜到y(tǒng)進(jìn)入睡眠狀態(tài)”,以利于系統(tǒng)節(jié)電和抗干擾。4.2程序流程圖在本程序中包括了如下主要的程序。主程序的主要功能是負(fù)責(zé)溫度的實(shí)時(shí)顯示,讀出并處理DS18B20的測量的當(dāng)前溫度值,溫度測量每1s進(jìn)行一次。這樣可以在一秒之內(nèi)測量一次被測溫度,其程序流程如圖4-1所示:初始化初始化設(shè)定溫度溫度采集計(jì)算溫度比較處理顯示溫度開始結(jié)束圖4-1主程序流程圖溫度采集計(jì)算子程序如圖4-2所示:圖4-2溫度采集計(jì)算子程序流程圖由以上程序可以看出,調(diào)用程序前即系統(tǒng)運(yùn)行首要先對DS18B20進(jìn)行初始化,然后寫DS18B20,發(fā)出溫度轉(zhuǎn)換開始指令,等待A/D轉(zhuǎn)換并再次初始化,發(fā)讀取溫度指令,最終將讀取的溫度數(shù)據(jù)轉(zhuǎn)化為攝氏溫度并存儲(chǔ)。溫度比較處理子程序流程圖如圖4-3所示:讀取實(shí)時(shí)溫度值讀取實(shí)時(shí)溫度值實(shí)時(shí)溫度與設(shè)定溫度是否相等實(shí)時(shí)溫度比設(shè)定溫度大關(guān)燈開燈N返回NYY圖4-3溫度比較處理子程序流程圖在該程序中,將讀取的實(shí)時(shí)溫度與設(shè)定好的溫度比較,當(dāng)實(shí)時(shí)溫度小于設(shè)定溫度時(shí),發(fā)出開燈信號(hào);當(dāng)實(shí)時(shí)溫度大于設(shè)定溫度時(shí),發(fā)出關(guān)燈信號(hào)。報(bào)警子程序流程如圖4-4所示:當(dāng)前溫度>設(shè)定溫度當(dāng)前溫度>設(shè)定溫度是否報(bào)警報(bào)警子程序返回開報(bào)警器,關(guān)閉電燈NNYY返回返回圖4-4報(bào)警子程序流程圖根據(jù)設(shè)計(jì)要求,當(dāng)檢測到當(dāng)前溫度值高于設(shè)定溫度值時(shí)報(bào)警,報(bào)警的同時(shí)關(guān)閉電燈。為了防止誤報(bào),設(shè)置了報(bào)警允許標(biāo)志,只有在允許報(bào)警的情況下,溫度值高于設(shè)定溫度值時(shí)才報(bào)警。4.3系統(tǒng)控制算法PID調(diào)節(jié)的實(shí)質(zhì)就是根據(jù)輸入的偏差值,按比例、積分、微分的函數(shù)關(guān)系,進(jìn)行運(yùn)算,將其運(yùn)算結(jié)果用以輸出控制,將基本PID算式離散化可得到位置型PID控制算法,對位置型PID進(jìn)行變換可得到增量型PID控制算法。對控制精度要求較高的系統(tǒng)一般采用位置型算法,而在以步進(jìn)電機(jī)或多圈電位器做執(zhí)行器件的系統(tǒng)中,則采用增量型算法。PID是一種工業(yè)控制過程中應(yīng)用較為廣泛的一種控制算法,它具有原理簡單,易于實(shí)現(xiàn),穩(wěn)定性好,適用范圍廣,控制參數(shù)易于整定等優(yōu)點(diǎn)。PID控制不需了解被控對象的數(shù)學(xué)模型,只要根據(jù)經(jīng)驗(yàn)調(diào)整控制器參數(shù),便可獲得滿意的結(jié)果。其不足之處是對被控參數(shù)的變化比較敏感。但是通過軟件編程方法實(shí)現(xiàn)PID控制,可以靈活地調(diào)整參數(shù)。盡管近年來出現(xiàn)了很多先進(jìn)的控制算法,但PID控制仍然以其獨(dú)有的特點(diǎn)在工業(yè)控制過程中具有相當(dāng)大的比重,且控制效果相當(dāng)令人滿意。連續(xù)PID控制器也稱比例-積分-微分控制器,即過程控制是按誤差的比例(P-Proportion)、積分(I-Integration)和微分(D-Differentiation)對系統(tǒng)進(jìn)行控制,其系統(tǒng)原理框圖如圖4-5所示:比例比例積分微分被控對象+U(t)C(t)E(t)R(t)+U(t)C(t)E(t)R(t)__圖4-5PID的原理框圖它的控制規(guī)律的數(shù)學(xué)模型如下:(4-1)或?qū)懗蓚鬟f函數(shù)形式:(4-2)式中,:調(diào)節(jié)器輸入函數(shù),即給定量與輸出量的偏差;:調(diào)節(jié)器輸出函數(shù)。:比例系數(shù);:積分時(shí)間常數(shù);:微分時(shí)間常數(shù)。將式(4-1)展開,調(diào)節(jié)器輸出函數(shù)可分成比例部分、積分部分和微分部分,它們分別是:(1)比例部分比例部分的數(shù)學(xué)表達(dá)式是,是比例系數(shù),越大,可以使系統(tǒng)的過渡過程越快,迅速反應(yīng)誤差,但不能消除穩(wěn)態(tài)誤差,過大容易引起不穩(wěn)定。因此,此比例系數(shù)應(yīng)選擇合適,才能達(dá)到使系統(tǒng)的過渡過程時(shí)間短而穩(wěn)定的效果。(2)積分部分積分部分的數(shù)學(xué)表達(dá)式是,從它的數(shù)學(xué)表達(dá)式可以看出,要是系統(tǒng)誤差存在,控制作用就會(huì)不斷增加或減少,只有時(shí),它的積分才是一個(gè)不變的常數(shù),控制作用也就不會(huì)改變,積分部分的作用是消除系統(tǒng)誤差。積分時(shí)間常數(shù)的選擇對積分部分的作用影響很大。較大,積分作用較弱,這時(shí),系統(tǒng)消除誤差所需的時(shí)間會(huì)加長,調(diào)節(jié)過程慢;較小,積分作用增強(qiáng),這時(shí)可能使系統(tǒng)過渡過程產(chǎn)生振蕩,但可以較快地消除誤差。(3)微分部分微分部分的數(shù)學(xué)表達(dá)式是。微分部分的作用主要是抵消誤差的變化,作用強(qiáng)弱由微分時(shí)間常數(shù)確定。越大,則抑制誤差變化的作用越強(qiáng),但易于使系統(tǒng)產(chǎn)生振蕩;越小,抵消誤差的作用越弱。因而,微分時(shí)間常數(shù)要選擇合適,使系統(tǒng)盡快穩(wěn)定。本設(shè)計(jì)將使用比例積分調(diào)節(jié)。4.4參數(shù)整定由于PID控制器的輸出為系統(tǒng)偏差的比例、微分和積分作用后的線性組合,所以調(diào)整各個(gè)部分的線性系數(shù)就是PID控制器控制性能好壞的關(guān)鍵。以下是參數(shù)整定的幾種方法。(1)臨界比例度法
先在純比例作用下,在閉合的調(diào)節(jié)系統(tǒng)中,從大到小地逐漸地改變調(diào)節(jié)器的比例度,就會(huì)得到一個(gè)臨界振蕩過程。這時(shí)的比例度叫臨界比例度,周期為臨界振蕩周期。記下和,然后按經(jīng)驗(yàn)公式來確定調(diào)節(jié)器的各參數(shù)值。
(2)衰減曲線法
臨界比例度法是要系統(tǒng)等幅振蕩,還要多次試湊,而用衰減曲線法較簡單,一般又有兩種方法。
①4:1衰減曲線法
使系統(tǒng)處于純比例作用下,在達(dá)到穩(wěn)定時(shí),用改變給定值的辦法加入階躍干擾,觀察記錄曲線的衰減比,然后逐漸從大到小改變比例度,使出現(xiàn)4:1的衰減比為止。記下此時(shí)的比例度和振蕩周期。再按經(jīng)驗(yàn)公式來確定PID數(shù)值。
②10:1衰減曲線法
有的過程,4:1衰減仍嫌振蕩過強(qiáng),可采用10:1衰減曲線法。方法同上,得到10:1衰減曲線,記下此時(shí)的比例度和上升時(shí)間,再按經(jīng)驗(yàn)公式來確定PID的數(shù)值。
(3)經(jīng)驗(yàn)試湊法
試湊法就是根據(jù)控制器各參數(shù)對系統(tǒng)性能的影響程度,邊觀察系統(tǒng)的運(yùn)行,邊修改參數(shù),直到滿意為止。本文采用經(jīng)驗(yàn)試湊法進(jìn)行參數(shù)整定。
一般情況下,增大比例系數(shù)會(huì)加快系統(tǒng)的響應(yīng)速度,有利于減少靜差。但過大的比例系數(shù)會(huì)使系統(tǒng)有較大的超調(diào),并產(chǎn)生振蕩使穩(wěn)定性變差。減小積分系數(shù)將減少積分作用,有利于減少超調(diào)使系統(tǒng)穩(wěn)定,但系統(tǒng)消除靜差的速度慢。在試湊時(shí),一般可根據(jù)以上參數(shù)對控制過程的影響趨勢,對參數(shù)實(shí)行先比例、后積分的步驟進(jìn)行整定。比例部分整定
首先將積分系數(shù)和微分系數(shù)取零,即取消微分和積分作用,采用純比例控制。將比例系數(shù)由小到大變化,觀察系統(tǒng)的響應(yīng),直至速度快,且有一定范圍的超調(diào)為止。最后確定值為4。積分部分整定如果比例控制系統(tǒng)的靜差達(dá)不到設(shè)計(jì)要求,這時(shí)可以加入積分作用。在整定時(shí)將積分系數(shù)由小逐漸增加,積分作用就逐漸增強(qiáng),觀察輸出會(huì)發(fā)現(xiàn),系統(tǒng)的靜差會(huì)逐漸減少直至消除。反復(fù)試驗(yàn)幾次,直到消除靜差的速度滿意為止。注意這時(shí)的超調(diào)量會(huì)比原來加大,應(yīng)適當(dāng)?shù)慕档鸵稽c(diǎn)比例系數(shù)。最后值為0.265。4.5本章小結(jié)本章是恒溫箱的軟件設(shè)計(jì),包括主程序、溫度采集計(jì)算子程序、溫度比較處理子程序、報(bào)警子程序等,實(shí)現(xiàn)恒溫箱的主要功能是通過編寫程序的方法集成在89C51內(nèi)部。程序設(shè)計(jì)中包含了一些PID算法,將程序下載到硬件電路中,實(shí)現(xiàn)溫控功能。結(jié)論本設(shè)計(jì)是以AT89C51單片機(jī)為核心進(jìn)行的,數(shù)據(jù)采樣模塊采用可直接輸出數(shù)字量的數(shù)字溫度傳感器DS18B20,采用繼電器驅(qū)動(dòng)模塊,通過對電燈的控制可實(shí)現(xiàn)溫度的自動(dòng)控制,能夠?qū)崿F(xiàn)設(shè)置和調(diào)節(jié)初始溫度值,進(jìn)行顯示屏顯示,當(dāng)加熱到設(shè)定值后立刻報(bào)警的功能。在研究恒溫控制的基礎(chǔ)上,針對溫度的控制,制定了溫度檢測、控制系統(tǒng)總體方案,說明了恒溫系統(tǒng)的工作原理,為恒溫系統(tǒng)搭建了硬件平臺(tái):包括溫度采集系統(tǒng)、溫度顯示系統(tǒng)、溫度比較系統(tǒng)以及控制系統(tǒng)。設(shè)計(jì)中用到了KEIL、PROTEL99SE、PROTEUS6.7等設(shè)計(jì)與仿真軟件。本著安全性、可靠性、穩(wěn)定性和易擴(kuò)展性等設(shè)計(jì)原則,對各方案進(jìn)行了細(xì)心的比較,并對設(shè)計(jì)中使用的芯片進(jìn)行了仔細(xì)的分析,力求設(shè)計(jì)出一個(gè)安全、穩(wěn)定、可靠的溫度控制系統(tǒng)。因此,本系統(tǒng)的安全性和可擴(kuò)展性都比較好。溫度控制系統(tǒng)廣泛應(yīng)用于社會(huì)生活的各個(gè)領(lǐng)域,如何提高溫度控制對象的運(yùn)行性能一直以來都是控制人員和現(xiàn)場技術(shù)人員努力解決的問題,開發(fā)出性能較好的溫度控制系統(tǒng)對于測控技術(shù)的發(fā)展具有很大的意義。鑒于溫度控制的發(fā)展趨勢,在以后的實(shí)踐中對系統(tǒng)還要做進(jìn)一步的改進(jìn):硬件方面,采用DSP,ARM或者利用系統(tǒng)SOC對系統(tǒng)的硬件進(jìn)行重新設(shè)計(jì),軟件方面,摒棄傳統(tǒng)的前后臺(tái)系統(tǒng)軟件編程模式,改用基于實(shí)時(shí)操作系統(tǒng)的系統(tǒng)軟件開發(fā);控制算法方面,嘗試采用現(xiàn)在得到快速發(fā)展的智能控制方法,如模糊控制、神經(jīng)網(wǎng)絡(luò)控制等等。參考文獻(xiàn)[1]康華光.電子技術(shù)基礎(chǔ)數(shù)字部分(第四版)[M].高等教育出版社,2003.[2]戴佳等.51單片機(jī)應(yīng)用系統(tǒng)開發(fā)典型實(shí)例[M].中國電力出版社,2005.[3]高衛(wèi)東等.51單片機(jī)原理與實(shí)踐[M].北京航空航天大學(xué),2008.[4]JhnPotterShields.HowtoBuildProximityDetectorsandMetalLocators[M]. MerrillCo,1972.[5]何立民.單片機(jī)高級(jí)教程應(yīng)用與設(shè)計(jì)[M].北京航空航天大學(xué)出版社,2007.1.[6]胡漢才.單片機(jī)原理及接口技術(shù)[M].清華大學(xué)出版社,1999.[7] 歐陽文.ATMEL89系列單片機(jī)的原理與開發(fā)實(shí)踐[M].中國電力出版社, 2007.6.[8]郝迎吉,劉紅兵.由89C51實(shí)現(xiàn)的恒溫控制系統(tǒng)[J].自動(dòng)化與儀器儀表,1999.[9]吳琳,楊林,趙桂豐.基于單片機(jī)的溫度數(shù)據(jù)采集器[J].現(xiàn)代電子技 術(shù),
2008(19).[10]CharlesGarrett.SuccessfulCoinHunting[M].RamPublishing.1996.[11]潘永雄.新編單片機(jī)原理與應(yīng)用[M].西安電子科技大學(xué)出版社,2003.[12]徐鳳霞,趙成安.AT89C51單片機(jī)溫度控制系統(tǒng)[J].齊齊哈爾大學(xué)學(xué)報(bào), 2004,3.[13]樓然苗.51系列單片機(jī)設(shè)計(jì)實(shí)例[M].北京航空航天大學(xué)出版社,2003.03.[14]TheElectronicMetalDetectorHandbook[M].WesternHeritagePress, 1998.[15]HUHong-bin.Measuringfortemperaturecharacteristicoftemperaturerelay[M]. ElectroMechanicalelement,2003,9.致謝本課題是在老師的悉心指導(dǎo)下完成的,從論文的選題、系統(tǒng)設(shè)計(jì)、到修改定稿都沒有離開老師的幫助。通過本次設(shè)計(jì),本人在老師的指引下學(xué)到了許多知識(shí),這些是在平時(shí)的學(xué)習(xí)中得不到的知識(shí),她嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度、淵博的學(xué)識(shí)和悉心的指導(dǎo)使我受益非淺。在此,向老師表以崇高的敬意和由衷的感謝!還要感謝各位評(píng)閱老師,經(jīng)過你們的認(rèn)真評(píng)閱和指正,將會(huì)使我的設(shè)計(jì)的系統(tǒng)更加完善。在此,我向你們致以最誠摯的謝意!本次課程設(shè)計(jì)的完成還離不開我身邊同學(xué)和一些老師的幫忙,在系統(tǒng)軟件設(shè)計(jì)方面同學(xué)給了我很大的幫助,在此,向他們表示感謝!鑒于本人所學(xué)知識(shí)有限,經(jīng)驗(yàn)不足,又是初次研究這種復(fù)雜的設(shè)計(jì),在此過程中難免存在一些錯(cuò)誤和不足之處,懇請各位老師給予批評(píng)和指正。附錄#include<reg52.h>#include<stdio.h>#include<intrins.h>#include"LCD1602.h"#include"ATEEPROM.h"#include"DS18B20.h"sbitKEY1=P1^3;sbitKEY2=P1^4;sbitLED=P2^0;sbitSpeak=P2^1;sbitOUT=P2^2;#defineucharunsignedchar#defineuintunsignedintvoidDelay_ms(uinti)//1ms延時(shí){ uintx,j; for(j=0;j<i;j++) for(x=0;x<118;x++); }unsignedintCount,Set_Count,Set_Count1;/*********************************************************************名稱:Time0_Init()*功能:定時(shí)器的初始化,12MZ晶振,10ms***********************************************************************/voidTime0_Init(){ TMOD=0x01; IE =0x82; TH0=(65536-920)/256;//計(jì)數(shù)初值重裝載TL0=(65536-920)%256; TR0=1; }/*********************************************************************名稱:Time0_Int()*功能:定時(shí)器中斷,中斷中實(shí)現(xiàn)Count加一***********************************************************************/voidTime0_Int()interrupt1{ TH0=(65536-920)/256;//計(jì)數(shù)初值重裝載TL0=(65536-920)%256; Count++; if(Count==Set_Count1) { //OUT=0; } if(Count==100) { //OUT=1; Count=0; }}unsignedcharPID_Change(unsignedcharPID_IN){ unsignedcharPID_OUT; PID_OUT=10+PID_IN*2; returnPID_OUT;}voidmain(){ unsignedcharTable[5],Table1[3]; intTemp,Temp_H,Temp_L; Delay_ms(1000); Time0_Init();LCD1602_init();//LCD1602初始化 LCD1602_Disp_ZF(0x80,"Now:'C",16); LCD1602_Disp_ZF(0x80+0x40,"Set:'C",16); EA=0; Temp_H=ISP_READ(0x2c00);// Temp_L=ISP_READ(0x2c01); EA=1; while(1) { Set_Count1=PID_Change(Set_Count); EA=0; Temp=DS18B20_Display()*10; EA=1; if(Temp>Temp_H*10) { LED=0; if(Set_Count==0)Set_Count=1; Set_Count--; OUT=1; Speak=0; Delay_ms(1000); Speak=1; } else { LED=1; OUT=0; Set_Count++; if(Set_Count==45)Set_Count=44; Speak=1; Delay_ms(1000); } if(!KEY1) { Delay_ms(30); if(!KEY1) { Temp_H++; EA=0; ISP_ERASE(0x2c00); //注意:字節(jié)編程時(shí)必須要先要擦除整個(gè)扇區(qū) ISP_PROGRAM(0x2c00,Temp_H); ISP_PROGRAM(0x2c01,Temp_L); EA=1; } } if(!KEY2) { Delay_ms(30); if(!KEY2) { Temp_H--; EA=0; ISP_ERASE(0x2c00); //注意:字節(jié)編程時(shí)必須要先要擦除整個(gè)扇區(qū) ISP_PROGRAM(0x2c00,Temp_H); ISP_PROGRAM(0x2c01,Temp_L); EA=1; } }#include"DS18B20.h"#definejump_ROM0xCC//ROM地址#definestart0x44//起始地址#defineread_EEROM0xBE//EEROM地址voidDS18B20_delay_1(void){ inti,j; for(i=0;i<=10;i++) for(j=0;j<=2;j++);}voidDS18B20_delay(unsignedintN){ inti; for(i=0;i<N;i++);}voidDS18B20_Delay_1ms(unsignedinti)//1ms延時(shí){ unsignedintx,j; for(j=0;j<i;j++) for(x=0;x<=148;x++); }/*********************************************************************名稱:Reset()*功能:復(fù)位DS18B20********************************************************************/unsignedcharDS18B20_Reset(void){ unsignedchardeceive_ready; DS18B20_DQ=0; DS18B20_delay(29); DS18B20_DQ=1; DS18B20_delay(3); deceive_ready=DS18B20_DQ; DS18B20_delay(25); return(deceive_ready);}/*********************************************************************名稱:read_bit()*功能:從DS18B20讀一個(gè)位值********************************************************************/unsignedcharDS18B20_read_bit(void){ unsignedchari; DS18B20_DQ=0; DS18B20_DQ=1; for(i=0;i<3;i++); return(DS18B20_DQ);}/*********************************************************************名稱:write_bit()*功能:向DS18B20寫一位********************************************************************/voidDS18B20_write_bit(unsignedcharbitval){ DS18B20_DQ=0; if(bitval==1) DS18B20_DQ=1; DS18B20_delay(5); DS18B20_DQ=1;}/*********************************************************************名稱:read_byte()*功能:從DS18B20讀一個(gè)字節(jié)********************************************************************/unsignedcharDS18B20_read_byte(void){ unsignedchari,m,receive_data; m=1; receive_data=0; for(i=0;i<8;i++) { if(DS18B20_read_bit()) { receive_data=receive_data+(m<<i); } DS18B20_delay(6); } return(receive_data);}/*********************************************************************
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 450億廣告投放框架合同正式簽署
- 人力資源和社會(huì)保障局與勞動(dòng)合同法改革探討
- 個(gè)體戶全職員工標(biāo)準(zhǔn)勞動(dòng)合同合同范本
- 個(gè)人小型店面租賃合同樣本
- 個(gè)體藥店并購轉(zhuǎn)讓合同及附件
- 產(chǎn)業(yè)合作投資合同
- 交通事故賠償合同范本大全
- 個(gè)人家政服務(wù)勞務(wù)合同
- 喪葬禮儀服務(wù)合同模板
- 二手拖拉機(jī)買賣合同協(xié)議書范本
- 班級(jí)管理交流-班主任工作經(jīng)驗(yàn)交流課件(共28張ppt)
- 建筑裝飾工程計(jì)量與計(jì)價(jià)試題一及答案
- 簡易勞務(wù)合同電子版
- 明代文學(xué)緒論
- 通用稅務(wù)自查情況說明報(bào)告(7篇)
- 體育賽事的策劃、組織與實(shí)施 體育賽事利益相關(guān)者
- 分析化學(xué)(高職)PPT完整版全套教學(xué)課件
- 晚熟的人(莫言諾獎(jiǎng)后首部作品)
- m拱頂儲(chǔ)罐設(shè)計(jì)計(jì)算書
- 2023外貿(mào)業(yè)務(wù)協(xié)調(diào)期中試卷
- 新人教鄂教版(2017)五年級(jí)下冊科學(xué)全冊教學(xué)課件
評(píng)論
0/150
提交評(píng)論