这次休假期间,一直在考虑08年制作的时钟+闹钟+双路测温器的省电问题,这个小制作从08年6月份做好到09年经历过多次升级,为了省电,曾经试过定时休眠的方法,但是收效甚微,也想通过降频达到省电目的,但是一直没有花时间去做,一是要修改硬件,二是软件可能要有大的修改。想起去年年底开始做的数字收音机,到现在也还没完工,虽然软件硬件都设计好了,但是一直没有动手设计电路板,想想都有点脸红,为了不浪费光阴,决定还是先拿这个最早的小制作开刀吧! 这个时钟是用3节镍氢电池供电的,一次充电一般只能工作15天左右,测试其工作电流,达4.5毫安,而据后来对电池容量的测试结果,电池的容量已经只有1000mah了,比额定容量减少了一半还多,这样一计算,工作时间短是在所难免了,电池的容量无法恢复,也不可能拿全新的电池用在这个上头,这样呢就只能在减少电路消耗上动脑筋了。 首先采取的是降频,从原来的12M,降到了4M,软件先不修改,上电后发现除了秒点闪动明显变慢外,其他的工作正常,包括对延时、时序相当严格的DS18B20也一切正常!这一点非常奇怪。接下来开始修改软件,先是将定时器调整为100毫秒中断一次,并修改了相应的中断服务程序块,这个程序块包含了秒点0.5秒闪动及蜂鸣器“滴滴——滴滴”声的控制。这时测试工作电流,只下降了1个毫安,似乎成效不大。 接着试着调整其他的软件结构,看看能否再降点电流,考虑到定时器中断已经改成100毫秒,应该有足够的时间执行显示器的扫描工作,我的这个显示器用的是2线串行段式液晶,照理说应该挺省电的,但是我原来是把显示器的显示功能做在主循环内的,随着程序在不间断的运行,但是作为液晶显示器其实是不需要这样快的扫描的,于是降这个模块放置到了中断内,这时再测试电流,已经下降了2.5毫安,是原来的一半还多,只有1.5~2.0毫安,省电的目的基本达到!照这样的计算,1个旧电池能连续工作1个月了!
|