摘要 :論述了多點定鬧電子日歷" title="電子日歷">電子日歷鐘系統(tǒng)的設(shè)計,在VRS51L3074" title="VRS51L3074">VRS51L3074單片機(jī)的控制下,使用串行時鐘芯片DSl2887,實現(xiàn)時間和鬧鐘的設(shè)置功能。通過鍵盤和液晶顯示提示,可以方便地校對時鐘和設(shè)置鬧鐘,利用鍵盤、LCD顯示模塊構(gòu)成人機(jī)交互界面,實現(xiàn)時間和日歷顯示及設(shè)置多個鬧點等。此種電子鐘的特點是操作方便、工作可靠、具有一定的實用價值。
關(guān)鍵詞: 單片機(jī)VRS51L3074;多點定鬧;DSl2887;LCD顯示
文中是以Versa 8051" title="8051">8051系列MCU的典型器件VRS51L3074和時鐘日歷芯片DSl2887為核心制作的可多定點電子日歷時鐘。該系統(tǒng)功能齊全,可存儲多個鬧點,采用液晶顯示器件LCD以清晰完美的視覺效果顯示出時間、日歷等各種信息,有操作簡單、工作穩(wěn)定、功耗低、使用方便等特點。
1 方案論述
VRS51L307是美國Ramtron公司最新推出的8 kBFRAM鐵電存儲器的8051單片機(jī)。該單片機(jī)將外圍功能模塊和40 MI/s(兆指令/秒)單周期8051內(nèi)核集成在一起,工作電壓3.0~3.6 V,有精確的內(nèi)部振蕩器。
本系統(tǒng)采用VRS51L3074單片機(jī)作為控制核心,使用單片集成的即時時鐘芯片DSl2887來實現(xiàn)時鐘功能,顯示系統(tǒng)采用液晶模塊LCD顯示時間、日歷及鬧鈴等提示信息,有著智能化的人機(jī)界面。用此方案設(shè)計的電路圖簡單,不需要驅(qū)動電路,用并行口的數(shù)據(jù)線便可以實現(xiàn)時間、日歷以及鬧鐘的顯示。 VRS51L3074有成熟的閃存技術(shù),本身自帶有看門狗定時器電路,這樣在單片機(jī)死機(jī)或遇到程序故障時系統(tǒng)能夠自動復(fù)位,看門狗定時器由一個14位預(yù)分頻器構(gòu)成,以系統(tǒng)時鐘或者是系統(tǒng)時鐘的分頻信號作為其計數(shù)源,當(dāng)看門狗溢出時將使系統(tǒng)復(fù)位。系統(tǒng)時鐘頻率可動態(tài)調(diào)節(jié),有集成省電、上電復(fù)位/掉電檢測等功能。
2 系統(tǒng)基本原理
用VRS51L3074控制功能將即時時鐘DSl2887的年、月、日、星期、時、分、秒等信息并行輸入LCD液晶顯示器上,時間和日歷還有鬧鐘的調(diào)整則通過鍵盤的控制功能將各種調(diào)整信息反映到單片機(jī)中,并通過單片機(jī)的并口將各種時間、日歷和鬧鐘信息輸入給LCD液晶顯示器,從而實現(xiàn)整個設(shè)計的控制功能。
本系統(tǒng)對外圍器件的訪問都是通過I/O方式,其中單片機(jī)的P1口與鍵盤連接,P0口的8個端口用作單片機(jī)的數(shù)據(jù)線分別與顯示器和即時時鐘相連,P60和 P27分別用作控制端,用來控制單片機(jī)與LCD顯示器以及單片機(jī)與即時時鐘之間的數(shù)據(jù)傳輸;本系統(tǒng)中,由于采用LCD顯示屏作為顯示系統(tǒng),因而用鍵盤作為控制系統(tǒng)對于便攜式的日歷鐘來說,有利于操作和控制。在本設(shè)計中,各功能鍵的控制通過軟件編程的方法來實現(xiàn),這樣利用鍵盤的不同功能鍵就可以實現(xiàn)對鬧鐘、時鐘和日歷的調(diào)整控制。整個設(shè)計的系統(tǒng)圖,如圖1所示。
3 系統(tǒng)硬件設(shè)計
硬件系統(tǒng)由單片機(jī)及其鍵盤電路、時鐘系統(tǒng)、鬧點報警功能和LCD顯示部分組成。整個系統(tǒng)的電路設(shè)計以單片機(jī)VRS51L3074和時鐘芯片DSl2887的設(shè)計為核心,外加液晶顯示器OCM160128-I(內(nèi)置T6963C控制器),蜂鳴器以及鍵盤。
采用VRS51L3074單片機(jī)作為控制核心對時鐘芯片DSl2887進(jìn)行控制,讀取時間,提取數(shù)據(jù),對輸入信號進(jìn)行處理,最后通過LCD顯示各種時間、日歷及鬧鐘信息,從而實現(xiàn)整個設(shè)計的控制功能。系統(tǒng)主控電路如圖2所示。VRS51L3074片內(nèi)自帶40 MHz振蕩器,可無需外部晶振為系統(tǒng)提供時鐘信號。通過對時鐘主電路之間預(yù)分頻器的配置可靈活設(shè)置系統(tǒng)時鐘以滿足不同應(yīng)用的需要。系統(tǒng)時鐘源選擇及分頻比設(shè)置由特殊功能寄存器DEVCLKCFGl和DEVCLKCFG2控制。
3.1 單片機(jī)與DSl2887時鐘芯片的接口設(shè)計界面
單片機(jī)與DSl2887時鐘芯片的接口界面如圖3所示。兩者之間要實現(xiàn)同步通信,就需要用到6個口線:(1)復(fù)位/RESET。(2)I/O數(shù)據(jù)線。(3)片選信號線/CS。(4)數(shù)據(jù)激發(fā)或讀取線DS。(5)讀?。瘜懭?,輸入線R/W。(6)地址激發(fā)輸入線AS。
在以上6個口線中,DS、R/W都有兩種操作模式。本設(shè)計采用Intel總線時序,故MOT腳接地。在這種模式下,DS(數(shù)據(jù)激發(fā)或讀取)腳稱為/RD 腳。AD0~AD7是多工雙向的地址/數(shù)據(jù)總線。在總線周期的第一段時間呈現(xiàn)的是地址,同樣的IC腳和信號路徑,在第二段時間當(dāng)成數(shù)據(jù)使用。因總線從地址到數(shù)據(jù)的改變是發(fā)生在內(nèi)部SRAM的存取時間,所以地址/數(shù)據(jù)作成多工形態(tài)并不會使DSl2887的存取時間變慢。片選信號線/CS選擇輸入為LOW時,即可對DSl2887進(jìn)行存取,在總線周期即使沒有使能/CS腳,也同樣會鎖存住地址但沒有存取的動作發(fā)生。當(dāng)Vcc< 4.25 V時,DSl2887會除能/CS腳,禁止存取動作,此功能會保護(hù)在電源消失期間的即時時鐘和SRAM里的數(shù)據(jù)。地址激發(fā)輸入AS送一個正向地址激發(fā)脈沖到輸入腳,然后在AS/ALE的下降邊緣使得地址栓在DSl2887內(nèi)。在下一個時鐘下降沿,地址激發(fā)輸入將清除,而不管片選端/ CS是否置位。接入命令必須成對發(fā)送。/RESET腳的信號對于時鐘、日歷或SRAM都沒有影響。在電源上升時,RESET腳應(yīng)該維持在LOW一段時間,以便允許電源電壓穩(wěn)定下來,/RESET腳維持在LOW的時間視應(yīng)用而定。
3.2 單片機(jī)與LCD顯示屏的接口電路
此電路中,液晶顯示器數(shù)據(jù)口D0~D7與單片機(jī)的P00~P07并行相連。如圖4所示。/RD、/WR讀、寫選通端與單片機(jī)的/RD、/WR相連,低電平有效,為輸入信號。/CE為T6963C的片選信號,低電平有效。C/D通道選擇信號,1為指令通道,O為數(shù)據(jù)通道。
3.3 鬧點報警功能設(shè)計
蜂鳴器報警電路如圖5所示。當(dāng)時鐘到指定鬧點時,DSl2887控制/狀態(tài)寄存器2中的AF被置1,同時ALE引腳產(chǎn)生一個中斷(低電平有效),由于 ALE接至單片機(jī)的ALE腳,所以引發(fā)中斷程序。DSl2887的SQW輸出1Hz的脈沖,由于數(shù)據(jù)信息接至單片機(jī)的P00~P07腳,所以P20腳輸出 1 Hz的脈沖,使得蜂鳴器間斷性地發(fā)出鳴聲。當(dāng)復(fù)位腳為低并且Vcc>4.25 V時,鬧鐘中斷允許ALE被置為O,鬧鐘中斷標(biāo)志AF置0,信號通過AS位傳送到VRS51L3074的37腳,通過P20腳輸出脈沖到蜂鳴器,停止鬧響。到達(dá)預(yù)定時間響鈴1 min,1 min后自動停止,也可以按下已設(shè)定的鍵實現(xiàn)手動停止。
3.4 單片機(jī)與鍵盤的連接
系統(tǒng)采用行列式鍵盤。用I/O口線組成行、列結(jié)構(gòu),按鍵設(shè)置在行列的交點上。因此,在按鍵數(shù)量較多時,可以節(jié)省I/O口線。鍵盤的列線分別與單片機(jī)的P1.0~P1.2相連,行線分別與單片機(jī)的P1.3~P1.5相連。
4 軟件系統(tǒng)的設(shè)計
系統(tǒng)軟件設(shè)計包括單片機(jī)計算機(jī)兩部分的編程。計算機(jī)軟件編程主要實現(xiàn)參數(shù)設(shè)置、串行口數(shù)據(jù)接收、指令發(fā)送以及數(shù)據(jù)的顯示和存儲。單片機(jī)軟件編程主要實現(xiàn)鍵盤、液晶顯示、鬧鐘等各模塊的功能,采用C語言編程。該系統(tǒng)通過串行口與鍵盤通信,鍵盤給單片機(jī)發(fā)指令實現(xiàn)數(shù)據(jù)采集及系統(tǒng)控制,并將數(shù)據(jù)實時傳回液晶顯示器顯示結(jié)果。整個軟件系統(tǒng)采用模塊化的程序設(shè)計方法,共分為時間日期設(shè)定、鬧鈴
設(shè)定、LCD顯示模塊和鍵盤掃描模塊4個部分。其中主要是鬧點的設(shè)定與提取。軟件系統(tǒng)的主要特點是整個過程完全在鍵盤的控制之下,實現(xiàn)了友好的人機(jī)交互功能。主程序通過判斷鍵盤的輸入情況調(diào)用不同的子程序,子程序的功能實現(xiàn)也是在鍵盤的配合之下完成的。主程序流程圖,如圖6所示。
首先對單片機(jī)的串行口及定時器進(jìn)行初始化,然后進(jìn)行鍵盤掃描,如果有鍵按下,則根據(jù)掃描到的鍵值跳轉(zhuǎn)到相應(yīng)的入口并執(zhí)行相應(yīng)的程序,并根據(jù)外部的輸入進(jìn)行相應(yīng)的操作。如果沒有鍵按下,則回到初始化狀態(tài)。在并行運行的程序中,本設(shè)計將調(diào)用另外兩位合作者編寫的日歷時鐘和溫度程序,送入液晶顯示器中進(jìn)行顯示。
4.1 多點定鬧模塊
鬧鐘的的起鬧止鬧基本步驟:(1)電子設(shè)備的中央處理器CPU從硬件時鐘芯片中讀取當(dāng)前時間,從鬧鐘信息中提取一個與當(dāng)前時間最接近的然后啟動鬧鐘,將該鬧鐘的啟動時間設(shè)置到硬件時鐘芯片中。(2)硬件時鐘芯片在當(dāng)前時間與該需啟動鬧鐘的啟動時間進(jìn)行比較,一致時通知CPU鬧鐘啟動時間已經(jīng)到達(dá),蜂鳴器控制標(biāo)志為“1”,鬧鐘打開,開始起鬧,并顯示在顯示器上,要止鬧只需按下啟停鍵便可止鬧,沒有按鍵的情況下系統(tǒng)根據(jù)預(yù)設(shè)的鬧響時間1 min后停止鬧鈴,鬧時功能關(guān)停。硬件時鐘芯片在當(dāng)前時間與該需啟動鬧鐘的啟動時間進(jìn)行比較不同時指向下一時間。(3)通過不停的進(jìn)行比較,第一個鬧點響停后,時鐘正常行走,系統(tǒng)又再返回步驟(1)。
4.2 OSl2887時鐘芯片與VRS51L3074的接口程序
系統(tǒng)通過中斷和軟件計數(shù)器可產(chǎn)生秒信號。每到1 s,系統(tǒng)將會調(diào)整時間存儲單元的內(nèi)容,從而實現(xiàn)計時功能。下面為DSl2887時鐘芯片和VRS51L3074單片機(jī)的接口軟件,假定采用每天24 h制,時間數(shù)據(jù)格式為BCD碼,初始化時間為2000年1月1日9時00分00秒,1 kHz方波輸出。時鐘芯片每1 s向單片機(jī)申請中斷一次,一方面讓單片機(jī)修改一次時鐘顯示,另一方面也給單片微機(jī)系統(tǒng)提供時間基準(zhǔn)。
5 結(jié)束語
系統(tǒng)利用VRS51L3074作為控制核心,外加專用的時鐘芯片DSl2887的應(yīng)用,實現(xiàn)時間、日歷及鬧鐘信息顯示功能。該電子鐘操作方便,通過鍵盤和漢顯液晶提示可方便地校對時鐘和對鬧鐘進(jìn)行設(shè)置。