PIC的A/D转换

[复制链接]
4386|9
 楼主| 46621295 发表于 2007-12-24 15:53 | 显示全部楼层 |阅读模式
用的pic18f6720,内部有10位A/D转换。目的是要检测电池电量,参考电压是3.3v,如果A/D转换的结果是160、170,那么被检测电压分别是多少呢?我是这样想的,3.3v,10位,那就是3.3v分1024份,如此160、170分别对应的就应该是160*3.3/1024、170*3.3/1024。但我这样算出来的值和别人写程序时要实现的目的值不对应。请各位指点一下。谢谢!
兰天白云 发表于 2007-12-24 16:07 | 显示全部楼层

怎么个不对应?

  
幸福DE饭团 发表于 2007-12-25 11:20 | 显示全部楼层

基本概念不清

我是这样想的,3.3v,10位,那就是3.3v分1024份,如此160、170分别对应的就应该是160*3.3/1024、170*3.3/1024。   不是这样算的
wujieflash 发表于 2008-1-2 11:04 | 显示全部楼层

应该这样算

3.3/256*160
lifengtao 发表于 2008-1-2 13:59 | 显示全部楼层

这样算没有错~

注意计算时的单位,还有一些算法小技巧。比如你可以先把3.3v扩大1000倍,再去除以1024,比较容易一些,要细心些
shaxiao163 发表于 2008-1-2 19:36 | 显示全部楼层

回复四楼的

要是那样算 就成了8位ADC了啊
工控秀才 发表于 2008-1-10 17:20 | 显示全部楼层

呵呵,找我,连程序都帮你搞定

检测电量不难,有量找我,连程序都帮你搞定.
hotpower 发表于 2008-1-11 04:02 | 显示全部楼层

俺顶5楼~~~

  
nancy006 发表于 2008-1-12 20:29 | 显示全部楼层

两者有很大差别吗?

如果按照那样算,我觉得还是差不多啊<br />3.3*160=528<br />528/1024=0.515625  第一种<br /><br />3.3*1000=3300<br />3300/1024=3.222656<br />3.222656*160=515.625<br />515.625/1000=0.515625  第二种<br />基本上还是一样的,到底这两者有多大区别呢?不过4楼的话还是错的,是10位的A/D,当然是要除1024啊,否则精度会减小很多的<br />
txh353012 发表于 2008-1-12 22:31 | 显示全部楼层

9楼不对

9楼的算法不对的.单片机不能处理小数的,<br />这样的:<br />3.3*160=528<br />528/1024=0.515625  第一种&nbsp;单片机就知道=0;<br /><br />3.3*1000=3300<br />3300/1024=3.222656<br />3.222656*160=515.625<br />515.625/1000=0.515625  第二种<br /><br />第二种应该这样写的<br />3.3*1000=3300<br />3300*160=528000<br />528000/1024=515&nbsp;单片机就知道=515<br />然后你再处理,<br />记住放大了1000倍就好了.<br />在单片机处理数据的最后再/1000.要不然你就没法得到小数的.<br /><br />还有楼主的参考电压是3.3v,那么量程就是5-3.3=1.2啊.<br />那就是<br />1.2*1000=1200<br />1200*160=192000<br />192000/1024=187<br />这样对了吗?&nbsp; 
您需要登录后才可以回帖 登录 | 注册

本版积分规则

56

主题

100

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部