mcxhoten 发表于 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;       
}

页: [1]
查看完整版本: 程序