袁孟
摘要 本設計是以AT89C51為核心的實時控制系統(tǒng),根據(jù)具體硬件,再結合應用對象,設計出相應的程序完成設計。單片機作息時間控制鐘可模擬顯示時、分、秒,并可根據(jù)學校的作息時間按時打鈴、播放音樂和廣播操節(jié)目等。此外系統(tǒng)還設置二個按鈕,分別用來調(diào)時和調(diào)分,以保證時鐘與標準時間的吻合。
關鍵詞 單片機;電子時鐘;時鐘控制
中圖分類號:G712 文獻標識碼:B文章編號:1671-489X(2016)08-0042-02
1 工作原理
MCS-51共有2個16位的定時器,以實現(xiàn)定時功能。本設計通過MCS-51內(nèi)部定時器T0產(chǎn)生中斷來實現(xiàn)計時。T0工作在定時器工作方式1,每100 ms中斷1次,利用軟件將基準100 ms(1/10)單元進行累加計數(shù)。當定時器產(chǎn)生10次中斷后就產(chǎn)生了1 s信號,這時秒單元加1;當秒單元加到60時,分單元就加1;當分單元加到60時,那么時單元就加1,從而產(chǎn)生秒、分、時等時間值,并通過連接在8155A口、B口上的六位LED顯示器進行顯示。
把學校的作息時間預先制成表格存入EPROM數(shù)據(jù)區(qū)中,利用軟件每過1 s將當前時間與數(shù)據(jù)區(qū)時間相比較,相等說明要進行某一項控制,從而可完成打鈴、息鈴、播放廣播操作等控制。
2 硬件設計
硬件系統(tǒng)以AT89C51為核心,加上復位電路、振蕩電路、顯示電路組成。
核心元件AT89C51 本設計采用ATMEL公司的AT89C51作為中央處理芯片。AT89C51是一種帶4 K字節(jié)Flash存儲器的低電壓、高性能CMOS 8位微處理器,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。
上電復位電路 如圖1所示,在通電瞬間,由于C,通過R1充電,在RES端出現(xiàn)正脈沖,89C51加電后自動復位。C3、R1隨CPU時鐘頻率而變化,可由實驗調(diào)整。當采用12MHz晶體振蕩器時,C3為10μF、R1為11 kΩ,就能可靠復位。
振蕩電路 XTAL1、XTAL2分別是89C51芯片內(nèi)部一個高增益反相放大器的輸入、輸出端。在XTAL1、XTAL2引腳上直接跨接晶體振蕩器和微調(diào)電容,如圖中的晶振和電容組成并聯(lián)諧振回路,則在內(nèi)部可產(chǎn)生與外部晶振同頻率的振蕩時鐘。晶體的振蕩頻率可以在1.2~13 MHz之間任選,電容C1、C2在5~30 pF之間選擇,以對時鐘起微調(diào)作用。本設計用30 pF的電容及12 MHz的晶振,如圖2所示。
顯示電路 如圖3所示,顯示電路由芯片D8155C-2、74LS365,6個LED顯示器以及8個上拉電阻組成。
1)使用的元器件。D8155C-2芯片內(nèi)具有256 B的靜態(tài)RAM、2個8位和1個6位的可編程并行I/O口、1個14位定時器等常用部件及地址鎖存器,可與AT89C51直接相接,而不需要任何硬件。
74LS365是一個6總線驅(qū)動器。由于要帶動LED顯示器,D8155C-2驅(qū)動能力不足,因此加上74LS365為驅(qū)動器,提高電路帶負載能力。此外,加上+5V電源和8個上拉電阻,使電路的驅(qū)動能力進一步提高。
2)工作原理。當89C51把段碼傳到接口擴展芯片D8155C-2以后,從PA口傳出,電平經(jīng)上拉后接到LED中;再由PBI到PB5發(fā)出位選擇信號,經(jīng)過驅(qū)動芯片74LS365,使相應的LED顯示出數(shù)字;再由89C51傳下一個要顯示的位到D8155C-2中,繼續(xù)顯示下一位,直到六位都顯示完為止。
其他電路 根據(jù)設計要求,電路中加上兩個輕觸式開關,用于調(diào)時、調(diào)分。并從P1.0和P1.4引出兩個控制信號,分別控制響鈴和廣播(分別用兩個發(fā)光二極管表示,亮為開,不亮為關)。
3 軟件設計
本設計是匯編語言進行軟件設計,指令的執(zhí)行速度快,節(jié)省存儲空間。為了便于擴展和更改,軟件的設計采用模塊化結構,使程序設計的邏輯關系更加簡潔明了,使硬件在軟件的控制下協(xié)調(diào)運作。
根據(jù)設計要求,啟用INT0、INTI中斷服務用來調(diào)時、調(diào)分;用T0中斷,產(chǎn)生0.1 s中斷,并由程序計數(shù)累加,實現(xiàn)計時。
數(shù)據(jù)區(qū)中每一項時間控制字需要占用8個存儲單元:
啟動裝置時間:控制碼1、時、分、秒;
關閉裝置時間:控制碼2、時、分、秒。
89C51單片機的P1.0用作電鈴的開啟和關閉,P1.4用作廣播的開啟和關閉。
4 系統(tǒng)調(diào)試
硬件調(diào)試
硬件調(diào)試分為兩次調(diào)試。第一個程序測試復位電路、振蕩電路、兩個開關電路和控制信號輸出。開兩個外部中斷,測試兩個開關電路,在中斷子程序中向P1.0和P1.4輸出信號,測試控制信號。當工作正常時,同時可以證明上電復位電路和振蕩電路都正常。顯示是重要的一部分,由D8155C-2驅(qū)動LED,向A口分別送1、2、3、4、5、6、7、8、9、A所對應的段碼,然后分別選中各個數(shù)碼管,使它們分別顯示1、2、3、4、5、6、7、8、9、A。
軟件調(diào)試
軟件主要是在uVision4中調(diào)試。由于采用模塊化設計,因此可以對每個子程序分別進行。INTO、INTl子程序功能一樣,只須對其中一個進行調(diào)試。在調(diào)試過程中要時刻關注用到的工作寄存和有關輸入輸出口,以作為判斷程序是否有問題的條件。
5 總結
本文中的作息時間控制鐘是以單片機的基本語言匯編語言來進行軟件設計,指令的執(zhí)行速度快,節(jié)省存儲空間。軟件的設計采用模塊化結構,使各子程序的關系更加簡潔明了,便于維護。