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