求程序解析(3/3)

来源:百度知道 编辑:UC知道 时间:2024/05/22 13:26:43
/***********************************************************************/
void delay(unsigned int i)//延时函数
{
while(i--);
}

void delay1(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=80;y>0;y--);
}

/***********************************************************************/

//18b20初始化函数
void Init_DS18B20(void)
{
unsigned char x=0;
DQ = 1; //DQ复位
delay(8); //稍做延时
DQ = 0; //单片机将DQ拉低
delay(80); //精确延时 大于 480us
DQ = 1; //拉高总线
delay(10);
x=DQ; //稍做延时后 如果x=0则初始化成功 x=1则初始化失败
delay(5);
}

/***********************************************************************/
//读一个字节
unsigned char ReadOneChar(void)
{
unsigned char i=0;
unsigned char dat = 0;
for (i=8;i>0;i--)
{
DQ = 0; // 给脉冲信号
dat>>=1;
DQ = 1; // 给脉冲信号
if(DQ)
dat|=0x80;
delay(5

/***********************************************************************/
void delay(unsigned int i)//延时函数
{
while(i--);//只要i不等于0则一直累减到0才退出循环,执行i个while指令周期的延时
}

void delay1(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=80;y>0;y--);//执行 循环Z*80个for指令周期 的延时
}

/***********************************************************************/

/******************************
// 18b20初始化函数
*******************************/
void Init_DS18B20(void)
{
unsigned char x=0;
DQ = 1; //DQ复位
delay(8); //稍做延时
DQ = 0; //单片机将DQ拉低
delay(80); //精确延时 大于 480us
DQ = 1; //拉高总线
delay(10);//等待器件做出反应
x=DQ; //稍做延时后 如果x=0则初始化成功 x=1则初始化失败
delay(5);
}

/******************************
// 读一个字节
*******************************/
unsigned char ReadOneChar(void)
{
unsigned char i=0;
unsigned char dat = 0;
fo