单片机中如何将DS18b20测得的温度通过串口发送到电脑的串口调试助手上呢?

如题所述

串口是可以发送16进制的数的。我常用的简单方法是,在单片机里这样写:

int t;
float tt; //温度值

char i;
unsigned char *p;

Init_DS18B20();
WriteOneChar(0xCC); //跳过读序号列号的操作
delay(40);//delay(4);
WriteOneChar(0xBE); //读取温度寄存器等(共可读9个寄存器) 前两个就是温度
a=ReadOneChar();
b=ReadOneChar();
t=b;

t<<=8;
t=t|a;
tt=t*0.0625; 转换成温度.可用

p= (unsigned char *) (&tt);

for(i=3;i>=0;i--)
{
TI = 0;
SBUF = p[i];
while(TI==0);

}

到计算机这边,在把他转换回来就好了;
例如:
BYTE RECV[4]; // 这是计算机收到的字符串;
float *fp = (float*)RECV;
float t = *fp; //t里就是收到的18B20的温度了
温馨提示:答案为网友推荐,仅供参考
第1个回答  2023-05-23
1. 首先,将DS18b20连接到单片机,并编写程序,使单片机能够读取DS18b20的温度数据。
2. 然后,使用单片机的串口功能,将读取到的温度数据发送到电脑的串口调试助手上。
3. 最后,在电脑的串口调试助手上接收到单片机发送的温度数据,并显示出来。
相似回答