查看: 2066|回复: 2

NXP S08P-Lite开发板心得分享(三)——上位机显示温度采集

[复制链接]
  • TA的每日心情
    开心
    2018-11-24 11:19
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2018-11-17 23:50:56 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 简简单单_3013189 于 2018-11-18 00:01 编辑

    一,设计架构前言:现在工业设计好多地方都要用到上位机显示,以实现电脑端的远距离实时监控,基于这个思想,
    我设计了一个上位机通过PC端的RS232与MCU进行通讯,基本功能已经实现,相互学习一下。
    (由于本人比较穷,买不起显示屏,就把电脑当显示用了
    思路:

    <1>NXP S08P-Lite作为下位机通过采集热敏电阻两端压差,根据电压值计算出温度。
    <2>设计串口通讯数据包规则,将数据包按照规则发给上位机解析显示。
    <3>上位机通过串口获取数据,解析数据并显示出来。

    二,热敏电阻程序开发设计:
    硬件电路分析:
    捕获.PNG
    由于没有热敏电阻的数据手册,只能特征值分析热敏电阻,得出热敏电阻特性函数了:
    VDDA=5.0V(1)90摄氏度时=273.15+90K,压差0.372V, 推算4.99K*2电阻分压为VDDA-0.372V
    (2)-20摄氏度时=273.15-20K,压差2.879V, 推算4.99K*2电阻分压为VDDA-2.879V
    (3)25摄氏度时=273.15+25K,压差1.650V, 推算4.99K*2电阻分压为VDDA-1.650V,此时RT1刚好为10K

    热敏电阻公式
    NTC 热敏电阻温度计算公式:Rt = R *EXP(B*(1/T1-1/T2))
    其中,T1和T2指的是K度,即开尔文温度。
    Rt 是热敏电阻在T1温度下的阻值。
    R是热敏电阻在T2常温下的标称阻值。
    10K的热敏电阻25℃的值为10K(即R=10K)。T2=(273.15+25)
    EXP是e的n次方
    B值是热敏电阻的重要参数
    通过转换可以得到温度T1与电阻Rt的关系T1=1/(ln(Rt/R)/B+1/T2)
    对应的摄氏温度t=T1-273.15,同时+0.5的误差矫正。
    可算出B=3220
    对应程序如下(温度与电阻值关系):
    mike_uiADC_Value0_temp = 0;//THER_A端AD采样值
    mike_uiADC_Value1_temp = 0;//THER_B端AD采样值

    for (i=0; i<10; i++)//平均值10次
    {
      mike_uiADC_Value0_temp += ADC_GetResult(THERM_ADC_CHANNEL0);
    mike_uiADC_Value1_temp += ADC_GetResult(THERM_ADC_CHANNEL1);
    }
    mike_uiADC_Value0 = mike_uiADC_Value0_temp/10;
    mike_uiADC_Value1 = mike_uiADC_Value1_temp/10;

    //mike_uiADC_Value1为R66(4990欧姆)的电压采样值,根据分压原理得出RT的值
    RT = (double)((mike_uiADC_Value0 - mike_uiADC_Value1) * 4990) /mike_uiADC_Value1;
    //B=3220代入方程,为了得出小数把得出的结果乘以了10,
    Tempture = 10*(long)((long)(3220.0/(log(RT/10000) + 10.8)) - 273.15);

    //负数温度没有考虑,比较懒,没去仔细处理
    UartMessageFram[11] = '0' + Tempture/1000;//得出百位
    UartMessageFram[12] = '0' + (Tempture%1000)/100;//得出十位
    UartMessageFram[13] = '0' + (Tempture%100)/10;//得出个位
    UartMessageFram[14] = '0' + (Tempture%10); //得出小数位

    三,串口通讯数据包格式设计:
    上位机数据界面:
    捕获.PNG

    格式如下:有效数据位为27bit
    char UartMessageFram[35]="ZW012345678901234567890123456";
    报头:ZW,捕获到“ZW”数据才有效 char UartMessageFram[35]中第0-1bit
    数据1(10进制:1bit)显示程序更新计数器0-9 char UartMessageFram[35]中第2-2bit
    数据2(10进制:2bit)待定char UartMessageFram[35]中第3-4bit
    数据3(10进制:3bit)待定char UartMessageFram[35]中第5-7bit
    数据4(10进制:3bit)待定char UartMessageFram[35]中第8-10bit
    数据5(10进制:4bit)温度显示char UartMessageFram[35]中第11-14bit
    数据6(10进制:4bit)待定char UartMessageFram[35]中第15-18bit
    数据7(10进制:5bit)待定char UartMessageFram[35]中第19-23bit
    数据8(10进制:5bit)待定char UartMessageFram[35]中第24-28bit

    4,配置串口属性:
    如上面截图(波特率为115200),接下来的帖子会用上其他待定位数据显示
    (电压采集,红外接收,和EEPROM读写)和上传触摸按键状态到上位机,
    贴上上位机软件和MCU代码,有什么问题可以给我留言,相互学习。












    S08_LITE_FAT_V2.7z

    866.36 KB, 下载次数: 3

    MCU代码

    WindosApp.zip

    16.67 KB, 下载次数: 5

    上位机软件

    回复

    使用道具 举报

  • TA的每日心情

    2023-7-25 22:49
  • 签到天数: 385 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2018-11-20 09:39:19 | 显示全部楼层
    谢谢分享。 null9.png null8.png

    null7.png null6.png

    null5.png null4.png

    null3.png null2.png

    null1.png null0.png


    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-11-24 11:19
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]偶尔看看I

     楼主| 发表于 2018-11-24 10:22:32 | 显示全部楼层

    客气了,相互学习
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-4-25 23:47 , Processed in 0.135840 second(s), 20 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.