如何进一步降低PIC单片机的功耗

2019-12-04来源: eefocus关键字:PIC单片机  功耗  低速状态

由美国Microchip公司生产的PIC系列单片机,由于其超小型、低功耗、低成本、多品种等特点,已广泛应用于工业控制、仪器、仪表、通信、家电、玩具等领域。


功耗,在电池供电的仪器仪表中是一个重要的考虑因素。PIC16C××系列单片机本身的功耗较低(在5V,4MHz振荡频率时工作电流小于 2mA)。为进一步降低功耗,在保证满足工作要求的前提下,可采用降低工作频率的方法,工作频率的下降可大大降低功耗(如PIC16C××在 3V,32kHz下工作,其电流可减小到15μA),但较低的工作频率可能导致部分子程序(如数学计算)需占用较多的时间。在这种情况下,当单片机的振荡 方式采用RC电路形式时,可以采用中途提高工作频率的办法来解决。


具体做法是在闲置的一个I/O脚(如RB1)和OSC1管脚之间跨接一电阻(R1)。低速状态置RB1=0。需进行快速运算时先置 RB1=1,由于充电时,电容电压上升得快,工作频率增高,运算时间减少,运算结束又置RB1=0,进入低速、低功耗状态。工作频率的变化量依R1的阻值 而定(注意R1不能选得太小,以防振荡电路不起振,一般选取大于5kΩ)。


另外,进一步降低功耗可充分利用“sleep”指令。执行“sleep”指令,机器处于睡眠状态,功耗为几个微安。程序不仅可在待命状态使用 “sleep”指令来等待事件,也可在延时程序里使用。在延时程序中使用“sleep”指令降低功耗是一个方面,同时,即使是关中断状 态,Port B端口电平的变化可唤醒“sleep”,提前结束延时程序。这一点在一些应用场合特别有用。同时注意在使用“sleep”时要处理好与WDT、中断的关 系。


如何进一步降低PIC单片机的功耗

Delay() Delay

{;此行可加开关中断指令

/*此行可加开关中断指令*/ movlw.10

for (i=0; i《=10; i++) movwf Counter

SLEEP(); Loop1

} Sleep

decfsz Counter

goto Loop1

return 2注意INTCON中的RBIF位

INTCON中的各中断允许位对中断状态位并无影响。当PORT B配置成输入方式时,RB《7:4》引脚输入在每个读操作周期被抽样并与旧的锁存值比较,一旦不同就产生一个高电平,置RBIF=1。在开 RB中断前,也许RBIF已置“1”,所以在开RB中断时应先清RBIF位,以免受RBIF原值的影响,同时在中断处理完成后最好是清RBIF位。3用 Mplab-C高级语言写PIC单片机程序时要注意的问题3.1程序中嵌入汇编指令时注意书写格式见例3。


例3

while(1) {#asm while(1) {

……#asm /*应另起一行*/

#endasm……

}/*不能正确编译*/ #endasm

……}/*编译通过*/

……

当内嵌汇编指令时,从“#asm”到“endasm”每条指令都必须各占一行,否则编译时会出错。3.2加法、乘法的最安全的表示方法见例4。

例4

#include《16c71.h》

#include

unsigned int a, b;

unsigned long c;

void main()

{ a=200;

b=2;

c=a*b;

} /*得不到正确的结果c=400*/

原因是Mplab-C以8×8乘法方式来编译c=a*b,返回单字节结果给c,结果的溢出被忽略。改上例中的“c=a*b;”表达式为“c=a;c=c*b;”,最为安全(对加法的处理同上)。


了解乘除法函数对寄存器的占用

