[51单片机] 【求教】c8051f410使用adc采样转换的问题

[复制链接]
 楼主| Big学渣 发表于 2016-12-17 21:59 | 显示全部楼层 |阅读模式
在使用adc对电池电量进行采样转换的时候,该怎么将模拟量与数字量一一对应,从而在显示屏上观察到0%~100%这样的电量显示
sunlin0316 发表于 2016-12-18 09:46 | 显示全部楼层
可以根据基准电压定啊。数字量/2的转换位数次方(2的12次方)再乘以基准电压就是对应的模拟电压值。
ayb_ice 发表于 2016-12-18 09:49 来自手机 | 显示全部楼层
没入门
ayb_ice 发表于 2016-12-18 09:50 来自手机 | 显示全部楼层
取决于基准电压,分辨率,分压比等
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%
 楼主| 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%,描述的有些乱,还请多多指导
 楼主| 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%,不知道该怎么办,还请多多指导
 楼主| Big学渣 发表于 2016-12-18 16:15 来自手机 | 显示全部楼层
ayb_ice 发表于 2016-12-18 09:49
没入门

在学校确实没怎么好好学,刚工作就开始还在学校欠下的账了,唉
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作为参考
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的电压是多少?

 楼主| Big学渣 发表于 2016-12-18 16:41 来自手机 | 显示全部楼层
ningling_21 发表于 2016-12-18 16:22
为何用2.048作为参考

2.048是因为用的REF3320 AIDCK,它的out是2.048
 楼主| 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
 楼主| 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来作为参考电压,是这样的吧

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| 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)算

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
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以下的按比例分配显示对应百分比。
ningling_21 发表于 2016-12-18 17:04 | 显示全部楼层
Big学渣 发表于 2016-12-18 16:42
降到10v后输入的是1.08v

这电压好像不对
ningling_21 发表于 2016-12-18 17:06 | 显示全部楼层
Big学渣 发表于 2016-12-18 16:55
P1.2管脚是VREF,P2.4管脚是模拟输入,那我应该是按2.048作为参考电压计算还是按模拟输入那个管脚分到的 ...

以VREF管脚的实际电压算
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是什么
 楼主| 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%,不知道我前边传的图您能看到不能
 楼主| 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

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

4

主题

34

帖子

0

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