单片机的省电模式及策略

本文详细介绍了基于STC15系列单片机的省电策略,包括硬件选择、低功耗设计、IO口模式配置、时钟管理(如分频)以及在不同运行条件下的电源管理和IO口模式设置,以最大程度降低功耗。
摘要由CSDN通过智能技术生成

目录

一、单片机省电的核心策略

二、单片机IO口的几种模式

三、单片机的掉电运行模式

       (1) 浅谈cpu运行为什么会需要时钟?

(2)STC15系列单片机内部可以配置时钟

(3)分频策略,降低功耗

(4)STC15系列单片机的省电模式

四、设置不同运行条件IO口的模式,进一步降低功耗


       

对于所有的单片机产品,无一例外的都需要电池的供应,虽然随着科技的日益发展,电池的容量已经越来越高,有的甚至能维持几年的工作,但是对于一般的小型干电池而言,电池的容量仍然需要我们省着利用,否则就可能让单片机每隔一段时间都需要换一次电池,所以本篇文章我们来讲讲单片机(基于STC15系列单片机)是如何省电的。

一、单片机省电的核心策略

        (1)单片机产品的省电需要硬件和软件相互配合着完成

        (2)硬件部分:

                a.硬件设计需要考虑低功耗,就需要选择低功耗的芯片

                b.硬件设计的相关电路也需要考虑低功耗设计(比如加大电阻等等)

                c.和单片机相关的需要和软件工程师配合调试

        (3)软件部分:

                a.没有用到的IO口需要按照芯片手册来进行配置(因为STC系列的单片机内核都是一样的,只不过不同种类的芯片的引脚引出不一样罢了,但是内核芯片都是含有这些的)

                b.通过配置寄存器,让单片机进入低功耗模式

                c.结合硬件设计在不同情况下配置成不同的IO口模式

二、单片机IO口的几种模式

        在这里我们可以看到,每一个IO口都有4种模式,而这4种模式是通过两个寄存器来配置的---PxM0和PxM1,两个寄存器的每一位都对应着IO口的相应位,一共有2*2=4种模式,依次为:准双向口;推挽输出;高阻输入;开漏模式

        我们可能看到了上面的描述后仍会比较懵,下面我们来看看简化图片,尝试着理解一下

        通过这张图,我们可以很明显的看到,准双向IO口和推挽输出模式好像仅仅只有接入的电阻大小不一样诶因为推挽输出需要的电流比较大,所以对应的电阻也就比较小;相反的因为准双向IO口需要的电流很小,对应的电阻也就比较大了!
        值得注意的是开漏模式,我们看到在文档的描述中,开漏模式的内部上拉电阻断开了,即内部不能够给这个IO口提供电压,所以一旦需要电压,就需要在IO口外部连接一个上拉电阻,而且这个电阻的阻值是由我们自己来决定的,只需要保证电压和电阻匹配即可

三、单片机的掉电运行模式

       (1) 浅谈cpu运行为什么会需要时钟?

(2)STC15系列单片机内部可以配置时钟

        传统的8051单片机的晶振是固定好的,我们不能修改其频率,最多也只能使用分频策略来改变其时钟频率,但是STC15系列的单片机给了我们这个权利,让我们自主选择时钟频率,这就给了我们更多的创造性

(3)分频策略,降低功耗

        分频的操作就是将频率降低,原来一秒钟震动12次,经过12分频后一秒钟就只震动1次了,可以类比我们生物,动的频率降低了,那么消耗的能力是不是也会减少呢

(4)STC15系列单片机的省电模式

        我们这里为了极大程度上的减少单片机的电流以达到省电的目的,我们会把单片机配置成掉电模式(停机模式),在停机模式下,由于内部的时钟停振,所以在main函数运行到这一句代码的时候就会关闭时钟,让程序停滞在这一行,等到外部中断上升沿或者下降沿触发唤醒的时候,继续从这一行开始执行程序,所以就极大程度的降低了功耗

(于是我们的代码就成了这样)

四、设置不同运行条件IO口的模式,进一步降低功耗

(1) 需要结合硬件设置单片机的GUAN   KAI 端口的IO模式
(2) 电池低压后,需要调整IO的工作模式。
在之前的文章中,我们曾分析过:
        关门时:GUAN引脚为低电平
        开门时:KAI引脚为低电平
但是从原理图中我们看到,关门时,由于VCC和GUAN引脚之间有电压差,所以会形成一个电流,造成功耗的升高,在开门时,GUAN引脚是默认的准双向IO口,与VCC之间没有电压降,所以不会形成电流,于是我们就明白了:
关门时,将GUAN引脚配置成开漏模式,KAI引脚配置成准双向IO口模式
同理:
开门时,KAI引脚配置成开漏模式,GUAN引脚配置成准双向IO口模式

