单片机通过一根线来读DS18B20温度传感器采集的温度,DS18B20输出的脉冲时序是怎样的?

全部回答3
默认 最新
  • rf24l01有增强版的模块,传输距离据说可达2km,其51驱动网上一大把,过程大概是这样:把读取的温度16进制数存到一个寄存器,把这个寄存器的内容发送给rf24l01,启动发送。电脑端也要搞一个单片机,驱动24l01,当收到信号,会产生中断,单片机把数据读出来,通过串口传给pc即可(推荐使用usb转串口的小板子,就几块钱,使用很方便,不需要给板子加max232了)。pc串口收到数据,在串口助手中勾选16进制显示,就是16进制的温度了,或者单片机把16进制的温度转化成字符串形式发到pc,这样串口助手不用勾选16进制显示,直接就能显示成温度。
    0 点赞
  • uchar ReadByte (void) //读取单字节{ uchar i,u=0; for(i=0;i<8;i++) { dq = 0; u >>= 1; dq = 1; if(dq==1) u |= 0x80; TempDelay (4); _nop_(); } return(u);}
    0 点赞
  • 由于18b20是单总线结构 所以 时序一定要正确,也就是中间哪怕只差了几个us都可能出错误!所以仔细看看说明书 ,读或写的时候 分别要多长时间,计算你系统IO输出输入读取的时间,要对应上如果中间出现长时间延时(比如等待温度转换等等),此时一定要再次执行复位操作,以便时序达到统一总体执行步骤是:复位→匹配ROM→温度转换→延时→复位→匹配ID→读取温度如果线上只有一个传感器的话,可以发送忽略匹配ID命令。我这里有现成的程序,PIC单片机C语言控制的 6条总线,每条线上挂载40以内 的程序,如果需要可供你参考
    0 点赞

没有更多内容了

返回顶部
产品求购 求购