网页
资讯
视频
图片
知道
文库
贴吧
地图
采购
进入贴吧
全吧搜索
吧内搜索
搜贴
搜人
进吧
搜标签
日
一
二
三
四
五
六
签到排名:今日本吧第
个签到,
本吧因你更精彩,明天继续来努力!
本吧签到人数:0
一键签到
成为超级会员,使用一键签到
一键签到
本月漏签
0
次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行
补签
。
连续签到:
天 累计签到:
天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
02月13日
漏签
0
天
单片机吧
关注:
210,691
贴子:
1,042,920
看贴
图片
吧主推荐
视频
游戏
15
回复贴,共
1
页
<<返回单片机吧
>0< 加载中...
求助,请问两个DS18B20如何与单片机实现使用
只看楼主
收藏
回复
wwsjey
大尉
9
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
求助,请问两个DS18B20如何与单片机实现使用
wwsjey
大尉
9
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
谢谢了
深圳市汇美创电子有限公司
单片机
首先汇美创-价格优势现货库存
单片机
价格美丽-质量优
2025-02-13 10:13
广告
立即查看
wwsjey
大尉
9
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
#include<reg52.h>
#include<stdio.h>
#define uchar unsigned char
#define uint unsigned int
sbit ds=P1^3;
sbit rs=P2^4;
sbit rw=P2^5;
sbit en=P2^6;
uchar code tq1[]={0x28,0xee,0x5c,0xec,0x02,0x00,0x00,0x84};
uchar code tq2[]={0x28,0xee,0x5c,0xec,0x02,0x00,0x00,0x85};
uchar num=1;
//bit Init_DS18B20(void);
//unsigned char ReadOneChar(void);
//void WriteOneChar(unsigned char dat);
//unsigned int ReadTemperature(void);
//void DelayUs2x(unsigned char t);
//void DelayMs(unsigned char t);
//void write_com(uchar com);
//void write_date(uchar date);
//void init();
//void xianshi();
/*------------------------------------------------
mS????,?????? unsigned char t,????
unsigned char ??????????,??????
0~255 ??????12M,?????????
------------------------------------------------*/
void DelayUs2x(uchar t)
{
while(--t);
}
void DelayMs(uchar t)
{
while(t--)
{
//????1mS
DelayUs2x(245);
DelayUs2x(245);
}
}
/*------------------------------------------------
18b20???
------------------------------------------------*/
bit Init_DS18B20(void)
{
bit dat=0;
ds = 1; //DQ??
DelayUs2x(5); //????
ds = 0; //????DQ??
DelayUs2x(200); //???? ?? 480us ??960us
DelayUs2x(200);
ds = 1; //????
DelayUs2x(50); //15~60us ? ??60-240us?????
dat=ds; //??x=0??????, x=1??????
DelayUs2x(25); //??????
return dat;
}
/*------------------------------------------------
??????
------------------------------------------------*/
uchar ReadOneChar(void)
{
uchar i=0;
uchar dat = 0;
for (i=8;i>0;i--)
{
ds = 0; // ?????
dat>>=1;
ds = 1; // ?????
if(ds)
dat|=0x80;
DelayUs2x(25);
}
return(dat);
}
/*------------------------------------------------
??????
------------------------------------------------*/
void WriteOneChar(uchar dat)
{
uchar i=0;
for (i=8; i>0; i--)
{
ds = 0;
ds = dat&0x01;
DelayUs2x(25);
ds = 1;
dat>>=1;
}
DelayUs2x(25);
}
uint ReadTemperature(void)
{
uchar a=0;
uint b=0;
uint t=0;
Init_DS18B20();
WriteOneChar(0xCC); // ??????????
WriteOneChar(0x44); // ??????
DelayMs(10);
Init_DS18B20();
WriteOneChar(0xCC); //??????????
WriteOneChar(0xBE); //????????(???9????) ???????
a=ReadOneChar(); //??
b=ReadOneChar(); //??
b<<=8;
t=a+b;
return(t);
}
void write_com(uchar com)
{
rs=0;
P0=com;
DelayMs(5);
en=1;
DelayMs(5);
en=0;
DelayMs(5);
}
void write_date(uchar date)
{
rs=1;
en=0;
DelayMs(5);
P0=date;
DelayMs(5);
en=1;
DelayMs(5);
en=0;
DelayMs(5);
}
void init()
{
rw=0;
en=0;
write_com(0x38);
write_com(0x0c);
write_com(0x06);
write_com(0x01);
}
void wendu(uchar num)
{
uchar i;
uint t;
uint TempH,TempL;
uchar dis[7];
Init_DS18B20();
WriteOneChar(0x55);
if(num==1)
{
for(i=0;i<8;i++)
{
WriteOneChar(tq1[i]);
}
}
if(num==2)
{
for(i=0;i<8;i++)
{
WriteOneChar(tq2[i]);
}
}
WriteOneChar(0x44);
DelayMs(200);
Init_DS18B20();
WriteOneChar(0x55);
if(num==1)
{
for(i=0;i<8;i++)
{
WriteOneChar(tq1[i]);
}
}
if(num==2)
{
for(i=0;i<8;i++)
{
WriteOneChar(tq2[i]);
}
}
WriteOneChar(0xbe);
DelayMs(200);
t=ReadTemperature();
if(t&0x8000)
{
dis[0]=0x2d;//????
t=~t; // ???1
t +=1;
}
else
dis[0]=0x2b;
TempH=t>>4;
TempL=t&0x0F;
TempL=TempL*6/10;//??????
if(((TempH%100)/10==0))//??
dis[1]=0+0x30;
else
dis[1]=(TempH%100)/10+0x30; //????
dis[2]=(TempH%100)%10+0x30; //????,????
dis[3]=0x2e;
dis[4]=TempL+0x30;
dis[5]=0xdf;
dis[6]=0x43; //??C??
}
void main()
{
uchar i,dis[7];
Init_DS18B20();
DelayMs(2);
init();
DelayMs(2);
while(1)
{
if(num==1)
{
wendu(num);
for(i=0;i<7;i++)
{write_com(0x80+i);
write_date(dis[i]);
}
num++;
}
if(num==2)
{
wendu(num);
for(i=0;i<7;i++)
{write_com(0x80+0x40+i);
write_date(dis[i]);
}
num=1;
}
}
wwsjey
大尉
9
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
对吧?
zhang118124
中士
4
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
我最近也在写ds18b20的程序,这个0x80是怎么回事呀
wwsjey
大尉
9
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
这个什么意思呀
Test-0
中校
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
嗯,你找个ds18b20的手册,然后里面有时序的,跟着时序写程序就可以了,嗯
登录百度账号
扫二维码下载贴吧客户端
下载贴吧APP
看高清直播、视频!
贴吧页面意见反馈
违规贴吧举报反馈通道
贴吧违规信息处理公示