畢業(yè)設(shè)計(jì)論文--基于labview數(shù)控機(jī)床現(xiàn)場(chǎng)溫度實(shí)時(shí)多點(diǎn)采集測(cè)量與實(shí)現(xiàn)_第1頁(yè)
已閱讀1頁(yè),還剩51頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  編號(hào): </p><p><b>  畢業(yè)設(shè)計(jì)說(shuō)明書(shū)</b></p><p>  題 目: 數(shù)控機(jī)床現(xiàn)場(chǎng)溫度實(shí)時(shí) </p><p>  多點(diǎn)采集測(cè)量與實(shí)現(xiàn) </p><p>  院 (系): &

2、lt;/p><p>  專 業(yè): </p><p>  學(xué)生姓名: </p><p>  學(xué) 號(hào): </p><p>  指導(dǎo)教師: </p><p&g

3、t;  職 稱: 教授 </p><p>  題目類型:□ 理論研究 □ 實(shí)驗(yàn)研究 工程設(shè)計(jì) □ 工程技術(shù)研究 □ 軟件開(kāi)發(fā)</p><p>  2013年5月 20日</p><p><b>  摘 要</b></p><p>  溫度是機(jī)械加工中最基本的參數(shù)之一,

4、在生產(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)效率有著重要的意義。</p><p>  本文設(shè)計(jì)了一種數(shù)控機(jī)床多點(diǎn)溫度采集電路,可以同時(shí)對(duì)四路溫度進(jìn)行實(shí)時(shí)的采集和顯示,通過(guò)設(shè)定溫度的報(bào)警范圍對(duì)其進(jìn)

5、行預(yù)警,并且利用串口實(shí)現(xiàn)單片機(jī)和計(jì)算機(jī)的通信,使用上位機(jī)完成數(shù)據(jù)處理和溫度的顯示等。溫度的測(cè)量精度低于0.5℃。</p><p>  設(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

6、編寫(xiě)的上位機(jī)進(jìn)行數(shù)據(jù)處理和顯示。通過(guò)上位機(jī)設(shè)置溫度的采集速率以及設(shè)定報(bào)警溫度上限,將采集到的數(shù)據(jù)以TXT或XLS格式存儲(chǔ)到電腦中。</p><p>  硬件電路采用低成本的設(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é)果。</p><p>  關(guān)鍵詞:串口通信;LABVIEW;數(shù)控機(jī)床;熱誤差;多通道溫度采集 </

7、p><p><b>  Abstract</b></p><p>  Temperature is one of the most basic parameters in the machining and temperature detection and monitoring is commonly found in the production. In CNC ma

8、chining, thermal error of CNC machine need to be calculated, and thermal error compensation is implemented. Through the thermal error compensation techniques to achieve the purpose of the improvement of precision CNC ma

9、chining. So the study of a multi-channel temperature acquisition and real-time monitoring system based on serial communication h</p><p>  This article design a multi-channel temperature acquisition circuit o

10、f CNC machine. It can acquire four channel temperature data at the same time, also the display of these data is real-time. The method also can set temperature alarming range and if the data exceed the range the system wi

11、ll warn. And using the serial port to realize the single chip microcomputer and computer communication, using upper computer to complete data processing and display of temperature, etc. Temperature measuring pre</p>

12、;<p>  STC89C52 is the main control chip of the design, and LCD1602 is used to display the temperature value, and temperature sensor TC1047 is used for temperature acquisition. Temperature sensor output voltage wi

13、ll by RC filter circuit and amplifier circuit which is composed of operational amplifier OP07, and then through the A/D conversion .finally, through the RS232 serial port sent the digital quantity to upper computer for d

14、ata processing and display, and the upper computer is wrote by LABVIEW. Ca</p><p>  The design of hardware circuit is based on stable, viable, low-cost design ideas. And the design of software uses modular m

15、ethod. And finally by finishing and debugging of the circuit, we verify the feasibility of the design and also we achieve to the expected results of the design.</p><p>  Keywords: serial communication; LABVI

16、EW; CNC machine; thermal error; </p><p>  multi-channel temperature acquisition</p><p><b>  目 錄</b></p><p><b>  引言1</b></p><p><b>  1

17、 系統(tǒng)綜述2</b></p><p>  1.1 方案論證與選擇2</p><p>  1.2 系統(tǒng)整體框圖3</p><p>  2 硬件電路設(shè)計(jì)4</p><p>  2.1 51單片機(jī)主控電路4</p><p>  2.1.1 單片機(jī)主控電路設(shè)計(jì)4</p><p>

18、;  2.1.2 C51程序語(yǔ)言5</p><p>  2.2 TC1047溫度采集電路5</p><p>  2.3 RC低通濾波電路6</p><p>  2.4 OP07放大電路7</p><p>  2.5 A/D轉(zhuǎn)換電路8</p><p>  2.6 LCD1602顯示電路9</p>

19、<p>  2.7 串口通信電路10</p><p>  2.8 電源穩(wěn)壓電路11</p><p>  3 下位機(jī)軟件設(shè)計(jì)12</p><p>  3.1 主程序框架12</p><p>  3.2 ADC0832驅(qū)動(dòng)程序13</p><p>  3.3 LCD1602顯示驅(qū)動(dòng)程序15<

20、/p><p>  3.4 串口通信程序17</p><p>  4 上位機(jī)軟件設(shè)計(jì)18</p><p>  4.1 上位機(jī)人機(jī)交互界面設(shè)計(jì)18</p><p>  4.2 上位機(jī)程序框圖設(shè)計(jì)19</p><p>  4.2.1 主程序框圖設(shè)計(jì)19</p><p>  4.3.2 LABV

21、IEW串口程序設(shè)計(jì)20</p><p>  4.3.3 串口數(shù)據(jù)幀解碼21</p><p>  4.3.4 數(shù)據(jù)處理和顯示22</p><p>  4.3.5 數(shù)據(jù)的存儲(chǔ)和讀取23</p><p>  4.3.6 采集速率和溫度報(bào)警24</p><p>  5 原理圖電路仿真25</p>&

22、lt;p>  6 實(shí)物的組裝調(diào)試及軟件驗(yàn)證27</p><p>  6.1 實(shí)物的制作流程27</p><p>  6.2 硬件調(diào)試及軟件驗(yàn)證28</p><p>  6.2.1 電源電路測(cè)試28</p><p>  6.2.2 LCD1602顯示測(cè)試28</p><p>  6.2.3 放大電路測(cè)試

23、29</p><p>  6.2.4 A/D轉(zhuǎn)換測(cè)試29</p><p>  6.2.5 下位機(jī)串口通信測(cè)試29</p><p>  6.2.6 上位機(jī)串口通信測(cè)試29</p><p>  6.2.7 下位機(jī)與上位機(jī)整體功能測(cè)試30</p><p>  6.3 數(shù)據(jù)測(cè)量及誤差分析30</p>

24、<p>  6.3.1 溫度傳感器標(biāo)定30</p><p>  6.3.2 數(shù)據(jù)的測(cè)量34</p><p>  6.3.3 誤差計(jì)算及分析36</p><p>  6.4 軟硬件調(diào)試綜述37</p><p><b>  7 結(jié)論38</b></p><p>  7.1 系統(tǒng)功

25、能38</p><p>  7.2 功能擴(kuò)展38</p><p>  7.3 前景展望39</p><p><b>  謝 辭40</b></p><p><b>  參考文獻(xiàn)41</b></p><p>  附錄一 電路設(shè)計(jì)原理圖42</p>

26、<p>  附錄二 電路設(shè)計(jì)PCB圖43</p><p>  附錄三 電路設(shè)計(jì)實(shí)物圖43</p><p>  附錄四 上位機(jī)實(shí)時(shí)數(shù)據(jù)采集界面圖44</p><p>  附錄五 上位機(jī)歷史數(shù)據(jù)讀取界面圖45</p><p><b>  引言</b></p><p>  隨著

27、科學(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]。</p><p>  數(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ì)量、

28、降低成本提供信息和手段。</p><p>  數(shù)控機(jī)床在加工過(guò)程中,熱誤差是因溫度上升引起的加工誤差。據(jù)統(tǒng)計(jì),在精密加工和超精密加工中,由于熱變形引起的加工誤差占總加工誤差的50%~70%[4-5]。目前,有兩類方法可以用來(lái)減小機(jī)床的熱誤差。一是通過(guò)改進(jìn)機(jī)床結(jié)構(gòu)設(shè)計(jì)方法,直接減小熱誤差,但是會(huì)大大提高成本。二是通過(guò)建立熱誤差模型進(jìn)行補(bǔ)償?shù)姆椒╗15-16]。</p><p>  LABVI

