基于熱電偶的測溫系統(tǒng)設(shè)計-畢業(yè)設(shè)計完整版_第1頁
基于熱電偶的測溫系統(tǒng)設(shè)計-畢業(yè)設(shè)計完整版_第2頁
基于熱電偶的測溫系統(tǒng)設(shè)計-畢業(yè)設(shè)計完整版_第3頁
基于熱電偶的測溫系統(tǒng)設(shè)計-畢業(yè)設(shè)計完整版_第4頁
基于熱電偶的測溫系統(tǒng)設(shè)計-畢業(yè)設(shè)計完整版_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

PAGE32XXXX畢業(yè)設(shè)計設(shè)計題目:基于熱電偶的測溫系統(tǒng)設(shè)計機(jī)電工程系測控技術(shù)與儀器1班系別:_________________________測控技術(shù)與儀器1班XXX班級:_________________________XXXXx姓名:_________________________Xx指導(dǎo)教師:_________________________2014年6月11日XXXXXX畢業(yè)設(shè)計PAGE1PAGE32基于熱電偶的測溫系統(tǒng)設(shè)計摘要在工業(yè)生產(chǎn)過程控制中,溫度是一個重要的測量參數(shù),而熱電偶是工程上應(yīng)用最廣泛的溫度傳感器之一,他的主要特點(diǎn)就是測溫范圍寬,性能比較穩(wěn)定,同時同時結(jié)構(gòu)簡單,動態(tài)響應(yīng)好,更能夠遠(yuǎn)傳4-20mA電信號,便于自動控制和集中控制,在溫度測量中占有重要地位。但由于熱電偶的熱電勢與溫度成非線性關(guān)系增加了顯示與處理的復(fù)雜性;且隨著工業(yè)發(fā)展、自動化的不斷加強(qiáng),對溫度精度要求越來越高。在現(xiàn)代化的工業(yè)現(xiàn)場,常用熱電偶測試高溫,測試結(jié)果送至主控機(jī)。由于熱電偶的熱電勢與溫度呈非線性關(guān)系,所以必須對熱電偶進(jìn)行線性化處理以保持測試精度。該系統(tǒng)以單片機(jī)為控制核心,通過高精度模/數(shù)轉(zhuǎn)換器對熱電偶電動勢進(jìn)行采樣、放大,并在單片機(jī)內(nèi)采用一定算法實現(xiàn)對熱電偶的線性化處理并通過液晶屏顯示相應(yīng)測量數(shù)據(jù)。關(guān)鍵詞:傳感器熱電偶模/數(shù)轉(zhuǎn)換器液晶屏Thedesignoftemperaturemeasurementsystembasedonthermocouple

AbstractIntheindustrialproductionprocesscontrol,thetemperatureisanimportantsurveyparameter,butthethermo-elementisintheprojectappliesoneofmostwidespreadtemperaturesensors,hismaincharacteristicisthetemperaturemeasurementscopeiswide,theperformancequiteisstable,simultaneouslythestructureissimultaneouslysimple,thetendencyresponds,canpassonthe4-20mAelectricalsignalfar,isadvantageousfortheautomaticcontrolandthecommoncontrol,holdstheimportantstatusinthetemperaturesurvey.Butbecausethethermo-elementthermoelectricforceandthetemperaturebecamethenon-linearrelationstoincreasethedemonstrationandtheprocessingcomplexity;Alsoalongwiththeindustrialdevelopment,theautomatedunceasingenhancement,ismoreandmorehightothetemperatureprecisionrequest.Thermocoupleisusedfrequentlyinhigh-temperaturetestinthemodernizedindustryscene,thenthetestresultsaredeliveredtomastercontrolmachine.Asthenon-linearrelationshipbetweenthermoelectricpotentialandtemperature,itmustbecarriedoutonthethermocouplelinearprocessinginordertomaintainaccuracyoftest.ItemploysSCMasacoreofcontrolling.Thisarticleisforthelinearizationofthermocouple.Thegeneralideaistostudyhigh-precisionA/Dconverter,whichsamplesandenlargesthethermoelectricpotentialfromthethermocouple,themeasurementdataisdisplayedbyLCDscreen

Keywords:sensorthermocoupleA/DconverterLCDscreen

1引言1.1設(shè)計背景和思路隨著電子信息技術(shù)、新材料及自動化技術(shù)的發(fā)展,傳感器技術(shù)也得到了日新月異的發(fā)展,單片機(jī)和自動控制系統(tǒng)在統(tǒng)諸多領(lǐng)域得到了極為廣泛的應(yīng)用。我們不再局限于從環(huán)境中采集來模擬信號,而是考慮如何得到可處理的數(shù)字信號,所以我們把溫敏器件、A/D轉(zhuǎn)換器、存儲器集成在一起構(gòu)成數(shù)字傳感器。在控制領(lǐng)域,具有更好的穩(wěn)定性,更快和更準(zhǔn)確的運(yùn)算精度的C52系列單片機(jī)控制無疑是人們追求的目標(biāo)之一,它所給人帶來的方便也是不可否定的,而數(shù)字傳感器與單片機(jī)更能夠有機(jī)聯(lián)系起來,傳感器采集所需信息并且將其數(shù)字化,這樣單片機(jī)就能夠?qū)ζ溥M(jìn)行直接處理,從而實現(xiàn)兩者的交互控制;其次由于單片機(jī)較強(qiáng)的核心控制能力,我們可以搭接輔助電路,進(jìn)而得到實用的開發(fā)系統(tǒng)。測溫系統(tǒng)可以采用這種模式,目前人們對其測量的準(zhǔn)確性以及便捷性要求越來越高,如果我們從微控制器技術(shù)著手,那將很好解決這個問題。隨著單片機(jī)技術(shù)的飛速發(fā)展,通過單片機(jī)對被控對象進(jìn)行控制日益成為今后自動控制領(lǐng)域的一個重要發(fā)展方向,電流、電壓、溫度、壓力、流量、流速和開關(guān)量都是常用的主要被控參數(shù)。例如:在冶金工業(yè)、化工生產(chǎn)、電力工程、造紙行業(yè)、機(jī)械制造和食品加工等諸多領(lǐng)域中,人們都需要對各類加熱爐、熱處理爐、反應(yīng)爐和鍋爐中的溫度進(jìn)行檢測和控制。采用MCS-52單片機(jī)來對溫度進(jìn)行控制,不僅具有控制方便、組態(tài)簡單和靈活性大等優(yōu)點(diǎn),而且可以大幅度提高被控溫度的技術(shù)指標(biāo),從而能夠大大提高產(chǎn)品的質(zhì)量和數(shù)量。因此,單片機(jī)對溫度的控制問題是一個工業(yè)生產(chǎn)中經(jīng)常會遇到的問題。

