用MAXQ3212微控制设计数字温度监控器
2-1 = 0.500000 => 0.8的62.50%
2-2 = 0.250000 + 0.50000 = 0.750000 => 0.8的93.7%
2-5 = 0.031250 + 0.0750000 = 0.781250 => 0.8的97.65%
2-6 = 0.015625 + 0.781250 = 0.796875 => 0.8的99.61%
用这个精度的数值转换华氏度数据,足以满足这个温度传感器的精度要求。
作为一个例子,我们可以计算测量温度+24.2510,(018.116)摄氏度,可表示为:
温度高有效位
Bit 15 | Bit 14 | Bit 13 | Bit 12 | Bit 11 | Bit 10 | Bit 9 | Bit 8 |
0 (sign) | 0 (sign) | 0 (sign) | 0 (sign) | 0 (sign) | 0 | 0 | 1 |
温度低有效位
Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 |
1 | 0 | 0 | 0 | 0 | 1 | x | x |
换一种方式表示,上面的数值可以表示为00000001 1000.01xx2,这个数乘以1.810。把1.810转换成二进制数,用6位表示小数,结果转换成常数0001.1100112。这种转换方法如下:
0000s0 011000.012 = 006116
× 00000000 01.1100112 = 007316
-----------------------
00101011 .100100112 = 2B9316
+ 00100000 .000000002 = 32.010
-----------------------
01001011 .100100112 = 4B9316 = 75.57421910
可以看出,75.574219是精确的计算结果。如果把这个结果去掉2位小数,得到75.5°F,可以达到用计算器进行浮点运算时的0.15°F精度。如此精确的结果足以满足这种应用的要求。
评论