陶忠耀
廣東省佛山市三水區(qū)工業(yè)中專技工學(xué)校,廣東佛山 528100
數(shù)字時(shí)鐘是一種利用集成電路技術(shù)實(shí)現(xiàn)對(duì)時(shí)、分、秒等進(jìn)行數(shù)字顯示的計(jì)時(shí)裝置,廣泛用于各種計(jì)時(shí)場(chǎng)合。鐘表的數(shù)字化給人們的生產(chǎn)生活帶來了極大的便利,已成為人們?nèi)粘I畈豢苫蛉钡谋匦杵贰Ec傳統(tǒng)鐘表相比數(shù)字時(shí)鐘具有良好的實(shí)時(shí)性和方便的擴(kuò)展性。經(jīng)過一定的軟硬件擴(kuò)展可以實(shí)現(xiàn)諸如定時(shí)自動(dòng)報(bào)警、市政路燈自動(dòng)起閉控制、定時(shí)打鈴等的功能。因此,研究數(shù)字時(shí)鐘的設(shè)計(jì)及其應(yīng)用的擴(kuò)展,有著非常現(xiàn)實(shí)的意義。
本文所設(shè)計(jì)的數(shù)字時(shí)鐘由主控芯片、時(shí)鐘模塊、顯示模塊和鍵盤控制模塊共4 個(gè)功能模塊組成,如圖1 所示。

圖1 系統(tǒng)整體框圖
主控芯片選用Atmel 公司生產(chǎn)的AT89C51 單片機(jī),完成對(duì)其他三個(gè)功能模塊的協(xié)調(diào)與控制,是系統(tǒng)的核心部分。時(shí)鐘模塊采用美國(guó)DALLAS 公司推出的高性能低功耗的實(shí)時(shí)時(shí)鐘芯片DS1302,可以提供秒、分、時(shí)、日、月和年等信息,具有月末日期自動(dòng)調(diào)節(jié)和閏年校正功能;提供主電源和備用電源雙電源引腳,可以對(duì)后備電源進(jìn)行涓流充電。顯示模塊選用液晶顯示器LCD1602,型號(hào)為OCM2X16A,為字符點(diǎn)陣式液晶模塊,可以顯示兩行,每行十六個(gè)字符。鍵盤控制模塊由三個(gè)按鍵組成,用于時(shí)間的設(shè)定與調(diào)整。
整個(gè)系統(tǒng)的組成如圖2 所示。

圖2 系統(tǒng)整體電路圖
單片機(jī)AT89C51 和相關(guān)的外圍元件組成時(shí)鐘復(fù)位電路,其中18、19 間外接12M 晶振構(gòu)成時(shí)鐘電路,提供整機(jī)工作的時(shí)間基準(zhǔn);9 腳為復(fù)位腳,具有上電復(fù)位及手動(dòng)復(fù)位功能。
時(shí)鐘模塊電路采用DS1302,可以提供數(shù)字時(shí)鐘中的秒、分、時(shí)、日、月和年等信息。X1 和X2 引腳之間連接一個(gè)32.768kHz 的晶振,提供實(shí)時(shí)時(shí)鐘的工作基準(zhǔn)。BT 為3.6V 的充電電池,編程DS1302 充電控制寄存器可對(duì)電池的慢速充電,用于時(shí)鐘/日歷數(shù)據(jù)和靜態(tài)RAM 掉電保護(hù),實(shí)現(xiàn)時(shí)間信息的長(zhǎng)期保存與臨時(shí)斷電情況下時(shí)鐘的正常工作。對(duì)小時(shí)寄存器進(jìn)行編程可以在12/24 小時(shí)顯示模式間進(jìn)行切換。
顯示采用小型的液晶顯示器LCD1602,分兩行顯示年月日、時(shí)分秒和星期。由于LCD1602 不能顯示漢字,對(duì)于日期的顯示可以采用數(shù)字顯示的方法,星期一至星期日分別顯示為“1 ~7”的數(shù)字。LCD 驅(qū)動(dòng)電壓VL 端接可調(diào)電阻,可以調(diào)節(jié)液晶顯示的對(duì)比度。BLA 端接可調(diào)電阻,可以實(shí)現(xiàn)液晶顯示亮度的調(diào)節(jié)。
鍵盤控制模塊共有三個(gè)按鍵組成。
S1 功能鍵:在24 小時(shí)顯示模式下,該鍵第一次按下后進(jìn)入秒調(diào)整狀態(tài),液晶顯示器上的時(shí)間停止走動(dòng),等待S2 鍵被按下后秒顯示部分加“1”。再次按下后進(jìn)入調(diào)分模式,跟著依次是調(diào)時(shí)、調(diào)年、調(diào)月、調(diào)日和調(diào)周模式,當(dāng)該鍵第八次被按下后退出時(shí)間調(diào)整模式。
S2 調(diào)整鍵:在調(diào)整模式下,該鍵每按一次,相應(yīng)被調(diào)對(duì)象加1。
S3 確定鍵:在調(diào)整模式下,該鍵被按下后,退出調(diào)整模式,并將調(diào)整后的時(shí)間、日期寫入DS1302。
本系統(tǒng)的軟件設(shè)計(jì)主要包括時(shí)鐘芯片DS1302、液晶顯示芯片LCD1602 和定時(shí)器T0 的初始化;時(shí)鐘的時(shí)間設(shè)定與讀取、液晶的顯示與鍵盤處理等。
系統(tǒng)主程序框圖如圖3 所示。系統(tǒng)首先對(duì)LCD1602、DS1302 和定時(shí)器T0 初始化,之后循環(huán)地調(diào)用按鍵處理子程序,檢測(cè)是否需要調(diào)節(jié)時(shí)間。程序在定時(shí)器T0 中斷服務(wù)程序中,定時(shí)讀取DS1302 的日期和時(shí)間送到液晶顯示器進(jìn)行顯示,實(shí)現(xiàn)刷新時(shí)間。

