駱定輝
(臺州市環科環保設備運營維護有限公司 318000)
DS1302 是美國DALLAS公司推出的一種高性能、低功耗、帶RAM的實時時鐘電路,它可以對年、月、日、周日、時、分、秒進行計時,具有閏年補償功能,工作電壓為2.5V~5.5V。采用三線接口與CPU進行同步通信,并可采用突發方式一次傳送多個字節的時鐘信號或RAM數據。DS1302內部有一個31×8的用于臨時性存放數據的RAM寄存器。DS1302是DS1202的升級產品,與DS1202兼容,但增加了主電源/后背電源雙電源引腳,同時提供了對后背電源進行涓細電流充電的能力。
DS1302的引腳排列,其中Vcc1為后備電源,VCC2為主電源。在主電源關閉的情況下,也能保持時鐘的連續運行。DS1302由Vcc1或Vcc2兩者中的較大者供電。當Vcc2大于Vcc1+0.2V時,Vcc2給DS1302供電。當Vcc2小于Vcc1時,DS1302由Vcc1供電。X1和X2是振蕩源,外接32.768kHz晶振。RST是復位/片選線,通過把RST輸入驅動置高電平來啟動所有的數據傳送。RST輸入有兩種功能:首先,RST接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,RST提供終止單字節或多字節數據的傳送手段。當RST為高電平時,所有的數據傳送被初始化,允許對DS1302進行操作。如果在傳送過程中RST置為低電平,則會終止此次數據傳送,I/O引腳變為高阻態。上電運行時,在Vcc≥2.5V之前,RST必須保持低電平。只有在SCLK為低電平時,才能將RST置為高電平。I/O為串行數據輸入輸出端(雙向),后面有詳細說明。SCLK為時鐘輸入端。圖1為DS1302的引腳功能圖

圖1 DS1302的引腳
從2001年開始各地方環境保護部門開始安裝重點企業污染源在線系統,到2007年環保部開始大范圍安裝重點企業污染源在線系統,污染源在線系統具有實時監控企業排放廢氣或廢水的各項指標,協助環保部門對企業排污的監管。但是系統運行需要電源且由企業提供。當企業排污未達標甚至明知超標仍要排放時,就會采取將系統電源關閉來躲避監測系統的檢測。由于企業數量巨大,無法對關電行為進行實時執法。現設計一款電源運行記錄儀,記錄在線系統的斷電時間以及來電時間,具備現場查看功能。協助環保部門對非法停電的行為進行監督。
系統的主要功能是檢測現場的有無電源,并記錄下現場每次電源變化的時間及狀態,電源變化的時間由計時器提供,狀態分為斷電和來電兩種。難點為系統必須在現場無電源時長時間工作。因為系統由單片機AT89C52、儲存芯片、及顯示部分組成,功耗大,即使采用外置電源也無法保證長時間監測運行。
綜上所述,本系統選擇計時芯片DS1302,利用DS1302的主電源/后背電源的雙電源功能,安裝3V電池作為后備電源,只供DS1302芯片來計時,無需供應單片機及其附屬電路,那運行功耗得到大幅度降低,當現場有電源時,停止電池供電以確保長時間測量。
利用DS1302系統斷電時可以以后備電源供電的優點,保持時鐘不會因為系統斷電而中止計時,同時利用DS1302內部的31個用于臨時性存放數據的RAM寄存器。存放AT24C256的數據地址,當來電時能讓單片機將數據準確的存入AT24C256的相應地址中,而不會造成覆蓋以前的數據。存放完整的數據以便系統來電時可以查看。
本系統以單片機AT89C52采集電源狀態以及按鍵的輸入,儲存采集數據,處理并顯示。計時芯片DS1302用于計時并向單片機提供準確時間。顯示HD7279用于顯示,AT24C256用于歷史數據的儲存。
系統的電源部分采用延時設計,當斷電情況發生后,電源可以短時間繼續供電,K3由主電源控制,斷電時閉合,在電源短時間供電的情況下記錄下斷電信息。主要電路圖如下圖。

圖2 系統電路圖
程序設計采用DS1302不斷電的特性,將AT24C256的數據地址存儲在DS1302的RAM寄存器中,可以在系統每次斷電恢復時知道上次斷電時儲存的數據在哪個位置,來電的記錄存放于這個地址。
系統初次使用時,對DS1302進行初始化,初始化包括賦值時間和清空RAM寄存器數據,在今后的斷電和恢復過程中不再對時間進行初始化。當系統初次開啟或由斷電情況恢復時,讀取DS1302中的分數據、小時數據、日期數據、月數據、年數據以及來電標志數據,共6個字節,再讀取C1、C3的數據作為AT24C256的最后存放地址,將6個字節依次存放于地址為0000H~0005H的存儲器中。再將0005H+1覆蓋于DS1302的兩個寄存器中。由K3的閉合標志斷電情況的發生,此時,再次讀取DS1302中的分數據、小時數據、日期數據、月數據、年數據以及斷電標志數據,存放于地址為0006H~000BH的存儲器中。再將地址+1覆蓋于DS1302的兩個寄存器中。為防止因為延時電源時間不可控的情況下多次寫入斷電信息,在單片機初始化中設標志位數值為0,當標志位為0時,可寫入斷電信息,寫入一次斷電信息后,標志位變為1,不可再次寫入斷電信息,只有斷電初始化后方可再次寫入。
當電源情況正常時。秒數據、分數據、小時數據與日期數據、月數據、年數據以20S為周期進行循環送入顯示芯片進行顯示。當K1按下時,讀取DS1302的存儲器地址并-3,將月數據、年數據以及來電或斷電標志數據送入顯示,再按一下,存儲器地址再-3,將分數據、小時數據、日期數據送入顯示。依此類推,如果30S內K1無動作將返回待機畫面顯示實時時間。
因為AT24C256芯片的儲存空間為512頁,每頁64個字節,地址區間為0000H~7FFFH,實際有效地址位為15位,低6位表示字節,高9位表示頁碼。當寫頁操作寫入一個數據字節后,微控制器不發停止狀態,而是在應答信號后接著輸入63 個字節。每一個字節接收完畢后,EEPROM 照樣輸出一個零應答信號。因為一頁只有64 個單元,所以數據字的地址低6 位在接收到一個字節后會自動加l,而高位地址不變,即頁地址不變。若內部產生的地址達到了頁的邊界時,系統將回到頁的開始進行寫。如果一次要寫的字節大于64字節,則最早寫入的字節將被覆蓋。所以本系統采用寫字節操作。程序流程圖如圖3。

圖3 程序流程圖
本系統的試驗后,功能基本達到,系統充分利用了DS1302的后備電源的功能,不光是時鐘走時與外接電源無關,自帶的寄存器也可以長時間保持數據,利用DS1302的寄存器儲存AT24C256的地址,可以忽略AT24C256的地址低6 位在接收到一個字節后會自動加l,而高位地址不變造成的系統將回到頁的開始進行寫的缺點。以保證系統可以正常日常監控企業的電源供給情況,并且可以隨時查看歷史斷電和來電的記錄。
[1] 王立文,肖理慶.利用DS1302存儲數據的一種高效方法.[J] .現代電子技術,2008(24).
[2] 周巧娣,劉敬彪.AT24C256 在單片機系統中的應用.[J].國外 電子元器件,2003(2).