当前位置:首页 > 技术学院 > 热搜器件
[导读] DS18B20 是温度检测器件,具有单总线、数字化的特点。每个 DS18B20 都有一个 48 位的系列号,这样就可以把多个 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.baidu.com/%D7%F6%B6%F8%C2%DB%B5%C0/blog/item/dacd401ac7533f398718bf61.html

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

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

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

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

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

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

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

下面是一个利用 51 系列单片机驱动多路 DS18B20 的电路图。


图片链接:http://hi.baidu.com/%D7%F6%B6%F8%C2%DB%B5%C0/album/item/c4a06d2e070828385b4ce9bab899a9014d08f138.html

限于篇幅,图中只画出了 8 个 DS18B20。其实,P2 和 P0 也是可用的。

如果不使用 P2 和 P0,那么就可以选用 AT89C2051,这样一来,整机的体积将会更小。

图中有两种输出温度数据的方法,可供选择:

现场显示:使用 LCD1602 和 595/164;

串口通信:使用 MAX232 或 485。

LCD1602、595/164 也可以和 2051 制作成分离的 PCB 板,用接插件的形式进行连接。

需要显示的时候,插上显示部分,就可当场显示温度。

如果不需要当场显示,那就在 P3.0 和 P3.1 连接电平转换芯片,用串口传输温度信息。

由于 LCD1602 的显示面积较小,多路温度只能分屏显示。显示的仿真截图如下。


做而论道编写程序,基本上是以汇编为主,一般也不想拿出来,因为很少有人能看汇编的程序。

上次,还有人评论汇编语言程序的结构性不好。呵呵,的确是这样,没有一定的水平,确实是看不下去。

本程序,也是用汇编语言编写的,就不拿出来献丑了。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

DS18B20是常用的数字温度传感器,其输出的是数字信号,具有体积小,硬件开销低,抗干扰能力强,精度高的特点。

关键字: ds18b20 温度传感器 数字信号

#51单片机#DS18B20硬件原理以及通信的工作时序

关键字: ds18b20 通信

DS18B20型智能温度传感器的工作原理

关键字: ds18b20 原理

DS18B20是一款常用的高精度的单总线数字温度测量芯片。具有体积小,硬件开销低,抗干扰能力强,精度高的特点。

关键字: ds18b20 手册

DS18B20是一款常用的高精度的单总线数字温度测量芯片。具有体积小,硬件开销低,抗干扰能力强,精度高的特点。

关键字: ds18b20 引脚图

  1 引言   自动调温光疗系统是一种医用理疗仪器,其原理是采用单片机对可控硅的控制来控制高压下的激光输出器进行理疗,在激光输出器工作的同时对其进行实时温度检测,利用检测到的温度状况决

关键字: ds18b20 moc3021 自动调温

温度是表征环境的一个重要的参数。在工程领域,尤其像工程热力学等,温度检测非常普遍,对温度精确测量以便实时控制也显得尤为重要。

关键字: ds18b20 传感器 数据采集 matlab编程

单片机除了可以测量电信号外,还可以用与温度、湿度等非电信号的测量,能独立工作的单片机温度检测、温度控制系统已经广泛的应用于很多领域。单片机的接口信号是数字信号,要想用单片机作区温度这类非电信号,就要使用温度传感器将温度信...

关键字: ds18b20 数字温度计

DS18B20数字温度计是DALLAS公司生产的1-Wire,即单总线器件,具有线路简单,体积小的特点。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。

关键字: ds18b20 数字温度计

温度的测量和控制在激光器、光纤光栅的使用及其他的工农业生产和科学研究中应用广泛。温度检测的传统方法是使用诸如热电偶、热电阻、半导体PN结之类的模拟温度传感器。信号经取样、放大后通过模数转换,再交自单片机处理。被测温度信号...

关键字: at89c51 ds18b20 温度测量
关闭
关闭