《基于Labview的上位機(jī)系統(tǒng)和STM32單片機(jī)的多點(diǎn)溫度采集系統(tǒng)設(shè)計(jì)》15000字_第1頁(yè)
《基于Labview的上位機(jī)系統(tǒng)和STM32單片機(jī)的多點(diǎn)溫度采集系統(tǒng)設(shè)計(jì)》15000字_第2頁(yè)
《基于Labview的上位機(jī)系統(tǒng)和STM32單片機(jī)的多點(diǎn)溫度采集系統(tǒng)設(shè)計(jì)》15000字_第3頁(yè)
《基于Labview的上位機(jī)系統(tǒng)和STM32單片機(jī)的多點(diǎn)溫度采集系統(tǒng)設(shè)計(jì)》15000字_第4頁(yè)
《基于Labview的上位機(jī)系統(tǒng)和STM32單片機(jī)的多點(diǎn)溫度采集系統(tǒng)設(shè)計(jì)》15000字_第5頁(yè)
已閱讀5頁(yè),還剩31頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

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

文檔簡(jiǎn)介

基于Labview的上位機(jī)系統(tǒng)和STM32單片機(jī)的多點(diǎn)溫度采集系統(tǒng)設(shè)計(jì)摘要本畢業(yè)設(shè)計(jì)是基于LabVIEW的多點(diǎn)溫度采集系統(tǒng)設(shè)計(jì),利用溫度傳感器收到相應(yīng)的溫度數(shù)據(jù),通過(guò)單片機(jī)與上位機(jī)相連,利用labview來(lái)處理溫度數(shù)據(jù),繼而實(shí)現(xiàn)多點(diǎn)溫度采集系統(tǒng)的設(shè)計(jì)。多點(diǎn)溫度采集系統(tǒng)主要由基于Labview的上位機(jī)系統(tǒng)和基于STM32F103C8系列單片機(jī)及DS18B20溫度傳感器的下位機(jī)系統(tǒng)組成,其中最為重要的是基于Labview的上位機(jī)系統(tǒng)對(duì)數(shù)據(jù)的處理。單片機(jī)控制DS18B20溫度傳感器,實(shí)現(xiàn)多點(diǎn)溫度數(shù)據(jù)采集,并且通過(guò)串口將數(shù)據(jù)傳回PC端labview,進(jìn)行數(shù)據(jù)的交互,由labview根據(jù)數(shù)據(jù)制作圖表顯示并且添加溫度閾值,實(shí)現(xiàn)高溫,低溫報(bào)警,以及保存數(shù)據(jù)到txt文件等功能。下位機(jī)主程序包括單片機(jī)等待溫度采集命令、調(diào)用溫度數(shù)據(jù)讀取子程序、發(fā)送數(shù)據(jù)等程序。單片機(jī)接通電源,對(duì)各項(xiàng)數(shù)據(jù)進(jìn)行初始化,而后便開始等待命令進(jìn)行采集。接收到溫度數(shù)據(jù)采集命令,就調(diào)用程序的子函數(shù),通過(guò)溫度采集函數(shù),來(lái)采集到溫度數(shù)據(jù),而后經(jīng)過(guò)數(shù)據(jù)的轉(zhuǎn)換,并且進(jìn)行數(shù)據(jù)處理之后,將溫度數(shù)據(jù)傳輸?shù)絇C端的上位機(jī)。而后便重新開始等待采集命令,從而實(shí)現(xiàn)在接通電源后能夠持續(xù)進(jìn)行溫度采集的功能。上位機(jī),首先是PC端labview通過(guò)串口接收到溫度數(shù)據(jù),而后進(jìn)行對(duì)數(shù)據(jù)的檢查,如果溫度數(shù)據(jù)完全正確,則通過(guò)顯示控件以及溫度計(jì),顯示出收到的數(shù)據(jù),并且通過(guò)數(shù)據(jù)建立圖表。并且能夠把收集到的數(shù)據(jù)保存在指定路徑的txt文件中。最主要的工作在于軟件設(shè)計(jì)中對(duì)模塊的整合以及對(duì)于框架的設(shè)計(jì)。經(jīng)過(guò)幾次的實(shí)驗(yàn),推翻了一開始建立的構(gòu)架,在一些資料的啟發(fā)下,選擇了利用狀態(tài)機(jī)作為一個(gè)大框架來(lái)進(jìn)行平臺(tái)的搭建,包含初始化狀態(tài),等待狀態(tài),發(fā)送狀態(tài),接收狀態(tài),處理狀態(tài),退出狀態(tài),而后再進(jìn)行具體功能的實(shí)現(xiàn)。關(guān)鍵詞:溫度采集;數(shù)據(jù)分析;建立圖表;串行傳輸;溫度報(bào)警目錄TOC\o"1-3"\h\u122261引言 和控制。而后逐漸發(fā)展成控制系統(tǒng),通過(guò)中央控制終端設(shè)備以及傳感器等,以達(dá)到自己的使用目的,有些類似現(xiàn)在的上位機(jī),下位機(jī),傳感器等的互聯(lián)方式。都是通過(guò)計(jì)算機(jī)根據(jù)程序反饋的參數(shù)給終端設(shè)備下達(dá)指令,而終端設(shè)備則是給計(jì)算機(jī)一個(gè)回饋信號(hào),并且下發(fā)指令,讓具體的設(shè)備采取操作,實(shí)現(xiàn)生產(chǎn)環(huán)境溫度的調(diào)節(jié)。而到現(xiàn)在,溫度采集,溫度控制等技術(shù)正走向綜合化。國(guó)外開始開發(fā)通過(guò)計(jì)算機(jī)為數(shù)據(jù)采集控制系統(tǒng)的終端,能夠在各個(gè)不同方面進(jìn)行綜合分析控制的多因子綜合控制系統(tǒng)。并且在這個(gè)方面,一些國(guó)家正漸漸走向完全自動(dòng)化的道路,無(wú)人化的情況也愈加普遍。虛擬儀器技術(shù):根據(jù)電子測(cè)量?jī)x器的發(fā)展,大致可以把它分為模擬儀器、數(shù)字化儀器、智能儀器和虛擬儀器四類。而虛擬儀器就是和本畢業(yè)設(shè)計(jì)相關(guān)的,由美國(guó)國(guó)家儀器公司NationalInstrumentsCorp提出的,計(jì)算機(jī)技術(shù)和儀器測(cè)量相結(jié)合的方向。而國(guó)內(nèi)外的差距在這個(gè)方面確實(shí)顯而易見(jiàn),國(guó)外是生產(chǎn)者而我國(guó)是使用者。NI公司開發(fā)的Labview軟件以及LabWindows/CVI開發(fā)軟件,這兩款軟件都是國(guó)際上公認(rèn)的優(yōu)秀虛擬儀器開發(fā)平臺(tái)軟件。國(guó)內(nèi)虛擬儀器技術(shù)引入以后,應(yīng)用還是非常廣泛的,各個(gè)大學(xué)實(shí)驗(yàn)室都有虛擬儀器的開發(fā)成果。像四川大學(xué)的教師還研制初“航空電臺(tái)二線綜合測(cè)試儀”組成虛擬儀器系統(tǒng)。但是在這個(gè)方面我國(guó)和國(guó)外還是有著明顯的差距。

