這次休假期間,一直在考慮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個月了!
|