广告招募

当前位置:全球装备网 > 技术中心 > 产品文库

DS18b20多路温度检测

2022年08月27日 14:59:12      来源:深圳市浩渡科技有限公司 >> 进入该公司展台      阅读量:57

分享:

DS18b20多路温度检测

DS18B20 是温度检测器件,具有单总线、数字化的特点。

每个 DS18B20 都有一个 48 位的系列号,这样就可以把多个 DS18B20 连接在同一条线上,用系列号来对它们分别进行控制。

但是,据有关资料说明,一条总线上,连接 DS18B20 的个数,不要超过 8 个,否则驱动困难。总线的长度,也不宜太长。

另外,多个 DS18B20 连接在一起,还有些缺点:

1.必须采用 ROM 匹配的方法,这样,速度、效率就较低。

2.编程比较麻烦,必须先逐个读出并记录每个 DS18B20 的 ROM 代码,然后再编写到程序中。

3.故障涉及面大,当有一个出现短路,这一条总线上的全部器件就都不会工作。

4.故障查找困难,当总线上有一个 DS18B20 不正常工作时,很难一眼就看出是那一个。

5.无法即插即用,当更换一个 DS18B20 时,必须重新写入程序,这样的维修方法为产品的售后服务带来很大的困难。

那么,较好的方法还是每一个 DS18B20 单独使用一条总线。

现在,单片机芯片的价位已经很低,有 40 个 I/O 引脚的 STC89C52 才几块钱。利用单总线来节约引脚,已经没有什么意义了。

鉴于目前这种情况,让每一个 DS18B20 单独使用一个 I/O 引脚,才能扬长避短。

如果一片单片机所能构成的温度测试点还不够用(如孵蛋柜就需要上百个测试点),也可以使用多片单片机,再利用 MAX232 或 MAX485 组成网络,即可把各个点的温度信息汇集到控制机。

485 总线的长度可达 1200m,半双工多机串口通信的编程也是简单的很。

单个的 DS18B20 单独占用一个引脚,用 51 单片机进行读写,这种方案已经相当成熟。

做而论道多年前也写了一个程序,利用数码管显示,精度可以达到两位小数,还可以测量零下的温度。

详细的内容可见博文:

http://hi..com/%D7%F6%B6%F8%C2%DB%B5%C0/blog/item/dacd401ac7533f398718bf61.html

当多个 DS18B20 分别使用不同的引脚,电路并不复杂,编程就困难一些了。

因为针对单个的 DS18B20,一般都是用:CLR DQ 和 SETB DQ,这些都是 51 单片机的位操作指令,都是直接寻址。

换了另一个引脚,就要重新编写一套程序。有些人就是这么做的,这就太麻烦了。

其实并不用针对每个 DS18B20 都编写一套程序,只要使用字节操作的指令就可以了。

例如 R3 = B,执行 MOV P1, R3 后,就相当于针对 P1.2 执行了 CLR DQ。

想要 SETB P1.2,只需执行 MOV P1, #255 即可。

只是在读出 DQ 时,需要多编写几条指令。

 

版权与免责声明:
1.凡本网注明"来源:全球装备网"的所有作品,版权均属于全球装备网,转载请必须注明全球装备网。违反者本网将追究相关法律责任。
2.企业发布的公司新闻、技术文章、资料下载等内容,如涉及侵权、违规遭投诉的,一律由发布企业自行承担责任,本网有权删除内容并追溯责任。
3.本网转载并注明自其它来源的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品来源,并自负版权等法律责任。 4.如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系。