数码之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 1866|回复: 15

[C51] 温度计的查表法怎么使用表格?

[复制链接]
发表于 2022-4-20 10:41:13 | 显示全部楼层

/************************************************************
* 函数名        :         Get_Temp()
* 功能说明        :         获取NTC温度值
*
* 输入参数        :        无
* 输出参数        :         uint16 温度值*100,单位摄氏度
************************************
* 修改记录        :        
* 历次作者        :        
* 日期                :        
************************************
* 修改记录        :        新增函数,第一次编辑
* 历次作者        :        Huo_xp
* 日期                :        2019/08/12
*************************************************************/        

uint16 Get_Temp(void)
{
    uint8 count = 0;
    static uint8 adccount;
    static uint8 Temp_Buf[AVE_N+1];
    uint16 temp = 0;
    uint16 sum = 0;

    temp=(uint16)ADC_SAR_SEQ_GetResult16(HEAT_TEMP)*2; //Psoc ADC实际只有11Bit,所以*2,方便查表计算温度
   
//        Temp_Buf[AVE_N]=temp;//ADC_SAR_SEQ_GetResult16(HEAT_TEMP)*2;  //将ADC转换结果放数组最高位
//        if( ++adccount < 8)      //采样初期不使用递推滤波算法
//    {   
//        for(count=0;count<8;count++)  //准备递推滤波算法的数据
//                {
//                    Temp_Buf[count]=Temp_Buf[count+1];//所有数据循环左移
//                }
//                temp=Temp_Buf[8];//采样初期使用当前采样值
//        }
//    else    //只有采样次数大于8次以后才使用递推滤波算法
//    {
//        adccount=8; //采样次数超过8次后,固定设置为8
//        for(count=0;count<8;count++)  //递推滤波算法
//        {
//            Temp_Buf[count]=Temp_Buf[count+1];//所有数据循环左移
//            sum += Temp_Buf[count];  //求和
//        }
//        temp=sum/8;        //求平均值      
//    }   
//    count=0;
    while( temp < NTC_Table[count] ) //将当前温度值与温度表对比,得到所在位置
    {   count++;   }

    NTC_Temp = count*100 +(1-((temp - NTC_Table[count+1])*100 )/( NTC_Table[count] - NTC_Table[count+1]));
   // 插值法计算温度,将数据全部扩大100倍,使小数变为整数,

//    if(count >=39)    //温度高于0度
//    {
//        temp=NTC_Temp-3900;//修正温度,0~120
//        sprintf(
//            uartLine, "Heat temp is: %dC %d %d %d",
//            (uint16) temp,ADC_SAR_SEQ_GetResult16(HEAT_TEMP),count,TIMER.mSec //ADCcount//
//            );
//
//            UART_PutString(uartLine);
//            UART_PutCRLF();
//     }
//     else
//    {
//        temp=4000-NTC_Temp;//修正温度,-40~0
//        sprintf(
//            uartLine, "Heat temp is: -%dC %d %d ",
//            (uint16) temp,ADC_SAR_SEQ_GetResult16(HEAT_TEMP),count //ADCcount//
//            );
//
//            UART_PutString(uartLine);
//            UART_PutCRLF();  
//    }
       return NTC_Temp;
   

}

