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