数码之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 3517|回复: 14

[C51] 小白学51单片机,ADC检测电压并显示

[复制链接]
发表于 2024-3-4 18:12:35 | 显示全部楼层
void adc_convert(u8 chn)
{
        u16 j;
        u8 k;
        get_adc12bitresult(chn);        //查询方式做一次ADC,丢弃
        get_adc12bitresult(chn);        //查询方式做一次ADC,丢弃
        for (k=0;k<16;k++)
        j=j+get_adc12bitresult(chn);
        j=j/16;
        voltage=j*0.12207;  //(5/4096)*100      /*这个计算方法是以电源电压为基准,需要电源电压是标准5V,供电电压有波动就影响测量结果。
                                                                   如果用内部15通道做基准请参考手册文档,需要3步:1读AD口值,2读内部15通道AD值和基准数
                                                                   值,3根据公式计算*/
}
回复 支持 1 反对 0

使用道具 举报

发表于 2024-3-8 11:53:18 来自手机浏览器 | 显示全部楼层
hellozwt 发表于 2024-3-5 09:30
电压值跟万用表还是接近的,就是数码管最后一位有点闪

最后一位数值闪是正常的,除非基准电压一直没有一丁点波动。所以通常会在采样ad口加硬件滤波电容和进行采样值软件算法滤波
回复 支持 反对

使用道具 举报

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

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-7-15 23:29 , Processed in 0.156000 second(s), 9 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

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