打印

PIC的A/D转换

[复制链接]
2814|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

使用特权

评论回复
5
lifengtao| | 2008-1-2 13:59 | 只看该作者

这样算没有错~

注意计算时的单位,还有一些算法小技巧。比如你可以先把3.3v扩大1000倍,再去除以1024,比较容易一些,要细心些

使用特权

评论回复
6
shaxiao163| | 2008-1-2 19:36 | 只看该作者

回复四楼的

要是那样算 就成了8位ADC了啊

使用特权

评论回复
7
工控秀才| | 2008-1-10 17:20 | 只看该作者

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

检测电量不难,有量找我,连程序都帮你搞定.

使用特权

评论回复
8
hotpower| | 2008-1-11 04:02 | 只看该作者

俺顶5楼~~~

使用特权

评论回复
9
nancy006| | 2008-1-12 20:29 | 只看该作者

两者有很大差别吗?

如果按照那样算,我觉得还是差不多啊
3.3*160=528
528/1024=0.515625  第一种

3.3*1000=3300
3300/1024=3.222656
3.222656*160=515.625
515.625/1000=0.515625  第二种
基本上还是一样的,到底这两者有多大区别呢?不过4楼的话还是错的,是10位的A/D,当然是要除1024啊,否则精度会减小很多的

使用特权

评论回复
10
txh353012| | 2008-1-12 22:31 | 只看该作者

9楼不对

9楼的算法不对的.单片机不能处理小数的,
这样的:
3.3*160=528
528/1024=0.515625  第一种 单片机就知道=0;

3.3*1000=3300
3300/1024=3.222656
3.222656*160=515.625
515.625/1000=0.515625  第二种

第二种应该这样写的
3.3*1000=3300
3300*160=528000
528000/1024=515 单片机就知道=515
然后你再处理,
记住放大了1000倍就好了.
在单片机处理数据的最后再/1000.要不然你就没法得到小数的.

还有楼主的参考电压是3.3v,那么量程就是5-3.3=1.2啊.
那就是
1.2*1000=1200
1200*160=192000
192000/1024=187
这样对了吗?  

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

56

主题

100

帖子

1

粉丝