找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3|回复: 0
收起左侧

51单片机检测ADC口电压

[复制链接]
ID:1171073 发表于 2026-5-10 00:17 | 显示全部楼层 |阅读模式
void ADC_Init(void)
{
        P5M0 = 0x00;
        P5M1 = 0x20;                                                                                        //P5.5设为ADC5输入
       
        P_SW2 |= 0x80;                                                                                //使能访问XFR,没有冲突不用关闭
        ADCTIM = 0x3f;                                                                                //设置ADC内部时序
        P_SW2 &= 0x7f;
        ADCCFG = 0x2f;                                                                                //设置ADC时钟为系统时钟FOSC/2/16,ADC_RES/ADC_RESL转换结果右对齐
        ADC_CONTR = 0x85;                                                                        //使能ADC模块,并选择ADC5通道
        //ADC_CONTR |= 0x40;                                                                //启动AD转换
        //EADC = 1;                                                                                                        //使能ADC中断

}
int ADC_Read(void)                                                                       
{
        int res;
        ADC_CONTR |= 0x40;                                                          //启动AD转换
        _nop_();
        _nop_();
        while (!(ADC_CONTR & 0x20));                         //查询ADC完成标志
        ADC_CONTR &= ~0x20;                                  //清完成标志
        res = (ADC_RES << 8) | ADC_RESL;        //读取ADC结果
        ADC_RES=ADC_RESL=0;
        return res;
}
float ADC_Result(void)
{
        int i=0,res=0,tmp=0;
        float result=0.0;
        for(i=0;i<8;i++)
        {
                tmp=ADC_Read();                                                                        //查询方式
                res+=tmp;
        }
        res>>=3;                                                                                                        //取平均值
        result=5.0*res/1024+BiasVol;                        //10位ADC
        return result;
}
接下来在main()函数初始化,调用即可。
回复

使用道具 举报

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

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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