请教ds18b20 点击:22436 | 回复:415



gongkongedit

    
  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2004-02-26 09:29:00
楼主
我正在做ds18b20的多点测量实验,但是输出的温度有时正确有时错误(为85度),不知道是什么原因?另外我采用外接电源的方法,没有mos强的上拉,不知道会不会有影响?



王与宁

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 2回
  • 年度积分:0
  • 历史总积分:2
  • 注册:2005年6月29日
发表于:2005-06-29 17:04:00
161楼
TO DIGI: 我是初学者,现在正在做DS1820的温度检测系统的课程设计,用80C51 我不是很明白他们的原理,请知道一下,另外,对于硬件电路的连接也是不懂,请不要嫌我麻烦.请多多指教!!!! 我的邮箱是:yangning198249@yahoo.cn

王与宁

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 2回
  • 年度积分:0
  • 历史总积分:2
  • 注册:2005年6月29日
发表于:2005-06-29 17:08:00
162楼
不好意思 邮箱写错了 是:yangning198249@yahoo.com.cn 还是个大大的菜鸟,请多指教.

digi

  • 精华:19帖
  • 求助:0帖
  • 帖子:52帖 | 797回
  • 年度积分:0
  • 历史总积分:1171
  • 注册:2001年9月19日
发表于:2005-06-29 17:34:00
163楼
18B20是测量原理是: 晶体在不同温度下的晶振频率不同,通过测量晶振频率的变化来计算温度变化,由于晶体被封装到器件中,不会发生变化,所以18B20的稳定性是相当好的。 至于硬件电路,说明书中有介绍,建议开始做课程设计前,多花点时间看看说明书,毕竟学到的东西是自己的,这个过程最主要是学习新事物的方法。

杨文斌

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 7回
  • 年度积分:0
  • 历史总积分:63
  • 注册:2005年6月20日
发表于:2005-06-30 09:23:00
164楼
求助:情况如下:我用89c52控制18B20做现场单点温度测试(30米,5V供电,加上拉电阻4.7K),用普通线室内没问题,现场用双心屏蔽线干扰比较严重,显示255与实际温度值来回切换。 回来后做了以下实验: 1、用8芯屏蔽网线连接通过。 2、加74HC244驱动(1A1.2Y1接P3.7。1Y1.2A1接18B20;/G1接地;/G2接P1.7),用模拟板调试(不是连续测量)通过。把程序写入控制仪并分别用普通电线和8芯屏蔽网线连接18B20测试,网线通过,普通线显示255C偶尔显示(28C)。 问题:1、为啥不加244驱动两种线都能通过;加了只能通过一种。是否因阻抗不同引起??? 2、加244驱动后还要加4。7K电阻吗,实验中加不加没有影响。 请有经验的朋友给予指导,谢谢! 附程序如下: 主程序:(4MHz晶振,3us/周期) 00 NOP C2AF CLR EA 关中断 1212A0 LCALL INI0 初始化 BA0032 CJNZ R2 #00H 无传感器,转走 74CC MOV A #CCH 1212E0 LCALL WR0 发跳过ROM命令 7444 MOV A #44H 1212E0 LCALL WR0 发启动转换命令 1212A0 LCALL INI0 74CC MOV A #CCH 1212E0 LCALL WR0 发跳过ROM命令 74BE MOV A #BEH 1212E0 LCALL WR0 发读存储器命令 121300 LCALL RD0 读温度值 F527 MOV 27H A 温度值低位字节送27H 121300 LCALL RD0 F528 MOV 28H A 温度值高位字节送28H E527 MOV A 27H 字节调整 A240 MOV C 40H 13 RRC A A241 MOV C 41H 13 RRC A A242 MOV C 42H 13 RRC A A243 MOV C 43H 13 RRC A 78CO MOV R0 #C0H 结果存入C0H F6 MOV @R0 A D2AF SETB EA 开中断 22 RET 初始化子程序 00 NOP 7903 INIO: MOV R1 #03H 初始化失败次数3次 D2B7 INI1: SETB P3.7 783C MOV R0 #3CH C2B7 INI2: CLR P3.7 D8FC DJNZ R0 INI2 延时[(1+2)2X=540] X=64H D2B7 SETB P3.7 C297 CLR P1.7 7807 MOV R0 #07H 30B708 INI3: JNB P3.7 INI4 D8FB DJNZ R0 INI3 延时[(2+2)2X=88] X=07H D9EB DJNZ R1 INI1 未准备好,重新初始化。 7A0F MOV R2 #0FH 无传感器,R2置0FH 800F SJMP INI7 7814 INI4: MOV R0 #14H 20B706 INI5: JB P3.7 INI6 数据线变高,初始化成功。 D8FB DJNZ R0 INI5 数据线低电平可持续 [(2+2)2X=240] X=14H D297 SETB P1.7 D9DC DJNZ R1 INI1 初始化失败,重来。 D8FE INI6: DJNZ R0 $ 测得数据线变高,延时够240us 7A00 MOV R2 #00H 有传感器,R2置00H 7825 INI7: MOV R0 #25H D8FE DJNZ R0 $ 将时间延时够[480(20+240) =220us] D297 SETB P1.7 22 RET 写时序子程序 00 NOP D2B7 WRO: SETB P3.7 7908 MOV R1 #08H 循环8次,写一个字节。 13 WR1: RRC A 写入位从A中移入CY C2B7 CLR P3.7 00 NOP 92B7 MOV P3.7 C 将欲传送的数值以进位形式送出。 780E MOV R0 #10EH 延时88 us D8FE WR2: DJNZ R0 $ D2B7 SETB P3.7 00 NOP D9F1 DJNZ R1 WR1 22 RET 读一个字节 00 NOP 7908 RD0: MOV R1 #08H 循环8次,写一个字节。 7801 RD1: MOV R0 #01H C2B7 CLR P3.7 00 NOP 低电平持续2 us D2B7 SETB P3.7 口线设为输入 C297 CLR P1.7 D8FE RD2: DJNZ R0 $ 等待8 us A2B7 MOV C P3.7 主机按位依次读入DS18B20的数据 13 RRC A 780B MOV R0 #0BH D8FE RD3: DJNZ R0 $ 保持读过程持续读64 us D297 SETB P1.7 D9EA DJNZ R1 RD1 读完一个字节的数据,保存在A中 D2B7 SETB P3.7 22 RET

