DS18B20温度只能计到25度?程序如下:void Init_DS18B20(void){ //初始化ds1820\x05unsigned char x=0;\x05DQ = 1; //DQ复位\x05DelayDS18B20(8); //稍做延时\x05DQ = 0; //单片机将DQ拉低\x05DelayDS18B20(80); //精确延时 大于 480us

来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/27 05:57:50
DS18B20温度只能计到25度?程序如下:voidInit_DS18B20(void){//初始化ds1820\x05unsignedcharx=0;\x05DQ=1;//DQ复位\x05Delay

DS18B20温度只能计到25度?程序如下:void Init_DS18B20(void){ //初始化ds1820\x05unsigned char x=0;\x05DQ = 1; //DQ复位\x05DelayDS18B20(8); //稍做延时\x05DQ = 0; //单片机将DQ拉低\x05DelayDS18B20(80); //精确延时 大于 480us
DS18B20温度只能计到25度?
程序如下:
void Init_DS18B20(void){ //初始化ds1820
\x05unsigned char x=0;
\x05DQ = 1; //DQ复位
\x05DelayDS18B20(8); //稍做延时
\x05DQ = 0; //单片机将DQ拉低
\x05DelayDS18B20(80); //精确延时 大于 480us
\x05DQ = 1; //拉高总线
\x05DelayDS18B20(14);
\x05x=DQ; //稍做延时后 如果x=0则初始化成功 x=1则初始化失败
\x05DelayDS18B20(20);
}
//
unsigned int ReadTemperature(void)\x05\x05//读取温度
{
\x05unsigned char a=0;
\x05unsigned char b=0;
\x05unsigned int t;
\x05float tt=0;
\x05Init_DS18B20();
\x05WriteOneChar(0xCC); // 跳过读序号列号的操作
\x05WriteOneChar(0x44); // 启动温度转换
\x05Init_DS18B20();
\x05WriteOneChar(0xCC); //跳过读序号列号的操作
\x05WriteOneChar(0xBE); //读取温度寄存器
\x05a=ReadOneChar(); //读低8位
\x05b=ReadOneChar(); //读高8位
\x05t=b;
\x05t

DS18B20温度只能计到25度?程序如下:void Init_DS18B20(void){ //初始化ds1820\x05unsigned char x=0;\x05DQ = 1; //DQ复位\x05DelayDS18B20(8); //稍做延时\x05DQ = 0; //单片机将DQ拉低\x05DelayDS18B20(80); //精确延时 大于 480us
肯定是不会的,最该可测+85℃.
你说你的测出来最高到25,那么肯定是程序问题.我百度空间有DS的时序程序,可以去参考下.
不懂再讨论.
希望我的回答能帮助到你.