2概述2.1多點(diǎn)溫度采集系統(tǒng)概述溫度傳感器發(fā)展到現(xiàn)在已經(jīng)是最普遍的傳感器只有了,他的發(fā)展主要經(jīng)歷了三個(gè)階段:傳統(tǒng)的分立式溫度傳感器、模擬集成溫度傳感器、智能集成溫度傳感器。目前的智能溫度傳感器與20世紀(jì)90年代被研發(fā)出來(lái),它是微電子技術(shù)、計(jì)算機(jī)技術(shù)和自動(dòng)測(cè)試技術(shù)(ATE)的結(jié)晶。在功能上,他能夠完美的輸出溫度數(shù)據(jù),以及一些相關(guān)的變量,并且兼容性好,能夠適配各種型號(hào)的單片機(jī)。但是社會(huì)的發(fā)展讓人們對(duì)溫度傳感器的要求也日漸提高,所以溫度傳感器從單片機(jī)的模擬式轉(zhuǎn)向數(shù)字化發(fā)展,像網(wǎng)絡(luò)化發(fā)展,通過(guò)技術(shù)的飛速發(fā)展,做到了更高精度,多功能,且總線標(biāo)準(zhǔn)化,降低了成本,提升了安全性。多點(diǎn)溫度采集系統(tǒng)應(yīng)運(yùn)而生。其包含了溫度傳感器,單片機(jī),以及上位機(jī)軟件。而在本畢業(yè)設(shè)計(jì)中,采用了基于Labview的上位機(jī)系統(tǒng)和基于stm32F103C8系列單片機(jī)和DS18B20溫度傳感器的下位機(jī)系統(tǒng)。在基于labview的多點(diǎn)溫度采集系統(tǒng)中,虛擬儀器和單片機(jī)的連接采用串口的模式。因?yàn)榻嚯x之下,串口節(jié)省傳輸線,并且傳輸速率高,穩(wěn)定性高。串口有多種接口RS-232,RS-422,RS-485等,它們是串行接口按電氣標(biāo)準(zhǔn)及協(xié)議來(lái)劃分的。本畢業(yè)設(shè)計(jì)采用的是USB轉(zhuǎn)TTL接口。串口的作用就是串并聯(lián)轉(zhuǎn)換,是將CPU的并行信號(hào)轉(zhuǎn)化為連續(xù)的串行數(shù)據(jù)流發(fā)送出去,并且可以把串行的數(shù)據(jù)流轉(zhuǎn)化為并行的數(shù)據(jù)傳回CPU。主要參數(shù)有波特率,數(shù)據(jù)位,停止位,奇偶校驗(yàn)位等?;趌abview的多點(diǎn)溫度采集系統(tǒng)實(shí)現(xiàn)了溫度信息的數(shù)據(jù)自動(dòng)采集、溫度顯示及溫度達(dá)到上限或下限溫度時(shí)自動(dòng)報(bào)警,并且將采集到的數(shù)據(jù)以以一定格式保存在指定路徑下的txt文件中的功能。主要的系統(tǒng)框圖如圖1:圖SEQ圖\*ARABIC1多點(diǎn)溫度采集系統(tǒng)框圖2.2本設(shè)計(jì)方案思路2.2.1器件的選型溫度傳感器:因?yàn)槲覀儾](méi)有需要在嚴(yán)苛環(huán)境下的要求,所以只需要滿足正常狀況下的溫度采集,并且確保一定的精度就可以達(dá)到我們的要求。所以我們需要考慮的溫度傳感器技術(shù)指標(biāo)只有測(cè)量準(zhǔn)確度,測(cè)量溫度范圍,工作電源這三個(gè)。而目前市面上的溫度傳感器已經(jīng)非常普遍了,我們只需要能自動(dòng)實(shí)時(shí)監(jiān)測(cè)溫度,單片機(jī)電流能夠驅(qū)動(dòng),并且有良好的測(cè)量廣度的傳感器。于是選用了DS18B20溫度傳感器。DS18B20溫度傳感器體積小,價(jià)格低廉,3V-5.5V單片機(jī)就可以驅(qū)動(dòng),并且功耗低,且精確到0.1攝氏度,完美符合我們的要求。單片機(jī):因?yàn)闇囟葌鞲衅鞒穗娫淳€和接地線就只用一個(gè)IO口便能夠發(fā)送數(shù)據(jù),并且在整個(gè)下位機(jī)系統(tǒng)之中,只使用了溫度傳感器和串口,所以用到的資源并不多,我們優(yōu)先考慮最小系統(tǒng)板一類的。而現(xiàn)在主要使用的單片機(jī)大多為C51單片機(jī)與STM32單片機(jī)。但是由于C51單片機(jī)采取馮諾依曼結(jié)構(gòu),而STM32單片機(jī)采用了哈弗結(jié)構(gòu),數(shù)據(jù)處理更快,于是采用了stm32F103C8T6系列單片機(jī)的最小系統(tǒng)板。USB轉(zhuǎn)串口:使用USB轉(zhuǎn)串口設(shè)備相當(dāng)于將傳統(tǒng)的體積較大攜帶不易的串口設(shè)備變成了便捷型即插即用的USB設(shè)備。UART一般來(lái)說(shuō)包含TTL電平的串口和RS232電平的串口。TTL電平是3.3V的,而RS232的電平對(duì)單片機(jī)來(lái)說(shuō)要求過(guò)高,只需要選擇TTL電平類型即可用單片機(jī)驅(qū)動(dòng)。而在國(guó)內(nèi)搜索的,市面上最普遍的是CH340模塊。CH340模塊是國(guó)產(chǎn)的,價(jià)格比較便宜,并且能夠完美的實(shí)現(xiàn)USB轉(zhuǎn)串口功能,最為適合本畢業(yè)設(shè)計(jì)。程序燒寫模塊:程序燒錄方式一般分為ISP(在系統(tǒng)編程),IAP(在應(yīng)用編程),ICP(在電路編程)。一般單片機(jī)都是在系統(tǒng)編程的餓方式來(lái)燒錄,即設(shè)計(jì)版圖的時(shí)候只需要把接口設(shè)計(jì)在板子上,通過(guò)燒寫器寫入。這樣做可以節(jié)約pcb板的使用面積和成本,并且簡(jiǎn)化了產(chǎn)品應(yīng)用程序的下載。一般程序下載器分為ST-LINK、J-LINK、U-LINK,他們懂得區(qū)別是在于適用范圍。因?yàn)镾T-LINK是針對(duì)STM8和STM32系列芯片的仿真器,并且成本較低,于是希望采用ST-LINK作為程序燒寫器。而ST-LINK-V2是最常用且得到廣泛支持的商業(yè)程序員之一。他具備SWIM、JTAG、SWD等標(biāo)準(zhǔn)接口,能輕易滿足我們燒寫程序的要求,并且上面附有指示燈,可以在使用時(shí)得到一個(gè)反饋。現(xiàn)今ST-LINK-V2已經(jīng)被做成U盤大小,體積小易攜帶也愈加方便。所以我們采用ST-LINK-V2作為程序燒寫的工具。2.2.2軟件方案思路本設(shè)計(jì)是溫度采集系統(tǒng),設(shè)計(jì)思路是溫度的“采集一顯示一分析”。首先是下位機(jī),單片機(jī)控制溫度傳感器進(jìn)行溫度采集。下位機(jī)主程序包括單片機(jī)系統(tǒng)初始化、等待采集命令、調(diào)用溫度數(shù)據(jù)讀取子程序、調(diào)用數(shù)據(jù)轉(zhuǎn)換子程序、發(fā)送數(shù)據(jù)等程序。單片機(jī)接通電源,對(duì)各項(xiàng)數(shù)據(jù)進(jìn)行初始化,而后便開始等待命令進(jìn)行采集。接收到溫度數(shù)據(jù)采集命令,就調(diào)用程序的子函數(shù),通過(guò)溫度采集函數(shù),來(lái)采集到溫度數(shù)據(jù),而后經(jīng)過(guò)數(shù)據(jù)的轉(zhuǎn)換,并且進(jìn)行數(shù)據(jù)處理之后,通過(guò)串口(本畢業(yè)設(shè)計(jì)采取串口1)將溫度數(shù)據(jù)傳輸?shù)絇C端的上位機(jī)。而后便重新開始等待采集命令,從而實(shí)現(xiàn)在接通電源后能夠持續(xù)進(jìn)行溫度采集的功能。而后是上位機(jī),運(yùn)用LabVIEW計(jì)算機(jī)技術(shù)和儀器相結(jié)合的特點(diǎn),用它靈活的圖形化可視化編程技術(shù),發(fā)揮了虛擬儀器的最大特點(diǎn),以圖形化拖拽模塊的方式,搭建框架,建立了基于LabVIEW的多點(diǎn)溫度采集系統(tǒng)。首先是PC端labview接收到下位機(jī)傳來(lái)的溫度數(shù)據(jù),首先進(jìn)行對(duì)數(shù)據(jù)的一段遞進(jìn)的判定:是否接收到數(shù)據(jù),是否接收到完整的數(shù)據(jù),接收到的數(shù)據(jù)是否完全正確。只需要接收到完整的數(shù)據(jù),就對(duì)數(shù)據(jù)進(jìn)行處理,并且通過(guò)串口發(fā)回一段數(shù)據(jù),進(jìn)行回饋,告知下位機(jī)已經(jīng)成功接收到數(shù)據(jù)。如果溫度數(shù)據(jù)完全正確,則通過(guò)顯示控件以及溫度計(jì),顯示出收到的數(shù)據(jù),并且通過(guò)數(shù)據(jù)建立圖表,并且能夠?qū)囟葦?shù)據(jù)以一定的格式寫入到固定路徑下的TXT文件中,存儲(chǔ)數(shù)據(jù)以便進(jìn)行查閱。一個(gè)完整的多點(diǎn)溫度采集系統(tǒng),需要軟硬件的完美配合,才能夠嚴(yán)謹(jǐn),精準(zhǔn)的完成功能。在本畢業(yè)設(shè)計(jì)過(guò)程中,總體的設(shè)計(jì),采用了自上而下的設(shè)計(jì)框架,先確定所需的功能,而后預(yù)想到大概的界面設(shè)計(jì),根據(jù)需求制定方案,建立一個(gè)大概的框架,而后的功能劃分位一個(gè)個(gè)小模塊,分別進(jìn)行設(shè)計(jì)與編程,同時(shí)各個(gè)模塊能夠互相組合,搭建成一個(gè)完美的整體,能夠很好的配合運(yùn)行。系統(tǒng)包含上位機(jī)系統(tǒng)和下位機(jī)系統(tǒng),下位機(jī)系統(tǒng)主要是通過(guò)單片機(jī)編程控制溫度傳感器進(jìn)行數(shù)據(jù)的采集,而上位機(jī)是對(duì)下位機(jī)傳輸來(lái)的數(shù)據(jù)進(jìn)行分析處理,實(shí)現(xiàn)相應(yīng)的功能,并對(duì)下位機(jī)進(jìn)行一個(gè)反饋。2.3研發(fā)方向和技術(shù)關(guān)鍵1.利用單片機(jī)進(jìn)行溫度采集,通過(guò)嘗試來(lái)得出最合適的方法,來(lái)進(jìn)行多點(diǎn)溫度的數(shù)據(jù)采集。2.靈活使用labview軟件,對(duì)得到的溫度數(shù)據(jù)進(jìn)行分析。3.LabVIEW與單片機(jī)聯(lián)合調(diào)試,能夠確保兩邊能夠完美配合運(yùn)行。4.實(shí)現(xiàn)溫度信息的數(shù)據(jù)自動(dòng)采集、溫度顯示及以及溫度分析成為本設(shè)計(jì)的主要內(nèi)容。2.4主要技術(shù)指標(biāo)(1)溫度數(shù)據(jù)精度:±0.1℃(2)溫度數(shù)據(jù)更新速度:1s(3)labview界面設(shè)計(jì)完整性(4)labview界面設(shè)計(jì)靈活性