在現(xiàn)代社會中,溫度控制不僅應(yīng)用在工廠生產(chǎn)方面,其作用也體現(xiàn)到了各個方面,隨著人們生活質(zhì)量的提高,酒店廠房及家庭生活中都會見到溫度控制的影子,溫度控制將更好的服務(wù)于社會??照{(diào)等家用電器隨著生產(chǎn)技術(shù)的發(fā)展和生活水平的提高越來越普及,一個簡單,穩(wěn)定的溫度控制系統(tǒng)能更好的適應(yīng)市場。1.2論文的研究任務(wù)與內(nèi)容工業(yè)生產(chǎn)當(dāng)中,工作環(huán)境對各種儀表或設(shè)備能夠發(fā)揮最佳性能、能否正常運(yùn)行極為重要。而環(huán)境因素中一個很重要的物理量就是溫度,熱電偶是工程上應(yīng)用最廣泛的溫度傳感器之一,它具有構(gòu)造簡單、使用方便、準(zhǔn)確度、熱慣性小、穩(wěn)定性及復(fù)現(xiàn)性好、溫度測量范圍寬等優(yōu)點(diǎn),適用于信號的遠(yuǎn)傳、自動紀(jì)錄和集中控制,在溫度測量中占有重要地位。本論文將傳統(tǒng)的熱電偶測溫技術(shù)結(jié)合自動控制技術(shù)、單片機(jī)控制技術(shù)和液晶顯示功能構(gòu)成一個完整溫度測量系統(tǒng),實現(xiàn)數(shù)字智能測溫。該測溫系統(tǒng)與傳統(tǒng)的測溫系統(tǒng)相比,具有讀數(shù)方便,測溫范圍廣,測溫準(zhǔn)確,其輸出溫度采用數(shù)字顯示,并且消除了熱電偶帶來的非線性問題。此測溫系統(tǒng)既適合民用,在一定程度上也能滿足工業(yè)或科研的需求。本設(shè)計的主要內(nèi)容是以89c52單片機(jī)為控制器,以k型熱電偶為傳感器,使用K型熱電偶專用的模數(shù)轉(zhuǎn)換器MAX6675和工業(yè)字符型液晶HJ1602A構(gòu)建數(shù)字測溫系統(tǒng)。熱電偶采集溫度信號經(jīng)過信號調(diào)理、模數(shù)轉(zhuǎn)換傳送到單片機(jī),再通過HJ1602A顯示出所測溫度來完成設(shè)計任務(wù)。液晶顯示器MAX6675A/D轉(zhuǎn)化器STC89C52單片基單片機(jī)Sensors傳感器圖1系統(tǒng)框圖1.3設(shè)計的預(yù)期結(jié)果和意義溫度是一種最基本的環(huán)境參數(shù),人民的生活與環(huán)境的溫度息息相關(guān),在工業(yè)生產(chǎn)過程中需要實時測量溫度,在農(nóng)業(yè)生產(chǎn)中也離不開溫度的測量,因此研究溫度的測量方法和裝置具有重要的意義。溫度是一個十分重要的物理量大于它的測量與控制又十分重要的意義。隨著現(xiàn)代工弄也技術(shù)的發(fā)展及人們對生活環(huán)境要求的提高,人們也迫切需要檢測與控制溫度:如大氣及空調(diào)房中的溫度高低直接影響著人們的身體健康;在大規(guī)模集成電路生產(chǎn)線上環(huán)境溫度不適當(dāng)會嚴(yán)重影響產(chǎn)品的質(zhì)量。測溫技術(shù)在生產(chǎn)過程中,在產(chǎn)品質(zhì)量控制和檢測設(shè)備在線故障診斷和安全保護(hù)以及節(jié)約能源等方面發(fā)揮了重要作用。而隨著人們生活水平的不斷提高,科技不斷發(fā)達(dá),單片機(jī)控制無疑是人們追求的目標(biāo)之一,它所給人帶來的方便也是不可否定的。單片機(jī)在測控領(lǐng)域中具有十分廣泛的應(yīng)用,它既可以測量電信號,又可以測量溫度濕度等非電信號。由單片機(jī)構(gòu)成的溫度檢測、溫度控制系統(tǒng)可以廣泛應(yīng)用于很多領(lǐng)域。單片機(jī)在工業(yè)控制、尖端武器、通信設(shè)備、信息處理、家用電器等各測控領(lǐng)域的應(yīng)用中獨(dú)占鰲頭。今天我們的生活環(huán)境和工作環(huán)境有越來越多稱之為單片機(jī)的小電腦在為我們服務(wù)。時下,家用電器和辦公設(shè)備的智能化、遙控化、模糊控制話已成為世界潮流,而這些高性能無一不是靠單片機(jī)來實現(xiàn)的。而另一個目標(biāo)便是傳感器。由于傳感器能將各種物理量、化學(xué)量和生物量等信號轉(zhuǎn)變?yōu)殡娦盘?,使得人們可以利用計算機(jī)實現(xiàn)自動化測量、信息處理和自動控制,但是它們都不同程度地存在溫漂和非線性等影響因素。本設(shè)計是將兩者結(jié)合,利用單片基結(jié)合傳感器技術(shù)而開發(fā)設(shè)計出一個溫度監(jiān)控系統(tǒng)。該設(shè)計的預(yù)期結(jié)果就是設(shè)計出一套基于單片機(jī)控制的熱電偶測溫數(shù)字顯示系統(tǒng)并能proteus實現(xiàn)仿真。根據(jù)要求編寫出應(yīng)用程序,繪制出protel電路圖,動手完成實物設(shè)計。2總設(shè)計方案本系統(tǒng)以AT89S52作為處理器,使用MAX6675作為溫度傳感器,配以溫度顯示。整個系統(tǒng)力求結(jié)構(gòu)簡單,功能完善。使用溫度傳感器MAX6675+AT89S52,MAX6675將熱電偶測溫應(yīng)用時復(fù)雜的線性化、冷端補(bǔ)償及數(shù)字化輸出等問題集中在一個芯片上解決,簡化了將熱電偶測溫方案應(yīng)用于嵌入式系統(tǒng)領(lǐng)域時復(fù)雜的軟硬件設(shè)計,因而該器件是將熱電偶測溫方案應(yīng)用于嵌入式系統(tǒng)領(lǐng)域的理想選擇。該方案的特色是AT89S52是一種低功耗、高性能CMOS8位微控制器,具有8K在系統(tǒng)可編程Flash存儲器。AT89S52使用Atmel公司高密度非易失性存儲器技術(shù)制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,AT89S52擁有靈巧的8位CPU和在系統(tǒng)可編程Flash,使AT89S52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。MAX6675是一種高精度的集成芯片,體積小且不需要任何的其他外圍電路,大大的減少了電路中的元件和I/O連線,從而簡化了系統(tǒng)結(jié)構(gòu)。初始化是調(diào)用顯示子程序是調(diào)用顯示子程序750ms到否?750ms到否?是是首次開機(jī)否?首次開機(jī)否?是是是讀出溫度值,計算溫度值并刷新是讀出溫度值,計算溫度值并刷新溫度轉(zhuǎn)換命令圖2程序流程圖3硬件系統(tǒng)設(shè)計3.1硬件組成熱電偶測溫系統(tǒng)主要由四部分組成:數(shù)據(jù)采集模塊、MAX6675模數(shù)轉(zhuǎn)換模塊、單片機(jī)控制及其外圍、液晶顯示模塊。其中微控制器采用AT89C52,液晶顯示部分可采用并行或串行傳輸數(shù)據(jù)。溫度傳感器溫度傳感器A/D轉(zhuǎn)換電路單片基控制系統(tǒng)圖3傳感器信號流圖如上圖所示,由三個模塊組成,分別為傳感器、A/D轉(zhuǎn)換、微處理器部分,由于MCU處理的是數(shù)字信號,所以需要A/D轉(zhuǎn)換電路對傳感器的數(shù)據(jù)進(jìn)行數(shù)字化。事實上,MAX6675是數(shù)字傳感器,實則為集成了A/D轉(zhuǎn)換部分,當(dāng)然也擁有其余很多新功能。3.2電路原理圖圖4測溫系統(tǒng)仿真電路原理圖圖4為溫度測試系統(tǒng)的仿真原理圖,系統(tǒng)整體硬件電路包括,傳感器數(shù)據(jù)采集電路,模數(shù)轉(zhuǎn)換電路,單片機(jī)主板電路,溫度顯示電路等。液晶顯示模塊集成了譯碼器,其8個段選分別與單片機(jī)的P1的8個I/O口相連,其余3個位選分別與P2.0—P2.2相連,MAX6675的數(shù)據(jù)口與單片機(jī)的P2.4-2.6相連,另外兩個口連在一塊接地,這也是寄生供電的方式,即是由數(shù)據(jù)線給MAX6675供電,其余幾個部分分別為單片機(jī)的時鐘電路、復(fù)位電路、電源電路,幾部分共同組成單片機(jī)的最小系統(tǒng)。3.3傳感器數(shù)據(jù)采集電路3.31熱電偶原理熱電偶是一種感溫元件,它把溫度信號轉(zhuǎn)換成熱電動勢信號,通過電氣儀表轉(zhuǎn)換成被測介質(zhì)的溫度。熱電偶測溫的基本原理是兩種不同成份的均質(zhì)導(dǎo)體組成閉合回路,當(dāng)兩端存在溫度梯度時,回路中就會有電流通過,此時兩端之間就存在塞貝克電動勢熱電動勢,這就是所謂的塞貝克效應(yīng)。兩種不同成份的均質(zhì)導(dǎo)體位熱電極,溫度叫法噢的一端為工作端,溫度較低的一端為自由端,自由端通常處于某個恒定的溫度下。根據(jù)熱電動勢與溫度的函數(shù)關(guān)系,制成熱電偶分度表;分度表是自由端溫度在0℃時的溫度條件下得到的,不同的熱電偶就不同的分度表。在熱電偶回路中接入第三種金屬材料是,只要該材料的兩個接點(diǎn)溫度相同,熱電偶所產(chǎn)生的熱電勢將保持不變,即不受第三種金屬接入回路中的影響。因此,在熱電偶測溫時,可接入測量儀表,測得熱電動勢后,即可知道被測介質(zhì)的溫度。3.3.2熱電偶優(yōu)點(diǎn)熱電偶是工業(yè)常用溫度測溫元件,具有如下特點(diǎn):1)測量精度高:熱電偶與被測對象直接接觸,不受中間介質(zhì)的影響。2)熱響應(yīng)時間快:熱電偶對溫度變化反應(yīng)靈敏。3)測量范圍大:熱電偶從-40~1600℃均可持續(xù)測溫。4)性能可靠,機(jī)械強(qiáng)度好。5)使用壽命長,安裝方便。3.3.3熱電偶種類我國標(biāo)準(zhǔn)化熱電偶的常用種類:鉑銠10-鉑(分度號為S)、鉑銠13-鉑(R)、鉑銠30-鉑銠6(B)、鎳鉻-鎳硅(K)、鎳鉻-康銅(E)、鐵-康銅(J)、銅-康銅(T)和鎳鉻硅-鎳硅(N)。根據(jù)本設(shè)計技術(shù)要求測溫范圍0~300℃,精度±0.5℃。選擇K型熱電偶滿足要求。3.4模數(shù)轉(zhuǎn)換電路MAX6675是美國MAXIM公司生產(chǎn)的帶有冷端補(bǔ)償、線性校正、熱電偶斷線檢測的串行K型熱電偶模數(shù)轉(zhuǎn)換器,它的溫度分辨能力為0.25℃,冷端補(bǔ)償范圍為-20~+80℃,工作電壓為3.0~5.5V。文中介紹了MAX6675的功能特點(diǎn)、引腳排列及工作時序,給出了MAX6675與89C51的接口電路與編程設(shè)計方法。在工業(yè)溫度測控場合,K型熱電偶因其線性度好,價格便宜,測量范圍寬而得到廣泛的使用;但它往往需要冷端補(bǔ)償,且電路較復(fù)雜,調(diào)試麻煩。而MAXIM公司生產(chǎn)的K型熱電偶串行模數(shù)轉(zhuǎn)換器MAX6675不但可將模擬信號轉(zhuǎn)換成12bit對應(yīng)的數(shù)字量,而且自帶冷端補(bǔ)償。其溫度分辨能力達(dá)0.25℃,可以滿足絕大多數(shù)工業(yè)應(yīng)用場合。MAX6675采用SO-8封裝,體積小,可靠性好。3.4.1引腳排列及內(nèi)部結(jié)構(gòu)MAX6675芯片的引腳排列如圖5所示,各引腳的功能如下:T-:熱電偶負(fù)極(使用時接地);T+:熱電偶正極;SCK:串行時鐘輸入;CS:片選信號;SO:串行數(shù)據(jù)輸出;VCC:電源端;GND:接地端;N.C.:懸空,不用。圖5MAX6675的引腳圖3.4.2MXA6675工作原理及功能特點(diǎn)根據(jù)熱電偶測溫原理,熱電偶的輸出熱電勢不僅與測量端的溫度有關(guān),而且與冷端的溫度有關(guān),在以往的應(yīng)用中,有很多種冷端補(bǔ)償方法,如冷端冰點(diǎn)法或電橋補(bǔ)償法等,但調(diào)試都比較麻煩。另外,由于熱電偶的非線性,以往是采用微處理器表格法或線性電路等方法來減小熱電偶本身非線性帶來的測量誤差,但這些都增加了程序編制及調(diào)試電路的難度。而MAX6675對其內(nèi)部元器件的參數(shù)進(jìn)行了激光修正,從而對熱電偶的非線性進(jìn)行了內(nèi)部修正。同時,MAX6675內(nèi)部集成的冷端補(bǔ)償電路、非線性校正電路、斷線檢測電路都給K型熱電偶的使用帶來了極大的方便。其工作原理如圖6所示。MAX6675的特點(diǎn)如下:1.內(nèi)部集成有冷端補(bǔ)償電路;2.內(nèi)含熱電偶斷線檢測電路。3.帶有簡單的3位串行接口;4.可將溫度信號轉(zhuǎn)換成12位數(shù)字量,溫度分辨率達(dá)0.25℃;MAX6675內(nèi)部集成有冷端補(bǔ)償電路;帶有簡單的3位串行SPI接口;可將溫度信號轉(zhuǎn)換成12位數(shù)字量,溫度分辨率達(dá)0.25℃;內(nèi)含熱電偶斷線檢測電路。冷端補(bǔ)償?shù)臏囟确秶?20℃~80℃,可以測量0℃~1023.75℃的溫度,基本符合工業(yè)上溫度測量的需要,其串行接口時序如圖7所示。由接口時序可以看出,當(dāng)MAX6675的引腳從高電平變?yōu)榈碗娖綍r,MAX6675將停止任何信號的轉(zhuǎn)換并在時鐘SCK的作用下通過SO引腳向外輸出已轉(zhuǎn)化的數(shù)據(jù)(此數(shù)據(jù)是經(jīng)過放大了的A/D轉(zhuǎn)換后的數(shù)字量與冷端補(bǔ)償之和);相反,當(dāng)從低電平變回高電平時,MAX6675將進(jìn)行新的轉(zhuǎn)換。在引腳從高電平變?yōu)榈碗娖綍r,第一個字節(jié)D15出現(xiàn)在引腳SO上,一個完整的數(shù)據(jù)讀過程需要16個時鐘周期,數(shù)據(jù)的讀取通常在SCK的下降沿完成。值得指出的是此芯片的AD轉(zhuǎn)換速度在0.17~0.22s之間,比之一般的AD轉(zhuǎn)換芯片微秒級的轉(zhuǎn)換速度要長得多。圖6MAX6675工作原理圖圖7串行接口時序圖3.4.3MAX6675的工作時序當(dāng)MAX6675的CS引腳從高電平變?yōu)榈碗娖綍r,MAX6675將停止任何信號的轉(zhuǎn)換并在時鐘SCK的作用下向外輸出已轉(zhuǎn)化的數(shù)據(jù)。相反,當(dāng)CS從低電平變回高電平時,MAX6675將進(jìn)行新的轉(zhuǎn)換。在CS引腳從高電平變?yōu)榈碗娖綍r,第一個字節(jié)D15將出現(xiàn)在引腳SO。一個完整的數(shù)據(jù)讀過程需要16個時鐘周期,數(shù)據(jù)的讀取通常在SCK的下降沿進(jìn)行。MAX6675的輸出數(shù)據(jù)為16位,其中D15始終無用,D14~D3對應(yīng)于熱電偶模擬輸入電壓的數(shù)字轉(zhuǎn)換量,D2用于檢測熱電偶是否斷線(D2為1表明熱電偶斷開),D1為MAX6675的標(biāo)識符,D0為三態(tài)。需要指出的是:在以往的熱電偶電路設(shè)計中,往往需要專門的斷線檢測電路,而MAX6675已將斷線檢測電路集成于片內(nèi),從而簡化了電路設(shè)計。D14~D3為12位數(shù)據(jù),其最小值為0,對應(yīng)的溫度值為0℃;最大值為4095,對應(yīng)的溫度值為1023.75℃;由于MAX6675內(nèi)部經(jīng)過了激光修正,因此,其轉(zhuǎn)換結(jié)果與對應(yīng)溫度值具有較好的線性關(guān)系。溫度值與數(shù)字量的對應(yīng)關(guān)系為:溫度值=1023.75×轉(zhuǎn)換后的數(shù)字量/4095。3.4.4MAX6675與89C52的接口實現(xiàn)MAX6675采用標(biāo)準(zhǔn)的SPI串行外設(shè)總線與單片機(jī)接口,因此它只能作為從設(shè)備即串行接口芯片。SPI(SerialPeripheralInterface)總線系統(tǒng)是一種同步串行外設(shè)接口,是Motorola公司推出的總線標(biāo)準(zhǔn),它可以使單片機(jī)與各種外圍設(shè)備以串行方式進(jìn)行通信以交換數(shù)據(jù)。以單路熱電偶為例來說明MAX6675與C51系列單片機(jī)的接口連接。由于C51系列單片機(jī)不具有SPI串行總線接口,可以使用軟件來模擬SPI操作,包括串行時鐘、數(shù)據(jù)輸入和數(shù)據(jù)輸出。如圖4所示,串行外部時鐘由P3.1提供,它是單片機(jī)的串行輸出口TXD,對應(yīng)于SCK的串行時鐘輸入;片選信號由P3.2提供;轉(zhuǎn)換數(shù)據(jù)由P3.0讀取,它是單片機(jī)的串行輸入口RXD,對應(yīng)于SO的串行輸出。MAX6675的轉(zhuǎn)換結(jié)果在SCK的控制下連續(xù)輸出。值得指出的是我們將串行時鐘輸出口P3.1的初始狀態(tài)設(shè)置為1,而在允許接口后再置P3.1為0。這樣,單片機(jī)在輸出1位SCK時鐘的同時,將使接口芯片串行左移,從而輸出一位數(shù)據(jù)至單片機(jī)的P3.0口(模擬MISO線),以后再置P3.1為1。至此,模擬一位數(shù)據(jù)輸入過程完成。圖8MAX6675與89C51系列連接示意圖3.4.4MAX6675芯片注意事項為了正確使用MAX6675芯片,設(shè)計時還必須注意以下幾點(diǎn):(1)利用輸出數(shù)據(jù)中的D2進(jìn)行斷偶檢測時,熱電偶的輸入負(fù)極T-必須接地,且應(yīng)盡可能地靠近MAX6675的引腳地(即PIN1);(2)由于冷端溫度是由MAX6675本身檢測的,因此,為了提高測量的精確度,電路板的地線盡可能地大;(3)由于熱電偶信號為微弱信號,因此要盡可能地采取措施防止噪聲干擾??稍贛AX6675電源與地線之間接一個0.1μF的陶瓷電容。3.5單片機(jī)主板電路AT89C52是51系列單片機(jī)的一個型號,它是ATMEL公司生產(chǎn)的。AT89C52是一個低電壓,高性能CMOS8位單片機(jī),片內(nèi)含8kbytes的可反復(fù)擦寫的Flash只讀程序存儲器和256bytes的隨機(jī)存取數(shù)據(jù)存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲單元,功能強(qiáng)大的AT89C52單片機(jī)可為您提供許多較復(fù)雜系統(tǒng)控制應(yīng)用場合。3.5.1AT9C52引腳排列及內(nèi)部結(jié)構(gòu)如圖9所示,AT89C52有40個引腳,32個外部雙向輸入/輸出(I/O)端口,同時內(nèi)含2個外中斷口,3個16位可編程定時計數(shù)器,2個全雙工串行通信口,2個讀寫口線,AT89C52可以按照常規(guī)方法進(jìn)行編程,但不可以在線編程(S系列的才支持在線編程)。其將通用的微處理器和Flash存儲器結(jié)合在一起,特別是可反復(fù)擦寫的Flash存儲器可有效地降低開發(fā)成本。主要性能參數(shù)是:兼容MCS51指令系統(tǒng)·8k可反復(fù)擦寫(>1000次)FlashROM·32個雙向I/O口·256x8bit內(nèi)部RAM·3個16位可編程定時/計數(shù)器中斷·時鐘頻率0-24MHz·2個串行中斷·可編程UART串行通道·2個外部中斷源·共6個中斷源·2個讀寫中斷口線·3級加密位·低功耗空閑和掉電模式·軟件設(shè)置睡眠和喚醒功能圖9AT9C52引腳介紹1)P0口P0口是一組8位漏極開路型雙向I/O口,也即地址/數(shù)據(jù)總線復(fù)用口。作為輸出口用時,每位能吸收電流的方式驅(qū)動8個TTL邏輯門電路,對端口P0寫“1”時,可作為高阻抗輸入端用。在訪問外部數(shù)據(jù)存儲器或程序存儲器時,這組口線分時轉(zhuǎn)換地址(低8位)和數(shù)據(jù)總線復(fù)用,在訪問期間激活內(nèi)部上拉電阻。在Flash編程時,P0口接收指令字節(jié),而在程序校驗時,輸出指令字節(jié),校驗時,要求外接上拉電阻。2)P1口P1是一個帶內(nèi)部上拉電阻的8位雙向I/O口,P1的輸出緩沖級可驅(qū)動(吸收或輸出電流)4個TTL邏輯門電路。對端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口。作輸入口使用時,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(IIL)。與AT89C51不同之處是,P1.0和P1.1還可分別作為定時/計數(shù)器2的外部計數(shù)輸入(P1.0/T2)和輸入(P1.1/T2EX),參見表1。Flash編程和程序校驗期間,P1接收低8位地址。表1P1.0和P1.1的第二功能引腳號功能特性P1.0T2,時鐘輸出P1.1T2EX(定時/計數(shù)器2)3)P2口P2是一個帶有內(nèi)部上拉電阻的8位雙向I/O口,P2的輸出緩沖級可驅(qū)動(吸收或輸出電流)4個TTL邏輯門電路。對端口P2寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口,作輸入口使用時,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(IIL)。在訪問外部程序存儲器或16位地址的外部數(shù)據(jù)存儲器(例如執(zhí)行MOVX@DPTR指令)時,P2口送出高8位地址數(shù)據(jù)。在訪問8位地址的外部數(shù)據(jù)存儲器(如執(zhí)行MOVX@RI指令)時,P2口輸出P2鎖存器的內(nèi)容。Flash編程或校驗時,P2亦接收高位地址和一些控制信號。4)P3口P3口是一組帶有內(nèi)部上拉電阻的8位雙向I/O口。P3口輸出緩沖級可驅(qū)動(吸收或輸出電流)4個TTL邏輯門電路。對P3口寫入“1”時,它們被內(nèi)部上拉電阻拉高并可作為輸入端口。此時,被外部拉低的P3口將用上拉電阻輸出電流(IIL)。P3口除了作為一般的I/O口線外,更重要的用途是它的第二功能,如下表2所示:表2P3口第二功能表端口引腳第二功能特性P3.0RXD(串行輸入口)P3.1TXD(串行輸出口)P3.2INT0(外中斷0)P3.3INT1(外中斷1)P3.4TO(定時/計數(shù)器0外部輸入)P3.5T1(定時/計數(shù)器1外部輸入)P3.6WR(外部數(shù)據(jù)存儲器寫選通)P3.7RD(外部數(shù)據(jù)存儲器讀選通)P3口還接收一些用于Flash閃速存儲器編程和程序校驗的控制信號。5)RST復(fù)位輸入。當(dāng)振蕩器工作時,RST引腳出現(xiàn)兩個機(jī)器周期以上高電平將使單片機(jī)復(fù)位。6)ALE/PROG當(dāng)訪問外部程序存儲器或數(shù)據(jù)存儲器時,ALE(地址鎖存允許)輸出脈沖用于存地址的低8位字節(jié)。一般情況下,ALE仍以時鐘振蕩頻率的1/6輸出固定的脈沖信號,因此它可對外輸出時鐘或用于定時目的。要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲器時將跳過一個ALE脈沖。對Flash存儲器編程期間,該引腳還用于輸入編程脈沖(PROG)。如有必要,可通過對特殊功能寄存器(SFR)區(qū)中的8EH單元的D0位置位,可禁止ALE操作。該位置位后,只有一條MOVX和MOVC指令才能將ALE激活。此外,該引腳會被微弱拉高,單片機(jī)執(zhí)行外部程序時,應(yīng)設(shè)置ALE禁止位無效。7)PSEN程序儲存允許(PSEN)輸出是外部程序存儲器的讀選通信號,當(dāng)AT89C52由外部程序存儲器取指令(或數(shù)據(jù))時,每個機(jī)器周期兩次PSEN有效,即輸出兩個脈沖。在此期間,當(dāng)訪問外部數(shù)據(jù)存儲器,將跳過兩次PSEN信號。8)EA/VPP外部訪問允許。欲使CPU僅訪問外部程序存儲器(地址為0000H—FFFFH),EA端必須保持低電平(接地)。需注意的是:如果加密位LB1被編程,復(fù)位時內(nèi)部會鎖存EA端狀態(tài)。如EA端為高電平(接Vcc端),CPU則執(zhí)行內(nèi)部程序存儲器中的指令。Flash存儲器編程時,該引腳加上+12V的編程允許電源Vpp,當(dāng)然這必須是該器件是使用12V編程電壓Vpp。9)XTAL1振蕩器反相放大器的及內(nèi)部時鐘發(fā)生器的輸入端。10)XTAL2振蕩器反相放大器的輸出端。3.5.3單片機(jī)最小系統(tǒng)介紹單片機(jī)最小系統(tǒng)主要由電源、復(fù)位、振蕩電路以及擴(kuò)展部分等部分組成。最小系統(tǒng)原理圖如圖10所示。圖10最小系統(tǒng)電路圖◆電源供電模式圖11電源模塊電路圖對于一個完整的電子設(shè)計來講,首要問題就是為整個系統(tǒng)提供電源供電模塊,電源模塊的穩(wěn)定可靠是系統(tǒng)平穩(wěn)運(yùn)行的前提和基礎(chǔ)。51單片機(jī)雖然使用時間最早、應(yīng)用范圍最廣,但是在實際使用過程中,一個和典型的問題就是相比其他系列的單片機(jī),51單片機(jī)更容易受到干擾而出現(xiàn)程序跑飛的現(xiàn)象,克服這種現(xiàn)象出現(xiàn)的一個重要手段就是為單片機(jī)系統(tǒng)配置一個穩(wěn)定可靠的電源供電模塊。此最小系統(tǒng)中的電源供電模塊的電源可以通過計算機(jī)的USB口供給,也可使用外部穩(wěn)定的5V電源供電模塊供給。電源電路中接入了電源指示LED,圖中R11為LED的限流電阻。S1為電源開關(guān)?!魪?fù)位電路圖12復(fù)位電路圖單片機(jī)的置位和復(fù)位,都是為了把電路初始化到一個確定的狀態(tài),一般來說,單片機(jī)復(fù)位電路作用是把一個例如狀態(tài)機(jī)初始化到空狀態(tài),而在單片機(jī)內(nèi)部,復(fù)位的時候單片機(jī)是把一些寄存器以及存儲設(shè)備裝入廠商預(yù)設(shè)的一個值。單片機(jī)復(fù)位電路原理是在單片機(jī)的復(fù)位引腳RST上外接電阻和電容,實現(xiàn)上電復(fù)位。當(dāng)復(fù)位電平持續(xù)兩個機(jī)器周期以上時復(fù)位有效。復(fù)位電平的持續(xù)時間必須大于單片機(jī)的兩個機(jī)器周期。具體數(shù)值可以由RC電路計算出時間常數(shù)。復(fù)位電路由按鍵復(fù)位和上電復(fù)位兩部分組成。(1)上電復(fù)位:STC89系列單片及為高電平復(fù)位,通常在復(fù)位引腳RST上連接一個電容到VCC,再連接一個電阻到GND,由此形成一個RC充放電回路保證單片機(jī)在上電時RST腳上有足夠時間的高電平進(jìn)行復(fù)位,隨后回歸到低電平進(jìn)入正常工作狀態(tài),這個電阻和電容的典型值為10K和10uF。(2)按鍵復(fù)位:按鍵復(fù)位就是在復(fù)位電容上并聯(lián)一個開關(guān),當(dāng)開關(guān)按下時電容被放電、RST也被拉到高電平,而且由于電容的充電,會保持一段時間的高電平來使單片機(jī)復(fù)位?!粽袷庪娐穲D13振蕩電路圖單片機(jī)系統(tǒng)里都有晶振,在單片機(jī)系統(tǒng)里晶振作用非常大,全程叫晶體振蕩器,他結(jié)合單片機(jī)內(nèi)部電路產(chǎn)生單片機(jī)所需的時鐘頻率,單片機(jī)晶振提供的時鐘頻率越高,那么單片機(jī)運(yùn)行速度就越快,單片接的一切指令的執(zhí)行都是建立在單片機(jī)晶振提供的時鐘頻率。在通常工作條件下,普通的晶振頻率絕對精度可達(dá)百萬分之五十。高級的精度更高。有些晶振還可以由外加電壓在一定范圍內(nèi)調(diào)整頻率,稱為壓控振蕩器(VCO)。晶振用一種能把電能和機(jī)械能相互轉(zhuǎn)化的晶體在共振的狀態(tài)下工作,以提供穩(wěn)定,精確的單頻振蕩。單片機(jī)晶振的作用是為系統(tǒng)提供基本的時鐘信號。通常一個系統(tǒng)共用一個晶振,便于各部分保持同步。有些通訊系統(tǒng)的基頻和射頻使用不同的晶振,而通過電子調(diào)整頻率的方法保持同步。晶振通常與鎖相環(huán)電路配合使用,以提供系統(tǒng)所需的時鐘頻率。如果不同子系統(tǒng)需要不同頻率的時鐘信號,可以用與同一個晶振相連的不同鎖相環(huán)來提供。STC89C52使用11.0592MHz的晶體振蕩器作為振蕩源,由于單片機(jī)內(nèi)部帶有振蕩電路,所以外部只要連接一個晶振和兩個電容即可,電容容量一般在15pF至50pF之間。3.5.4AT89C52功能特點(diǎn)作為比較經(jīng)典的一款單片機(jī),AT89C52具有低電壓供電和體積小等特點(diǎn),功耗不是很高很適合便攜手持式產(chǎn)品的設(shè)計使用系統(tǒng)可用二節(jié)電池供電;此外,這款單片機(jī)指令系統(tǒng)比較豐富,已經(jīng)能滿足此系統(tǒng)的開發(fā)使用。AT89C52可降至0Hz靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許RAM、定時器/計數(shù)器、串口中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個中斷或硬件復(fù)位為止。AT89C52具有以下標(biāo)準(zhǔn)功能:●與MCS51單片機(jī)產(chǎn)品兼容;●8K支持在線編程(ISP)的FLASH結(jié)構(gòu)程序存儲器,1000次擦寫壽命;●工作電壓為4.0V~5.5V;●全靜態(tài)工作:0~24MHz;●3級程序安全加密保護(hù);●256*8位內(nèi)部RAM;●32個可編程I/O端口;●3個16位定時器/計數(shù)器;●8個中斷源;●一個全雙工異步串口;●支持低功耗及掉電模式;3.6液晶顯示電路圖14液晶顯示電路3.6.1HJ1602A概述HJ1602A是一種工業(yè)字符型液晶,能夠同時顯示16×02即32個字符。(16列2行)3.6.2主要技術(shù)參數(shù)顯示容量芯片工作電壓工作電流模塊最佳工作電壓字符尺寸16*2個字符4.5-5.5V2.0mA(5.0V)5.0V2.95×4.35(WXH)mm3.6.3引腳借口說明表編號符號引腳說明編號符號引腳說明1VSS電源地9D2數(shù)據(jù)2VDD電源正極10D3數(shù)據(jù)3VL液晶顯示偏壓11D4數(shù)據(jù)4RS數(shù)據(jù)/命令選擇12D5數(shù)據(jù)5R/W讀/寫選擇13D6數(shù)據(jù)6E使能信號14D7數(shù)據(jù)7D0數(shù)據(jù)15BLA背光源正極8D1數(shù)據(jù)16BLK背光源負(fù)極第1腳:VSS為地電源;第2腳:VDD接5V正電源;第3腳:V0為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地電源時對比度最高,對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一個10K的電位器調(diào)整對比度;第4腳:RS為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器、低電平時選擇指令寄存器;第5腳:R/W為讀寫信號線,高電平時進(jìn)行讀操作,低電平時進(jìn)行寫操作。當(dāng)RS和RW共同為低電平時可以寫入指令或者顯示地址,當(dāng)RS為低電平RW為高電平時可以讀忙信號,當(dāng)RS為高電平RW為低電平時可以寫入數(shù)據(jù);第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時,液晶模塊執(zhí)行命令;第7~14腳:D0~D7為8位雙向數(shù)據(jù)線;第15腳:背光電源正極;第16腳:背光電源負(fù)極。3.6.4SMC1602A(16*2)模擬口線接線方式連接線圖:|DB0P1.0|DB4P1.4|RWP2.0||DB1P1.1|DB5P1.5|RSP2.1||DB2P1.2|DB6P1.6|EP2.2||DB3P1.3|DB7P1.7|VSSGND||VDD+5V|VEE接1K電阻到+5V|3.6.51062LCD的指令說明及時序1602液晶模塊的讀寫操作、屏幕和光標(biāo)的操作都是通過指令編程來實現(xiàn)的。(1為高電平、0為低電平)指令1:清顯示,指令碼01H,光標(biāo)復(fù)位到地址00H位置。指令2:光標(biāo)復(fù)位,光標(biāo)返回到地址00H。指令3:光標(biāo)和顯示模式設(shè)置I/D,光標(biāo)移動方向,高電平右移,低電平左移S:屏幕上所有的文字是否左移或者右移。高電平表示有效,低電平則無效。指令4:顯示開關(guān)控制。D:控制整體顯示的開與關(guān),高電平表示開顯示,低電平表示關(guān)顯示C:控制光標(biāo)的開關(guān),高電平表示有光標(biāo),低電平表示無光標(biāo)B:控制光標(biāo)是否閃爍高電平閃爍,低電平不閃爍。指令5:光標(biāo)或顯示位移S/C:高電平時移動顯示的文字,低電平時移動光標(biāo)。指令6:功能設(shè)置命令DL:高電平時為4位總線,低電平時為8位總線N:低電平時為單行顯示,高電平時雙行顯示F:低電平時顯示5×7的點(diǎn)陣字符,高電平時顯示5×10的點(diǎn)陣字符。指令7:字符發(fā)生器RAM地址位置。指令8:DDRAM地址設(shè)置。指令9:讀忙信號和光標(biāo)地址BF:為忙碌標(biāo)志位,高電平表示忙,此時模塊不能接受命令或者數(shù)據(jù),如果為低電平表示不忙。指令10:寫數(shù)據(jù)。指令11:讀數(shù)據(jù)。3.6.6讀寫操作時序表讀寫操作時序如圖所示圖15讀操作時序圖16寫操作時序4軟件設(shè)計軟件是整個系統(tǒng)的靈魂,它是算法和功能實現(xiàn)的關(guān)鍵。軟件設(shè)計包括主程序、顯示子程序和中斷服務(wù)程序。4.1主程序主程序的主要功能是負(fù)責(zé)溫度的實時顯示、讀出并處理MAX6675的測量的當(dāng)前溫度值,溫度測量每750ms進(jìn)行一次。這樣可以在一秒之內(nèi)測量一次被測溫度,其程序流程見圖4.1所示。初始化的過程主要是由主機(jī)發(fā)出一復(fù)位脈沖,然后等待從機(jī)MAX6675響應(yīng)的過程,其中也包括對MAX6675存儲器的設(shè)置。當(dāng)初始化后,若是首次開機(jī),此時系統(tǒng)會進(jìn)入讀溫度,計算并刷新,進(jìn)而由單片機(jī)轉(zhuǎn)換溫度,最后由LED顯示;如果不是首次開機(jī),則直接進(jìn)行溫度轉(zhuǎn)換,顯示已測溫度值,再有LED顯示。這個過程的時間是極短的,顯示子程序的調(diào)用也是實時的。程序中告警的條件定義為溫度高于TH或低于TL。只要MAX6675一上電,完成溫度轉(zhuǎn)換后,會把測得的溫度值與RAM中的用戶自定義的TH、TL字節(jié)對比,若超限,則把該器件內(nèi)的報警標(biāo)志位置位,主機(jī)可進(jìn)行搜索。/******************************主程序*****************************************/voidmain(void){delay_nms(10);LCD_init();//LCD初始化delay_nms(50);CLEARSCREEN; //清屏delay_nms(10);LCD_write_string(0,LINE1,"temperatureTEST");LCD_write_char(8,LINE2,0X2e);//顯示"點(diǎn)"LCD_write_char(10,LINE2,0XDF);//顯示"度" LCD_write_char(11,LINE2,0X43);//顯示"C"while(TRUE){ tempdisp(); delay_nms(100);}}4.2顯示子程序P1.0P1.0P1.1P1.2冷端溫度顯示熱電勢緩沖區(qū)結(jié)果顯示動態(tài)掃描返回圖17顯示程序●溫度值顯示程序***********************************溫度值顯示**********************************/voidtempdisp(){unsignedinttemp;intTempValue;unsignedinttestD2;unsignedintxiaoshu;xiaoshu=TempValue=ReadMAX6675();//讀取MAX6675轉(zhuǎn)換后的溫度數(shù)值; TempValue=TempValue<<1;//去掉第15位TempValue=TempValue>>3;//去掉第0~2位TempValue=TempValue/4; //MAX6675最大數(shù)值為1023。75,而AD精度為12位,即2的12次方為4096,轉(zhuǎn)換對應(yīng)數(shù),故要除4;xiaoshu=xiaoshu<<10; //去掉第6~15位xiaoshu=xiaoshu>>3;//取3,4,5位小數(shù)xiaoshu=xiaoshu/4; //與上述同理;if(TempValue>=260) { TempValue=TempValue+3;disdata[0]=(TempValue/1000)%10+0x30;//千位+0x30是對應(yīng)LCD里的ROM字符位置編碼disdata[1]=(TempValue/100)%10+0x30;//百位+0x30是對應(yīng)LCD里的ROM字符位置編碼disdata[2]=(TempValue/10)%10+0x30;//十位+0x30是對應(yīng)LCD里的ROM字符位置編碼disdata[3]=TempValue%10/1+0x30;//個位+0x30是對應(yīng)LCD里的ROM字符位置編碼disdata[4]=(xiaoshu)%10+0x30;//分位 +0x30是對應(yīng)LCD里的ROM字符位置編碼 LCD_write_char(4,LINE2,disdata[0]); //顯示千位 LCD_write_char(5,LINE2,disdata[1]); //顯示百位 LCD_write_char(6,LINE2,disdata[2]); //顯示十位 LCD_write_char(7,LINE2,disdata[3]); //顯示個位 LCD_write_char(9,LINE2,disdata[4]); //顯示分位 } elseif(TempValue>180) { TempValue=TempValue+2; disdata[0]=(TempValue/1000)%10+0x30;//千位+0x30是對應(yīng)LCD里的ROM字符位置編碼disdata[1]=(TempValue/100)%10+0x30;//百位+0x30是對應(yīng)LCD里的ROM字符位置編碼disdata[2]=(TempValue/10)%10+0x30;//十位+0x30是對應(yīng)LCD里的ROM字符位置編碼disdata[3]=TempValue%10/1+0x30;//個位+0x30是對應(yīng)LCD里的ROM字符位置編碼disdata[4]=(xiaoshu)%10+0x30;//分位 +0x30是對應(yīng)LCD里的ROM字符位置編碼 LCD_write_char(4,LINE2,disdata[0]); //顯示千位 LCD_write_char(5,LINE2,disdata[1]); //顯示百位 LCD_write_char(6,LINE2,disdata[2]); //顯示十位 LCD_write_char(7,LINE2,disdata[3]); //顯示個位 LCD_write_char(9,LINE2,disdata[4]); //顯示分位 } else { disdata[0]=(TempValue/1000)%10+0x30;//千位+0x30是對應(yīng)LCD里的ROM字符位置編碼disdata[1]=(TempValue/100)%10+0x30;//百位+0x30是對應(yīng)LCD里的ROM字符位置編碼disdata[2]=(TempValue/10)%10+0x30;//十位+0x30是對應(yīng)LCD里的ROM字符位置編碼disdata[3]=TempValue%10/1+0x30;//個位+0x30是對應(yīng)LCD里的ROM字符位置編碼disdata[4]=(xiaoshu)%10+0x30;//分位 +0x30是對應(yīng)LCD里的ROM字符位置編碼 LCD_write_char(4,LINE2,disdata[0]); //顯示千位 LCD_write_char(5,LINE2,disdata[1]); //顯示百位 LCD_write_char(6,LINE2,disdata[2]); //顯示十位 LCD_write_char(7,LINE2,disdata[3]); //顯示個位 LCD_write_char(9,LINE2,disdata[4]); //顯示分位 } }●LCD函數(shù)處理程序/********************************************************************//********************LCD函數(shù)部份***********************************/voidLCD_delay(void){unsignedchari;for(i=LCD_DELAY_TIME;i>ZERO;i--);}/********************************************************************/voidLCD_en_command(unsignedcharcommand){LCD_delay();LCD1602_RS=LOW;LCD1602_RW=LOW;LCD1602_EN=HIGH;LCDIO=command;LCD1602_EN=LOW;}/********************************************************************/voidLCD_en_dat(unsignedchardat){LCD_delay();LCD1602_RS=HIGH;LCD1602_RW=LOW;LCD1602_EN=HIGH;LCDIO=dat;LCD1602_EN=LOW;}/********************************************************************/voidLCD_set_xy(unsignedcharx,unsignedchary){unsignedcharaddress;if(y==LINE1)address=LINE1_HEAD+x;elseaddress=LINE2_HEAD+x;LCD_en_command(address);}/********************************************************************/voidLCD_write_char(unsignedx,unsignedchary,unsignedchardat){LCD_set_xy(x,y);LCD_en_dat(dat);}/********************************************************************/voidLCD_write_string(unsignedcharX,unsignedcharY,unsignedchar*s){LCD_set_xy(X,Y);//設(shè)置顯示XY地址while(*s)//寫字符{LCDIO=*s;LCD_en_dat(*s);s++;}}/********************************************************************/voidLCD_init(void){LCD_en_command(DATA_MODE);//8位模式LCD_en_command(DATA_MODE);LCD_en_command(DATA_MODE);LCD_en_command(DATA_MODE);LCD_en_command(OPEN_SCREEN);//開顯示LCD_en_command(DISPLAY_ADDRESS);//設(shè)定顯示起始位CLEARSCREEN;//清屏}/***********************延時*********************************/voiddelay_nms(unsignedintn){unsignedinti=0,j=0;for(i=n;i>0;i--)for(j=0;j<1140;j++);}/********************************************************************/4.3延時子程序/********************************************************************/voidLCD_delay(void);//LCD延時函數(shù)voidLCD_en_command(unsignedcharcommand);//LCD寫指令voidLCD_en_dat(unsignedchartemp);//LCD寫數(shù)據(jù)voidLCD_set_xy(unsignedcharx,unsignedchary);//設(shè)置LCD顯示位置voidLCD_write_char(unsignedx,unsignedchary,unsignedchardat);//向LCD寫入一個字符voidLCD_write_string(unsignedcharX,unsignedcharY,unsignedchar*s);//向LCD寫入一串字符voidLCD_init(void);//LCD初始化函數(shù)/********************************************************************/voiddelay_nms(unsignedintn);//延時函數(shù)/********************************************************************//***********************從MAX6675讀取溫度*********************************************/unsignedintReadMAX6675(){unsignedcharcount;MAX6675_CS=0;//置低,使能MAX6675MAX6675_SCK=1;Value=0;_nop_();_nop_();_nop_();for(count=16;count>0;count--)//獲取16位MSB{MAX6675_SCK=0;//sck置低Value=Value<<1;//左移if(MAX6675_SO==1)//取當(dāng)前值Value|=0x0001;elseValue&=0xffff;MAX6675_SCK=1;_nop_();_nop_();_nop_();_nop_();}MAX6675_CS=1;//關(guān)閉MAX6675returnValue;}5課設(shè)總結(jié)本次設(shè)計師以AT89S52作為核心,使用MAX6675轉(zhuǎn)換和K型溫度傳感器,配以溫度顯示。整個系統(tǒng)力求結(jié)構(gòu)簡單,功能完善。通過近半年的畢業(yè)設(shè)計,收獲頗多!在做本次畢業(yè)設(shè)計的過程中,我感觸最深的當(dāng)屬查閱大量的設(shè)計資料了。為了讓自己的設(shè)計更加完善,查閱這方面的設(shè)計資料是十分必要的,同時也是必不可少的。我們是在做設(shè)計,但我們不是藝術(shù)家,他們可以拋開實際盡情在幻想的世界里翱翔,而我們一切都要有據(jù)可依,有理可尋,不切實際的構(gòu)想永遠(yuǎn)只能是構(gòu)想,永遠(yuǎn)無法升級為設(shè)計。

其次,在這次課程設(shè)計中,我們運(yùn)用到了以前所學(xué)的專業(yè)課知識,如:proteus制圖、c語言、模擬和數(shù)字電路知識等。雖然過去從未獨(dú)立應(yīng)用過它們,但在學(xué)習(xí)的過程中帶著問題去學(xué)我發(fā)現(xiàn)效率很高,這是我做這次課程設(shè)計的又一收獲。最后,要做好一個課程設(shè)計,就必須做到:在設(shè)計程序之前,對所用單片機(jī)的內(nèi)部結(jié)構(gòu)有一個系統(tǒng)的了解,知道該單片機(jī)內(nèi)有哪些資源;要有一個清晰的思路和一個完整的的軟件流程圖;在設(shè)計程序時,不能妄想一次就將整個程序設(shè)計好,反復(fù)修改、不斷改進(jìn)是程序設(shè)計的必經(jīng)之路;要養(yǎng)成注釋程序的好習(xí)慣,一個程序的完美與否不僅僅是實現(xiàn)功能,而應(yīng)該讓人一看就能明白你的思路,這樣也為資料的保存和交流提供了方便;在設(shè)計課程過程中遇到問題是很正常德,但我們應(yīng)該將每次遇到的問題記錄下來,并分析清楚,以免下次再碰到同樣的問題的課程設(shè)計結(jié)束了,但是從中學(xué)到的知識會讓我受益終身。發(fā)現(xiàn)、提出、分析、解決問題和實踐能力的提高都會受益于我在以后的學(xué)習(xí)、工作和生活中。設(shè)計過程,好比是我們?nèi)祟惓砷L的歷程,常有一些不如意,但畢竟這是第一次做,難免會遇到各種各樣的問題。在設(shè)計的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學(xué)過的知識理解得不夠深刻,掌握得不夠牢固。

