测量仪表的非线性处理技术

王朝学院·作者佚名  2011-12-23
窄屏简体版  字體:   |    |    |  超大  

王有一

摘要:介绍在汇编语言中进行非线性处理的编程技术。

关键词:非线性处理;结构化程序设计;单片机

单片机结构的测量仪表,经常需要对测量变量进行非线性处理。比如,工业测量中经常使用的热电阻感温元件的电阻(电压)与温度的关系就是非线性的。计算机对这类测量变量进行工程值转换时,通常是将它们的电压/电流信号值及对应工程值的非线性列表(表1)存入计算机中,然后,当检测该变量时,通过查表比较,换算出对应的工程值。当然,查表换算所需的分段转换斜率也应存入计算机。

查表法用高级程序语言很容易处理,但在汇编语言中实现却比较困难。我们注意到,MCS-51单片机指令系统虽然没有单独的比较指令,但设计了多条比较转移指令,它们既有比较功能,又能根据比较结果控制程序转移。特别是CJNEA,direct,rel指令,具有A和direct两个可变参数的单元,可以说是这类指令中功能最强的指令。将测量信号的A/D转换值放入直接地址单元direct,累加器A用来依次取查表值,就可以很方便地实现查表比较,我们设计查表循环结构就以该指令为核心来实现。

对程序的数据结构进行合理设计,也可以大大简化和优化程序。为了便于读取表值,可在程序初始化时,就将Xi表值从外部存储器读入8031片内RAM工作区,并使其地址码与Yi表对应,这样可以共用一个地址指针。如图1所示。Xi/Yi表各包含16个参数,由于查表时读取Xi的操作最频繁,将Xi表调入片内RAM无疑会提高程序的运行效率。

为了提高计算精度,我们在外部存储器中除保存转换表外,还存储了Xi+1-Xi的差值,没有直接使用转换斜率Ki。

在此数据结构的基础上,该程序流程图设计如图2。

入口:被测信号经数字滤波后的计数值→RAM6AH单元

出口:经过非线性转换的工程值→RAM6BH单元该程序清单如下:

可以在仪表面板设置一个“参数设定”键,用于输入和保存转换表的参数。保存参数的外部存储器可以选用6264RAM。目前各种非易失存储器芯片已获得广泛应用,其中DS1225芯片与6264完全兼容,它自带锂电池,保存数据的有效期为10年。将转换表存储在该芯片中就更加方便实用,同时DSl225还可用于保存历史数据。

参考文献

[1]孙涵芳,徐爱卿.MCS-51/96系列单片机原理及应用[M].北京:北京航空航天出版社,1988.

摘自仪表技术

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航