单片机中如何将DS18b20 测得的温度通过串口发送到上位机VB中?
2023-01-06 · 百度认证:广东太平洋互联网信息服务有限公司官方账号,优质数码...
你的一位十进制数据+0x30,不就变成字符的数字了吗例如:TN是十进制温度 fasong[0]=TN/10 + 0x30; fasong[1]=TN%10 + 0x30;DS18B20采集到的数据你可以在单片机中处理成16进制或字符后发送到上位机,也可以直接发到上位机 由电脑处理数据后显示,当然VB上位机对字符的处理能力强些可以追问。
DS18B20是美国DALLAS半导体公司推出的一种数字化单总线器件,属于新一代适配微处理器的改进型智能温度传感器。我们先来看看DS18B20在芯片手册上的标题——“DS18B20 Programmable Resolution 1-Wire Digital Thermometer”。从这个标题上看我可以获取一些有价值的信息。首先分辨率是可以编程的,也就是我们可以通过程序来修改这个器件的分辨率。其次它又是“一线-总线”,那么简单的讲,就是我们与DS18B20的沟通就是通过这一根线实现的,换一个说法就是“写数据”,“发命令”,“读数据”等等都是通过这根线来完成的。第三点,从标题可以看到,它是数字温度计,也就是它能把温度信号转成数字信号。
其实这里的“第三点”非常重要——把温度信号转成数字信号。注意我们使用这个器件的目的就是要获取温度的信息,那么我们要做的事情就是获取这个DS18B20器件转换的“数字信号”。这是我们的根本目的。其实这个过程中有很多问题值得思考。比如说,这个器件既然能把温度信号转成数字信号,那么可以推测这个器件有个部分或者说它的核心材料具备感知温度的能力。
那么这个材料是什么?为什么这个材料具备这样的能力?最重要的一点是,DS18B20内部是如何把感知的温度信号转成数字信号的?可以看到,这几个问题才是DS18B20的核心内容(叁议电子)。但是想一想我们需要去解答这些问题吗?根本不需要。注意我们这里是从应用层面来思考问题的。我们要干什么?目的就是获取温度值嘛。
刚才不是说了吗,DS18B20能把温度信号转成数字信号。那么我们只需要关心这个“数字信号”放到哪里了,然后通过这一根“一线-总线”进行沟通,取出这个“数字信号”就可以了。至于我们刚才思考那些问题有用吗?根本没必要。当然如果你想深入了解这个器件也可以去查阅相关的资料。这里再次强调,我们是从应用层面来思考问题的。好了,通过对DS18B20芯片手册的标题分析,我们可以推测出一个大概的思路:DS18B20会把周围的温度信号变成数字信号,放在了某个(www.ppptalk.com),然后我们通过这一根“一线-总线”取出这个“数字信号”。知道了这个思路,剩下的工作就是去查阅芯片手册,确定具体的操作的过程了。