由于PIC片内RAM仅几十个字节,空间特别宝贵,而Mplab-C编译器对RAM地址具有不释放性,即一个变量使用的地址不能再分配给其它变 量。如RAM空间不能满足太多变量的要求,一些变量只能由用户强制分配相同的RAM空间交替使用。而Mplab-C中的乘除法函数需借用RAM空间来存放 中间结果,所以如果乘除法函数占用的RAM与用户变量的地址重叠时,就会导致出现不可预测的结果。如果C程序中用到乘除法运算,最好先通过程序机器码的反 汇编代码(包含在生成的LST文件中)查看乘除法占用地址是否与其它变量地址有冲突,以免程序跑飞。Mplab-C手册并没有给出其乘除法函数对具体 RAM地址的占用情况。例5是乘法函数对0×13、0×14、0×19、0×1A地址占用情况。


例5

部分反汇编代码

#include 01A7 081F MOVF 1F,W

#include 01A8 0093 MOVWF 13

;借用

unsigned long Value @0x1 01A9 0820 MOVF 20,W

char Xm @0x2d; 01AA 0094 MOVWF 14

;借用

void main() 01AB 082D MOVF 2D,W

{Value=20; 01AC 0099 MOVWF 19

;借用

Xm=40; 01AD 019A CLRF1A

;借用

Value=Value*Xm 01AE 235F CALL 035Fh

;调用乘法函数

……01AF 1283 BCF 03,5

} 01B0 009F MOVWF 1F

;返回结果低字节

01B1 0804 MOVF 04,W

01B2 00A0 MOVWF 20

;返回结果高字节4对芯片重复编程


对无硬件仿真器的用户,总是选用带EPROM的芯片来调试程序。每更改一次程序,都是将原来的内容先擦除,再编程,其过程浪费了相当多的时间, 又缩短了芯片的使用寿命。如果后一次编程的结果较前一次,仅是对应的机器码字节的相同位由“1”变成“0”,就可在前一次编程芯片上再次写入数据,而不必 擦除原片内容。


在程序的调试过程中,经常遇到常数的调整,如常数的改变能保证对应位由“1”变“0”,都可在原片内容的基础继续编程。另外,由于指令“NOP”对应的机器码为“00”,调试过程中指令的删除,先用“NOP”指令替代,编译后也可在原片内容上继续编程。


另外,在对带EPROM的芯片编程时,特别注意程序保密状态位。厂家对新一代带EPROM芯片的保密状态位已由原来的EPROM可擦型改为了熔 丝型,一旦程序代码保密熔丝编程为“0”,可重复编程的EPROM芯片就无法再次编程了。

关键字:PIC单片机  功耗  低速状态 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic481947.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:基于PIC单片机的多功能厨房控制系统设计
下一篇:基于PIC单片机的无线通讯模块测试板设计

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

