8种热电偶mV转温度,温度转mV程序,

2020-01-12 17:10发布

本帖最后由 qwerttt 于 2012-6-17 22:15 编辑

多年前做的过程信号校验仪,其中一项关于热电偶测量和输出的换算程序
根据90温标上的公式编写,供大家测试

程序里的判断,请自行修改

相关链接:
热电阻PT10 PT100 Cu50 Cu100电阻转温度程序
http://www.amobbs.com/thread-5480954-1-1.html

以下是K型mV转温度程序
  1. // K型温度转电压系数
  2. float code Var_TtoV_K[3][11]=
  3. {
  4.         {0, 3.9450128025/1e2, 2.3622373598/1e5, -3.2858906784/1e7, -4.9904828777/1e9,
  5.                 -6.7509059173/1e11, -5.7410327428/1e13, -3.1088872894/1e15,
  6.                 -1.0451609365/1e17, -1.9889266878/1e20, -1.6322697486/1e23},
  7.         {-1.7600413686/1e2, 3.8921204975/1e2, 1.8558770032/1e5, -9.9457592874/1e8,
  8.                 3.1840945719/1e10, -5.6072844889/1e13, 5.6075059059/1e16,
  9.                 -3.2020720003/1e19, 9.7151147152/1e23, -1.2104721275/1e26},
  10.         {1.185976/1e1,-1.183432/1e4}
  11. };

  12. /******************************************************************************
  13. *函数描述:K型 电压转温度(冷端温度为0)
  14.                   毫伏范围:-5.891 ~ +54.819
  15.                   温度范围:-199.933C° ~ +1370.057C°
  16. *输入变量:mV 毫伏
  17. *返回变量:value 温度
  18. ******************************************************************************/
  19. float K_VtoT(float mV)
  20. {
  21.         uchar i = 0;
  22.         float value = 0;
  23.        
  24.         if(mV >= -6.478 && mV < 0)
  25.         {
  26.                 value = Var_VtoT_K[0][8];
  27.                
  28.                 for(i = 8; i >0; i--)
  29.                         value = mV * value + Var_VtoT_K[0][i-1];
  30.         }
  31.         else if(mV >= 0 && mV < 20.644)
  32.         {
  33.                 value = Var_VtoT_K[1][9];
  34.                
  35.                 for(i = 9; i >0; i--)
  36.                         value = mV * value + Var_VtoT_K[1][i-1];
  37.         }
  38.         else if(mV >= 20.644 && mV <= 54.900)
  39.         {
  40.                 value = Var_VtoT_K[2][6];
  41.                
  42.                 for(i = 6; i >0; i--)
  43.                         value = mV * value + Var_VtoT_K[2][i-1];
  44.         }
  45.        
  46.         return value;
  47. }
复制代码
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。