圖3 主程序流程圖
本部分主要是液晶顯示所需的子程序、顯示時(shí)間信息等。具體有:初始化LCD 子程序;寫命令子程序;寫數(shù)據(jù)子程序;顯示第一行數(shù)據(jù)程序;顯示第二行數(shù)據(jù)程序;顯示星期。
本部分主要是實(shí)時(shí)時(shí)鐘的字節(jié)讀、字節(jié)寫、讀對(duì)應(yīng)地址數(shù)據(jù)、向?qū)?yīng)地址寫數(shù)據(jù)和初始化等。具體有:DS1302 初始化子程序;寫一個(gè)字節(jié);讀一個(gè)字節(jié);寫數(shù)據(jù);讀數(shù)據(jù)。
按鍵處理子程序主要是檢測(cè)S1 是不是被按下,檢測(cè)S1 被按下后再檢測(cè)S2,從而實(shí)現(xiàn)對(duì)時(shí)間信息的調(diào)整,并在檢測(cè)到S3 被按下后將設(shè)置的結(jié)果寫入DS1302。程序流程圖如圖4 所示。
本部分包括T0 的初始化子程序和T0 的中斷服務(wù)子程序。初始化子程序完成對(duì)T0 工作方式的設(shè)置、初值的設(shè)置、中斷使能和啟動(dòng)的處理。中斷服務(wù)子程序則完成對(duì)DS1302 實(shí)時(shí)時(shí)鐘數(shù)據(jù)的讀取,并送LCD1602 進(jìn)行顯示。
本文介紹了一款應(yīng)用單片機(jī)控制的數(shù)字時(shí)鐘的設(shè)計(jì),該數(shù)字時(shí)鐘通過液晶LCD1602 顯示時(shí)、分、秒的同時(shí)還可以顯示年、月、日和星期,還可以實(shí)現(xiàn)對(duì)時(shí)間和日期的調(diào)整。該數(shù)字時(shí)鐘具有較高的實(shí)用價(jià)值和可擴(kuò)展性,在本文的設(shè)計(jì)思路下通過程序改變和硬件增加可以擴(kuò)充它的功能和應(yīng)用場(chǎng)合,比如實(shí)現(xiàn)實(shí)時(shí)溫度濕度的獲取與顯示;帶定時(shí)和倒計(jì)時(shí)功能的鬧鐘設(shè)計(jì)等等。

圖4 按鍵處理子程序圖
[1]王守中編著.51單片機(jī)開發(fā)入門與典型實(shí)例.人民郵電出版社,2007,8.
[2]戴佳,戴衛(wèi)恒,劉博文編著.51單片機(jī)C語(yǔ)言應(yīng)用程序設(shè)計(jì)實(shí)例精講.2版.電子工業(yè)出版社,2008,12.
[3]何業(yè)軍,李超.基于單片機(jī)控制的高精度定時(shí)打鈴器的設(shè)計(jì),電子技術(shù),2001,7.
[4]鄒顯圣.基于AT89C51單片機(jī)數(shù)字時(shí)鐘的研究,機(jī)電產(chǎn)品開發(fā)與創(chuàng)新,2009,5.