找回密码
 立即注册
查看: 1340|回复: 14

新手求教ADC返回值转换方法

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:204
  • 最近打卡:2025-06-12 08:24:22
已绑定手机

36

主题

175

回帖

1363

积分

金牌会员

积分
1363
发表于 2024-3-25 19:36:43 | 显示全部楼层 |阅读模式
本帖最后由 lao4jiadian 于 2024-3-25 19:43 编辑

STC8H8K64U核心实验板(开天斧),原板未改动基准参考电压,未改动如何元件
实例例程:08-16路ADC轮询-每路16次ADC转换取中间8次求平均值-串口1返回结果
演示15路ADC和bandgap查询采样

如:接收←ADC08=2785      万用表测量值1.698V。怎么转换啊?关系式是什么啊?返回:41 44 43 30 38 3D 32 37 38 35 20 20
2785------1.698   ???? main.c (10.76 KB, 下载次数: 100)



8位程序---换个STC32G.h头文件,换个C251编译器就直接到STC32的高度了;
          想回到8位机,则换个STC8H.h头文件,换个C51编译器就回到8位机了.
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:448
  • 最近打卡:2025-06-17 09:05:03

0

主题

170

回帖

1301

积分

金牌会员

积分
1301
发表于 2024-3-25 20:03:45 | 显示全部楼层
返回值就是ADC位数的比例,然后根据内部参考电压反推实测电压。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:498
  • 最近打卡:2025-06-17 08:56:53

10

主题

130

回帖

714

积分

高级会员

积分
714
发表于 2024-3-25 20:18:04 | 显示全部楼层
12位ADC 满量程是 4096, 参考电压2.5v,  2785/4096*2.5=1.6998v,   正确啊
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:204
  • 最近打卡:2025-06-12 08:24:22
已绑定手机

36

主题

175

回帖

1363

积分

金牌会员

积分
1363
发表于 2024-3-25 20:30:56 | 显示全部楼层
NT*** 发表于 2024-3-25 20:18
12位ADC 满量程是 4096, 参考电压2.5v,  2785/4096*2.5=1.6998v,   正确啊

微信图片_20240325203014.jpg 谢谢了。我看到12位:0-4095.到底是除4096,还是除4095.
8位程序---换个STC32G.h头文件,换个C251编译器就直接到STC32的高度了;
          想回到8位机,则换个STC8H.h头文件,换个C51编译器就回到8位机了.
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:498
  • 最近打卡:2025-06-17 08:56:53

10

主题

130

回帖

714

积分

高级会员

积分
714
发表于 2024-3-25 20:48:03 | 显示全部楼层
屏幕截图 2024-03-25 204555.png

相差不大,理论上是4096,参考电压也有误差,约0.005v 吧好像。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:499
  • 最近打卡:2025-06-17 08:23:30
已绑定手机

14

主题

1312

回帖

3302

积分

论坛元老

积分
3302
发表于 2024-3-25 21:16:25 | 显示全部楼层
lao4ji*** 发表于 2024-3-25 20:30
谢谢了。我看到12位:0-4095.到底是除4096,还是除4095.

较真的话应该是除4095
举个极端例子,比如是1位的ADC是除以1而不是除以2。

点评

一定是/4096,学过ADC原理的都知道,逼近式就是硬件2分法查找,分母就是2^n次方。  详情 回复 发表于 2024-3-25 21:23
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:95
  • 最近打卡:2025-06-17 10:15:05

74

主题

6092

回帖

1万

积分

超级版主

积分
12731
发表于 2024-3-25 21:21:47 | 显示全部楼层
ADC值 = 4096*输入电压/参考电压,最大值4095.
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:95
  • 最近打卡:2025-06-17 10:15:05

74

主题

6092

回帖

1万

积分

超级版主

积分
12731
发表于 2024-3-25 21:23:01 | 显示全部楼层
21cns*** 发表于 2024-3-25 21:16
较真的话应该是除4095
举个极端例子,比如是1位的ADC是除以1而不是除以2。 ...

一定是/4096,学过ADC原理的都知道,逼近式就是硬件2分法查找,分母就是2^n次方。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:468
  • 最近打卡:2025-06-17 06:26:47
已绑定手机

19

主题

3231

回帖

5285

积分

论坛元老

积分
5285
发表于 2024-3-25 21:34:59 | 显示全部楼层
2的12次方等于4096,量产是0-4095。除4096
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:499
  • 最近打卡:2025-06-17 08:23:30
已绑定手机

14

主题

1312

回帖

3302

积分

论坛元老

积分
3302
发表于 2024-3-25 22:42:19 | 显示全部楼层
本帖最后由 21cnsound 于 2024-3-25 22:44 编辑
梁*** 发表于 2024-3-25 21:23
一定是/4096,学过ADC原理的都知道,逼近式就是硬件2分法查找,分母就是2^n次方。 ...

逼近式是用的二分法没错,参考电压源是VCC_REF,测量目标也是VCC,按你说的逻辑计算得到就是VCC=4095/4096*VCC_REF,而实际上VCC=VCC_REF,这是“人为误差”了吧?

点评

12位的ADC读数为0~4095,一共4096级。 将AVREF分4096级,则输入电压范围就是0~4095/4096 * AVREF,即输入电压为AVREF*4095/4096时为满量程,明白了吗? 如果仍不明白,可以了解一下逼近式ADC原理(现代的逼近式ADC多  详情 回复 发表于 2024-3-25 23:20
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-6-17 18:54 , Processed in 0.181471 second(s), 102 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表