网站首页 全球最实用的IT互联网站!

人工智能P2P分享Wind搜索发布信息网站地图标签大全

当前位置:诺佳网 > 电子/半导体 > 模拟技术 >

应广PMS171B(4)--ADC

时间:2022-11-14 15:24

人气:

作者:admin

标签:

导读:应广PMS171B单片机有很实用的功能,对于PMS171B-S08,有3个ADC输入管脚,8bit的ADC,分别是AD8、AD9、AD10。本文使用AD10作为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;
    }
}

演示效果

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

审核编辑:汤梓红

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信