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

下載本文檔

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

文檔簡(jiǎn)介

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

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論