陶忠耀
廣東省佛山市三水區(qū)工業(yè)中專技工學校,廣東佛山 528100
數字時鐘是一種利用集成電路技術實現對時、分、秒等進行數字顯示的計時裝置,廣泛用于各種計時場合。鐘表的數字化給人們的生產生活帶來了極大的便利,已成為人們日常生活不可或缺的必需品。與傳統(tǒng)鐘表相比數字時鐘具有良好的實時性和方便的擴展性。經過一定的軟硬件擴展可以實現諸如定時自動報警、市政路燈自動起閉控制、定時打鈴等的功能。因此,研究數字時鐘的設計及其應用的擴展,有著非?,F實的意義。
本文所設計的數字時鐘由主控芯片、時鐘模塊、顯示模塊和鍵盤控制模塊共4 個功能模塊組成,如圖1 所示。
圖1 系統(tǒng)整體框圖
主控芯片選用Atmel 公司生產的AT89C51 單片機,完成對其他三個功能模塊的協(xié)調與控制,是系統(tǒng)的核心部分。時鐘模塊采用美國DALLAS 公司推出的高性能低功耗的實時時鐘芯片DS1302,可以提供秒、分、時、日、月和年等信息,具有月末日期自動調節(jié)和閏年校正功能;提供主電源和備用電源雙電源引腳,可以對后備電源進行涓流充電。顯示模塊選用液晶顯示器LCD1602,型號為OCM2X16A,為字符點陣式液晶模塊,可以顯示兩行,每行十六個字符。鍵盤控制模塊由三個按鍵組成,用于時間的設定與調整。
整個系統(tǒng)的組成如圖2 所示。
圖2 系統(tǒng)整體電路圖
單片機AT89C51 和相關的外圍元件組成時鐘復位電路,其中18、19 間外接12M 晶振構成時鐘電路,提供整機工作的時間基準;9 腳為復位腳,具有上電復位及手動復位功能。
時鐘模塊電路采用DS1302,可以提供數字時鐘中的秒、分、時、日、月和年等信息。X1 和X2 引腳之間連接一個32.768kHz 的晶振,提供實時時鐘的工作基準。BT 為3.6V 的充電電池,編程DS1302 充電控制寄存器可對電池的慢速充電,用于時鐘/日歷數據和靜態(tài)RAM 掉電保護,實現時間信息的長期保存與臨時斷電情況下時鐘的正常工作。對小時寄存器進行編程可以在12/24 小時顯示模式間進行切換。
顯示采用小型的液晶顯示器LCD1602,分兩行顯示年月日、時分秒和星期。由于LCD1602 不能顯示漢字,對于日期的顯示可以采用數字顯示的方法,星期一至星期日分別顯示為“1 ~7”的數字。LCD 驅動電壓VL 端接可調電阻,可以調節(jié)液晶顯示的對比度。BLA 端接可調電阻,可以實現液晶顯示亮度的調節(jié)。
鍵盤控制模塊共有三個按鍵組成。
S1 功能鍵:在24 小時顯示模式下,該鍵第一次按下后進入秒調整狀態(tài),液晶顯示器上的時間停止走動,等待S2 鍵被按下后秒顯示部分加“1”。再次按下后進入調分模式,跟著依次是調時、調年、調月、調日和調周模式,當該鍵第八次被按下后退出時間調整模式。
S2 調整鍵:在調整模式下,該鍵每按一次,相應被調對象加1。
S3 確定鍵:在調整模式下,該鍵被按下后,退出調整模式,并將調整后的時間、日期寫入DS1302。
本系統(tǒng)的軟件設計主要包括時鐘芯片DS1302、液晶顯示芯片LCD1602 和定時器T0 的初始化;時鐘的時間設定與讀取、液晶的顯示與鍵盤處理等。
系統(tǒng)主程序框圖如圖3 所示。系統(tǒng)首先對LCD1602、DS1302 和定時器T0 初始化,之后循環(huán)地調用按鍵處理子程序,檢測是否需要調節(jié)時間。程序在定時器T0 中斷服務程序中,定時讀取DS1302 的日期和時間送到液晶顯示器進行顯示,實現刷新時間。
圖3 主程序流程圖
本部分主要是液晶顯示所需的子程序、顯示時間信息等。具體有:初始化LCD 子程序;寫命令子程序;寫數據子程序;顯示第一行數據程序;顯示第二行數據程序;顯示星期。
本部分主要是實時時鐘的字節(jié)讀、字節(jié)寫、讀對應地址數據、向對應地址寫數據和初始化等。具體有:DS1302 初始化子程序;寫一個字節(jié);讀一個字節(jié);寫數據;讀數據。
按鍵處理子程序主要是檢測S1 是不是被按下,檢測S1 被按下后再檢測S2,從而實現對時間信息的調整,并在檢測到S3 被按下后將設置的結果寫入DS1302。程序流程圖如圖4 所示。
本部分包括T0 的初始化子程序和T0 的中斷服務子程序。初始化子程序完成對T0 工作方式的設置、初值的設置、中斷使能和啟動的處理。中斷服務子程序則完成對DS1302 實時時鐘數據的讀取,并送LCD1602 進行顯示。
本文介紹了一款應用單片機控制的數字時鐘的設計,該數字時鐘通過液晶LCD1602 顯示時、分、秒的同時還可以顯示年、月、日和星期,還可以實現對時間和日期的調整。該數字時鐘具有較高的實用價值和可擴展性,在本文的設計思路下通過程序改變和硬件增加可以擴充它的功能和應用場合,比如實現實時溫度濕度的獲取與顯示;帶定時和倒計時功能的鬧鐘設計等等。
圖4 按鍵處理子程序圖
[1]王守中編著.51單片機開發(fā)入門與典型實例.人民郵電出版社,2007,8.
[2]戴佳,戴衛(wèi)恒,劉博文編著.51單片機C語言應用程序設計實例精講.2版.電子工業(yè)出版社,2008,12.
[3]何業(yè)軍,李超.基于單片機控制的高精度定時打鈴器的設計,電子技術,2001,7.
[4]鄒顯圣.基于AT89C51單片機數字時鐘的研究,機電產品開發(fā)與創(chuàng)新,2009,5.