用C语言编程的数据采集系统

发布时间:2021-06-09

2001年第4期仪表技术

—15—

用C语言编程的数据采集系统

郑海英,王立红,闫俐

(辽宁工学院信息科学与工程系,辽宁锦州121001)

  摘要:介绍一种利用PC机和ADC构成的、并用C语言编程的数据采集系统。

关键词:C语言;数据采集系统;A/D转换

DataAcquisitionSystemBasedonCProgram

ZHENGHai-ying;WANGLi-hong,YANLi

(InformationScience&EngineeringDept.ofLiaoningInstituteofTechnology,Jinzhou121001,China)

Abstract:ThepapergivesdataacquisitionsystembasedonCprogramandusingPCandADC.Keywords:Clanguage;dataacquisition;ADC

  微机控制的数据采集系统,在过程控制和动态监测

等领域得到了非常广泛的应用。利用PC机和AD板构成这种系统是较好的选择。它可以在PC机显示器上给出比单片机数据采集系统更为生动的彩色显示,此外,还可以利用C语言编程的优越性取代汇编语言编程,从而不仅使程序大大简化,而且使其与机器无关,即在具有I/O扩展槽的不同型号的PC机上都可使用。1 硬件连接

  PC机的I/O扩展槽给出了数据总线D0~D7,地址总线A0~A19,地址允许AEN以及IOR、IOW等信号。只要AD板的数据、地址总线分别与扩展槽的对应,则将AD板插入扩展槽即完成了硬件连接。AD板上的地址译码,一般采用不完全译码方式,即只用A0~A1112条地址线。但必须保证所译地址不与其他外设口地址冲突。现取AD574作为A/D转换器,其输入有0~10V和0~20V2个量程,并有12位和8位两种转换方式,输出分高8位和低4位,因此要占用4个地址,由A0连接到脚4和A1连接到脚5来实现。当A1A0为00和01时分别启动A/D的12位转换和8位转换,当A1A0为10和11时,则分别读出高8位和低4位。如果地址从0500H开始不与其他口地址冲突,用74系列逻辑芯片构成译码电路,则AD574与译码电路的连接如图所示。

A11A10A9A8  A7A6A5A4  A3A2A1A0  0101

0000

0000

地址允许AEN在IOR,IOW出现前变为低电平,以确认I/O口操作有效,因此把AEN加入地址译码电路中。

  AD574的状态(STS)脚28,在转换结束时变为低电平,用三态门74LS244连接到D7,以便用来查询转换是否完毕。三态门脚1连接到74LS138的Y1,脚19连接到IOR。这样,三态们的地址将是0504H~0507H之一。例如访问0504H,便可将AD574脚28上的状态位经D7传送到CPU。为去除D6~D0各位的影响,可把此字节和80H相“与”,因而D6~D0各位都变为0。若“与”的结果为0,则状态位也为0,表示转换已完毕,便可读出转换结果的高8位和低4位。否则,应继续等待。

2 用C语言编写A/D转换程序

在C语言的库函数中,有访问外设口的函数out-portb(),它将一个字节数据写入外设口寄存器;函数inportb(),把口寄存器中一个字节读入CPU。因此,启动A/D转换应该用前者,但由上图知,并不需将数据写入AD574,只需将A1A0变为00,所以可把1字节写

  收稿日期:2001—04

:—),,讲师,。

用C语言编程的数据采集系统.doc 将本文的Word文档下载到电脑

精彩图片

热门精选

大家正在看

× 游客快捷下载通道(下载后可以自由复制和排版)

限时特价:7 元/份 原价:20元

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219