周 婷
(廣東理工職業(yè)學(xué)院,廣東廣州 510030)
數(shù)字鐘是可以實現(xiàn)時、分、秒計時的鐘表,應(yīng)用非常廣泛,它與傳統(tǒng)的機(jī)械時鐘相比較,數(shù)字鐘擁有更加直觀、精度高且使用壽命更長等優(yōu)點[1]。數(shù)字鐘給人們的生活工作帶來了非常多的便利,而且增加了很多實用功能,比如整點報時、按時打鈴、各種家用電器的自啟動等,所以研究數(shù)字鐘有著非常重要的意義。
數(shù)字鐘的設(shè)計方法有很多,可以使用數(shù)字電路中的觸發(fā)器、計數(shù)器等組成數(shù)字鐘,也可以采用專用的電子時鐘芯片加上外圍電路組成,還可以使用單片機(jī)實現(xiàn),這些方法各有優(yōu)勢[2-3],由數(shù)字電路組成的數(shù)字鐘主要由振蕩器、分頻器、計數(shù)器、譯碼顯示電路、校時電路等組成,還可以增加擴(kuò)展功能,如整點報時電路、倒計時電路等。本文采用單片機(jī)AT89C51 實現(xiàn),單片機(jī)式數(shù)字鐘編程更加靈活、功能也更方便擴(kuò)展。
單片機(jī)設(shè)計的數(shù)字鐘主要包括AT89C51 單片機(jī)、晶體振蕩電路、數(shù)碼顯示電路和秒分時調(diào)整電路。AT89C51 能提供4k 字節(jié),F(xiàn)lash 閃速存儲器,256 字節(jié)片內(nèi)數(shù)據(jù)存儲器,三十二個IO 口,兩個十六位定時/計數(shù)器,一個五向量兩級中斷結(jié)構(gòu),一個全雙工串行通信口,片內(nèi)振蕩器及時鐘電路。AT89C51 因其性能優(yōu)良和價格低廉而被廣泛應(yīng)用,數(shù)字鐘的整體原理方框圖如圖1 所示。
圖1 數(shù)字鐘的原理圖
目前頻率發(fā)生器主要分兩種:(1)采用555 定時器構(gòu)成的多諧振蕩器作為數(shù)字鐘的頻率發(fā)生器,靈敏度非常高且穩(wěn)定,同時對電源電壓和環(huán)境溫度的影響較小,但是不方便調(diào)節(jié)頻率占空比,且頻率一般不能太高;(2)采用石英晶體振蕩器作為頻率發(fā)生器。晶體振蕩電路采用壓電材料振動晶體的機(jī)械共振,創(chuàng)建給定頻率的電信號,采用晶體振蕩電路發(fā)出的頻率非常穩(wěn)定,且受溫度影響小,所以本設(shè)計采用晶體振蕩電路用于提供穩(wěn)定的時鐘信號。晶體振蕩電路和復(fù)位上電電路如圖2 所示。
圖2 晶體振蕩電路和復(fù)位上電電路
時鐘顯示電路模塊采用八個共陽極八段數(shù)碼管,其中P1.0~P1.7 控制數(shù)碼管的八段LED 燈的亮滅,即輸入段碼;P3.0~P3.7 控制具體一位數(shù)碼管顯示,即輸入位碼,而AT89C51 對P3.0~P3.7 端口進(jìn)行動態(tài)掃描。
當(dāng)數(shù)字鐘運行一段時間后,存在一定誤差,采用按鍵電路可以分別對時、分、秒進(jìn)行調(diào)節(jié)。本數(shù)字鐘用P1.0、P1.1、P1.2 三個端口分別控制時、分、秒三個按鍵。當(dāng)按鍵中某個端口輸入低電平時,AT89C51 單片機(jī)讀取此時按鍵狀態(tài),并采用軟件去抖,時鐘按鍵每按下一次時鐘加一,當(dāng)累加到二十四時,重新從零開始計數(shù);分鐘按鍵每按下一次時鐘加一,當(dāng)累加到六十時,重新從零開始計數(shù);秒鐘同理。
1.數(shù)字鐘開機(jī)時,顯示12:00:00 的時間開始計時。
2.校正功能:P0.0 控制“秒”的調(diào)整,每按一次加1 秒;P0.1 控制“分”的調(diào)整,每按一次加1 分;P0.2 控制“時”的調(diào)整,每按一次加1 小時。
1.初始化使顯示時間的位全為12:00:00,其他都不點亮;首先建立兩個數(shù)組,dispcode[]存放0~f 的段碼,dispbitc ode[]存放位碼,通過dispbuf[8]顯示12:00:00。如果把dispbitcode[2]、dispbitcode[3]對應(yīng)的16 改為X(10~15 中的一個),并將其指向dispcode[16]即0x00 改為dispcode[X]即0x40。時分秒的間隔就為“—”。
2.秒顯示程序,每來一個脈沖信號,second 自加一,當(dāng)second 等于60 時,重新計數(shù),并且在數(shù)碼管上分別顯示秒的十位和個位。時鐘和分鐘也是類似的編寫方式。
本文以PROTUES 作為仿真軟件,在PROTUES 中搭建數(shù)字鐘電路,再用Keil 仿真軟件編寫程序,導(dǎo)出.HEX 文件,再把.HEX 文件導(dǎo)入到PROTUES 仿真運行。Proteus 軟件是英國Lab Center Electronics 公司出版的EDA 軟件工具,它不僅具有其它EDA 工具軟件的仿真功能,而且還能從原理圖布圖、代碼調(diào)試到單片機(jī)與外圍電路協(xié)同仿真,一鍵切換到PCB 設(shè)計,真正實現(xiàn)了從概念到產(chǎn)品的完整設(shè)計[4-5]。
在仿真過程中要注意以下幾點:
(1)要認(rèn)真檢查元器件型號、位置以及引腳是否正確;
(2)檢查電源電壓是否正確,常用的工作電壓有5V、12V、15V 等;
(3)仿真時注意要修改晶振頻率為12MHZ,否則可能不能運行。如圖3 所示為數(shù)字鐘仿真圖。
圖3 數(shù)字鐘仿真圖
本文基于Proteus 仿真軟件和 Keil 開發(fā)環(huán)境設(shè)計出數(shù)字鐘,在產(chǎn)品投入實驗前,先用軟件仿真,減少了成本,也提高了產(chǎn)品設(shè)計的工作效率,縮短了周期。數(shù)字鐘在生活和工作中也非常常用,我們還可以給數(shù)字鐘增加鬧鐘、整點報時等功能,增加數(shù)字鐘的應(yīng)用范圍。