到了这里我们的所有代码就已经完成啦!

  • 14
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
c8051f单片机低功耗系统设计方法探讨.pdf MSP430系列超低功耗16位单片机原理与应用.pdf PHILIPS51LPC 系列单片机低功耗设计.pdf PHILPS76X单片机低功耗设计方法.pdf PIC单片机话远程控制器中的低功耗设计.doc PIC单片机系统低功耗设计方法.pdf 一种PIC单片机低功耗设计方案.pdf 一种单片机系统RAM的低功耗测试方法.pdf 一种基于低功耗单片机的抗干扰l源.pdf 一种基于低功耗单片机的抗干扰源.pdf 低功耗单片机的睡眠抗干扰技术.pdf 低功耗单片机系统外中断扩展技术研究.pdf 便携式智能仪器通用低功耗单片机系统设计.pdf 利用低功耗单片机实现串口软件狗.pdf 单片机低功耗技术及应用7.pdf 单片机低功耗方式应用技巧.pdf 单片机低功耗设计3.pdf 单片机便携式系统的低功耗设计方法.pdf 单片机应用系统中的低功耗设计3.pdf 单片机应用系统的低功耗设0计.pdf 单片机应用系统的低功耗设计(2).pdf 单片机应用系统的低功耗设计.pdf 单片机应用系统的低功耗设计1.pdf 单片机应用系统的低功耗设计8.pdf 单片机应用系统的低功耗设计破.pdf 单片机测控系统的低功耗设计.pdf 单片机系统低功耗设计在数据采集系统中的应用.pdf 单片机系统的低功耗设l计与应用.pdf 单片机系统的低功耗设计与应用.pdf 单片机系统的低功耗设计策略.pdf 单片机系统的低功耗设计策略.pdf 单片机系统的超低功耗设计.pdf 单片机系统设计中低功耗的探讨.pdf 基于80C51系列单片机低功耗便携系统设计.pdf 基于C8051F040单片机的便携式心监护仪的低功耗设计.pdf 基于hym 8563和单片机的低功耗太阳能池自动跟踪系统的设计.pdf 基于hym8563的80c51系列单片机低功耗系统设计.pdf 基于msp430单片机的低功耗rtu设计.pdf 基于MSP430单片机的低功耗流互感器高压端的实现.pdf 基于pic单片机低功耗数据采集系统的设计.pdf 基于PIC单片机的低功耗读卡器硬件设计.pdf 基于PIC单片机的低功耗键盘接口设计.pdf 基于u盘的单片机低功耗海量存储系统.pdf 基于低功耗单片机的智能综合仪表设计.doc 基于单片机唤醒功能的低功耗定时方法.pdf 基于单片机的低功耗温湿度数据采集器的研制2.pdf 基于单片机的低功耗甲烷检测系统设计.pdf 基于单片机的嵌入式系统的低功耗设计问题.pdf 基于单片机视机低功耗待机控制方法.pdf 基于单片机的超低功耗压力检测控制系统设计.pdf 基于超低功耗单片机MSP430F168的家用动态心记录器.pdf 实时多任务机制在低功耗单片机系统中的最小实现.pdf 嵌入式单片机应用系统的低功耗技术.pdf 怎样构成低功耗单片机系统.pdf 新一代超低功耗16位单片机TI MSP430系列.pdf 极低功耗的多功能单片机监控路R5101G.pdf 浅谈低功耗单片机系统的设计.pdf 超低功耗单片机实现智能遥控器设计.pdf
欢迎新手学习,老手指教。 1.使用STC15W408AS。DS1302时钟,闹钟,管码管,掉模式(进入掉模式流<10ua,使用18650供,3.7-5V池也可通用)。 2.详细注释,非常适合新手学习。如: sfr WKTCL = 0xaa; //掉唤醒定时器计时低字节 sfr WKTCH = 0xab; */ //掉唤醒定时器计时高字节 //----------------------------------------------- //sbit P37 = P3^7; //+分。 //sbit P36 = P3^6; //+时。 //sbit P35 = P3^5; //调闹钟。 //sbit P34 = P3^4; //调时间。//-调时间-按P34按P36放P34放P36才能调时间- //sbit P33 = P3^3; //延时18小时。置值65535. //sbit P32 = P3^2; //确认--延时200S。 //sbit P31 = P3^1; //开关闹钟。 sbit TSCLK = P1^5;//时钟线 接到P37上用杜邦线 sbit TIO = P1^6;//数据线,接到P36上 sbit TRST = P1^7;//使能端,接到P35上 //sbit P54 = P5^4;//运行指示灯 //sbit P55 = P5^5; //蜂鸣器。 //------函数声明---------------- void delayms(uint z); //STC15W204S单片机即1MS延时=0.9989MS-11.0592 void qingling(); //P3清零 void Display(uchar Sec, Min);//显示 void Write_DS1302_DAT(uchar cmd, uchar dat);//写DS1302数据 uchar Read_DS1302_DAT(uchar cmd);////读DS1302数据 uchar Dat_Chg_BCD(uchar dat);//数据转BCD码 uchar BCD_Chg_Dat(uchar dat);//BCD码转换为数据 void tiaotime(); //调时间。 uchar duchi();//读一次小时数 uchar dufen();//读分钟数。 ---------------------------------- / ge = ii; //求余-求里面除整数10后的余数 // shi = ii/10; //求模-求里面有多少个整数倍10. -------------------------------- P11 = 0;//点亮第二位数码管 if(Sec1==1) //在调用显示前用求余法确定Sec1是0还是1 { uu=table[Hour]<>1; //再右移一位左补0,即改变第7位变成0。目的显示:两点。 P2 = uu;//显示第二位数。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值