发布于 2010-11-15 15:36:58
5楼
程序运行步骤详解
读数--需要滤波的数据(整型,取值范围-32000~32000)
表长--参与滤波计算数据区数据个数(长整型,取值范围4~64)
最大值--存储在数据区内的最大值
最小值--存储在数据区内的最小值
输出--数据区内去除最大值和最小值后的平均值
输出=(总和-最大值-最小值)/(表长-2)
前值--前一次的输出值
读入存储区特征单元16B。
读数大于数据区最大值时,如果最大值标志位=0,直接舍弃,令最大值标志位=1,直接输出前值。
读数大于数据区最大值时,如果最大值标志位=1,记入数据区。
读数小于数据区最小值时,如果最小值标志位=0,直接舍弃,令最小值标志位=1,直接输出前值。
读数大于数据区最小值时,如果最小值标志位=1,记入数据区。
记入数据:
读数写入当前指针指向的数据单元。
最小值标志位、最大值标志位复位。
将前值传递给最大值、最小值寄存器(实现最大值、最小值寄存器的初始化,该值在下面将要进行的比较、替换操作结束后得到数据区的最大值和最小值)。
当前指针如果已经是表尾,令当前指针指向数据区开始单元,否则下移。
累加数据区数据,同时与最大值、最小值寄存器比较,找出最大值、最小值。
从累加器减掉当前最大值,减掉当前最小值之后,用(数据个数-2)去除,得到平均值。
刷新存储区的特征单元16B。
制冷、热工-许可证试验室承建,给了我深究测量与控制的绝好机会。分享-值得期待!