找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 160|回复: 2
收起左侧

分享一个MAX6675的程序,有修正版的,并指出原因

[复制链接]
ne5532 发表于 2020-11-24 20:07 | 显示全部楼层 |阅读模式
前几天因一个工程需要做了一个温度采集,因还有好多库存的MAX6675,所以用它,因原来用51单片机做的,现开始学32,所以用32做的,偷懒从网上找了个程序,如下所示:
//////////////////////////////
//u16 max6675_readRawValue(void)
//{
//  u16 tmp=0;
//  u16 i;
//  MAX6675_CS_L;//cs低
//  /*按位读取电平*/
//  for(i=0;i<16;i++)
//          {  
//                          /*创建一个沿,按沿读取PB7的端口电平*/
//                        MAX6675_CK_H;
//                        delay_us(10);
//                        if(MAX6675_SO)tmp|=0x0001;
//                    //printf("tmp%d---:%d\n",i,tmp);/*这是为了检查错误时按位打印每个数*/
//                        tmp<<=1;//按位左移
//                    MAX6675_CK_L;
//                        delay_us(10);
//                  }
//              MAX6675_CS_H;//cs高                  
//   if (tmp&0x0004)
// {
//    M2 = 1; //未检测到热电偶
//        // printf("未检测到热电偶\n");//测试用
//  }
//  else
// {        
//    M2=0;
//        tmp<<=1;//去掉D15位
//        tmp>>=4;//去掉D0、1、2位
//  }
//        return tmp;
//}
//
//u16 max6675_readTemperature(void)
//{
//        u16 d,a;
//        float i,S;
//        S=2.142857;//实验数,用温水和热水 环境测得的一个实际差量
////        delay_ms(200);
//        d=max6675_readRawValue();
//        i=d*1023.75/4095/S;
//        a=i;
//    return a;
//}


这个程序总体来讲,没有多大的问题,用起来也可以用,但实际上是有问题的。
1,正常程序中不需要除所谓的系数:如上所示产的S=2.142857,
2,断线检测不正常,可能好多朋友在做这个的时候,基本上没有用到过断线检测。

经过仔细分析,采用试的方法,发现了一个问题,就是时序图里的数据传输问题,第一个数据实际上不需要CK-H,
就可以直接读出来,如果加上一个CK-H的话,就导致了整个数据往左多移了1个位,所以上面的程序中取采用tmp>>=4;//去掉D0、1、2位
D0-2总共3个位,却要移4个位的原因,  同时还有,//        tmp<<=1;//去掉D15位   这句话实际上把D14的值去掉了,实际值只有11位数据了,因为
一般人用于低温,根本不会发现, 我在试开路检测时,输出的数据不是最大值,而是个中间值就可以说明这个问题。
最重要的问题是,D2值一直没有变化,我做开路没有反应,原来是D2的位置变到了D3的位置,接下来就可以修改了。
1, if (tmp&0x0004) 变为 if (tmp&0x0008)
2,//        tmp<<=1;//去掉D15位 这句取消
3,S=2.142857;//实验数,用温水和热水 环境测得的一个实际差量   这句也取消。
4,i=d*1023.75/4095/S;  改为i=d*1023.75/4095;
经过测试,实际的温度值与标准温度计相差0.5度,断线检测有反应,达到设计要求。
增加PID,实际控温可达到正负0.3度波动。


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

钟志伟 发表于 2020-11-25 00:21 | 显示全部楼层
这芯片除了价格啥都好!
回复

使用道具 举报

 楼主| ne5532 发表于 2020-11-26 09:14 | 显示全部楼层
准备搞个OP07的试玩下,过段时间有空就做个玩一下,就有一点不好,要用+-电源.这个是个额外的支出.
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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