29、EW軟件是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ī)。</p><p>  設(shè)計(jì)

30、的主要目的和任務(wù)是,在生產(chǎn)車間中對(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ǔ)償。</p><p><b>  1 系統(tǒng)綜述</b></p&

31、gt;<p>  1.1 方案論證與選擇</p><p>  設(shè)計(jì)主要是實(shí)現(xiàn)數(shù)控機(jī)床機(jī)床4路溫度的采集,正確選擇溫度傳感器和設(shè)計(jì)放大電路對(duì)整個(gè)設(shè)計(jì)起到事半功倍的作用。下面簡(jiǎn)要分析設(shè)計(jì)硬件電路方案的選擇和上位機(jī)編寫(xiě)軟件的選擇。</p><p>  (1)溫度傳感器選擇 </p><p>  設(shè)計(jì)中溫度傳感器可以選擇數(shù)字溫度傳感和模擬溫度傳感器。設(shè)計(jì)中要求

32、采集的溫度精度為0.5℃,數(shù)字溫度傳感器相對(duì)容易實(shí)現(xiàn)對(duì)溫度的高精度測(cè)量,如數(shù)字溫度傳感器DS18B20,但進(jìn)行多路溫度采集時(shí)使用數(shù)字溫度傳感器成本高,在滿足溫度測(cè)量精度的條件下,選擇模擬溫度傳感器。模擬溫度傳感器又分為電壓輸出型溫度傳感器和電流輸出型溫度傳感器兩種。其中電流輸出型溫度傳感器,輸出電流一般都很小,如AD590電流輸出型溫度傳感器,需要將輸出電流的變化轉(zhuǎn)化電壓的變化,才能進(jìn)行電壓放大和A/D轉(zhuǎn)換等[11]。設(shè)計(jì)中選用電壓輸出

