打印

ds18b20

[复制链接]
612|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
iot123|  楼主 | 2020-12-17 23:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#技术资源#
请教一下大神们,如何实现CC2530芯片的一个IO口接多个ds18b20温度传感器?
求大神给例程!  加企鹅号指导可有偿:3480923405

使用特权

评论回复
沙发
xyz549040622| | 2020-12-17 23:24 | 只看该作者
很简单,直接接上就好了,ds18b20本身就是支持这样的模式的。

使用特权

评论回复
板凳
xyz549040622| | 2020-12-17 23:25 | 只看该作者
关于代码,直接搜索网上51的代码即可,你只需要要调通单个的驱动就好了。

使用特权

评论回复
地板
iot123|  楼主 | 2020-12-17 23:27 | 只看该作者
xyz549040622 发表于 2020-12-17 23:25
关于代码,直接搜索网上51的代码即可,你只需要要调通单个的驱动就好了。 ...

您好,可以加QQ联系一下吗?

使用特权

评论回复
5
iot123|  楼主 | 2020-12-17 23:30 | 只看该作者
我自己写了一个不知道为什么测不了

void DS18B20_Read_64Rom(uchar *buffer)
    {
     TempElem  infoA1;

      uchar i;
      Ds18b20InitialA3();//复位
      Ds18b20WriteA3(0x33);//读64位ROM
      for(i=0;i<8;i++) //读取64个字节
      infoA1.ThirdAD[i]=Ds18b20ReadA3();
   }

使用特权

评论回复
6
iot123|  楼主 | 2020-12-17 23:31 | 只看该作者
iot123 发表于 2020-12-17 23:30
我自己写了一个不知道为什么测不了

void DS18B20_Read_64Rom(uchar *buffer)

uchar Ds18b20ReadA3(void)
{
  uchar Value = 0x00;
  uint i;
  Ds18b20Data = 1;
  Ds18b20OutputInitialA3();
  Ds18b20Data = 1;
  Ds18b20DelayA3(100);
  for(i=0;i<8;i++)
  {
  Value >>= 1;
  Ds18b20OutputInitialA3();
  Ds18b20Data = 0;
  Ds18b20DelayA3(3);
  Ds18b20Data = 1;
  Ds18b20DelayA3(3);
  Ds18b20InputInitialA3();
  Ds18b20DelayA3(3);
  if(Ds18b20Data == 1) Value |= 0x80;
  Ds18b20DelayA3(15);
  }
  return Value;
}

uchar Ds18b20InitialA3(void)
{
  uchar Status = 0x00;
  uint CONT_1 = 0;
  uchar Flag_1 = ON;
  Ds18b20OutputInitialA3();
  Ds18b20Data = 1;
  Ds18b20DelayA3(260);
  Ds18b20Data = 0;
  Ds18b20DelayA3(750);
  Ds18b20Data = 1;
  Ds18b20InputInitialA3();
  while((Ds18b20Data != 0)&&(Flag_1 == ON))//等待ds18b20响应,具有防止超时功能
  {                                        //等待约60ms左右
    CONT_1++;
    Ds18b20DelayA3(10);
    if(CONT_1 > 8000)Flag_1 = OFF;
    Status = Ds18b20Data;
  }
  Ds18b20OutputInitialA3();
  Ds18b20Data = 1;
  Ds18b20DelayA3(100);
  return Status;
}

使用特权

评论回复
7
lvben5d| | 2020-12-18 13:55 | 只看该作者
一带多 肯定有地址  你先调试好1个,再挂第2个  换谁都这样按部就班来。

使用特权

评论回复
评论
lvben5d 2020-12-21 10:25 回复TA
@iot123 :按照手册时序 数字电路 注意IO模拟的时候 各个变化需要的dalay CPU主频下 分析指令软延迟执行时间 这个应该难度不大 。 注意IO模拟访问外围的时候,最好关下全局中断 处理好后,再开。 
iot123 2020-12-18 15:11 回复TA
这是我测的 : F3 03 FC 15 9F FF 00 BE 可是明显是错的[em:9:][em:9:] 
8
oufuqiang| | 2020-12-18 15:39 | 只看该作者
要先挂单个read rom,然后后面用的时候先macth rom。
要自动的就要写二叉树搜索算法,美信有相关的应用笔记。
https://www.maximintegrated.com/en/design/technical-documents/app-notes/1/187.html

使用特权

评论回复
9
edyd| | 2020-12-20 12:52 | 只看该作者
也遇到类似问题,学习了。

使用特权

评论回复
10
iot123|  楼主 | 2021-1-13 12:11 | 只看该作者
oufuqiang 发表于 2020-12-18 15:39
要先挂单个read rom,然后后面用的时候先macth rom。
要自动的就要写二叉树搜索算法,美信有相关的应用笔记 ...

大神有没有实践过的 能自动搜素多个ds18b20序列号 的呀

使用特权

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

本版积分规则

5

主题

17

帖子

0

粉丝