#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