33、型溫度傳感器TC1047溫度傳感,TC1047輸出電壓每變化10mV,表示溫度變化1℃,正確設(shè)計(jì)放大電路和選擇A/D轉(zhuǎn)換芯片就可以滿中溫度測(cè)量精度為0.5℃的要求。</p><p><b>  (2)濾波電路設(shè)計(jì)</b></p><p>  設(shè)計(jì)中溫度傳感器選擇的是電壓輸出型溫度傳感器,設(shè)計(jì)中要求將大于50Hz的信號(hào)給予濾除。設(shè)計(jì)中選擇使用無(wú)源RC低通濾波電路即可以滿

34、足設(shè)計(jì)要求。</p><p> ?。?)電壓放大電路的設(shè)計(jì)</p><p>  設(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)

35、算放大器OP07進(jìn)行放大電路的設(shè)計(jì),也可以滿足設(shè)計(jì)的要求,并且設(shè)計(jì)成本大大降低。</p><p> ?。?)A/D轉(zhuǎn)換芯片選擇</p><p>  設(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的

36、電壓變化,滿足設(shè)計(jì)要求。</p><p> ?。?)上位機(jī)編程軟件選擇</p><p>  以上主要分析了硬件電路設(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]。</p><p> 

37、 1.2 系統(tǒng)整體框圖</p><p>  設(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將四路放

38、大的模擬信號(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í)

39、數(shù)據(jù)采集,同時(shí)也可以讀取和分析歷史數(shù)據(jù)。設(shè)計(jì)的整體框圖如圖1-1所示。</p><p>  圖1-1 數(shù)控機(jī)床測(cè)溫系統(tǒng)整體框圖</p><p><b>  2 硬件電路設(shè)計(jì)</b></p><p>  2.1 51單片機(jī)主控電路</p><p>  設(shè)計(jì)所選用的單片機(jī)型號(hào)為STC89C52,其與市場(chǎng)大部分51系列單片機(jī)

40、完全兼容,并且在性能方面和速度上更具有優(yōu)勢(shì)。</p><p>  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ī)幾乎包含了所有

41、數(shù)據(jù)采集和控制中所需的所有單元模塊,可稱得上是一個(gè)片上系統(tǒng)[6-10]。</p><p>  2.1.1 單片機(jī)主控電路設(shè)計(jì)</p><p>  圖2-1 單片機(jī)主控電路</p><p>  設(shè)計(jì)單片機(jī)最小系統(tǒng)原理圖如圖2-1所示。主控模塊由復(fù)位電路,晶振時(shí)鐘電路和IO電路3部分組成。復(fù)位電路設(shè)計(jì)為按鍵復(fù)位和上電復(fù)位,通過(guò)在單片機(jī)的RST腳接10uf電容接電源,10

42、K電阻接地的方式,完成上電復(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)能力

43、,外加了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ā)送口。</p><p>  2.1.2 C51程序語(yǔ)言</p><p>  C51是為51系列單片機(jī)設(shè)計(jì)的一種C語(yǔ)言,其特點(diǎn):結(jié)構(gòu)化語(yǔ)言,代碼緊湊;接近真實(shí)語(yǔ)言,程序可讀性強(qiáng);庫(kù)函數(shù)豐富,編程工作量?。粰C(jī)器級(jí)控制能力,功能很強(qiáng);

44、與匯編指令無(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ù)類型、存儲(chǔ)模式及中斷處理存在著差異[13]。</p><p>  2.2 TC1047溫度采集電路</p><p>  設(shè)計(jì)采用4個(gè)溫度傳感器TC1047A來(lái)采集4路溫度,將溫度的變化轉(zhuǎn)化為電壓的變化。

45、TC1047和TC1047A是線性電壓輸出溫度傳感器,可以精確地測(cè)量從-40℃到+125℃之間的溫度。10mV/℃的輸出電壓的斜率響應(yīng)允許在溫度范圍內(nèi)對(duì)預(yù)計(jì)的溫度進(jìn)行測(cè)量。</p><p>  TC1047傳感器輸出電壓的大小會(huì)隨溫度的改變而改變,溫度增大,輸出電壓會(huì)增大,溫度減小,其輸出電壓也會(huì)減小[12]。TC1047溫度傳感器輸出電壓與溫度變化成線性關(guān)系,關(guān)系表達(dá)式為:</p><p&g

46、t;  其中:為傳感器輸出電壓,單位為;測(cè)量溫度值,單位為℃。TC1047溫度傳感器輸出電壓隨溫度變化的關(guān)系曲線如圖2-2所示。</p><p>  圖2-2 TC1047輸出電壓隨溫度變化的關(guān)系曲線</p><p>  如圖2-3所示為T(mén)C1047溫度傳感器接口電路的設(shè)計(jì),其中3號(hào)管腳用于為該芯片供電,管腳1為電源地,管腳2為電壓輸出,只要給芯片供電就可以使溫度傳感器正常工作。</

