霍爾傳感器信號采集與顯示系統(tǒng)設計
以下僅給出串行通信初始化和中斷服務子程序代碼:
串行通信初始化程序為:
3.2 PC機部分
在Windows中,串行口的硬件設備通過通信驅動程序comm.drv與windows進行連接,通過使用標準的windows API函數(shù)發(fā)送和接收數(shù)據(jù)。而MSComm控件通信功能的實現(xiàn),是調用windows API函數(shù),并通過設置其屬性和事件,來定義windows通信驅動程序的API函數(shù)接口,為應用程序提供了通過串行接口收發(fā)數(shù)據(jù)的簡便方法。
MSCOmm控件提供了2種處理通信的方法:一是事件驅動方法,也就是利用OnComm事件,這是一種處理串行端口活動非常有效的方法,不僅能夠利用MSCOmm控件來偵測并處理通信事件和錯誤,而且還具有程序響應及時、可靠性高等優(yōu)點;另一種方法是查詢法,MSComm控件的C0mmEvent屬性返回通信中產(chǎn)生的事件和錯誤類型,由通信控件自動檢測和跟蹤通信狀態(tài)后設置。因此可以直接讀取CommEvent屬性的值來檢測通信中產(chǎn)生的事件和錯誤類型,這種方法比較簡單,常用在小的自含程序中。
該設計程序即采用查詢法讀取InBufferCount的屬性值來接收單片機發(fā)來的數(shù)據(jù)。實驗主程序對串口初始化并畫出坐標系;每單擊‘繪點’鍵程序向單片機發(fā)送一個任意數(shù),告訴單片機將模數(shù)轉換結果發(fā)送過來,然后采用查詢方式接收該數(shù)據(jù),進行相應的轉化后把該點繪在坐標系上,一次數(shù)據(jù)采集結束。
MSComm控件的常用屬性:CommPort:設置并返回通信端口號;Settings:以字符串的形式設置并返回波特率、奇偶校驗、數(shù)據(jù)位、停止位;Pott()pen:設置并返回通信端口的狀態(tài)也可以打開和關閉端口;Input:從接收緩沖區(qū)返回和刪除字符;Output:向傳輸緩沖區(qū)寫1個字符串。
該實驗的Coml口串行通信初始化程序如下:
End Sub
從圖7中PC機界面顯示位移一電壓坐標圖,表1記錄的數(shù)據(jù)以及圖8在示波器上顯示的霍爾線性電路理想電壓一位移曲線圖相比較,可以發(fā)現(xiàn)由于傳感器實驗臺受外界干擾等原因使得輸出信號輸出誤差在所難免,而且沒有電平轉換,使得VB繪圖中得到的數(shù)值存在負值;但是可以在圖中看到傳感器輸出的電壓值在正負之間有明顯的對稱性,與要求輸出的理想輸出信號波形相符合,證明本系統(tǒng)運行良好,設計的非常成功。
4 結 語
對于目前廣泛應用的WindOWs環(huán)境下實現(xiàn)PC機與單片機之間的通信問題具有重要的參考價值。
評論