单片机中如何将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个回答  2019-06-26
需要编写串口通讯程序,需要单片机具备串口,或者通过引脚模拟串口。需要增加串口芯片连接到单片机。然后把数据发送到电脑。

也可以采用成品模块LCT2662M,支持64点DS18B20同时采集,支持485总线或232串口等方式传输到计算机或PLC,用于工程开发 ,例如粮库粮情测温,煤层筒仓测温,水蓄冷测温系统等等
相似回答