基于AT89C51单片机的DS18B20温度检测

 我来答
匿名用户
2012-11-12
展开全部
/**********************************************************************/
Init_DS18B20(void)//初始化ds1820
{
unsigned char x = 0;

DQ = 1; //DQ复位 Delay(8); //稍做延时
DQ = 0; //单片机将DQ拉低
Delay(60); //精确延时 大于 480us
//Delay(400); //精确延时 大于 480us

DQ = 1; //拉高总线 Delay(15);
x = DQ; //稍做延时后 如果x=0则初始化成功 x=1则初始化失败
Delay(20);
}

ReadOneChar(void)//读一个字节
{
unsigned char i = 0;
unsigned char dat1 = 0;

for (i = 8; i > 0; i--)
{
DQ = 0; // 给脉冲信号
dat1 >>= 1;
DQ = 1; // 给脉冲信号

if(DQ)
dat1 |= 0x80;
Delay(15);
}

return (dat1);
}

WriteOneChar(unsigned char dat1)//写一个字节
{
unsigned char i = 0;
for (i = 8; i > 0; i--)
{
DQ = 0;
DQ = dat1&0x01;
Delay(5);

DQ = 1;
dat1>>=1;
}
}

Read_Disp_Temperature(void)//读取并显示温度
{ unsigned char i;
unsigned int a = 0, b = 0, c = 0,d=0,e=0, t = 0,g;
float tt = 0;

Init_DS18B20();
WriteOneChar(0xCC); // 跳过读序号列号的操作
WriteOneChar(0x44); // 启动温度转换

Init_DS18B20();
WriteOneChar(0xCC); //跳过读序号列号的操作
WriteOneChar(0xBE); //读取温度寄存器

a = ReadOneChar(); b = ReadOneChar();
t = b;
t <<= 8;
t = t | a;

tt = t * 0.0625; t = tt * 100 + 0.5; //放大100倍输出并四舍五入
a = t / 10000; //百位
b = t / 1000-a*10; //十位
c = t / 100 -a*100-b*10; //个位
d = t /10 - a*1000-b*100-c*10; //十分位
e = t -a*10000-b*1000-c*100-d*10;//百分位
wr_lcd (comm,0x30);
wr_lcd (comm,0x98);
for(i=0;i<5;i++)
{wr_lcd (dat,tab3[i]);
}
if(a==0){wr_lcd (dat,' ');} //不显示百位
else { g = Tab_Num[a]; //显示百位
wr_lcd (dat,g);
}
if(b==0){wr_lcd (dat,' ');} //不显示十位
else{g = Tab_Num[b]; //显示十位
wr_lcd (dat,g);
}
g = Tab_Num[c]; //显示个位
wr_lcd (dat,g);
wr_lcd (dat,tab3[5]); //显示点
g = Tab_Num[d];
wr_lcd (dat,g);//显示十分位
g = Tab_Num[e];
wr_lcd (dat,g);//显示百分位
wr_lcd (dat,tab3[6]); //显示符号

}
参考一下吧
leipole
2024-11-29 广告
作为上海雷普电气有限公司的一员,我们的udian温度控制器以其卓越的温控性能而著称。该产品采用先进的温控技术,能够精确感知环境温度并作出迅速响应,确保设备在理想温度范围内稳定运行。其设计紧凑、安装便捷,广泛应用于各类电气柜及工业设备中,有效... 点击进入详情页
本回答由leipole提供
mzq2wym
2012-11-12
知道答主
回答量:50
采纳率:0%
帮助的人:3.8万
展开全部
额 联系方式都不留 怎么给你啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式