应广PMS171B(3)--比较器测供电电源VDD电压

描述

概述

应广PMS171B单片机有很实用的功能,就是可以用内部的分压电阻,Band-gap 电路提供 1.2V 参考电压,和比较器一起,测试单片机VDD电压.不使用任何外部器件,不占用端口就可以测试供电的电源电压.!当电池低压的时候可以做相应的动作.比如休眠,进入低功耗等。本章就写一个实例,当低于4.2V时候,LED输出低电平,高于4.2V时候,LED输出高电平。

PMS171B配置之比较器初始化

比较器

在这里插入图片描述

gpcc寄存器是比较器 比较器控制寄存器,需要打开时需要7位配置为1,本文使用内部1.20V的band-gap参考电压,需配置3-1位为010,gpcc配置如下所示:

gpcc=0b1_0_0_0_010_0;

比较器

在这里插入图片描述

比较器

在这里插入图片描述

gpcs寄存器是配置比较电压,本文中以测试4.2V电压为例,将VDD=4.2V带入,得到N只为0.14、5.85、2.43、8.14;由于N为整数,所以Case 4模式较为适合,即gocs寄存器4-5位配置为11,切换为Case4模式,N为8,3-0位设置为1000,gpcs配置如下所示:

gpcs=0B0_0_11_1000;//检测4.2V

比较器测供电电源VDD电压完整代码

#include    "extern.h"//是程序的头文件。
BIT     LED           :        PA.7;  
#define        f_Com    !p_Com_Out
BIT        p_Com_Out    :    gpcc.6
BIT        f_getBat;
/*比较器初始化*/
void InitCompare ( void )
{
    /*b7@1=开启比较器
    b6@0=负输入大于正输入
    b5@0=比较器不用tm2_ck采样
    b4@0=比较结果没有极性相反
    b3:1@ 010=内部Band-gap电压
    b0@1=PA4输入0=内部电阻输入*/
    gpcc=0b1_0_0_0_010_0;
//$ padier 0b111_0_100_1;
    /*
    b7@0=不输出到PA0
    b6@0保留
    b5@0=高R
    b4@0=低R
    b3:0@0000-1111内部r值
    */
    gpcs=0B0_0_0_0_0000;
}
void GetBat ( void )
{
    /*设置模式为Case 4,检测4.2V*/
    gpcs=0B0_0_11_1000;
    .delay 10;
    if ( f_Com )
    {
        /*电压低于4.2V,执行LED低电平*/
        f_getBat=1;
    }
    else//LED高电平
    {   
    f_getBat=0;
    }
}
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;/*上拉*/
      /***********电压比较器****************/
InitCompare();
    while (1)
    {
        GetBat();
        if(f_getBat)
            LED = 0;
        else
            LED = 1;
        .delay 4000*10;
    }
}

演示效果

可以看到,4.2V以上为LED输出高电平,4.2以下为LED输出低电平,由于4.2V左右会抖动,建议后期加防抖保证稳定运行。

比较器

在这里插入图片描述

比较器

在这里插入图片描述
  审核编辑:汤梓红

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

全部0条评论

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

×
20
完善资料,
赚取积分