設計基于DS12C887高精度時鐘的意義
DS12C887時鐘芯片能夠自動顯示年、月、日、時、分、秒等時間信息,同時還具有校時,報時,鬧鐘等功能。DS12C887也可以很方便的由軟件編程進行功能的調整或增加。所以設計基于DS12C877時鐘芯片的高精度時鐘的設計具有十分重要的現實意義和實用價值。
設計方案
在傳統(tǒng)的基于單片機的數字時鐘設計的基礎上經過一些改進,引入DS12C887時間芯片,本次設計可分為兩部分:硬件部分包括:體積小功能豐富的STC89C52單片機、具有掉電保護的DS12C887時鐘芯片電路簡單易于實現的1602LCD液晶顯示器,鍵盤輸入電路等。具體說來,系統(tǒng)智能控制部分由單片機及其相關的外圍電路組成,外圍電路包括解決死機等問題的復位電路、波形穩(wěn)定的晶振電路、鍵盤設計、鬧鈴電路以及合適的直流電源電路。
利用單片機將復位電路、能夠降低功耗和減少顯示器外部引線的顯示電路、電源電路等正確的連接在一起,并通過單片機的編程來實現本次設計任務中的要求。軟件部分主要包括了主程序模塊,DS12C887模塊,LCD1602模塊,鍵盤控制模塊。DS12C887芯片具有掉電保護功能,內部自帶鋰電池,能夠在斷電的情況下保持時間信息,等到外部電路恢復供電之后能夠不必調整時間,為時鐘的校時操作節(jié)省了很多時間,而且這種設計更節(jié)能,在需要觀察時間的時候比如白天就可以給主電路通電。而在夜晚不需要觀察時鐘的時候就可以給主電路斷電,這樣可以節(jié)約大量電能。
時間芯片DS12C887采用了內部集成晶振的電路,并且具有內部溫漂補償電路設計。能夠準確計時,提供精確的時間,這樣就簡化了電路的器件選擇,另外也使程序的設計更加簡潔。在硬件設計方面,由于只增加了一個DS12C887時間芯片,因此并不是特別復雜,而且這種獨立計時的設計使得產品排故更加方便。
設計過程詳解
一、系統(tǒng)組成
1、系統(tǒng)原理與硬件設計
本次的設計題目是電子萬年歷設計,要求實現年、月、日、時、分、秒的正常顯示,需要硬件和軟件的結合來實現。本次設計利用時鐘日歷芯片DS12C887的特性和STC89C52單片機的功能利用實現的。根據設計的要求萬年歷要顯示年、月、日、時、分、秒的顯示同LCD1602。
在明確本次設計思路之后,畫出設計框圖,總體框圖如圖2.1所示。
2、硬件選擇
(1)時鐘芯片選擇 選用DS12C887時鐘芯片。
(2)單片機的選擇 選用STC89C52單片機,并配備11.0592MHz晶振,復位電路采用上電復位。
(3)顯示電路選擇 采用LCD1602液晶顯示。
(4)電源選擇 采用直流5V電源供電。
3、單片機STC89C52中文資料
STC89C52 是STC公司生產的低電壓,高性能CMOS 8位單片機.片內含8K byTES的可反復擦寫的只讀程序存儲器(PEROM)和256 bytes的隨機存取數據存儲器(RAM),器件采用STC公司的高密度、非易失性存儲技術生產,與標準MCS-51指令系統(tǒng)及8052 產品引腳兼容,片內置通用8位中央處理器(CPU )和FLASH由存儲單元, STC89C52單片功能強大,適用于許多電子產品。
主要性能參數:
Vcc:電源電壓 GND:地線
P0:P0口是一組8位漏極開路型雙向1/O 口,也即地址/數據總線復用口。作為輸出口用時.每位能吸收電流的方式驅動8個TTL 邏輯門電路,對端口P0 寫“1”時,可作為高阻抗輸入端用。
當訪問外部數據存儲器或程序存儲器時,這組口線分時轉換地址(低8位)和數據總線復用,在訪問期間激活內部 上拉電阻。
在FLASH由編程時,P0口接收指令字節(jié),而在程序校驗時,輸出指令字 節(jié),校驗時,要求外接上拉電阻。
P1口:PI 是一個帶內部上拉電阻的8位雙向I/O口,Pl的輸出緩沖級可驅動(吸收或輸出電流)4個TTL邏輯門電路。對端口寫“1”,通過內部的上拉電阻把端口拉到高電平,此時可作輸入口。作輸入口使用時,因為內部存在上拉電阻某個引腳被外部信號拉低時會輸出一個電流IIL
與AT89C51不同之處是,Pl.0 和P1.1還可分別作為定時/計數器2 的外部計數輸入(Pl.0/T2 )和輸入(P1.1/T2EX) ,參見圖3
FLASH編程和程序校驗期間,Pl接收低8位地址。
圖3 PI.O 和PI.l 的第二功能
口:P2 是一個帶有內部上拉電阻的8位雙向I/O口,P2的輸出緩沖級可驅動(吸收或輸出電流)4個TTL邏輯電路。對端口P2寫“l(fā)“,通過內部的上拉電阻把端口拉到高電平,此時可作輸入口,作輸入口使用時,因為內部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(llt )。
在訪問外部程序存儲器或16位地址的外部數據存儲器(例如執(zhí)行MOvx@DPTR 指令)時,P2送出高8 位地址數據。在訪問8位地址的外部數據存儲器、如執(zhí)行MOVX@RI指令)時,P2口輸出P2鎖存器的內容。
FLASH編程或校驗時,P2亦接收高位地址和一些控制信號。
·P3口:P3口是一組帶有內部上拉電阻的8位雙向I/O口。P3口輸出緩沖級可驅動(吸收或輸出電流)4個TTL邏輯門電路。對P3口寫入“1”時,內部上拉電阻把它們被拉高,并作為輸入的端口。這個時候,被外部拉低的P3口將用上拉電阻輸出電流(IIL) 。
P3口除了作為一般的I/0口線外,更重要的用途是它的第二功能,如圖表1:
此外,P3口還接收一些用于FLASH閃速存儲器編程和程序校驗的控制信號。 RST:復位輸入。當振蕩器工作時,RST引腳出現兩個機器周期以上的高電平時單片機復位。
·ALE/PROG:當訪問外部程序存儲器或數據存儲器的時候,ALE(地址鎖存允許)輸出脈沖用來鎖存低8位字節(jié)的地址.通常,ALE依然以時鐘振蕩頻率的1/6輸出固定的脈沖信號,所以可以用來實現對外輸出時鐘或用于定時目的。每次訪問外部數據存儲器時將跳過一個ALE脈沖。
對Flash存儲器編程的時候,這個引腳還用于輸入編程脈沖(PROG)。可以通過對特殊功能寄存器(SFR)區(qū)中的8EH單元的D0位置位.可禁止ALE操作。該位置位后,只有一條MOVX和MOVC指令才能將ALE激活,另外,此引腳會被拉高一點點,當單片機執(zhí)行外部程序得時候,應該把ALE設置為禁止。
·PSEN:程序儲存允許PSEN輸出是外部程序存儲器的讀選通信號,當AT89C52由外部程序存儲器取指令時,每個機器周期兩次PSEN有效,就是輸出兩個脈沖。這個時候,當訪問外部數據存儲器時,就會跳過兩次PSEN信號。
·EA/VPP:外部訪問允許。欲使CPU 僅訪問外部程序存儲器(地址為0000H-FFFFH ) , EA端必須保持低電平(接地).
如EA端接在高電平上, CPU就執(zhí)行內部程序存儲器中的指令。
flash存儲器編程時,該引腳加上+12V的編程允許電源VPP ,該器件必須使用12V編程電壓VPP 。
·XTAL1:振蕩器的反相放大器的及內部時鐘發(fā)生器的輸入端. ·XTAL2:振蕩器的反相放大器的輸出端。
AT89C52的特殊功能是,在AT89C52 片內存儲器中,80H-FFH 共128 個單元為特殊功能寄存器(SFR),SFR 的地址空間映象如表2 所示。
并非所有的地址都被定義,從80H—FFH 共128 個字節(jié)只有一部分被定義,還有相當一部分沒有定義。對沒有定義的單元讀寫將是無效的,讀出的數值將不確定,而寫入的數據也將丟失。
不應將數據寫入未定義的單元,由于這些單元在將來的產品中可能賦予新的功能,在這種情況下,復位后這些單元數值總是“0”。
AT89C52除了有AT89C51所有的定時/計數器0 和定時/計數器1 外,還增加了一個定時/計數器2。定時/計數器2 的控制和狀態(tài)位位于T2CON,T2MOD,寄存器對(RCAO2H、RCAP2L)是定時器2 在16 位捕獲方式或16 位自動重裝載方式下的捕獲/自動重裝載寄存器。
4、STC單片機最小系統(tǒng)
STC單片機是一種高性能、低功耗的8位CMOS微處理芯片, STC單片機雖然功能強大,但要想完成其強大的功能,單靠它也是不的行的,因此要讓它運行起來,就要創(chuàng)設其工作的環(huán)境,即最小系統(tǒng),STC單片機最小系統(tǒng)如圖1所示,它包括由一個晶振,兩個電容組成的振蕩電路,一個復位按鈕一個10UF電容和一個10K電阻組成的復位電路,電源電路三個電路組成。本系統(tǒng)以STC89S52單片機為核心,使用11.0592MHZ的晶振,復位電路為按鍵高電平復位。
二、系統(tǒng)硬件電路設計
1、晶振電路
在晶振電路中,C1、C2為晶振的負載電容,分別接在晶振的兩個腳上和對地的電容,電路中取了30PF。因為晶振與單片機的振蕩電路中腳XTAL0和腳XTAL1會產生偕波,雖然諧波對電路的影響不大,但是會影響電路中時鐘振蕩器的穩(wěn)定性。 在晶振的腳XTAL0和腳XTAL1之間接分別接入兩個5pf-30pf的瓷片電容接可以增加電路的穩(wěn)定性。
2、復位電路
單片機復位電路有上電自動復位和手動復位兩種方式。上電復位要求接通電源后,自動進行復位操作。手動復位要求接通電源的前提下,在單片機運行的條件下,在單片機運行期間,用按鈕開關操作使單片機進行復位的操作。這里采用的是手動復位。
3、程序下載接口
1)1602液晶概述
1602LCD是指顯示的字符和數字為16X2,即可以顯示兩行,每行16個字符液晶模塊共32個字符和數字。
1602LCD主要技術參數:
1.顯示大小:16×2個字符
2.芯片額定電壓:4.5—5.5V
3.額定電流:2.0mA(5.0V)
4.工作時的電壓:5.0V
2)1602液晶引腳功能
3)1602讀寫時序圖
4、1602LCD的一般初始化(復位)過程
5、1602LCD的電路連接
液晶5端為讀/寫選擇端,因為我們不從液晶中讀取數據,只向其寫入命令和顯示數據,因此此端始終選擇為寫狀態(tài),即低電平接地。液晶6端為使能信號,是操作時必須的信號。其電路如圖2-11所示:
1)DS12C887概述
DS12C887具有DS12R885裸片,32.768HZ石英晶體和一個可充電電池三個部分, DS12C887與計算機常用的時鐘芯片MC146818B和DS12887管腳兼容,同時可直接替換可以用來直接代替IBM PC上的時鐘日歷芯片DS12887。采用DS12C887芯片設計的時鐘電路有良好的微機接口,并且不需要任何外圍電路和器件。時鐘芯片DS12C887具有如下的特征:
(1)DS12C887里面自帶一個鋰電池,外部掉電時,內部信息還能保持10年的時間,保證不丟失數據。
(2)能夠自動產生秒、分、時、天、星期、日、月、年、世紀等時間信息, 并 有閏年補償功能。其內部還增加了世紀寄存器,利用硬件電路解決了“千年”問題。
(3)具有二進制數碼和BCD碼兩種表示時間的方法、具有日 歷和定時鬧鐘功能。
(4)一天內的時間記錄具有12小時制和24小時制兩種,12小時時鐘模 式中,具有PM和AM用來區(qū)分上午和下午。同時可選用夏令時模式;
(5)有128個RAM單元與軟件接口,其中有11字節(jié)RAM用來存儲時間信息,4字節(jié)RAM用來存儲DS12C887的控制信息,稱為控制寄存器14個作為字節(jié)時鐘和控制寄存器,113字節(jié)通用RAM使用戶使用。
(6)用戶還可對DS12C887進行編程以實現多種方波輸出,并可對其內部的三路中斷通過軟件進行屏蔽
2)DS12C887引腳功能
3)DS12C887讀寫時序
4)DS12C887流程圖
進入主程序后,DS12C887首先進行初始化設置,當串行口有數據時,則調用函數從日歷時鐘芯片獲取日歷時鐘信息,調用顯示函數顯示日歷時鐘信息顯示出來,重復進行。這部分包括DS12C887某個單元寫、讀DS12C887某個單元的內容和DS12C887設定時間。
5)時鐘芯片引腳介紹
1)時鐘芯片DS12C887,其引腳分布圖如下所示
MOT (1腳) :總線時序模式選擇腳。接高電平時,選擇MOTOROLA總線方式工作;接低電平或懸空時,芯片按照INTEL總線方式工作。此時其工作時序與MCS51芯片的片外RAM讀寫時序相伺。
NC (2,3,16,20,21,22腳):不解任何引腳。 AD0~AD7(4~11腳):地址/地址數據復用總線引腳。
CS(13腳):片選腳,低電平有效。
AS(14腳):地址鎖存輸入腳。引腳上的正脈沖用于切換地址/數據復用總線。脈沖后沿將地址鎖入DS12887中,在Intel總線方式下,該腳等效于MCS一51系列單片機芯片的ALE腳。
R/W(15腳):讀/寫輸入腳。此引腳有兩種工作方式,在選擇MOTOROLA總線方式下,此引腳用于指示當前的讀寫周期,高電平表示一個讀周期,低電平表示一個寫周期;選擇INTEL中線時序模式時,此引腳為低電平有效的輸入腳,相當于通用RAM的寫使能信號(/WE)
DS(17腳):此引腳有兩種工作方式,當MOT接高電平時時,此引腳為數據鎖存腳;當MOT接低電平時,此引腳為讀輸入腳,在Mcs一51系統(tǒng)中,Ds相等于RD腳。·
RESET(18腳):復位輸入,當 RESET為低電平且VCC≥4.25時,DS12C887芯片執(zhí)行復位操作。該腳上的電壓不影響時鐘、日歷及片內RAM的內容。
IRQ(19腳):中斷申請輸出腳,低電平有效,只要引起中斷的狀態(tài)位有效且相應的中斷允許位為1,則IRQ變?yōu)榈汀NC需靠讀寄存器C來清除該腳信號,RESET腳也可清除該信號。
SQW(23腳):方波信號輸出腳。可通過設置寄存器位SQWE關斷此信號輸出,此信號的輸出頻率也可通過對芯片內部的寄存器編程予以改變。
VCC(24腳):+5V電源端。當Vcc≤3v時,芯片內部自動將Vcc切換至片內置電池上,當VCC恢復為》4.25V后須經過100ms才能對它進行訪問。
6)4個控制寄存器介紹
DS12C887有4個控制寄存器,在任何時間都可以進行訪問,即使處于更新周期。
寄存器A字節(jié)的內容如下。
SET:設置位,不受到復位操作影響,可以進行讀寫。當0時,不處于設置狀態(tài),芯片更新時間數據;當1時,抑制數據更新,可以通過程序設定時間和日歷信息。
PIE:周期性中斷使能位,復位時清除此位,可以進行讀寫。當1時,允許寄存器C中的周期中斷標志位PF,驅動/IRQ引腳向低產生中斷信號輸出,中斷信號產生的周期通過RS0~RE3決定。
AIE:鬧鐘中斷使能位,可以進行讀寫。當1時,允許寄存器C中的鬧鐘中斷標志位AF、鬧鐘發(fā)生時就會通過/IRQ引腳產生中斷輸出。
VRT;RAM和時間有效位。用于指示和VBAT引腳連接的電池狀態(tài)。此位不可寫入,也不受操作的影響,一般的時候讀取時總去為1,如果出現讀取為0的情況,就說明電池沒電了,時間數據和RAM中的數據就會變得不準確。
芯片DS12CR887的113字節(jié)普通RAM空間為非易失性RAM空間,可以在未處理器程序中作為非易失性內存空間使用。
鬧鈴電路
鬧鈴功能是由單片機的I/O口輸出一定頻率方波信號,驅動蜂鳴器發(fā)出特定頻率的聲音信號實現的。當鬧鈴設置的時間到達時鐘的時間時,單片機發(fā)送一個低電平給蜂鳴器,三極管導通驅動蜂鳴器發(fā)出聲音作為定時鬧鈴。
獨立鍵盤電路
當單片機檢測到有按鍵被按下時,就發(fā)射與之相對應的二進制編碼信號
時鐘的電源為+5V直流電源,本設計中可以使用4節(jié)1.5V電池,電源模塊的原理圖如圖2-15所示
評論
查看更多