51+HD7279+ADS1110+PT100的测温系统(程序)(2)

2021-09-24 19:47

// mean NULL nLowTMP nHightTMP nTMPAdj

uint nLowTMP = 480; // 最低温度设定

uint nHightTMP = 650; // 最高温度设定

char nTMPAdj = 0; // 温度修正

void send_ad_result(uchar temp);

/***********************************************************************************

************************************************************************************

////////////////////////////////HD 7279 函数////////////////////////////////////////

************************************************************************************

************************************************************************************/

void write7279(uchar cmd, uchar dta)

{

cs = 0;

send_byte (cmd);

send_byte (dta);

cs = 1;

}

51+HD7279+ADS1110+PT100的测温系统,通过与标准温度计对比拟合,精度能达到0.5度

uchar read7279(uchar command)

{

cs = 0;

send_byte(command);

return(receive_byte());

cs = 1;

}

void send_byte( uchar out_byte)

{

uchar i;

cs=0;

long_delay();

for (i=0;i<8;i++)

{

if (out_byte&0x80)

{

dat=1;

}

else

{

dat=0;

}

clk=1;

short_delay();

clk=0;

short_delay();

out_byte=out_byte*2;

}

dat=0;

}

uchar receive_byte(void)

{

uchar i, in_byte;

dat=1; // set to input mode

long_delay();

for (i=0;i<8;i++)

{

clk=1;

short_delay();

in_byte=in_byte*2;

if (dat)

{

51+HD7279+ADS1110+PT100的测温系统,通过与标准温度计对比拟合,精度能达到0.5度

in_byte=in_byte|0x01;

}

clk=0;

short_delay();

}

dat=0;

return (in_byte);

}

void delay10ms(uint time) //误差 -0.000000000001us

{

uchar a,b,c;

uint i;

for (i=0;i<time;i++)

{

for(c=7;c>0;c--)

for(b=168;b>0;b--)

for(a=24;a>0;a--);

}

}

void long_delay(void)

{

unsigned char i;

for (i=0;i<0x30;i++);

}

void short_delay(void)

{

unsigned char i;

for (i=0;i<8;i++);

}

/***********************************************************************************

************************************************************************************

////////////////////////////////HD 7279 函数 END////////////////////////////////////////

************************************************************************************

************************************************************************************/

//--------------------- 模块延时程序_1ms -------------------------

void delay1ms(uint delay1ms) //STC11F60XE,延时1ms

{

uchar a,b;

// 12M

51+HD7279+ADS1110+PT100的测温系统,通过与标准温度计对比拟合,精度能达到0.5度

// for(;delay1ms>0;delay1ms--)

// for(b=222;b>0;b--)

// for(a=12;a>0;a--);

// 11.0592M

for( ; delay1ms > 0; delay1ms--)

for(b = 21; b > 0; b--)

for(a = 130; a > 0; a--);

}

void Delay5us() // 晶振11.0592M 误差 -0.026765046296us

{

uchar a;

for(a=12;a>0;a--);

_nop_();

}

void delay(uint delay) //STC11F60XE,12M,延时170us

{

uchar a,b;

// 12M

// for(;delay>0;delay--)

// for(b=78;b>0;b--)

// for(a=5;a>0;a--);

// 11.0592M

for( ; delay > 0; delay--)

for( b = 2; b > 0; b--)

for( a = 232; a > 0; a--);

}

//--------------------- 数码管显示函数 -------------------------

void Display_TMP(uint nTmp1)

{

//send_byte(CMD_RESET);

write7279(DECODE0,nTmp1/100%100);

delay1ms(2);

write7279(DECODE0+1,nTmp1/10%10);

delay1ms(2);

write7279(SEGON,15);

delay1ms(2);

write7279(DECODE0+2,nTmp1%10);

delay1ms(2);

write7279(SEGON,63);

51+HD7279+ADS1110+PT100的测温系统,通过与标准温度计对比拟合,精度能达到0.5度

delay1ms(2);

write7279(SEGON,62);

delay1ms(2);

write7279(SEGON,61);

delay1ms(2);

write7279(SEGON,60);

delay1ms(2);

write7279(SEGON,59);

delay1ms(2);

// write7279(DECODE0+4,nTmp2/100%100);

// delay1ms(2);

// write7279(DECODE0+5,nTmp2/10%10);

// delay1ms(2);

// write7279(SEGON,47);

// delay1ms(2);

// write7279(DECODE0+6,nTmp2%10);

// delay1ms(2);

// write7279(SEGON,31);

// delay1ms(2);

// write7279(SEGON,30);

// delay1ms(2);

// write7279(SEGON,29);

// delay1ms(2);

// write7279(SEGON,28);

// delay1ms(2);

// write7279(SEGON,27);

// delay1ms(2);

//delay10ms(1000);

//send_byte(CMD_RESET);

}

51+HD7279+ADS1110+PT100的测温系统(程序)(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2012年湖南金太阳项目

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: