缐磊 王毓謙
摘 要:本文利用單片機和DS1302時鐘芯片設計一個簡易的時鐘裝置,闡述了該裝置的硬件組成、軟件實現(xiàn)、程序流程圖及程序說明,并在在Protues仿真軟件中進行仿真。仿真結(jié)果表明該電子鐘具有工作可靠、結(jié)構(gòu)簡單的特點,有很大的擴展空間。
關鍵詞:DS1302;Protues;單片機;時鐘
一般情況下,可通過單片機的定時器功能模擬一個簡單的電子時鐘,但是此種方法不僅時間誤差大,耗費單片機的內(nèi)部資源,而且不可保存時間,一旦系統(tǒng)斷電,時鐘及恢復到復位值。本文選用專門的時鐘芯片DS1302,仿真設計結(jié)構(gòu)簡單,調(diào)試方便,成本低,設計開發(fā)周期短,有很大的擴展空間。
1 時鐘芯片DS1304簡介
DS1302是美國 DALLAS公司推出的一種高性能、低功耗、帶RAM的低功耗實時時鐘芯片,它可以對年、月、日、周、日、時、分、秒進行計時,并能夠?qū)γ吭碌奶鞌?shù)和閏年的天數(shù)進行自動調(diào)整,時鐘可以采用24小時制,也可以采用12小時制。DS1302功耗很低,保持數(shù)據(jù)和時鐘信息時功率小于1uW,在沒有電源供電的情況下,可以工作長達10年的時間。
具體各管腳功能如下:X1和X2為晶振接入引腳,接入的晶振為32.768kHz;SCLK為串行時鐘引腳;I/O為數(shù)據(jù)輸入與輸出引腳;CE為復位引腳;VCC1和VCC2為點源供電引腳,且VCC1為主電源,VCC2為備份點源,當VCC2>VCC1+0.2V時,由VCC2向DS1302供電,否則由VCC1供電。DS1302與單片機等微處理器接口時,可以采用簡單的同步串行工作方式,僅需要三個口線與單片機相連:1)CE管腳、2)I/O管腳、3)串行時鐘SCLK管腳。
DS1302內(nèi)部有12個寄存器,其中有7個寄存器與日歷、時鐘相關,存放的數(shù)據(jù)位為BCD碼,其日歷、時間寄存器及其控制字如表1所示。
此外DS1302內(nèi)部還有年份寄存器、控制寄存器、充電寄存器、時鐘突發(fā)寄存器及與RAM相關的寄存器等。對于開發(fā)者來說,主要使用DS1302內(nèi)部的這12個寄存器。如果在開發(fā)系統(tǒng)中,微處理器的RAM空間不夠等也可以使用DS1302內(nèi)部的RAM空間。DS1302內(nèi)部還有31RAM單元,每個單元為8位。31個單元對應著62個命令控制字:C0H~FDH,共62個,其中奇數(shù)為讀操作,偶數(shù)為寫操作。當然,也可以一次性地讀寫這31個單元,命令控制字分別為FEH(寫)、FFH(讀),這種方式稱為突發(fā)方式。
2 DS1302的讀寫時序
對DS1302進行讀寫操作時,數(shù)據(jù)總是從最低位開始傳動,通過一個SCLK時鐘的下降/上升沿該位數(shù)據(jù)寫入芯片,整個過程中控制器一直主導著時序,而時鐘芯片則處于被動狀態(tài)。
DS1302寫1位邏輯電平值的步驟為:
①控制器拉高RST引腳,引入邏輯控制模式;
②控制器清零時鐘線SCLK;
③將需要寫入的數(shù)據(jù)置于數(shù)據(jù)線I/O上;
④控制器拉高時鐘線SCLK,形成一個時鐘上升沿,則DS1302讀入I/O引腳上的電平值,從而完成了1位邏輯電平的寫操作;
DS1302讀1位邏輯電平值的步驟為:
①控制器拉高CE引腳,進入邏輯控制模式;
②控制器拉高時鐘線SCLK,此時DS1302將1位數(shù)據(jù)置于數(shù)據(jù)線I/O上;
③將I/O引腳的電平值讀入控制器內(nèi)部寄存器暫存;
④控制器拉低時鐘線SCLK,形成一個時鐘下降沿,則控制器完成對I/O引腳上的電平值的讀取,從而完成了1位邏輯電平的讀操作。
3 硬件設計
實現(xiàn)DS1302時鐘功能的主體原件是AT89C51單片機,需在Protues電路窗口中繪制所示的單片機DS1302時鐘仿真電路圖。
4 軟件設計
系統(tǒng)通過串行讀寫DS1302時鐘芯片,完成時鐘信息顯示。采用8位的數(shù)碼管顯示時間或日期,數(shù)碼管的位選通過譯碼器選擇;時鐘芯片與單片機三線相連,對時鐘操作分讀寫字節(jié)、讀寫命令和初始化等部分實現(xiàn)。讀者可根據(jù)實際情況自行編寫代碼,本程序源代碼不詳細說明。
5 仿真運行
在電路圖中選中AT89C51并單擊,打開“Edit Component”對話窗口,在“Program File”欄中,選擇用keil生成的“.HEX”文件,單擊Protues ISIS界面左下角開始按鈕,進入程序調(diào)試狀態(tài),結(jié)果如圖4所示。
6 結(jié)語
在本項目中,設計了基于DS1302時鐘芯片的時鐘,可以看出,該系統(tǒng)結(jié)構(gòu)簡單,成本低,運行穩(wěn)定精確。另外可以考慮增加按鍵,即增加按鍵用來調(diào)整時間和日期,這需要用到DS1302的寫時序,其操作過程和讀時序非常類似,可見其具有很大的擴展空間。
參考文獻
[1]李偉躍.基于時鐘芯片DS1302的萬年歷的設計[J].科技創(chuàng)新導報,2012(09):20-21.
[2]李芝浩,朱爾隆.基于protues仿真的自動售貨機的實現(xiàn)[J].電子技術與軟件工程,2014(16):147
[3]劉春燕,晁勤,袁鐵江,魏麗麗.多功能數(shù)字萬年歷的設計[J].自動化應用,2013(01):39-41.
[4]李秀麗,雷晨,孫藝玫,徐倩.基于Protues的GPS守時授時時鐘裝置的設計與仿真[J].防災減災學報,2011,27(01):74-78.
[5]曲立國,黃友銳,唐超禮,徐善永.Protues在電子課程設計中的應用[J].科技視界,2012(14):96-98.
[6]田清華.單片機流水燈的Protues仿真[J].科技傳播,2013,5(06):202-203.
作者簡介
缐磊(1998-),男,漢,河南省南陽市臥龍區(qū)人,本科在讀,鄭州大學 過程裝備與控制工程。
王毓謙(1997-),男,漢,黑龍江省齊齊哈爾市人,本科在讀,鄭州大學 過程裝備與控制工程。