3硬件設(shè)計(jì)3.1串口通信模塊串行與并行通信的優(yōu)缺點(diǎn)對(duì)比:顧名思義,串口通信就是用串行連接的方式進(jìn)行通訊,即一個(gè)字符一個(gè)字符的傳輸,就好像排隊(duì)一樣排成一條隊(duì)伍就是串行,多條就是并行,串行只需要一條道,而并行就要建立多條道,但是并行效率更高。建立更多的隊(duì)伍提高效率是必然的。但是在人數(shù)不多的情況下,并且排隊(duì)解決的速度很快,那么就沒(méi)有必要建立多條道路,只需要一條道就能很好的達(dá)成排隊(duì)的目的。本畢業(yè)設(shè)計(jì)就是基于這個(gè)原因,選擇串行通訊。串口通信原理:串行通訊就是每次傳輸?shù)臄?shù)據(jù)只有一個(gè)字符,并且每個(gè)字符都有一個(gè)固定的格式,以“起始位”為頭,以“停止位”為尾。并且起始位一般為低電平。而字符一般前七位是數(shù)據(jù)位用于傳輸數(shù)據(jù),后面一位是校驗(yàn)位,檢驗(yàn)位則分奇偶,或者無(wú)校驗(yàn)位。最后有停止位和空閑位,都規(guī)定為高電平。所以在收到數(shù)據(jù)的時(shí)候,就能夠通過(guò)高低電平的轉(zhuǎn)換,即長(zhǎng)段的高電平之后,一個(gè)低電平即為“起始位”,起始位之后就是7個(gè)數(shù)據(jù)位,以得到我們的數(shù)據(jù)。圖2為串口傳輸示意圖:圖SEQ圖\*ARABIC2串口傳輸示意圖USB總線的常用轉(zhuǎn)接芯片有CH340,CH341,CH372等等。結(jié)合了市場(chǎng)情況,以及我們所需的要求,本畢業(yè)設(shè)計(jì)采用了CH340模塊,可以實(shí)現(xiàn)USB轉(zhuǎn)串口、USB轉(zhuǎn)IrDA紅外或者USB轉(zhuǎn)打印口。在串口方式下,CH340通過(guò)MODEM聯(lián)絡(luò)信號(hào)的方式,讓計(jì)算機(jī)能夠擴(kuò)展異步串口,或是能夠?qū)⒑?jiǎn)單的串口設(shè)備進(jìn)行功能的升級(jí),讓其能起到總線效果。CH340是國(guó)產(chǎn)芯片,相比于很多其他進(jìn)口芯片他的價(jià)格更具競(jìng)爭(zhēng)力,CH340批量?jī)r(jià)1.5元每個(gè),并且對(duì)于本畢業(yè)設(shè)計(jì)來(lái)說(shuō)性能已經(jīng)足夠。國(guó)外芯片的話PL2303在市場(chǎng)上有風(fēng)評(píng)不好,有許多仿制品,易出現(xiàn)質(zhì)量問(wèn)題不予采用。CP2102批量?jī)r(jià)5.2元相對(duì)來(lái)說(shuō)價(jià)格有點(diǎn)過(guò)高了,但是由于他的QFN封裝,對(duì)于新手來(lái)說(shuō)焊接比較困難。FT232批量?jī)r(jià)在10元以上這個(gè)價(jià)格基本上已經(jīng)不在考慮范圍內(nèi)了,一般用在工業(yè)級(jí)環(huán)境。經(jīng)過(guò)綜合的比較,我們選擇CH340作為我們開發(fā)板上使用的USB轉(zhuǎn)串口芯片。CH340的特點(diǎn):可以完全兼容Windows操作系統(tǒng)下的串口程序,并且兼容USBV2.0,支持全雙工,支持50-20M波特率??梢杂?-5V電壓驅(qū)動(dòng)。圖SEQ圖\*ARABIC3CH340模塊原理圖圖3為CH340,USB轉(zhuǎn)串口的原理圖,接線情況:兩者電源口相連,CH340芯片的的TransmitData引腳和ReceiveData引腳接排針引出,在外通過(guò)杜邦線分別與單片機(jī)的ReceiveData引腳和單片機(jī)的TransmitData引腳相連,實(shí)現(xiàn)數(shù)據(jù)的傳輸,并且將兩者共地。只有擁有獨(dú)立的接收端和發(fā)送端即允許數(shù)據(jù)同時(shí)在兩個(gè)方向上傳輸,這樣才能實(shí)現(xiàn)數(shù)據(jù)的全雙工傳輸。全雙工通信是兩個(gè)單工通信方式的結(jié)合這種方式能夠?qū)崟r(shí)的雙向的高效的傳輸。3.2溫度傳感器模塊溫度傳感原理:主要分為熱電阻和熱電偶兩類。熱電阻傳感傳感器的原理是由于內(nèi)部金屬材料使用的不同,他的熱脹冷縮特性不同,通過(guò)實(shí)驗(yàn)在不同溫度下的電阻變化總結(jié)規(guī)律,而后根據(jù)規(guī)律,可以選擇其中一個(gè)參量作為輸出信號(hào),以達(dá)到檢測(cè)溫度的效果。本畢業(yè)設(shè)計(jì)采用DS18B20數(shù)字溫度傳感器。因?yàn)檫@一款溫度傳感器具有很多優(yōu)點(diǎn):1.成本低;2.僅需要一條線即可實(shí)現(xiàn)雙向通訊,抗干擾能力強(qiáng);3.測(cè)量精度高,范圍為-55℃~+125℃較廣;4.體積??;5.在使用中不需要任何外圍元件。測(cè)量原理:DS18B20數(shù)字溫度傳感器內(nèi)部具有兩個(gè)晶振。低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,可以產(chǎn)生固定頻率的脈沖信號(hào)送給減法計(jì)數(shù)器,高溫度系數(shù)晶振隨溫度變化其震蕩頻率明顯改變,高溫度系數(shù)晶振所產(chǎn)生的信號(hào)可以作為輸入給另一個(gè)減法計(jì)數(shù)器的脈沖輸入,然后以低溫度系數(shù)振蕩器產(chǎn)生的時(shí)鐘脈沖為基準(zhǔn),通過(guò)計(jì)數(shù)器對(duì)低溫度系數(shù)振蕩器產(chǎn)生的時(shí)鐘脈沖進(jìn)行計(jì)數(shù),直到高溫度系數(shù)晶振產(chǎn)生的脈沖結(jié)束,通過(guò)比值得到溫度數(shù)據(jù),進(jìn)而完成溫度測(cè)量。譬如一度他會(huì)產(chǎn)生一個(gè)脈沖波,三十度則產(chǎn)生三十個(gè)脈沖波。而高溫度系數(shù)晶振由于溫度改變,脈沖數(shù)量改變,而這個(gè)數(shù)量除以地脈沖波個(gè)數(shù),就得到了溫度值。DS18B20管腳排列:1.GND為電源地;2.DQ為數(shù)字信號(hào)輸入/輸出端;3.VDD為外接供電電源輸入端(在寄生電源接線方式時(shí)接地)圖SEQ圖\*ARABIC4DS18B20管腳排列DS18B20溫度的轉(zhuǎn)換:如果我們要做的是讓DS18B20進(jìn)行一次溫度的轉(zhuǎn)換,那具體的操作就是:1、主機(jī)先作個(gè)復(fù)位操作2、主機(jī)再寫一個(gè)操作命令(CCH)來(lái)跳過(guò)ROM作(CCH)命令3、最后主機(jī)發(fā)出一個(gè)轉(zhuǎn)換溫度的命令,而后需要有一個(gè)延時(shí),并且釋放總線,讓DS18B20完成轉(zhuǎn)換的操作。但是要注意的是每個(gè)命令字在寫入的時(shí)候是從低字節(jié)位開始的,例如AAH的二進(jìn)制為10101010,在寫到總線上時(shí)要從低位開始寫,寫的順序是“零、壹、零、壹、零、壹、零、壹”。下面列出時(shí)序控制的流程圖:圖5為DS18B20程序初始化流程圖:圖SEQ圖\*ARABIC5DS18B20程序初始化流程圖圖6為DS18B20程序“寫操作”流程圖:圖SEQ圖\*ARABIC6DS18B20“寫操作”流程圖圖7為DS18B20程序“讀操作”流程圖:圖SEQ圖\*ARABIC7DS18B20“讀操作”流程圖DS18B20時(shí)序圖如圖8:圖SEQ圖\*ARABIC8DS18B20時(shí)序圖時(shí)序圖照應(yīng)了以上的流程圖,涵蓋了初始化,讀操作,寫操作的大概時(shí)序。黑線為主機(jī)操作,藍(lán)線為DS18B20的操作。初始化:主機(jī)控制數(shù)據(jù)線拉低,延時(shí)750us左右,數(shù)據(jù)線拉高。這時(shí)有一個(gè)延時(shí),等待DS18B20反饋。此時(shí)若在15us-60us之間收到DS18B20返回的一個(gè)低電平,則在進(jìn)行一個(gè)延時(shí),而后數(shù)據(jù)線拉高。此中要注意,延時(shí)等待DS18B20反饋的時(shí)候,要進(jìn)行超時(shí)控制。而初始化成功的標(biāo)志就是讀到DS18B20操作的先低后高的時(shí)序。寫操作:上圖中,過(guò)程三表示寫入低電平操作,即總線拉低60us再拉高5us。過(guò)程四表示寫入高電平操作,即總線拉低5us再拉高60us。讀操作:過(guò)程5表示讀低電平,即總線拉低5us然后釋放總線,根據(jù)讀入高低電平判斷數(shù)據(jù)。3.3單片機(jī)模塊單片機(jī)是一種集成電路芯片又稱為單片微控制器,相當(dāng)于把計(jì)算機(jī)系統(tǒng)集成到芯片上,具備多種功能,在工業(yè)控制上得到了廣泛的應(yīng)用。并且隨著技術(shù)的發(fā)展,單片機(jī)越發(fā)普及,從51到32,單片機(jī)現(xiàn)在擁有了更豐富的庫(kù)函數(shù),有了更快的運(yùn)行速率,有了更大的地址空間,更大的存儲(chǔ)器,并且從馮諾依曼結(jié)構(gòu)到了哈弗結(jié)構(gòu),數(shù)據(jù)處理更快了。單片機(jī)在學(xué)生群體中都已經(jīng)成為了做出各項(xiàng)功能的中流砥柱。比如實(shí)驗(yàn)室中,從簡(jiǎn)單的LED信號(hào)燈的控制,PWM波的輸出的控制,到各種復(fù)雜系統(tǒng)的建立,甚至于很多的競(jìng)賽都是以單片機(jī)為核心的,比如全大學(xué)生電子設(shè)計(jì)競(jìng)賽,也是通過(guò)單片機(jī)來(lái)編寫代碼,實(shí)現(xiàn)對(duì)硬件的控制。本畢業(yè)設(shè)計(jì)也是采用單片機(jī)控制。本畢業(yè)設(shè)計(jì)就采用了stm32F103C8T6系列單片機(jī)。大致參數(shù)如下表:表1stm32F103C8T6系列單片機(jī)參數(shù)表名稱STM32F103C8T6總線寬度32位類別集成電路頻率72MHZ程序存儲(chǔ)器容量64KB封裝類型LQFP48工作電壓2V~3.6V程序存儲(chǔ)器類型FLASH工作溫度-40~85℃模數(shù)轉(zhuǎn)換器A/D10*12b因?yàn)楸井厴I(yè)設(shè)計(jì)不需要很多的外設(shè)接口,只需使用串口和個(gè)別IO口,所以選擇的是STM32F103C8T6的最小系統(tǒng)板。stm32F103C8T6系列單片機(jī)最小系統(tǒng)的組成:電源:一般分為分為5V和3.3V這兩個(gè)標(biāo)準(zhǔn)。5V一般由USB提供,3.3V一般是通過(guò)AMS1117芯片穩(wěn)壓得到。晶體振蕩器:提供基準(zhǔn)時(shí)鐘信號(hào),頻率一般為4-16M。復(fù)位電路:電源復(fù)位時(shí),當(dāng)NRST引腳被拉低,產(chǎn)生外部復(fù)位,并產(chǎn)生復(fù)位脈沖,從而使系統(tǒng)復(fù)位。還有調(diào)試下載電路,電源指示燈,測(cè)試指示燈,以及外接排針。

