这段时间,正在搞单片机睡眠功能,可把我给搞得睡不着。过年都天天惦记着,最后才发现,原来不是程序没编好,是芯片太娇气,气温低了不工作。我晕,,不开空调它还给我闹情绪,得,,我不是玩单片机的,是单片机玩我。。。我的祖宗哟。。。。。单片机型号:EM78P153 8脚 民用级
产地:台湾
要求:5V电压时,睡眠功能开启,进入休眠状态,功耗要求1uA以下,这样就可以相当省电,有多省电呢,打个比方吧,普通5号电池600mA,如果用来休眠的话,600mA/0.001mA=600000小时也就是25000天,也就是68.5年。。哈哈强吧。
但在实际操作过程中,我做好后,就是不肯好好睡,刚焊上去吧,电流是1uA以下的,0.3uA,过了一会,就50uA了,东搞西搞就是搞不好。用烙铁给芯片加加温就好了。或者电压降下去到3.5V以下就行了。后来搞来搞去,换一个品牌的芯片就可以了。查了好多资料才发现,这个芯片民用级的温度在0-70度,而且理想状态是25度室温下。。没办法,,只有换一个单片机了。
现在把这个单片机睡眠的东西呀给归纳一下 :
1、单片机在要进入睡眠时,端口要求:输入口内部上拉(这样省电,外部上拉耗电大),输出口不能上拉下拉,直接输出低电平(不用电的状态,如果你是低电平时有输出,当然要设为高电平啦,总而言之就是不用电的状态,而且输出口不输出的状态最省电),多余的不用的端口可以设为输出,输出低电平对地或输出高电平与VDD连。输入口的话,要有稳定的状态,要不然经常有输入信号,就睡不着了。
2、在单片机烧写时,看门狗选项要设为ENABLE。要不然睡不着,没狗看门嘛,睡不踏实哈哈。
3、在程序里,睡眠时,如果看门狗开着,会耗电,10uA,不使能看门狗就会省掉这10uA
4、EM78P153这个芯片,在温度低于20度时,耗电量会上升,电压高于3.5V时也会上升。这个上升相对于睡眠时1uA而言。
5、端口内部上拉时,外部接低电压,就会有耗电量,端口内部下拉时,外部接高电压,也会有耗电量。
6、下面是睡眠的相关程序。可以借鉴一下
;******************************************************************;
; TILTE: EM78P153S PIN CHANGE WAKEUP IC ;
; FUNCTION: EM78P153S PIN CHANGE WAKEUP IC ;
; DESCRIPTION: USER CAN SELECT CONTINUING OR JUMPPING INTERRUPT ;
; AFTER WAKEUP
; COMPANY: ELAN MICROELECTRONICS (SZ) LTD. ;
;******************************************************************;
/*
A:CONTINUE AFTER WAKEUP
STEPS:
1.SET WAKEUP PIN
2.PRESCALER TO WDT,WDTC
3.DISABLE WDT
4.READ IO PORT
5.DISI
6.ENABLE INTERRUPT (SET IOCF.1)
7.SLEP
*/
;======================================================
INCLUDE "D:\HEADFILE\EM78P153\EM78153.INC"
;======================================================
ORG 0x00
JMP INITIAL
ORG 0x50
;------------------------------------------------------
INITIAL:
MOV A,@0x80 ;P6.7 INPUT
IOW IOC6
MOV A,@0x7F
IOW PHCR ;P6.7 PULLHIGH
MOV A,@0x0F ;PRESCALER TO WDT
CONTW
WDTC
MOV A,@0x00 ;WDT DISABLE
IOW IOCE
MOV POR6,PORT6 ;READ P6
DISI
MOV A,@0x02 ;ENABLE INTERRUPT BIT
IOW IMR
SLEP
NOP
MOV A,@0x00 ;WDT DISABLE
IOW 0x0E
NOP
JMP $
附件里的这个单片机关于睡眠的中文资料说明。有兴趣的可以下来看下。 |