/************************************************************
* 函数名        :         NTC_Table[]
* 功能说明        :         NTC温度阻止表,不同的NTC需按照规格书重新计算
*
* 输入参数        :        无
* 输出参数        :        无
************************************
* 修改记录        :        
* 历次作者        :        
* 日期                :        
************************************
* 修改记录        :        新增函数,第一次编辑
* 历次作者        :        Huo_xp
* 日期                :        2019/08/12
*************************************************************/        

   
const uint16  NTC_Table[] = {    //NTC温度转换12 Bit ADC 各温度对应的值
   
//hex                          temp C      
   
0xF8B,                          //-40
0xF85,                          //-39
0xF7F,                          //-38
0xF78,                          //-37
0xF70,                          //-36
0xF69,                          //-35
0xF61,                          //-34
0xF59,                          //-33
0xF50,                          //-32
0xF48,                          //-31
0xF3E,                          //-30
0xF35,                          //-29
0xF2B,                          //-28
0xF20,                          //-27
0xF15,                          //-26
0xF0A,                          //-25
0xEFE,                          //-24
0xEF2,                          //-23
0xEE5,                          //-22
0xED8,                          //-21
0xECA,                          //-20
0xEBC,                          //-19
0xEAE,                          //-18
0xE9E,                          //-17
0xE8F,                          //-16
0xE7E,                          //-15
0xE6E,                          //-14
0xE5C,                          //-13
0xE4A,                          //-12
0xE38,                          //-11
0xE25,                          //-10
0xE11,                          //-9
0xDFD,                          //-8
0xDE9,                          //-7
0xDD3,                          //-6
0xDBD,                          //-5
0xDA7,                          //-4
0xD90,                          //-3
0xD78,                          //-2
0xD60,                          //-1
0xD47,                          //0
0xD2E,                          //1
0xD14,                          //2
0xCFA,                          //3
0xCDF,                          //4
0xCC3,                          //5
0xCA7,                          //6
0xC8B,                          //7
0xC6E,                          //8
0xC50,                          //9
0xC32,                          //10
0xC14,                          //11
0xBF5,                          //12
0xBD6,                          //13
0xBB5,                          //14
0xB96,                          //15
0xB75,                          //16
0xB54,                          //17
0xB32,                          //18
0xB11,                          //19
0xAEF,                          //20
0xACC,                          //21
0xAAA,                          //22
0xA87,                          //23
0xA64,                          //24
0xA41,                          //25
0xA1E,                          //26
0x9FA,                          //27
0x9D7,                          //28
0x9B3,                          //29
0x98F,                          //30
0x96C,                          //31
0x948,                          //32
0x924,                          //33
0x900,                          //34
0x8DC,                          //35
0x8B8,                          //36
0x895,                          //37
0x871,                          //38
0x84D,                          //39
0x82A,                          //40
0x807,                          //41
0x7E4,                          //42
0x7C1,                          //43
0x79E,                          //44
0x77C,                          //45
0x75A,                          //46
0x738,                          //47
0x717,                          //48
0x6F5,                          //49
0x6D4,                          //50
0x6B3,                          //51
0x693,                          //52
0x673,                          //53
0x653,                          //54
0x634,                          //55
0x615,                          //56
0x5F6,                          //57
0x5D8,                          //58
0x5BA,                          //59
0x59D,                          //60
0x580,                          //61
0x563,                          //62
0x547,                          //63
0x52B,                          //64
0x510,                          //65
0x4F5,                          //66
0x4DB,                          //67
0x4C1,                          //68
0x4A8,                          //69
0x48E,                          //70
0x476,                          //71
0x45E,                          //72
0x446,                          //73
0x42F,                          //74
0x418,                          //75
0x401,                          //76
0x3EB,                          //77
0x3D6,                          //78
0x3C1,                          //79
0x3AC,                          //80
0x397,                          //81
0x384,                          //82
0x370,                          //83
0x35D,                          //84
0x34A,                          //85
0x338,                          //86
0x326,                          //87
0x315,                          //88
0x304,                          //89
0x2F3,                          //90
0x2E3,                          //91
0x2D2,                          //92
0x2C3,                          //93
0x2B3,                          //94
0x2A5,                          //95
0x296,                          //96
0x287,                          //97
0x279,                          //98
0x26C,                          //99
0x25E,                          //100
0x251,                          //101
0x244,                          //102
0x238,                          //103
0x22C,                          //104
0x220,                          //105
0x214,                          //106
0x209,                          //107
0x1FE,                          //108
0x1F3,                          //109
0x1E8,                          //110
0x1DE,                          //111
0x1D4,                          //112
0x1CA,                          //113
0x1C0,                          //114
0x1B6,                          //115
0x1AD,                          //116
0x1A4,                          //117
0x19B,                          //118
0x193,                          //119
0x18A,                          //120
};

打赏

参与人数 1家元 +70 收起 理由
广东梁百万 + 70 謝謝分享

查看全部打赏

回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 微信登录

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-6-27 20:16 , Processed in 0.109200 second(s), 13 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

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