4軟件設(shè)計(jì)4.1總體方案基于labview的多點(diǎn)溫度采集系統(tǒng),軟件設(shè)計(jì)的主要方案分為基于labview的界面設(shè)計(jì)以及基于keil的單片機(jī)驅(qū)動(dòng)程序。STM32F103C8T6單片機(jī)程序設(shè)計(jì):首先定一個(gè)時(shí)鐘,時(shí)鐘包括使能端的時(shí)鐘,和單片機(jī)系統(tǒng)本身自帶的時(shí)鐘。需要根據(jù)你所使用的IO口進(jìn)行具體的判斷。配置IO口,PB6,PB7,PB9以及PA9,PA10;其中PA9,PA10是串口1的固定端口,需要將兩口分別設(shè)置為推挽輸出和浮空輸入,并且改變GPIO速率,最后再進(jìn)行使能。PB9是控制LED燈的端口,起到一個(gè)示意的作用,判斷其是否工作。PB6,PB7,是溫度數(shù)據(jù)傳輸?shù)亩丝?,兩個(gè)端口分別對(duì)應(yīng)一個(gè)溫度傳感器,通過(guò)這兩個(gè)端口來(lái)接收溫度數(shù)據(jù)。配置完成后只需設(shè)置系統(tǒng)時(shí)鐘,在初始化配置TIM,初始化IO口,延時(shí)0.5s,并且循環(huán)DS18B20使能口,一旦采集到一次數(shù)據(jù),便讀取一次溫度數(shù)據(jù)并且發(fā)送一次溫度數(shù)據(jù)。Labview的界面程序設(shè)計(jì):首先程序是一直在運(yùn)行的,所以主要的程序都在一個(gè)while的大框架下。只有進(jìn)行一次的操作在框架之外,指定文件的路徑,與文件名稱,創(chuàng)建txt文件,并且打開文件,建立好序號(hào),溫度1,溫度2以及日期與時(shí)間的寫入格式。圖SEQ圖\*ARABIC9保存數(shù)據(jù)格式程序運(yùn)行時(shí),是根據(jù)狀態(tài)機(jī)來(lái)判斷進(jìn)程,狀態(tài)機(jī)包含六個(gè)狀態(tài)。下面介紹程序在狀態(tài)機(jī)下的具體運(yùn)行。(1)一直運(yùn)行時(shí),整個(gè)界面都有不同的狀態(tài)。首先是初始化狀態(tài)(init),初始化包含串口開閉的狀態(tài);串口目前的狀態(tài);讀取字節(jié)的內(nèi)容;波特率的狀態(tài);波形圖標(biāo)的狀態(tài);以及后面程序使用的變量sendflag狀態(tài);(2)初始化完成之后,自動(dòng)進(jìn)入wait狀態(tài)。等待狀態(tài)中,引入一個(gè)事件結(jié)構(gòu):串口開閉的值改變。若串口開,則先捕捉串口以及波特率,根據(jù)串口是否正確運(yùn)行,連接一個(gè)串口狀態(tài)LED燈,若正確打開串口,就通過(guò)串口發(fā)送一個(gè)數(shù)據(jù)。如果失敗就彈出串口打開失敗窗口。若在這時(shí)點(diǎn)擊exit按鍵,則直接退出while循環(huán)。(3)wait狀態(tài)中,若串口成功打開,則進(jìn)入send狀態(tài),發(fā)送一組自己指定的數(shù)據(jù),如“串口成功打開”;并且將sendflag標(biāo)志位重置,防止重復(fù)發(fā)送數(shù)據(jù),并且使得可以重新檢測(cè)是否發(fā)送數(shù)據(jù)。(4)當(dāng)串口成功打開,并且發(fā)送一個(gè)打開指令之后,進(jìn)入getdata狀態(tài)(收集數(shù)據(jù)狀態(tài))。如果收到數(shù)據(jù),首先檢測(cè)數(shù)據(jù)字節(jié)數(shù)是否為0,若為0,則重新進(jìn)入wait狀態(tài)。如果不為0則確定成功收到數(shù)據(jù),并且顯示出收到的數(shù)據(jù)。并且收到的數(shù)據(jù)字節(jié)數(shù)是一定的,在本畢業(yè)設(shè)計(jì)中,每一條正確的溫度傳輸數(shù)據(jù)都是24個(gè)字節(jié)。如果確認(rèn)收到的數(shù)據(jù)確實(shí)為24個(gè)字節(jié)則將接受到的數(shù)據(jù)在readbuffer顯示出來(lái),并且進(jìn)入deal狀態(tài),如果不為24個(gè)字節(jié),則認(rèn)為收到的數(shù)據(jù)是錯(cuò)誤的,重新進(jìn)入wait狀態(tài)。(5)deal狀態(tài)(處理狀態(tài))中,首先劃分讀取到的數(shù)據(jù),前13個(gè)數(shù)據(jù)都是固定的字符輸入,可以通過(guò)劃分出數(shù)據(jù)的前十三個(gè)字節(jié),進(jìn)行對(duì)比,是否完全一致,如果一致則認(rèn)為收到的數(shù)據(jù)是完全正確的。這時(shí)收集第十四和第十五個(gè)以及第十九和第二十個(gè)數(shù)據(jù),并強(qiáng)制轉(zhuǎn)換類型為浮點(diǎn)數(shù)類型,分別作為溫度1和溫度2數(shù)據(jù)的整數(shù)部分,第十六個(gè)數(shù)據(jù)是小數(shù)點(diǎn),此時(shí)收集第十七個(gè)和第二十二個(gè)數(shù)據(jù),并強(qiáng)制轉(zhuǎn)換類型為浮點(diǎn)數(shù)類型分別作為溫度1和溫度2數(shù)據(jù)的小數(shù)部分,并且除以10與前面得到的溫度數(shù)據(jù)分別相加,得到完整的精確到零點(diǎn)一攝氏度的溫度數(shù)據(jù)但是前提是收到數(shù)據(jù)的前十三位與最后兩位必須與單片機(jī)發(fā)送數(shù)據(jù)一致,方才進(jìn)行這一步的運(yùn)算。而后設(shè)立溫度閾值,溫度閾值在界面中可調(diào),如果實(shí)際收到的數(shù)據(jù)小于溫度閾值,則下限報(bào)警燈亮,反之則正常。并且設(shè)立溫度閥值,溫度閥值在界面中可調(diào),如果實(shí)際收到的數(shù)據(jù)大于溫度閥值,則上限報(bào)警燈亮。并且根據(jù)得到的兩個(gè)溫度數(shù)據(jù)分別建立溫度計(jì)以及當(dāng)前溫度的顯示控件,可以更直觀的觀察數(shù)據(jù)。并且建立波形圖表。波形圖表則可以根據(jù)自己的需要對(duì)時(shí)間和溫度幅值進(jìn)行編輯,包括最小單位,間隔大小,圖表時(shí)間的累加方式,是逐步累加,還是固定一個(gè)長(zhǎng)度,跟隨時(shí)間走動(dòng)都可以自己根據(jù)實(shí)際情況進(jìn)行調(diào)整。并且固定下寫入txt文件的文本格式——序號(hào)),溫度1,溫度2,以及日期和實(shí)踐。并將收到的數(shù)據(jù)寫入指定路徑下的txt文件中。而后進(jìn)入wait狀態(tài),重新準(zhǔn)備接收溫度數(shù)據(jù)。(6)exit狀態(tài)(退出狀態(tài))。只有按下exit鍵的時(shí)候進(jìn)入,改變串口狀態(tài)值,改變窗口開閉值,并且串口關(guān)閉。上述設(shè)計(jì)都基于一個(gè)狀態(tài)機(jī)的建立,即init狀態(tài)(初始化,默認(rèn))到wait狀態(tài)(等待狀態(tài))到send狀態(tài)(發(fā)送狀態(tài))到getdata狀態(tài)(接收數(shù)據(jù)狀態(tài))到deal狀態(tài)(處理數(shù)據(jù)狀態(tài))到exit狀態(tài)(退出狀態(tài))。將基于labview的界面設(shè)計(jì)以及基于keil的單片機(jī)驅(qū)動(dòng)程序相結(jié)合,就是本基于labview的多點(diǎn)溫度采集系統(tǒng)的軟件總體設(shè)計(jì)。4.2程序流圖下圖為keil程序流圖:讀取PB9口接受溫度數(shù)據(jù)發(fā)送溫度數(shù)據(jù)寫入溫度初始參數(shù)設(shè)置讀取PB9口接受溫度數(shù)據(jù)發(fā)送溫度數(shù)據(jù)寫入溫度初始參數(shù)設(shè)置延時(shí)1000ms進(jìn)入循環(huán)下圖為labview程序流圖:圖SEQ圖\*ARABIC11labview流程圖

