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

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

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

nonlinear processing techniques of meter

wangyou-yi

(thermal power research institute,xi’an 710032,china)

  abstract:the article chieflyintroducesthe programmingtechniques processing nonlineartransition in the assemblelanguage.

  key words:nonlinear processing;structuralprogramming;scm 

 

  单片机结构的测量仪表,经常需要对测量变量进行非线性处理。比如,工业测量中经常使用的热电阻感温元件的电阻(电压)与温度的关系就是非线性的。计算机对这类测量变量进行工程值转换时,通常是将它们的电压/电流信号值及对应工程值的非线性列表(表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.

  

  • 测量仪表的非线性处理技术已关闭评论
    A+
发布日期:2019年07月02日  所属分类:参考设计