PIC单片机以及51单片机和AVR单片机的IO口操作方法介绍
对于pic单片机的学习,很多朋友总是能充满激情,不断利用闲余时间研究pic单片机的各类技术。而谈及pic单片机,必须牵扯至51、AVR单片机。因此本文中,将探讨pic单片机以及51、AVR单片机对于IO口的操作。对于本文,希望大家认真研读,以在pic单片机的学习之路上更为精进。一.51单片机IO口的操作51单片机IO口的结构比较简单,每个IO口只有一个IO口寄存器Px,而且这个寄存器可以位寻址,操作起来是所有单片机里最简单的,可以直接进行总线操作也可以直接进行位操作,这也是51单片机之所以成为经典的原因之一。下例的运行坏境为Keil软件,器件为AT89S52。#i ncludesbit bv=P2^0;//定义位变量,关联P2.0
发表于 2019-12-05
PIC单片机以及51单片机和AVR单片机的IO口操作方法介绍
PIC单片机的类型以及特征介绍
对于pic单片机,大家或多或少均有所耳闻。但是,大家对pic单片机有多少了解呢?是否熟知不同类型的pic单片机呢?由美国Microchip公司推出的PIC单片机系列产品,首先采用了RISC结构的嵌入式微控制器,其高速度、低电压、低功耗、大电流LCD驱动能力和低价位OTP技术等都体现出单片机产业的新趋势。现在PIC系列单片机在世界单片机市场的份额排名中已逐年升位,尤其在8位单片机市场,据称已从1990年的第20位上升到目前的第二位。PIC单片机从覆盖市场出发,已有三种(又称三层次)系列多种型号的产品问世,所以在全球都可以看到PIC单片机从电脑的外设、家电控制、电讯通信、智能仪器、汽车电子到金融电子各个领域的广泛应用。现今
发表于 2019-12-05
PIC单片机的类型以及特征介绍
PIC单片机和51单片机谁更容易于学习
pic单片机是当前最实用工具之一,而对于pic单片机的探讨往往与其他类型单片机相联系。51好学一些,但是PIC也没比51难多少。首先,PIC比51多个配置位,这个基本上看看就懂了。然后,PIC的端口要配置成输入或者输出,51单片机则不用。PIC的中断没有优先级,需要软件判断。最后,PIC比51多许多寄存器,你要使用PIC的各种功能,都需要去初始化寄存器。再说说PIC相比与51单片机有哪些优点:1:相同的晶振情况下,PIC比51速度快,PIC4个时钟周期为一个指令周期,51是12个。2:PIC比51功能强大许多,比如自带AD转换,自带PWM,内置弱上拉(需设置)LCD接口等。。这样,你在用到许多功能的时候就很方便啦,不用
发表于 2019-12-05
PIC单片机和51单片机谁更容易于学习
PIC单片机相比其他单片机的四大优势介绍
本人从事单片机应用系统的开发已有多年,使用过多种型号的PIC单片机,深感PIC单片机使用起来确实很方便:1、 PIC单片机采用精简指令集,中档产品仅需35条指令,入门门槛低,而在使用过程中绝不会感到不方便。2、PIC单片机的数据线和指令线各自独立,代码效率高,是传统51系列单片机的2-3倍,除几个跳转类指令外均为单周期指令,在计算延时时间时非常方便。 3、PIC单片机外围接口十分丰富,能满足绝大部分应用系统的需求;比如PIC16F877A包含8路ADC,1个CCP、PWM、USART、SSP、I2C/SPI,3个定时/计数器,1个硬件WDT等接口,8K FLASH程序存储器、256字节EEPROM,能满足较复杂测控系统
发表于 2019-12-05
PIC单片机相比其他单片机的四大优势介绍
PIC单片机的基本程序设计方法解析
PIC单片机(Peripheral Interface Controller)是一种用来开发去控制外围设备的集成电路(IC)。一种具有分散作用(多任务)功能的CPU。本内容讲述了PIC单片机中的程序设计方面的学习1、PIC单片机程序的基本格式先介绍二条伪指令:EQU ——标号赋值伪指令ORG ——地址定义伪指令PIC16C5X单片机在RESET后指令计算器PC被置为全“1”,所以PIC16C5X几种型号芯片的复位地址为:PIC16C54/55:1FFHPIC16C56:3FFHPIC16C57/58:7FFH一般来说,PIC单片机的源程序并没有要求统一的格式,大家可以根据自己的风格来编写。但这里我们推荐一种清晰明了的格式供参考
发表于 2019-12-05
PIC单片机的基本程序设计方法解析
基于PIC单片机的无线通讯模块测试板设计
侦测DQD、电池电压侦测、AFC和微控制器等,非常适合用于短距离无线通讯产品。本文介绍了贝能科技采用IA4421芯片开发的两种无线通讯模块PHY和EV-IA4421-433M-3(如图1,图2)。PHY模块是不带MCU而向外提供一个SPI接口;EV-IA4421模块是带MCU并向外提供一个串口。这样可以方便用户使用和开发。图1 PHY图2 EV-IA4421针对这两种模块,我们设计了一个适用这两种模块的测试评估板。该 测试板 可以对这两个模块进行设置(主要对IAI4421寄存器设置),这样方便客户评估,测试IA系列产品的的性能。基本概述:该测试板的组成采用PIC单片机PIC16F777作为主控芯片;一个LCD1602作为显示器件
发表于 2019-12-04
基于PIC单片机的无线通讯模块测试板设计
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 EEWORLD.com.cn, Inc. All rights reserved