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