搜索
bottom↓
回复: 36

ntc 电阻计算软件 有砖头例程

  [复制链接]

出0入0汤圆

发表于 2012-9-21 10:37:13 | 显示全部楼层 |阅读模式
本帖最后由 lihw2@ 于 2012-9-21 10:57 编辑

做一个温度计 用到了ntc 在网上找到了一个ntc热电阻计算软件还不错。


#include <USART.h>
#include<intrins.h>
#include "adc.h"
#define uchar unsigned char
#define uint unsigned int
#define        u32         unsigned long int


uint code AD_Result[131] = {
        982,980,978,976,974,0x3CB,0x3C9,0x3C6,0x3C4,0x3C1,
        0x3BE,0x3BB,0x3B8,0x3B5,0x3B2,0x3AE,0x3AB,0x3A7,0x3A4,0x3A0,
        0x39C,0x398,0x394,0x390,0x38C,0x387,0x383,0x37E,0x37A,0x375,
        0x370,0x36B,0x366,0x360,0x35B,0x355,0x350,0x34A,0x344,0x33E,
        0x338,0x332,0x32C,0x326,0x31F,0x319,0x312,0x30B,0x305,0x2FE,
        0x2F7,0x2F0,0x2E9,0x2E2,0x2DB,0x2D3,0x2CC,0x2C5,0x2BD,0x2B6,
        0x2AE,0x2A7,0x29F,0x298,0x290,0x288,0x281,0x279,0x271,0x269,
        0x262,0x25A,0x252,0x24B,0x243,0x23B,0x234,0x22C,0x224,0x21D,
        0x215,0x20E,0x206,0x1FF,0x1F7,0x1F0,0x1E9,0x1E2,0x1DA,0x1D3,
        0x1CC,0x1C5,0x1BE,0x1B7,0x1B0,0x1AA,0x1A3,0x19C,0x196,0x18F,
        0x189,0x183,0x17C,0x176,0x170,0x16A,0x164,0x15E,0x158,0x153,
        0x14D,0x147,0x142,0x13D,0x137,0x132,0x12D,0x128,0x123,0x11E,
        0x119,0x114,0x10F,0x10B,0x106,0x102,0xFD,0xF9,245,241,
        0xED
};


char code Temp_Value[131] = {
        -10,-9,-8,-7,-6,-5,-4,-3,-2,-1,

        0,1,2,3,4,5,6,7,8,9,

        10,11,12,13,14,15,16,17,18,19,

        20,21,22,23,24,25,26,27,28,29,

        30,31,32,33,34,35,36,37,38,39,

        40,41,42,43,44,45,46,47,48,49,

        50,51,52,53,54,55,56,57,58,59,

        60,61,62,63,64,65,66,67,68,69,

        70,71,72,73,74,75,76,77,78,79,

        80,81,82,83,84,85,86,87,88,89,

        90,91,92,93,94,95,96,97,98,99,

        100,101,102,103,104,105,106,107,108,109,

        110,111,112,113,114,115,116,117,118,119,

        120
};


uint next;   
uint temp[11];
uint volat[11];
int tempx;
uint volatx;
int tempy;
uint volaty;
char code dx516[3] _at_ 0x00ff;
void tempcl();
void volatcl();
uint temcha(uint dat);
void t0() interrupt 1         //计数器0.计时
{       
                TR0=0;
                TH0=(65535-59090)/256;
                TL0=(65535-59090)%256;          //重装计时值  
                if(next<10)
                {
                        temp[next]=adc_dat(0);
                }
                if((next>=10)&&(next<20))
                {
                        volat[next-10]=adc_dat(4);
                }
               
                next++;
                if(next==12)
                {
                tempcl();
               
                }
                if(next==22)
                {
                volatcl();
                next=0;
                }
                 
       
       
        WDT_CONTR=0x3b;
        TR0=1;
}

//*******************************主函数******************************/
main()                                   //主函数
{
  
       
        float vv;
        P0M0=0XFF;
        P1M1=0XFF;
        UartInit();
        adc_pwon();
  //START_HT1621();
        SETUP_HT1621();
  
       
        TMOD &= 0XF0;
        TMOD |= 0X01;                                 //
        TH0=(65535-60000)/256;
        TL0=(65535-60000)%256;
        TR0=1;                          //定时器0 启动
        ET0=1;                         //定时器0中断允许
       
       
       
       
        while(1)
  {
   vv = 196.0/1024.0;
         tempy=temcha(tempx);
        // volaty = volatx*(150/1024);
         volaty = volatx*vv;
         display(tempy,volaty);
                               //全显示
  }                                         
}  





uint temcha(uint dat)
{   uchar j;
                for (j=0;j<130;j++)
                   {                                                                          
                      if( (dat<=AD_Result[j]) && (dat>AD_Result[j+1]) )
                                        {
                                        break;
                                        }
                                       
                    }
                         return(Temp_Value[j] );
}





void tempcl()
{
     uchar i,j;
           uint tem;
            
                  
          
                   for (j=0;j<9;j++)
                   {                                                                          
                      for (i=j;i<9;i++)
                      {
                         if(temp[j]>temp[i+1])
                         {
                            tem = temp[j];
                            temp[j] = temp[i+1];
                             temp[i+1] = tem;
                         }
                      }
                    }
               
                tempx  = (temp[2]+temp[3]+temp[4]+temp[5]+temp[6]+temp[7])/6;
               
}

