打印
[51单片机]

【求教】c8051f410使用adc采样转换的问题

[复制链接]
2191|23
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Big学渣|  楼主 | 2016-12-17 21:59 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
沙发
sunlin0316| | 2016-12-18 09:46 | 只看该作者
可以根据基准电压定啊。数字量/2的转换位数次方(2的12次方)再乘以基准电压就是对应的模拟电压值。

使用特权

评论回复
板凳
ayb_ice| | 2016-12-18 09:49 | 只看该作者
没入门

使用特权

评论回复
地板
ayb_ice| | 2016-12-18 09:50 | 只看该作者
取决于基准电压,分辨率,分压比等

使用特权

评论回复
5
ningling_21| | 2016-12-18 11:53 | 只看该作者
本帖最后由 ningling_21 于 2016-12-18 11:55 编辑

需先将电池电压经过电阻分压使输入AD的电压不能大于芯片电源电压。

假如以0V作为参考,AD是10位即最大值1023,对应输入电压3.3V 1023/1023=100%

如输入电压1.65V,假如得到AD值512,即512/1023=50%

使用特权

评论回复
6
Big学渣|  楼主 | 2016-12-18 16:06 | 只看该作者
ningling_21 发表于 2016-12-18 11:53
需先将电池电压经过电阻分压使输入AD的电压不能大于芯片电源电压。

假如以0V作为参考,AD是10位即最大值10 ...

现在情况是这样,这个是12位的adc,使用的参考电压是2.048V,Vin/2.048=x/4095,电池电压12V即认为电量100%,8.8v时认为0%。但是现在我把电压降到9.6V还是显示的100%,描述的有些乱,还请多多指导

使用特权

评论回复
7
Big学渣|  楼主 | 2016-12-18 16:09 | 只看该作者
sunlin0316 发表于 2016-12-18 09:46
可以根据基准电压定啊。数字量/2的转换位数次方(2的12次方)再乘以基准电压就是对应的模拟电压值。 ...

嗯,这个我知道,参考电压是2.048v,           Vin/2.048=x/4095,认为电池电压12V时电量显示100%,8.8V时为0%,但是现在把电压改到9.6V还是显示100%,不知道该怎么办,还请多多指导

使用特权

评论回复
8
Big学渣|  楼主 | 2016-12-18 16:15 | 只看该作者
ayb_ice 发表于 2016-12-18 09:49
没入门

在学校确实没怎么好好学,刚工作就开始还在学校欠下的账了,唉

使用特权

评论回复
9
ningling_21| | 2016-12-18 16:22 | 只看该作者
Big学渣 发表于 2016-12-18 16:09
嗯,这个我知道,参考电压是2.048v,           Vin/2.048=x/4095,认为电池电压12V时电量显示100%,8.8V ...

为何用2.048作为参考

使用特权

评论回复
10
ningling_21| | 2016-12-18 16:33 | 只看该作者
Big学渣 发表于 2016-12-18 16:09
嗯,这个我知道,参考电压是2.048v,           Vin/2.048=x/4095,认为电池电压12V时电量显示100%,8.8V ...

按这个参考计算,12V电池电压分压输入AD后得到的电压是2.048V,AD值为4095,4095/4095=100%

电池电压降低到10V,分压输入AD的电压是多少?

使用特权

评论回复
11
Big学渣|  楼主 | 2016-12-18 16:41 | 只看该作者
ningling_21 发表于 2016-12-18 16:22
为何用2.048作为参考

2.048是因为用的REF3320 AIDCK,它的out是2.048

使用特权

评论回复
12
Big学渣|  楼主 | 2016-12-18 16:42 | 只看该作者
ningling_21 发表于 2016-12-18 16:33
按这个参考计算,12V电池电压分压输入AD后得到的电压是2.048V,AD值为4095,4095/4095=100%

电池电压降低 ...

降到10v后输入的是1.08v

使用特权

评论回复
13
Big学渣|  楼主 | 2016-12-18 16:48 | 只看该作者
ningling_21 发表于 2016-12-18 16:33
按这个参考计算,12V电池电压分压输入AD后得到的电压是2.048V,AD值为4095,4095/4095=100%

电池电压降低 ...

我好像搞错了,2.048是管脚最大输入,超过就烧了。那我应该按12*0.108=1.296v来作为参考电压,是这样的吧

UC_Photo_001.jpg (32.17 KB )

UC_Photo_001.jpg

使用特权

评论回复
14
Big学渣|  楼主 | 2016-12-18 16:55 | 只看该作者
ningling_21 发表于 2016-12-18 16:33
按这个参考计算,12V电池电压分压输入AD后得到的电压是2.048V,AD值为4095,4095/4095=100%

电池电压降低 ...

P1.2管脚是VREF,P2.4管脚是模拟输入,那我应该是按2.048作为参考电压计算还是按模拟输入那个管脚分到的电压(最大分压为1.296V)算

UC_Photo_002.jpg (49.06 KB )

UC_Photo_002.jpg

使用特权

评论回复
15
sunlin0316| | 2016-12-18 16:58 | 只看该作者
ningling_21 发表于 2016-12-18 16:33
按这个参考计算,12V电池电压分压输入AD后得到的电压是2.048V,AD值为4095,4095/4095=100%

电池电压降低 ...

思路正确,对12V电压的检测,先分压到基准电压2.048V,然后进行A/D转换,在程序中将转换的数字量恢复成模拟电压12v对应的数据,单片机判断这组数据显示100%,当12V降低到9V时,对应的分压为1.512V,经过A/D转换后在程序中对转换的数据进行恢复,利用IF语句判断大于这个9V转换的数据,就显示100%,9V以下的按比例分配显示对应百分比。

使用特权

评论回复
16
ningling_21| | 2016-12-18 17:04 | 只看该作者
Big学渣 发表于 2016-12-18 16:42
降到10v后输入的是1.08v

这电压好像不对

使用特权

评论回复
17
ningling_21| | 2016-12-18 17:06 | 只看该作者
Big学渣 发表于 2016-12-18 16:55
P1.2管脚是VREF,P2.4管脚是模拟输入,那我应该是按2.048作为参考电压计算还是按模拟输入那个管脚分到的 ...

以VREF管脚的实际电压算

使用特权

评论回复
18
ningling_21| | 2016-12-18 17:08 | 只看该作者
Big学渣 发表于 2016-12-18 16:48
我好像搞错了,2.048是管脚最大输入,超过就烧了。那我应该按12*0.108=1.296v来作为参考电压,是这样的吧 ...

12*0.108=1.296 ,这里的0.108是什么

使用特权

评论回复
19
Big学渣|  楼主 | 2016-12-18 17:16 | 只看该作者
ningling_21 发表于 2016-12-18 17:06
以VREF管脚的实际电压算

这个是用P2.4管脚VPCOM来做为采样,同事一直教我用VPCOM/2.048=x/4095来计算的,在输入是12v时VPCOM分得1.296v这个是100%,输入是8.8v时VPCOM分得0.9504v这个是0%,不知道我前边传的图您能看到不能

使用特权

评论回复
20
Big学渣|  楼主 | 2016-12-18 17:18 | 只看该作者
ningling_21 发表于 2016-12-18 17:08
12*0.108=1.296 ,这里的0.108是什么

分压的电阻比例,62K/(510K+62K)=0.108

使用特权

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

本版积分规则

4

主题

34

帖子

0

粉丝