用C语言编程的数据采集系统
发布时间:2021-06-09
发布时间: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
:—),,讲师,。
下一篇:桥面负弯矩张拉注浆技术交底