4.3狀態(tài)分析本畢業(yè)設(shè)計(jì)分為Init,wait,send,GetData,Deal,Exit六個(gè)狀態(tài)。Init狀態(tài):初始化狀態(tài)。如下圖,在整個(gè)while循環(huán)的大框架中,將串口開閉值,串口狀態(tài)值,發(fā)送標(biāo)志位,波特率選擇,清空數(shù)據(jù)接收表和清空?qǐng)D表。圖SEQ圖\*ARABIC12init狀態(tài)程序圖Wait狀態(tài):等待狀態(tài)。分為超時(shí),串口開閉值改變,以及exit,三種情況。串口未打開就一直在超時(shí)狀態(tài)之中,相當(dāng)于等待串口打開。串口打開則進(jìn)行波特率選擇,改變串口狀態(tài),并且通過(guò)布爾控件燈亮來(lái)示意串口已經(jīng)打開。而后進(jìn)入send狀態(tài)。反之則一直在超時(shí)狀態(tài)。Exit狀態(tài)即控制exit控件,只需點(diǎn)擊,就直接直接關(guān)閉串口并且退出程序運(yùn)行。類似于單片機(jī)中中斷的原理。圖SEQ圖\*ARABIC13wait狀態(tài)程序圖Send狀態(tài):發(fā)送狀態(tài)。只檢測(cè)標(biāo)志位,如果sendflag標(biāo)志位為真,則發(fā)送一串?dāng)?shù)據(jù),進(jìn)行回饋,表示已經(jīng)正確的收到了溫度數(shù)據(jù)。并且修改sendflag標(biāo)志位防止重復(fù)發(fā)送數(shù)據(jù)。圖SEQ圖\*ARABIC14send狀態(tài)程序圖GetData狀態(tài):收集數(shù)據(jù)狀態(tài)。下圖從左到右,分別為收到的數(shù)據(jù)先進(jìn)行字節(jié)數(shù)檢測(cè),字節(jié)數(shù)不為0時(shí)即邏輯為真,即在readbuffer中顯示出收到的數(shù)據(jù),若字節(jié)數(shù)與預(yù)期發(fā)送字節(jié)數(shù)相同,就進(jìn)入數(shù)據(jù)處理狀態(tài)。若字節(jié)數(shù)與預(yù)期發(fā)送字節(jié)數(shù)不同,判斷數(shù)據(jù)為錯(cuò)誤數(shù)據(jù)則不進(jìn)行數(shù)據(jù)處理,重新進(jìn)入wait狀態(tài),等待接收溫度數(shù)據(jù)。圖SEQ圖\*ARABIC15GetData狀態(tài)程序圖Deal狀態(tài):數(shù)據(jù)處理狀態(tài)。進(jìn)入deal狀態(tài)就證明收到了完整的信息,則改變sendflag標(biāo)志位,使得進(jìn)入send狀態(tài)時(shí),能夠發(fā)送一串?dāng)?shù)據(jù),為單片機(jī)進(jìn)行一個(gè)回饋。而后通過(guò)“截取字符串”劃分?jǐn)?shù)據(jù)為六段,通過(guò)首尾兩段判斷收到的數(shù)據(jù)是否正確,中間則是分別截取兩個(gè)溫度數(shù)據(jù)的整數(shù)與小數(shù)部分,得到核心數(shù)據(jù)。而后通過(guò)十進(jìn)制數(shù)字符串至數(shù)值轉(zhuǎn)換,轉(zhuǎn)字符串為數(shù)值,再將其轉(zhuǎn)換為單精度浮點(diǎn)數(shù),通過(guò)運(yùn)算得到溫度數(shù)據(jù),精確到0.1攝氏度,并做出波形圖表,溫度計(jì),溫度顯示控件以及將采集的溫度數(shù)據(jù)以序號(hào),溫度1,溫度2,日期和時(shí)間的格式保存到指定路徑下的txt文件中,其中序號(hào)以輸入控件的形式存在,運(yùn)行一次就+1一次,并且保存到序號(hào)的局部變量。并增加高低溫上下限報(bào)警功能。圖SEQ圖\*ARABIC16deal狀態(tài)程序圖Exit狀態(tài):退出狀態(tài)。即通過(guò)串口狀態(tài)判斷串口是否應(yīng)該關(guān)閉,若要關(guān)閉,則關(guān)閉串口,并且調(diào)整串口狀態(tài)和串口開閉值。圖SEQ圖\*ARABIC17exit狀態(tài)程序4.4deal狀態(tài)模塊分析檢測(cè)數(shù)據(jù)模塊:如圖18,根據(jù)幀頭幀尾的幾位確定的數(shù)據(jù),來(lái)判斷收到的數(shù)據(jù)是否完全正確。如果正確,則對(duì)收到溫度的數(shù)據(jù)進(jìn)行提取。圖SEQ圖\*ARABIC18檢測(cè)數(shù)據(jù)模塊數(shù)據(jù)處理以及顯示模塊:如圖19,將數(shù)據(jù)由字符串轉(zhuǎn)至單精度浮點(diǎn)數(shù)。進(jìn)行運(yùn)算得出之后,設(shè)置溫度閾值,制作上下限報(bào)警燈,以及根據(jù)數(shù)據(jù)建立波形圖標(biāo)和溫度計(jì)。圖SEQ圖\*ARABIC19數(shù)據(jù)處理以及顯示模塊數(shù)據(jù)保存模塊:如圖20,將數(shù)據(jù)以一定格式保存到txt文件中。圖SEQ圖\*ARABIC20數(shù)據(jù)保存模塊4.5界面設(shè)計(jì)在界面設(shè)計(jì)之前,應(yīng)該構(gòu)建一個(gè)大致框架的思路。一開始的思路在直接建立串口,然后進(jìn)入while循環(huán),后來(lái)認(rèn)為框架不合理,應(yīng)該先建立一個(gè)整體大框架,之后進(jìn)行串口端口與波特率的選擇來(lái)打開串口。在labview軟件中,建立串口首先也是配置串口,在儀器IO中,打開VISA串口配置,建立輸入控件,即對(duì)串口的選擇與波特率的選擇,而后必須有一個(gè)輸出。而后建立了一個(gè)VISA讀取的IO控件,從中讀取到串口得到的數(shù)據(jù),之后通過(guò)檢驗(yàn)字節(jié)數(shù)檢測(cè)數(shù)據(jù)的完整性,通過(guò)檢測(cè)數(shù)據(jù)前端后端的值來(lái)判斷數(shù)據(jù)的正確性。然后截取發(fā)送來(lái)的溫度數(shù)據(jù),通過(guò)數(shù)值建立顯示控件(包含當(dāng)前的溫度顯示控件,溫度計(jì)等)以及圖表的制作。而保存溫度數(shù)據(jù),則不會(huì)在界面中顯示。下圖為設(shè)計(jì)好的界面,有兩個(gè)溫度計(jì)并不在下圖中,有一個(gè)溫度閥值是溫度的上限報(bào)警值,報(bào)警則上限報(bào)警燈亮,一個(gè)溫度閾值是溫度的下限報(bào)警值,報(bào)警則下限報(bào)警燈亮。中間是收到字符串的顯示(readbuffer)以及收到兩組數(shù)據(jù),溫度數(shù)據(jù)制作的圖表。右邊則是串口端口的選擇(COM),以及串口打開的示意燈,波特率的選擇,串口開閉按鈕,當(dāng)前溫度1與溫度2的顯示控件,以及停止運(yùn)行的按鈕。圖21為整個(gè)設(shè)計(jì)的界面:圖SEQ圖\*ARABIC21溫度采集系統(tǒng)labview界面在完成本界面之前,曾用另一種方式建立過(guò)上位機(jī)系統(tǒng)如圖22:圖SEQ圖\*ARABIC22使用框架在這個(gè)程序中,也能實(shí)現(xiàn)串口通信,收集溫度數(shù)據(jù),制作溫度圖表,實(shí)現(xiàn)溫度告警以及保存溫度數(shù)據(jù)的作用。但是由于在這個(gè)程序下,如果需要修改,就需要重新縷清關(guān)系,在進(jìn)行操作,并且操作較為繁瑣,顯示的不夠清晰。于是研究之后,選擇使用狀態(tài)機(jī),來(lái)劃分整個(gè)框架,讓結(jié)構(gòu)變得更簡(jiǎn)潔。就好像代碼寫的更規(guī)范了。并且在上述功能中,增加了類似串口助手通信的功能。比如選擇通訊端口,選擇波特率,并且有接收窗口。如果需要的話也隨時(shí)可以添加發(fā)送窗口。并且清晰的結(jié)構(gòu)制作完成以后,當(dāng)以后需要使用labview進(jìn)行其他程序的頁(yè)面設(shè)計(jì),也更加駕輕就熟,在這個(gè)結(jié)構(gòu)上進(jìn)行修改即可。5調(diào)試5.1單片機(jī)驅(qū)動(dòng)程序調(diào)試程序完成之后,首先將程序燒錄到STM32最小系統(tǒng)板中。首先與串口助手聯(lián)合調(diào)試,STM32最小系統(tǒng)板通過(guò)CH340芯片模塊,usb轉(zhuǎn)串口,連接到PC上,通過(guò)不同的波特率,連接串口,并且進(jìn)行發(fā)送數(shù)據(jù),接受指令的操作,確定單片機(jī)方面與串口正常連接,并且能夠雙向發(fā)送數(shù)據(jù)。而后多次收發(fā)由單片機(jī)通過(guò)溫度傳感器收到的溫度數(shù)據(jù),確定是否能夠穩(wěn)定正確的發(fā)送溫度數(shù)據(jù)。而后對(duì)外部環(huán)境進(jìn)行改變可以通過(guò)握住溫度傳感器,或者通過(guò)空調(diào)改變溫度等方式,確定溫度傳感器是否在正常工作。單片機(jī)若能正確,穩(wěn)定的發(fā)送溫度數(shù)據(jù)即調(diào)試完畢。5.2labview界面調(diào)試在labview完成設(shè)計(jì)后,首先應(yīng)確保串口的使用,通過(guò)虛擬串口助手建立了兩個(gè)虛擬串口,例如COM1,COM2。Labview中的serial_select(串口選擇)選擇COM1,串口網(wǎng)絡(luò)調(diào)制器則選擇COM2,觀察兩者是否能夠連接。如果連接成功,則將波特率(bandrate)數(shù)值調(diào)至相同,雙向發(fā)送數(shù)據(jù),觀察接收到數(shù)據(jù)的完整性和正確性。如果完全相同,則labview串口可以正常使用。此時(shí)確保labview串口打開并且連接串口網(wǎng)絡(luò)調(diào)制器之后,模擬發(fā)送溫度數(shù)據(jù)到labview串口端,labview串口端接收到數(shù)據(jù)會(huì)從readbuffer(讀入字節(jié))處顯示出來(lái),并且兩個(gè)溫度值顯示控件會(huì)實(shí)時(shí)顯示當(dāng)前兩個(gè)傳感器檢測(cè)到的溫度,并且兩個(gè)溫度圖表會(huì)根據(jù)輸入的溫度數(shù)據(jù),實(shí)時(shí)跟進(jìn),不斷繪制圖表,以便于更清晰簡(jiǎn)介的看到溫度的變化。而后設(shè)置溫度閾值,假設(shè)當(dāng)前溫度25攝氏度,則可以將溫度閾值設(shè)置為26攝氏度,打開串口實(shí)時(shí)傳輸數(shù)據(jù),用手握住溫度傳感器,觀察到溫度數(shù)據(jù)不斷上升。當(dāng)溫度數(shù)據(jù)超過(guò)26攝氏度時(shí),報(bào)警燈亮,則證明當(dāng)數(shù)據(jù)慢慢上升時(shí),溫度報(bào)警功能正常。而將溫度閾值調(diào)低如0攝氏度之后,再打開串口傳輸數(shù)據(jù),若得到溫度數(shù)據(jù)的時(shí)候,報(bào)警燈直接亮起,則證明報(bào)警功能正常。相同的道理可以反其道而行之,檢測(cè)溫度下限報(bào)警的功能是否正常。并且在實(shí)驗(yàn)的時(shí)候,要打開指定路徑下的txt文件,在本畢業(yè)設(shè)計(jì)中,是D盤test文件中的,以當(dāng)時(shí)的日期和時(shí)間命名的txt文件,并且里面的溫度按順序一條條清晰的羅列,則溫度保存數(shù)據(jù)也能正常運(yùn)行。5.3聯(lián)合調(diào)試首先將程序燒錄到STM32最小系統(tǒng)板中。STM32最小系統(tǒng)板通過(guò)CH340芯片模塊,usb轉(zhuǎn)串口,連接到PC上,Labview中的serial_select(串口選擇)選擇COM6(由于USB轉(zhuǎn)串口時(shí),連接到PC上默認(rèn)為COM5),觀察兩者是否能夠連接。如果連接成功,則將波特率(bandrate)數(shù)值調(diào)至相同,連接labview界面串口,并且進(jìn)行發(fā)送數(shù)據(jù),接受指令的操作,確定單片機(jī)方面與labview界面串口正常連接,并且能夠雙向發(fā)送數(shù)據(jù)。此時(shí)單片機(jī)發(fā)送溫度數(shù)據(jù)到labview串口端,labview串口端接收到數(shù)據(jù)會(huì)從readbuffer(讀入字節(jié))處顯示出來(lái),并且如果收到的數(shù)據(jù)完整,則進(jìn)入數(shù)據(jù)正確性的判斷,即判斷首尾的字符串是否為應(yīng)發(fā)字符串,如果溫度數(shù)據(jù)完全正確,則溫度顯示控件和溫度計(jì)會(huì)因?yàn)闇囟葦?shù)據(jù)實(shí)時(shí)改變以及溫度圖表會(huì)實(shí)時(shí)根據(jù)收到的溫度數(shù)據(jù)畫出曲線。并且D盤test文件中的,以當(dāng)時(shí)的日期和時(shí)間命名的txt文件,并且里面的溫度按順序一條條清晰的羅列。而后設(shè)置溫度閾值,假設(shè)當(dāng)前溫度25攝氏度,則可以將溫度上限閾值設(shè)置為26攝氏度,打開串口實(shí)時(shí)傳輸數(shù)據(jù),用手握住溫度傳感器,觀察到溫度數(shù)據(jù)不斷上升。當(dāng)溫度數(shù)據(jù)超過(guò)26攝氏度時(shí),溫度上限報(bào)警燈亮,則證明當(dāng)數(shù)據(jù)慢慢上升時(shí),溫度上限報(bào)警功能正常。而將溫度下限閾值調(diào)高至25攝氏度之后,再打開串口傳輸數(shù)據(jù),若得到溫度數(shù)據(jù)的時(shí)候,下限報(bào)警燈直接亮起,則證明溫度下限報(bào)警功能正常。通過(guò)實(shí)驗(yàn)得到一段labview收集到并保存下來(lái)的溫度數(shù)據(jù)如:圖SEQ圖\*ARABIC23溫度保存數(shù)據(jù)可以觀察到,總體來(lái)說(shuō),本畢業(yè)設(shè)計(jì)溫度數(shù)據(jù)是較為準(zhǔn)確的。

