《電子技術應用》
您所在的位置:首頁 > 測試測量 > 設計應用 > 一種基于單片機的速度測量系統
一種基于單片機的速度測量系統
摘要: 在我室研制的某型測控系統中,遇到一彈丸狀物體的初速測量要求,速度范圍在0~150m/s,要求測速模塊實現成本低、可靠性高,測速數據送上位機顯示。
Abstract:
Key words :
1. 引言
 在我室研制的某型測控系統中,遇到一彈丸狀物體的初速測量要求,速度范圍在0~150m/s,要求測速模塊實現成本低、可靠性高,測速數據送上位機顯示。
目前科研生產中采用的速度測量方法可分為兩類;直接測量法和間接測量法兩大類。直接測量法是通過某種測量原理或效應直接獲得速度量, 如多普勒測速儀、空間濾波測速等。這種方法的最大優點是反應快、可測量瞬時速度,但設備成本高,且受到大氣物理環境的限制。間接測量法是測量目標的移動距離和時間, 通過計算得到速度量, 如光電測速、光柵測速、磁柵測速和圖像測速等,用于測量小型彈丸的天幕法和光幕法測速系統、用于車輛測速的激光測速儀,以及用于生產流水線上的光電脈沖測速方法等等。
根據本系統的特點,我室采用了基于光電脈沖的間接測量方法,構建了基于AT89C51單片機測速系統,并采用DDE技術、VB和組態王實現速度信息的上位機顯示,滿足了成本低、可靠性好的測速要求;此外本文提出的單片機與上位機數據通信方法為多種工控軟件和非通用性設備的數據交換問題提供了思路。
2. 單片機測速模塊的實現
a) 測速原理
在本系統中,兩對光電對射管布置在彈丸的通過路徑上,光電對射管間距為S,當彈丸經過遮蔽光電管1,2時,光電管1,2產生一個上升沿或下降沿,以光電管1的上升沿或下降沿作為單片機計數器的啟動脈沖,啟動計數器開始記時,光電管2的上升沿或下降沿作為單片機計數器的停止脈沖,計數器停止記時。此時,得到計數器的記時值n。將值n傳送至上位機,已知單片機的機器周期為T,則,可在上位機內計算出彈丸在定距s內的平均速度V,為V=S/nT。見如下圖1。

 

b) 測速部分硬件實現
如下圖2硬件原理示意圖,光電對射管Q1和Q2分別接入AT89C51的外部中斷0和1引腳相聯,Q1和Q2均為遮斷式對射管(無遮斷時導通,遮斷時截止)。INT0和INT1均設置為下降沿觸發。在INT0中斷處理程序中,啟動AT89C51內計數器T0開始計數,在INT1中斷處理程序中,計數器T0停止計數。計數值暫存于單片機寄存器內。當單片機接收到上位機發出的取數指令時,單片機通過串口將寄存器內計數值發送至上位機進行處理。
                     

3. 單片機與上位機通信
本例上位機控制程序采用組態王組態軟件(Kingview 6.5版)編寫,但其為數據采集和控制提供的底層硬件設備的驅動僅是針對知名廠商的板卡和模塊。因此,針對自行開發的數據采集模塊,需要編寫組態王與單片機串口通信驅動程序。在本例中,應用DDE方式實現組態王和VB進行數據交換,通過編寫串口通信程序實現VB和單片機的通信,完成整個通信流程。

 

 

a) 系統數據流程
動態數據交換(dynamic data exchange ,簡稱DDE),它是Windows 提供的一種基于消息的進程間通信技術協議[2]。其實質是在兩個應用程序之間建立一個數據通道(channel),通過特定的會話過程,由windows作中介,實現數據的雙向傳輸。DDE應用程序以對話(conversations)的方式實現數據共享,會話采用客戶/ 服務器模式,啟動會話并要求接收數據的進程是客戶進程(client),而響應客戶請求提供數據的進程是服務器進程( server)。組態王采用DDE方式和VB進行數據交換,同時通過編寫串口通信程序實現VB和單片機的通信。整個系統的數據交換流程如圖3所示。

 


