找回密码
 立即注册
查看: 148|回复: 0

程序

[复制链接]
已绑定手机

7

主题

17

回帖

74

积分

注册会员

积分
74
发表于 2025-2-18 14:50:24 | 显示全部楼层 |阅读模式
void        ADC_config(void)
{       
        ADC_CONTR|=0x80;              //开AD转换电源
        delay_ms(10);           //适当延时等待AD转换供电稳定
        ADC_CONTR|=0x0A;                          //选择P0.4作为模拟功能AD使用
        ADC_CONTR&=0xFA;                          //选择P0.4作为模拟功能AD使用
       
        ADCCFG&=0xFC;             //AD转换速度为416个时钟数转换一次
        ADCCFG|=0x0C;             //AD转换速度为416个时钟数转换一次
        ADC_CONTR&=0xDF;          //清AD转换完成标志
               
        EADC=0;                   //禁止ADC转换中断
        ADCCFG|=0x20;             //ADC转换结果ADC_RES存高4位,ADC_RESL存低8位
        ADC_CONTR|=0x40;          //启动AD转换,ADC_START=1
}

/**************************************
功能描述:ADC口检测AD转换值函数
入口参数:无
返回值:ADC 12位数据
***************************************/
uint16        Get_ADC12bitResult(void)       
{
        uint16        AD_Dat=0;
  ADC_CONTR&=0xDF;              // 将ADC_FLAG清0
        ADC_CONTR&=0xBF;        //关闭AD转换,ADC_START=0
        //12位AD结果的高4位放ADC_RES的低4位,低8位在ADC_RESL
        AD_Dat = ADC_RES;                       //将ADC_RES低4位移到应在的第9位至第12位
        AD_Dat <<= 8;
        AD_Dat|= ADC_RESL;               //将ADC_RESL的8位移到应在的低8位
       
  ADC_CONTR|=0x40;           //启动AD转换,ADC_START=1
        return        AD_Dat;       
}

回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-2 11:19 , Processed in 0.101278 second(s), 45 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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