📄 max6675.c
字号:
////////////////////////////////////
#include <max6675.h>
//////////////////////////////////////
//max6675读时钟延时程序
/////////////////////////////////////
max6675_Delay(max6675_delay_VALUE)
{ unsigned char t;
t = (max6675_delay_VALUE);
while ( --t != 0 );
}
///////////////////////////////////////
/*--------------------------------------------*/
//读MAX6675子程序
//MAX6675_CS;MAX6675_SO; MAX6675_SCK
/*--------------------------------------------*/
void max6675_Read(unsigned char *dat)
{unsigned char i,t,kdat=0;
kdat=0;
MAX6675_CS=1;
//max6675_Delay(200);
MAX6675_CS=0;
MAX6675_SCK=0;
for(t=0;t<2;t++)
{
for(i=8;i>0;i--)
{
kdat=kdat<<1;
if(MAX6675_SO==1)kdat=kdat|0x01;
MAX6675_SCK=1;
max6675_Delay(2);
MAX6675_SCK=0;
max6675_Delay(2);
}
*(dat+t)=kdat;
kdat=0;
}
MAX6675_CS=1;
}
///////////////////////////////////////////////////////
/*-----------------------------------------------------*/
//双字节移位子程序
/*-----------------------------------------------------*/
/////////////////////////////////////////////////////////
//////////////////////////////////////////////////
/*---------------------------------------------------*/
//温度值转换子程序
//转换后的值分成三字节存放;
/*---------------------------------------------------*/
////////////////////////////////////////////////////////
void max6675_Transition(unsigned char *T_dat,unsigned char *T_dat_af)
{unsigned char i,t,tdat1=0,tdat2=0;
tdat1=*T_dat;tdat2=*(T_dat+1);
t=((tdat2&0x18)>>3)*25;
*(T_dat_af+2)=t;
////////////////////////////////////////////////////////
for(i=5;i>0;i--)
{
tdat2=tdat2>>1;
if(tdat1&0x01==0x01)tdat2=tdat2|0x80;
tdat1=tdat1>>1;
}
////////////////////////////////////////////////////////
*T_dat_af=tdat1;
*(T_dat_af+1)=tdat2;
}
///////////////////////////////////////////////////////////
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -