专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
pic24与DS18B20
2019-03-25 19:39
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
PIC单片机
1022
1
1392
请问一下有谁使用过pic24实现过DS18B20,我在编程的时候遇到了一点问题,对于PIC24单片机我还是初学者,请高手指教一下啊,这编程的过程中需要注意点什么啊,我的程序编译通过后总是得不到温度值,设了中断之后,发现DS18B20的复位程序(里面放了两个循环)出不来,感觉延时也是按照时序设置的,不知道哪里错了,请大家帮忙啊,谢谢啦~ 此帖出自
小平头技术问答
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
1条回答
zhizhuo
1楼-- · 2019-03-26 02:41
void DS18B20_reset(void) //DS18B20复位函数
{
int i;
char Exist=1;
//设置DS18B20存在标志
while(Exist) //DS18B20是否存在
{
while(Exist) //DS18B20是否存在
{
DQ=1;
delay(); //1-WIRE总线置高2us准备写过程
DQ=0;
for(i=0;i<215;i++)
{
delay();
} //1-WIRE总线置低550us满足复位延长时间条件
DQ=1;
for(i=0;i<30;i++)//for(i=0;i<30;i++)
{
delay();
}
TRISA5=1; //1-WIRE总线置高66us满足复位延长时间条件
Exist=DQ; //检测存在标志Exist=0,条件满足DS18B20存在继续下一步
}
for(i=0;i<197;i++)//for(i=0;i<197;i++)
{
delay();
}
//延时500us,Exist消失,此时DQ已被上拉电阻置高
Exist=~DQ;
Exist=0;
//DQ置高,退出循环
}
TRISA5=0;
DQ=1; //1-WIRE总线置高完成复位过程
}
加载中...
一周热门
更多
>
相关问题
相关文章
一种用PIC单片机主时钟驱动的老式挂钟
0个评论
单片机程序必知的几个寄存器
0个评论
单片机 矩阵式按键
0个评论
51单片机上移植C语言的printf()
0个评论
STC89C52MCU--软件实现系统复位
0个评论
单片机C语言程序该这样写!不是教科书上教的那样!转[]
0个评论
单片机并行I/O口(P0)硬件结构
0个评论
壹:单片机的内部资源
0个评论
×
关闭
采纳回答
向帮助了您的网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
关闭
您已邀请
15
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
{
int i;
char Exist=1;
//设置DS18B20存在标志
while(Exist) //DS18B20是否存在
{
while(Exist) //DS18B20是否存在
{
DQ=1;
delay(); //1-WIRE总线置高2us准备写过程
DQ=0;
for(i=0;i<215;i++)
{
delay();
} //1-WIRE总线置低550us满足复位延长时间条件
DQ=1;
for(i=0;i<30;i++)//for(i=0;i<30;i++)
{
delay();
}
TRISA5=1; //1-WIRE总线置高66us满足复位延长时间条件
Exist=DQ; //检测存在标志Exist=0,条件满足DS18B20存在继续下一步
}
for(i=0;i<197;i++)//for(i=0;i<197;i++)
{
delay();
}
//延时500us,Exist消失,此时DQ已被上拉电阻置高
Exist=~DQ;
Exist=0;
//DQ置高,退出循环
}
TRISA5=0;
DQ=1; //1-WIRE总线置高完成复位过程
}
一周热门 更多>