基于VRS51L3074和DS12887的電子日歷時(shí)鐘設計方案
文中是以Versa 8051系列MCU的典型器件VRS51L3074和時(shí)鐘日歷芯片DSl2887為核心制作的可多定點(diǎn)電子日歷時(shí)鐘。該系統功能齊全,可存儲多個(gè)鬧點(diǎn),采用液晶顯示器件LCD以清晰完美的視覺(jué)效果顯示出時(shí)間、日歷等各種信息,有操作簡(jiǎn)單、工作穩定、功耗低、使用方便等特點(diǎn)。
1 方案論述
VRS51L307是美國Ramtron公司最新推出的8 kBFRAM鐵電存儲器的8051單片機。該單片機將外圍功能模塊和40 MI/s(兆指令/秒)單周期8051內核集成在一起,工作電壓3.0~3.6 V,有精確的內部振蕩器。
本系統采用VRS51L3074單片機作為控制核心,使用單片集成的即時(shí)時(shí)鐘芯片DSl2887來(lái)實(shí)現時(shí)鐘功能,顯示系統采用液晶模塊LCD顯示時(shí)間、日歷及鬧鈴等提示信息,有著(zhù)智能化的人機界面。用此方案設計的電路圖簡(jiǎn)單,不需要驅動(dòng)電路,用并行口的數據線(xiàn)便可以實(shí)現時(shí)間、日歷以及鬧鐘的顯示。 VRS51L3074有成熟的閃存技術(shù),本身自帶有看門(mén)狗定時(shí)器電路,這樣在單片機死機或遇到程序故障時(shí)系統能夠自動(dòng)復位,看門(mén)狗定時(shí)器由一個(gè)14位預分頻器構成,以系統時(shí)鐘或者是系統時(shí)鐘的分頻信號作為其計數源,當看門(mén)狗溢出時(shí)將使系統復位。系統時(shí)鐘頻率可動(dòng)態(tài)調節,有集成省電、上電復位/掉電檢測等功能。
2 系統基本原理
用VRS51L3074控制功能將即時(shí)時(shí)鐘DSl2887的年、月、日、星期、時(shí)、分、秒等信息并行輸入LCD液晶顯示器上,時(shí)間和日歷還有鬧鐘的調整則通過(guò)鍵盤(pán)的控制功能將各種調整信息反映到單片機中,并通過(guò)單片機的并口將各種時(shí)間、日歷和鬧鐘信息輸入給LCD液晶顯示器,從而實(shí)現整個(gè)設計的控制功能。
本系統對外圍器件的訪(fǎng)問(wèn)都是通過(guò)I/O方式,其中單片機的P1口與鍵盤(pán)連接,P0口的8個(gè)端口用作單片機的數據線(xiàn)分別與顯示器和即時(shí)時(shí)鐘相連,P60和 P27分別用作控制端,用來(lái)控制單片機與LCD顯示器以及單片機與即時(shí)時(shí)鐘之間的數據傳輸;本系統中,由于采用LCD顯示屏作為顯示系統,因而用鍵盤(pán)作為控制系統對于便攜式的日歷鐘來(lái)說(shuō),有利于操作和控制。在本設計中,各功能鍵的控制通過(guò)軟件編程的方法來(lái)實(shí)現,這樣利用鍵盤(pán)的不同功能鍵就可以實(shí)現對鬧鐘、時(shí)鐘和日歷的調整控制。整個(gè)設計的系統圖,如圖1所示。

3 系統硬件設計
硬件系統由單片機及其鍵盤(pán)電路、時(shí)鐘系統、鬧點(diǎn)報警功能和LCD顯示部分組成。整個(gè)系統的電路設計以單片機VRS51L3074和時(shí)鐘芯片DSl2887的設計為核心,外加液晶顯示器OCM160128-I(內置T6963C控制器),蜂鳴器以及鍵盤(pán)。
采用VRS51L3074單片機作為控制核心對時(shí)鐘芯片DSl2887進(jìn)行控制,讀取時(shí)間,提取數據,對輸入信號進(jìn)行處理,最后通過(guò)LCD顯示各種時(shí)間、日歷及鬧鐘信息,從而實(shí)現整個(gè)設計的控制功能。系統主控電路如圖2所示。VRS51L3074片內自帶40 MHz振蕩器,可無(wú)需外部晶振為系統提供時(shí)鐘信號。通過(guò)對時(shí)鐘主電路之間預分頻器的配置可靈活設置系統時(shí)鐘以滿(mǎn)足不同應用的需要。系統時(shí)鐘源選擇及分頻比設置由特殊功能寄存器DEVCLKCFGl和DEVCLKCFG2控制。

