注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

易拉罐的博客

心静自然凉

 
 
 

日志

 
 

转 ADC0809的使用问题----小数点后保留两位的处理方法  

2012-07-04 20:13:41|  分类: 单片机开发 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

ADC0809转换结果在输出显示之前先要进行数据处理,其原理如下:

转换输出结果在0 ~ 255之间分别对应着0 ~ +5V之间的256个电压值,因此单片机必须把A/D转换输出的结果转换成可以显示的电压值,具体方法是:

 

VIN=DOUT *5/255,其中DOUTADC0809输出的八位二进制数。

 

由上述公式可知:当ADC0809输出为(11111111B 时,输入电压的值为VIN=5.00V;

ADC0809输出为(00000000B 时,输入电压的值为VIN=0.00V;ADC0809输出为(10000000B,输入电压值为VIN=2.50V但是单片机进行数学运算时结果只去整数部分,因此输出为(10000000B时计算出来的电压值为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。这样就可以得到电压值的三个数字,最后分别将250三个数送出显示

 

   

  评论这张
 
阅读(170)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017