历史上的今天
返回首页

历史上的今天

今天是:2024年10月30日(星期三)

正在发生

2019年10月30日 | 基于pic16f1503单片机的电源电压不足检测和指示方法

2019-10-30 来源:51hei

原理:
利用单片机内部的FVR稳压电源,ADC进行检测判断单片机的VDD电压是否足够,不足进行输出显示。


应用:
当单片机的供电是由电池供电时,可以测量单片机的供电是否足够,指示电池电量不足。
实际电路测试功能可行,已经应用在具体电路上。


软件:
MPLAB X IDE v4.15    proteus 8.6.
1、仿真电路图;
2、源程序加注释。

说明:

1、利用PIC16F1501内部的FVR,ADC可以测量VDD电压,判断单片机是否供电电压不足。
2、将ADC的基准设为Vdd,通过FVR使能并稳定到1.024V后,用ADC测量值。
3、有公式ADC读值=(1.024/VDD)*1024。设置Vdd参考为3.3V,则(1.024/VDD)*1024=318.
4、VDD越大,FVR的ADC读值越小,所以只要判断读值小于318,说明VDD 大于3.3V
5、图中左边VDD=3.3V.输出指示灯亮,正常,右边VDD=3.29V输出指示灯灭。
6、两个芯片的程序相同,电压基准是3.3V,3.3V以下指示输出灯不亮。

仿真原理图如下

 

单片机源程序如下:

#include"sys.h"

#include         /* For uint8_t definition */

#include        /* For true/false definition */

#include

#include

#include

#include

#define POWER_LED PORTCbits.RC0           //RC0 为系统电源指示灯,

                                          //电源大于3.3V时,灯亮;

                                                //电源小于3.3V时,灯灭;


void sys_init()                                //系统初始化

{

    OSCCON=0x7F;                //16M  内部晶振

    FVRCON=0B01010001;          //FVREN,ADCFVR=01(1.024V)

    ADCON0=0B01111100;          //FVR channel,ADCON   

    ADCON1=0B10000000;          //right 对齐

    ANSELC=0;                   //PORTC是IO口 

    PORTC=0;                                

    TRISC=0;                              //PORTC是输出

    

}

void main()

{

    sys_init();                         //系统初始化

    while(1)

    {

        FVRCONbits.FVREN=1;        //FVR 使能

        while(!FVRCONbits.FVRRDY); //FVR 是否稳定

        ADCON0bits.ADON=1;         //ADC 使能

        __delay_ms(1);             //delay

        ADCON0bits.GO=1;           //ADC 转换开始

        while(ADCON0bits.GO);      //等待ADC 转换结束

        uint16_t adc_result=(uint16_t)ADRESH<<8 |ADRESL; //得到ADC 读数

        if(adc_result<318) POWER_LED=1;     //(1.024/3.3)*1024=318        

        else POWER_LED=0;     

        FVRCONbits.FVREN=0;                 //FVR 使能关闭,节能

        __delay_ms(5000);

        

    }

}



推荐阅读

史海拾趣

芯力微(CHI Power)公司的发展小趣事

面对日益激烈的市场竞争,芯力微不断推动创新,以应对市场的变化。在电源管理领域,公司不断研发新技术、新产品,以满足客户日益增长的需求。同时,芯力微还积极拓展新的应用领域,如物联网、汽车电子等,为公司的发展开辟了新的道路。这种持续的创新精神使得芯力微在电子行业中始终保持领先地位。

Frequency Management International公司的发展小趣事

FMI深知质量是企业生存和发展的根本。因此,公司一直将质量管理放在首位,建立了完善的质量管理体系。从原材料采购到生产加工、成品检验等各个环节都严格把关,确保产品质量符合客户要求。同时,FMI还注重客户服务体验的提升,为客户提供及时、专业的技术支持和解决方案。这些努力使得FMI在客户心中树立了良好的口碑和形象。

Densitron公司的发展小趣事

在电子行业的激烈竞争中,Densitron公司始终坚持技术创新作为发展的核心动力。早期,公司投入大量研发资源,成功开发出一种新型的铟锡氧化物(ITO)材料,这种材料在触摸屏领域具有出色的性能,使得公司的产品在市场上脱颖而出。随着技术的不断升级,Densitron公司又相继推出了一系列创新产品,不仅满足了客户日益增长的需求,也推动了整个行业的进步。

达方(DARFON)公司的发展小趣事