3.1 單片機與DSl2887時(shí)鐘芯片的接口設計界面
單片機與DSl2887時(shí)鐘芯片的接口界面如圖3所示。兩者之間要實(shí)現同步通信,就需要用到6個(gè)口線(xiàn):(1)復位/RESET。(2)I/O數據線(xiàn)。(3)片選信號線(xiàn)/CS。(4)數據激發(fā)或讀取線(xiàn)DS。(5)讀取/寫(xiě)入,輸入線(xiàn)R/W。(6)地址激發(fā)輸入線(xiàn)AS。

在以上6個(gè)口線(xiàn)中,DS、R/W都有兩種操作模式。本設計采用Intel總線(xiàn)時(shí)序,故MOT腳接地。在這種模式下,DS(數據激發(fā)或讀取)腳稱(chēng)為/RD 腳。AD0~AD7是多工雙向的地址/數據總線(xiàn)。在總線(xiàn)周期的第一段時(shí)間呈現的是地址,同樣的IC腳和信號路徑,在第二段時(shí)間當成數據使用。因總線(xiàn)從地址到數據的改變是發(fā)生在內部SRAM的存取時(shí)間,所以地址/數據作成多工形態(tài)并不會(huì )使DSl2887的存取時(shí)間變慢。片選信號線(xiàn)/CS選擇輸入為L(cháng)OW時(shí),即可對DSl2887進(jìn)行存取,在總線(xiàn)周期即使沒(méi)有使能/CS腳,也同樣會(huì )鎖存住地址但沒(méi)有存取的動(dòng)作發(fā)生。當Vcc 4.25 V時(shí),DSl2887會(huì )除能/CS腳,禁止存取動(dòng)作,此功能會(huì )保護在電源消失期間的即時(shí)時(shí)鐘和SRAM里的數據。地址激發(fā)輸入AS送一個(gè)正向地址激發(fā)脈沖到輸入腳,然后在A(yíng)S/ALE的下降邊緣使得地址栓在DSl2887內。在下一個(gè)時(shí)鐘下降沿,地址激發(fā)輸入將清除,而不管片選端/ CS是否置位。接入命令必須成對發(fā)送。/RESET腳的信號對于時(shí)鐘、日歷或SRAM都沒(méi)有影響。在電源上升時(shí),RESET腳應該維持在LOW一段時(shí)間,以便允許電源電壓穩定下來(lái),/RESET腳維持在LOW的時(shí)間視應用而定。
3.2 單片機與LCD顯示屏的接口電路
此電路中,液晶顯示器數據口D0~D7與單片機的P00~P07并行相連。如圖4所示。/RD、/WR讀、寫(xiě)選通端與單片機的/RD、/WR相連,低電平有效,為輸入信號。/CE為T(mén)6963C的片選信號,低電平有效。C/D通道選擇信號,1為指令通道,O為數據通道。

3.3 鬧點(diǎn)報警功能設計
蜂鳴器報警電路如圖5所示。當時(shí)鐘到指定鬧點(diǎn)時(shí),DSl2887控制/狀態(tài)寄存器2中的AF被置1,同時(shí)ALE引腳產(chǎn)生一個(gè)中斷(低電平有效),由于 ALE接至單片機的ALE腳,所以引發(fā)中斷程序。DSl2887的SQW輸出1Hz的脈沖,由于數據信息接至單片機的P00~P07腳,所以P20腳輸出 1 Hz的脈沖,使得蜂鳴器間斷性地發(fā)出鳴聲。當復位腳為低并且Vcc>4.25 V時(shí),鬧鐘中斷允許ALE被置為O,鬧鐘中斷標志AF置0,信號通過(guò)AS位傳送到VRS51L3074的37腳,通過(guò)P20腳輸出脈沖到蜂鳴器,停止鬧響。到達預定時(shí)間響鈴1 min,1 min后自動(dòng)停止,也可以按下已設定的鍵實(shí)現手動(dòng)停止。