47、p><p>  圖2-3 TC1047接口原理圖</p><p>  2.3 RC低通濾波電路</p><p>  設(shè)計(jì)采用一階無(wú)源RC低通濾波電路濾除頻率為50HZ以上的干擾信號(hào),使溫度傳感器的輸出電壓較穩(wěn)定。</p><p>  常用的濾波電路有無(wú)源濾波和有源濾波兩大類。若濾波電路元件僅由無(wú)源元件(電阻、電容、電感)組成,則稱為無(wú)源濾波電路。

48、無(wú)源濾波的主要形式有電容濾波、電感濾波和復(fù)式濾波(包括倒L型、LC濾波、LC∏型濾波和RC∏型濾波等)。若濾波電路不僅由無(wú)源元件,還由有源元件(雙極型管、單極型管、集成運(yùn)放)組成,則稱為有源濾波電路。有源濾波的主要形式是有源RC濾波,也被稱作電子濾波器。無(wú)源濾波電路的結(jié)構(gòu)簡(jiǎn)單,易于設(shè)計(jì),但它的通帶放大倍數(shù)及其截止頻率都隨負(fù)載而變化,因而不適用于信號(hào)處理要求高的場(chǎng)合。有源濾波電路的負(fù)載不影響濾波特性,因此常用于信號(hào)處理要求高的場(chǎng)合。濾波電

49、路還可以分為高通、低通、帶通和帶阻濾波器,是一種能使有用頻率信號(hào)通過(guò),同時(shí)抑制無(wú)用頻率成分的電路。</p><p>  設(shè)計(jì)需要采集由溫度傳感器將溫度轉(zhuǎn)化為電壓的信號(hào),在實(shí)際中溫度的變化頻率不可能是太高的。為了使采集到的電壓信號(hào)更加穩(wěn)定可靠,設(shè)計(jì)需要將高于50HZ以上的信號(hào)濾除掉,才能進(jìn)行電壓信號(hào)的放大。在滿足要求的前提下,為了使設(shè)計(jì)更加的簡(jiǎn)單,采用RC無(wú)源低通濾波電路。RC低通濾波器的截止頻率計(jì)算公式為:<

50、;/p><p>  其中:為電阻的阻值,單位為;為電容值,單位為。設(shè)計(jì)中選用的電容為,電阻,所以可以計(jì)算出低通濾波器的截止頻率為:</p><p>  所以滿足截止頻率小于50HZ的要求,RC低通濾波電路原理圖設(shè)計(jì)如圖2-4所示。</p><p>  圖2-4 RC低通濾波電路</p><p>  2.4 OP07放大電路</p>

51、<p>  設(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)。</p><

52、;p>  溫度傳感器TC1047在0℃到40℃的電壓輸出范圍為到,每變化一度,精度要求為0.5℃。而采用的是8位的A/D轉(zhuǎn)換,最大能分辨20mV電壓變化,放大器的放大倍數(shù)為5即可滿中要求。設(shè)計(jì)要求能實(shí)時(shí)快速地采集溫度的變化,對(duì)采集的速度有較高的要求,不能通過(guò)模擬開(kāi)關(guān)來(lái)分時(shí)放大每一通道的電壓信號(hào),而是每個(gè)通道都有各自的放大電路,這樣就可以大大提高溫度采集的速度。單通道放大電路原理圖如圖2-5所示。 </p><p

53、>  圖2-5 單通道電壓放大電路</p><p>  如上圖2-5所示為三運(yùn)放組成的差分放大電路,其中和都是組成電壓跟隨器,用于增大輸入阻抗減小輸出阻抗。的管腳3輸入溫度傳感器的輸出電壓,用于將電壓進(jìn)行差分放大。需要根據(jù)要求計(jì)算各電阻的參數(shù)值。</p><p><b>  的輸出電壓為:</b></p><p>  …………………………

54、…………(2-1)</p><p>  根據(jù)運(yùn)算放大器虛短虛斷的特性可得:</p><p>  ………………………………(2-2)</p><p>  其中:,,………………………………………(2-3)</p><p>  由公式(2-1)、(2-2)和(2-3)可計(jì)算出如下表達(dá)式:</p><p>  …………………

55、…………(2-4)</p><p>  其中表達(dá)式(2-4)中為電阻阻值,單位為;分別為輸入輸出電壓,單位為。設(shè)表達(dá)式(2-4)中的,即為電壓放大倍數(shù),為了方便計(jì)算,取,,將和所選擇的電阻阻值代入(2-4)可得:</p><p>  解得:,電阻用一個(gè)的滑動(dòng)變阻器代替,便于放大倍數(shù)的調(diào)節(jié)。</p><p>  2.5 A/D轉(zhuǎn)換電路</p><p

56、>  設(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ú)立的芯片使能輸入,使多器件掛接和處理器

57、控制變得更加方便。</p><p>  設(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è)

58、計(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所示。</p><p>  圖2-6 A/D轉(zhuǎn)換電路</p><p>  2.6 LCD1602顯示電路</p><p>  設(shè)計(jì)LCD1

59、602主要用于顯示采集到的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ǔ)器DDRA

