李琳
渤海大學(xué)
基于單片機(jī)的數(shù)字時鐘設(shè)計
李琳
渤海大學(xué)
本文基于單片機(jī)進(jìn)行的數(shù)字時鐘設(shè)計,論文中論述了系統(tǒng)的總結(jié)構(gòu)設(shè)計、數(shù)字時鐘的設(shè)計原理、分別對硬件設(shè)計中的部分模塊和軟件設(shè)計進(jìn)行了詳細(xì)介紹。系統(tǒng)實現(xiàn)了時鐘、分鐘、秒鐘、年、月、日的顯示,還可以對時鐘設(shè)置鬧鐘,在人們生活中有著重要的應(yīng)用。
數(shù)字時鐘 單片機(jī) 時鐘芯片
隨著社會的發(fā)展,傳統(tǒng)的時鐘也已經(jīng)無法滿足人們生活的需要,數(shù)字時鐘應(yīng)運而生。相比較于傳統(tǒng)意義上的機(jī)械式的鐘表,數(shù)字時鐘在性能方面得到很大地提高,比如數(shù)字時鐘在時間顯示方面更加精確,在外形方面更加美觀,在時間顯示方面更加一目了然,且使用的周期壽命比較長。因此數(shù)字時鐘在現(xiàn)實生活中的很多領(lǐng)域都得到了很大的應(yīng)用。
對于數(shù)字時鐘的設(shè)計一般主要有兩種實現(xiàn)方式,分別是基于數(shù)字電路和基于單片機(jī),基于數(shù)字電路設(shè)計的數(shù)字時鐘相比較于基于單片機(jī)的數(shù)字時鐘在設(shè)計過程中所需要的元件比較少,數(shù)字集成塊需要很多,而且在資金投入方面的成本也比較高。若采用基于單片機(jī)的數(shù)字時鐘設(shè)計,因為系統(tǒng)中利用軟件進(jìn)行編程,所以在硬件電路方面的要求會降低要求,同時也會減少在硬件方面的資金成本的投入??紤]都這些因素,本文選擇基于單片機(jī)的數(shù)字時鐘設(shè)計。
本文中基于單片機(jī)的數(shù)字時鐘的總體設(shè)計模塊中主要包括了時鐘模塊,鍵盤控制模塊,數(shù)碼顯示電路,主程序電路以及顯示模塊等。系統(tǒng)總體結(jié)構(gòu)圖如圖1所示。
圖1 系統(tǒng)總體結(jié)構(gòu)圖
圖2 系統(tǒng)總體電路圖
系統(tǒng)的總體電路圖如圖2所示。
4.1 數(shù)碼管顯示電路
數(shù)碼管顯示電路的實現(xiàn)采用 動態(tài)顯示方式。數(shù)碼管是三位共陰管,二極管的公共端是把數(shù)碼管的幾個陰極共同連接在同一個地方,二極管的陽極獨立接出。當(dāng)將陽極和高電平進(jìn)行連接時,對應(yīng)的數(shù)碼管指示燈就會亮,顯示器中的顯示數(shù)字取決于指示燈的亮與滅。當(dāng)將這三個共陰的同名端都連接在一起時,數(shù)碼管中顯示的數(shù)據(jù)內(nèi)容相同。
4.2 時鐘顯示模塊
時鐘模塊選擇的芯片型號是DS1302,通過時鐘芯片可以顯示出時間的時分秒以及年月日等基本信息,在時鐘顯示模塊中的引腳X1和X2之間會加入一個晶體振蕩器,頻率是32.67kHz,這個晶體振蕩器的加入是為了保證確定時鐘的基準(zhǔn),其中加入的電池電壓是3.6V,當(dāng)電池快沒電的時候可以通過電路中時鐘芯片的充電接寄存器進(jìn)行充電,可以進(jìn)行斷電保護(hù)保存設(shè)置的時間相關(guān)信息。
4.3 報警系統(tǒng)模塊
報警模塊主要是發(fā)生在設(shè)置鬧鐘時,當(dāng)系統(tǒng)中時間到達(dá)提前設(shè)置的鬧鐘時間時,系統(tǒng)就會通過蜂鳴器按時發(fā)出嘀嘀嘀的聲音,以此來提示用戶時間到點,另外除了設(shè)置鬧鐘到點后蜂鳴器會發(fā)出響聲之外,如果電網(wǎng)的電壓不夠或者是電壓超過額定的電壓的時候,蜂鳴器也會發(fā)出警報聲。當(dāng)用戶按下停止按鍵 后,鬧鐘的聲音就會停止,警報狀態(tài)也就解除。
主程序流程圖如3所示。
圖3 主程序流程圖
5.1 T0定時中斷服務(wù)子程序
在中斷設(shè)計模塊中,時間的中斷間隔設(shè)置為50毫秒,當(dāng)時間中斷次數(shù)累計到20時,秒鐘時間就會增加1,當(dāng)秒鐘時間累計到60時就會進(jìn)行進(jìn)位,即分鐘時間會增加1,此時秒鐘時間自動清零變?yōu)?。同理,當(dāng)分鐘時間是60時,分鐘就會向時進(jìn)行進(jìn)位,分鐘時間會自動變?yōu)?,時的時間會增加1,當(dāng)時的時間累計到24的時候,日的時間會增加1,月份的計算也是如此。
T0定時中斷服務(wù)子程序流程圖如圖4所示。
5.2 LCD1602顯示程序部分
LCD1602顯示程序部分是顯示時間的基本信息以及液晶顯示模塊中包含的子程序,主要功能包括對LCD程序進(jìn)行初始化,可以對相關(guān)的子程序進(jìn)行寫操作,比如命令程序或者數(shù)據(jù)子程序等。
圖4 T0定時中斷服務(wù)子程序流程圖
本文選擇的仿真平臺是Protues軟件,界面中觀察結(jié)果可以發(fā)現(xiàn)LCD顯示器上顯示的時鐘分鐘秒鐘,以及年月日的基本時間信息,而且還可以通過按鍵實現(xiàn)鬧鐘的設(shè)置,到固定的時間后,就會報警。系統(tǒng)仿真圖如圖5所示。
圖5 系統(tǒng)仿真結(jié)果圖
本文主要介紹了基于單片機(jī)的數(shù)字時鐘設(shè)計,選擇的時鐘芯片是DS1302,液晶顯示器選擇的型號是LCD1602?;趩纹瑱C(jī)的數(shù)字時鐘設(shè)計相比較于傳統(tǒng)的機(jī)械鐘在性能方面以及實用性方面都有大大的優(yōu)勢。系統(tǒng)實現(xiàn)了時鐘分鐘秒鐘年月日的顯示還可以對時鐘設(shè)置鬧鐘。
[1]戴佳,戴衛(wèi)恒,劉博文編著.51單片機(jī)C語言應(yīng)用程序設(shè)計實例精講.2版.電子工業(yè)出版社,2008,12
[2]呂思忠.數(shù)子電路實驗與課程設(shè)計[M].哈爾濱:哈爾濱工業(yè)大學(xué)出社,2001
[3]需思孝,馮育氏.單片機(jī)系統(tǒng)設(shè)計及上程應(yīng)用[M].陜西:西安電子科技大學(xué)出版社,2005
[4]何業(yè)軍,李超.基于單片機(jī)控制的高精度定時打鈴器的設(shè)計,電子技術(shù),2001,7