基于PT100的溫度測試儀_第1頁
基于PT100的溫度測試儀_第2頁
基于PT100的溫度測試儀_第3頁
基于PT100的溫度測試儀_第4頁
基于PT100的溫度測試儀_第5頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

文檔從互聯(lián)網(wǎng)中收集,已重新修正排版,文檔從互聯(lián)網(wǎng)中收集,已重新修正排版,word格式支持編輯,如有幫助歡迎下載支持。10word10word格式支持編輯,如有幫助歡迎下載支持。部分項目得分設計報告設計方案與論證5分理論分析與軟件說明5分主要電路說明、測試方法6分數(shù)據(jù)、結果分析4分合計20分基本部分完成1項:25分完成2項:25分完成3項:10分合計60分發(fā)揮部分其他擴展功能20分第一章概述第二章設計方案與論證單片機器、模擬本設計設計的溫度測量系統(tǒng)是把熱電阻信號通過傳感器檢測轉變?yōu)殡妷盒盘?,?jīng)過信號采集電路轉換成A/D輸入的標準信號。之后A/D將模擬電壓信號變轉換成數(shù)字信號,然后送入單片機(MCU)進行處理和運算,單片機將處理的數(shù)據(jù)通過LED單片機器、模擬顯示模集成傳感器以及新興的方案一:采用模擬分立元件如電容、電感或晶體管等非線形元件,該方案設計電路簡單易懂,操作簡單,且價格便宜,但采用分立元件分散性大,不便于集成數(shù)字化,而且測量誤差大。方案二:采用溫度傳感器通過溫度傳感器采集溫度信號,經(jīng)信號放大器放大后,送到A/D轉換芯片,將模擬量轉化為數(shù)字量,傳送給單片機控制系統(tǒng),最后經(jīng)過LED顯示溫度。熱電阻也是最常用的一種溫度傳感器。它的主要特點是測量精度高,性能穩(wěn)定,使用方便,測量范圍為-200℃~850℃,完全滿足要求,考慮到鉑電阻的測量精確度是最高的,所以我們設計最終選擇箱電阻Pt100作為傳感器。該方案采用熱電阻Pt100做為溫度傳感器、OP07作為信號放大器,對于溫度信號的采集具有大范圍、高精度的特點。相對與方案一,在功能、性能、可操作性等方面都有較大的提升。在這里我選用方案二完成本次設計。放大器選擇Op07是一種低噪聲,非斬波穩(wěn)零的雙極性運算放大器。由于OP07具有非常低的輸入失調電壓(對于OP07A最大為25口V),所以OP07在很多應用場合不需要額外的調零措施。OP07同時具有輸入偏置電流低(OP07A為±2nA)和開環(huán)增益高(對于OP07A為300V/mV)的特點,這種低失調、高開環(huán)增益的特性使得OP07特別適用于高增益的測量設備和放大傳感器的微弱信號等方面。寬的輸入電壓范圍(最少±13V)與高達110dB(OP07A)的共模抑制比和高輸入阻抗的結合,在同相電路阻態(tài)中提供了很高的精度,即使在很高的閉環(huán)增益下,也能保持極好的線性和增益精度。失調和增益對時間或溫度變化的穩(wěn)定性也是極好的。不加外調零措施的OP07的精度和穩(wěn)定性,即使在高增益下也能使OP07成為一種新的儀器用和軍用的工業(yè)標準。OP07A和OP07適用于在-55℃到+125℃的整個軍用范圍內。熱電阻(PT100)接法熱電阻是把溫度變化轉換為電阻值變化的一次元件,通常需要把電阻信號通過引線傳遞到計算機控制裝置或者其它一次儀表上。工業(yè)用熱電阻安裝在生產(chǎn)現(xiàn)場,與控制室之間存在一定的距離,因此熱電阻的引線對測量結果會有較大的影響。目前熱電阻的引線主要有三種方式:1、二線制:在熱電阻的兩端各連接一根導線來引出電阻信號的方式叫二線制:這種引線方法很簡單,但由于連接導線必然存在引線電阻r,r大小與導線的材質和長度的因素有關,因此這種引線方式只適用于測量精度較低的場合。2、三線制:在熱電阻的根部的一端連接一根引線,另一端連接兩根引線的方式稱為三線制,這種方式通常與電橋配套使用,可以較好的消除引線電阻的影響,是工業(yè)過程控制中的最常用的引線電阻。3、四線制:在熱電阻的根部兩端各連接兩根導線的方式稱為四線制,其中兩根引線為熱電阻提供恒定電流I,把R轉換成電壓信號U,再通過另兩根引線把U引至二次儀表??梢娺@種引線方式可完全消除引線的電阻影響,主要用于高精度的溫度檢測。在本設計中熱電阻采用三線制接法。采用三線制是為了消除連接導線電阻引起的測量誤差。這是因為測量熱電阻的電路一般是不平衡電橋。熱電阻作為電橋的一個橋臂電阻,其連接導線(從熱電阻到中控室)也成為橋臂電阻的一部分,這一部分電阻是未知的且隨環(huán)境溫度變化,造成測量誤差。采用三線制,將導線一根接到電橋的電源端,其余兩根分別接到熱電阻所在的橋臂及與其相鄰的橋臂上,這樣消除了導線線路電阻帶來的測量誤差。第三章理論分析與主要電路說明電源模塊電子技術課程中所介紹的直流穩(wěn)壓電源一般是線性穩(wěn)壓電源,它的特點是起電壓調整功能的器件始終工作在線性放大區(qū),由50Hz工頻變壓器、整流器、濾波器和串聯(lián)調整穩(wěn)壓器組成。它的基本工作原理為:工頻交流電源經(jīng)過變壓器降壓、整流、濾波、再次濾波后成為一穩(wěn)定的直流電。圖中其余部分是起電壓調節(jié),實現(xiàn)穩(wěn)壓作用的控制部分。電源接上負載后,通過采樣電路獲得輸出電壓,將此輸出電壓與基準電壓進行比較。如果輸出電壓小于基準電壓,則將誤差值經(jīng)過放大電路放大后送入調節(jié)器的輸入端,通過調節(jié)器調節(jié)使輸出電壓增加,直到與基準值相等;如果輸出電壓大于基準電壓,則通過調節(jié)器使輸出減小。這種穩(wěn)壓電源具有優(yōu)良的紋波及動態(tài)響應特性。本設計采用固定集成輸出集成穩(wěn)壓電路,它主要由變壓器(雙6V,5W)、集成整流橋、集成穩(wěn)壓器LM7805(+5V)和LM7905(-5V)、極性電容(100uF和1000uF)構成。如圖5-1所示。圖5-1穩(wěn)壓電源1)二極管(4個):組成全波整流橋電路,正半周期時右上和左下兩個二極管導通,負半周期左上和右下兩個二極管導通,使電壓信號都位于3t軸上方;圖5-2電壓輸入波形 圖5-3整流之后波形(i和u)2)極性電容(4個):濾波作用,當電壓信號逐漸增大時候向電容里充電,當電容里電荷達到一定時,停止充電,當電壓信號低于電容存儲的電荷的電壓時,電容開始放電,放到一定程度又開始充電,周而復始,形成周期;圖5-3電容濾波電路3)7805/7905:穩(wěn)壓塊,7805穩(wěn)壓輸出+5V電壓,7905穩(wěn)壓輸出-5V電壓。采集模塊熱電阻的阻值隨溫度的變化而變化,所以我們可以把熱電阻的阻值變化轉換成相應的電壓信號,然后經(jīng)過后續(xù)的放大電路將采集到的電壓放大到一定倍數(shù),被A/D采集并輸入到單片機內部。由于在實驗室中恒流發(fā)生電路比較簡單常用,而且電壓信號采集簡單、測量方便,所以本設計采用恒流源測電壓方法實現(xiàn)熱電阻和電壓信號的對應關系。恒流源電路可以產(chǎn)生1mA恒定電流,把熱電阻Rt的阻值轉換為電壓信號Uo(Uo=Rt*1mA),如圖3-1所示。電壓放大電路主要是把電壓信號放大一定的倍數(shù),能被A/D比較精確地采集到。圖3-1溫度采集及信號處理電路第一部分恒流源發(fā)生電路如圖3-1(a)所示:圖3-1(a)恒流源發(fā)生電路1)LM336-2.5穩(wěn)壓管:穩(wěn)壓作用,將放大器3腳電壓鉗制到2.5V左右;2)R12(2.4K)電阻:根據(jù)“虛斷”原理,U3=U2,I=2.5V/2.4K=1mA;9012復合三極管:又叫達林頓管,將B系數(shù)放大,即P=供,使達林頓管集電極和發(fā)射極電流相等,即Ic=Plb=I,從而大大減小Ib的值;R14(10K)電阻:保護前端放大器作用,防止1b過大,進入運放6腳;第二部分三線制處理及輸出放大如圖3-2(b)所示;圖3-13)三線制處理及輸出放大電路1)200Q電位器代替Pt100,實驗時將電位器調整至100Q阻值;2)R17、R20、R23:理論上代替三根傳輸導線,令R17后面的電壓為U1,R20后面的電壓為U2,R17=R20=R23=R';所以U1=I*(R17+Rt+R23)=I*Rt+2*R'(U2=U3=TOC\o"1-5"\h\zI*R' ……(根據(jù)方程(2*( U1-2*U=I*Rt ……(從而推出放大器輸入端信號與導線電阻無關(三線制最終目的)3)后端運放:根據(jù)“虛短”原理可以得出U+=U-=U1*R13/(R16+R13)=U1/3 ……((Uo/(R19+R24)-U-)/R22=(U--U2)/R21 ……(經(jīng)(Uo=11(U1-2*U2) ……(從而實現(xiàn)信號電壓放大十倍的作用A/D模數(shù)轉換模塊ICL7135功能介紹ICL7135是一種四位半的雙積分A/D轉換器,可以轉換出±20000個數(shù)字量選通控BCD碼輸出,與單片機接口十分方便。它具有精度高(相當于14位A/D轉換),價格低的優(yōu)點。其轉換速度與時鐘頻率相關,每個轉換周期均有:自校準(調零),正向積分(被測模擬電壓積分),反向積分(基準電壓積分)和過零檢測四個階段組成,其中自校準時間為10001個脈沖,正向積分時間為10001個脈沖,反向積分直至電壓到零為止(最大不超過20001個脈沖)。故設計者可以采用從正向積分開始計數(shù)脈沖個數(shù),到反向積分為零時停止計數(shù)。將計數(shù)的脈沖個數(shù)減10000,即得到對應的模擬量。具體電路如圖2.3所示。圖2.3A/D模數(shù)轉換電路圖2.4給出了ICL7135時序,由圖可見,當BUSY變高時開始正向積分,反向積分到零時BUSY變低,所以BUSY可以用于控制計數(shù)器的啟動/停止。圖2.4ICL7135時序圖計數(shù)的時鐘脈沖是由單片機的ALE引腳經(jīng)過74HC393分頻后得到的。在平時,單片機ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖,若外部時鐘為12MHZ,則ALE端輸出的時鐘頻率為2MHZ。由于ICL7135芯片在時鐘脈沖為125KHz時對50HZ工頻干擾有較大抑制能力,此時轉換速度為3次/s,故將ALE端的時鐘脈沖經(jīng)過74HC393芯片16分頻后得到所需的125KHZ。74HC393芯片如圖2.5所示。圖2.574HC393芯片及電路圖ICL7135引腳圖ICL7135為DIP28封裝,芯片引腳排列如圖2.6所示。圖2.6ICL7135芯片引腳圖引腳含義及功能:(1)與供電及電源相關的引腳(共7腳):負電源引入端,典型值-5V,極限值-9V;:正電源引入端,典型值+5V,極限值+6V;ND:數(shù)字地,ICL7135正負電源的低電平基準;F:參考電壓輸入REF的地為AGND引腳,典型值1V,輸出數(shù)字量=10000X(VIN/VREF);:模擬地,典型應用中,與DGND(數(shù)字地)”一點接地”;.INHI:模擬輸入正,此設計中與恒流源連接;.INLO:模擬輸入負,當模擬信號輸入為單端對地時,直接與AC相連。與控制和狀態(tài)相關的引腳(共12腳).CLKIN:時鐘信號輸入,當T=80ms時,fcp=125KHz,對50HZ工頻干擾有較大抑制能力,此時轉換速度為3次/s,極限值fcp=1MHZ時,轉換速度為25次/s;.REFC+:外接參考電容正,典型值IhF;.REFC-:外接參考電容負;.BUFFO:緩沖放大器輸出端,典型外接積分電阻;.INTO:積分器輸出端,典型外接積分電容;.AZIN:自校零端;.LOW: 欠量程信號輸出端,當輸入信號小于量程范圍的10%時,該端輸出高電平;.HIGH:過量程信號輸出端,當輸入信號超過計數(shù)范圍(20001)時,該端輸出高電平;.STOR:數(shù)據(jù)輸出選通信號(負脈沖),寬度為時鐘脈沖寬度的一半,每次A/D轉換結束時,該端輸出5個負脈沖,分別選通由高到低的BCD碼數(shù)據(jù)(5位),該端用于將轉換結果打到并行I/O接口;.R/H:自動轉換/停頓控制輸入,當輸入高電平時;每隔40002個時鐘脈沖自動啟動下一次轉換;當輸入為低電平時,轉換結束后需輸入一個大于300ns的正脈沖,才能啟動下一次轉換;.POL:極性信號輸出,高電平表示極性為正;.BUSY:忙信號輸出,高電平有效,正向積分開始時自動變高,反向積分結束時自動變低。與選通和數(shù)據(jù)輸出相關的引腳(共9腳).B8?B1:BCD碼輸出,B8為高位,對應BCD碼;.D5:萬位選通;.D4?D1:千,百,十,個位選通。SST89E51單片機簡介SST89E51是一種帶4K字節(jié)FLASH存儲器(FPEROM-FlashProgrammableandErasableReadOnlyMemory)的低電壓、高性能CMOS8位微處理器,俗稱單片機。AT89C2051是一種帶2K字節(jié)閃存可編程可擦除只讀存儲器的單片機。單片機的可擦除只讀存儲器可以反復擦除1000次。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的SST89E51是一種高效微控制器,AT89C2051是它的一種精簡版本。AT89C單片機為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。外形及引腳排列如圖2.9所示。圖2.9SST89E51引腳及連線圖.P0口:雙向8位三態(tài)I/O口,為地址總線及數(shù)據(jù)總線分時復用口,可驅動8個LS型TTL負載。.P1口:8位準雙向I/O口,可驅動4個LS型TTL負載。.P2口:8位準雙向I/O口,與地址總線復用,可驅動4個LS型TTL負載。.P3口:8位準雙向I/O口,雙功能復用口,可驅動4個LS型TTL負載。.RST/VPP:RST是復位信號輸入端,高電平有效。VPP為本引腳的第二功能,即備用電源輸入端。.ALE/PROG:ALE輸出為地址鎖存允許信號。PROG為本引腳的第二功能。.PSEN:程序存儲器允許輸出控制端。.EA/VPP:EA功能為內外程序存儲器選擇控制端。此設計中,采用定時計數(shù)器0(INTO)外部脈沖計數(shù)方法,通過公式(2-6)獲得:VinC二——*10000Vref(2-6)其中,Vin為輸入電壓,Vref為參考電壓,C為計數(shù)值。由上公式可求出Vin,就可以求出R,根據(jù)R和溫度T的關系就可以求出當前溫度值。這就是編程中A/D轉換函數(shù)的算法和思想。數(shù)碼管顯示電路本設計顯示電路是由8段共陽極數(shù)碼管(4個),三極管(4個9012),電阻(4個1K,8個200Q),電源(+5V)幾部分構成。具體電路如圖3-2所示:圖3-2數(shù)碼管顯示電路電路分析:1)1K電阻:分別接到單片機P2.3、P2.4、P2.5、P2.6口上,并對PNP三極管起到限流保護作用;2)三極管:4個三極管均為PNP型號,基極接I/O口,發(fā)射極接電源,數(shù)碼管COM口接在三極管集電極上,當I/O給一個低電平,三極管基極電壓為低,發(fā)射極電壓為高,使三極管導通,為數(shù)碼管提供電壓;3)200Q電阻:接到數(shù)碼管的8個段位上,起到限流保護作用;4)數(shù)碼管:當P0.x信號為低時,P2.x為低,對應數(shù)碼管對應的段位呈現(xiàn)亮的狀態(tài),反之則不亮。工作原理:數(shù)碼管采用動態(tài)掃描工作方式,動態(tài)顯示是將所有數(shù)碼管的8個顯示筆劃"a,b,c,d,e,f,g,h"的同名端連在一起,另外為每個數(shù)碼管的公共極COM增加位選通控制電路,位選通由各自獨立的I/O線控制,本設計分別接到P2.3、P2.4、P2.5、P2.6,當單片機輸出字形碼時,所有數(shù)碼管都接收到相同的字形碼,但究竟是那個數(shù)碼管會顯示出字形,取決于單片機對位選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位就顯示出字形,沒有選通的數(shù)碼管就不會亮。通過分時輪流控制各個數(shù)碼管的的COM端,就使各個數(shù)碼管輪流受控顯示,這就是動態(tài)驅動。在輪流顯示過程中,每位數(shù)碼管的點亮時間為1?2ms,由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應,盡管實際上各位數(shù)碼管并非同時點亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會有閃爍感,動態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的I/O端口,而且功耗更低。串口電路及MAX232芯片簡介MAX232是美信公司專門為電腦的RS-232標準串口設計的電源電平轉換芯片,使用+5V單電源供電,功能是產(chǎn)生+12V和-12V兩個電源,提供給RS-232串口電平的需要。串口電路圖如圖2.8所示。圖2.8串口電路MAX232芯片引腳介紹:第一部分是電荷泵電路。由1、2、3、4、5、6腳和4只電容構成。功能是產(chǎn)生+12v和-12v兩個電源,提供給RS-232串口電平的需要。第二部分是數(shù)據(jù)轉換通道。由7、8、9、10、11、12、13、14腳構成兩個數(shù)據(jù)通道。其中13腳(R1IN)、12腳(R1OUT)、11腳(T1IN)、14腳(T1OUT)為第一數(shù)據(jù)通道。8腳(R2IN)、9腳(R2OUT)、10腳(T2IN)、7腳(T2OUT)為第二數(shù)據(jù)通道。TTL/CMOS數(shù)據(jù)從T1IN、T2IN輸入轉換成RS-232數(shù)據(jù)從T1OUT、T2OUT送到電腦DB9插頭;DB9插頭的RS-232數(shù)據(jù)從R1IN、R2IN輸入轉換成TTL/CMOS數(shù)據(jù)后從R1OUT、R2OUT輸出。第三部分是供電。15腳GND、16腳VCC(+5v)。第四章軟件說明、測試方法本章主要介紹編程語言C語言和編程工具Keil3軟件,以及本系統(tǒng)的程序設計和在程序設計時所遇到的問題及解決辦法。編程語言介紹C語言是一種面向過程的計算機程序設計語言,它是目前眾多計算機語言中舉世公認的優(yōu)秀的結構程序設計語言之一。C語言主要有以下特點:1、C是中級語言。它把高級語言的基本結構和語句與低級語言的實用性結合起來。C語言可以像匯編語言一樣對位、字節(jié)和地址進行操作,而這三者是計算機最基本的工作單元。2、C是結構式語言。結構式語言的顯著特點是代碼及數(shù)據(jù)的分隔化,即程序的各個部分除了必要的信息交流外彼此獨立。這種結構化方式可使程序層次清晰,便于使用、維護以及調試。3、C語言功能齊全。具有各種各樣的數(shù)據(jù)類型,并引入了指針概念,可使程序效率更高。另外C語言也具有強大的圖形功能,支持多種顯示器和驅動器。4、C語言適用范圍大。適合于多種操作系統(tǒng),如Windows、DOS、UNIX等等;也適用于多種機型。基于C語言的這些特點,我們選用C語言來作為編程語言。編程軟件Keil簡介KeilC51是美國KeilSoftware公司出品的51系列兼容單片機C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結構性、可讀性、可維護性上有明顯的優(yōu)勢,因而易學易用。KeilC51軟件提供豐富的庫函數(shù)和功能強大的集成開發(fā)調試工具,全Windows界面。另外重要的一點,只要看一下編譯后生成的匯編代碼,就能體會到KeilC51生成的目標代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,

容易理解。在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。下面詳細介紹KeilC51開發(fā)系統(tǒng)各部分功能和使用。我們用開發(fā)軟件KeiluVision3來編寫、修改所需程序和下載程序到單片機運行。其下介紹KeiluVision3的使用步驟。.雙擊也nuVision3,得到主畫面,如圖3.1所示:圖3.1KeiluVision3主畫面.新建工程界面Project--newproject,如圖3.2所示:圖3.2KeiluVision3的新建界面3.單片機的選擇,如圖3.3所示:圖3.3單片機的選擇界面如圖所示能找到本次設計所需主要芯片SST89E51。4.C文件的建立與添加,如圖3.4所示:圖3.4添加C文件在添加C文件之后,就可以在里面編寫自己的程序了,在編寫完后編譯,如果沒有錯誤,就可以下載到芯片當中進行調試并得到最終可用程序。程序設計流程圖本溫度測量系統(tǒng)的程序設計流程圖如圖3.5所示。圖3.5程序流程圖始用插值法計算翻始化在科學和工程問題上可以通過租入采血實始化方法或得若干離散的數(shù)據(jù),根據(jù)這些數(shù)據(jù),我們往往希望得到一個連續(xù)的函數(shù)((也就是曲線)或者更加密集的離散方程與已知數(shù)據(jù)相吻合。這個過程叫擬合。插值是曲線必須通過已知點的擬合,是離散函數(shù)I擬合,是離散函數(shù)I估算出函數(shù)在其它點的近似值。由于PT100與溫度近似呈線性關系,故采用線性插值法。在本次程據(jù)AD值算出PT10每間隔插值法。在本次程據(jù)AD值算出PT10每間隔5Q測一個序設計中運用了兩次據(jù)電插值算出溫度終的溫度值,第一次根0的阻值,之前先用標準電阻來標定AD值,即自50。到220QAD值,制成表格,次根據(jù)阻值算出對應的溫度值,在阻值與溫再由插值法顯計算出PTpOO的實際值。第二度的表示中用插值法計算出當時的溫度值。*度值。延時6.4關鍵程序voidzhuanhuan(){Vinad=2.2*(Dat_pingjun/4096); //電壓轉換V_Pt=Vinad/11.8;R=(int)(100000*V_Pt); //轉換電阻T=T_pingjun;T_ZZ[Z_N]=T;Z_N++;if(Z_N==16){Z_N=0;zhongzhi();}}我個人認為該程序模塊為整個測溫系統(tǒng)程序的靈魂,對電壓,電阻,溫度三者之間的轉換起到銜接作用,Dat_pingjun承接A/D采集的數(shù)據(jù),根據(jù)0V?0,2.2V?4096,所以A/D輸入電壓就是第一條語句的對應關系,為了使數(shù)據(jù)穩(wěn)定,在這里對A/D采集的數(shù)據(jù)進行了滑動取平均值,由于Pt100信號電壓比較微弱,不利于采集,所以后級放大器將V_Pt差分放大約11倍多,所以就有了第二條語句的關系,根據(jù)電阻-溫度的分度表將電阻放大100倍,便于插值運算,然后對插值計算所得結果再次進行滑動取平均值,使溫度數(shù)據(jù)更加穩(wěn)定,但是經(jīng)過測試之后,到了這一步溫度顯示還是不夠穩(wěn)定,所以我又采取對滑動之后溫度平均值放在長度為16的數(shù)組之中,對這些數(shù)據(jù)進行取中值,最后送顯示,調試結果很穩(wěn)定,誤差能保持在允許范圍之內。測試方法用變阻箱代替PT100模擬溫度變化時阻值的變化。程序運行時,在一定范圍內扭動變阻箱,LED將顯示此阻值對應的溫度值??芍獙凳欠裾_。第五章數(shù)據(jù)結果分析3.8數(shù)據(jù)測試及誤差分析AD碼-阻值分度表如表3-8所示,阻值-溫度分度值見附錄(二)。根據(jù)插值法,可以由測得數(shù)據(jù)獲得液晶顯示獲得AD碼與溫度的近似值。誤差主要是由軟件編寫不成熟和電阻箱阻值不穩(wěn)定造成的。但精度基本上可以達到±0.1℃。表3-8AD碼-阻值分度表R(Q)556065707580859095AD465851245515698063756836723076858084R(Q)100105110115120125130135140AD85168875939597701025310630111081148611967R(Q)145150155160165170175180185AD123501282313210136571405014530149251538715789R(Q)190195200205210215220225230AD1624216615170361738718857182301871519113196276.5.3軟件調試結果部分電阻-溫度分度表,由于電阻存在誤差,所以測出的溫度相對誤差不是很準確。表6-1數(shù)據(jù)統(tǒng)計表分度表阻值(Q)實測阻值(Q)分度表溫度(℃)實測溫度(℃)相對誤差100.00100.00000110.12110.012625.8-26.1-0.2-+0.1120.16120.105252.1-52.4+0.1-+0.4130.13130.187877.7-78.1-0.3-+0.1140.02139.96104103.6-103.8-0.4--0.2149.82149.79130129.7-129.9-0.3--0.1159.93159.88157156.8-157.1-0.2-+0.1169.57169.45183182.5-182.8-0.5--0.2179.14179.11209208.6-208.9-0.4--0.1184.63184.6224223.7-0.3附錄(I)程序#include<c8051f410.h>#defineucharunsignedchar#defineuintunsignedintucharseg_code[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x7f};//段碼ucharbit_sel[4]={0xbf,0xdf,0xef,0xf7};//位碼ucharLEDn=0;ucharbuffer[4];ucharbtpoint=0X7F;bitT0_flag=0,AD_flag=0;doubleaver,get_ad[15],huadong[16],T_huadong[16],T_ZZ[16];doubleVinad,V_Pt,Dat_pingjun,T_pingjun,T_last;intflag=0,NUM,Z_N=0;/**************************pt1OO有關參數(shù)定義*L**L**L**L**L**L**L**L**L**L**L**L*//uintR;//電阻doubleT;//溫度intcodept[36][2]{ {6430,-90},{6833,-80},{7233,-70},{7633,-60},{8031,-50},{8427,-40},{8822,-30},{9216,-20},{9609,-10},{10000,0},{10390,10},{10779,20},{11167,30},{11554,40},{11940,50},{12324,60},{12708,70},{13090,80},{13471,90},{13851,100},{14229,110},{14607,120},{14983,130},{15358,140},{15733,150},{16105,160},{16477,170},{16848,180},{17217,190},{17586,200},{17953,210},{18319,220},{18684,230},{19047,240},{19410,250},{19771,260}};/************************配置cpuio口*L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L*//voidIO_Init(){pCA0MD=0x00;//禁止看門狗P0MDOUT=0x00;//P0口為輸出方式,設置為弱上拉(0為弱上拉,1為推挽)P2MDIN=0xfb;//P2.2為模擬輸入方式P2MDOUT=0x78;//P2口為輸出方式,設置為弱上拉P1SKIP=0xff;〃交叉開關跳過P1.1XBR0 =0x00; //不連任何端口引腳XBR1 =0x40; //輸出方式為弱上拉,交叉開關被使能}/***************************A/D初始化voidAD_Init(){ADC0MX=0x12; //A/D轉化選擇輸入為p1.1口*A/DC0通道選擇寄存器ADC0CF=0xf8;ADC0CN=0x80;ADC0TK=0xff;/******************************系統(tǒng)時鐘初始化*L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L*//voidSYSCLK(){OSCICN=0乂87;//內部振蕩器不分頻}/*****************************電壓基準選擇*L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L*//voidMUX(){REF0CN=0乂13;//內部基準電壓為2.2丫,內部基準緩沖器被使能,內部電壓基準被驅動到VREF引腳,內部偏壓發(fā)生器總是被使能。/**********************************顯示函數(shù)*L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L*//voiddisplay(){if(T0_flag==1){T0_flag=0;P2=0xff;if(LEDn==2){P0=seg_code[buffer[LEDn]]&0x7f;}else{P0=seg_code[buffer[LEDn]];}P2=bit_sel[LEDn];LEDn++;if(LEDn==4){LEDn=0;/************************************定時器/~\*L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L*/I* /voidT0_Init(){TMOD=0x01;TCON=0x10;TH0=255;TL0=255;ET0=1;}/********************************定時器0中斷用來顯示*L**L**L**L**L**L**L**L**L**L**L**L**L**L**L*//voidTimer0()interrupt1TH0=0xe0;TL0=0;T0_flag=1;/ *L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L*/*L**L**L**L**L**L**L**L**L*//uintADC0(){ucharx;uinty;ADC0MX=0x09;ADC0CN|=0x10;x=ADC0CN&0x20;while(x==0){x=ADC0CN&0x20;}ADC0CN=ADC0CN&0xdf;y=256*ADC0H+ADC0L-30;returny;/***********************************求平均值*L**L**L**L**L**L**L**L**L**L**L**L**L**L**L*//voidhuadongpingjun(){huadong[15]=huadong[14];huadong[14]=huadong[13];huadong[13]=huadong[12];huadong[12]=huadong[11];huadong[11]=huadong[10];huadong[10]=huadong[9];huadong[9]=huadong[8];huadong[8]=huadong[7];huadong[7]=huadong[6];huadong[6]=huadong[5];huadong[5]=huadong[4];huadong[4]=huadong[3];huadong[3]=huadong[2];huadong[2]=huadong[1];huadong[1]=huadong[0];huadong[0]=aver;Dat_pingjun=(huadong[15]+huadong[14]+huadong[13]+huadong[12]+huadong[11]+huadong[10]+huadong[9]+huadong[8]+huadong[7]+huadong[6]+huadong[5]+huadong[4]+huadong[3]+huadong[2]+huadong[1]+huadong[0])/16;}voidAverage(){uintsum=0;inti;for(i=0;i<=15;i++){get_ad[i]=ADC0();sum=sum+get_ad[i];}aver=sum/16;/*********************************插值計算*L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L*//doublejisuan(doublex,doublex1,doublex2,doublex3,doubley1,doubley2,doubley3){doubleY;Y=((x-x2)*(x-x3)/((x1-x2)*(x1-x3)))*y1+((x-x1)*(x-x3)/((x2-x1)*(x2-x3)))*y2+((x-x1)*(x-x2)/((x3-x1)*(x3-x2)))*y3;returnY;}doublechazhi(intR){doubleT1;inti=0;while(R>Pt[i][0])i++;T1=jisuan(R,Pt[i-1][0],Pt[i][0],Pt[i+1][0],Pt[i-1][1],Pt[i][1],Pt[i+1][1]);returnT1;/********************

溫馨提示

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

評論

0/150

提交評論