摘要:本論文(設計)采用STC89C52單片機和DS1302實時時鐘芯片為主要器件設計的實時時鐘系統。能夠準確的顯示實時時間、日期、星期。通過8位低功耗數碼管將時間信息顯示出來,數碼管由單片機直接驅動,無需其他驅動芯片,通過按鍵切換顯示時間、日期、星期、鬧鐘等信息。系統設計有鬧鐘報警功能,當實時時間到達鬧鐘設計時間時,鬧鐘就會蜂鳴器報警,報警時間可通過按鍵自行設定。DS1302芯片配備有備用電池,可確保即便時掉電的情況下也能繼續走時,無需人工重新設定時間。
關鍵詞:單片機;DS1302;實時時鐘;
DS1302實時時鐘的設計
一、課題要求
1.用DS1302時鐘芯片設計實時時鐘
2.顯示電路采用8位共陽LED數碼管;
3.可以做到計時準確;
4. 通過按鈕對實時時鐘時間進化設置,使時鐘正常運行。
二、方案設計與論證
按照系統設計功能的要求,確定由主控模塊、時鐘模塊、顯示模塊、鍵盤接口模塊、發聲模塊共5個模塊組成。主控芯片使用AT89C52單片機,時鐘芯片使用美國DALLAS公司推出的一種高性能、低功耗、帶RAM的實時時鐘DS1302。采用DS1302作為計時芯片,可以做到計時準確,更重要的是,DS1302可以在電流很小的后備電源(2.5~5.5 V電源,在2.5 V時耗電小于300 nA)下繼續計時,而且DS1302可以編程選擇多種充電電流來對后備電源進行慢速充電,可以保證后備電源基本不耗電。顯示電路采用8位共陽LED數碼管,采用查詢法查鍵實現功能調整。

圖示 時鐘芯片DS132設計時鐘
DS1302實時時鐘的Proteus硬件仿真電路如圖所示。時鐘芯片的晶振頻率為32.768 kHz,3個數據、時鐘、片選口可不接上拉電阻;LED數碼管采用動態掃描方式顯示,PO口為段碼輸出口,P2口為掃描驅動口,掃描驅動信號經74HC244功率放大用作LED點亮電源:調時按鍵設計了2個,分別接在P3.5口和P3.6口,用于設定及加1調整;P3.7口連接了一個蜂鳴器,用于按鍵發聲提醒。

DS1302實時時鐘的Proteus硬件仿真電路圖(仿真前)
1.DS1302模塊

DS1302引腳圖
圖示為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進行操作。如果在傳送過程中RSTS置為低電平,則會終止此次數據傳送,I/O引腳變為高阻態。上電運行時,在Vcc大于等于2.5V之前,RST必須保持低電平。只有在SCLK 為低電平時,才能將RST置為高電平,I/O為串行數據輸入端(雙向)。SCLK始終是輸入端。
2.單片機最小系統

3.時鐘電路設計
DS1302是DALLAS公司推出的一種高性能、低功耗、帶RAM的實時時鐘芯片,它可以對年、月、日、星期、時、分、秒進行計時,且具有閏年補償功能,工作電壓為2.5~5.5V。DS1302采用三線接口,與CPU進行同步通信,并可采用突發方式一次傳送多個字節的時間數據或RAM數據。DS1302內部有一個31X8的用于臨時性存放數據的RAM存儲器。時鐘設計電路圖如圖所示。

DS1302時鐘電路
4.AT89C52引腳圖

AT89C52為適應不同的產品需求,采用PDIP、TQFP、PLCC三種封裝形式,本系統采用雙列直插PDIP封裝形式。
5.按鈕電路

6.復位電路