达方电子股份有限公司于1997年在台北市创立,初始阶段主要致力于IT周边组件的研发与生产。创始人凭借对市场趋势的敏锐洞察,决定专注于笔记本键盘的生产,并逐步在行业中崭露头角。通过不断的技术创新和产品优化,达方电子的笔记本键盘逐渐获得了市场的认可,为公司的发展奠定了坚实的基础。

DB Unlimited公司的发展小趣事

在音频市场日益竞争激烈的环境下,DB Unlimited意识到定制化服务的重要性。因此,公司开始提供定制设计服务,以满足客户对特定音频需求的个性化要求。通过与客户的紧密合作和深入沟通,DB Unlimited成功为客户解决了许多复杂的声学设计问题,赢得了客户的信任和赞誉。

AAT [Advanced Analog Technology, Inc.]公司的发展小趣事

DB Unlimited始终将客户放在心中最重要的位置。公司坚持以客户为中心的服务理念,为客户提供全方位、高品质的服务。无论是售前咨询、售后服务还是技术支持等方面,DB Unlimited都始终秉持着专业、高效、热情的态度,赢得了客户的广泛赞誉和信赖。这种客户至上的服务理念也成为了公司不断发展壮大的重要保障之一。

请注意,以上故事框架仅供参考,实际的故事需要根据DB Unlimited公司的真实发展历程和具体事实进行编写。

问答坊 | AI 解惑

《数字信号处理》习题解答

《数字信号处理》习题解答 奥本海姆的《数字信号处理》的习题解答。…

查看全部问答>

送给研发弟兄们几个总结性观点(ZT稍长但是很中肯)

观察了一些企业的产品技术情况,比较普遍的一个现象是:研发人员无一例外的同声谴责采购和工艺部门,对元器件控制不严,致使电路板入检合格率低、到客户现场后频频出毛病。 举几个简单例子: 一个电解电容紧挨着散热片焊接的,与电解电容相关联 ...…

查看全部问答>

芯片是怎样被搞坏的?

芯片会损坏,这是不争的事实。至于损坏的原因,大致有两个方面,一是内因——芯片工艺缺陷;二是外因——使用不当。下面两个例子,都是在工厂里形成的故障,属于芯片或机器的固有缺陷,照理说,都是应该召回的。 【制作环境潮湿,芯片爆米花】 ...…

查看全部问答>

EVC4中有类似于stl中的map或hash_map的东东可以用吗?

本想在evc4中用 std::map, 发现evc4不支持,又不想用网上其它的stl库, 因此,想问一下,在evc4中有类似于map的类吗?本来想这样用的:std::map 我要用到的数据如下,想实现快速查询,想用现成的类: 姓名  地址 AA    广 ...…

查看全部问答>

wince下音频频谱显示技术

最近在看这方面东西,但网上找不到相关资料, 哪位高人做过相关东西啊,提取的什么东西进 行傅里叶变换的啊?…

查看全部问答>

[求] wince.net下display dirver的结构和原理

thanks 最好详细一点,或者给出流程图, 并且把具体的分层描述出来。。 谢谢 …

查看全部问答>

2011_MCU_Day_-_20个城市巡回_火热报名中

自MSP430系列单片机99年进入中国市场以来,以其超低功耗,高性能深得广大工程师青睐。 2011年MCU DAY研讨会我们更注重MCU技术前沿,重点对value line,low voltage MCU以及FRAM MCU等新技术进行研讨。研讨会共巡回20个城市,以16位超低功耗MSP430 ...…

查看全部问答>

从TI官网下的launchpad触摸板例程求问。。

从TI官网下的launchpad触摸板例程 编译时无错误,MAKE时出现如下错误,用的是IAR软件,不知道那个库没设置好,还是路径问题,求解答。Error[e46]: Undefined external \"wheel_buttons\" referred in main ( E:\\430itouch\\Getting_Started_Pr ...…

查看全部问答>

【求助】430 ST7920带字库12864画点失败

求救下万能的网友。 我采用打点程序,打出来的竟然是几条线。 之前看看到网上有人说是因为没有开扩展指令集,但是我开了 求救 PS:附上我的打点子程序 unsigned char Row,Tier,Tier_bit ,Tier_y,i;     unsigned char ReadOldH=0x0 ...…

查看全部问答>

【LPC54100】+ LPC54102双核套件固件库SPI的用法

本帖最后由 强仔00001 于 2015-3-8 22:36 编辑 最近进度有点慢。现在把我SPI这部分分享下吧。这次我使用SPI0和I2C2这两个模块,I2C2负责采集MPU6050的数据,然后用OLED刷新数据。      SPI是串行外设接口(Serial Periphera ...…

查看全部问答>