原创 Max6675测温问题

2011-5-27 11:29 7583 6 9 分类: 汽车电子

在实验使用MAX6675这一款芯片来实现K型热电偶的数据读取时,实验时发现一个问题,MAX6675的时序完全是按照datasheet来的,可是却不能再while(1)语句下实现循环,也就是读取一次温度后,MAX6675就再也无法正确的传输温度数据了,只有复位单片机之后才能读取当前的温度,检查程序和硬件多次未果,最后崩溃的无法压抑,你妹。。。。于是乎用一个延时函数在while()后ctrl C ctrl V了n次之后,惊喜来了,能循环读了!终于亮了!激动不已。还好没有拆焊啊!28RMB一块的MAX6675伤不起啊!

放下程序,

20110527112526001.gif


#include <reg52.h>
#include "intrins.h"

#define uint unsigned int
#define uchar unsigned char
unsigned char i;
unsigned char temp;
unsigned char a,b;
uint gsw,dbw,flag;
sbit so=P3^5;
sbit cs=P3^6;
sbit sck=P3^7;
 
 
void Delay(unsigned int time)//延时函数
{
 while( time-- );
}
 
 

void main(void)

        uchar i;
   P0=0X00;
  P1=0X00;
  P2=0X00;
  P3=0X00;
     P2=0XFF;
  Delay(10000);
 while(1) {
 
 
  Delay(10000);
   Delay(10000);
  Delay(10000);
  Delay(10000);
  Delay(10000);
  Delay(10000);
  Delay(10000);
  Delay(10000);
  Delay(10000);
   Delay(10000);
  Delay(10000);
  Delay(10000);
  Delay(10000);
  Delay(10000);
   Delay(10000);
  Delay(10000);
  Delay(10000);

  _nop_();   
  cs=0;
  _nop_();
  sck=1;
  _nop_();
  sck=0; /*输出第一位D15 */
  _nop_();
  sck=1;
  
  for(i=4;i>=1;i--)
   {
    sck=0;
    _nop_();
    gsw=gsw|so;
    gsw=gsw<<1;
    sck=1;
    _nop_();
   }
   for(i=8;i>=1;i--)
   {
    sck=0;
    _nop_();
    dbw=dbw|so;
    dbw=dbw<<1;
    sck=1;
    _nop_();
   }
  sck=0;
  _nop_();
  sck=1;
  _nop_();
  sck=0;
  _nop_();
  sck=1;
  _nop_ ();
  sck=0;
  _nop_();
  cs=1;
  _nop_();
  
   gsw=gsw<<8;
   gsw=gsw/4;
  _nop_();
  if(gsw>1000)   //500度
  { P2=0X00;}

  else P2=0XFF;
 
 
 }
}

 

 

gsw=1000,好像对应的是475°C,大家可以用仿真调试一下。

rar.gifMAX6675.rar

PARTNER CONTENT

文章评论3条评论)

登录后参与讨论

用户377235 2013-12-11 14:46

其實是因為MAX6675轉換一次溫度的時間為0.17~0.22S,固需延時或中斷掃描。

用户377235 2013-2-25 20:17

AD转换没完成就读了........我也遇到这个问题,仔细一想 加个延时就好了

用户377235 2013-1-24 18:54

我也遇到同样的问题、请问是什么原因导致的呢?

相关推荐阅读
用户219240 2011-06-24 19:14
Eagle 3D 使用心得
一直以来都看到网上大大小小的对eagle软件如何如何好用的各类帖子。于是乎自己也在ourdev上下载了eagle 5.11来玩了一天。发现也解决了不少问题。 1.软件安装 基本来说就3个东西:eagl...
用户219240 2011-06-02 18:05
TPS63001 升压降压转换器 应用指南
翻资料的时候找到去年学习MSP430单片机时研究锂电池供电方案时找到的一款IC,TPS63001,这个芯片自己也买过,13RMB一个, 3x3 QFN 封装,小的可怜,贵的吓人,基本用人工无法焊接。...
用户219240 2011-05-18 15:10
空气悬架的机械式控制原理
attachment download 近半年会开始做空气悬架,先把机械式控制的总结了一下,电控还比较复杂,国内基本还没人做半主动和主动悬架。。哎 有难度哦...
用户219240 2011-05-18 14:59
缓速器的pcb
终于测试好了缓速器的PCB,第一次自己设计,自己焊接,还好,只出了几个封装引脚顺序之类的小错误,用飞线轻松搞定,一上午也就焊完了,买的欧姆龙的继电器,不知道是不是真的,弹片质量不好,有时候还弹不回来了...
用户219240 2011-05-11 09:46
气动缓速器C程序和proteus仿真文件
attachment download包括速度采集,温度采集,无线模块信号采集,电磁阀控制的所有c程序,AT89S52单片机,Keil uVision4编写,仿真为proteus7.5...
我要评论
3
6
关闭 站长推荐上一条 /3 下一条