基于DS18B20组成的三路测温系统(6)

2019-06-05 10:43

西安航空学院毕业论文

DQ1 = 1;

delay_18B201(40);

}

uchar ds1820rd1()

{ uchar i=0; uchar dat1 = 0; for (i=8;i>0;i--) {

DQ1 = 0;

dat1>>=1; DQ1 = 1;

if(DQ1) dat1|=0x80; delay_18B201(10);

}

return(dat1); }

void ds1820wr1(uchar wdata1)

{

uchar i=0;

for (i=8; i>0; i--) {

DQ1 = 0;

DQ1 = wdata1&0x01; delay_18B201(10); DQ1 = 1;

wdata1>>=1;

//拉高

//读数据

//给脉冲信号

//给脉冲信号

//写数据

23

西安航空学院毕业论文

} }

read_temp1() {

uchar a1,b1; ds1820rst1(); ds1820wr1(0xcc); ds1820wr1(0x44); ds1820rst1(); ds1820wr1(0xcc); ds1820wr1(0xbe); a1=ds1820rd1(); b1=ds1820rd1(); tvalue1=b1; tvalue1<<=8; tvalue1=tvalue1|a1;

//跳过读序列号 //读取温度

//跳过读序列号 //启动温度转换

//2号读取温度值并转换

if(tvalue1<0x07ff) else

{ }

//温度值扩大10倍,精确到1位小数

tvalue1=~tvalue1+1; tflag1=1; tflag1=0;

}

tvalue1=tvalue1*(0.625); return(tvalue1);

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

24

西安航空学院毕业论文

void ds1820disp1() {

uchar flagdat1;

//百位数 //十位数 //个位数

//2号温度值显示

disdata1[0]=tvalue1/1000+0x30; disdata1[1]=tvalue100/100+0x30; disdata1[2]=tvalue10/10+0x30;

disdata1[3]=tvalue1+0x30;

if(tflag1==0) flagdat1=0x20;

else

flagdat1=0x2d;

if(disdata1[0]==0x30) { disdata1[0]=0x20;

if(disdata1[1]==0x30)

disdata1[1]=0x20;

}

//wr_dat(flagdat1); wr_com(0x80+0x0A); wr_dat(disdata1[0]); wr_com(0x80+0x0B); wr_dat(disdata1[1]); wr_com(0x80+0x0C); wr_dat(disdata1[2]); wr_com(0x80+0x0D); wr_dat(0x2e);

wr_com(0x80+0x0E); wr_dat(disdata1[3]); }

//小数位

//正温度不显示符号

//负温度显示负号:-

//如果百位为0,不显示

//如果百位为0,十位为0也不显示 //显示符号位

//显示百位

//显示十位

//显示个位

//显示小数点

//显示小数位

25

西安航空学院毕业论文

/*******************三号DS18B20程序**************************/

void delay_18B202(uint i) //延时1微秒

{

while(i--); }

void ds1820rst2() { uchar x=0;

DQ2 = 1; delay_18B202(4);

DQ2 = 0; delay_18B202(100); DQ2 = 1;

delay_18B202(40);

}

uchar ds1820rd2() { uchar i=0; uchar dat2 = 0; for (i=8;i>0;i--) {

DQ2 = 0; dat2>>=1; DQ2 = 1; if(DQ2)

dat2|=0x80;

//ds1820复位

//DQ复位 //延时 //DQ拉低

//精确延时大于480us

//拉高

//读数据

//给脉冲信号

//给脉冲信号

26

西安航空学院毕业论文

}

delay_18B202(10);

return(dat2); }

void ds1820wr2(uchar wdata2)

{

uchar i=0;

for (i=8; i>0; i--) {

DQ2 = 0;

DQ2 = wdata2&0x01; delay_18B202(10); DQ2 = 1; wdata2>>=1;

} }

read_temp2() { uchar a2,b2; ds1820rst2(); ds1820wr2(0xcc); ds1820wr2(0x44);

ds1820rst2(); ds1820wr2(0xcc); ds1820wr2(0xbe);

a2=ds1820rd2(); b2=ds1820rd2();

tvalue2=b2;

//写数据

//3号读取温度值并转换 //跳过读序列号

//启动温度转换

//跳过读序列号

//读取温度

27


基于DS18B20组成的三路测温系统(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:服装辅料(衬布)项目可行性研究报告

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

马上注册会员

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