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



gongkongedit

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



handh65

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 6回
  • 年度积分:0
  • 历史总积分:6
  • 注册:2006年10月11日
发表于:2006-10-11 11:02:00
281楼
digi:
    
    你好!

请问你二个问题:1."search rom"命令怎么使用(51汇编语言);2."alarm search"命令怎么使用(51汇编语言)

    谢了!

handh65

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 6回
  • 年度积分:0
  • 历史总积分:6
  • 注册:2006年10月11日
发表于:2006-10-11 17:04:00
282楼
请问有谁知道:
    1. ds18b20 的 search rom 命令
    2. ds18b20 的 alarm search 命令
我在此先谢了!
我的邮箱:handh65@sina.com

handh65

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 6回
  • 年度积分:0
  • 历史总积分:6
  • 注册:2006年10月11日
发表于:2006-10-11 23:01:00
283楼
请问 谁知道 18b20 的 search rom command 怎么用?

张小涛

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 2回
  • 年度积分:0
  • 历史总积分:2
  • 注册:2006年10月16日
发表于:2006-10-16 17:18:00
284楼
各位大侠:
小弟初学单片机,现在做毕业设计需要用到18b20来做多点测温,但现在64位序列号还没有读出来,有没有人哪里有用51编的汇编程序啊,传给小弟一份,感激不尽,能有读序列号以及多点测温的程序那是最好不过了,先谢过了!!!!!!!!!!!!!
我的邮箱:zxt8206@sina.com

handh65

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 6回
  • 年度积分:0
  • 历史总积分:6
  • 注册:2006年10月11日
发表于:2006-10-17 08:58:00
285楼
;12MHZ,默认,读18B20序号
ORG 0000H 
AJMP MAIN 
ORG 0020H
MAIN: mov r3,#10h ;清楚存储编号单元
mov r0,#40h
ss: mov @r0,#0
inc r0
djnz r3,ss 
MOV SP,#60H 
CLR EA  ;使用ds1820一定要禁止任何中断产生 
LCALL INT  ;初始化ds1820 
MOV A,#33H 
LCALL WRITE  ;送入读ds1820的ROM命令 
LCALL READ  ;开始读出当前ds1820序列号 
MOV 40H,A 
LCALL READ 
MOV 41H,A 
LCALL READ 
MOV 42H,A 
LCALL READ 
MOV 43H,A 
LCALL READ 
MOV 44H,A 
LCALL READ 
MOV 45H,A 
LCALL READ 
MOV 46H,A 
LCALL READ 
MOV 47H,A 
SETB EA 
SJMP $ 
;----------------------------------------------------------------
INT:  ;初始化ds1820子程序 
CLR EA 
L0: CLR P3.5  ;ds1820总线为低复位电平 
MOV R2,#200 
L1: CLR P3.5 
DJNZ R2,L1  ;总线复位电平保持400us 
SETB P3.5  ;释放ds1820总线 
MOV R2,#30 
L4: DJNZ R2,L4  ;释放ds1820总线保持60us 
jb  p3.5,L0 ;存在吗 不存在则重新来 
MOV R6,#80 
L5: ORL C,P3.5 
JC L3 
DJNZ R6,L5 
SJMP L0 
L3: MOV R2,#240 
L2: DJNZ R2,L2 
RET
;----------------------------------------------------------------------------- 
WRITE:  ;向ds1820写操作命令子程序 
CLR EA 
MOV R3,#8  ;写入ds1820的bit数,一个字节8个bit 
WR1: SETB P3.5 
MOV R4,#8 
RRC A  ;把一个字节data(A)分成8个bit环移给 C 
CLR P3.5  ;开始写入ds1820总线要处于复位(低)状态 
WR2: DJNZ R4,WR2  ;ds1820总线复位保持16us 
MOV P3.5,C  ;写入一个bit 
MOV R4,#20 
WR3: DJNZ R4,WR3  ;等待40us 
DJNZ R3,WR1  ;写入下一个bit 
SETB P3.5  ;重新释放ds1820总线 
RET 
;------------------------------------------------------------------------------
READ: CLR EA 
MOV R6,#8  ;连续读8个bit 
RE1: CLR P3.5  ;读前总线保持为低 
MOV R4,#4 
NOP 
SETB P3.5  ;开始读总线释放 
RE2: DJNZ R4,RE2  ;持续8us 
MOV C,P3.5  ;从ds1820总线读得一个bit 
RRC A  ;把读得的位值环移给 A 
MOV R5,#30 
RE3: DJNZ R5,RE3  ;持续60us 
DJNZ R6,RE1  ;读下一个bit 
SETB P3.5  ;重新释放ds1820总线 
RET 
END 

张小涛

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 2回
  • 年度积分:0
  • 历史总积分:2
  • 注册:2006年10月16日
发表于:2006-10-18 08:39:00
286楼
感激万分!!!!!!!!!!!

nRFxx

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 7回
  • 年度积分:0
  • 历史总积分:18
  • 注册:2004年1月03日
发表于:2006-11-01 22:26:00
287楼
有关ds18b20的问题,请和我联系。qq:328997835

handh65

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 6回
  • 年度积分:0
  • 历史总积分:6
  • 注册:2006年10月11日