b) 系統實現
系統實現分為兩個部分:VB與組態王的數據交換以及單片機與VB的數據交換。
i. VB與組態王通過DDE鏈接的數據交換
DDE對話的內容是通過應用程序名(application)、主題( topic)和項目(item) 3 個標示名來約定的。其中,應用程序名是進行DDE對話的雙方的名稱,組態王運行系統的程序名是“VIEW”,VB程序使用的是可執行文件的名稱。主題是指被討論的數據域(domain)。對于組態王來說,主題規定為“tagname”,VB程序的主題由窗體的LinkTopic屬性值指定。項目是指被討論的特定數據對象,在組態王的數據辭典中定義I/O變量的同時,也定義項目名稱。對VB程序而言,項目是具有文本屬性控件的名稱[3]。
VB作為客戶端程序從組態王中得到數據時,首先需要在組態王中定義DDE設備,然后在組態王的數據庫(數據辭典)中按照預先需要通訊的變量點數和變量類型建立I/O變量,定義變量的初始值、最大值、連接設備和項目名,還需要在VB中定義控件的屬性和方法。一般的設置如下:
Control.LinkTopic=服務器程序名|主題名
Control.LinkItem=項目名
Control.LinkMode=0,1,2,3 (其中0=關閉DDE,1=熱鏈接,2=冷鏈接,3=通告鏈接)
Control為VB應用程序中特定的文本框、標簽框或圖片框的名稱。
VB作為服務器程序向組態王提供數據時,首先要在組態王中設置服務器程序的3個標志名,然后把VB 應用程序中提供數據的窗體的LinkMode屬性設置為1。例如,將VB中的txt to Speed 文本框控件中的數據傳給組態王中的I/O變量Speed ,其實現方法如下:
在組態王中建立一個名為VBDDE的DDE設備,服務程序名為vbdde,話題名為FormTopic,數據交換方式為標準Windows DDE交換。新建一個I/O變量Speed,將其連接設備名定義為VBDDE,項目名設為txt to Speed。在VB中,將窗體VBDDE的LinkMode屬性設置為1(source),LinkTopic屬性設置為FormTopic,然后編譯為可執行文件vbdde.exe,即可實現與組態王的通信。
ii. VB與單片機的數據交換
本例采用MSComm控件實現VB與單片機之間的數據交換,具有程序實現簡便、程序模塊化、工作可靠等優點,并能滿足多數情況下的工控要求。使用MSComm控件主要是通過事件來處理串行口的交互。控件的OnComm事件負責捕獲或處理這些通訊事件和通訊錯誤。在實際應用中,一個MSComm控件和一個串行口一一對應,所以如果要處理多個串行口的話,必須有相應數量的控件與之對應。
利用MSComm控件進行串口通信的具體操作和具體的程序代碼已經有很多論述,在這里強調兩點:
1. 無論發送或者接收,都需要用一個Variant變量作中介;
2. 使用MSComm控件的Input及Output屬性來接收或者傳輸文本數據或二進制數據的方法不同:如果發送一個ANSI字符串到串口,可以以文本數據的形式發送;當要傳輸二進制數據時,由于Output屬性支持的變量類型為Variant類型,所以發送二進制數據時必須傳遞一個包含字節數組的Variant到Output屬性。使用MSComm控件的Input屬性讀取數據時,如果接收的數據類型為文本數據,Input屬性通過一個Variant返回文本數據;如果接收的數據模式采用二進制形式,用Input屬性讀取數據時,不能直接賦值給Byte類型變量,只能通過先賦值給一個Variant類型變量,返回一個二進制數據的數組,再轉換保存到Byte類型數組變量中。
4. 結束語
本文論述的基于單片機的速度測量方法已在工程測控系統中得到了應用,適用于中低速物體的測量,具有良好的使用效果,具有實現成本低、可靠性好、精度良好的優點。此外,本文提出的單片機與上位機數據通信方法為多種工控軟件和非通用性設備的數據交換問題提供了思路。還需注意的一點是:通過控件MSCOMM控件的input和out2put屬性可以很方便地接受和發送串口緩沖區的數據,但要編制比較完善的通訊應用程序,還需要進行更深入的研究,比如通過使用“握手”的機制來增強通訊的安全性和穩定性,另外通過數據的重復發送達到收發數據的準確性等等.

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
日韩网站在线观看| 久久五月天婷婷| 小辣椒精品导航| 一区二区激情小说| 亚洲日本精品国产第一区| 狠狠色狠狠色综合日日五| 国产精品成人观看视频免费 | aaa亚洲精品一二三区| 亚洲国产中文字幕在线观看| 在线观看日韩av电影| 国产一区二区剧情av在线| 国产婷婷色一区二区三区在线| 国产精品久久久久久久久果冻传媒| 欧美色图麻豆| 欧美午夜在线| 国产精品入口麻豆原神| 国产精品h在线观看| 国产精品成人免费| 国产精品一区一区三区| 国产日韩精品久久| 国产一区二三区| 黄色精品一区二区| 永久免费视频成人| 亚洲精品国产系列| 夜夜狂射影院欧美极品| 亚洲视频一区二区| 亚洲欧美在线观看| 久久爱www.| 亚洲欧洲精品一区二区三区不卡 | 亚洲天堂成人在线视频| 一区二区三区精品在线| 亚洲视频精品| 香蕉成人啪国产精品视频综合网| 香蕉成人久久| 亚洲国产美女久久久久| 亚洲精选国产| 亚洲在线播放电影| 久久黄色网页| 浪潮色综合久久天堂| 欧美激情成人在线视频| 欧美日韩国产精品一区| 国产精品国产三级国产专播品爱网 | 欧美日本一区| 国产精品乱人伦中文| 国产一区二区三区免费观看| 亚洲成人原创| 亚洲视频电影图片偷拍一区| 午夜精品亚洲| 亚洲精品久久在线| 亚洲在线播放电影| 久久综合九色| 欧美日韩在线另类| 国内精品久久久久影院色 | 你懂的国产精品| 欧美日韩国产高清视频| 国产欧美一区二区三区在线老狼| 韩国欧美一区| 99国产精品| 欧美一区二区在线观看| 日韩视频在线一区二区| 欧美亚洲一区二区三区| 免费成人av| 国产精品美女一区二区| 一色屋精品视频免费看| 亚洲蜜桃精久久久久久久| 性做久久久久久免费观看欧美| 亚洲日本激情| 欧美影院午夜播放| 欧美精品久久天天躁| 国产欧美日本一区二区三区| 亚洲黄色影院| 久久国产欧美精品| 亚洲主播在线观看| 欧美电影在线观看完整版| 国产精品视频观看| 亚洲另类自拍| 久久99伊人| 亚洲欧美日韩中文播放| 免费在线观看一区二区| 国产精品网站在线| 日韩视频在线一区二区三区| 久久国产精彩视频| 亚洲一区中文字幕在线观看| 蜜臀久久久99精品久久久久久| 国产精品久久久久久久9999 | 亚洲精品影视| 久久久久久999| 国产精品久久影院| 亚洲精品视频在线| 亚洲经典在线| 久久久久综合网| 国产精品免费福利| 亚洲精品一区二区三区樱花| 亚洲欧美另类在线观看| 亚洲一区二区三区涩| 麻豆乱码国产一区二区三区| 欧美午夜激情在线| 亚洲激情视频在线| 亚洲国产视频一区| 久久久久免费观看| 国产欧美日韩高清| 亚洲小说欧美另类社区| 亚洲无亚洲人成网站77777| 欧美极品在线视频| 亚洲国产视频直播| 亚洲国内在线| 久久视频免费观看| 国产午夜亚洲精品理论片色戒| 亚洲性感激情| 亚洲欧美国产精品桃花| 欧美视频专区一二在线观看| 亚洲精品在线一区二区| 9色精品在线| 欧美精品色网| 亚洲欧洲三级电影| 亚洲美女区一区| 欧美韩日一区二区| 亚洲国产高清aⅴ视频| 亚洲国产精品久久精品怡红院| 久久久久久伊人| 韩国av一区二区三区| 欧美在线日韩| 久久亚洲精品视频| 黄色亚洲精品| 亚洲国产精品一区| 欧美jizzhd精品欧美巨大免费| 一色屋精品视频在线看 | 亚洲精品视频在线观看网站| 欧美11—12娇小xxxx| 亚洲国产精品va在线看黑人| 亚洲欧洲精品一区二区三区不卡 | 日韩视频一区二区三区| 欧美精品v国产精品v日韩精品| 亚洲国产网站| 这里只有视频精品| 国产精品嫩草久久久久| 亚洲欧美精品在线| 久久久亚洲成人| 亚洲国产精品一区二区www| 999亚洲国产精| 国产精品mm| 欧美在线看片| 欧美顶级大胆免费视频| av成人黄色| 久久er99精品| 在线观看视频日韩| 99精品国产一区二区青青牛奶| 欧美日本一区二区三区 | 亚洲欧美怡红院| 国产日产欧产精品推荐色| 久久精品国产亚洲精品| 欧美激情精品久久久久| av成人免费观看| 久久福利一区| 亚洲第一视频| 亚洲视频免费看| 国产亚洲精品一区二555| 亚洲电影第1页| 欧美日产一区二区三区在线观看 | 亚洲精品日韩久久| 欧美揉bbbbb揉bbbbb| 先锋影音国产精品| 免费亚洲网站| 亚洲视频精品在线| 麻豆成人在线播放| 一本一本久久a久久精品牛牛影视| 欧美一级成年大片在线观看| 尤物在线观看一区| 亚洲一区综合| 一区免费观看| 亚洲男人天堂2024| 在线观看亚洲精品| 亚洲砖区区免费| 激情久久久久| 亚洲色图在线视频| 国产一区二区三区在线观看免费| 亚洲日本va午夜在线影院| 国产精品狼人久久影院观看方式| 久久精品免费看| 国产精品国产三级国产普通话99| 亚洲福利视频专区| 国产精品久久久久久久9999| 亚洲国产高潮在线观看| 国产精品vvv| 亚洲人被黑人高潮完整版| 国产精品毛片在线看| 亚洲日本成人网| 国产一区二区黄| 亚洲午夜免费视频| 在线播放国产一区中文字幕剧情欧美| 在线综合亚洲欧美在线视频| 激情av一区二区| 欧美一区二区高清| 99国产欧美久久久精品| 玖玖玖免费嫩草在线影院一区| 亚洲午夜精品在线| 欧美精品福利| 亚洲高清久久网| 国产日韩亚洲欧美| 亚洲综合精品四区|