ADC0809使用中的小问题----小数点后保留两位的处理方法
2009-12-09 22:48
651 查看
ADC0809转换结果在输出显示之前先要进行数据处理,其原理如下:
转换输出结果在0—255之间分别对应着0~+5V之间的256个电压值,因此单片机必须把A/D转换输出的结果转换成可以显示的电压值,具体方法是:
VIN=DOUT *5/255,其中DOUT是ADC0809输出的八位二进制数。
由上述公式可知:当ADC0809输出为(11111111)B 时,输入电压的值为VIN=5.00V;
当ADC0809输出为(00000000)B 时,输入电压的值为VIN=0.00V;当ADC0809输出为(10000000)B,输入电压值为VIN=2.50V,但是单片机进行数学运算时结果只去整数部分,因此输出为(10000000)B时计算出来的电压值为VIN=2V。
由此可以看出这样运算输出的结果很不准确,在0~+5V之间只有0,1,2,3,4,5六个电压值,所以必须把单片机运算结果中的小书部分保留下来。
具体方法是:如果保留小数点后两位,在运算时分子乘以100,保留三位就乘以1000。小数点后保留两位的公式如下:VIN=DOUT *5*100/255= DOUT *100/51,有公式可知,单片机的运算结果为250。然后单片机将250除以10得到商为25,余数为0,再将25除以10得到商为2余数为5。这样就可以得到电压值的三个数字,最后分别将2,5,0三个数送出显示
转换输出结果在0—255之间分别对应着0~+5V之间的256个电压值,因此单片机必须把A/D转换输出的结果转换成可以显示的电压值,具体方法是:
VIN=DOUT *5/255,其中DOUT是ADC0809输出的八位二进制数。
由上述公式可知:当ADC0809输出为(11111111)B 时,输入电压的值为VIN=5.00V;
当ADC0809输出为(00000000)B 时,输入电压的值为VIN=0.00V;当ADC0809输出为(10000000)B,输入电压值为VIN=2.50V,但是单片机进行数学运算时结果只去整数部分,因此输出为(10000000)B时计算出来的电压值为VIN=2V。
由此可以看出这样运算输出的结果很不准确,在0~+5V之间只有0,1,2,3,4,5六个电压值,所以必须把单片机运算结果中的小书部分保留下来。
具体方法是:如果保留小数点后两位,在运算时分子乘以100,保留三位就乘以1000。小数点后保留两位的公式如下:VIN=DOUT *5*100/255= DOUT *100/51,有公式可知,单片机的运算结果为250。然后单片机将250除以10得到商为25,余数为0,再将25除以10得到商为2余数为5。这样就可以得到电压值的三个数字,最后分别将2,5,0三个数送出显示
相关文章推荐
- C# 小数点后保留两位小数,四舍五入的函数及使用方法
- C# 小数点后保留两位小数,四舍五入的函数及使用方法
- C#中小数点后保留两位小数,四舍五入的函数及使用方法
- C#中小数点后保留两位小数,四舍五入的函数及使用方法
- C#中小数点后保留两位小数,四舍五入的函数及使用方法
- C# 小数点后保留两位小数,四舍五入的函数及使用方法
- C#中小数点后保留两位小数,四舍五入的函数及使用方法
- 数字的处理方法(保留小数点两位、将数字转化为千分位格式)
- C#中小数点后保留两位小数,四舍五入的函数及使用方法(转)
- C#中小数点后保留两位小数,四舍五入的函数及使用方法
- ASP中保留小数点后两位数的方法(使用FormatNumber)
- ASP中保留小数点后两位数的方法(使用FormatNumber)
- 使用updatePanel控件出现sys...未定义问题的处理方法
- 非打印状态下保留两位小数点的float数据方法
- 22种手机使用中的常见问题及处理方法
- java保留小数点后两位的方法
- Struts2一个Action内包含多个请求处理方法的处理,method的使用方法,struts2中的路径问题,通配符映射
- java保留小数点后两位的有关问题
- 一些js小方法:格式化xml, 计算2个日期间隔的天数, 保留小数点后两位等
- java 保留小数点后两位的几种方法举例