通過這次課程設(shè)計我也發(fā)現(xiàn)了自身存在的不足之處,雖然感覺理論上已經(jīng)掌握,但在運(yùn)用到實踐的過程中仍有意想不到的困惑,經(jīng)過一番努力才得以解決。這也激發(fā)了我今后努力學(xué)習(xí)的興趣,我想這將對我以后的學(xué)習(xí)產(chǎn)生積極的影響。

通過這次設(shè)計,我懂得了學(xué)習(xí)的重要性,了解到理論知識與實踐相結(jié)合的重要意義,學(xué)會了堅持、耐心和努力,這將為自己今后的學(xué)習(xí)和工作做出了最好的榜樣。我覺得作為一名自動化專業(yè)的學(xué)生,單片機(jī)的課程設(shè)計是很有意義的。更重要的是如何把自己平時所學(xué)的東西應(yīng)用到實際中。

課程設(shè)計反映的是一個從理論到實際應(yīng)用的過程,但是更遠(yuǎn)一點(diǎn)可以聯(lián)系到以后畢業(yè)之后從學(xué)校轉(zhuǎn)到踏上社會的一個過程。6謝辭四年的大學(xué)生活如白駒過隙般在我們身邊匆匆滑過,豐富多彩的大學(xué)時代悄悄的離我們遠(yuǎn)去。但是,這四年的生活學(xué)習(xí)是我一生之中最為重要的一部分,是我們從青年走向成年、從青澀走向成熟最為重要的過渡階段。四年的大學(xué)生涯讓我結(jié)識了很多、學(xué)到了很多:有老師如蠟燭般的無私教授,有同學(xué)兄弟般的真誠對待。為此,在即將結(jié)束我大學(xué)時代時,我真誠的感謝這四年來給予我支持、幫助和關(guān)愛的所有人,大家都是我的良師益友,是我一生的財富。四年的大學(xué)生活就要結(jié)束,半年的畢業(yè)設(shè)計也到了尾聲,由于本人知識水平和設(shè)計能力有限,本次的設(shè)計還存在著很多的不足和瑕疵,為此,我懇請各位老師給予我批評和指正,是我能夠?qū)W到更多的東西。本次畢業(yè)設(shè)計是在我的指導(dǎo)老師魏麗老師的耐心指導(dǎo)、悉心幫助下完成。在這將近半年的時間里,魏老師對我們小組進(jìn)行了系統(tǒng)詳實的輔導(dǎo),我們的設(shè)計才能夠真正順利、完整的完成。每周魏老師都會了解我們進(jìn)度,為我們解答設(shè)計中出現(xiàn)的難題。在本次的設(shè)計中,魏老師給作者的印象不僅是對課題研究時的科研作風(fēng)嚴(yán)謹(jǐn)、對工作的認(rèn)真對待、學(xué)識水平的深厚。更重要的是,魏老師在生活中對我們的關(guān)心和幫助。魏老師還經(jīng)常會和我們一起研究、學(xué)習(xí),使我們能夠更好更快的完成設(shè)計。在這里,作者向為我們付出巨大心血,督促、幫助、指導(dǎo)我們的魏老師報一聲:謝謝您為我們付出的一切。此時此刻,隨著論文的不斷深入我的不舍之情也越來越深。我知道我距離開我的老師和同學(xué)的時間也越來越近。對于許多給予我?guī)椭臋C(jī)電工程系的老師和同學(xué),我發(fā)自內(nèi)心的感謝你們!最后我還要感謝含辛茹苦養(yǎng)育我長大的父母,謝謝你們!再次感謝魏老師對我耐心的指導(dǎo)與悉心的照顧。感謝本組其他同學(xué)熱情的幫助!感謝所有關(guān)心、幫助過我的所有老師和同學(xué)!最后感謝我的母校——唐山學(xué)院四年對我的大力培養(yǎng)。7參考文獻(xiàn)[1]鄭曉文.關(guān)于熱電偶溫度冷端補(bǔ)償問題的探討.字航計測技術(shù).2002,22(6):53-59[2]王幸之等.單片機(jī)應(yīng)用系統(tǒng)抗干擾技術(shù).北京:北京航大航空大學(xué)出版社,2001[3]徐愛鈞,彭秀華.KeilCxs1V7.o單片機(jī)高級語言編程與林VisionZ應(yīng)用實踐.電子工業(yè)出版社,2004[4]王為青,程國鋼.單片機(jī)KeilC5l應(yīng)用開發(fā)技術(shù).北京:人民郵電出版社,2007[5]凌振寶,王君,朱凱光.數(shù)字溫度傳感器在熱電偶溫度補(bǔ)償中的應(yīng)用.傳感器技術(shù).2003,22(6):45-46[6]MaximIntegratedProduets.DS18B20Datasheet[EB/OL]./pdfserv/en/ds/DS18B20.Pdf[7]張志利,蔡偉.基于AD590的溫度測控裝置研究.白動化與儀器儀表,2001,2:37-39[8]李廣第,朱月秀,冷祖祁.單片機(jī)基礎(chǔ)第版北京北京航空航天大學(xué)出版社,2007.6[9]孫紅均,張濤,王超.智能儀器儀表北京清華大學(xué)出版社,2007[10]陳正,喻紅,熱電偶測溫的線性化處理模塊計量技術(shù),1999,12:23-25[11]呂小紅,周鳳星,馬亮.基于單片機(jī)的電阻爐溫度控制系統(tǒng)設(shè)計微計算機(jī)信息,2008,6-2119-120[12]王蓬,李少遠(yuǎn).一類非線性系統(tǒng)的多模型預(yù)測控制.控制與決策,2007(10):1113—1118.[13]王樹青,榮岡,金曉明,王寧.先進(jìn)控制技術(shù)及應(yīng)用.第1版:化學(xué)工業(yè)出版社,2001.7:110—123[14]崔志尚.溫度計量與測試.北京:中國計量出版社,1998.[15]劉君華.現(xiàn)代測試技術(shù)與系統(tǒng)集成.北京:電子工業(yè)出版社,2004.DS1820單總線數(shù)字溫度計DSl820數(shù)字溫度計提供9位(二進(jìn)制)溫度讀數(shù)指示器件的溫度。信息經(jīng)過單線接口送入DSl820或從DSl820送出因此從主機(jī)CPU到DSl820僅需一條線(和地線)。寫數(shù)據(jù),讀溫度轉(zhuǎn)換可以由數(shù)據(jù)線本身來提供電源而不需要一個外部電源。由于每個DS18B20的包含一個唯一的序列號,因此任意多個DSl820可以存放在同一條單線總線上。這允許在不同的地方放置溫度傳感器。此功能可應(yīng)用的地方包括空調(diào)環(huán)境控制,建筑物內(nèi)的溫度感應(yīng),設(shè)備或機(jī)器的過程監(jiān)控和控制。1綜述DS18B20的有四個主要的數(shù)據(jù)部分組成:1)64位激光ROM,2)溫度靈敏元件,3)非易失性溫度報警觸發(fā)器TH和TL,4)配置寄存器。器件從單線的通信線上取得其電源,在信號線為高電平的時間周期內(nèi),把能量貯存在內(nèi)部的電容器中,在單信號線為低電平的時間期內(nèi)斷開此電源,直到信號線變?yōu)楦唠娖街匦陆由霞纳娙蓦娫礊橹?。作為另一種可供選擇的方法,DS1820也可用外部5V電源供電。與DS1820的通信經(jīng)過一個單線接口。在單線接口情況下,在ROM操作未定建立之前不能使用存貯器和控制操作。主機(jī)必須首先提供五種ROM操作命令之一:1)ReadROM(讀ROM),2)MatchROM(符合ROM),3)SearchROM(搜索ROM),4)SkipROM(跳過ROM),或5)AlarmSearch(告警搜索)。這些命令對每一器件的64位激光ROM部分進(jìn)行操作。如果在單線上有許多器件,那么可以挑選出一個特定的器件,并給總線上的主機(jī)指示存在多少器件及其類型。在成功地執(zhí)行了ROM操作序列之后,可使用存貯器和控制操作,然后主機(jī)可以提供六種存貯器和控制操作命令之一。一個控制操作命令指示DS1820完成溫度測量。該測量的結(jié)果將放入DS1820的高速暫存存貯器(Scratchpadmemory)。通過發(fā)出讀暫存存儲器內(nèi)容的存儲器操作命令可以讀出此結(jié)果。每一溫度告警觸發(fā)器TH和TL構(gòu)成一個字節(jié)的EEPROM,如果不對DS1820施加告警搜索命令,這些寄存器可用作通用用戶存儲器,使用存儲器操作命令可以寫TH和TL。對這些寄存器的訪問是通過高速暫存存儲器,所有數(shù)據(jù)均以最低有效位在前的方式被讀寫。2寄生電源寄生電源電路當(dāng)I/O或VDD引腳為高電平時,這個電路便“取”得電源。只要符合指定的定時和電壓要求,I/O將提供足夠的功率,寄生電源的優(yōu)點(diǎn)是雙重的:1)利用此引,遠(yuǎn)程溫度檢測無需本地電源,2)缺少正常電源條件下也可以讀ROM。為了使DS1820能完成準(zhǔn)確的溫度變換,當(dāng)溫度變換發(fā)生時,I/O線上必須提供足夠的功率。因為DS1820的工作電流高達(dá)1mA,5K的上拉電阻將使I/O線沒有足夠的驅(qū)動能力。如果幾個SD1820在同一條I/O線上而且企圖同時變換,那么這一問題將變得特別尖銳。有兩種方法確保DS1820在其有效變換期內(nèi)得到足夠的電源電流。第一種方法是發(fā)生溫度變換時在I/O線上提供一強(qiáng)的上拉電阻,通過使用一個MOSFET把I/O線直接拉到電源可達(dá)到這一點(diǎn),當(dāng)使用寄生電源方式時VDD引腳必須連接到地。向DS1820供電的另外一種方法是通過使用連接到VDD引腳的外部電源,這種方法的優(yōu)點(diǎn)是在I/O線上不要求強(qiáng)的上拉電阻,總線上主機(jī)不需向上連接便在溫度變換期間使線保持高電平,這就允許在變換時間內(nèi)其它數(shù)據(jù)在單線上傳送。此外,在單線總線上可以放置任何數(shù)目的DS1820,而且如果它們都使用外部電源,那么通過發(fā)出跳過(Skip)ROM命令和接著發(fā)出變換(Convert)T命令,可以同時完成溫度變換。注意只要外部電源處于工作狀態(tài),GND(地)引腳不可懸空。在總線上主機(jī)不知道總線上DS1820是寄生電源供電還是外部VDD供電的情況下,在DS1820內(nèi)采取了措施來通知采用的供電方案??偩€上主機(jī)通過發(fā)出跳過(Skip)ROM的操作約定,然后發(fā)出讀電源命令,可以決定是否有需要在DS1820的總線上放置上拉電阻。在此命令發(fā)出后,主機(jī)接著發(fā)出讀時間片。如果是寄生供電,DS1820將在單線總線上送回(0);如果由VDD引腳供電,它將送回(1)。如果主機(jī)接收到一個(0),它知道它必須在溫度變換期間在I/O線上供一個強(qiáng)的上拉。3運(yùn)算-報警信號在DS1820完成溫度變換之后,溫度值與貯存在TH和TL內(nèi)的觸發(fā)值相比較,因為這些寄存器僅僅是8位,所以0.5度在比較時被忽略。TH或TL的最高有效位直接對應(yīng)于16位溫度寄存器的符號位,如果溫度測量的結(jié)果高于TH或低于TL,那么器件內(nèi)告警標(biāo)志將置位。每次溫度測量將更新告警標(biāo)志,只要告警標(biāo)志置位,DS1820將對告警搜索命令做出響應(yīng)。這允許并聯(lián)連接許多DS1820,同時進(jìn)行溫度測量,如果某處溫度超過極限,那么可以識別出正在告警的器件并立即將其讀出而不必讀出非告警的器件。464位激光ROM每一DS1820包括一個唯一的64位長的ROM編碼,開始的8位是單線產(chǎn)品系列編碼,DS1820編碼是10h,,接著的48位是唯一的系列號,最后的8位是開始56位CRC,64位ROM和ROM操作控制部分允許DS1820作為一個單線器件工作并遵循“單線總線系統(tǒng)”的單線協(xié)議,直到ROM操作協(xié)議被滿足,DS1820控制部分的功能是不可訪問的。單線總線主機(jī)必須首先操作五種ROM操作命令之一:1)ReadROM(讀ROM),2)MatchROM(匹配ROM),3)SearchROM(搜索ROM),4)SkipROM(跳過ROM),或5)AlarmSearch(告警搜索)。在成功地執(zhí)行了ROM操作序列之后,DS1820特定的功能便可訪問,然后總線上主機(jī)可提供六個存貯器和控制功能命令之一。5CRC生成DS1820有一存貯在64位ROM的最高有效字節(jié)內(nèi)的8位CRC??偩€上的主機(jī)可以根據(jù)64位ROM的前56位計算機(jī)CRC的值并把它與存貯在DS1820內(nèi)的值進(jìn)行比較以決定ROM的數(shù)據(jù)是否已被主機(jī)正確地接收。CRC的等效多項式函數(shù)為CRC=X8+X5+X4+1DS1820也利用與上述相同的多項式函數(shù)產(chǎn)生一個8位CRC值并把此值提供給總線的主機(jī)以確認(rèn)數(shù)據(jù)字節(jié)的傳送,在使用CRC來確認(rèn)數(shù)據(jù)傳送的每一種情況中,總線主機(jī)必須使用上面給出的多項式函數(shù)計算CRC的值并把計算所得的值,或者與存貯在DS1820的64位ROM部分中的8位CRC值(ROM讀數(shù)),或者與DS1820中計算得到的8位CRC值(在讀暫存存貯器中時它作,為第九個字節(jié)被讀出),進(jìn)行比較。CRC值的比較和是否繼續(xù)操作都由總線主機(jī)來決定,當(dāng)存貯在DS1820內(nèi)或由DS1820計算得到的CRC值與總線主機(jī)產(chǎn)生的值不相符合時,在DS1820內(nèi)沒有電路來阻止命令序列的繼續(xù)執(zhí)行??偩€CRC可以使用一個移位寄存器和“異或”(XOR)門組成的多項式產(chǎn)生器來產(chǎn)生,其它有關(guān)Dallas公司單線循環(huán)冗余校驗的信息可參見標(biāo)題為“理解和使用Dallas半導(dǎo)體公司接觸式存貯器產(chǎn)品”的應(yīng)用注釋移。位寄存器的所有位被初始化為零,然后從產(chǎn)品系列編碼的最低有效位開始,每次移入一位。當(dāng)產(chǎn)品系列編碼的8位移入以后,接著移入序列號。在序列號的第48

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論