6結(jié)論本畢業(yè)設(shè)計(jì)完成了設(shè)計(jì)的基本要求,較好的達(dá)到了利用labview作為上位機(jī)來(lái)控制單片機(jī)通過(guò)溫度傳感器的得到的數(shù)據(jù)的效果。在本次實(shí)驗(yàn)中,對(duì)于溫度傳感器以及串口單片機(jī)程序的編寫,由于這樣的東西已經(jīng)普及開來(lái),只需按部就班的編寫即可完成。但是關(guān)于labview軟件的內(nèi)容,網(wǎng)上并沒(méi)有很多的成品的案例,需要自己細(xì)細(xì)研究軟件,并且通過(guò)網(wǎng)上一些他人對(duì)于labview的使用經(jīng)驗(yàn),一些關(guān)于labview的介紹以及一些labview模塊的用法進(jìn)行琢磨。慢慢自己對(duì)labview形成自己的理解,用自己的方法進(jìn)行框架的搭建。在這樣的學(xué)習(xí)過(guò)程中,能夠受益頗多。對(duì)于labview的使用,越加駕輕就熟?,F(xiàn)在是因?yàn)闀r(shí)代的發(fā)展,從之前的代碼編寫,到現(xiàn)在可以進(jìn)行圖形化的處理就是一種進(jìn)步,技術(shù)的進(jìn)步帶來(lái)的就是便利。Labview的圖形化編輯能夠使得實(shí)現(xiàn)功能時(shí)不用進(jìn)行繁瑣的代碼編寫,一個(gè)模塊就是一段程序,只需要對(duì)模塊進(jìn)行選用,拼接,就能實(shí)現(xiàn)自己的目的。與此同時(shí),對(duì)代碼編寫的能力要求弱了,只需要有一個(gè)清晰的邏輯,對(duì)自己希望實(shí)現(xiàn)的功能設(shè)計(jì)一個(gè)實(shí)現(xiàn)的邏輯框架或者流程圖,用圖形化的圖表式的方法,來(lái)實(shí)現(xiàn)功能。隨著技術(shù)的發(fā)展,必然我們會(huì)有更多的方式方法來(lái)達(dá)到自己的目的,技術(shù)的更新意味這方法效率的提升,但在這樣的情況下,我們應(yīng)該對(duì)自身的發(fā)展提出清晰的要求。根據(jù)時(shí)代的發(fā)展,來(lái)發(fā)展自身。以labview軟件為例,如果用編寫代碼的要求來(lái)要求自己,那么注定在對(duì)新軟件的使用上,你會(huì)不如那些訓(xùn)練自己掌握框架,熟練使用圖形模塊的人優(yōu)秀。通過(guò)畢業(yè)設(shè)計(jì),讓我感受到,根據(jù)自己的所需,調(diào)整自己的所長(zhǎng)才是重中之重。在本畢業(yè)設(shè)計(jì)中,個(gè)人認(rèn)為自己的知識(shí)與能力有限,自己做的成品蘊(yùn)含大量疏漏與不足。但是在畢業(yè)設(shè)計(jì)的過(guò)程中我也確實(shí)學(xué)到了很多,對(duì)于自己達(dá)到目的的方法,自己的能力,以及知識(shí)都得到了拓展。以后在人生的道路上也應(yīng)該會(huì)謹(jǐn)記這個(gè)過(guò)程,勉勵(lì)前行。

參考文獻(xiàn)[1]李馨諾.基于LabVIEW軟件的多種場(chǎng)景環(huán)境信息實(shí)時(shí)監(jiān)測(cè)系統(tǒng)研究[J].粘接,2020,44(10):87-90.[2]張寧寧,魏

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論