在VB中通過串行口進行A/D轉換
一般的計算機測量系統(tǒng)中都需要配備一塊專用的數(shù)據(jù)采集接口卡,在我們研制的平均粒度測定儀中同樣也需有一塊數(shù)據(jù)采集接口卡。那么,能否利用微機現(xiàn)有的串行接口對這種對速度要求不是太高的數(shù)據(jù)進行采樣呢?經(jīng)實驗證明,答案是肯定的。
1 串行口簡介
微機的串行口通常為9針的d型接口,其各個引腳的定義如表1所示。
異步串行通信接口一般只使用txd、rxd和gnd三個引腳,由于a/d轉換器多數(shù)是并行的,需要的信號線較多,故這里我們采用其它的幾根信號線。我們選用了tlc1549這個具有10位數(shù)據(jù)輸出的串行a/d轉換器,它與串行通信接口的連接電路見圖1。
2 程序設計
由于在vb中沒有對硬件接口電路進行直接操作的函數(shù),因此,對串行接口的使用不能直接進行,而是利用由microsoft提供的串行通信接口控件mscomm32.ocx來間接完成。這里使用了通信控件的這樣幾個屬性:
dtrenable 作為a/d轉換的片選信號線,rtsenable 作為a/d轉換的時鐘信號線。若要使其為高電平 ,則為其賦值
true,若要使其為低電平,則為其賦值 false。dsrholding 為a/d轉換結果輸出信號線,為true時表明輸出的是高電平,為false則表明輸出的是低電平。
下面是一段a/d轉換程序,它建立在計時器事件中,大約為一秒進行一次a/d轉換。根據(jù)輸入的參考電壓值,計算出測得的相應電壓值并進行顯示。
在使用中要注意,使用串行口前一定要先打開,可采用下面的方法:
圖2就是程序執(zhí)行后得到的畫面。
3 結束語
以上所介紹的只是串行通信接口應用于非通信領域的一個簡單例子,基于這種設計思想,我們還成功地完成了智能加密ic卡讀寫系統(tǒng)等多個項目,收到了很好的效果。這種方法的成功使用,極大地減少了應用系統(tǒng)的復雜性,因而有廣泛的推廣價值。
評論