打印
[AVR单片机]

MEGA16与DS18B20

[复制链接]
2661|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yanhao_xj|  楼主 | 2010-8-27 16:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本人是一个AVR初学都,首先用MEGA16,I不会用它的汇编,直接用C语言和GCC。第一次应用就是做一个温度监控的。单片机用MEGA16一片,温度传感器用DS18B20二十只.
在做的过程中先是用单片机和一只温度传感器做,因为我以前没有用过DS18B20.在做的进程中遇到了下面问题:
1、关于延时,因为DS18B20要有很精确的时序,这些时序全部用单片机产生。但是在调用它自身的延时函数无法读出来温度。用示波器看了时序,发现_delay_us(1)不是延时的1us,有好几ms甚至几十ms,百思不得其解。
2、由于一共要驱动20只温度传感器,而且它们在同一数据线上,寄生供电,这20只传感器在约为40m的数据线(数据线和地线)上,运用强上拉(BSS84),无法驱动,读不到值。

请大家帮帮忙,为我提提建议。

相关帖子

沙发
hotpower| | 2010-8-28 19:49 | 只看该作者
先调通一只。不要贪大,逐步增多。

使用特权

评论回复
板凳
yanhao_xj|  楼主 | 2010-8-30 22:27 | 只看该作者
2# hotpower
10只以内都可以工作,就是12只以上就不行了。按照手册加强上拉应该能驱动100多只啊。

使用特权

评论回复
地板
iverson_li| | 2012-3-25 15:51 | 只看该作者
跪求 挂两个DS18B20的代码,我自己编,一直出错,希望比较下,找出什么问题额

使用特权

评论回复
5
hyhmh| | 2012-3-26 12:07 | 只看该作者
DS18B20比较多时  建议使用 多个I/O, 即不要 一线挂接太多.(当然, 接线 强制一条的 除外)
原因:
   1) 一个I/O上挂 很多DS18B20 MCU是否 要考虑 识别 SENSOR 与 物理环境的 对应关系 会比较烦琐.
   2)I/O驱动能力会 是比较大的困难(与线长还有关系)
   3)如今 MCU的 I/O 相对而言 成本,选型 也很方便,
   4)DS18B20 对时序严格, 使用C库的 延时函数 估计 很难精确(它与编译条件 还会有一定的关系).
相关文献 很多, 可多看一下, 以免走偏了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

16

帖子

0

粉丝