应广PFS122单片机比较器测供电电源VDD电压带临界点消抖处理

应广PFS122单片机比较器测供电电源VDD电压带临界点消抖处理
有朋友不会加临界点消抖处理,我将其加上了,供大家学习参考,不多说了,上代码:
#include “extern.h”
BIT LED : PA.3;
BIT GPCC6_Com_Out : gpcc.6;
BIT flag_getBat;
#define flag_Com !GPCC6_Com_Out
void Gpc_Init(void);
void GetBat(void);
/****************************************************/
void FPPA0 (void)
{
.ADJUST_IC SYSCLK=IHRC/16, IHRC=16MHz, VDD=5V;
$ LED Out, High;
Gpc_Init();
while (1)
{
GetBat();
if(flag_getBat)
LED = 0;
else
LED = 1;
.delay 4000*10;
}
}
/
/
void Gpc_Init(void)
{
GPCC = 0B_1_0_0_0_010_0; //比较器控制寄存器
GPCS = 0B_0_0_00__0000; //比较器选择寄存器
}
/
/
void GetBat (void)
{
/设置模式为Case 3,检测3V/
GPCS = 0B_0_0_10__0111; //比较器选择寄存器 3V Case:3
.delay 10;
/3V比较的时候临界点消抖//
byte Icnt = 60;
byte Shake = 0;
//由于比较器在比较临界点时会发生抖动,因此需要判断多次
while(Icnt–)
{
if(flag_Com) //正输入大于负输入
{
Shake++; //符合次数增加
}
else //正输入小于负输入
{
nop;
}
byte Delay = 20; //延时一段时间
while(Delay–)
{
nop;
}
}
//
if (Shake > 35)
{
/电压低于3V,执行LED低电平/
flag_getBat=1;
}
else//LED高电平
{
flag_getBat=0;
}
}

/加QQ群:1065214078****/

代码实际运行拍图:
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值