解释代码。 DS18B20_Write_Byte(0xcc);// skip rom DS18B20_Write_Byte(0xee);// convert
时间: 2024-01-19 20:03:11 浏览: 116
这段代码是通过调用函数`DS18B20_Write_Byte`来给DS18B20温度传感器发送指令。具体来说,这里发送了两个指令:
- `DS18B20_Write_Byte(0xcc);`,这个指令的十六进制表示是0xcc,它是跳过ROM操作,表示我们只对总线上的一个设备进行操作,也就是我们只连接了一个DS18B20传感器。这个指令会让DS18B20传感器进入跳过ROM模式,这样就可以直接向该设备发送指令,而不需要先进行寻址操作。
- `DS18B20_Write_Byte(0xee);`,这个指令的十六进制表示是0xee,它是开始温度转换操作。这个指令会让DS18B20传感器开始进行温度转换,并将转换结果存入其内部的寄存器中。
因此,这段代码的作用是启动DS18B20传感器进行温度转换操作。
相关问题
解释代码。void DS18B20_Start(void) { DS18B20_Rst(); DS18B20_Check(); DS18B20_Write_Byte(0xcc); DS18B20_Write_Byte(0xee); }
这段代码是用于启动 DS18B20 温度传感器的函数。具体来说,代码中的函数名为 DS18B20_Start,返回值类型为 void,表示无返回值,且该函数不需要接收任何参数。函数内部首先调用了 DS18B20_Rst() 函数,用于复位传感器;然后调用了 DS18B20_Check() 函数,用于检测传感器是否正常工作;接着使用 DS18B20_Write_Byte() 函数向传感器发送两个字节的指令,0xcc 和 0xee,用于启动传感器进行温度采集。
unsigned char temperature; //???????? //???DS18B20,?????? void ds18b20_init() { DQ=1; Delay(2); DQ=0; Delay(480); DQ=1; Delay(60); } //?DS18B20????????? void ds18b20_write_byte(unsigned char dat) { unsigned char i; for(i=0;i<8;i++) { DQ=0; Delay(1); DQ=dat&0x01; dat>>=1; Delay(60); DQ=1; } } //??DS18B20????????? unsigned char ds18b20_read_byte() { unsigned char i,dat=0; for(i=0;i<8;i++) { DQ=0; Delay(1); DQ=1; Delay(1); dat|=(DQ<<i); Delay(60); } return dat; } //??DS18B20???? void ds18b20_read_temperature() { unsigned char TL,TH; ds18b20_init(); ds18b20_write_byte(0xCC); //??ROM?? ds18b20_write_byte(0x44); //?????? Delay(750); ds18b20_init(); ds18b20_write_byte(0xCC); //??ROM?? ds18b20_write_byte(0xBE); //??????? TL=ds18b20_read_byte(); //??????8? TH=ds18b20_read_byte(); //??????8? temperature=(TH<<4)|(TL>>4); //????? }
这段代码是一个用于读取DS18B20温度传感器的程序。首先,`ds18b20_init()`函数初始化DS18B20传感器。然后,`ds18b20_write_byte()`函数用于向DS18B20发送命令和数据。`ds18b20_read_byte()`函数用于从DS18B20读取数据。最后,`ds18b20_read_temperature()`函数用于读取DS18B20传感器的温度值,并将其存储在`temperature`变量中。
具体来说,`ds18b20_read_temperature()`函数通过向DS18B20发送"跳过ROM"指令和"温度转换"指令来启动温度转换过程。然后等待750毫秒,等待转换完成。接着发送"跳过ROM"指令和"读取暂存器"指令,来读取DS18B20传感器中存储的温度值。最后将读取到的温度值转换成实际的温度值,并将其存储在`temperature`变量中。
需要注意的是,这段代码中的`Delay()`函数是一个自定义的延时函数,它用于在需要等待一段时间时调用。具体实现可能因不同的开发板而异。
阅读全文