应广PMS171B(4)--ADC

描述

概述

应广PMS171B单片机有很实用的功能,对于PMS171B-S08,有3个ADC输入管脚,8bit的ADC,分别是AD8、AD9、AD10。本文使用AD10作为ADC检测口,并配合端口输出高低电平来进行检验。

单片机

在这里插入图片描述

PMS171B配置ADC

单片机

在这里插入图片描述

adcrgc寄存器是ADC调节控制寄存器,本文使用VDD为参考电压,需配置7位为0,adcrgc配置如下所示:

adcrgc=0b000_0_00_00

单片机

在这里插入图片描述

adcc寄存器是ADC控制寄存器,如果需要知道ADC是否转换完成,读取第6位;本文使用PA0作为ADC输入口,adcc配置如下所示:

adcc=  1_0_1010_00;

PMS171B为8bit的ADC,所以检测3V时,对应的ADC值为3V/5V*255 = 153。

PA0检测3V代码

#include    "extern.h"//是程序的头文件。
BIT    LED :    PA.7;  
/**********adc*****************/
Word    AdcSum;
BIT    THR :   PA.0;
void GetAdc(void)    //ADC采样处理
{
     BYTE   i;
    $ ADCC Enable, THR ;//  ADCC  =  1_0_1010_00;
    //8次采样做平均/
    i=8;
    //初始化
    AdcSum=0;
    while ( i-- )
     {
        AD_Start=1;//读取  ADCC第六位;
        .wait1  AD_Done;
        //adc 采样值,PMS171B为8bit
        AdcSum +=ADCRH;
    }
    //取平均值输出
    AdcSum=AdcSum>>3;   //temp除以8
}
void    FPPA0 (void)//相当于程序的 main() 函数。
{
    /*单片机内部RC震动时钟为 IHRC默认为16M,因此,IHRC/4=4M,系统时钟为4M*/
    .ADJUST_IC  SYSCLK=IHRC/4, IHRC=16MHz, VDD=5V;
    /*端口设置为输出 低*/
      pa.7=0;
      pac.7=1;/*输入*/
      paph.7=0;/*上拉*/
   $ THR  in;//设置PA0为输入
    /*bit config start
    b7:5@001=2V参考;000=VDD;
    b4@0f通道选择器
    b3:2@f通道band-gap参考电压选择
    b1:0@00=rsv
    bit config end*/
    adcrgc=0b000_0_00_00;
    while (1)
    {
        GetAdc();
        if(AdcSum>153)//检测3V
        {
            LED = 1;
        }
        else
            LED = 0;
        .delay 4000*500;
    }
}

演示效果

单片机

在这里插入图片描述

单片机

在这里插入图片描述

  审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
评论(0)
发评论
记帖MCU 2022-11-17
0 回复 举报
交流ⓆU_N:6_15061293   收起回复

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分