柳州工學(xué)院 周彥明 梁偉鄯 李旺昆
本文通過采用STC12C2052AD單片機、DS1320時鐘日歷芯片、MAX7219數(shù)碼管顯示驅(qū)動芯片,設(shè)計了一款硬件電路,連接方式簡潔。軟件采用模塊化方式編程,設(shè)計過程全程軟件仿真,成本低、顯示美觀、易于開發(fā)和推廣,可應(yīng)用于數(shù)碼LED電子日歷時鐘。本文詳細介紹了電子時鐘的設(shè)計方案及實物制作,以期向讀者展示設(shè)計方案的可行性和實用性以及為制作者提供相關(guān)技術(shù)資料支持。
數(shù)字鐘是一種利用數(shù)字電路來顯示時分秒的計時裝置,與傳統(tǒng)的機械鐘相比,它具有走時準確、顯示直觀、無機械傳動裝置等優(yōu)點,因而得到廣泛的應(yīng)用。基于單片機的智能電子時鐘的設(shè)計、制造以及開發(fā)應(yīng)用,是符合人們生活水平不斷提高的社會發(fā)展需要的。對比傳統(tǒng)功能單一、設(shè)計簡單的機械時鐘,基于單片機的智能電子時鐘在設(shè)計更加便捷、更具創(chuàng)新性的基礎(chǔ)上,實現(xiàn)了時鐘附屬功能的多樣化和個性化。一方面,基于單片機的智能電子時鐘設(shè)計的參數(shù)調(diào)整方式更為人性化,功能設(shè)計靈活性更強,計時更加精確;另一方面,基于單片機的智能電子時鐘的設(shè)計,不僅能夠為人們顯示時間(特別是夜間顯示效果更好且顯示界面豐富),還可以設(shè)計開發(fā)出諸多實用、豐富的使用功能,如多點鬧鐘、顯示溫濕度、顯示農(nóng)歷等乃至女性生理期設(shè)置,滿足人們更多的個性化方面的需求,制造出更多基于單片機的電子計時個性化產(chǎn)品。
根據(jù)單片機電子鐘各個功能模塊的需要,設(shè)計了電子鐘的總體設(shè)計方案,如圖1所示。
圖1 電子鐘總體設(shè)計方案圖
圖2 基于MAX7219的電子時鐘原理圖
圖3 電子鐘PCB版圖及正反面實物圖
圖4 MAX7219管腳圖及實物圖
它包含了4個關(guān)鍵模塊和4個單片機工作支持功能電路,它們分別為:DS1302日歷時鐘芯片模塊、MAX7219數(shù)碼管顯示驅(qū)動模塊、獨立按鍵輸入模塊、蜂鳴報警模塊。單片機工作支持電路有復(fù)位電路、下載電路、晶振電路和電源電路。這些模塊及電路圍繞著51單片機協(xié)同工作構(gòu)成整個基于單片機的電子時鐘系統(tǒng)。在此基礎(chǔ)上還可以添加一些特殊的功能模塊,如WIFI模塊實現(xiàn)電子鐘自動校時。
本設(shè)計的單片機電子時鐘系統(tǒng)的硬件電路設(shè)計如圖2所示,其中硬件設(shè)計主要包括有:一片型號為STC12C2052AD的單片機芯片、型號為DS1302的日歷時鐘芯片、用于顯示時間日歷信息的8×8 LED數(shù)碼管、用于驅(qū)動LED數(shù)碼管的MAX7219顯示驅(qū)動芯片、復(fù)位模塊、晶振模塊、三個獨立按鍵輸入模塊、程序下載模塊和電源模塊等。
在圖2中,電子鐘采用的是深圳宏晶公司出品的的STC12C2052單片機,整體電路簡捷實用,單片機通過三線數(shù)據(jù)總線與DS1302時鐘芯片及MAX7219數(shù)碼管驅(qū)動芯片進行數(shù)據(jù)的交換,通過三個獨立按鍵來實現(xiàn)日歷時鐘參數(shù)的調(diào)整,顯示采用八個1寸高亮單字數(shù)碼管交替顯示時間和日歷,所設(shè)計的程序是通過串行接口下載到單片機中。
PCB板設(shè)計采用雙面電路板設(shè)計,雙面布置元器件,正面為八個1寸單字數(shù)碼管,反面安裝集成電路元件及電源、電池、按鍵等,整個電子時鐘產(chǎn)品布局合理、美觀大方,PCB板圖設(shè)計、實物正反面如圖3所示。
MAX7219芯片是一款采用串入并出的全自動動態(tài)掃描顯示驅(qū)動芯片,僅通過Din、Dout、CLK三個管腳與單片機進行數(shù)據(jù)交換,節(jié)省了大量的IO口線,其并口可以連接一個具有8位數(shù)碼的七段數(shù)碼管。其數(shù)碼管通過單片機傳送參數(shù)給顯示芯片可實現(xiàn)15級的亮度調(diào)節(jié),MAX7219芯片能夠?qū)崿F(xiàn)對數(shù)碼管和LED點陣的直接驅(qū)動,不需要添加其他的輔助設(shè)計,使用方便,廣泛的應(yīng)用于各種儀表的面板和LED點陣的顯示中。圖4所示為MAX7219芯片的管腳圖和實物圖。
DS1302是DALLAS 公司堆出的涓流充電時鐘芯片, 可以通過I2C總線與單片機通信。DS1302與單片機之間的通信,與單片機連接的三個口線分別是:復(fù)位(RET)、I/O 數(shù)據(jù)線、串行時鐘(SCLK),DS1302 外部引腳和實物如圖5所示。X1和X2管腳接入的是32768Hz的晶體振蕩器,為芯片提供秒信號來源。
圖5 DS1320管腳圖及實物圖
圖6 電子鐘程序結(jié)構(gòu)
整個程序框架采用的是模塊化編程的結(jié)構(gòu),如圖6所示,它由主程序和三個模塊程序組成,具有結(jié)構(gòu)清晰、易于編程閱讀、程序修改維護方便的特點。
如圖7所示為數(shù)碼電子時鐘的主程序流程,在單片機上電的時候?qū)崿F(xiàn)MAX7219的初始化之后,蜂鳴器鳴響一次,在主循環(huán)中讀取DS1302的時鐘參數(shù),跟據(jù)按鍵設(shè)置的模式值交替顯示時間日歷或分別顯示年、月、日、時、分、秒及亮度值以便按鍵調(diào)整。
圖7 主程序流程圖
單片機程序中將需要將顯示的時間日歷和數(shù)碼管亮度值信息通過該子程序?qū)懭氲綄?yīng)的MAX7219顯示驅(qū)動芯片中來實現(xiàn)特定的顯示功能。MAX7219芯片為使用者提供了三線操作接口,通過串行寫入數(shù)據(jù)的方式即可實現(xiàn)對其控制,寫入的數(shù)據(jù)不僅包括LED顯示的內(nèi)容,還有對MAX7219的初始化工作配置,其中串行寫入數(shù)據(jù)的時序圖如圖8所示。
圖8 MAX7219芯片工作時序圖
在向MAX7219寫入數(shù)據(jù)之前,LOAD和CLK處于低電平狀態(tài),在DIN給出數(shù)據(jù)(D15)并將CLK從低電平拉至高電平,在CLK上升沿觸發(fā)下使DIN的數(shù)據(jù)寫入到MAX7219內(nèi)部寄存器中,此過程實現(xiàn)1bit數(shù)據(jù)寫入,循環(huán)操作16次,寫入16bit的數(shù)據(jù)之后將LOAD從低拉到高電平,LOAD的上升沿信號觸發(fā)了MAX7219內(nèi)部寄存器接收一個完整的16bit數(shù)據(jù)。
其中MAX7219芯片的初始化程序為:
在DS1302時鐘芯片與單片機交換數(shù)據(jù)的過程中,一個CLK周期是一個上升沿,緊跟著一個下降沿。對于數(shù)據(jù)的寫入,在時鐘CLK的上升沿期間,數(shù)據(jù)必須正確穩(wěn)定呈現(xiàn);在時鐘周期的下降沿,單片機讀取數(shù)據(jù)位輸出。若 RST(CE)引腳為低電平,所有數(shù)據(jù)傳輸將中止,I/O 引腳變成高阻狀態(tài),DS1302 讀寫時序如圖9所示。
子程序總共有六個,它們分別是:
(1)向1302當(dāng)前地址處寫入1Byte數(shù)據(jù)
圖9 DS1302 讀寫時序圖
(2)從1302的當(dāng)前地址處讀出1Byte數(shù)據(jù)
(3)將數(shù)據(jù)Data寫入1302寄存器add處
(4)讀寄存器add處的值
(5)設(shè)置時間
(6)讀取時間
在設(shè)定時間日歷時調(diào)用設(shè)置時間子程序,在主程序主循環(huán)中反復(fù)調(diào)用讀取時間子程序,讀出DS1320芯片中的數(shù)據(jù)依次存放在time[]數(shù)組中供MAX7219顯示調(diào)用。
圖10 電子鐘仿真圖
設(shè)置了3個按置,接入單片機的P1.0-P1.2腳,分別為設(shè)置鍵(時間/日期/亮度數(shù)據(jù)的設(shè)置)、加1和減1鍵(實現(xiàn)數(shù)據(jù)的加減1操作)它由按鍵掃描子程序uchar scan_key(void)和按鍵處理子程序組成void cl();若鍵值發(fā)生了變化先調(diào)用讀DS1302芯片數(shù)據(jù)函數(shù)DS1302_ReadTime(UserTime),獲得相關(guān)參數(shù),處理完后調(diào)用寫DS1302芯生數(shù)據(jù)函數(shù)DS1302_WriteTime(UserTime);將相關(guān)參數(shù)寫入DS1302芯片中實現(xiàn)時間日歷數(shù)據(jù)的更替。
利用Proteus 8 Professional軟件設(shè)計調(diào)試的電子鐘具有方便、快捷、直觀、可視化等諸多優(yōu)點,調(diào)試過程中易于發(fā)現(xiàn)和解決問題。電子鐘通過Proteus軟件調(diào)試成功后,編譯完成的程序勿需任何改動就可通過實際的硬件電路實現(xiàn),極大地提高了開發(fā)效率。如圖10所示。
結(jié)束語:電子鐘這一大眾化的產(chǎn)品設(shè)計,既是電子技術(shù)、單片機、電子EDA等技術(shù)的綜合,又是日歷芯片、顯示芯片、單片機C51編程等軟硬件技能點的應(yīng)用。程序的調(diào)試要注意程序的模塊化結(jié)構(gòu)設(shè)計和程序優(yōu)化,盡可能使用歸范語句使整個程序框架清淅明朗。EDA的設(shè)計要留一定的功能接口,給產(chǎn)品足夠的升級擴展空間。在調(diào)試過程中,要認真檢查原理圖及PCB圖保證硬件電路的正確性,包括元器件的連接、元件檢驗測試、焊接質(zhì)量等。而先設(shè)計再仿真后制作的工作流程,能極大提高工作效率,具有事半功倍、胸有成竹的效果。當(dāng)然,也可對現(xiàn)有電子鐘進行擴展,加上溫度傳感器、產(chǎn)品外圍包裝等的動態(tài)點綴化設(shè)計,使電子產(chǎn)品的個性化設(shè)計與定制更能滿足消費者的需求,這也正單片機控制的快速靈活性、高性價比的具體體現(xiàn)。