杨文斌

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 7回
  • 年度积分:0
  • 历史总积分:63
  • 注册:2005年6月20日
发表于:2005-07-01 09:42:00
165楼
digi,麻烦您帮我看看上面的问题出在那里.这两天我怎么修改程序、改变时序都没用.加244驱动用普通线连接显示255C偶尔显示(28C),用网线没问题。加244驱动后效果还不如不加的好(不加244驱动两种线都正常)???什么原因呢???

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2005-07-16 17:41:00
166楼
digi先生: 我是一名电子设计爱好者,最近要编了一个DS1820的单点测温程序,调试了好久也显示不出正确的结果,能否发一个程序过来供我参考一下啊???!!!

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2005-07-16 17:43:00
167楼
to digi先生: 忘了,我的邮箱是: sc10785@yahoo.com.cn

bhy008

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 5回
  • 年度积分:0
  • 历史总积分:12
  • 注册:2005年8月09日
发表于:2005-08-11 15:39:00
168楼
我们公司有一条电脑自动检测线,是用来检测冰箱制冷性能的。所用的测温探头内部都是18B20,最近探头坏的较多,又因现在制造这条线的厂家找不到,所提供的探头快用完了。 我想请问各位高手:在更换制造商提供的探头时,电脑都会自动跳出内部一串号码,要求更改。这个号码是哪来的?是否18B20本身就有?如果我从其他厂家光买回18B20,照原样焊接上去,是否可以直接代换上呢?如果不行,又应怎样做呢? 请大家给我谈谈好么!邮箱:bhy008@163.com

digi

  • 精华:19帖
  • 求助:0帖
  • 帖子:52帖 | 797回
  • 年度积分:0
  • 历史总积分:1171
  • 注册:2001年9月19日
发表于:2005-08-11 16:02:00
169楼
这个不好说,主要看现场的监控程序是怎样编写的。你最好和供应商谈谈,问问软件的细节。不过感觉不大,照你的说法,能用他们留下的探头更换,那么就可以用新的探头。 不过封装传感器时,需要注意传感器的防水、以及整体屏蔽层完整(前端金属管需和后端引线的屏蔽层连接)。 你先试试,如果还不行,和我联系。

