您现在的位置: 计算机论文网 >> 计算机论文 >> 信息技术 >> 文章正文
|
利用Delphi 3.0开发微机数据采集与处理软件系统 张 建 军 (中国人民解放军合肥炮兵学院研究生系) 摘要:结合开发“无线电话务模拟训练系统”Win32版软件的实例,本文详细介绍利用Delphi3.0开发微机数据采集与处理软件系统的方法。
数据采集与处理是计算机应用的一个重要分支,主要研究信息数据的采集、存贮、处理及控制等内容。70年代以来,由于微机技术的快速发展及其在军、民用工程领域的广泛应用,尤其是适于通用微机(如IBM PC系列)使用的板卡级数据采集产品的大量出现,以微机为核心的可编程数据采集与处理技术得到迅速发展。现在的微机,只需在其扩展槽内插上一块数据采集板,并辅以应用软件,即可组成一套微机数据采集与处理系统,实现信息处理和实时控制功能。
数据采集与处理技术主要研究模数、数模转换(A/D、D/A)、数据处理等问题,需要计算机硬件电路和软件编程知识。 数据采集:为对温度、压力、流量、速度、位移、振动、噪声等物理量进行测控,首先通过传感器把上述物理量转换成模拟电信号,而后由A/D—D/A板将模拟电信号转换成时间、数值上量化且离散的数字量输入计算机系统。数据采集的核心是A/D转换。 数据处理:计算机根据被测控对象的需要,对采集到的数据进行数学分析运算,处理结果一方面送至显示器、打印机等外设,一方面由A/D—D/A板将数字量转换成模拟电信号输出,对外部物理量进行实时监控。数据处理的核心是数值处理和D/A转换。 2、微机数据采集与处理系统硬件组成 系统主要由被测控对象(设备)、A/D—D/A通道、开关量I/O通道、微机等组成,如图1所示。较复杂的系统包括单片机等多机系统。
图1 微机数据采集与处理系统硬件组成 3、与IBM PC兼容的板卡级数据采集产品 利用IBM PC系列微机及其兼容机I/O通道开放的设计特点,许多厂商已经设计出采用板卡级结构的数据采集产品。这类产品在一块印刷电路板上包括了模拟多路开关(MUX)、采样保持电路(S/H)、模数、数模转换器(ADC、DAC)等部件(有的板型还提供并行I/O接口8255,定时/计数器8254/8254等通用可编程芯片),采用IBM PC总线,可直接插入微机任一扩展槽。本文介绍台湾AXIOM公司生产的AX5412高速数据采集板,以及利用Delphi开发该产品A/D—D/A接口软件的方法。
设采样点数为1024,采样频率为3000HZ,32位定时器采用1MHZ基频率,连接PC机8259的2级中断。 ⑴设定采样参数 Point:=1024;//采样点数为1024 Count:=1000000/3000;//采样频率为3000HZ,Count为计数器1和计数器2级联成的 //定时器的计数值 Count1:=2;//设定计数器1的计数值为2 Count2:=Int(Count/2);//计算计数器1的计数值 Low1:=2;//计数器1计数值的低字节 High1:=0;//计数器1计数值的高字节 Low2:=Count2 mod 256;//计数器2计数值的低字节 High2:=Count2/256;//计数器2计数值的高字节 with myPort do begin Port[Basea+11]:=0;//增益为1 Port[Basea+2]:=$11H;//通道1单通道连续采样 Port[Basea+15]:=$74H;//选择计数器1为工作计数器,按方式2工作,对计数器进 //行2次读/写操作,先低字节,后高字节 Port[Basea+13]:=Low1;//写计数器1计数值的低字节 Port[Basea+13]:=High1;//写计数器1计数值的高字节 Port[Basea+15]:=$B4H;//选择计数器1为工作计数器,按方式2工作,对计数器进 //行2次读/写操作,先低字节,后高字节 Port[Basea+13]:=Low2;//写计数器2计数值的低字节 Port[Basea+13]:=High2;//写计数器2计数值的高字节 end; ⑵编写中断服务程序 procedure TForm1.myPortHwInterrupt(Sender: TObject);//中断服务程序 {...} ImportHigh:=Port[Basea+1];//读A/D转换高8位 ImportLow:=Port[Basea];//读A/D转换高8位 Sample[i]:=ImportHigh*16 or ImportLow/16;//计算12位A/D转换结果,并赋值给采 //样数组 i:=i+1; Port[Basea+8]:=0;//清中断 end; ⑶设置中断 with myPort do begin if ActiveHW then CloseDriver else begin OpenDriver; if not ActiveHW then begin MessageBeep(0); Application.MessageBox('系统发现指定I/O端口未能成功打开!', '请注意!',mb_OK or mb_ICONHAND); end else begin IRQNumber:=2; SetIRQ; end; end; end; ⑷开中断,进行采样 Port[Basea+9]:=$A3H;//选择定时器触发,连接PC机2级中断,开中断 Port[Basea+8]:=1;//选择定时器触发 i:=0; while i<>Point do ;//等待中断,每中断一次采样一个数据,直至采满Point个点 ⑸退出系统前关闭中断 procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin {...} myPort.CloseDriver; {...} end; 在实际工作中,读者应根据具体数据采集板的硬件特性,参考上述方法,编写数据采集、分析、输出代码。 参考文献
一九九九年一月
作者通信地址:(230031)安徽省合肥市炮兵学院研究生系97级 张建军(收) 作者电话:(0551)5560324(宿舍直拨) (0551)5562566转68750(研究生系值班室) 作者E_mail: HYPERLINK mailto:DavidHY@263.net DavidHY@263.net |
专题栏目 最新推荐 相关文章 基于Windows Media技术的 |