3.4 單片機與鍵盤(pán)的連接
系統采用行列式鍵盤(pán)。用I/O口線(xiàn)組成行、列結構,按鍵設置在行列的交點(diǎn)上。因此,在按鍵數量較多時(shí),可以節省I/O口線(xiàn)。鍵盤(pán)的列線(xiàn)分別與單片機的P1.0~P1.2相連,行線(xiàn)分別與單片機的P1.3~P1.5相連。
4 軟件系統的設計
系統軟件設計包括單片機計算機兩部分的編程。計算機軟件編程主要實(shí)現參數設置、串行口數據接收、指令發(fā)送以及數據的顯示和存儲。單片機軟件編程主要實(shí)現鍵盤(pán)、液晶顯示、鬧鐘等各模塊的功能,采用C語(yǔ)言編程。該系統通過(guò)串行口與鍵盤(pán)通信,鍵盤(pán)給單片機發(fā)指令實(shí)現數據采集及系統控制,并將數據實(shí)時(shí)傳回液晶顯示器顯示結果。整個(gè)軟件系統采用模塊化的程序設計方法,共分為時(shí)間日期設定、鬧鈴
設定、LCD顯示模塊和鍵盤(pán)掃描模塊4個(gè)部分。其中主要是鬧點(diǎn)的設定與提取。軟件系統的主要特點(diǎn)是整個(gè)過(guò)程完全在鍵盤(pán)的控制之下,實(shí)現了友好的人機交互功能。主程序通過(guò)判斷鍵盤(pán)的輸入情況調用不同的子程序,子程序的功能實(shí)現也是在鍵盤(pán)的配合之下完成的。主程序流程圖,如圖6所示。

首先對單片機的串行口及定時(shí)器進(jìn)行初始化,然后進(jìn)行鍵盤(pán)掃描,如果有鍵按下,則根據掃描到的鍵值跳轉到相應的入口并執行相應的程序,并根據外部的輸入進(jìn)行相應的操作。如果沒(méi)有鍵按下,則回到初始化狀態(tài)。在并行運行的程序中,本設計將調用另外兩位合作者編寫(xiě)的日歷時(shí)鐘和溫度程序,送入液晶顯示器中進(jìn)行顯示。
4.1 多點(diǎn)定鬧模塊
鬧鐘的的起鬧止鬧基本步驟:(1)電子設備的中央處理器CPU從硬件時(shí)鐘芯片中讀取當前時(shí)間,從鬧鐘信息中提取一個(gè)與當前時(shí)間最接近的然后啟動(dòng)鬧鐘,將該鬧鐘的啟動(dòng)時(shí)間設置到硬件時(shí)鐘芯片中。(2)硬件時(shí)鐘芯片在當前時(shí)間與該需啟動(dòng)鬧鐘的啟動(dòng)時(shí)間進(jìn)行比較,一致時(shí)通知CPU鬧鐘啟動(dòng)時(shí)間已經(jīng)到達,蜂鳴器控制標志為“1”,鬧鐘打開(kāi),開(kāi)始起鬧,并顯示在顯示器上,要止鬧只需按下啟停鍵便可止鬧,沒(méi)有按鍵的情況下系統根據預設的鬧響時(shí)間1 min后停止鬧鈴,鬧時(shí)功能關(guān)停。硬件時(shí)鐘芯片在當前時(shí)間與該需啟動(dòng)鬧鐘的啟動(dòng)時(shí)間進(jìn)行比較不同時(shí)指向下一時(shí)間。(3)通過(guò)不停的進(jìn)行比較,第一個(gè)鬧點(diǎn)響停后,時(shí)鐘正常行走,系統又再返回步驟(1)。
4.2 OSl2887時(shí)鐘芯片與VRS51L3074的接口程序
系統通過(guò)中斷和軟件計數器可產(chǎn)生秒信號。每到1 s,系統將會(huì )調整時(shí)間存儲單元的內容,從而實(shí)現計時(shí)功能。下面為DSl2887時(shí)鐘芯片和VRS51L3074單片機的接口軟件,假定采用每天24 h制,時(shí)間數據格式為BCD碼,初始化時(shí)間為2000年1月1日9時(shí)00分00秒,1 kHz方波輸出。時(shí)鐘芯片每1 s向單片機申請中斷一次,一方面讓單片機修改一次時(shí)鐘顯示,另一方面也給單片微機系統提供時(shí)間基準。
5 結束語(yǔ)
系統利用VRS51L3074作為控制核心,外加專(zhuān)用的時(shí)鐘芯片DSl2887的應用,實(shí)現時(shí)間、日歷及鬧鐘信息顯示功能。該電子鐘操作方便,通過(guò)鍵盤(pán)和漢顯液晶提示可方便地校對時(shí)鐘和對鬧鐘進(jìn)行設置。
評論