在許多特殊場(chǎng)合,如野外、無(wú)人值守的監測站、井下、空中等,單片機系統往往只能采用電池供電。因此,如何最大限度地降低系統的功耗成了人們十分關(guān)注的問(wèn)題。在多數情況下,單片機并不需要連續工作,例如定時(shí)采樣系統及監視系統等,其時(shí)間間隔有時(shí)長(cháng)達數分鐘到數天。因此,筆者采用I?2C實(shí)時(shí)時(shí)鐘芯片HYM8563與89C51設計了一種低功耗系統。 1 實(shí)時(shí)時(shí)鐘HYM8563 HYM8563是一款由武漢昊昱微電子有限公司生產(chǎn)的低功耗CMOS串行I2C實(shí)時(shí)時(shí)鐘/日歷芯片,圖1為其內部結構方框圖,圖2為其管腳定義和典型應用的接線(xiàn)圖,表1為各管腳功能。 HYM8563提供可編程的時(shí)鐘輸出、定時(shí)器、報警器、中斷輸出和掉電檢測器,所有的地址和數據都通過(guò)I2C總線(xiàn)接口串行傳遞。最大總線(xiàn)速度為400kbits/s,工作電壓范圍為1.0~5.5V,休眠電流的典型值為0.25μA。由于HYM8563的中斷輸出及時(shí)鐘輸出均為開(kāi)漏輸出,所以要外接上拉電阻(圖2)。 HYM8563內部有16個(gè)可尋址的8位并行寄存器(參見(jiàn)表2),前兩個(gè)寄存器用作控制寄存器和狀態(tài)寄存器,02H~08H用于時(shí)鐘計數器(秒到年計數器),09H~0CH用于報警寄存器(定義報警條件),0DH用于控制CLKOUT管腳的輸出頻率,0EH和0FH分別用作定時(shí)器控制寄存器和定時(shí)器寄存器。秒、分鐘、小時(shí)、日、月、年、分鐘報警、小時(shí)報警、日報警寄存器的編碼格式為BCD 碼,星期和星期報警寄存器不以BCD格式編碼。 0FH為倒計數定時(shí)器寄存器,受定時(shí)器控制寄存器(0EH)控制,TD1、TD0用于設定定時(shí)器的頻率(4096Hz,64Hz,1Hz或1/60Hz),這樣可以設定不同時(shí)間間隔的定時(shí)值。TE設定定時(shí)器開(kāi)或關(guān)。當倒計數值計為0時(shí)TF位置1。 TIE=1為定時(shí)中斷允許控制位,TI/TP=0為中斷信號低電平/脈沖方式選擇。 HYM8563共有四種報警方式,分別為小時(shí)報警(每小時(shí)的同一分鐘時(shí)刻報警)、日報警(每天的同一小時(shí)時(shí)刻報警)、月報警(每月的同一天時(shí)刻報警)和星期報警(每星期的同一天時(shí)刻報警)。HYM8563可在一個(gè)或多個(gè)報警寄存器寫(xiě)入合法的分鐘、小時(shí)、日或星期數值并將它們相應的AE(Alarm Enable)位置0,當這些數值與當前的分鐘、小時(shí)、日或星期數值相等,發(fā)生報警,標志位AF被置1。 若要使HYM8563每隔一定時(shí)間產(chǎn)生一次中斷,則可使用定時(shí)器。置TE=0,在0EH中設定定時(shí)器的頻率,在0FH中置入定時(shí)間隔。同時(shí)設定TIE=1,TI/TP=0,這樣,當報警器報警(或定時(shí)器倒計數結束)時(shí),將設置中斷申請標志位AF(或TF),并在 腳產(chǎn)生一個(gè)低電平作為中斷信號。中斷申請標志位AF和TF只能用軟件清除。當讀定時(shí)器時(shí),返回當前倒計數的數值。 HYM8563采用的是串行I2C總線(xiàn)接口,通過(guò)兩條線(xiàn)SDA和SCL在不同的芯片和模塊間傳遞信息。SDA為串行數據線(xiàn),SCL為串行時(shí)鐘線(xiàn),兩條線(xiàn)都必須用上拉電阻與正電源相連。數據只在總線(xiàn)不忙時(shí)才可傳送。 2 單片機控制電路 單片機可選用低損耗、高性能、CMOS八位微處理器80C51系列(圖中以AT89C52為例)。HYM8563的SDA和SCL與89C52的2個(gè)引腳連接,通過(guò)編程進(jìn)行I2C通信。R1、R2、R3為上拉電阻,S1為手動(dòng)復位開(kāi)關(guān),S2為允許喚醒單片機的按鍵。如有多個(gè)被允許的喚醒按鍵,可用多輸入端與門(mén)相與。HYM8563的 腳與允許的喚醒按鍵相與后連接到IC3A。IC3A(74LS123)為單穩態(tài)觸發(fā)器,只要A腳有一低電平信號(邊沿觸發(fā))輸入,就會(huì )在Q端產(chǎn)生一高電平輸出,高電平的寬度由R6和C5決定。當喚醒按鍵按下時(shí),或者HYM8563警報器、定時(shí)器引起腳產(chǎn)生低電平時(shí),都會(huì )在IC4A的輸出端產(chǎn)生低電平。該低電平觸發(fā)IC3A產(chǎn)生具有一定寬度的高電平,最終引起單片機復位,喚醒進(jìn)入掉電的單片機。 3 軟件部分的設計 圖3為系統電路圖。 圖4是主程序框圖。 由于單片機復位時(shí),其電源引腳的電壓仍然保持不變,故單片機的片內RAM的內容不會(huì )丟失。因此我們可以通過(guò)軟件置片內某一RAM(如30H)為某一特定值來(lái)區分是電源第一次通電時(shí)的啟動(dòng)復位還是由HYM8563和喚醒按鍵引起的復位。若是由HYM8563中的報警器報警或定時(shí)器定時(shí)時(shí)間到引起的復位,我們可以通過(guò)訪(fǎng)問(wèn)HYM8563中01H,判斷AF或TF是否為1來(lái)判斷是何種原因引起的中斷,并進(jìn)行相應的處理。另外,一般按鍵時(shí)間都比較長(cháng),故單片機在復位后仍可通過(guò)掃描鍵盤(pán)來(lái)判斷是否有喚醒按鍵按下并進(jìn)行鍵處理。之后必須置HYM8563的AF或TF為0,TI/P=0,并設置選用報警器或定時(shí)器及相關(guān)值,以便HYM8563進(jìn)行下次中斷。89C52在處理完有關(guān)程序后,進(jìn)入掉電狀態(tài),等待下一次復位。 4 結論 以上介紹了應用實(shí)時(shí)時(shí)鐘芯片HYM8563構成低功耗單片機應用系統的方法,HYM8563只占用了單片機的2根引腳,尚有30根I/O引腳可以根據實(shí)際的需要在系統中擴展接口電路。這種系統的節電效果與掉電時(shí)間的長(cháng)短有關(guān),時(shí)間越長(cháng),效果越顯著(zhù)。 |