60、M,內(nèi)建有192個(gè)5X7點(diǎn)陣的字型的字符發(fā)生器CGROM和8個(gè)可由用戶自定義的5X7的字符發(fā)生器CGRAM。</p><p>  圖2-7 LCD1602顯示電路</p><p>  LCD1602主要由控制引腳和數(shù)據(jù)引腳2個(gè)部分組成。參考圖2-7其中RS和RW兩個(gè)引腳用于控制LCD1602的寫(xiě)操作類型,當(dāng)RS和RW均為0時(shí),即都為低電平時(shí),則此次單片機(jī)發(fā)送的8位數(shù)為對(duì)LCD1602的控制

61、命令,通過(guò)命令類型的判斷執(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ì)

62、顯示,而增加太多時(shí)會(huì)出現(xiàn)重影,因此合適的對(duì)比度對(duì)于顯示效果比較重要。</p><p>  2.7 串口通信電路</p><p>  設(shè)計(jì)采用MAX232芯片進(jìn)行單片與PC之間的電平轉(zhuǎn)換,實(shí)現(xiàn)單片機(jī)與PC機(jī)之間的通信。MAX232芯片是美信(MAXIM)公司專為RS-232標(biāo)準(zhǔn)串口設(shè)計(jì)的單電源電平轉(zhuǎn)換芯片,使用+5V單電源供電。由于電腦串口RS232電平是-10V,+10V,而一般的單片機(jī)應(yīng)

63、用系統(tǒng)的信號(hào)電壓是TTL電平0 V和+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-V TTL/CMOS電平。每一個(gè)發(fā)送器將TTL/CMOS電平轉(zhuǎn)換成TIA/EIA-232-F電平。</p><p>  圖2-8 串口通信電路</p

64、><p>  串口通信電路原理圖設(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ī)的電平類型。與計(jì)算機(jī)接口電路使用RS232 DB9接頭,由于不需要奇偶校驗(yàn)等,因此只需接其中3根線,即發(fā)送、接收和地線。</p>

65、<p>  2.8 電源穩(wěn)壓電路</p><p>  設(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ū)的

66、保護(hù),使它基本不會(huì)損壞。如果能夠提供足夠的散熱片,就能夠提供大于1.5A的輸出電流。雖然芯片是按照固定輸出電壓來(lái)設(shè)計(jì)的,但是接入適當(dāng)?shù)耐獠科骷?,就能獲得各種不同的輸出電壓和輸出電流。L79××系列是三端穩(wěn)壓芯片除了輸出是負(fù)電壓之外,其余特性與L78××系列是三端穩(wěn)壓芯片基本一致。</p><p>  圖2-9 穩(wěn)壓電源電路</p><p>  電源

67、電路原理圖如圖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就可以

68、得到穩(wěn)定的正負(fù)12V電壓,把穩(wěn)壓管輸出的正12V作為L(zhǎng)7805的輸入,L7805就可以輸出穩(wěn)定的正5V電壓。</p><p>  3 下位機(jī)軟件設(shè)計(jì)</p><p>  下位機(jī)程序設(shè)計(jì)使用KEIL C的編譯環(huán)境,并使用C語(yǔ)言進(jìn)行程序的編寫(xiě),然后經(jīng)過(guò)編譯后生成.hex文件。此次設(shè)計(jì)因?yàn)橐玫酱谕ㄐ?,所以選擇使用串口下載,將代碼下載到相應(yīng)STC89C52的單片機(jī)中去。</p>

69、<p><b>  3.1 主程序框架</b></p><p>  下位機(jī)程序設(shè)計(jì)采用模塊化的設(shè)計(jì)思想,主要包括下面幾部分:</p><p>  (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)始顯示字符串等

70、擴(kuò)展函數(shù),便于在主程序中調(diào)用。通過(guò)在主程序中調(diào)用相應(yīng)的LCD顯示函數(shù),最終完成4路溫度值的顯示。</p><p> ?。?)編寫(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)換通道,

71、最后的返回值則為A/D的轉(zhuǎn)換結(jié)果。</p><p>  (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ā)送則采用查詢法。在主程序中通過(guò)調(diào)用發(fā)送子函數(shù)即可以將數(shù)據(jù)發(fā)送到上位機(jī)。</p><p> ?。?/p>

72、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)行刷新一次。<

73、;/p><p>  下位機(jī)的主程序流程圖如圖3-1所示。</p><p>  圖3-1 下位機(jī)主程序流程圖</p><p>  3.2 ADC0832驅(qū)動(dòng)程序</p><p>  ADC0832未工作時(shí)其CS輸入端應(yīng)為高電平,此時(shí)芯片禁止讀寫(xiě),CLK、DO和DI的電平值可任意。當(dāng)要進(jìn)行A/D轉(zhuǎn)換時(shí),必須將CS使能端置低電平并且保持低電平直到轉(zhuǎn)換完

