jiangxin 发表于 2006-9-24 01:00:34

M16连接16个DS18B20成功了

今天用M16连接16个DS18B20成功了!!!硬件电路是M16 JTAG标准系统,18B20连接到PD6上了,用4.7K电阻上拉。

程序运行时先搜索所有的18B20,将ID码存入EEPROM中,在进行温度转换,并读取出来在串口调试软件上或超级终端上显示,这个程序还可以加更多的DS18B20只要不超出EEPROM的容量。

点击此处下载armok01129494.rar

miamia 发表于 2006-9-24 16:44:14

顶啊。好

nRFxx 发表于 2006-9-25 08:23:16

太好了,能把代码公布一下吗?我的邮箱:bcydws@163.comqq:328997835

nRFxx 发表于 2006-9-25 08:25:35

对了,我使用MSP430单片机调试成功了,需要的人可以和我联系阿,我免费送代码。

我的联系方式:http://www.tianyi-dz.com可以到这个网站下载。或者通过qq,邮箱和我联系。

prince 发表于 2006-11-22 12:11:14

楼主可以公布代码吗?

lizq 发表于 2006-11-22 12:26:28

楼主可以公布代码吗?

wswh2o 发表于 2006-11-22 12:35:13

128个都可以

wentao 发表于 2006-11-22 15:36:06

对啊,有代码最好了

anson 发表于 2006-11-22 15:50:06

支持!

qzrrrr 发表于 2006-11-22 15:56:28

楼主既然发布消息,却无意公布程序

fisher_122 发表于 2006-11-22 16:23:11

是呀,楼主为何不把代码公布一下,让大家也学习学习.

AVR-MEGA128 发表于 2006-11-22 16:46:26

显摆罢了

jiangxin 发表于 2006-11-22 19:45:19

程序已经在文档里了是basic的稍候我会把C的贴出来。

jiangxin 发表于 2006-11-22 20:29:41

这个C程序主要是自动搜索的各个子程序并且包括DS18B20的读写函数,在主程序中加入温度转换调用和EEPROM函数就可以完成各种控制功能。这个程序的搜索部分主要是在MAXIM网站上的C程序修改得来的。

点击此处下载armok01136159.txt

shula1982 发表于 2006-12-8 15:14:39

把程序贴才出来大家交流下~主要就是搜索那一段.

我有2个问题,楼主解释下:

在启动搜索命令后,

   1:读一位和读该位的补码 这2个动作之间的最小延时.

   2:楼主是怎么判断这16个芯片的位置的?

jiangxin 发表于 2006-12-8 20:35:22

点击此处下载armok01137577.rar

全部文件

目标板3.68MHZ,区分方法温升法就是一起把所有18B20全部联上用热源加温相应传感器来区分相应传感器,第二可以一个一个把传感器挂上来区分ID号。

关于读写时序我在调试时也是一个难题我的方法是用 AVR Studio4.12 软件仿真记录每步的运行时序时间。其他频率晶振只要按相应的比例调整就可以。

wswh2o 发表于 2006-12-11 13:57:40

这个很好作, 我做过128个传感器连一起,最远能到几百米

chippp 发表于 2006-12-11 16:04:45

楼主能开源,还是值得顶的

jgl7810 发表于 2006-12-11 16:37:07

我靠!有钱人!

动不动就十几个的!

benladn911 发表于 2006-12-12 08:42:03

嘿嘿,这设备肯定是不计较成本的,用了十几个18B20,强!!!

shula1982 发表于 2006-12-12 16:52:54

我区分ID号码的方法是第一次接1个测温芯片,第二次再接1个(第一个不变),第N次把N个芯片接上,依次找出每次新接上的芯片!排序 用一次数组来存放地址信息,比如接20个芯片的话

定义一个DATA 如DATA=X用N存放接入的顺序号,用X存放芯片编号

如 DATA=18 表示第18次接入的芯片是第5个被读出的!

shula1982 发表于 2006-12-13 09:03:53

老兄,你的

   void uart0_init(void)

{

UCSRB = 0x00; //disable while setting baud rate

UCSRA = 0x00;

UCSRC = BIT(URSEL) | 0x06;

UBRRL = 0x17; //set baud rate lo

UBRRH = 0x00; //set baud rate hi

UCSRB = 0x18;

}

这部分程序是做什么用的?解释下 谢谢

jiangxin 发表于 2006-12-13 14:59:53

