在VB中通过串行口进行A/D转换
李芳影
天津大学自动化学院 (天津 300000)
一般的计算机测量系统中都需要配备一块专用的数据采集接口卡,在我们研制的平均粒度测定仪中同样也需有一块数据采集接口卡。那么,能否利用微机现有的串行接口对这种对速度要求不是太高的数据进行采样呢?经实验证明,答案是肯定的。
1 串行口简介
微机的串行口通常为9针的D型接口,其各个引脚的定义如表1所示。异步串行通信接口一般只使用TXD、RXD和GND三个引脚,由于A/D转换器多数是并行的,需要的信号线较多,故这里我们采用其它的几根信号线。我们选用了TLC1549这个具有10位数据输出的串行A/D转换器,它与串行通信接口的连接电路见图1。

2 程序设计
由于在VB中没有对硬件接口电路进行直接操作的函数,因此,对串行接口的使用不能直接进行,而是利用由Microsoft提供的串行通信接口控件Mscomm32.ocx来间接完成。这里使用了通信控件的这样几个属性:
DTREnable 作为A/D转换的片选信号线,RTSEnable 作为A/D转换的时钟信号线。若要使其为高电平 ,则为其赋值 True,若要使其为低电平,则为其赋值 False。DSRHolding 为A/D转换结果输出信号线,为True时表明输出的是高电平,为False则表明输出的是低电平。
下面是一段A/D转换程序,它建立在计时器事件中,大约为一秒进行一次A/D转换。根据输入的参考电压值,计算出测得的相应电压值并进行显示。

在使用中要注意,使用串行口前一定要先打开,可采用下面的方法:

图2就是程序执行后得到的画面。

3 结束语
以上所介绍的只是串行通信接口应用于非通信领域的一个简单例子,基于这种设计思想,我们还成功地完成了智能加密IC卡读写系统等多个项目,收到了很好的效果。这种方法的成功使用,极大地减少了应用系统的复杂性,因而有广泛的推广价值。
本文摘自《电子工程师》