打印
[51单片机]

关于多个DS18B20传感器的问题

[复制链接]
5387|36
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
bluelove原来|  楼主 | 2014-4-19 20:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用DS18B20传感器和51单片机做出多路温度监测系统,但是要用到三个DS18B20,每个DS18B20接一个51单片机管脚,不是单总线的,这样的程序怎么写?一个传感器我已经知道怎么写了,但是3个的确实没找到,求助一下给个思路或者给一个实例。。。谢谢各位了

相关帖子

沙发
bluelove原来|  楼主 | 2014-4-19 20:29 | 只看该作者
怎么没人来啊。。。。

使用特权

评论回复
板凳
xxwl0406| | 2014-4-19 20:36 | 只看该作者
一个能搞定,3个不是一样的啊。。

使用特权

评论回复
地板
看见未来| | 2014-4-19 20:37 | 只看该作者
和一个的没区别,
一个读完读另一个。

使用特权

评论回复
5
ayb_ice| | 2014-4-19 21:11 | 只看该作者
先要搜索3个器件的ID,然后根据ID区别不同器件,搜索命令才是单总线的精华所在,有点**的,

使用特权

评论回复
6
ningling_21| | 2014-4-19 21:52 | 只看该作者
一个读温度的函数,带一个参数,参数为1时读取第一个18B20,为2时读取第二个,为3读取第三个...

使用特权

评论回复
7
一清如水| | 2014-4-19 22:31 | 只看该作者
要我说,你就没明白DS18B20是怎么操作的,强烈建议仔细看一下数据手册,DS18B20就是单总线操作的,即便你一个引脚挂机一个,那也是单总线操作的!多个DS18B20同一单片机引脚可以通过ID号来区别。你这种三个引脚操作三个,只要其同一个可以了,那其他的只要复制不就行了,就是改一下引脚而已,连ID号都不用管

使用特权

评论回复
8
mcu5i51| | 2014-4-20 08:59 | 只看该作者
强烈建议用AVR等可以单独操作IO的芯片,直接一个函数改变IO参数就可以了,51的需要写多个函数或判断后直接操作IO

使用特权

评论回复
9
ayb_ice| | 2014-4-20 09:24 | 只看该作者
mcu5i51 发表于 2014-4-20 08:59
强烈建议用AVR等可以单独操作IO的芯片,直接一个函数改变IO参数就可以了,51的需要写多个函数或判断后直接操 ...

开什么玩笑,51就不可以传参数吗

使用特权

评论回复
10
dai277530706| | 2014-4-20 12:29 | 只看该作者
mcu5i51 发表于 2014-4-20 08:59
强烈建议用AVR等可以单独操作IO的芯片,直接一个函数改变IO参数就可以了,51的需要写多个函数或判断后直接操 ...

嘿嘿,你好有趣哦~人家只有51,因为你这句话还要去找AVR单片机还要学AVR,这不是舍近求远吗?

使用特权

评论回复
11
伏尔加的鱼| | 2014-4-20 14:12 | 只看该作者
一个能编写,三个没道理不会吧,不过觉得倒不如使用单总线的省事儿

使用特权

评论回复
12
ayb_ice| | 2014-4-20 14:44 | 只看该作者
伏尔加的鱼 发表于 2014-4-20 14:12
一个能编写,三个没道理不会吧,不过觉得倒不如使用单总线的省事儿

你试试看,不太容易的

使用特权

评论回复
13
guishende| | 2014-4-20 16:23 | 只看该作者
一清如水 发表于 2014-4-19 22:31
要我说,你就没明白DS18B20是怎么操作的,强烈建议仔细看一下数据手册,DS18B20就是单总线操作的,即便你一 ...

就是这样

使用特权

评论回复
14
guishende| | 2014-4-20 16:31 | 只看该作者

便宜的测温芯片有哪些?-20℃到100℃之间,精度0.5左右就行的。越便宜越好,知道的说下。

使用特权

评论回复
15
sl_lovearm| | 2014-4-20 17:45 | 只看该作者
18B20就是单总线啊,一个总线可以挂多个18B2O的

使用特权

评论回复
16
dai277530706| | 2014-4-20 17:52 | 只看该作者
guishende 发表于 2014-4-20 16:31
便宜的测温芯片有哪些?-20℃到100℃之间,精度0.5左右就行的。越便宜越好,知道的说下。 ...

热敏电阻最便宜

使用特权

评论回复
17
xyz549040622| | 2014-4-20 18:55 | 只看该作者
循环扫描即可

使用特权

评论回复
18
w522930954| | 2014-4-21 08:45 | 只看该作者
guishende 发表于 2014-4-20 16:31
便宜的测温芯片有哪些?-20℃到100℃之间,精度0.5左右就行的。越便宜越好,知道的说下。 ...

二极管最便宜。。。。1N4148或者三极管CB短接

使用特权

评论回复
19
mcu5i51| | 2014-4-21 09:40 | 只看该作者
ayb_ice 发表于 2014-4-20 09:24
开什么玩笑,51就不可以传参数吗

你试着写一个SetGPIO(u8 prot,u8 bit)的函数,
你会发现51芯片和avr,STM8等完全不同;

使用特权

评论回复
20
ayb_ice| | 2014-4-21 10:40 | 只看该作者
mcu5i51 发表于 2014-4-21 09:40
你试着写一个SetGPIO(u8 prot,u8 bit)的函数,
你会发现51芯片和avr,STM8等完全不同;
...

我不会用它方法吗

假设P1_0,P1_1接两个1820

然后

#define DS1820_1 (1<<0)
#define DS1820_2 (1<<1)

#define CLEAR_DQ(n)        P0 &= ~(n)


void test(void)
{
        CLEAR_DQ(DS1820_1);

        CLEAR_DQ(DS1820_2);

        ......
}

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

12

帖子

0

粉丝