我的第一个DS18B20温度传感器多点测温程序(草稿)

本文档介绍了如何使用DS18B20温度传感器进行多点测温,包括初始化、复位、写入和读取数据的详细步骤,以及自动搜索ROM的二叉树搜索算法。通过提供的C语言代码,读者可以理解DS18B20的通信协议和温度转换过程。
摘要由CSDN通过智能技术生成

#include "430IO.h"
//-----------I/O口定义------------------
#define DS_DIR P6DIR_bit.P6DIR_5
#define DS_OUT P6OUT_bit.P6OUT_5
#define DS_IN P6IN_bit.P6IN_5
#define DQ 1
#define uchar unsigned char
#define MAXNUM 16                      // 定义为该引脚最多允许接DS18B20的数量  不宜太小!
extern uchar ROM[8];
uchar num=0;
uchar ID[MAXNUM][8];
uchar temp_l,temp_h;

//延迟函数
void dyus(unsigned int x)                                 //延迟函数一定要准确,因为DS18B20对时序要求特别严格,2次的失败都是因为时序的原因,延迟不准确。
{
  do
  {
    asm("nop");
    x--;
  } while (x!=0);
}

//DS18B20复位函数
void DS_Reset()
{
   DS_DIR=1;   //DQ输出状态
   DS_OUT=0;   //输出低电平
   dyus(500);//延迟500us
   DS_OUT=1;   //输出高电平,拉高 释放总线
   dyus(60);  //延迟60us,接收存在脉冲
   DS_DIR=0;  //D Q输入状态 zmy
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值