参考了网上的很多例程,无论怎样都不能实时显示温度,但是重新打开电源或者使用独立按键按下就能读取更新一次温度????#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);
}
}
|
我想知道难不成我的MAX6675是假货吗?