单片机菜鸟,请大神指点一下 谢谢啦~~

2025-05-10 07:13:11
推荐回答(2个)
回答(1):

首先 程序 从单总线得到 温度的两部分数值 分别为 高8位和低八位数值
然后我们需要把这两部分合成一部分数 形成完整的温度参数
已知 高8位 和低8位
合成一个16位的 =高8位X256+低8位
也等于高8位左移8位 按位于上第八位
这是前面两个问题
接着
因为是数字式传感器 我要转换成现实的物理量 所以 得到数字乘以灵敏度0.0625
下面乘1000 只是 为看你的精度的要求是怎么样的

回答(2):

最好先要知道18b20的温度读数的格式。
高8位左移8位与低位按位或,实际把2个字节拼成一个16位字。
18b20读数精度是12位,分辨率16分之1摄氏度,即0.0625,结果送ta是浮点数。
ta*1000是把浮点数的结果转成定点数。
这个所谓的定点数在单片机这种资源有限的系统中是很常用的一种方式,在不损失精度的前提下可以提高运算速度。