晶振12MHZ 左右
void Delay(unsigned int num) { while( --num ) ; }
/*初始化ds1820 */ /*******************************************************************/ 4.Init_DS18B20(void) { DQ = 1 ; //DQ复位 Delay(8) ; //稍做延时
DQ = 0 ; //单片机将DQ拉低 Delay(90) ; //精确延时 大于 480us
1. DQ = 1 ; //拉高总线 Delay(8) ;
presence = DQ ; //如果=0则初始化成功 =1则初始化失败 2. Delay(100) ; DQ = 1 ; return(presence) ; //返回信号,0=presence,1= no presence } 问题:在1处拉高后 时序图上说等待15~60US 为什么程序上是 Delay(8) 约为80us 在2处延迟了 Delay(100) 约为1000us 而时序上要求是60~204us 我都蒙了 |