串口初始化。使用icc的向导。

jiangxin 发表于 2006-12-13 15:06:26

这个设备用于汽车转鼓轴温监控的,16个轴瓦,汽车以160公里的速度跑,我通过网络串口在办公室同步监控纪录温度上位机用vb6编的。

shula1982 发表于 2006-12-14 15:47:12

我编译的时候 这2句报错

int OWFirst(void)

{

x = 0;

Flag = 0;

return OWSearch(); calling function without prototype may cause errors

}

/***************************next search*******************************/

int OWNext(void)

{

return OWSearch(); calling function without prototype may cause errors

}

为什么了? 楼主你的程序编译通过了吗?

shula1982 发表于 2006-12-14 16:10:43

void uart0_init(void)

{

UCSRB = 0x00; //disable while setting baud rate

UCSRA = 0x00;

UCSRC = BIT(URSEL) | 0x06;

UBRRL = 0x17; //set baud rate lo

UBRRH = 0x00; //set baud rate hi

UCSRB = 0x18;

}

这段在ICCAVR下编译不能通过

pcs3 发表于 2007-1-31 01:48:17

main()函数太简单了吧,程序虽然贴了一部分,但是这些个函数怎么用?编译还很多警告!!!

sandisk 发表于 2007-1-31 10:17:29

丫的神经病,人家贴出代码来就很不错了,你这个垃圾却在这里济济歪歪,垃圾!

pcs3 发表于 2007-1-31 12:29:42

过几天调出了贴个完整的!

sanmen2000 发表于 2007-4-22 20:31:26

请问哪位用18B20做过粮仓温度检测,这样的话,如何区分位置和ID号的对应关系。一根电缆里边有8个18B20。

pcs3 发表于 2007-4-24 15:47:52

我也在做这个东西,请问楼上的在哪?



区分位置和ID号使用双地址的方法,即将18B20里的用户字节放上地址号。读出的数据按地址存放即可。

我的东西已经接近尾声,不过18B20目前的通讯距离还不是很理想(约100米左右)。实际人家有做到200m的。

sunke9 发表于 2007-10-24 15:17:58

楼主:你好!你遇到过某一个18B20插上就只能读到它的ID读不到和它并联的其他18B20 ID的现象吗?

我一条线上放两个18B20,有一个18B20插上就只能读到它的ID读不到和它并联的18B20 ID。我的search rom程序是我用汇编自己写的。当不用这个18B20,用其它任意两个组合都能分别读到id.

hehanlou 发表于 2007-10-24 15:23:41

呵呵 这帖子很老了LZ估计都不从事这行了 ./emotion/em011.gif

52robot 发表于 2007-10-24 19:47:48

wswh2o 水之影
这个家伙太可恶了,就知道吹,我搜索了一下,他没有发表过任何主题
看他吹得:
【6楼】 wswh2o 水之影
积分:90
派别:
等级:------
来自:
128个都可以
【16楼】 wswh2o 水之影
积分:90
派别:
等级:------
来自:
这个很好作, 我做过128个传感器连一起,最远能到几百米

pcwinner 发表于 2007-10-25 21:01:08

幾百米都可以??不會吧

pcs3 发表于 2007-11-21 19:42:41

最远能到几百米???

pcs3 发表于 2008-1-12 17:58:05

单片机加逻辑控制上下拉,我做到了500m测量128只18B20读数完全正确。走了很多弯路,花了几个月时间才达到这个效果

liming 发表于 2008-1-12 19:15:19

各位都是高手呀!128个18b20实在是强!

zangpeijian 发表于 2008-12-31 00:31:17

小弟最近也在搞一个单线连30个18b20的模块,用在冰箱生产线上的,不知楼主和楼上高手能不能留下QQ,因为小弟实在有太需要帮助了,谢谢各位哥哥啦!我的QQ:116671216  email:zangpeijian@126.com

zhoujie 发表于 2008-12-31 09:07:56

一定费了不少银子

tomy 发表于 2008-12-31 11:31:44

18b20确实是一个费银子的东东!

不过还满好用的!

ww7805 发表于 2009-1-4 11:23:29

18b20精度到底能做到多少呀?

就是能显示温度,精度很差有什么用呢?

machi518 发表于 2009-6-10 11:11:23

mark

zhaojun_xf 发表于 2009-6-10 11:17:21

mark

xyz2008 发表于 2009-6-10 11:26:25

mark