74、全結(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所示。</p><p>  圖3-2 ADC0832的時(shí)序圖</p><p>

75、;  在進(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所示。</p><p>  圖3-3 A/D轉(zhuǎn)換程序流程圖</p><p>  ADC0832在讀取轉(zhuǎn)

76、換結(jié)果時(shí),是在時(shí)鐘脈沖下串行輸出的,并且是最高位先輸出。讀取A/D轉(zhuǎn)換的部分代碼如下:</p><p>  for(i=0;i<8;i++) //循環(huán)8次讀取1個(gè)字節(jié)數(shù)據(jù)</p><p><b>  { </b></p><p>  val=val<<1; //val用于暫存轉(zhuǎn)換結(jié)果,經(jīng)過(guò)8次左移后即為轉(zhuǎn)換結(jié)果</

77、p><p><b>  CLK=1;</b></p><p>  CLK=0; //數(shù)據(jù)輸出在下降沿后有效</p><p>  if(DO) </p><p><b>  {</b></p><p>  val=val|0x01; //若輸出為1則與0x0

78、1相或</p><p><b>  }</b></p><p><b>  }</b></p><p>  3.3 LCD1602顯示驅(qū)動(dòng)程序</p><p>  LCD顯示驅(qū)動(dòng)程序在進(jìn)行數(shù)據(jù)的顯示時(shí),先要對(duì)LCD寫(xiě)入初始化控制命令字,初始化成功之后,寫(xiě)入數(shù)據(jù)地址控制命令,再寫(xiě)入數(shù)據(jù)才能把數(shù)據(jù)顯示

79、出來(lái)。程序主要包括寫(xiě)命令、寫(xiě)數(shù)據(jù)、數(shù)據(jù)地址指針設(shè)定、顯示單個(gè)字符、顯示字符串等。LCD1602的寫(xiě)操作時(shí)序如圖3-4所示。</p><p>  圖3-4 LCD1602寫(xiě)操作時(shí)序</p><p>  根據(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è)

80、正脈沖信號(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所示。</p><p>  圖3-5 LCD1602顯示驅(qū)動(dòng)程序流程圖</p><p>  根據(jù)以上LCD寫(xiě)操作時(shí)序和LCD顯示驅(qū)動(dòng)程序流程圖編寫(xiě)出

81、相應(yīng)的驅(qū)動(dòng)函數(shù),部分顯示函數(shù)如下:</p><p>  void Display_LCD_1602_dan_zi(uchar X,uchar Y,uchar Value) //在指定位置</p><p>  { // 寫(xiě)入一個(gè)字符,X為行,Y為列,Value為寫(xiě)入的數(shù)據(jù)</p><p>  LocationXY( X, Y);

82、 //確定字符顯示的位置函數(shù)</p><p>  Write_com_or_dat(Value,1); //寫(xiě)入數(shù)據(jù)函數(shù)</p><p><b>  }</b></p><p>  void Display_LCD_1602_duo_zi(uchar X,uchar Y,uchar *P)

83、//顯示字符串函</p><p>  { //數(shù),P指向字符串的首地址</p><p>  LocationXY( X, Y); //設(shè)定初始地址</p><p>  while(*P){ Write_com_or_dat(*P,1);

84、P++;} </p><p><b>  }</b></p><p>  3.4 串口通信程序</p><p>  串口通信程序主要包括串口的初始化、串口數(shù)據(jù)發(fā)送,其中串口的初始化主要是用于設(shè)置波特率。在通信中采用的串口通信波特率為9600,在程序設(shè)計(jì)中采用查詢法發(fā)送數(shù)據(jù),串口通信程序流程圖如圖3-6所示。</p><p

85、>  圖3-6 串口通信程序流程圖</p><p>  在進(jìn)行串口通信程序編寫(xiě)時(shí),編寫(xiě)單字節(jié)發(fā)送函數(shù)和字符串發(fā)送函數(shù),其中部分程序代碼如下:</p><p>  void Sent_Byte(uchar dat) //發(fā)送單字節(jié)函數(shù)</p><p><b>  {</b></p><p>  SBUF=dat;

86、 //將數(shù)據(jù)送到緩沖器</p><p>  while(!TI); //判斷是否發(fā)送完</p><p>  TI=0; //發(fā)送完清標(biāo)志位</p><p><b>  }</b></p><p>  void Sent_Date(uchar *dat) //發(fā)送一個(gè)

