5论文(10)

2019-08-03 12:26

沈阳理工大学学士学位论文

}

dat>>=1;

DQ1 = 1; //给脉冲信号 if(DQ1) dat|=0x80; delay_18B20(10);

return(dat); }

void ds1820wr_1(uchar wdata)/*写数据*/ {uchar i=0; for (i=8; i>0; i--) { DQ1 = 0;

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

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

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

ds1820wr_1(0xcc);//*跳过读序列号*/ ds1820wr_1(0xbe);//*读取温度*/ a=ds1820rd_1(); b=ds1820rd_1(); tvalue=b;

44

沈阳理工大学学士学位论文

tvalue<<=8; tvalue=tvalue|a; if(tvalue<0x0fff) tflag=0; else

{tvalue=~tvalue+1;

tflag=1;

}

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

return(tvalue);

}

void ds1820disp_1()//温度值显示

{ 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也不显示 }

45

沈阳理工大学学士学位论文

}

write_com(0x80); write_date('1');//显示通道 write_com(0x81);

write_date(flagdat);//显示符号位 write_com(0x82);

write_date(disdata[0]);//显示百位 write_com(0x83);

write_date(disdata[1]);//显示十位 write_com(0x84);

write_date(disdata[2]);//显示个位 write_com(0x85);

write_date(0x2e);//显示小数点 write_com(0x86);

write_date(disdata[3]);//显示小数位 write_com(0x87); write_date('C');

}

/**************************************第二路*******************************************/

void ds1820rst_2()/*ds1820复位*/ { uchar x=0;

DQ2 = 1; //DQ复位 delay_18B20(4); //延时 DQ2 = 0; //DQ拉低

delay_18B20(100); //精确延时大于480us DQ2 = 1; //拉高 delay_18B20(40);

46

沈阳理工大学学士学位论文

}

uchar ds1820rd_2()/*读数据*/ { uchar i=0;

uchar dat = 0; for (i=8;i>0;i--)

{ DQ2 = 0; //给脉冲信号 }

dat>>=1;

DQ2 = 1; //给脉冲信号 if(DQ2) dat|=0x80; delay_18B20(10);

return(dat); }

void ds1820wr_2(uchar wdata)/*写数据*/ {uchar i=0; for (i=8; i>0; i--) { DQ2 = 0;

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

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

ds1820wr_2(0xcc);//*跳过读序列号*/

47

沈阳理工大学学士学位论文

ds1820wr_2(0x44);//*启动温度转换*/ ds1820rst_2();

ds1820wr_2(0xcc);//*跳过读序列号*/ ds1820wr_2(0xbe);//*读取温度*/ a=ds1820rd_2(); b=ds1820rd_2(); tvalue=b; tvalue<<=8; tvalue=tvalue|a; if(tvalue<0x0fff) tflag=0; else

{tvalue=~tvalue+1;

tflag=1;

}

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

return(tvalue);

}

void ds1820disp_2()//温度值显示

{ 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;//负温度显示负号:-

48


5论文(10).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:学习华为《以奋斗者为本》读后感

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

马上注册会员

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