基于单片机的热电偶冷端温度控制论文(5)

2019-05-17 18:04

delay_18B20(40); }

uchar ds1820rd()/*读数据*/ { unsigned char i=0; unsigned char dat = 0; for (i=8;i>0;i--)

{ DQ = 0; //给脉冲信号 dat>>=1;

DQ = 1; //给脉冲信号 if(DQ)

dat|=0x80;

delay_18B20(10); }

return(dat); }

void ds1820wr(uchar wdata)/*写数据*/ {unsigned char i=0; for (i=8; i>0; i--) { DQ = 0;

DQ = wdata&0x01; delay_18B20(10); DQ = 1; wdata>>=1; } }

read_temp()/*读取温度值并转换*/ {uchar a,b;

ds1820rst();

ds1820wr(0xcc);//*跳过读序列号*/ ds1820wr(0x44);//*启动温度转换*/ ds1820rst();

ds1820wr(0xcc);//*跳过读序列号*/ ds1820wr(0xbe);//*读取温度*/ a=ds1820rd(); b=ds1820rd(); tvalue=b; tvalue<<=8;

tvalue=tvalue|a;

if(tvalue<0x0fff) tflag=0;

20

else

{tvalue=~tvalue+1; tflag=1; }

tvalue=tvalue*(0.625);//温度值扩大10倍,精确到1位小数 return(tvalue); }

/*******************************************************************/ void ds1820disp()//温度值显示 { uchar flagdat;

disdata[0]=tvalue/1000+0x30;//百位数

disdata[1]=tvalue00/100+0x30;//十位数 disdata[2]=tvalue0/10+0x30;//个位数 disdata[3]=tvalue+0x30;//小数位

if(tflag==0)

flagdat=0x20;//正温度不显示符号 else

flagdat=0x2d;//负温度显示负号:- if(disdata[0]==0x30)

{disdata[0]=0x20;//如果百位为0,不显示 if(disdata[1]==0x30)

{disdata[1]=0x20;//如果百位为0,十位为0也不显示 } }

wr_com(0xc0);

wr_dat(flagdat);//显示符号位 wr_com(0xc1);

wr_dat(disdata[0]);//显示百位 wr_com(0xc2);

wr_dat(disdata[1]);//显示十位 wr_com(0xc3);

wr_dat(disdata[2]);//显示个位 wr_com(0xc4);

wr_dat(0x2e);//显示小数点 wr_com(0xc5);

wr_dat(disdata[3]);//显示小数位 }

/********************主程序***********************************/ void main()

{ init_play();//初始化显示

21

while(1)

{read_temp();//读取温度 ds1820disp();//显示 } }

22


基于单片机的热电偶冷端温度控制论文(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:真爱,犹如小雨沙沙下

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

马上注册会员

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