您当前的位置:首页 > 计算机论文>计算机应用论文

利用Delphi 3.0开发微机数据采集与处理软件系统

2015-07-09 11:02 来源:学术参考网 作者:未知

摘要  :结合开发“无线电话务模拟训练系统”Win32版软件的实例,本文详细介绍利用Delphi3.0开发微机数据采集与处理软件系统的方法。


关键词:Delphi ADC DAC

    数据采集与处理是计算机应用的一个重要分支,主要研究信息数据的采集、存贮、处理及控制等内容。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 iPoint do ;//等待中断,每中断一次采样一个数据,直至采满Point个点

          ⑸退出系统前关闭中断

          procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);

          begin

          {...}

          myPort.CloseDriver;

          {...}

          end;

          在实际工作中,读者应根据具体数据采集板的硬件特性,参考上述方法,编写数据采集、分析、输出代码。

          参考文献

           

            相关文章
            学术参考网 · 手机版
            https://m.lw881.com/
            首页