网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
02月07日漏签0天
单片机吧 关注:213,199贴子:1,050,973
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 3回复贴,共1页
<<返回单片机吧
>0< 加载中...

ds18b20程序求大佬帮忙看看哪的问题

  • 只看楼主
  • 收藏

  • 回复
  • 拳头砸墙疼
  • 新兵
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
最近做课设用到这个传感器 调了好久还是不对求大佬帮着 看看 延时的时间我基本都用keil测试过了没啥问题。。但就是不知道为啥不对 我试着直接输出初始化函数的结果 结果返回值是0也就是说初始化没成功?但是数可以显示 只是显示的数是不正确的。。。 在另外一个文件的数码管函数也测试过了 没问题。。。。
#include<reg52.h>
#include<intrins.h>
#include"ELEMENT.H"
void delay_us(uchar t) //每t延时约17微妙
{
while(t--);
}
uchar RESET_DS18B20() //初始化函数
{
uint i=0;
DQ=1;
delay_us(1);
DQ=0;
delay_us(80); //延时491us 要求延时480到960us
DQ=1 ;
while(DQ) //等待DS18B20拉低总线
{
delay_us(100);
i++;
if(i>8)//等待5ms
{
return 0;
}
}
return 1;
}
void WB(uchar dat) //写入一字节函数
{
uchar i=0;
for(i=0;i<8;i++)
{
DQ=0; //拉低电量
_nop_(); //没写一个位延时1us
DQ=dat&0x01; //取写入数低位
delay_us(10);//延时71us 60到120us
DQ=1; //还原总线
dat=dat>>1; //写入数据右移一位
_nop_();_nop_();
}
delay_us(10);
}
uchar RB() ///读取一字节函数
{
uchar dat=0,i=0;
for(i=0;i<8;i++)
{
DQ=0; //拉低总线延迟1us释放总线 读位
_nop_();
DQ=1;
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();//延时至稳定
if(DQ)dat=dat|0x80;//由低到高读 赋值到高位后右移
dat=dat>>1;
delay_us(10);//读下一位间隔大于48us
}
return dat;
}uint R_temper() //读温度值
{
uchar a,b;
uint t=0;
RESET_DS18B20();
delay_us(1);
WB(0xcc);//跳过读ROM
WB(0x44); //转换温度命令 delay_us(10);
RESET_DS18B20();
delay_us(1);
WB(0xcc);
WB(0xbe); //读温度寄存器 a=RB();
b=RB();
t=b;
t=t<<8;
t=t|a; return t;
}uint temper_c()
{
uint temper;
float t;
temper=R_temper();
if(temper<0) //考虑负温度的情况
{
temper=temper-1;
temper=~temper;
t=temper*0.0625; //16位温度转换成10进制的温度
temper=t*100+0.5; //留两个小数点,并四舍五入
}
else
{
t=temper*0.0625; //16位温度转换成10进制的温度
temper=t*100+0.5; //留两个小数点,并四舍五入
}
return temper;
}


  • 可爱的小兔子
  • 中校
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
调整时序


2026-02-07 10:48:43
广告
不感兴趣
开通SVIP免广告
  • 单片机蓝牙wifi
  • 大校
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
虽然我没有数码管的温度仿真,但是我有1602的仿真。


  • 我是明星12
  • 下士
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
我做过ds18b20的温度上下限报警的课设


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 3回复贴,共1页
<<返回单片机吧
分享到:
©2026 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示