发表于:2006-11-06 09:50:00
288楼
nRFxx你好:

请问:
    1. ds18b20 的 search rom 命令
    2. ds18b20 的 alarm search 命令
我在此先谢了!
我的邮箱:handh65@sina.com

roywanglu

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:0
  • 历史总积分:4
  • 注册:2006年12月01日
发表于:2006-12-01 22:03:00
289楼
我碰到一个奇怪的现象
18b20读出的值都是 0xff07 ,这时怎么回事啊?

mxx420

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:0
  • 历史总积分:28
  • 注册:2003年9月01日
发表于:2006-12-05 15:43:00
290楼
你好,能给我发一份单点原程序吗?
另外你那有中文版的18b20的资料吗?能给我一份吗?我现在测到的温度也是总为0。
谢谢,我的邮箱是mxx420@163.com

华安4

  • 精华:1帖
  • 求助:0帖
  • 帖子:15帖 | 99回
  • 年度积分:0
  • 历史总积分:160
  • 注册:2006年11月30日
发表于:2006-12-05 17:15:00
291楼
请教多点测温:
1.在读18B20序列号时首先读到的是最低位还是最高位呀;
2.给18B20序列匹配时是先发最高位还是先发最低位咧;
3.匹配成功的18B20回应仍是低电平么?

有多点测温的愿程序最好了.呵呵
(我不是经常上网,请知道答案的朋友发我QQ或者油箱xxd2755@sina.com.cn)

华安4

  • 精华:1帖
  • 求助:0帖
  • 帖子:15帖 | 99回
  • 年度积分:0
  • 历史总积分:160
  • 注册:2006年11月30日
发表于:2006-12-05 17:16:00
292楼
我的QQ:7264463
忘记了.呵呵

jiajia0319

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:0
  • 历史总积分:1
  • 注册:2007年1月16日
发表于:2007-01-16 22:31:00
293楼
to digi
你好,现在我在使用DS18B20,可是程序调试的时候总是只能得到85,请指教?是否是时序不对,能不能给我发个程序对照一下?blueicehj0319@gmail.com

wwwi

  • 精华:1帖
  • 求助:0帖
  • 帖子:23帖 | 16回
  • 年度积分:0
  • 历史总积分:82
  • 注册:2002年10月23日
发表于:2007-01-23 22:09:00
294楼
请问直接用单片机一个I/O口加上拉电阻,用单屏蔽网线,检测的距离能够做到100米吗?

digi

  • 精华:19帖
  • 求助:0帖
  • 帖子:52帖 | 797回
  • 年度积分:0
  • 历史总积分:1171
  • 注册:2001年9月19日
发表于:2007-01-24 10:10:00
295楼
这样做不太容易,建议用双线驱动

华安4

  • 精华:1帖
  • 求助:0帖
  • 帖子:15帖 | 99回
  • 年度积分:0
  • 历史总积分:160
  • 注册:2006年11月30日
发表于:2007-02-13 15:31:00
296楼
to digi:

新年好!我短距离多点测温已经完成。我想请教用网线(四根线:接地+数据,接地+5V)18B20最长能走多远,最多能挂多少个18B20。是否需要另外加驱动器件。听说要在数据线与地之间加一个电容。有必要么?

digi

  • 精华:19帖
  • 求助:0帖
  • 帖子:52帖 | 797回
  • 年度积分:0
  • 历史总积分:1171
  • 注册:2001年9月19日
发表于:2007-03-02 09:53:00
297楼
呵呵,接线距离看开发结果,我知道最远的能到1000多m,不过不建议那么长,因为1-wire总线是不带隔离的,太长了容易出问题。像我们公司的产品,建议客户每个通道最大200m,64个测点,这样能达到最佳的稳定性和长度、接入数量的平衡。
需要驱动器件,不过加电容不是普遍的(通常加了电容会导致接线长度减少),只是个别批次的18B20时序要求而已。

fkd

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:0
  • 历史总积分:1
  • 注册:2007年3月22日
发表于:2007-03-22 12:16:00
298楼
 to digi:
你好,我用的是1602的液晶显示和DS18B20,虽然网上有很多这方面的资料,可都是用C编的,我想问一下你有没有汇编的.还有我是要用JB35G模块配合使用的,不知道你有没有这方面的调用串口子程序.如果有的话请发我的邮箱03440127@zjnu.net或zhehaidan@163.com.谢谢啦!

askstars

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:0
  • 历史总积分:1
  • 注册:2007年3月31日
发表于:2007-03-31 17:30:00
299楼
TO digi
    现要做关于DS18B20测温的多点温度检测系的毕业设计,可否提供中文版的18b20的资料,英文版有翻译更好,不胜感激!~
  email:askstars@sohu.com

digi

  • 精华:19帖
  • 求助:0帖
  • 帖子:52帖 | 797回
  • 年度积分:0
  • 历史总积分:1171
  • 注册:2001年9月19日
发表于:2007-04-02 10:49:00
300楼
to askstars:
不好意思,手头只有英文版的资料。MAXIM公司也没有相关资料
to fkd
不好意思,刚看到,不过没有调用串口的子程序,汇编的程序也只有89C51系列的,不知还需要吗?

热门招聘
相关主题

官方公众号

智造工程师