單片機的置位和復位,都是為了把電路初始化到一個確定的狀態,一般來說,單片機復位電路作用是把一個例如狀態機初始化到空狀態,而在單片機內部,復位的時候單片機是把一些寄存器以及存儲設備裝入廠商預設的一個值。
單片機復位電路原理是在單片機的復位引腳RST上外接電阻和電容,實現上電復位。當復位電平持續兩個機器周期以上時復位有效。復位電平的持續時間必須大于單片機的兩個機器周期。具體數值可以由RC電路計算出時間常數。
復位電路由按鍵復位和上電復位兩部分組成。
7.晶振電路

單片機系統里都有晶振,在單片機系統里晶振作用非常大,全程叫晶體振蕩器,他結合單片機內部電路產生單片機所需的時鐘頻率,單片機晶振提供的時鐘頻率越高,那么單片機運行速度就越快,單片接的一切指令的執行都是建立在單片機晶振提供的時鐘頻率。
在通常工作條件下,普通的晶振頻率絕對精度可達百萬分之五十。高級的精度更高。有些晶振還可以由外加電壓在一定范圍內調整頻率,稱為壓控振蕩器(VCO)。晶振用一種能把電能和機械能相互轉化的晶體在共振的狀態下工作,以提供穩定,精確的單頻振蕩。
單片機晶振的作用是為系統提供基本的時鐘信號。通常一個系統共用一個晶振,便于各部分保持同步。有些通訊系統的基頻和射頻使用不同的晶振,而通過電子調整頻率的方法保持同步。
晶振通常與鎖相環電路配合使用,以提供系統所需的時鐘頻率。如果不同子系統需要不同頻率的時鐘信號,可以用與同一個晶振相連的不同鎖相環來提供。
1.時鐘讀出程序的設計
因為使用了時鐘芯片DS1302,所以時鐘程序只須從DS1302各個寄存器中讀出年、月、日、周、時、分、秒等數據再處理即可,本次設計中僅讀出時、分、秒數據。在首次對DS1302 進行操作之前,必須對它進行初始化,然后從DS1302中讀出數據,再經過處理后送給顯示緩沖單元。時鐘讀出程序流程圖見下圖。
2.時間調整程序的設計
調整時間用兩個調整按鈕,一個作為設定控制用,另一個作為加1調整用。在調整時間的過程中,要調整的那位應與別的位有所區別,所以增加了閃爍功能,即調整的那位一直在閃爍,直到調整下一位。閃爍原理就是使要調整的那位,每隔定時間熄滅一次,比如說50 ms,利用定時器計時,當達到50 ms時,就送給該位熄滅符,在下一次溢出時,再送正常顯示的值,不斷交替,直到調整該位結束。時間調整程序流程圖如下圖所示。
時間調整程序流程圖
五、仿真調試與分析
調試分為Proteus硬件電路調試和程序軟件調試:硬件電路調試主要是檢查各元件的連接線是否接好,另外,可以通過編寫一個小的調試軟件來測試硬件電路是否正常;軟件調試應分塊進行,先進行顯示程序調試,再編寫DS1302芯片的讀/寫程序,最后通過多次修改與完善達到理想的功能效果。DS1302的晶振頻率是計時精度的關鍵,在實際設計中可換用標準晶振或用小電容進行修正,在本仿真電路中不需要對計時精度進行校準。
DS1302實時時鐘的Proteus硬件仿真電路圖(仿真后)
點擊按鈕“調時設置”可看到小時閃爍并可以進行加1設置
點擊按鈕“加1”可看到小時加1
六、結論與心得
通過這一周的學習,我感到有很大的收獲:首先這次課程設計使自己對課本上的知識可以應用于實際,使理論與實際相結合,加深自己對課本知識的理解,同時也鍛煉了自己的動手能力:能夠充分利用電腦去查閱資料,增加了許多課本以外的知識。更加了解了單片機原理及應用。增加了對DS1302和AT89C52芯片引腳結構和功能的理解及運用,在設計電路過程中,要考慮到整體的美觀性,連接電路時對各線路的連接要細致。在驗證面電路效果時,出現了很多問題,其主要問題各個接線點之間錯解沒接上的等。在這個過程中,鍛煉了我的細心和耐性。