一条线上接多个ds18b20的时候,必须先把64位rom读出来才能编程吗,这样的话,也ds18b20用起来也太麻烦了
答案:2 悬赏:30 手机版
解决时间 2021-03-03 01:31
- 提问者网友:战魂
- 2021-03-02 22:14
吧,有的人说,可以先把它读出来再用,本身就有多个ds18b20,不知道rom的话,怎么读啊
最佳答案
- 五星知识达人网友:持酒劝斜阳
- 2021-03-02 23:53
你也可以不通过显示的方式把rom内容读出来,而是使用二叉树的方式,如果你对算法比较了解,可以考虑,下面仅仅是我的粗浅认识,如有错误,还望原谅.
ds18b20每个都有全球唯一的序列号,他们的单总线工作方式为当控制器发出读指令时,每一个ds18b20都会发送自己的rom,这时控制器要根据接收到的信息排列,于是产生二叉树,如果你是用正二叉树的方式接收每个读会的信息,那么你只能用正二叉树的方式做后面的判断,否则会出现排列的错误。当你正确接收到每一个ds18b20的rom后你就可以根据他们的rom进行单独的写指令(控制精度、报警温度等)。
写在最后:上面的方法不是“把rom读出,认为地写下来”而是通过控制器自动的完成,省去了人的操作,但是机器也要做(不用人参与其中)
ds18b20每个都有全球唯一的序列号,他们的单总线工作方式为当控制器发出读指令时,每一个ds18b20都会发送自己的rom,这时控制器要根据接收到的信息排列,于是产生二叉树,如果你是用正二叉树的方式接收每个读会的信息,那么你只能用正二叉树的方式做后面的判断,否则会出现排列的错误。当你正确接收到每一个ds18b20的rom后你就可以根据他们的rom进行单独的写指令(控制精度、报警温度等)。
写在最后:上面的方法不是“把rom读出,认为地写下来”而是通过控制器自动的完成,省去了人的操作,但是机器也要做(不用人参与其中)
全部回答
- 1楼网友:几近狂妄
- 2021-03-03 00:30
如果你只用了一个ds18b20测温,那么就不需要匹配rom了,如果一条总线上挂了多个ds18b20,那就需要匹配rom了,必要的时候还要加上驱动电路,因为如果挂了太多的话,单片机的驱动能力就会不足,无法读取信息。一般用74hc244设计驱动电路,你可以在网上查找到相关电路~
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