void volatcl()
{
         uchar i,j;
           uint tem;
            
                  
          
                   for (j=0;j<5;j++)
                   {                                                                          
                      for (i=0;i<5;i++)
                      {
                         if ( volat[0]>volat[i+1] )
                         {
                            tem = volat[0];
                            volat[0] = volat[i+1];
                             volat[i+1] = tem;
                         }
                      }
                    }
        volatx = (volat[2]+volat[3]+volat[4]+volat[5]+volat[6]+volat[7])/6;
        SendDec(volatx);
}



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

 楼主| 发表于 2012-9-21 10:49:01 | 显示全部楼层
自己顶顶一下 ,还有 那位大大能给个插值的算法啊?

出0入0汤圆

发表于 2012-9-27 09:51:53 | 显示全部楼层
好东西哦。

出0入0汤圆

发表于 2012-9-27 10:09:52 | 显示全部楼层
http://www.amobbs.com/forum.php? ... 4&highlight=ntc

出0入213汤圆

发表于 2012-9-27 10:47:44 | 显示全部楼层
楼主,你分享的正是我用得着的.谢谢了.

出0入0汤圆

发表于 2012-11-23 14:47:10 | 显示全部楼层
MARK!NTC插值计算器

出0入0汤圆

发表于 2012-11-23 15:05:23 | 显示全部楼层
不同的系统误差不知道会有多大?

出0入0汤圆

发表于 2012-11-23 15:12:30 | 显示全部楼层
金山毒霸,报毒啊!
楼主杀毒试试。

出0入0汤圆

发表于 2012-11-23 18:02:45 | 显示全部楼层
不错,以后用到时算算,谢了楼主

出0入0汤圆

 楼主| 发表于 2012-11-23 21:31:55 | 显示全部楼层
我一直用的卡巴,没有报毒。

出0入0汤圆

发表于 2013-5-11 16:04:57 | 显示全部楼层
找了很久,感谢分享

出200入0汤圆

发表于 2013-5-11 16:27:35 来自手机 | 显示全部楼层
不错,收藏

出0入0汤圆

发表于 2013-5-27 17:52:48 | 显示全部楼层
NTC插值计算器

出0入0汤圆

发表于 2013-5-27 18:28:27 | 显示全部楼层
设个软件很好用 哦,精度很高!

出0入0汤圆

发表于 2013-5-27 23:15:31 | 显示全部楼层
好东西啊,收藏收藏,实用!

出0入0汤圆

发表于 2013-5-28 08:16:24 | 显示全部楼层
标记看看

出0入0汤圆

发表于 2013-5-29 11:52:10 | 显示全部楼层
好东西啊,收藏收藏,实用!

出0入0汤圆

发表于 2013-5-29 11:57:17 | 显示全部楼层
试用了一下不错。。。以前都用Excel。。。。姿势+1咯

出0入0汤圆

发表于 2013-10-4 10:24:11 | 显示全部楼层
正好需要

出0入0汤圆

发表于 2013-10-4 20:04:53 | 显示全部楼层
找了好久了.

出0入0汤圆

发表于 2013-10-4 20:32:11 | 显示全部楼层
先学习一下了

出0入0汤圆

发表于 2013-10-4 21:33:15 | 显示全部楼层
标记,以后应该会用到。

出0入0汤圆

发表于 2014-3-3 22:18:42 | 显示全部楼层
不错支持回复

出0入0汤圆

发表于 2014-3-3 23:32:09 | 显示全部楼层
这个软件不错,感谢分享~~~

出0入4汤圆

发表于 2014-3-6 10:48:29 | 显示全部楼层
支持楼主!!!

出0入0汤圆

发表于 2014-3-12 11:17:37 | 显示全部楼层
不错不错,很实用的东西,谢谢分享

出0入0汤圆

发表于 2014-3-14 03:20:12 来自手机 | 显示全部楼层
谢谢分享

出0入4汤圆

发表于 2014-4-16 22:23:15 | 显示全部楼层
win7下运行不了呢?

出0入0汤圆

发表于 2014-4-17 06:27:16 来自手机 | 显示全部楼层
ntc计算软件,谢谢分享

出0入0汤圆

发表于 2014-5-15 15:10:33 | 显示全部楼层
mark, ntc 温度计算

出0入0汤圆

发表于 2014-7-24 09:27:42 | 显示全部楼层
好东西  谢谢分享

出0入0汤圆

发表于 2015-1-18 21:22:10 | 显示全部楼层
谢谢分享

出0入0汤圆

发表于 2015-1-18 21:51:07 | 显示全部楼层
好软件,收藏了,感谢分享

出0入0汤圆

发表于 2015-1-19 10:12:59 | 显示全部楼层
收藏了哈

出0入0汤圆

发表于 2015-8-15 12:39:09 | 显示全部楼层
好东西,主楼顶

出0入0汤圆

发表于 2018-6-26 19:03:17 | 显示全部楼层
谢谢 需要

出0入0汤圆

发表于 2018-6-27 19:25:55 | 显示全部楼层
用这种技术的温度控制器还有很多,水浴锅上面的都是这种温控!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-23 21:53

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表