bhy008

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 5回
  • 年度积分:0
  • 历史总积分:12
  • 注册:2005年8月09日
发表于:2005-08-12 09:23:00
170楼
在这里先谢谢您了digi先生,等买回新的18B20我先试试看,有问题在和您联系。

digi

  • 精华:19帖
  • 求助:0帖
  • 帖子:52帖 | 797回
  • 年度积分:0
  • 历史总积分:1171
  • 注册:2001年9月19日
发表于:2005-08-12 09:38:00
171楼
不用客气,有问题随时联系

bhy008

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 5回
  • 年度积分:0
  • 历史总积分:12
  • 注册:2005年8月09日
发表于:2005-08-13 16:10:00
172楼
新购的18B20我已试装了,可以正常使用了,谢谢你digi先生。 我有个问提想请教您:在网上有无关于冰箱测试用的测温软件可以下载,是否可以通用呢?我们现在用的是开发平台VB6 SP3,版本1.2.2的测温软件。

digi

  • 精华:19帖
  • 求助:0帖
  • 帖子:52帖 | 797回
  • 年度积分:0
  • 历史总积分:1171
  • 注册:2001年9月19日
发表于:2005-08-14 22:17:00
173楼
这些软件都是工程商根据客户现场实际需要而编写,一般说来不具普适性(因为接入点数,具体功能大多都不相同),除非你能拿到他的源代码,否则意义不大。 关于您询问产品的事情,明天上班时我会给您去电话,到时电话中和您具体谈。

bhy008

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 5回
  • 年度积分:0
  • 历史总积分:12
  • 注册:2005年8月09日
发表于:2005-08-15 09:56:00
174楼
对于测温系统我不太懂,你们的产品是否:电源+电脑+LTM8303模块+若干LTM8120模块+若干探头+测试软件,就可以组成一套-30-60度的测温线了?

WJH123456

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 4回
  • 年度积分:0
  • 历史总积分:54
  • 注册:2005年8月30日
发表于:2005-08-30 13:35:00
175楼
digi先生: 我是一名学生,想做一个18B20的温度计,能否将244驱动18B20的电路发给我.谢谢

digi

  • 精华:19帖
  • 求助:0帖
  • 帖子:52帖 | 797回
  • 年度积分:0
  • 历史总积分:1171
  • 注册:2001年9月19日
发表于:2005-08-30 15:14:00
176楼
建议仔细研究18B20资料,不一定需要用到244驱动,直接按照说明书上的推荐电路就ok了。

WJH123456

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 4回
  • 年度积分:0
  • 历史总积分:54
  • 注册:2005年8月30日
发表于:2005-08-30 16:40:00
177楼
谢谢digi的回复. 不用244驱动的我已经试验成功了,可是用普通的网线不超过25米,我想通过244加长通讯距离,接8个18B20,我准备用来做我的毕业设计,但不知道你所说的244双线驱动如果连接,能否将244的双线驱动电路发给我参考.谢谢. 我的信箱:wjunhuiqd@sohu.com

digi

  • 精华:19帖
  • 求助:0帖
  • 帖子:52帖 | 797回
  • 年度积分:0
  • 历史总积分:1171
  • 注册:2001年9月19日
发表于:2005-08-30 16:48:00
178楼
不一定是驱动的事情,多点连接问题很多,我对多点连接也不熟悉,不好意思

WJH123456

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 4回
  • 年度积分:0
  • 历史总积分:54
  • 注册:2005年8月30日
发表于:2005-08-30 23:47:00
179楼
是不是这也要技术保密啊?

爱上天空颜色

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 2回
  • 年度积分:0
  • 历史总积分:2
  • 注册:2005年8月31日
发表于:2005-08-31 10:32:00
180楼
我用的244驱动18b20,采用多点测量!试验时测量2个18b20的数据。如果2个之间有距离就只能读出一个的温度数据。但是如果把2个放到一起就可以正确读出(2个之间没有距离,就是把2个18b20的3个引脚直接相连,再连到总线上。)。不知道什么原因。希望高手指点一下

热门招聘
相关主题

官方公众号

智造工程师