87、字符串函數(shù)</p><p><b>  {</b></p><p>  while((*dat)!= '\0') //如果字符串未結(jié)束,指針++指向下一個(gè)字符</p><p><b>  {</b></p><p>  Sent_Byte(*dat); //發(fā)送單字節(jié)函數(shù)</

88、p><p>  dat++; //指針++</p><p><b>  }</b></p><p><b>  }</b></p><p>  4 上位機(jī)軟件設(shè)計(jì)</p><p>  4.1 上位機(jī)人機(jī)交互界面設(shè)計(jì)</p><p>

89、  此次設(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ì)

90、的溫度上限時(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í)間。</p><p>  圖4-1 實(shí)時(shí)數(shù)據(jù)顯示界面</p><p>  人機(jī)交互界面的實(shí)時(shí)數(shù)據(jù)顯示窗口設(shè)計(jì)如圖4-1所示。實(shí)時(shí)數(shù)據(jù)顯示窗口不僅可以顯示溫度隨時(shí)的變化曲線,以及用強(qiáng)度圖表中用顏

91、色淺深來(lái)表示溫度大小。除了用數(shù)值來(lái)顯示溫度值外,還用4個(gè)類似于溫度計(jì)的柱體來(lái)直觀顯示溫度的大小。圖中開(kāi)始按鈕可以用來(lái)控制數(shù)據(jù)的采集和暫停。</p><p>  4.2 上位機(jī)程序框圖設(shè)計(jì)</p><p>  4.2.1 主程序框圖設(shè)計(jì)</p><p>  主程序通過(guò)串口接收下位機(jī)發(fā)送的4路A/D轉(zhuǎn)換采集到的8位數(shù)字量,通過(guò)數(shù)據(jù)處理,計(jì)算出溫度值、熱變形誤差,同時(shí)能在

92、前面板顯示出來(lái)。另外還要實(shí)現(xiàn)報(bào)警、數(shù)據(jù)存儲(chǔ)和相關(guān)數(shù)據(jù)采集參數(shù)設(shè)定等功能。上位機(jī)的整體程序設(shè)計(jì)流程圖如圖4-2所示。</p><p>  圖4-2 上位主程序流程圖</p><p>  4.3.2 LABVIEW串口程序設(shè)計(jì)</p><p>  在LABVIEW程序串程序設(shè)計(jì)中,主要用到VISA配置串口、屬性節(jié)點(diǎn)、VISA讀取和簡(jiǎn)單錯(cuò)誤處理等幾部分組成,下面分別簡(jiǎn)單介

93、紹這幾個(gè)節(jié)點(diǎn)的使用。</p><p>  圖4-3 VISA配置串口</p><p>  如圖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ò)串口通信。</p><p>  圖4-4 VISA串口數(shù)據(jù)讀取</p><p>

94、  如圖4-4所示為串口緩沖區(qū)讀取節(jié)點(diǎn),通過(guò)該節(jié)點(diǎn)可以讀取下位機(jī)發(fā)送到串口數(shù)據(jù)緩沖區(qū)里的數(shù)據(jù)。其中有一個(gè)比較重要的設(shè)置,就是VISA READ的“字節(jié)總數(shù)”這個(gè)輸入,由于在串口通信中,如果指定讀取100個(gè)串口緩沖區(qū)的字節(jié)數(shù),如果當(dāng)前緩沖區(qū)的數(shù)據(jù)量不足100個(gè)時(shí),程序會(huì)一直停在VISA READ這個(gè)節(jié)點(diǎn)上,如果在超時(shí)的時(shí)間(默認(rèn)是10秒)內(nèi)還沒(méi)有湊足100個(gè)數(shù)據(jù)的話,程序就會(huì)報(bào)“Time out”的錯(cuò)誤,如果超時(shí)時(shí)間設(shè)置得太長(zhǎng),有可能導(dǎo)致

95、程序很長(zhǎng)時(shí)間停止在VISA READ這個(gè)節(jié)點(diǎn)上。解決的辦法是使用“Bytes at Port”這個(gè)串口的屬性節(jié)點(diǎn),這個(gè)屬性節(jié)點(diǎn)讀取當(dāng)前串口緩沖區(qū)有字節(jié)數(shù),然后將它的輸出連接到VISA READ的“讀取字節(jié)數(shù)”這個(gè)輸入端上即可,這樣當(dāng)前緩沖區(qū)中有多少個(gè)字節(jié)就讀回多少個(gè),不會(huì)有任何等待,該屬性節(jié)點(diǎn)如圖4-5所示。</p><p>  圖4-5 Bytes at Port屬性節(jié)點(diǎn)</p><p>

96、;  將以上幾個(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所示。</p><p>  圖4-6 串口數(shù)據(jù)讀取部分程序</p><p>  4.3.3 串口數(shù)據(jù)幀解碼</p><p>  正位機(jī)發(fā)送來(lái)的采集到的4路數(shù)據(jù),在讀取串口的數(shù)據(jù)之后并不知道接收到的數(shù)據(jù)是屬于那一路的,需要將各路的數(shù)據(jù)區(qū)

97、分開(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ì)。</p><p>  公式節(jié)點(diǎn)在程序中相當(dāng)于一個(gè)數(shù)據(jù)

98、運(yùn)算子程序,可以在公式結(jié)點(diǎn)中進(jìn)行類似于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ā)

99、送的4路采集到的數(shù)據(jù),4個(gè)字節(jié)數(shù)據(jù)的通道分別與下位機(jī)發(fā)送時(shí)的通道相對(duì)應(yīng)。公式節(jié)點(diǎn)的程序設(shè)計(jì)如圖4-7所示。</p><p>  圖4-7 公式節(jié)點(diǎn)數(shù)據(jù)幀解碼</p><p>  4.3.4 數(shù)據(jù)處理和顯示</p><p>  將數(shù)據(jù)幀解碼得到的4路數(shù)據(jù)計(jì)算出電壓值,再通過(guò)電壓值計(jì)算出相應(yīng)的溫度值,并通過(guò)溫度值計(jì)算出熱誤差,數(shù)據(jù)處理子VI如圖4-8所示。</p&

100、gt;<p>  圖4-8 數(shù)據(jù)處理子VI</p><p>  各通道數(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)度圖表。</p><p>  圖4-9 波形圖表和強(qiáng)度圖表</p>

101、<p>  波形圖表是顯示一條或多條曲線的特殊數(shù)值顯示控件,一般用于顯示以恒定速率采集到的數(shù)據(jù)。波形圖表會(huì)保留來(lái)源于此前更新的歷史數(shù)據(jù),又稱緩沖區(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í)溫度曲線。與波形圖表一

