畢業(yè)設(shè)計論文-基于LABVIEW串口的現(xiàn)場實時多通道溫度采集測量與實現(xiàn)_第1頁
畢業(yè)設(shè)計論文-基于LABVIEW串口的現(xiàn)場實時多通道溫度采集測量與實現(xiàn)_第2頁
畢業(yè)設(shè)計論文-基于LABVIEW串口的現(xiàn)場實時多通道溫度采集測量與實現(xiàn)_第3頁
畢業(yè)設(shè)計論文-基于LABVIEW串口的現(xiàn)場實時多通道溫度采集測量與實現(xiàn)_第4頁
畢業(yè)設(shè)計論文-基于LABVIEW串口的現(xiàn)場實時多通道溫度采集測量與實現(xiàn)_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

摘要溫度是機械加工中最基本的參數(shù)之一,在生產(chǎn)過程中常需要對溫度進行檢測和監(jiān)控。數(shù)控機床加工中,常需要對數(shù)控機床進行熱誤差計算并實現(xiàn)熱誤差補償,通過熱誤差補償技術(shù)來達到提高數(shù)控機床加工精度的目的。因此,研究一種基于串行通信的多路溫度采集和實時監(jiān)控系統(tǒng),對提高工業(yè)控制性能、提高數(shù)控機床的加工精度以及提高生產(chǎn)效率有著重要的意義。本文設(shè)計了一種數(shù)控機床多點溫度采集電路,可以同時對四路溫度進行實時的采集和顯示,通過設(shè)定溫度的報警范圍對其進行預(yù)警,并且利用串口實現(xiàn)單片機和計算機的通信,使用上位機完成數(shù)據(jù)處理和溫度的顯示等。溫度的測量精度低于0.5℃。設(shè)計中使用STC89C52作為下位機的主控芯片,并使用LCD1602液晶屏進行溫度的顯示,采用溫度傳感器TC1047進行溫度采集。將溫度傳感器輸出的電壓通過RC濾波電路以及運放OP07組成的放大電路,然后通過A/D轉(zhuǎn)換,最后將A/D轉(zhuǎn)換的數(shù)字量通過RS232串口發(fā)送到LABVIEW編寫的上位機進行數(shù)據(jù)處理和顯示。通過上位機設(shè)置溫度的采集速率以及設(shè)定報警溫度上限,將采集到的數(shù)據(jù)以TXT或XLS格式存儲到電腦中。硬件電路采用低成本的設(shè)計思想,軟件設(shè)計采用模塊化的設(shè)計方法,最后進行實物的制作和調(diào)試,驗證了設(shè)計的設(shè)計穩(wěn)定性和可行性,實現(xiàn)了設(shè)計的預(yù)期結(jié)果。關(guān)鍵詞:串口通信;LABVIEW;數(shù)控機床;熱誤差;多通道溫度采集AbstractTemperatureisoneofthemostbasicparametersinthemachiningandtemperaturedetectionandmonitoringiscommonlyfoundintheproduction.InCNCmachining,thermalerrorofCNCmachineneedtobecalculated,andthermalerrorcompensationisimplemented.ThroughthethermalerrorcompensationtechniquestoachievethepurposeoftheimprovementofprecisionCNCmachining.Sothestudyofamulti-channeltemperatureacquisitionandreal-timemonitoringsystembasedonserialcommunicationhasanimportantsignificancetoimprovetheperformanceofindustrialcontrolandproductionefficiency.Thisarticledesignamulti-channeltemperatureacquisitioncircuitofCNCmachine.Itcanacquirefourchanneltemperaturedataatthesametime,alsothedisplayofthesedataisreal-time.Themethodalsocansettemperaturealarmingrangeandifthedataexceedtherangethesystemwillwarn.Andusingtheserialporttorealizethesinglechipmicrocomputerandcomputercommunication,usinguppercomputertocompletedataprocessinganddisplayoftemperature,etc.Temperaturemeasuringprecisionlessthan0.5℃.STC89C52isthemaincontrolchipofthedesign,andLCD1602isusedtodisplaythetemperaturevalue,andtemperaturesensorTC1047isusedfortemperatureacquisition.TemperaturesensoroutputvoltagewillbyRCfiltercircuitandamplifiercircuitwhichiscomposedofoperationalamplifierOP07,andthenthroughtheA/Dconversion.finally,throughtheRS232serialportsentthedigitalquantitytouppercomputerfordataprocessinganddisplay,andtheuppercomputeriswrotebyLABVIEW.Cansetthetemperaturedataacquisitionrate,andcansettemperaturelimitthroughuppercomputer,andthecollecteddatacanbestoredyourcomputerinTXTorXLSformat.Thedesignofhardwarecircuitisbasedonstable,viable,low-costdesignideas.Andthedesignofsoftwareusesmodularmethod.Andfinallybyfinishinganddebuggingofthecircuit,weverifythefeasibilityofthedesignandalsoweachievetotheexpectedresultsofthedesign.Keywords:serialcommunication;LABVIEW;CNCmachine;thermalerror;multi-channeltemperatureacquisition目錄引言 11系統(tǒng)綜述 21.1方案論證與選擇 21.2系統(tǒng)整體框圖 32硬件電路設(shè)計 42.151單片機主控電路 42.1.1單片機主控電路設(shè)計 42.1.2C51程序語言 52.2TC1047溫度采集電路 52.3RC低通濾波電路 62.4OP07放大電路 72.5A/D轉(zhuǎn)換電路 82.6LCD1602顯示電路 92.7串口通信電路 102.8電源穩(wěn)壓電路 113下位機軟件設(shè)計 123.1主程序框架 123.2ADC0832驅(qū)動程序 133.3LCD1602顯示驅(qū)動程序 153.4串口通信程序 174上位機軟件設(shè)計 184.1上位機人機交互界面設(shè)計 184.2上位機程序框圖設(shè)計 194.2.1主程序框圖設(shè)計 194.3.2LABVIEW串口程序設(shè)計 204.3.3串口數(shù)據(jù)幀解碼 214.3.4數(shù)據(jù)處理和顯示 224.3.5數(shù)據(jù)的存儲和讀取 234.3.6采集速率和溫度報警 245原理圖電路仿真 256實物的組裝調(diào)試及軟件驗證 276.1實物的制作流程 276.2硬件調(diào)試及軟件驗證 286.2.1電源電路測試 286.2.2LCD1602顯示測試 286.2.3放大電路測試 296.2.4A/D轉(zhuǎn)換測試 296.2.5下位機串口通信測試 296.2.6上位機串口通信測試 296.2.7下位機與上位機整體功能測試 306.3數(shù)據(jù)測量及誤差分析 306.3.1溫度傳感器標定 306.3.2數(shù)據(jù)的測量 346.3.3誤差計算及分析 366.4軟硬件調(diào)試綜述 377結(jié)論 387.1系統(tǒng)功能 387.2功能擴展 387.3前景展望 39謝辭 40參考文獻 41附錄一電路設(shè)計原理圖 42附錄二電路設(shè)計PCB圖 43附錄三電路設(shè)計實物圖 43附錄四上位機實時數(shù)據(jù)采集界面圖 44附錄五上位機歷史數(shù)據(jù)讀取界面圖 45桂林電子科技大學(xué)畢業(yè)設(shè)計(論文)報告用紙第46頁共45頁引言隨著科學(xué)技術(shù)的不斷發(fā)展,對現(xiàn)代設(shè)備精確度的要求不斷增長,信息采集(即傳感器技術(shù))、信息傳輸(通信技術(shù))和信息處理(計算機技術(shù))為信息技術(shù)的前沿尖端技術(shù),其應(yīng)用非常廣泛,已經(jīng)滲透到社會的每一個領(lǐng)域[1-3]。數(shù)據(jù)采集是指將溫度、壓力、流量、位移等物理量轉(zhuǎn)換成數(shù)字量后,再由計算機進行存儲、處理、顯示或者打印的過程。在生產(chǎn)過程中應(yīng)用數(shù)據(jù)采集,可對生產(chǎn)現(xiàn)場的工藝參數(shù)進行采集、監(jiān)視和記錄,為提高產(chǎn)品質(zhì)量、降低成本提供信息和手段。數(shù)控機床在加工過程中,熱誤差是因溫度上升引起的加工誤差。據(jù)統(tǒng)計,在精密加工和超精密加工中,由于熱變形引起的加工誤差占總加工誤差的50%~70%[4-5]。目前,有兩類方法可以用來減小機床的熱誤差。一是通過改進機床結(jié)構(gòu)設(shè)計方法,直接減小熱誤差,但是會大大提高成本。二是通過建立熱誤差模型進行補償?shù)姆椒╗15-16]。LABVIEW軟件是NI公司開發(fā)用于測控領(lǐng)域的圖形化開發(fā)環(huán)境,它在數(shù)據(jù)采集、儀器控制、測量分析和數(shù)據(jù)顯示方面有著明顯的優(yōu)勢而得到廣泛的應(yīng)用[14]。它是一種方便的人機界面軟件,其編程的方式相比于VC等比較復(fù)雜的上位機編程軟件來說更加的簡單和有針對性。利用NI的LABVIEW軟件和數(shù)據(jù)采集卡可以實現(xiàn)數(shù)據(jù)的采集、存儲、分析處理?;蛘咄ㄟ^其它接口可以很容易地將采集到的數(shù)據(jù)發(fā)送到LABVIE編寫的上位機。設(shè)計的主要目的和任務(wù)是,在生產(chǎn)車間中對數(shù)控機床的主要部件進行實時多點溫度采集,采集硬件電路主要包括:溫度傳感器,放大濾波,A/D轉(zhuǎn)換,下位機控制,串口通信等功能;采集通道數(shù)>=4,采集溫度精度:0.5度,溫度范圍:0~40度。上位機對采集的溫度數(shù)據(jù)進行受熱分析,并顯示溫度隨時間的變化趨勢,并對加工的熱變形誤差進行計算和補償。1系統(tǒng)綜述1.1方案論證與選擇設(shè)計主要是實現(xiàn)數(shù)控機床機床4路溫度的采集,正確選擇溫度傳感器和設(shè)計放大電路對整個設(shè)計起到事半功倍的作用。下面簡要分析設(shè)計硬件電路方案的選擇和上位機編寫軟件的選擇。(1)溫度傳感器選擇設(shè)計中溫度傳感器可以選擇數(shù)字溫度傳感和模擬溫度傳感器。設(shè)計中要求采集的溫度精度為0.5℃,數(shù)字溫度傳感器相對容易實現(xiàn)對溫度的高精度測量,如數(shù)字溫度傳感器DS18B20,但進行多路溫度采集時使用數(shù)字溫度傳感器成本高,在滿足溫度測量精度的條件下,選擇模擬溫度傳感器。模擬溫度傳感器又分為電壓輸出型溫度傳感器和電流輸出型溫度傳感器兩種。其中電流輸出型溫度傳感器,輸出電流一般都很小,如AD590電流輸出型溫度傳感器,需要將輸出電流的變化轉(zhuǎn)化電壓的變化,才能進行電壓放大和A/D轉(zhuǎn)換等[11]。設(shè)計中選用電壓輸出型溫度傳感器TC1047溫度傳感,TC1047輸出電壓每變化10mV,表示溫度變化1℃,正確設(shè)計放大電路和選擇A/D轉(zhuǎn)換芯片就可以滿中溫度測量精度為0.5℃的要求。(2)濾波電路設(shè)計設(shè)計中溫度傳感器選擇的是電壓輸出型溫度傳感器,設(shè)計中要求將大于50Hz的信號給予濾除。設(shè)計中選擇使用無源RC低通濾波電路即可以滿足設(shè)計要求。(3)電壓放大電路的設(shè)計設(shè)計中可以選擇使用儀用放大器或運算放大器組建電路進行電壓放大。選用儀用放大器可以大大減小電路設(shè)計的復(fù)雜度,如儀用放大器AD620和AD623只需要外接一個滑動變阻器就可以實現(xiàn)放大倍數(shù)的精確調(diào)節(jié)。而使用運算放大器電路設(shè)計復(fù)雜,精度也沒有儀用放大器的高,但儀用放大器的價格相對運算放大器來說價格非常昂貴。設(shè)計中選擇運算放大器OP07進行放大電路的設(shè)計,也可以滿足設(shè)計的要求,并且設(shè)計成本大大降低。(4)A/D轉(zhuǎn)換芯片選擇設(shè)計中要合理選擇A/D轉(zhuǎn)換芯片的分辨率。設(shè)計放大電路的放大數(shù)5,只要A/D能分辨放大電路25mV輸出電壓的變化,就可以實現(xiàn)測量溫度精度為0.5℃的要求。設(shè)計中選用8位分辨率的A/D轉(zhuǎn)換芯片ADC0832,在參考電壓為5V時可以分辨最小20mV的電壓變化,滿足設(shè)計要求。(5)上位機編程軟件選擇以上主要分析了硬件電路設(shè)計方案的選擇,上位機的設(shè)計也是設(shè)計的難點。設(shè)計選擇使用LABVIEW作為上位機的編寫軟件,LABVIEW是圖形化編程語言,相對于其他文本編程語言來說,LABVIEW相對簡單的多,可以很容易實現(xiàn)程序的編寫和顯示界面的美化設(shè)計[10]。1.2系統(tǒng)整體框圖設(shè)計主要任務(wù)分為上位機的設(shè)計和下位機設(shè)計兩個大模塊。其中,下位機主要是硬件電路的設(shè)計和C語言程序的編寫。用電壓輸出型溫度傳感器TC1047來實現(xiàn)四路溫度的實時監(jiān)測,用液晶LCD1602顯示采集到的溫度值。將溫度傳感器輸出的電壓,通過RC濾波電路,將50HZ以上的信號給予濾除,再經(jīng)過運算放大器OP07組建的放大電路對濾波后的電壓信號進行放大,使用兩片ADC0832將四路放大的模擬信號轉(zhuǎn)化為數(shù)字信號。主控芯片STC89C52將A/D轉(zhuǎn)換的數(shù)字量經(jīng)過基于MAX232芯片的串行通信方式,發(fā)送到用LABVIEW軟件編寫的上位機,同時將數(shù)字量經(jīng)數(shù)據(jù)處理轉(zhuǎn)化為溫度值在液晶LCD1602上顯示。上位機將接收到的數(shù)據(jù)進行處理和顯示,顯示溫度隨時間的變化曲線以及用顏色的淺深來表示溫度的高低,上位機可以設(shè)定報警溫度上限值和采集溫度的速率。上位機分為兩個面板,一個為實時數(shù)據(jù)顯示面板,另一個為歷史數(shù)據(jù)讀取顯示面板,可以實現(xiàn)實時數(shù)據(jù)采集,同時也可以讀取和分析歷史數(shù)據(jù)。設(shè)計的整體框圖如圖1-1所示。PC機STC89C52串PC機STC89C52串口串口電路LABVIEW...溫度傳感器放大電路A/D轉(zhuǎn)換溫度傳感器放大電路濾波電路濾波電路......穩(wěn)壓電源...LCD液晶顯示2硬件電路設(shè)計2.151單片機主控電路設(shè)計所選用的單片機型號為STC89C52,其與市場大部分51系列單片機完全兼容,并且在性能方面和速度上更具有優(yōu)勢。STC89C52是一種低功耗、高性能CMOS8位微控制器,在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程Flash,使得STC89C52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。STC89系列單片機CPU主要功能是產(chǎn)生各種控制信號,控制輸入/輸出端口的數(shù)據(jù)傳輸、數(shù)據(jù)的算術(shù)運算、邏輯運算以及位操作處理等。STC89系列單片機幾乎包含了所有數(shù)據(jù)采集和控制中所需的所有單元模塊,可稱得上是一個片上系統(tǒng)[6-10]。2.1.1單片機主控電路設(shè)計圖2-1單片機主控電路設(shè)計單片機最小系統(tǒng)原理圖如圖2-1所示。主控模塊由復(fù)位電路,晶振時鐘電路和IO電路3部分組成。復(fù)位電路設(shè)計為按鍵復(fù)位和上電復(fù)位,通過在單片機的RST腳接10uf電容接電源,10K電阻接地的方式,完成上電復(fù)位,RST引腳再經(jīng)過一個200歐的電阻和一個按鍵可以實現(xiàn)按鍵復(fù)位。測溫電路設(shè)計要用到串口通信,為了得到較準確的波特率,降低通信的誤碼率,晶振電路使用的是11.0592MHZ的晶振,晶振兩端分別接2個22pf電容接地,保證其時鐘電路的穩(wěn)定性。單片機引腳為訪問外部存儲器控制信號,將其接高電平,訪問內(nèi)部ROM。IO電路其引腳的功能具體如下:P0口為液晶LCD1602的并行數(shù)據(jù)總線,為了增加對LCD1602的驅(qū)動能力,外加了10K排阻;P1.0~P1.2為LCD的控制口;P2.0~P2.4為ADC0832的數(shù)據(jù)輸入輸出和控制口。P3.0和P3.1分別為串口通信的數(shù)據(jù)接收和數(shù)據(jù)發(fā)送口。2.1.2C51程序語言C51是為51系列單片機設(shè)計的一種C語言,其特點:結(jié)構(gòu)化語言,代碼緊湊;接近真實語言,程序可讀性強;庫函數(shù)豐富,編程工作量?。粰C器級控制能力,功能很強;與匯編指令無關(guān),易于掌握;對于有復(fù)雜計算的程序來說,更突顯其優(yōu)勢,C51語言已成為51系列單片機程序開發(fā)的主流軟件方法。C51與標準C語言對比,其語法規(guī)則、程序結(jié)構(gòu)、編程方法大致相同,而數(shù)據(jù)類型、存儲模式及中斷處理存在著差異[13]。2.2TC1047溫度采集電路設(shè)計采用4個溫度傳感器TC1047A來采集4路溫度,將溫度的變化轉(zhuǎn)化為電壓的變化。TC1047和TC1047A是線性電壓輸出溫度傳感器,可以精確地測量從-40℃到+125℃之間的溫度。10mV/TC1047傳感器輸出電壓的大小會隨溫度的改變而改變,溫度增大,輸出電壓會增大,溫度減小,其輸出電壓也會減小[12]。TC1047溫度傳感器輸出電壓與溫度變化成線性關(guān)系,關(guān)系表達式為:其中:為傳感器輸出電壓,單位為;測量溫度值,單位為℃。TC1047溫度傳感器輸出電壓隨溫度變化的關(guān)系曲線如圖2-2所示。圖2-2TC1047輸出電壓隨溫度變化的關(guān)系曲線如圖2-3所示為TC1047溫度傳感器接口電路的設(shè)計,其中3號管腳用于為該芯片供電,管腳1為電源地,管腳2為電壓輸出,只要給芯片供電就可以使溫度傳感器正常工作。圖2-3TC1047接口原理圖2.3RC低通濾波電路設(shè)計采用一階無源RC低通濾波電路濾除頻率為50HZ以上的干擾信號,使溫度傳感器的輸出電壓較穩(wěn)定。常用的濾波電路有無源濾波和有源濾波兩大類。若濾波電路元件僅由無源元件(電阻、電容、電感)組成,則稱為無源濾波電路。無源濾波的主要形式有電容濾波、電感濾波和復(fù)式濾波(包括倒L型、LC濾波、LC∏型濾波和RC∏型濾波等)。若濾波電路不僅由無源元件,還由有源元件(雙極型管、單極型管、集成運放)組成,則稱為有源濾波電路。有源濾波的主要形式是有源RC濾波,也被稱作電子濾波器。無源濾波電路的結(jié)構(gòu)簡單,易于設(shè)計,但它的通帶放大倍數(shù)及其截止頻率都隨負載而變化,因而不適用于信號處理要求高的場合。有源濾波電路的負載不影響濾波特性,因此常用于信號處理要求高的場合。濾波電路還可以分為高通、低通、帶通和帶阻濾波器,是一種能使有用頻率信號通過,同時抑制無用頻率成分的電路。設(shè)計需要采集由溫度傳感器將溫度轉(zhuǎn)化為電壓的信號,在實際中溫度的變化頻率不可能是太高的。為了使采集到的電壓信號更加穩(wěn)定可靠,設(shè)計需要將高于50HZ以上的信號濾除掉,才能進行電壓信號的放大。在滿足要求的前提下,為了使設(shè)計更加的簡單,采用RC無源低通濾波電路。RC低通濾波器的截止頻率計算公式為:其中:為電阻的阻值,單位為;為電容值,單位為。設(shè)計中選用的電容為,電阻,所以可以計算出低通濾波器的截止頻率為:所以滿足截止頻率小于50HZ的要求,RC低通濾波電路原理圖設(shè)計如圖2-4所示。圖2-4RC低通濾波電路2.4OP07放大電路設(shè)計采用運算放大器OP07作為主芯片組建電壓放大電路,放大經(jīng)過RC低通濾波器電路后的電壓信號。OP07芯片是一種低噪聲,非斬波穩(wěn)零的雙極性運算放大器集成電路。由于OP07具有非常低的輸入失調(diào)電壓,所以O(shè)P07在很多應(yīng)用場合都不需要額外的調(diào)零。OP07同時具有輸入偏置電流低各和開環(huán)增益高的特點。這種低失調(diào)電壓、高開環(huán)增益的特性使得OP07特別適用于高增益的測量設(shè)備和放大傳感器輸出的信號。溫度傳感器TC1047在0℃到40℃的電壓輸出范圍為到,每變化一度,精度要求為0.5℃。而采用的是8位的A/D轉(zhuǎn)換,最大能分辨20mV電壓變化,放大器的放大倍數(shù)為5即可滿中要求。設(shè)計要求能實時快速地采集溫度的變化,對采集的速度有較高的要求,不能通過模擬開關(guān)來分時放大每一通道的電壓信號,而是每個通道都有各自的放大電路,這樣就可以大大提高溫度采集的速度。單通道放大電路原理圖如圖2-5所示。圖2-5單通道電壓放大電路如上圖2-5所示為三運放組成的差分放大電路,其中和都是組成電壓跟隨器,用于增大輸入阻抗減小輸出阻抗。的管腳3輸入溫度傳感器的輸出電壓,用于將電壓進行差分放大。需要根據(jù)要求計算各電阻的參數(shù)值。的輸出電壓為:……(2-1)根據(jù)運算放大器虛短虛斷的特性可得:………………(2-2)其中:,,………(2-3)由公式(2-1)、(2-2)和(2-3)可計算出如下表達式:……………(2-4)其中表達式(2-4)中為電阻阻值,單位為;分別為輸入輸出電壓,單位為。設(shè)表達式(2-4)中的,即為電壓放大倍數(shù),為了方便計算,取,,將和所選擇的電阻阻值代入(2-4)可得:解得:,電阻用一個的滑動變阻器代替,便于放大倍數(shù)的調(diào)節(jié)。2.5A/D轉(zhuǎn)換電路設(shè)計采用兩片分辨率為8位的A/D轉(zhuǎn)換芯片ADC0832將已放大的模擬電壓信號轉(zhuǎn)換為單片機可以處理的數(shù)字信號。ADC00832為8位分辨率的逐次逼近型雙通道A/D轉(zhuǎn)換芯片,其最高分辨可達256級,可以適應(yīng)一般模擬量的轉(zhuǎn)換要求。其內(nèi)部電源輸入與參考電壓復(fù)用,使得芯片的模擬電壓輸入在0~5V之間。芯片的轉(zhuǎn)換時間僅為32us,具有雙數(shù)據(jù)輸出可作為數(shù)據(jù)校驗,以減小誤差,轉(zhuǎn)換速度快且性能穩(wěn)定性強。獨立的芯片使能輸入,使多器件掛接和處理器控制變得更加方便。設(shè)計要求采集4通道的模擬量,而單片ADC0832只有雙通道,所以選擇使用2片ADC0832。之所以選擇兩片ADC0832作為A/D轉(zhuǎn)換電路,而不是選擇集成有多通道的A/D轉(zhuǎn)換芯片,如ADC0834或ADC0838,而這兩個芯片在操作時更復(fù)雜,編寫軟件時會降低模擬量采集的速度,若選用常用的轉(zhuǎn)換芯片ADC0809,在頻率為500KHZ時,轉(zhuǎn)換速度才128us,速度也達不到。在設(shè)計時將兩片芯片的引腳CLK、DI和DO分別對應(yīng)并聯(lián)在一起連接到單片片機的三個I/O口上,而兩芯片的片選信號CS則連接到不同的I/O口上,可以通過片選端來選擇要操作的A/D芯片。兩片ADC0832組成的A/D轉(zhuǎn)換電路原理圖如圖2-6所示。圖2-6A/D轉(zhuǎn)換電路2.6LCD1602顯示電路設(shè)計LCD1602主要用于顯示采集到的4路溫度值。LCD1602是常用的液晶顯示屏,它顯示的內(nèi)容為16×2,即可以顯示兩行,每行16個字符,目前絕大多數(shù)字符液晶基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780寫的控制程序可以很方便地應(yīng)用于市面上大部分的字符型液晶。LCD1602工作電壓為3.3V或5V,內(nèi)含復(fù)位電路,提供各種控制命令如:清屏、字符閃爍、光標閃爍、顯示移位等多種功能。有80字節(jié)顯示數(shù)據(jù)存儲器DDRAM,內(nèi)建有192個5X7點陣的字型的字符發(fā)生器CGROM和8個可由用戶自定義的5X7的字符發(fā)生器CGRAM。圖2-7LCD1602顯示電路LCD1602主要由控制引腳和數(shù)據(jù)引腳2個部分組成。參考圖2-7其中RS和RW兩個引腳用于控制LCD1602的寫操作類型,當RS和RW均為0時,即都為低電平時,則此次單片機發(fā)送的8位數(shù)為對LCD1602的控制命令,通過命令類型的判斷執(zhí)行相應(yīng)的LCD的配置。而當RS為1即高電平時,則發(fā)送的8位數(shù)為需要顯示的內(nèi)容,LCD對其進行顯示。每次的寫命令,需要將LE控制引腳置為高電平,使能此次寫,平時狀態(tài)則置為低電平。引腳1和2分別為LCD的電源和接地端,引腳15和16分別為LCD背光調(diào)節(jié)的正極和負極,分別接上電源和地。LCD的3引腳用于調(diào)整字符顯示的對比度,此部分通過外加一個10K電位器,接電源和地之間來實現(xiàn)手動的調(diào)整,一般當對比度不夠高時,字符不會顯示,而增加太多時會出現(xiàn)重影,因此合適的對比度對于顯示效果比較重要。2.7串口通信電路設(shè)計采用MAX232芯片進行單片與PC之間的電平轉(zhuǎn)換,實現(xiàn)單片機與PC機之間的通信。MAX232芯片是美信(MAXIM)公司專為RS-232標準串口設(shè)計的單電源電平轉(zhuǎn)換芯片,使用+5V單電源供電。由于電腦串口RS232電平是-10V,+10V,而一般的單片機應(yīng)用系統(tǒng)的信號電壓是TTL電平0V和+5V,MAAX232就是用來進行電平轉(zhuǎn)換的,該器件包含2驅(qū)動器、2接收器和一個電壓發(fā)生器電路提供TIA/EIA-232-F電平。該器件符合TIA/EIA-232-F標準,每一個接收器將TIA/EIA-232-F電平轉(zhuǎn)換成5-VTTL/CMOS電平。每一個發(fā)送器將TTL/CMOS電平轉(zhuǎn)換成TIA/EIA-232-F電平。圖2-8串口通信電路串口通信電路原理圖設(shè)計如圖2-8所示。此次設(shè)計的串口通信電路主要使用MAX232芯片來實現(xiàn)電平轉(zhuǎn)換。其中T1IN和R1OUT分別接單片機的發(fā)送引腳TXD和接收引腳RXD,MAX232外接5個1uf電容為經(jīng)典電路的接法,主要實現(xiàn)振蕩式升壓將單片機的電平變成符合計算機的電平類型。與計算機接口電路使用RS232DB9接頭,由于不需要奇偶校驗等,因此只需接其中3根線,即發(fā)送、接收和地線。2.8電源穩(wěn)壓電路設(shè)計要求運算放大器OP07需要在正負電源下工作,并且A/D的參考電壓值也需要較穩(wěn)定。為了使電路正常并且穩(wěn)定工作,選用L78××/L79××穩(wěn)壓芯片設(shè)計穩(wěn)壓電源。L78××系列是三端正電源穩(wěn)壓芯片,它有一系列固定的固定的正電壓輸出,應(yīng)用十分廣泛。芯片內(nèi)部有電流限制、過熱保護以及安全工作區(qū)的保護,使它基本不會損壞。如果能夠提供足夠的散熱片,就能夠提供大于1.5A的輸出電流。雖然芯片是按照固定輸出電壓來設(shè)計的,但是接入適當?shù)耐獠科骷?,就能獲得各種不同的輸出電壓和輸出電流。L79××系列是三端穩(wěn)壓芯片除了輸出是負電壓之外,其余特性與L78××系列是三端穩(wěn)壓芯片基本一致。圖2-9穩(wěn)壓電源電路電源電路原理圖如圖2-9所示。選用L7812和L7912穩(wěn)壓芯片分別得到穩(wěn)定的正12V和負12V電壓。而A/D轉(zhuǎn)換芯片、溫度傳感器和單片機等都需要正5V的工作電壓,選用L7805穩(wěn)壓芯片得到穩(wěn)定的正5V電壓輸出。其中P5用于接220V交流轉(zhuǎn)12V交流的變壓器,對12V交流經(jīng)過整流后輸出直流正電壓和直流負電壓。將整流后的直流電壓經(jīng)過一個2200uF和一個0.33uF的電容后可以得到較穩(wěn)定的直流電壓。然后通過穩(wěn)壓芯片L7812和L7912就可以得到穩(wěn)定的正負12V電壓,把穩(wěn)壓管輸出的正12V作為L7805的輸入,L7805就可以輸出穩(wěn)定的正5V電壓。3下位機軟件設(shè)計下位機程序設(shè)計使用KEILC的編譯環(huán)境,并使用C語言進行程序的編寫,然后經(jīng)過編譯后生成.hex文件。此次設(shè)計因為要用到串口通信,所以選擇使用串口下載,將代碼下載到相應(yīng)STC89C52的單片機中去。3.1主程序框架下位機程序設(shè)計采用模塊化的設(shè)計思想,主要包括下面幾部分:(1)編寫LCD1602驅(qū)動程序,實現(xiàn)對LCD1602的8字節(jié)寫命令操作函數(shù)、寫數(shù)據(jù)操作函數(shù),調(diào)用寫命令函數(shù)初始化液晶屏以及通過寫命令和寫數(shù)據(jù)這兩個函數(shù)來編寫在指定的位置顯示單個字符、在指定的位置開始顯示字符串等擴展函數(shù),便于在主程序中調(diào)用。通過在主程序中調(diào)用相應(yīng)的LCD顯示函數(shù),最終完成4路溫度值的顯示。(2)編寫ADC0832驅(qū)動程序,實現(xiàn)對4通道模擬電壓的采集。程序中包括相應(yīng)通道的選擇和對A/D轉(zhuǎn)換結(jié)果1個字節(jié)的讀取。為了能方便在主函數(shù)中選擇轉(zhuǎn)換通道和讀取相應(yīng)通道的A/D轉(zhuǎn)換結(jié)果。將程序設(shè)計成有兩個參數(shù)變量和帶返回值的函數(shù),其中一參數(shù)變量用來選擇對那片芯片操作,另一個參數(shù)變量用來選擇轉(zhuǎn)換通道,最后的返回值則為A/D的轉(zhuǎn)換結(jié)果。(3)編寫串口通信程序,實現(xiàn)將A/D轉(zhuǎn)換的8位數(shù)字量通過串口發(fā)送到上位機。串口通信程序包括串口的初始化配置函數(shù),串口1個字節(jié)發(fā)送函數(shù)。其中串口的初始化配置要特別注意波特率的設(shè)置,應(yīng)該和上位機的波特率設(shè)置成一樣大小,保證串口通信更準確;而串口發(fā)送則采用查詢法。在主程序中通過調(diào)用發(fā)送子函數(shù)即可以將數(shù)據(jù)發(fā)送到上位機。(4)編寫主程序,實現(xiàn)在主程序中調(diào)用已編寫好的子程序,即將整個下位機的的功能在主程序中實現(xiàn)。在主函數(shù)中,首先對LCD1602、ADC082和串口進行初始化,然后在一個大循環(huán)中不停地采集A/D轉(zhuǎn)換的數(shù)據(jù),并通過處理通過串口發(fā)送到上位,同時再經(jīng)過適當?shù)奶幚恚贚CD上顯示出溫度值。為了使接收到的數(shù)據(jù)更準確,在取A/D轉(zhuǎn)換結(jié)果時,連續(xù)讀取10次,再求取平均值,而LCD溫度顯示函數(shù)則在定時器中斷調(diào)用,設(shè)置成每隔一段時間對溫度值進行刷新一次。下位機的主程序流程圖如圖3-1所示。YESYESYESYESNONONO開始結(jié)束LCD顯示、串口、A/D轉(zhuǎn)換、定時器中斷等初始化對4路A/D轉(zhuǎn)換每個通道各讀取10次,并保存將各通道采集到的10組A/D轉(zhuǎn)換結(jié)果分別求平均值,并保存串口發(fā)送數(shù)據(jù)到上位機是否定時器中斷?是否定時器中斷?是否定時器中斷?進入中斷服務(wù)程序?qū)⒏魍ǖ赖臄?shù)字量平均值轉(zhuǎn)換為電壓值將電壓值轉(zhuǎn)換為溫度值LCD1602顯示4通道溫度值開始結(jié)束圖3-1下位機主程序流程圖3.2ADC0832驅(qū)動程序ADC0832未工作時其CS輸入端應(yīng)為高電平,此時芯片禁止讀寫,CLK、DO和DI的電平值可任意。當要進行A/D轉(zhuǎn)換時,必須將CS使能端置低電平并且保持低電平直到轉(zhuǎn)換完全結(jié)束。使能CS之后,單片機向芯片時鐘輸入端CLK輸入時鐘脈沖,數(shù)據(jù)輸入端DI用于輸入數(shù)據(jù)進行A/D轉(zhuǎn)換通道的選擇,數(shù)據(jù)輸出端DO用于輸出A/D轉(zhuǎn)換的結(jié)果。在第一個時鐘脈沖的下降沿之前DI必須保持高電平,表示啟動信號,在第二和第三個下降沿之前DI輸入的數(shù)據(jù)用于選擇A/D的轉(zhuǎn)換通道。ADC0832的操作時序如圖3-2所示。圖3-2ADC0832的時序圖在進行A/D轉(zhuǎn)換時,要用到兩片ADC0832,在進行A/D轉(zhuǎn)換時,先選擇其中一片芯片進行A/D轉(zhuǎn)換,讀取兩個通道的值,之后再選擇另外一個芯片進行A/D轉(zhuǎn)換,再讀取兩個通道的值。再選擇芯片時只能使能其中的一個芯片,而另外的一個芯片的使能端必須禁止。ADC0832驅(qū)動程序流程圖如圖3-3所示。開始開始選擇一片ADC0832選擇通道1選擇通道2保存轉(zhuǎn)換結(jié)果保存轉(zhuǎn)換結(jié)果選擇另一片ADC0832選擇通道3選擇通道4保存轉(zhuǎn)換結(jié)果保存轉(zhuǎn)換結(jié)果結(jié)束圖3-3A/D轉(zhuǎn)換程序流程圖ADC0832在讀取轉(zhuǎn)換結(jié)果時,是在時鐘脈沖下串行輸出的,并且是最高位先輸出。讀取A/D轉(zhuǎn)換的部分代碼如下:for(i=0;i<8;i++)//循環(huán)8次讀取1個字節(jié)數(shù)據(jù){val=val<<1;//val用于暫存轉(zhuǎn)換結(jié)果,經(jīng)過8次左移后即為轉(zhuǎn)換結(jié)果CLK=1;CLK=0;//數(shù)據(jù)輸出在下降沿后有效if(DO){ val=val|0x01;//若輸出為1則與0x01相或} }3.3LCD1602顯示驅(qū)動程序LCD顯示驅(qū)動程序在進行數(shù)據(jù)的顯示時,先要對LCD寫入初始化控制命令字,初始化成功之后,寫入數(shù)據(jù)地址控制命令,再寫入數(shù)據(jù)才能把數(shù)據(jù)顯示出來。程序主要包括寫命令、寫數(shù)據(jù)、數(shù)據(jù)地址指針設(shè)定、顯示單個字符、顯示字符串等。LCD1602的寫操作時序如圖3-4所示。圖3-4LCD1602寫操作時序根據(jù)LCD1602寫操作時序圖可知,當RS為低電平,RW為高電平時為寫命令操作,控制命令主要是用設(shè)置LCD顯示模式、光標的設(shè)置等,單片機將8位數(shù)據(jù)送到LCD并行數(shù)據(jù)總線上,單片機給E數(shù)據(jù)端一個正脈沖信號,就可以將控制命令字寫入LCD。當RS為高電平,RW為高電平時為寫數(shù)據(jù)操作,LCD就會將接收到的數(shù)據(jù)在液晶屏上顯示出來。在進行數(shù)據(jù)顯示前需要先設(shè)置數(shù)據(jù)地址指針,這樣才能在想要的位置顯示出數(shù)據(jù)。LCD1602顯示驅(qū)動程序流程圖如圖3-5所示。NONOYES開始LCD初始化根據(jù)想要顯示的位置計算相應(yīng)的地址發(fā)送地址發(fā)送數(shù)據(jù)數(shù)據(jù)是否發(fā)送完?結(jié)束圖3-5LCD1602顯示驅(qū)動程序流程圖根據(jù)以上LCD寫操作時序和LCD顯示驅(qū)動程序流程圖編寫出相應(yīng)的驅(qū)動函數(shù),部分顯示函數(shù)如下:voidDisplay_LCD_1602_dan_zi(ucharX,ucharY,ucharValue)//在指定位置{//寫入一個字符,X為行,Y為列,Value為寫入的數(shù)據(jù) LocationXY(X,Y);//確定字符顯示的位置函數(shù) Write_com_or_dat(Value,1);//寫入數(shù)據(jù)函數(shù)}voidDisplay_LCD_1602_duo_zi(ucharX,ucharY,uchar*P)//顯示字符串函{//數(shù),P指向字符串的首地址 LocationXY(X,Y);//設(shè)定初始地址 while(*P){Write_com_or_dat(*P,1);P++;} }3.4串口通信程序串口通信程序主要包括串口的初始化、串口數(shù)據(jù)發(fā)送,其中串口的初始化主要是用于設(shè)置波特率。在通信中采用的串口通信波特率為9600,在程序設(shè)計中采用查詢法發(fā)送數(shù)據(jù),串口通信程序流程圖如圖3-6所示。NONONOYESYES開始結(jié)束串口初始化將發(fā)送的數(shù)據(jù)寫入SBUFTI是否為1?TI清0數(shù)據(jù)是否發(fā)送完?圖3-6串口通信程序流程圖在進行串口通信程序編寫時,編寫單字節(jié)發(fā)送函數(shù)和字符串發(fā)送函數(shù),其中部分程序代碼如下:voidSent_Byte(uchardat)//發(fā)送單字節(jié)函數(shù){ SBUF=dat;//將數(shù)據(jù)送到緩沖器 while(!TI); //判斷是否發(fā)送完 TI=0; //發(fā)送完清標志位}voidSent_Date(uchar*dat)//發(fā)送一個字符串函數(shù){ while((*dat)!='\0')//如果字符串未結(jié)束,指針++指向下一個字符 { Sent_Byte(*dat);//發(fā)送單字節(jié)函數(shù) dat++;//指針++ } }4上位機軟件設(shè)計4.1上位機人機交互界面設(shè)計此次設(shè)計的上位機人機交互界面主要分為兩個窗口,即實時數(shù)據(jù)窗口和歷史數(shù)據(jù)窗口,可以在使用過程中進行切換。實時數(shù)據(jù)窗口主要是用于實現(xiàn)4路溫度數(shù)據(jù)的實時顯示、實時溫度變化曲線顯示及實時溫度強度圖顯示。并且可以在本界面設(shè)定串口的有關(guān)配置,如波特率、數(shù)據(jù)位、奇偶校驗位等;另外可以設(shè)定設(shè)定溫度采集的速率、報警的溫度上限值、選擇數(shù)據(jù)的數(shù)據(jù)的存儲路徑等;同時可以開始和停止溫度的采集。除此之外,還顯示出模擬的數(shù)控機床熱變形誤差,當采集的溫度值超過設(shè)計的溫度上限時,報警指示燈就會閃爍并發(fā)出報警聲。因為實時窗口顯示的數(shù)據(jù)是變動的,鑒于此歷史數(shù)據(jù)窗口主要是用于歷史數(shù)據(jù)的讀取方便數(shù)據(jù)的分析。在進行數(shù)據(jù)顯示時,除了顯示溫度值外,還顯示出采集到溫度所對應(yīng)的時間。圖4-1實時數(shù)據(jù)顯示界面人機交互界面的實時數(shù)據(jù)顯示窗口設(shè)計如圖4-1所示。實時數(shù)據(jù)顯示窗口不僅可以顯示溫度隨時的變化曲線,以及用強度圖表中用顏色淺深來表示溫度大小。除了用數(shù)值來顯示溫度值外,還用4個類似于溫度計的柱體來直觀顯示溫度的大小。圖中開始按鈕可以用來控制數(shù)據(jù)的采集和暫停。4.2上位機程序框圖設(shè)計4.2.1主程序框圖設(shè)計主程序通過串口接收下位機發(fā)送的4路A/D轉(zhuǎn)換采集到的8位數(shù)字量,通過數(shù)據(jù)處理,計算出溫度值、熱變形誤差,同時能在前面板顯示出來。另外還要實現(xiàn)報警、數(shù)據(jù)存儲和相關(guān)數(shù)據(jù)采集參數(shù)設(shè)定等功能。上位機的整體程序設(shè)計流程圖如圖4-2所示。NONONONOYESYESYES開始接收緩沖區(qū)是否為空?采集按鈕是否按下?讀取接收緩沖區(qū)數(shù)據(jù)數(shù)據(jù)幀的解碼數(shù)據(jù)處理計算出溫度值數(shù)據(jù)存儲溫度數(shù)據(jù)、曲線及強度圖顯示是否超出設(shè)定溫度值?結(jié)束報警圖4-2上位主程序流程圖4.3.2LABVIEW串口程序設(shè)計在LABVIEW程序串程序設(shè)計中,主要用到VISA配置串口、屬性節(jié)點、VISA讀取和簡單錯誤處理等幾部分組成,下面分別簡單介紹這幾個節(jié)點的使用。圖4-3VISA配置串口如圖4-3所示為VISA配置串口節(jié)點,通過該節(jié)點可以很方便的對串口的參數(shù)進行配置,如波特率、奇偶校驗、停止位等,通過配置好相關(guān)參數(shù),即對串口進行初始化,上位機才能與下位機通過串口通信。圖4-4VISA串口數(shù)據(jù)讀取如圖4-4所示為串口緩沖區(qū)讀取節(jié)點,通過該節(jié)點可以讀取下位機發(fā)送到串口數(shù)據(jù)緩沖區(qū)里的數(shù)據(jù)。其中有一個比較重要的設(shè)置,就是VISAREAD的“字節(jié)總數(shù)”這個輸入,由于在串口通信中,如果指定讀取100個串口緩沖區(qū)的字節(jié)數(shù),如果當前緩沖區(qū)的數(shù)據(jù)量不足100個時,程序會一直停在VISAREAD這個節(jié)點上,如果在超時的時間(默認是10秒)內(nèi)還沒有湊足100個數(shù)據(jù)的話,程序就會報“Timeout”的錯誤,如果超時時間設(shè)置得太長,有可能導(dǎo)致程序很長時間停止在VISAREAD這個節(jié)點上。解決的辦法是使用“BytesatPort”這個串口的屬性節(jié)點,這個屬性節(jié)點讀取當前串口緩沖區(qū)有字節(jié)數(shù),然后將它的輸出連接到VISAREAD的“讀取字節(jié)數(shù)”這個輸入端上即可,這樣當前緩沖區(qū)中有多少個字節(jié)就讀回多少個,不會有任何等待,該屬性節(jié)點如圖4-5所示。圖4-5BytesatPort屬性節(jié)點將以上幾個節(jié)點正確連接起來,再結(jié)合while結(jié)構(gòu)和判斷結(jié)構(gòu)就可以實現(xiàn)對下位機發(fā)送來的數(shù)據(jù)進行不斷的讀取。其部分程序設(shè)計如圖4-6所示。圖4-6串口數(shù)據(jù)讀取部分程序4.3.3串口數(shù)據(jù)幀解碼正位機發(fā)送來的采集到的4路數(shù)據(jù),在讀取串口的數(shù)據(jù)之后并不知道接收到的數(shù)據(jù)是屬于那一路的,需要將各路的數(shù)據(jù)區(qū)分開來,再進行數(shù)據(jù)處理和顯示。上位機程序的編寫要根據(jù)下位機發(fā)送的數(shù)據(jù)幀格式來解碼,這樣才能獲取正確的數(shù)據(jù)。下位機發(fā)送的數(shù)據(jù)幀包括3個部分,包括2個字節(jié)的數(shù)據(jù)幀頭、4個字節(jié)的數(shù)據(jù)和1個字節(jié)的數(shù)據(jù)幀尾。將讀取的字符數(shù)據(jù)轉(zhuǎn)換為字節(jié)數(shù)組,再對數(shù)組里的數(shù)據(jù)進行數(shù)據(jù)幀解析,得出想要的數(shù)據(jù)。在程序設(shè)計中通過編寫數(shù)據(jù)幀解析子VI來供主程序調(diào)節(jié),數(shù)據(jù)幀解析程序采用公式節(jié)點來設(shè)計。公式節(jié)點在程序中相當于一個數(shù)據(jù)運算子程序,可以在公式結(jié)點中進行類似于C語言的編程,這樣可以大大減小程序的開發(fā)難度。公式節(jié)點可以進行參數(shù)的輸入和輸出,參數(shù)的傳遞通過輸入變量和輸出變量來傳遞。在子VI中設(shè)計兩個輸入?yún)?shù)變量,其中一個參數(shù)變量是數(shù)組,另一個參數(shù)變量是數(shù)組的長度,在程序中對輸入的數(shù)據(jù)進行數(shù)據(jù)幀解析。首先對數(shù)組的第一個元素進行查找,在數(shù)組長度范圍內(nèi),若找到兩個連續(xù)的數(shù)據(jù)幀幀頭,并且數(shù)組的下標加4后的數(shù)據(jù)為數(shù)據(jù)幀的幀尾,則數(shù)組幀頭和幀尾之間的四個字節(jié)即為下位機發(fā)送的4路采集到的數(shù)據(jù),4個字節(jié)數(shù)據(jù)的通道分別與下位機發(fā)送時的通道相對應(yīng)。公式節(jié)點的程序設(shè)計如圖4-7所示。圖4-7公式節(jié)點數(shù)據(jù)幀解碼4.3.4數(shù)據(jù)處理和顯示將數(shù)據(jù)幀解碼得到的4路數(shù)據(jù)計算出電壓值,再通過電壓值計算出相應(yīng)的溫度值,并通過溫度值計算出熱誤差,數(shù)據(jù)處理子VI如圖4-8所示。圖4-8數(shù)據(jù)處理子VI各通道數(shù)據(jù)經(jīng)過處理之后,就可以將數(shù)據(jù)輸出到人機交互界面進行顯示,用波形;用波形圖表用來顯示實時溫度變化曲線,用強度圖表中顏色的淺深來表示溫度的高低,同時在人機交互界面上顯示出各通道的溫度數(shù)值和熱變形誤差。如圖4-9所示為波形圖表和強度圖表。圖4-9波形圖表和強度圖表波形圖表是顯示一條或多條曲線的特殊數(shù)值顯示控件,一般用于顯示以恒定速率采集到的數(shù)據(jù)。波形圖表會保留來源于此前更新的歷史數(shù)據(jù),又稱緩沖區(qū)。如需在一次更新中向每條曲線傳送多個點,可將一個數(shù)值簇數(shù)組連接到波形圖表,每個數(shù)值代表各條曲線的單個y值點。在設(shè)計中需要向波形圖表傳送多條曲線的數(shù)據(jù),將這些數(shù)據(jù)捆綁為一個標量數(shù)值簇,其中每一個數(shù)值代表各條曲線上的單個數(shù)據(jù)點,這樣就可以在波形圖表上同時顯示多條實時溫度曲線。與波形圖表一樣,強度圖表也有一個來源于此前更新而產(chǎn)生的歷史數(shù)據(jù),又稱緩沖區(qū)。由于強度圖表將顏色作為第三個維度,因此一個類似于顏色梯度控件的標尺可定義強度圖表的范圍和數(shù)值到顏色的映射。在強度圖表上繪制一個數(shù)據(jù)塊以后,笛卡爾平面的原點將移動到最后一個數(shù)據(jù)塊的右邊。圖表處理新數(shù)據(jù)時,新數(shù)據(jù)出現(xiàn)在舊數(shù)據(jù)的右邊。如果圖表顯示已滿,則舊數(shù)據(jù)將從圖表的左邊界移出。4.3.5數(shù)據(jù)的存儲和讀取數(shù)據(jù)的存儲和讀取主要是通過寫入文本文件和讀取文本文件這兩個節(jié)點來完成。寫入文本文件節(jié)點如圖4-10所示,將文件路徑設(shè)計為選擇路徑輸入,在進行數(shù)據(jù)采集時可圖4-10寫入文本文件節(jié)點以在人機交互界面上選擇數(shù)據(jù)文件存儲的路徑。讀取文本文件是用于讀取存儲的歷史數(shù)據(jù),如圖4-11所示。圖4-11讀取文本文件節(jié)點設(shè)計時通過按下按鈕來讀取文件里存儲的數(shù)據(jù),并在人機交互界面的歷史數(shù)據(jù)界面上顯示出歷史數(shù)據(jù),包括歷史溫度曲線圖、歷史溫度強度圖和歷史時間對應(yīng)的溫度值。為了方便數(shù)據(jù)的分析,人機交互界面專門有一個是用來讀取歷史數(shù)據(jù)的,其程序設(shè)計如圖4-12所示。圖4-12讀取歷史數(shù)據(jù)顯示程序4.3.6采集速率和溫度報警在進行數(shù)據(jù)采集時,數(shù)據(jù)采集過快或者過慢都不方便對的數(shù)據(jù)的觀察和分析,在程序設(shè)計中可以讓用戶可以在人機交互界面上設(shè)定想要的采集速率;其次就在不同的場合,溫度最高上限也不一樣,同樣在設(shè)計中出應(yīng)該考慮到用戶可以設(shè)定不同的溫度報警上限值。其中,溫度報警程序如圖4-13所示。在程序設(shè)計中使用條件結(jié)構(gòu)來判斷是否執(zhí)行報警程序,將各路采集到的溫度度值與設(shè)定的溫度值進行比較,若有其中一路溫度值超過了設(shè)定的溫度值,則條件結(jié)構(gòu)判斷為真,則執(zhí)行報警程序。在報警程序中實現(xiàn)報警聲的輸出及報警指示燈每隔200毫秒紅綠燈進行交替閃爍,當4路溫度值都與設(shè)定的溫度值低時,則條件結(jié)構(gòu)判斷為假,則報警程序不執(zhí)行,這樣就可以實現(xiàn)報警功能。圖4-13溫度報警程序5原理圖電路仿真為了更進一步確保本方案設(shè)計的可以行,在進行硬件電路實物的制作之前,先通過使用仿真軟件對設(shè)計方案進行軟件仿真。設(shè)計仿真主要使用Proteus仿真軟件和虛擬串口軟件。下位機硬件電路仿真原理圖如圖5-1所示,圖中只畫出了4路放大電路中其中的1路放大電路,其它3路放大與其完全相同。仿真時另外三路放大器的電壓輸出用三個滑動變阻器來模擬溫度傳感器經(jīng)放大后的電壓輸出。在上圖的仿真原理圖中只實現(xiàn)了溫度傳感器、放大電路、A/D轉(zhuǎn)換電路和LCD1602顯示電路的仿真,而串口通信并未實現(xiàn)仿真。在進行串口通信仿真時,首先需要安裝一個虛擬串口軟件VSPDXP5,安裝成功后打開如圖5-1硬件電路仿真原理圖圖5-2所示,會虛擬出兩個串口COM1和COM2,通過這兩個虛擬串口,就可以實現(xiàn)串口通信的仿真。在進行串口通信仿真前需要設(shè)置好仿真原理圖中的串口,其串口參數(shù)設(shè)置如圖5-3所示,選擇串口號COM1,其中串口波特率為9600,數(shù)據(jù)為8位,停止位1位,沒有奇圖5-2虛擬串口偶校驗位。設(shè)置好這些參數(shù)之后,還需要打開串口調(diào)試助手,串口調(diào)試助手的設(shè)置除了串口號選擇COM2不同外,其它設(shè)置必須與與Proteus中串口的設(shè)置一致。設(shè)置好串口調(diào)試助手之后,運行仿真程序,點擊串口調(diào)試助手中打開串口按鈕,若可以進行正常的串口通信,接收窗口將會顯示單片機發(fā)送來數(shù)據(jù)。串口仿真結(jié)果如圖5-4所示,在仿真程序中串口發(fā)送的一幀數(shù)據(jù)一共有7個字節(jié),數(shù)據(jù)幀幀頭為0x31和0x32,數(shù)據(jù)幀幀尾為圖5-3仿真串口參數(shù)設(shè)置0x33,幀頭和幀尾之間的數(shù)據(jù)為A/D采集到的數(shù)據(jù)。從下圖接收到的數(shù)據(jù)分析可知,串口仿真成功。同理,上位機串接收數(shù)據(jù)的仿真也可以通過這兩個虛擬串口進行仿真。圖5-4串口數(shù)據(jù)接收仿真6實物的組裝調(diào)試及軟件驗證6.1實物的制作流程下面分步驟介紹實物的制作流程:(1)使用DXP2004SP2軟件繪制出電路的原理圖,然后生成PCB圖,由于此次硬件放大電路需要用到較多的元器件,因此為了方便布線,選擇使用雙面板布線。在制作雙面板時應(yīng)該選擇手動布線,在布要注意適當?shù)奶砑舆^孔,方便以后電路板的焊接。然后對軟件繪制的PCB板圖進行檢查,看是否存在有短路和斷路、錯誤連線等一些情況的出現(xiàn)。(2)PCB圖檢查完畢后,將PCB圖打印出來,因為制作的PCB為雙面板,所以需要注意將PCB的頂層和底層進行進行對孔,并訂裝好。在把打印的PCB圖印到電路板之前,先要把銅板用砂紙擦干凈,以免有雜質(zhì)影響電路圖的印制;然后通過熨斗將油印好的PCB燙到覆銅板上,在用熨斗燙覆銅板時要仔細,并且毎個地方都要燙到,直到看到清晰的電路輪廓。(3)查看覆銅板上使用熨斗燙印的連線是否有脫落或者斷掉的情況出現(xiàn),如果存在小范圍的這種情況,可以使用油性筆進行描繪補齊斷線和脫落塊,如果存在大范圍的脫落時,需要將銅板沖洗干凈,重新燙印一次電路。然后腐蝕電路板,腐蝕后需要檢查是否存在有銅皮未腐蝕完的現(xiàn)象。在腐蝕過程中要注意掌握時間,時間不能夠太長,最后將腐蝕好的電路板清洗干凈。(4)將腐蝕好的電路板進行打孔,在進行打孔時要注意適當?shù)倪x擇鉆針的大小,不同的元件可能需要的插孔不一定相同。插孔過大過小都會影響到電路的焊接。同時在進行打孔時要注意安全。(5)電路板打完孔后,就是焊接。焊接元件時要將電路板與PCB對照著,注意元件的封裝是否與實物相對應(yīng),防止焊接錯;在焊接電阻時,需要用萬用表測出阻值的大小,確保阻值的大小是對的;電路板焊接好之后,要仔細檢察電路板是否有短路、斷路、虛焊等,確保電路連接的正確性.(6)電路板檢察無誤之后,接下來就是電路板的調(diào)試,通過將編譯好的程序下載到單片機,進行驗證硬件和軟件的正確與否。在程序的調(diào)試過程中要分步進行調(diào)試,先把每個模塊分別測試好,再將所有的模塊組合起來一起測試。這樣既方便錯誤的檢查,又能提高效率。6.2硬件調(diào)試及軟件驗證6.2.1電源電路測試為了防止電源出現(xiàn)問題因電壓過大燒壞元器件,在進行電源測試之前先將除電源外的其它芯片卸下。然后接通過電源,用萬用表測量測量各輸出電壓端的輸出電壓是否正確。在電源測試時,分別測量各三端穩(wěn)壓芯片的輸入和輸出電壓是否在預(yù)期的范圍內(nèi),若不是則應(yīng)立即拔掉電源插頭,檢查電路,再進行測試,直到能正常輸出穩(wěn)定的正負12V和正負5V電壓。6.2.2LCD1602顯示測試測試電路板中的顯示電路LCD1602是否能正常顯示數(shù)字或字符。電源測試好之后,將卸下的元件裝回電路板上,接著將LCD顯示測試程序下載到單片機中,觀察發(fā)現(xiàn)LCD不能顯示,仔細檢察程序之后,確保了程序是正確的。然后檢察電路圖和PCB圖是否有誤,將電路檢察并確保無誤后。最后發(fā)現(xiàn)是LCD的對比度太低,通過調(diào)節(jié)滑滑動變阻器來調(diào)節(jié)LCD的對比度之后,LCD就可以正常顯示數(shù)據(jù)。6.2.3放大電路測試 測試4路電壓放大電路能否按預(yù)期的進行電壓放大。將4路溫度傳感器接入電路中,溫度傳感器將輸出一個電壓作為放大電路的輸入。分別用萬用表測量各通道溫度傳感器的輸出電壓和經(jīng)過放大后的輸出電壓,計算出是否為預(yù)期的放大倍數(shù),如果有偏差可以通過調(diào)節(jié)滑動變阻來調(diào)整電壓放大倍數(shù)。6.2.4A/D轉(zhuǎn)換測試測試A/D轉(zhuǎn)換電路是否能正常采集數(shù)據(jù)。將編寫好的A/D測試程序結(jié)合顯示程序來測試A/D轉(zhuǎn)換電路。將各通道采集到的A/D轉(zhuǎn)換的數(shù)據(jù)經(jīng)過處理轉(zhuǎn)換為電壓之后送到LCD上顯示,并通過用手握住溫度傳感器來改變溫度傳感器的電壓輸出來觀察A/D是否能采集到電壓。若用手緊握傳感器時A/D采集到的電壓增大,松手時A/D采集到的電壓減小,說明A/D可以采集到數(shù)據(jù)。為了確保A/D采集到的數(shù)據(jù)是正確的,用萬用表測量各通道放大電路的電壓輸出與A/D采集到的電壓是否一致,若一致則說明A/D可以正常采集數(shù)據(jù)。在進行計算A/D采集到的電壓時要注意A/D的參考電壓,參考電壓應(yīng)與實際電路測量的參考電壓為準。6.2.5下位機串口通信測試 測試串口通信電路能否進行正常發(fā)送數(shù)據(jù)。在串口通信測試中使用一根串口轉(zhuǎn)USB線來實現(xiàn)下位機與上位機之間的串口通信。將已編寫好的串口通信測試程序下載到單片機中,剛開始先不使用自己編寫的上位機與下位機進行測試,而是使用串口調(diào)試助手軟件與下位機進行通信,這樣就可以排除自己編寫上位機出錯的可能。當串口調(diào)試助手可以正確接收到單片機通過串口發(fā)送過來數(shù)據(jù),說明串口及串口發(fā)送程是正確的。6.2.6上位機串口通信測試 測試上位機能否接收數(shù)據(jù)并進行數(shù)據(jù)處理和顯示。將已測試好的串口發(fā)送程序燒寫到單片機,接通過電源。在上位機的人機交互界面上選擇串口號、設(shè)定串口的相關(guān)參數(shù)、采集速率和報警溫度上限等設(shè)置。按下數(shù)據(jù)采集按鈕,觀察數(shù)據(jù)接收窗口是否能接收到數(shù)據(jù)。若不能接收到數(shù)據(jù),則檢查上位機串口接收程序,若可以接收到數(shù)據(jù),則可以進一步對上位機是否可以正常處理數(shù)據(jù)和顯示數(shù)據(jù)等功能進行測試。6.2.7下位機與上位機整體功能測試測試整個設(shè)計是否能正常工作。將以上測試LCD顯示、A/D轉(zhuǎn)換和串口通信等測試程序整合起來,結(jié)合上位機一起來測試整個設(shè)計的運行結(jié)果。首先下位機將采集到的4通道A/D轉(zhuǎn)換值,通過數(shù)據(jù)處理在LCD上顯示出4路溫度值,然后再將A/D轉(zhuǎn)換4路8位數(shù)字量值通過串口發(fā)送到上位。在發(fā)送4路數(shù)字量時,要注意數(shù)據(jù)要以數(shù)據(jù)幀的格式發(fā)送,即按順序發(fā)送兩個數(shù)據(jù)幀幀頭0x31和0x32,接著發(fā)送4個字節(jié)的數(shù)據(jù),這4個字節(jié)為A/D采集到的4路數(shù)字量,最后再發(fā)送0x31作為一幀數(shù)據(jù)的幀尾。上位就是根據(jù)下機位的數(shù)據(jù)幀發(fā)送格式進行獲取4路A/D轉(zhuǎn)換值的。在上位機上設(shè)定好各種參數(shù)之后,開始數(shù)據(jù)采集,首先驗證上位機上顯示的溫度值是否與下位LCD顯示的溫度值一致,然后逐一測試溫度波形曲線、溫度強度圖表、數(shù)據(jù)顯示和存儲等是否正確。若出現(xiàn)錯誤則分析錯誤的原因并將其改正過來。6.3數(shù)據(jù)測量及誤差分析6.3.1溫度傳感器標定溫度傳感器TC1047理論上是0℃時為100mV,40℃時為900mV,但在實際中,理論與實際是有一定的差距的,為了使測量的數(shù)據(jù)更加的準確,需要對4路溫度傳感器進行標定。由于條件有限,不能獲得比環(huán)境溫度更低的溫度,在進行溫度傳感器標定時按下面的方法來完成。在標定過程中將溫度傳感器DS18B20測量的溫度作為標準溫度。首先將一定溫度的水放在一個較大的燒杯中,再將一個較小的空燒杯放在較大的燒杯里,然后將溫度傳感器TC1047放到空燒杯中,同時溫度傳感器DS18B20也放進去,并且DS18B20要和溫度傳感器TC1047接近,接著連續(xù)測量三組數(shù)據(jù);然后將大燒杯里的水加上溫度較高的水,也連續(xù)測出三組數(shù)據(jù);就這樣,不斷提高大燒杯中的水溫來獲取溫度傳感器所處的環(huán)境溫度,并測量出相應(yīng)溫度傳感器輸出的電壓和記錄DS18B20的讀數(shù)。表6-1、表6-2、表6-3和表表6-1通道1溫度傳感器標定測量數(shù)據(jù)第一組數(shù)據(jù)第二組數(shù)據(jù)第三組數(shù)據(jù)傳感器電壓/V0.740.730.740.800.790.790.850.860.84標準溫度/℃24.424.324.430.430.530.435.735.935.8第一組數(shù)據(jù):平均電壓輸出:平均標準溫度:℃第二組數(shù)據(jù):平均電壓輸出:平均標準溫度:℃第三組數(shù)據(jù):平均電壓輸出:平均標準溫度:℃表6-2通道2度傳感器標定測量數(shù)據(jù)第一組數(shù)據(jù)第二組數(shù)據(jù)第三組數(shù)據(jù)傳感器電壓/V0.740.740.740.810.790.820.850.860.85標準溫度/℃24.324.524.430.530.430.535.635.935.7第一組數(shù)據(jù):平均電壓輸出:平均標準溫度:℃第二組數(shù)據(jù):平均電壓輸出:平均標準溫度:℃第三組數(shù)據(jù):平均電壓輸出:平均標準溫度:℃表6-3通道3度傳感器標定測量數(shù)據(jù)第一組數(shù)據(jù)第二組數(shù)據(jù)第三組數(shù)據(jù)傳感器電壓/V0.730.740.740.800.790.820.830.860.84標準溫度/℃24.324.524.430.430.430.635.735.835.8第一組數(shù)據(jù):平均電壓輸出:平均標準溫度:℃第二組數(shù)據(jù):平均電壓輸出:平均標準溫度:℃第三組數(shù)據(jù):平均電壓輸出:平均標準溫度:℃表6-4通道4度傳感器標定測量數(shù)據(jù)第一組數(shù)據(jù)第二組數(shù)據(jù)第三組數(shù)據(jù)傳感器電壓/V0.750.730.720.830.790.810.850.830.86標準溫度/℃24.624.424.330.730.230.435.735.635.8第一組數(shù)據(jù):平均電壓輸出:平均標準溫度:℃第二組數(shù)據(jù):平均電壓輸出:平均標準溫度:℃第三組數(shù)據(jù):平均電壓輸出:平均標準溫度:℃根據(jù)表6-1、表6-2、表6-3、表6-4計算出的各通道溫度傳感器平均輸出電壓和對應(yīng)的平均標準溫度繪制出TC1047溫度傳感器的實際輸出電壓與溫度的關(guān)系如圖6-1所示。圖6-1四路溫度傳感器實際輸出電壓與溫度關(guān)系曲線為了觀察溫度傳感器輸出電壓隨溫度變化的趨勢直線,并將趨勢直線與理論直線對比。用EXL繪制出4通道的各自線性趨勢線和理論的直線如圖6-2所示。圖中可以看出各圖6-2傳感器實際輸出電壓隨溫度度變化的趨勢曲線通道的傳感器輸出電壓與溫度的趨勢直線與理論直線近似相等。為了使測量的溫度更加準確,將各通道溫度傳感器電壓-溫度變化趨勢直線的斜率和y軸的截距分別相加再作平均值作為的實際直線斜率和截距。下面分別計算出平均直線斜率k和截距d。斜率:截距:=0.495所以溫度傳感器的實際輸出電壓與溫度的關(guān)系表達示為:其中為溫度傳感器輸出電壓,單位為;為所測溫度,單位為℃。6.3.2數(shù)據(jù)的測量對溫度傳感器進行標定之后就可以對溫度進行實時采集。在進行數(shù)據(jù)采集時將串口的相關(guān)參數(shù)設(shè)置好之后,再設(shè)置報警溫度上限為40℃,數(shù)據(jù)采集時間間隔為500ms。然后運行上位機和下位機程序,并點擊上位機的開始運行按鈕,就可以實現(xiàn)數(shù)據(jù)的采集和顯示。上位機的實時數(shù)據(jù)采集界面如圖6-3所示,用手觸摸1通道溫度傳感器,則通道1的實時曲線也會隨著溫度的改變而改變。在界面左上角窗口顯示的是各通道溫度實時強度圖,圖中可以看出當通道1的溫度升高時,強度圖表中通道1的顏色也會隨之變淡,說明溫度在升高,而顏色加深時,說明溫度在降低。強度圖表下面顯示的是采集到的4通道溫度數(shù)據(jù),同時也顯示出采集數(shù)據(jù)的時間。在顯示界面的右下角顯示的是數(shù)控機床在當前采集到溫度環(huán)境下的圖6-3上位機實時數(shù)據(jù)顯示界面采集溫度數(shù)據(jù)時還需要對采集到的溫度數(shù)據(jù)進行存儲,點擊上位機中的數(shù)據(jù)存儲路徑可以選擇數(shù)據(jù)存儲的路徑,可將溫度數(shù)據(jù)以TXT或者XLS的格式存儲,如圖6-4所示為在采集過程中溫度數(shù)據(jù)存儲文件。圖6-4溫度數(shù)據(jù)存儲文件在實時數(shù)據(jù)顯示界面顯示的是動態(tài)的數(shù)據(jù),為了方便數(shù)據(jù)的觀察,歷史數(shù)據(jù)顯示界面可以讀取存儲文件里的數(shù)據(jù)并數(shù)據(jù)出來,方便數(shù)據(jù)的分析。在程序運行時點擊歷史界面中的開始讀取按鈕就可以讀取歷史文件數(shù)據(jù)并顯示出來,其讀取的歷史數(shù)據(jù)界面顯示如圖6-5所示。圖6-5上位機歷史數(shù)據(jù)顯示界面上位機在進行數(shù)據(jù)采集和顯示的同時,下位機也可以實現(xiàn)溫度的采集并在LCD1602上顯示出實時的溫度數(shù)據(jù),下位機4路溫度顯示如圖6-6所示。圖6-6下位機LCD1602溫度顯示6.3.3誤差計算及分析(1)誤差計算將溫度傳感器進行標定之后,需要對測量的溫度進行誤差計算和測量誤差分析。在室溫度下將4路溫度傳感器與作為標準電壓測量的DS18B20緊挨著放在一起,分別記錄4路溫度值和DS18B20的讀數(shù)。其中數(shù)據(jù)記錄如表6-5所示。表6-5溫度傳感器溫度測量值及標準溫度測量值通道1通道2通道3通道4測量值/℃26.526.426.726.1標準值/℃26.3由上表的測量數(shù)據(jù)可以計算出各通道的測量誤差:通道1測量誤差:通道2測量誤差:通道3測量誤差:通道4測量誤差:(2)誤差分析溫度測量誤差產(chǎn)生的原因可能有以下幾個方面:eq\o\ac(○,1)經(jīng)放大電路后產(chǎn)生的誤差。在求解溫度的過程中,需要用到傳感器經(jīng)放大電路后輸出電壓及放大電路的放大倍數(shù)。而在實際中放大電路的放大倍數(shù)在進行計算和測量時本身就有一定的誤差,導(dǎo)致最終的溫度數(shù)據(jù)產(chǎn)生誤差。eq\o\ac(○,2)電源不穩(wěn)定產(chǎn)生的A/D轉(zhuǎn)換誤差。在測量溫度的過程中,如電源電壓的不穩(wěn)定,引起電壓的波動,即A/D參考電壓發(fā)生波動,將會造成A/D采集到的電壓偏大或者偏小。這樣也會使計算得到的溫度產(chǎn)生誤差。eq\o\ac(○,3)軟件計算誤差。從A/D采集到的壓開始到計算出溫度值都是在單片機中實現(xiàn)的,在這過程中都需經(jīng)過很多的數(shù)據(jù)處理,而軟件對數(shù)據(jù)處理的精度也一定的限制,只能處理一定精度的數(shù)據(jù),超過軟件所能表達的精度時會自動將最低位或最高位舍去。這樣就造成了軟件數(shù)據(jù)處理誤差。6.4軟硬件調(diào)試綜述在進行軟件和硬件的調(diào)試時,會遇到許多實際的問題,在進行調(diào)試時,要握調(diào)試的方法和技巧。主要分下面幾個方面來簡述調(diào)試過程中遇到的問題和解決的方法。首先,硬件電路的調(diào)試。理論與實際總是有一定的差距,在電路制作出來之后需要耐心地對整塊電路進行調(diào)試,檢查是否如預(yù)期的一樣。在電路的調(diào)試中發(fā)現(xiàn)LCD不能正常顯示,首先通過檢查硬件電路,發(fā)現(xiàn)沒有問題,然后再排除程序錯誤的可能,最后發(fā)現(xiàn)是LCD對比度太低而不能顯示,通過調(diào)節(jié)滑動變阻調(diào)整其對比度之后就可以正常顯示。而在這塊硬件的調(diào)試過程中,采用先部分調(diào)試,再整體調(diào)試的分法

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論