![學(xué)位論文-基于電容充放電技術(shù)的溫度測試_第1頁](http://file4.renrendoc.com/view/53b2a59a1c17d42a0631f2949ccfd394/53b2a59a1c17d42a0631f2949ccfd3941.gif)
![學(xué)位論文-基于電容充放電技術(shù)的溫度測試_第2頁](http://file4.renrendoc.com/view/53b2a59a1c17d42a0631f2949ccfd394/53b2a59a1c17d42a0631f2949ccfd3942.gif)
![學(xué)位論文-基于電容充放電技術(shù)的溫度測試_第3頁](http://file4.renrendoc.com/view/53b2a59a1c17d42a0631f2949ccfd394/53b2a59a1c17d42a0631f2949ccfd3943.gif)
![學(xué)位論文-基于電容充放電技術(shù)的溫度測試_第4頁](http://file4.renrendoc.com/view/53b2a59a1c17d42a0631f2949ccfd394/53b2a59a1c17d42a0631f2949ccfd3944.gif)
![學(xué)位論文-基于電容充放電技術(shù)的溫度測試_第5頁](http://file4.renrendoc.com/view/53b2a59a1c17d42a0631f2949ccfd394/53b2a59a1c17d42a0631f2949ccfd3945.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
PAGEII基于電容充放電技術(shù)的溫度測試摘要:溫度是與人們的生產(chǎn)生活密切相關(guān)的物理量之一,目前有多種溫度測量方法,如:玻璃溫度計測溫、半導(dǎo)體測溫、熱敏電阻測溫、紅外輻射測溫、鉑電阻測溫以及熱電偶測溫等等,根據(jù)不同的測溫精度及溫度范圍,可選用不同的測溫方式。 本文采用一種沒有ADC模塊的模擬量檢測方法,通過編寫程序控制單片機的通用輸入輸出口、定時器等模塊協(xié)同工作,通過捕捉電容充電時間確定當(dāng)前的熱敏電阻阻值,并通過查表實現(xiàn)溫度測量。 系統(tǒng)實現(xiàn)了0℃~60℃范圍內(nèi)的溫度測量,設(shè)計的溫度計具有低成本、高精度的特點,關(guān)鍵詞:溫度;熱敏電阻;單片機;電容;系統(tǒng)
ANovelThermometerBasedontheCapacitiveChargingandDischargingTechnologyAbstract:Thetemperatureisaphysicalquantitycloselyrelatedwithpeople'sproductionandlife,resultinginavarietyoftemperaturemeasurementmethod,aglassthermometertemperaturesensor,semiconductortemperaturesensor,NTCthermistortemperaturesensor,infraredradiationtemperaturesensor,platinumresistancetemperaturemeasuringandthermocouplethermometer,etc.Withthedifferenttemperatureprecisionandtemperaturerange,wecanselectdifferentwaysofmeasuringtemperature.AnanaloguetestmethodwithoutADCmoduleisintroducedinthispaper,whichmakesinput,outputandtimermoduleofMCUworkcollaborativelybyprogramming,determinesthecurrentresistanceofthermistorbycalculatingcharge-timeofcapacitor,andachievetemperaturemeasurementbylookinguptotable.ThisSystemachievesthetemperaturemeasurementwhichrangesfrom0℃to60℃,andthedesignofthermometerhascharacteristicsoflowcostandhighprecision,whichcanbewidelyusedinthefuture.Keywords:AVRMCU;Temperature;Thermistors;SCM;Capacitor;system目錄摘要 IAbstract II1引言 11.1選題背景與選題意義 11.2本文任務(wù) 11.3本文的結(jié)構(gòu) 22測量方法的原理 32.1方案的比較 32.2基于電容充放電技術(shù)的溫度測量原理 42.2.1測量原理 42.2.2電路說明 42.2.3電容的參數(shù)選擇 52.3電路的性能及其功能 63系統(tǒng)硬件設(shè)計 73.1系統(tǒng)設(shè)計的系統(tǒng)框圖 73.2各功能模塊設(shè)計及其實現(xiàn) 73.2.1單片機的復(fù)位電路 73.2.2數(shù)碼管的顯示電路 83.2.3溫度采集電路 93.2.4 ISP下載電路 113.2.5 電源電路 124系統(tǒng)軟件設(shè)計 134.1主函數(shù) 134.2延時子程序 154.3數(shù)碼管顯示程序 154.3.1數(shù)碼管顯示編程的原理 154.3.2數(shù)碼管顯示的程序 164.3.3數(shù)碼管位的讀取 184.4端口設(shè)置程序 184.5溫度信號采集程序 205實物的調(diào)試與誤差分析 235.1硬件的調(diào)試 235.2溫度的誤差分析 236體會與展望 256.1總結(jié)與體會 256.2設(shè)計前景 25參考文獻 27致謝 28PAGE121引言1.1選題背景與選題意義 人民的生活與環(huán)境都與溫度息息相關(guān),在信息時代高速發(fā)展的今天,隨著科學(xué)技術(shù)水平的不斷提高,溫度測量技術(shù)也得到了不斷的發(fā)展?,F(xiàn)在溫度測量的方法有很多,也有很多分類,由于測量原理和測量方法的多樣性,很難找到一種完全理想的分類方法。 我們大家都知道溫度是表征物體冷熱程度的物理量,而測量溫度的標尺就是溫度計,其按照測量方式可以分為接觸式和非接觸式兩種。通常來說的接觸式測量儀表比較簡單、可靠,測量精度較高,但是因為測溫元件與被測介質(zhì)需要進行充分的熱交換,所以其需要一定的時間才能達到熱平衡,所以,存在測溫延遲現(xiàn)象,同時受耐高溫和耐低溫材料的限制,不能應(yīng)用于這些極端的溫度測量[1];非接觸式儀表測溫儀是通過熱輻射的原理來測量溫度的,測溫元件不需要與被測介質(zhì)接觸,測溫范圍廣,不受測溫上限的限制,也不會破壞被測物體的溫度場,反應(yīng)速度一般也比較快;但受到物體發(fā)射率、測量距離、煙塵和水汽等外界因素的影響,其測量誤差較大。 雖然目前的測溫方法多種多樣,但是為了尋找一種既經(jīng)濟又有效的測溫方式,我選擇了用電容充放電來實現(xiàn)溫度的測量,現(xiàn)在單片機的內(nèi)部集成的已經(jīng)越來越高了。ADC就是最早整合到芯片上的一項功能,但是市場的激烈競爭,讓我們想盡辦法去節(jié)省、節(jié)省、在節(jié)省……,用不帶ADC功能的單片機實現(xiàn)ADC功能的模擬量檢測[2];這種方法雖然已經(jīng)成熟,但是對于這一方法的靈活運用,在生產(chǎn)的過程中,會給商家?guī)聿环频慕?jīng)濟效益。在工業(yè)生產(chǎn)過程中需要實時測量溫度,在農(nóng)業(yè)生產(chǎn)中也離不開溫度的測量,因此研究溫度的測量方法和裝置具有重要的意義。本設(shè)計所介紹的數(shù)字溫度計與傳統(tǒng)的溫度計相比,具有讀數(shù)方便,測溫范圍廣,測溫準確,其輸出溫度采用數(shù)字顯示,主要用于對測溫比較準確的場所,或科研實驗室使用,該設(shè)計控制器使用單片機ATMEGA16,測溫電阻使用熱敏電阻,用4位共陰極LED數(shù)碼管實現(xiàn)溫度顯示,能準確達到以上要求。單片機有體積小、功耗低、性價比高。易于推廣應(yīng)用等顯著特點,在自動化裝置、智能表儀器儀表、過程控制和家用電器等領(lǐng)域得到廣泛的應(yīng)用。應(yīng)用單片充當(dāng)主控器來再加上適量的外圍實現(xiàn)此功能,且單片機價格便宜,性能穩(wěn)定。應(yīng)用的外圍器件相對較少,這就提高了系統(tǒng)的穩(wěn)定性,且單片機控制簡易,開發(fā)工具簡單,很容易大批量生產(chǎn)。1.2本文任務(wù) 要求利用無ADC模塊的電路,來檢測溫度模擬量,達到和ADC模塊相同的結(jié)果,并通過編寫程序來控制單片機的通用輸入輸出口、定時器等模塊協(xié)同工作,實現(xiàn)溫度信號的數(shù)字化測量。 主要參數(shù)要求:(1)開機自動復(fù)位。 (2)利用熱敏電阻測量當(dāng)時的室溫。 (3)測量范圍為0℃~60℃,精度為 (4)用四位共陰數(shù)碼管顯示當(dāng)前溫度值。1.3本文的結(jié)構(gòu) 第一章主要介紹了此設(shè)計的歷史背景和選題的意義,以及本文的任務(wù)要求。第二章主要敘述設(shè)計的測量方案原理。第三章主要寫系統(tǒng)的硬件實現(xiàn)的過程,即如何將單片機,熱敏電阻和顯示屏結(jié)合在一起以達到設(shè)計目標。第四章主要分析編程過程。第五章主要對硬件的調(diào)試及誤差分析。第六章是對本設(shè)計的總結(jié)與對本設(shè)計未來的期望。
2測量方法的原理2.1方案的比較方案一由于本設(shè)計是測溫電路,可以考慮用溫度傳感器來實現(xiàn),在單片機電路的設(shè)計中,大多數(shù)的設(shè)計都是使用傳感器來完成的,所以這是非常容易想到的,我們可以采用一只溫度傳感器DS18B20,雖然此傳感器可以很容易的直接讀取被測溫度值,并進行轉(zhuǎn)換,但是從價格角度考慮,這種方案的成本比較高。方案二 另外,測溫電路還可以用AD590單片集成感溫電流源,再利用熱敏電阻負溫度系數(shù)的特性構(gòu)建出測溫電路,并通過STC12C5410AD單片機,內(nèi)部自帶10位8路的AD轉(zhuǎn)換模塊,可以把測量電路輸出的電壓值通過AD模塊轉(zhuǎn)化為數(shù)字量,最后通過數(shù)碼管顯示出來,不過這樣的成本就會大大的上升,我們要尋找一種既經(jīng)濟又有效的方案。方案三 還可以使用熱敏電阻之類的器件利用其感溫效應(yīng),將溫度的變化反應(yīng)為電壓或電流的變化,然后又經(jīng)過A/D電路轉(zhuǎn)換,最后由單片機進行數(shù)據(jù)處理[3];經(jīng)過論證這種方案雖然可行,但是還是用到了ADC模塊,不符合本文所要講述的一種無需A/D模塊的新方法的內(nèi)容。方案四 可以考慮使用溫度傳感器MAX6675+AT89C52,MAX6675將熱電偶測溫應(yīng)用時復(fù)雜的線性變化、冷端補償及數(shù)字化輸出等問題集中在一個芯片上解決,簡化了熱電偶測溫的方案應(yīng)用于嵌入式系統(tǒng)領(lǐng)域時復(fù)雜的軟硬件設(shè)計,不過熱電偶測溫方案是應(yīng)用于嵌入式系統(tǒng)領(lǐng)域的理想選擇,我們的測溫電路要應(yīng)用的更加廣泛與普及,所以熱電偶的方法還不是本文所要找到的最理想的方法。方案五進而考慮到可以單獨的使用熱敏電阻之類的器件利用其感溫效應(yīng),在將隨被測溫度變化充電的時間通過編程計數(shù)來實現(xiàn),并進行近似的線性處理,累加時間這些都可以用單片機進行數(shù)據(jù)的處理,再顯示電路上,就可以將被測溫度顯示出來,這種設(shè)計只需要用軟件編程就可以輕松的實現(xiàn),電路也比較容易實現(xiàn)。從以上五種方案,很容易看出,采用方案五,電路比較簡單,軟件設(shè)計也比較方便,故采用了方案五。2.2基于電容充放電技術(shù)的溫度測量原理對于熱敏電阻模擬信號的檢測,我們可以通過對電容充電,把電阻值轉(zhuǎn)化為時間值,并對該時間進行檢測和計算,從而獲得電阻值或其他我們需要的結(jié)果。本文以下將介紹溫度檢測的具體方法。2.2.1測量原理我們知道,當(dāng)我們對RC電路進行充電(參見圖2-1)時,如果電壓、電容都不變化,而且RC的時間常數(shù)又足夠大,那么我們就可以認為電阻之比等于充電時間之比。 (2.1)在公式(2.1)中,k代表電阻比率。這個公式就是本文所做的設(shè)計要用到的理論基礎(chǔ),在該公式中有四個參數(shù),其中和是可以通過單片機的計時器測量出來的。剩下的兩個電阻值參數(shù),我們假設(shè)其中一個為參考電阻(電阻值已知),我們通過計算就可以很容易地求出另一個被測電阻的阻值。圖2-1 電容充電曲線2.2.2電路說明為了實現(xiàn)這個電阻測量的功能,我們需要使用單片機的兩個三態(tài)I/O口。我們需要求這些I/O口在作為輸出端口時,能夠提供足夠的充/放電電流;而在作為輸入端口時,能夠?qū)ν獗憩F(xiàn)出高阻特性(漏電流越小也好)。許多系列的單片機都滿足這些要求,典型的如PIC、AVR等等。另外我還需要CPU內(nèi)部的計數(shù)器,用于檢測熱敏電阻對電容充電時間的計時。并通過時間的不同輸出我們想要測得的溫度值。圖2-2 溫度檢測電路圖2.2.3電容的參數(shù)選擇電容值可以按照固定公式計算。另外,實際選用的電容值應(yīng)該比計算結(jié)果稍微小一些。確保測量最大電阻時,計時器不會溢出。 (2.2)T為完成額定位數(shù)的A/D轉(zhuǎn)換所需的時間;為最大可能的測量電阻;為I/O口門限電壓;為參考電壓。圖2-3 電容充/放電波形2.3電路的性能及其功能 該電路可以消除失調(diào)、增益、電容、電源電壓和溫度等因素帶來的誤差。 該電路無法消除因參考電阻、電阻和電容非線性度、I/O引腳漏電、I/O引腳輸入門限不定度和單片機定時測量不定度等因素造成的誤差。 溫度測試系統(tǒng)的功能主要有數(shù)據(jù)采集、數(shù)據(jù)處理、輸出當(dāng)前的溫度值。能對0℃~60 這個結(jié)果的精度,可以控制在±1%以內(nèi)。這在一些日常的溫度檢測功能應(yīng)用中已經(jīng)可以滿足人們的需求了。
3系統(tǒng)硬件設(shè)計3.1系統(tǒng)設(shè)計的系統(tǒng)框圖Atmega16單片機Atmega16單片機單片機復(fù)位電路ISP下載電路數(shù)碼管顯示電路RC充放電電路電源電路時鐘電路圖3-1 總體設(shè)計方框圖本系統(tǒng)采用的是Atmega16單片機,它的內(nèi)部帶有8M經(jīng)過標定的、可校正的RC振蕩器,這個振蕩源可作為系統(tǒng)時鐘使用,系統(tǒng)上電后自動復(fù)位,通過ISP下載電路可直接對單片機進行程序的下載功能,還可通過四位共陰極的數(shù)碼管顯示電路顯示溫度值。根據(jù)系統(tǒng)的設(shè)計要求,當(dāng)單片機上電后,首先對電容兩端的電壓值進行充分的放電,然后對單片機端口進行方向的設(shè)置,連接熱敏電阻的端口設(shè)置輸出,連接普通電路端口的設(shè)置為輸入,然后開始對電容進行充電,當(dāng)電容兩端的電壓值達到單片機端口的門限電壓值的時候,輸入端口的電壓將變成高電平,這就改變了輸入端口的方向,此時標志著充電的結(jié)束,充電計時的程序?qū)⒊潆娝玫降臅r間發(fā)送到ATmega16單片機內(nèi)部,經(jīng)ATmega16分析處理,查表找到當(dāng)時的充電時間所對應(yīng)的熱敏電阻的阻值,然后將這個阻值所對應(yīng)的溫度計算出來,最后將這個溫度值發(fā)送給單片機與顯示器連接的端口,將把溫度顯示在數(shù)碼管顯示電路上。3.2各功能模塊設(shè)計及其實現(xiàn)3.2.1單片機的復(fù)位電路復(fù)位電路的基本功能是:系統(tǒng)上電時提供復(fù)位信號,直至系統(tǒng)電源穩(wěn)定后,再撤銷復(fù)位信號。為可靠起見,電源穩(wěn)定后還需要經(jīng)一定的延時才可撤銷復(fù)位信號,這是為了以防電源開關(guān)或電源插頭分-合過程中引起的抖動而影響復(fù)位[4]。圖1是復(fù)位電路的原理圖圖3-2復(fù)位電路的原理圖為確保微機系統(tǒng)中電路的穩(wěn)定并可靠工作,復(fù)位電路是必不可少的一部分,復(fù)位電路的第一功能是上電復(fù)位。一般微機電路正常工作需要供電電源為5V±5%,即4.75~5.25V。由于微機電路是時序數(shù)字電路,它需要穩(wěn)定的時鐘信號,因此在電源上電時,只有當(dāng)VCC超過4.75V低于5.25V以及晶體振蕩器穩(wěn)定工作時,復(fù)位信號才被撤除,微機電路開始正常工作。3.2.2數(shù)碼管的顯示電路數(shù)碼管電路圖如下圖3-3數(shù)碼管的顯示電路原理圖在整個系統(tǒng)數(shù)碼管的顯示電路中,將顯示電路與單片機連接的端口設(shè)為輸出,通過1K的電阻連接到數(shù)碼管的八位段選位上,并通過設(shè)置另外的四個端口輸出的高低電平情況,控制三極管的導(dǎo)通與截止,經(jīng)過三極管的導(dǎo)通截止是為了確保數(shù)碼管的片選端是分別有效的,來決定數(shù)碼管各個位的亮滅情況。三極管的射極接地,三極管的基極經(jīng)過4.7K電阻連接在單片機上,三極管的集電極連接到數(shù)碼管的位選管腳上,當(dāng)基極給出一個高電平的時候,三極管導(dǎo)通片選端的電平瞬間變低,由于數(shù)碼管的片選端低電平有效,所以這個位的數(shù)碼管被選中,數(shù)碼管接到單片機發(fā)出的段選信號,并顯示當(dāng)前的數(shù)字,因為本系統(tǒng)采用的是動態(tài)顯示,所以數(shù)碼管真實的情況是在輪流的點亮和熄滅,這是因為閃爍的頻率比較高,已經(jīng)超出人眼所能接受的范圍,給人的感覺就好像是所有的數(shù)碼管被同時點亮。3.2.3溫度采集電路為了實現(xiàn)熱敏電阻測量溫度的功能,我們需要使用單片機的2個三態(tài)I/O口。我們要求這些I/O口在作為輸出口時,能夠提供足夠的充/放電電流;而在作為輸入口是,能夠?qū)ν獗憩F(xiàn)出高阻特性(漏電流越小越好)。而ATmega16單片機就能滿足這些要求,另外我們需要一個定時器對充電時間計時。在測量溫度的電路實現(xiàn)中,大多數(shù)的測量都是用DS1820專用的溫度傳感器來完成的,這里由于成本的關(guān)系,現(xiàn)用普通的熱敏電阻測量,熱敏電阻是利用對溫度敏感的半導(dǎo)體材料制成的,其阻值隨溫度的變化有比較明顯的改變,這里采用的是負溫度系數(shù)的熱敏電阻,其特點是,在工作溫度范圍內(nèi),電阻值隨著溫度的升高而降低、靈敏度高、響應(yīng)快。當(dāng)溫度大幅上升的時候,電阻值可下降3~5個數(shù)量級。具體的設(shè)計方案如下所示:利用單片機I/O口的門檻判別電壓來檢測由熱敏電阻構(gòu)成的RC電路的充放電時間,從而間接達到測溫目的的簡單廉價溫度測量儀器。電子溫度計包括三個部分:其一,熱敏電阻阻值測量。其二,計算熱敏電阻相應(yīng)阻值下所對應(yīng)的充電時間。其三,顯示部分,可根據(jù)要求精度,選取不同位數(shù)的數(shù)碼管。RC測溫電路如下圖:圖3-4溫度信號采集電路原理圖其中電阻R8是標準電阻,用來和熱敏電阻對電容充電并比較,當(dāng)C5的電壓值等于PB0端口的端口電壓時,R8所連接的端口方向?qū)㈦S之改變,R9是熱敏電阻,主要特性是能根據(jù)環(huán)境溫度的大小改變自身的阻值,電容C5的作用是讓充電電壓緩慢上升或下降。由以上的測溫電路可知,通過熱敏電阻R9對電容充電,直到放電電壓上升到單片機I/O口門檻判別電壓時,即時,這時電容C5電壓值被充滿,記錄這段充電時間。當(dāng)計算出熱敏電阻當(dāng)前的阻值R9所對應(yīng)的充電時間后,可根據(jù)熱敏電阻廠家提供的溫度阻值對照表進行進行查表計算,如果要求大范圍的溫度檢測時,用上面的方法顯的非常困難而繁瑣,不但代碼冗長,而且精確度還很低,所以這里提供一個差值查表的計算方法,不但可以減少代碼冗余長度,而且可以達到很高的精度效果,其原理是把要測量的溫度范圍分隔成若干段(例如,每隔5度分為一段),分段的數(shù)量要看系統(tǒng)的精度要求而定,把每一段近似看做一個直線,通過每一段的上限溫度阻值和下限溫度阻值之差與每一段中包括的溫度點數(shù)(如5個溫度點)之比,求得這個段的直線斜率: (3.1)再求出當(dāng)前熱敏電阻阻值在這一段的差值由式(3.2)可見,到此可以根據(jù)斜率K和差值ΔR計算出當(dāng)前溫度在這一段中的溫度由式(3.3)可見,最后把這個計算出來的溫度加上這個段的溫度值即為當(dāng)前溫度值由式(3.4)可見。 (3.2) (3.3) (3.4) 溫度的檢測步驟:設(shè)置端口方向?qū)﹄娙葸M行充分放電更改端口方向?qū)﹄娙葸M行充電記錄充電的時間計算電阻比率電阻比率公式: (3.5)查表求溫度值表3-1 NTC分度表/=T的單位是℃、R單位是TRTR027.3720356.9424522.1167405.82651017.9810454.91241514.7050504.15992012.0938553.53772510.0000603.0208308.31153.2.4 ISP下載電路ISP(In-SystemProgramming)在線系統(tǒng)可編程,指電路板上的空白器件可以通過編程寫入用戶編寫的最終代碼,而不需要從電路板上取下器件,已經(jīng)下載好控制程序的器件也可以用ISP方式擦除或再編程。圖3-5 ISP下載電路ISP技術(shù)是未來發(fā)展方向。In-SystemProgramming是一種無需將存儲芯片(如EPROM)從設(shè)計的系統(tǒng)設(shè)備上取出就能對其進行可編程的過程,縮略為ISP[5];在線系統(tǒng)編程需要在目標板上有額外的電路完成編程任務(wù)。ISP技術(shù)的優(yōu)勢是不需要編程器就可以進行單片機的實驗和開發(fā),單片機芯片可以直接焊接到電路板上,經(jīng)過電路調(diào)試成功即可成為成品,免去了調(diào)試時由于頻繁地插入取出芯片對芯片的管腳和電路板的可靠性帶來的不可預(yù)知的損壞。ISP的工作原理ISP的功能實現(xiàn)相對要簡單一些,一般通用的做法是將存儲器的內(nèi)部可以由上位機的軟件通過串口來進行改寫。對于單片機來講可以通過SPI或其它的串行接口接收上位機傳來的數(shù)據(jù)并寫入存儲器中。所以即使我們將芯片焊接在電路板上,只要留出和上位機接口的這個串口端口,就可以實現(xiàn)芯片內(nèi)部存儲器的改寫,而無須再取下芯片。3.2.5 電源電路7805系列集成穩(wěn)壓器的典型應(yīng)用電路如下圖所示,這是一個輸出正5V直流電壓的穩(wěn)壓電源電路。IC采用集成穩(wěn)壓器7805,C3、C4分別為輸入端和輸出端濾波電容,RL為負載電阻。當(dāng)輸出電較大時,7805應(yīng)配上散熱板。圖3-6 電源電路在電子設(shè)計中,常見的三端穩(wěn)壓集成電路有正電壓輸出的78××系列和負電壓輸出的79××系列。顧名思義,三端IC是指這種穩(wěn)壓用的集成電路,只有三條引腳,分別是輸入端、接地端和輸出端。它的樣子象是普通的三極管。用78/79系列三端穩(wěn)壓IC來組成穩(wěn)壓電源所需的外圍元件極少,電路的內(nèi)部還有過流、過熱及調(diào)整管的保護電路,使用起來可靠、方便,而且價格便宜[6];該系列集成穩(wěn)壓IC型號中的78或79后面的數(shù)字代表該三端集成穩(wěn)壓電路的輸出電壓,如7806表示輸出電壓為正6V,7909表示輸出電壓為負9V。因為三端固定集成穩(wěn)壓電路的使用方便,電子制作中經(jīng)常采用。PAGEPAGE28浙江農(nóng)林大學(xué)本科生畢業(yè)設(shè)計(論文)4系統(tǒng)軟件設(shè)計4.1主函數(shù) 日常生活中,要完成一件復(fù)雜的事情,我們可以將這個事情稱之為功能,我們總是習(xí)慣把“大功能”分解為多個“小功能”來實現(xiàn)它的最終效果[7];在系統(tǒng)的軟件設(shè)計中,“功能”可以稱呼為“函數(shù)”,而在系統(tǒng)的軟件設(shè)計中,函數(shù)是實現(xiàn)特定的功能的一個個體,每個函數(shù)只實現(xiàn)它的一個特定的功能,因為要實現(xiàn)所有函數(shù)的功能的時候,不可以隨意的調(diào)度,這就要求我們就需要一個總指揮來調(diào)度這些特定的功能函數(shù),所以主函數(shù)是這個系統(tǒng)設(shè)計軟件中的核心部分,它的主要功能是系統(tǒng)的復(fù)位,溫度的實時顯示,讀出并處理熱敏電阻對電容充電的時間,和查找到這個電阻阻值需要充電的時間所對應(yīng)的溫度值,歸根到底就是調(diào)度那些具有特定功能的函數(shù),讓其有序的實現(xiàn)它們的功能,而本設(shè)計的最終結(jié)果是將測得的溫度值顯示在數(shù)碼管上。YYN開始初始化復(fù)位電路顯示初始化電容充分放電電容充電初始化判斷管腳電平繼續(xù)充電查找時間顯示溫度值圖4-1 主函數(shù)流程圖 程序開始,單片機的PC口和PD口分別于數(shù)碼管的段選端和片選端連接,首先要對這兩組端口進行方向的設(shè)置,對于ATmega16來說,端口電平為高電平時即為輸出,所以將這兩個端口的電壓值都設(shè)置為高電平: DDRC=0xff; DDRD=0xff; 然后對電路中的電容進行充分的放電,放電結(jié)束之后對電容進行充電,充電的前提是將一個端口設(shè)為輸入一個設(shè)為輸出,而輸入端口的方向變化就標志著充電時間的結(jié)束,首先設(shè)置一個變量p,當(dāng)p=0時計時程序繼續(xù),當(dāng)充電結(jié)束p=1,計時結(jié)束,然后將所記的時間與已知的表進行比對,找到當(dāng)前的充電時間所對應(yīng)的溫度值,最終顯示在數(shù)碼管上。程序如下:intmain(void)//主函數(shù){ DDRC=0xff;//設(shè)置C口高四位為輸出 DDRD=0xff;//設(shè)置D口為輸出 while(1) { discharge();//充分的放電 charge();//充電程序 if(p==0) { time++; } if((PINB&(1<<4))==0x10) { p=1; res(); qbsg(); display(); } }}4.2延時子程序應(yīng)用單片機的時候,經(jīng)常會遇到需要短時間延時的情況[8]。需要的延時時間很短,一般都是幾十到幾百微妙(us)。有時候還需要很高的精度,這種情況下,用計時器來實現(xiàn)往往有點小題大做。而在極端的情況下,計時器甚至已經(jīng)全部被派上了別的用途。這時就需要我們另想其他的可實現(xiàn)的辦法了。對于延時的方法,有硬件延時和軟件延時兩種,以下是一個誤差不是很大的延時一毫秒的軟件延時方法:voiddelay(uintms)//延時一微秒的程序{ uinti; for(i=0;i<ms;i++) _delay_loop_2(FRQ*250-1);}這個程序是以毫秒為單位執(zhí)行的延時任務(wù)。其中FRQ為系統(tǒng)震蕩頻率(以MHz為單位)。4.3數(shù)碼管顯示程序4.3.1數(shù)碼管顯示編程的原理LED數(shù)碼管的a~g再加上dp八個發(fā)光二極管[9];加正電壓的發(fā)光,加零電壓的不能發(fā)光,不同亮暗的組合就能形成不同的字型,這種組合我們把它稱之為字段碼。共陽極和共陰極的字段碼是互不相同的,對于同一個數(shù)字或字符,共陰極的連接方式和共陽極的連接方式的字段碼也是不一樣的,一般情況下共陰極和共陽極的字段碼互為反碼,常見的數(shù)字和字符的共陰極和共陽極的字段碼如下表所示。表4-1 數(shù)碼管的字段顯示段字符十六進制代碼dpgfedcba共陰極共陽極0001111113FHC0H10000011006HF9H2010110115BHA4H3010011114FHB0H40110011066H99H續(xù)表4-1顯示段字符十六進制代碼dpgfedcba共陰極共陽極5011011016DH92H6011111017DH82H70000011107HF8H8011111117FH80H9011011116FH90H
A0111011177H88Hb011111007CH83HC0011100139HC6Hd010111105EHA1HE0111100179H86HF0111000171H8EHH0111011076H89HP01110011F3H8CH數(shù)碼管顯示可采用硬件譯碼輸出字段碼控制顯示內(nèi)容,如CD4511(共陰極)或CD4513(共陽極)。也可用單片機I/O口直接輸出字段碼控制數(shù)碼管的顯示內(nèi)容。4.3.2數(shù)碼管顯示的程序 PORTD端口的高四位設(shè)為數(shù)碼管的片選端口,并通過對這四個端口,每個端口單獨的置為高電平,屏蔽掉其他端口,這樣就可以實現(xiàn)數(shù)碼管位的片選功能。程序的流程圖如下所示:YYYNN開始系統(tǒng)初始化檢測位選信號判斷信號檢測段選信號判斷信號顯示未檢測到信號未檢測到信號圖4-2 數(shù)碼管顯示流程圖最高位控制千位,次高位控制百位,第三高位控制十位,第四高位控制個位。PORTD=0x8f;//將最高位置為高電平PORTD=0x4f;//PORTD=0x2f;//將第三高位置為高電平PORTD=0x1f;//將第四高位置為高電平 PORTC端口連接到數(shù)碼管的段選位,并根據(jù)數(shù)碼管的字段的表格來查找到相應(yīng)的編碼值。以下是數(shù)碼管顯示程序的編碼:voiddisplay()//四位led顯示程序{PORTD=0x8f;//位選PORTC=dtab[qian];//段選delay(100);PORTD=0x4fPORTC=dtab[bai];delay(100);PORTD=0x2f;PORTC=dtab[shi];delay(100);PORTD=0x1f;PORTC=dtab[ge];delay(100);}數(shù)碼管顯示分為動態(tài)和靜態(tài)2種方式,動態(tài)顯示接線比較少[10];相反,靜態(tài)顯示程序簡單,卻占用I/O口多。本文采用的是動態(tài)顯示。4.3.3數(shù)碼管位的讀取根據(jù)顯示的需要,我們要將測到的數(shù)值顯示在數(shù)碼管上,這就需要我們通過編程計算,編寫必要的程序來實現(xiàn)各個位的讀取、計算和輸出。qian=temp/1000;//對一千整除,得到的整數(shù)部分給千位輸出bai=temp%1000/100;//對一千整除的余數(shù)在對一百整除,得到的整數(shù)部分給百位輸出shi=temp%100/10;//對一百整除的余數(shù)在對十整除,得到的整數(shù)部分給十位ge=temp%10;//對十整除的余數(shù)給個位4.4端口設(shè)置程序 在對電容充電之前,我們要先對電容充分的放電,這樣就保證了我們計算充電時間的準確性,并且能提高我們測量溫度值的精確度,等充分放電結(jié)束后,將對電容進行充電[11];本文的方案是將單片機的PB口的第一位與第五位管腳分別和熱敏電阻和一標準電阻相連接,并將兩個端口同時置為高電平,這是為了保證能把PB端口方向設(shè)置為輸出。然后將兩個端口的輸出值都設(shè)為低電平,這是為了讓電容兩端的電壓都為低,保證的充分的放電。并且要有相對較長時間的放電延時,這樣也是為了保證電容的充分放電。YNYN開始對電容進行充分放電判斷電平放電繼續(xù)結(jié)束圖4-3 判斷端口放電 ATmega16單片機的所有I/O端口均具有讀—修改—寫特性,為此,I/O端口及其他I/O寄存器的位操作應(yīng)使用C語言運算符“|=”和“&=”實現(xiàn)。例如: DDRB|=(1<<0);//第一位設(shè)為高電平,方向輸出方向 DDRB|=(1<<4);//第五位設(shè)為高電平,方向輸出方向 PORTB&=0x00;//輸出為低電平 放電結(jié)束后,端口要進行一個輸入一個輸出的設(shè)置,與熱敏電阻連接的端口設(shè)為輸出,與標準電阻連接的端口設(shè)為輸入[12];而前面已經(jīng)提到,兩個端口都設(shè)置為了輸出,所以這里只要把需要輸入的端口方向改為低電平,輸入模式,并將輸出端口的輸出電平改為高電平,這樣就可以實現(xiàn)充電的過程。在充電的過程啟動的時候,主函數(shù)里的計時功能就已經(jīng)開啟了。開始開始將PORTB端口第五位設(shè)為輸入將PORTB端口第一位輸出低電平結(jié)束圖4-4 充電前端口的設(shè)置voidcharge()//充電端口設(shè)置程序{ DDRB&=~(1<<4);//第五位設(shè)為輸入 PORTB|=(1<<0);//第一位輸出低電平}對于ATmega16單片機的I/O端口設(shè)置的功能配置如下所示:表4-2 I/O端口的功能配置DDRxnPORTxnI/O方向上拉電阻端口(PINxn)特性00輸出關(guān)閉高阻狀態(tài)01輸入打開上拉電阻驅(qū)動的高電平,可從外部拉低10輸出關(guān)閉推挽輸出011輸出關(guān)閉推挽輸出1DDRx為端口方向配置寄存器,當(dāng)DDRx的某位為1時,對應(yīng)引腳為輸出使用,輸出的高低取決于PORTx寄存器中的相應(yīng)位。要注意,不管輸出1還是0,均屬于推挽輸出,有較大的驅(qū)動能力,此時不可直接連接到電源或地上。PINx并不是一個實際的寄存器,它是I/O引腳在內(nèi)部總線上的地址,所以PINx是只讀的,用于讀取外部引腳上的實際電平。而PORTx是端口輸出數(shù)據(jù)鎖存器,不能將讀入的PORTx值當(dāng)做實際端口上的邏輯電平。4.5溫度信號采集程序?qū)τ陔娙莩浞烹姕y溫的精度,不但與標準電阻和電容的大小有關(guān),還與熱敏電阻的當(dāng)前溫度下的阻值,電容的充放電時間的檢測,以及熱敏電阻阻值對應(yīng)溫度的計算有關(guān),因此要根據(jù)要測溫度范圍的大小,合理的選取標準電阻和電容的大小,以滿足電容在放電時有一個較長的充電時間,以利于單片機對充電時間的準確檢測,在對電容放時是不需要測量的,只要盡量將放電時間延長一些,保證電容的充分放電,這個才能使檢測的電容充電時間更精確,但是要注意,計時的時間長時,在以后的運算中會相當(dāng)麻煩,所以在保證精度的前提下,盡量縮小計時的時間大小,可以有效的控制程序復(fù)雜程度和測量時間的精確度。開始開始調(diào)用電容充電子程序檢測電容通過標準電阻放電時間T1調(diào)用電容充電子程序檢測電容通過熱敏電阻放電時間T根據(jù)T1/R1=T/RT計算熱敏電阻阻值查表求當(dāng)前溫度值結(jié)束圖4-5 溫度的采集首先對測得的時間進行一個初步的比較,將計時的變量設(shè)為time溫度的變量設(shè)為temp,當(dāng)變量time>581時,顯示的溫度值temp=0,當(dāng)變量time<65的時候,顯示的溫度值temp=59。if(time>581) { temp=0; } elseif(time<65) { temp=59; }在進行細化的時間比較程序,如果時間在581>time>65之間的時候,我們建立一個表。這個表劃分出12個區(qū)間。VolatileconstunsignedshortTab[13]={581,470,381,311,257,212,177,148,124,104,89,76,65};溫度值每隔五度進行一個區(qū)間定位,然后將獲得的時間與當(dāng)前的十二個區(qū)間進行循環(huán)比較,確定當(dāng)前的溫度值。子函數(shù)的程序代碼如下:voidres(){ inti; if(time>581) { temp=0; } elseif(time<65) { temp=59; } else { //查表 for(i=1;i<13;i++) { if(time>Tab[i]) { break; } temp=((Tab[i-1]-time)*5)/(Tab[i-1]-Tab[i]); temp+=(i-1)*5; } if(temp>59) { temp=59; } }}
5實物的調(diào)試與誤差分析5.1硬件的調(diào)試由于本次設(shè)計使用的是萬能電路實驗板,上面沒有布線,并且所需元器件比較多,所以焊接起來相對比較麻煩,因此焊接時一定要小心,這是為了避免虛焊和短路。為了安全起見,每焊完一個元器件或者一條線路都要用萬用表檢查焊接是否成功。實物焊好之后,首先要進行硬件的調(diào)試。電路的調(diào)試過程是檢驗、修正設(shè)計方案的實踐和檢驗的過程,也是需要應(yīng)用理論知識來解決調(diào)試中各類問題的關(guān)鍵環(huán)節(jié),這是電路設(shè)計者必須掌握的一項基本技能。把電子元器件連接起來,并實現(xiàn)其特定功能的關(guān)鍵一步就是調(diào)試。調(diào)試方法有兩種:分塊調(diào)試法和整體調(diào)試法。具體的調(diào)試步驟如下:(1)電前檢查。任何組裝好的電子電路,在通電調(diào)試之前,必須認真檢查電路時候連接有誤。檢查的方法是對照電路原理圖,按一定的順序逐級對應(yīng)檢查。特別是注意電源是否接反,電源與地是否有短接之處,集成電路和晶體管的引腳是否有接錯,輕輕撥一撥元器件,觀察焊點是否牢固等。(2)通電檢查。先調(diào)試好所需電源電壓數(shù)值,然后再給電路接通電源。電源一經(jīng)接通,先要觀察是否有異?,F(xiàn)象,如冒煙、異常氣味、放電的聲光、元器件發(fā)燙等。如果有,應(yīng)立即關(guān)斷電源,待故障排除后,方可重新接通電源。然后,測量每個集成塊的電源引腳電壓是否正常,以確信集成電路是否已通電工作。(3)分塊調(diào)試。分塊調(diào)試時應(yīng)明確本部分的調(diào)試要求,按調(diào)試要求測試性能指示和觀察波形。調(diào)試順序按信號的流向進行,這樣可以把前面調(diào)試過的輸出信號作為后一級的輸入信號,為最后的整機聯(lián)調(diào)創(chuàng)造條件。(4)整機聯(lián)調(diào)。整機聯(lián)調(diào)時應(yīng)觀察各單元電路連接后各級之間的信號關(guān)系,主要觀察動態(tài)結(jié)果,檢查電路的性能和參數(shù),分析測量的數(shù)據(jù)和波形是否符合設(shè)計要求。實物經(jīng)過硬件調(diào)試后還要進行軟件部分的調(diào)試,即將程序?qū)懭氲絾纹瑱C存儲器中,實現(xiàn)設(shè)計功能。5.2溫度的誤差分析在硬件軟件整合聯(lián)調(diào)的過程當(dāng)中,剛開始的時候?qū)Τ潆姇r間的一個統(tǒng)計,起初充電的時間很短,由于本文所采用的是NTC熱敏電阻,如果在溫度很低的情況下充電時間很短,那么到高溫的時候就會誤差就會很大,也很難分辨出溫度值來,經(jīng)過仔細的排查程序,發(fā)現(xiàn)是延時比較長導(dǎo)致,最后改變延時長度,得到比較大的充電時間值,為后面的測量的準確度提供了保障。當(dāng)時間值確定下來之后,開始對溫度顯示的調(diào)試,剛開始的時候檢測溫度超出正常溫度值很高,為了減少不必要的延時干擾,我盡可能的使程序精簡化,這樣既降低了時間復(fù)雜度,也為準確的測溫奠定好了基礎(chǔ)。與標準溫度計的對比誤差分析:表5-1 溫度數(shù)據(jù)對比標準溫度計實測溫度值標準溫度計實測溫度值00303155353610104040151545452020505025245556此表格是通過在室溫的情況下就水的溫度值的測量比對結(jié)果,結(jié)果顯示本設(shè)計的誤差在1℃范圍之內(nèi)。
6體會與展望6.1總結(jié)與體會在工業(yè)生產(chǎn)和日常生活中,對溫度測量系統(tǒng)的要求,主要是保證溫度在一定的溫度范圍內(nèi)變化,要具有穩(wěn)定性好、不振蕩、對系統(tǒng)的快速性要求不高的特點。我在論文中簡單分析了單片機溫度控制系統(tǒng)設(shè)計過程及實現(xiàn)方法。本溫度測量系統(tǒng)的測溫范圍為0℃~60℃,溫度測量系統(tǒng)根據(jù)用戶設(shè)定的溫度范圍完成一定范圍的溫度測量。本次畢業(yè)論文中設(shè)計的溫度計主要由ATmega16和熱敏電阻來實現(xiàn)測量功能的。因此需要通過查閱資料來了解這些器件的基本結(jié)構(gòu),主要功能和注意事項等等。通過了解器件,在觸類旁通之下,能夠知道與所選器件相似的功能器件,比較彼此之間的優(yōu)缺點,來確定器件是否合適與本論文所要表述的設(shè)計要求,如何更好的利用這些器件的特點成為了本次設(shè)計的一個重要的方面。在確定了需要器材之后,如何利用使之最大限度的體現(xiàn)設(shè)計的功能,完成設(shè)計目標,這又是需要花大量時間去思考的。在設(shè)計完成之后,設(shè)計合理的控制程序和通過模擬仿真軟件的仿真,又再一次檢驗了設(shè)計的成果。最后在實物焊接完成后,并且調(diào)試成功之后,整個設(shè)計才算圓滿的完成。溫度計設(shè)計作為一種比較簡單的單片機類設(shè)計,只有突出其在簡單、方便、使用便捷方面,這個設(shè)計才有其真正的意義。整個設(shè)計從確定題目,到尋找相關(guān)資料,再到選擇合適的元器件,接著對電路原理圖的繪制,主要程序的編寫,模擬仿真的進行,實物的焊接,最終調(diào)試成功。一步步的走過來,一點點的進步,花了大量的時間和精力,而成果也是讓人可喜的。經(jīng)過三個月的方案論證、系統(tǒng)的硬件和軟件的設(shè)
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030全球法律顧問服務(wù)平臺行業(yè)調(diào)研及趨勢分析報告
- 2025-2030全球游戲插畫行業(yè)調(diào)研及趨勢分析報告
- 2025年全球及中國待命救助船行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025-2030全球船艉驅(qū)動推進系統(tǒng)行業(yè)調(diào)研及趨勢分析報告
- 2025年全球及中國NDT超聲波傳感器行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 醫(yī)療器械研發(fā)合同2024年生效版
- 2024年大數(shù)據(jù)分析平臺合作合同
- 城市智慧社區(qū)建設(shè)合同
- 簡單裝修合同
- 2025年揚聲器 項目可行性研究報告
- 2025年合資經(jīng)營印刷煙包盒行業(yè)深度研究分析報告
- 天津市五區(qū)縣重點校2024-2025學(xué)年高一上學(xué)期1月期末聯(lián)考試題 化學(xué) 含答案
- 吉林省吉林市普通中學(xué)2024-2025學(xué)年高三上學(xué)期二模試題 生物 含答案
- 2025年湖南省通信產(chǎn)業(yè)服務(wù)限公司春季校園招聘76人高頻重點提升(共500題)附帶答案詳解
- 《電影之創(chuàng)戰(zhàn)紀》課件
- 2024-2025學(xué)年人教版五年級(上)英語寒假作業(yè)(一)
- 開題報告-鑄牢中華民族共同體意識的學(xué)校教育研究
- 2025屆貴州省六盤水市第二中學(xué)高三適應(yīng)性調(diào)研考試數(shù)學(xué)試題含解析
- 浙江省五校鎮(zhèn)海中學(xué)2025屆高考考前模擬數(shù)學(xué)試題含解析
- 2024-2025學(xué)年度高三年級11月聯(lián)考試題及答案
- 公司2025年會暨員工團隊頒獎盛典攜手同行共創(chuàng)未來模板
評論
0/150
提交評論