102、樣,強(qiáng)度圖表也有一個(gè)來(lái)源于此前更新而產(chǎn)生的歷史數(shù)據(jù),又稱緩沖區(qū)。由于強(qiáng)度圖表將顏色作為第三個(gè)維度,因此一個(gè)類似于顏色梯度控件的標(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ù)的右邊。如果圖表顯示已滿,則舊數(shù)據(jù)將從圖表的左邊界移出。</p><p>  4.3.5 數(shù)據(jù)的存儲(chǔ)和讀取</p>&

103、lt;p>  數(shù)據(jù)的存儲(chǔ)和讀取主要是通過(guò)寫(xiě)入文本文件和讀取文本文件這兩個(gè)節(jié)點(diǎn)來(lái)完成。寫(xiě)入文本文件節(jié)點(diǎn)如圖4-10所示,將文件路徑設(shè)計(jì)為選擇路徑輸入,在進(jìn)行數(shù)據(jù)采集時(shí)可</p><p>  圖4-10 寫(xiě)入文本文件節(jié)點(diǎn)</p><p>  以在人機(jī)交互界面上選擇數(shù)據(jù)文件存儲(chǔ)的路徑。讀取文本文件是用于讀取存儲(chǔ)的歷史數(shù)</p><p>  據(jù),如圖4-11所示。&l

104、t;/p><p>  圖4-11 讀取文本文件節(jié)點(diǎn)</p><p>  設(shè)計(jì)時(shí)通過(guò)按下按鈕來(lái)讀取文件里存儲(chǔ)的數(shù)據(jù),并在人機(jī)交互界面的歷史數(shù)據(jù)界面上顯示出歷史數(shù)據(jù),包括歷史溫度曲線圖、歷史溫度強(qiáng)度圖和歷史時(shí)間對(duì)應(yīng)的溫度值。</p><p>  為了方便數(shù)據(jù)的分析,人機(jī)交互界面專門(mén)有一個(gè)是用來(lái)讀取歷史數(shù)據(jù)的,其程序設(shè)計(jì)如圖4-12所示。</p><p&g

105、t;  圖4-12 讀取歷史數(shù)據(jù)顯示程序</p><p>  4.3.6 采集速率和溫度報(bào)警</p><p>  在進(jìn)行數(shù)據(jù)采集時(shí),數(shù)據(jù)采集過(guò)快或者過(guò)慢都不方便對(duì)的數(shù)據(jù)的觀察和分析,在程序設(shè)計(jì)中可以讓用戶可以在人機(jī)交互界面上設(shè)定想要的采集速率;其次就在不同的場(chǎng)合,溫度最高上限也不一樣,同樣在設(shè)計(jì)中出應(yīng)該考慮到用戶可以設(shè)定不同的溫度報(bào)警上限值。其中,溫度報(bào)警程序如圖4-13所示。在程序設(shè)計(jì)中

106、使用條件結(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)警功能。</p><p>  圖4-13 溫度報(bào)警程序</p><p> 

107、 5 原理圖電路仿真 </p><p>  為了更進(jìn)一步確保本方案設(shè)計(jì)的可以行,在進(jìn)行硬件電路實(shí)物的制作之前,先通過(guò)使用仿真軟件對(duì)設(shè)計(jì)方案進(jìn)行軟件仿真。設(shè)計(jì)仿真主要使用Proteus仿真軟件和虛擬串口軟件。</p><p>  下位機(jī)硬件電路仿真原理圖如圖5-1所示,圖中只畫(huà)出了4路放大電路中其中的1路放大電路,其它3路放大與其完全相同。仿真時(shí)另外三路放大器的電壓輸出用三個(gè)滑動(dòng)變阻器來(lái)模

108、擬溫度傳感器經(jīng)放大后的電壓輸出。在上圖的仿真原理圖中只實(shí)現(xiàn)了溫度傳感器、放大電路、A/D轉(zhuǎn)換電路和LCD1602顯示電路的仿真,而串口通信并未實(shí)現(xiàn)仿真。在進(jìn)行串口通信仿真時(shí),首先需要安裝一個(gè)虛擬串口軟件VSPD XP 5,安裝成功后打開(kāi)如</p><p>  圖5-1 硬件電路仿真原理圖</p><p>  圖5-2所示,會(huì)虛擬出兩個(gè)串口COM1和COM2,通過(guò)這兩個(gè)虛擬串口,就可以實(shí)現(xiàn)串

109、口通信的仿真。在進(jìn)行串口通信仿真前需要設(shè)置好仿真原理圖中的串口,其串口參數(shù)設(shè)置如圖5-3所示,選擇串口號(hào)COM1,其中串口波特率為9600,數(shù)據(jù)為8位,停止位1位,沒(méi)有奇</p><p><b>  圖5-2 虛擬串口</b></p><p>  偶校驗(yàn)位。設(shè)置好這些參數(shù)之后,還需要打開(kāi)串口調(diào)試助手,串口調(diào)試助手的設(shè)置除</p><p>  了

溫馨提示

  • 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ù)僅提供信息存儲(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)論