zhdbao88 发表于 2009-6-10 15:02:09

记下...

lllll 发表于 2009-10-19 18:30:55

我有点想法,用51的时候仿真中和keil联调,可以测试序列号,AVR的不是有个在线调试功能嘛,我想应该也行吧。虽然我没试过

mfkqqw 发表于 2009-10-19 20:08:45

工业能用吗?

ycbx1569 发表于 2009-10-19 20:18:41

学习一下

Adrian 发表于 2009-10-22 10:10:12

不错!!!

hithyy 发表于 2009-10-22 19:33:46

老帖子

lv998127 发表于 2009-10-23 09:51:12

我买的时候DS18B20十多米一只

gxy508 发表于 2009-10-23 12:10:14

mark

fuge 发表于 2010-3-2 12:51:42

回复【52楼】gxy508
-----------------------------------------------------------------------
读每位的时序很难弄啊
真的
有谁成功了

cyr_hongfeng 发表于 2010-3-2 15:23:15

很好,我以前遇到的问题主要是搜索DS18B20程序搞不定

fuge 发表于 2010-3-2 16:17:50

回复【54楼】cyr_hongfeng
-----------------------------------------------------------------------

那你现在怎样?我现在的状态是读第一位可以读但第二次不对都是11
之后就是跳出了
那位哥哥指点下
我有的是stm32

wshtyr 发表于 2010-3-2 16:36:13

16个DS18B20很贵的说。

gxy508 发表于 2010-3-2 16:51:28

mark

arndei 发表于 2010-3-3 09:24:54

好东西

fuge 发表于 2010-3-3 15:10:10

回复【58楼】arndei
-----------------------------------------------------------------------

有谁读出ID了给小弟一份怎样
小弟现在在读ID第一次是正确的
但第二次就不对
读出的是11
现在正在郁闷中

kcfoo1 发表于 2010-3-4 08:50:46

DS18B20现在4-5元,以前我买18块,

xunke 发表于 2010-3-7 16:26:59

请教!
请问你的测量结果准吗?
我的结果比实际高出约2度,不知为何?

hongyancl 发表于 2010-3-7 16:40:00

回复【楼主位】jiangxin
-----------------------------------------------------------------------

ding

liu969610245 发表于 2010-3-7 17:20:25

这贴要顶~~

CAI2010 发表于 2010-3-12 16:17:09

能发个完整的上来么

mslei 发表于 2010-3-12 16:31:22

这个不错

CAI2010 发表于 2010-3-12 18:56:41

楼主你好,你写的程序最终是在哪显示温度的?
如果我要在数码管或者液晶上显示,应该在哪一部分程序上做改动?

xinjie1023 发表于 2010-3-17 16:07:56

顶一下,标记

cshx1986 发表于 2010-3-24 12:37:47

积分:44
派别:
等级:------
来自:
呵呵 羡慕~

jielove2003 发表于 2010-3-24 13:08:37

标记,学习

gxy508 发表于 2010-3-24 14:29:29

mark

passjordan 发表于 2010-10-8 09:54:21

mark 一個!

dgdjfw 发表于 2010-10-8 10:51:11

标记

zxpt 发表于 2010-10-12 00:47:33

好东西,收藏

guxingganyue 发表于 2010-10-21 18:35:15

mark

andahuwan 发表于 2011-2-28 22:52:15

MARK

warrior_zhang 发表于 2011-5-30 21:51:07

回复【楼主位】jiangxin
-----------------------------------------------------------------------

很好。正需要呢,谢了!!

zyw19987 发表于 2011-11-4 17:30:25

连接16个DS18B20

xiaoyigechaos 发表于 2012-3-9 16:12:22

回复【36楼】pcs3
-----------------------------------------------------------------------

你用的什么主控?

zackdaniels 发表于 2012-3-11 15:03:06

好老的帖子呀。。

hw020411317 发表于 2012-4-6 06:49:36

nRFxx 发表于 2006-9-25 08:25 static/image/common/back.gif
对了,我使用MSP430单片机调试成功了,需要的人可以和我联系阿,我免费送代码。

我的联系方式:http://www. ...

网站好像打不开呀!

zhenglu891028 发表于 2012-4-6 10:55:46


很好啊,加油

jz701209李 发表于 2013-4-10 20:12:42

不错,不错

hamipeter 发表于 2013-4-10 21:20:47

不错不错~!
页: [1]
查看完整版本: M16连接16个DS18B20成功了