打印
[51单片机]

请问一下为什么MAX6675不能实时显示温度?

[复制链接]
1234|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
pql2438547|  楼主 | 2019-9-1 21:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
参考了网上的很多例程,无论怎样都不能实时显示温度,但是重新打开电源或者使用独立按键按下就能读取更新一次温度????
#include<intrins.h> 
#include "reg51.h"                         //此文件中定义了单片机的一些特殊功能寄存器
#include "oled.h"

sbit SO=P1^1;                                 
sbit SCK=P1^3;                        
sbit CS=P1^2;
sbit key = P3^3;
                               
unsigned int MAX6675_Temp;
                                       
void delay(unsigned int i)
{
        while(i--);       
}


unsigned int Re_Convert() //热电偶数据读取,返回温度
{
        long int a=0x7ff8;
        long int wendu=0,wendu_1;
        float wendu_2;
    unsigned int i;
        CS=1;
        SCK=0;
        delay(200);
        _nop_();
        _nop_();
        CS=0;
        for(i=1;i<=16;i++)
          {        wendu=wendu<<1;
                _nop_();
                 SCK=1;
                if(SO==1){wendu=wendu|0x01;}
                   else wendu=wendu|0x00;
                _nop_();
                _nop_();
                SCK=0;
                _nop_();
                _nop_();
          }
        wendu_1=wendu&a;
        wendu_1=wendu_1>>3;
        wendu_2=wendu_1*0.25;
               
        return wendu_2;                        //返回带两位小数的实际温度

}

void main()
{       

                OLED_Init();                        //初始化OLED  
                OLED_Clear();
               
        while(1)
        {
                if(key==0)
                {
                        delay(1000);
                        if(key==0)
                                {
                                        while(key==0);
                                        MAX6675_Temp=Re_Convert();
                                }
                }
               
                OLED_ShowNum(103,6,MAX6675_Temp,3,16);
       
        }               
}

使用特权

评论回复
评论
pql2438547 2019-9-1 21:28 回复TA
我想知道难不成我的MAX6675是假货吗? 

相关帖子

沙发
guitianxia| | 2019-10-9 22:36 | 只看该作者
现在美信很多高仿的, 你货品在那里购买的 多少批次的啊

使用特权

评论回复
板凳
gx_huang| | 2019-10-10 10:20 | 只看该作者
肯定是程序问题了,哪来的这么多假货,假货也不会功能都不对,起码你可以用才可以赚后续的钱。

使用特权

评论回复
地板
xuyaqi| | 2019-10-10 10:26 | 只看该作者
你程序就这么要求的,把程序改一下你试试:
        while(1)
        {
                /*if(key==0)
                {
                        delay(1000);
                        if(key==0)
                        {
                                while(key==0);
                                MAX6675_Temp=Re_Convert();
                        }
                }*/
                MAX6675_Temp=Re_Convert();
                OLED_ShowNum(103,6,MAX6675_Temp,3,16);

        }               

使用特权

评论回复
5
guitianxia| | 2019-11-20 19:12 | 只看该作者


MAX6675ISA+T

关键特性
  • 冷端温度补偿
  • 简单的SPI兼容串行接口
  • 12位、0.25°C分辨率
  • 热电偶开路检测
  • 转换器温度分辨率为0.25°C,可读取温度达+1024°C,热电偶在0°C至+700°C温度范围内精度为8 LSB。
  • MAX6675采用小尺寸、8引脚SO封装

    定型电路图
  • 硅天下科技提供技术支持与备货服务

使用特权

评论回复
6
airwill| | 2020-1-6 22:27 | 只看该作者
通常是软件的问题,  另外怎么实时,  着要求可能也需要详细描述一下, 毕竟温度常常需要做滤波处理

使用特权

评论回复
7
ZC12345678910| | 2020-1-8 12:55 | 只看该作者
程序不对?

使用特权

评论回复
8
maximQ820270087| | 2020-6-9 11:41 | 只看该作者
如果大家新开的方案 推荐用
MAX31855
冷端补偿热电偶至数字输出转换器
高精度热电偶数字转换器IC,

MAX31855KASA+T    -200°C to +1350°C     8SO
MAX31855JASA+T     -40°C to +750°C      8SO
MAX31855NASA+T    -200°C to + 1300°C    8SO
MAX31855SASA+T     -50°C to +1600°C     8SO
MAX31855TASA+T     -250°C to +400°C    8SO
MAX31855EASA+T     -40°C to +900°C     8SO
MAX31855RASA+T     -50°C to +1770°C    8SO



【MAX31855关键特性】
冷端补偿
14位、0.25°C分辨率
转换器的温度分辨率为0.25°C,
温度读数为-270°C 至+1800°C,
对于K型热电偶,在-200°C至+700°C温度范围内,保持±2°C精度。
提供K、J、N、T和E型热电偶器件版本
简单的SPI兼容接口(只读)
检测热电偶对GND或VCC短路
检测热电偶开路
应用
电器设备
汽车
HVAC
工业

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

4

帖子

0

粉丝