<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于VC++的數據監視系統

基于VC++的數據監視系統

作者: 時(shí)間:2012-01-07 來(lái)源:網(wǎng)絡(luò ) 收藏

引言 目前主要的監視系統軟件大多是由組態(tài)軟件或VB實(shí)現的。組態(tài)軟件將功能模塊化,對于較小的系統有一些多余的功能是用不上的,導致了資源的浪費。而VB功能有限,運行效率不高。隨著(zhù)Windows操作系統的普及和其強大的功能,越來(lái)越多的程序支持Windows操作系統。由于VC是微軟的產(chǎn)品,用它來(lái)編寫(xiě)Windows程序有強大的程序接口和豐富的開(kāi)發(fā)資源的支持,加之VC嚴謹的內存管理,在堆棧上良好的分配處理,生成代碼的體積小,穩定性高的優(yōu)點(diǎn),所以就成為目前程序的主流開(kāi)發(fā)工具。本文主要介紹如何用編寫(xiě)監控程序,本程序用在基于凌陽(yáng)單片機的數據采集及無(wú)線(xiàn)傳輸系統中監視現場(chǎng)采集的數據。

1 .系統筐架及各部分的功能

本系統分兩大部分:數據采集及發(fā)送部分,數據接收部分。如圖1所示:

圖1 系統框圖

其中:數據采集部分采集外界電壓值并將電壓的模擬值轉換成數字值。

無(wú)線(xiàn)傳輸模塊負責收發(fā)轉換后的數字值。

顯示模塊將數字值經(jīng)過(guò)處理后顯示出測量的電壓值。

數據監視部分將接收模塊接收到的數據經(jīng)過(guò)處理后顯示出測量的電壓值。

2 .數據監視程序的設計

要實(shí)現數據監視的功能要解決三個(gè)問(wèn)題:

1.上位機(PC機)如何接收數據。

2.接收到數據后如何處理使顯示在屏幕上的數據更加直觀(guān)。

3.由于有測量誤差,如何用軟件的方法減少誤差。

2.1 接收數據

在無(wú)線(xiàn)接收模塊接收到遠處的數據后將數據發(fā)送到上位機的串口。 6.0提供的MSComm控件通過(guò)串行端口發(fā)送和接收數據,為應用程序提供串行通信功能。當串口接收緩沖區中有字符時(shí),可以利用 MSComm 控件的 OnComm 事件捕獲并處理這些數據。在編程過(guò)程中,可以在OnComm事件處理函數中加入自己的處理代碼處理得到的數據。

2.2 處理數據

從串口接收到的數據是16位2進(jìn)制碼。直接顯示不直觀(guān),需要將其轉化為電壓值。

2.2.1.原始數據的格式

因為本系統采集兩路數據,為了分辨電壓值是哪一路的,我們將16位2進(jìn)制碼的最高位(第15位)設置為路數識別位,0代表第一路1代表第二路。第14位到10位數據無(wú)用為0,第9位到0位為電壓數據。結構如圖2所示:

圖2 原始數據結構

2.2.2 數據的處理

假設接收的16位數據為X

先判斷是哪一路電壓的數據:若X ≥32768(2進(jìn)制數1000000000000000對應的10進(jìn)制數)說(shuō)明數據來(lái)自第2路。將X減去32768得到真實(shí)的電壓數據Y,再通過(guò)公式運算得到測量電壓值:公式為:V=Y*6.6/1024 (此公式是根據電壓采集模塊而定的這里就不再詳述了)。若X< 32768說(shuō)明數據來(lái)自第1路,直接用上述公式得出電壓值V。

2.3 顯示電壓值

程序將兩路數據分別顯示在兩個(gè)文本框中。如圖3所示:

圖3 程序界面圖

左邊顯示第1路右邊顯示第2路,先收到的數據顯示在文本框的最上面后收到的數據依次排在下面,點(diǎn)擊“清空”鍵時(shí)文本框清空。

2.4 減少誤差

由于電壓采集模塊本身有一定的阻值,電壓測量值總是小于實(shí)際的值我們用軟件的方法將2.2.2中得到的Y乘以一個(gè)固定的數(經(jīng)過(guò)多次試驗將此數定為1.023)使測量值于實(shí)際值更接近。以下是實(shí)驗所得結果:

第一路A/D轉換,如表1所示。

表1 A/D1轉換對照表 單位:伏

實(shí)際電壓

4.902

4.466

3.970

3.570

2.996

2.462

1.994

1.550

1.042

顯示電壓

4.9

4.5

4.0

3.5

3.0

2.5

2.0

1.5

1.0

接收電壓

4.90

4.46

3.96

3.51

3.00

2.46

1.99

1.50

1.03

第二路A/D轉換,如表2所示。

表2 A/D2轉換對照表 單位:伏

實(shí)際電壓

4.982

4.472

4.040

3.464

2.992

2.504

1.990

1.538

0.996

顯示電壓

5.0

4.5

4.0

3.5

3.0

2.5

2.0

1.5

1.0

接收電壓

4.98

4.47

4.03

3.47

2.99

2.50

1.98

1.53

0.99

2.5 程序框圖

如圖4所示

圖4 程序框圖

3.結束語(yǔ)

本文結合實(shí)際應用介紹了基于VC++的監視程序的設計過(guò)程。設計的程序具有接受數據,顯示數據,糾正誤差等功能。并且結構簡(jiǎn)單,運行效率高,占系統資源少,體現了VC的優(yōu)越性。在誤差矯正的功能上還可以針對A/D轉換帶來(lái)的誤差設計一種算法使顯示的電壓值更為精確,這將在下一步的工作中的繼續研究。

本文作者創(chuàng )新點(diǎn):不同于大多數監視軟件使用組態(tài)軟件或VB實(shí)現,本文使用VC++編寫(xiě)監視程序。

參考文獻

1 羅亞非等編著(zhù).凌陽(yáng)16位單片機應用基礎.北京:北京航空航天大學(xué)出版社,2005.

2 陳偉,陳法國,王世勛.無(wú)線(xiàn)數據通信技術(shù)在TPMS中的應用.武漢理工大學(xué)報,2005,27 (5):241~244

3 PTR8000.pdf.訊通科技.www.freqchina.com

4 nRF905.pdf.訊通科技.www.freqchina.com

5 丁立波,江小華,張河.基于無(wú)線(xiàn)數字傳輸技術(shù)的數據采集系統設計.無(wú)線(xiàn)發(fā)送/接收IC芯片及其數據通訊技術(shù)選編(2):168~171

6 施運梅,劉梅彥,楊根興.網(wǎng)絡(luò )資源管理研究[J].微計算機信息 2006(1);109—11


關(guān)鍵詞: SPCE061A VC++ 遠程監視

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>