ds12c887簡(jiǎn)介
DS12C887時(shí)鐘日歷芯片,是由美國(guó) DALLAS公司生產(chǎn)的新型時(shí)鐘日歷芯片,采用CMOS技術(shù)制成。芯片采用24引腳雙列直插式封裝,內(nèi)部集成晶振、振蕩電路、充電電路和可充電鋰電池,組 成一個(gè)加厚的集成電路模塊,在沒(méi)有外部電源的情況下可工作10年。具有良好的微機(jī)接口、精度高、外圍接口簡(jiǎn)單、工作穩(wěn)定可靠等優(yōu)點(diǎn),可廣泛使用于各種需要 較高精度的實(shí)時(shí)場(chǎng)合。
ds12c887特點(diǎn)
1、可作為IBM AT 計(jì)算機(jī)的時(shí)鐘和日歷
2、與MC146818B和DS1287的管腳兼容
3、在沒(méi)有外部電源的情況下可工作10年
4、自帶晶體振蕩器及電池
5、可計(jì)算到2100年前的秒、分、小時(shí)、星期、日期、月、年七種日歷信息并帶閏年
ds12c887引腳圖及功能
引腳功能
GND、 VCC:直流電源,其中VCC接+5V輸入,GND接地,當(dāng)VCC輸入為+5V時(shí),用戶可以訪問(wèn)DS12C887內(nèi)RAM中的數(shù)據(jù),并可對(duì)其進(jìn)行讀、寫操作;當(dāng)VCC的輸入小于+4.25V時(shí),禁止用戶對(duì)內(nèi)部RAM進(jìn)行讀、寫操作,此時(shí)用戶不能正確獲取芯片內(nèi)的時(shí)間信息;當(dāng)VCC的輸入小于+3V時(shí), DS12C887會(huì)自動(dòng)將電源發(fā)換到內(nèi)部自帶的鋰電池上。
MOT:模式選擇腳,DA12C887有兩種工作模式,即Motorola模式和Intel模式,當(dāng)MOT接VCC時(shí),選用的工作模式是Motorola模式,當(dāng)MOT接GND時(shí),選用的是Intel模式。本文主要討論Intel模式。
SQW:方波輸出腳,當(dāng)供電電壓VCC大于4.25V時(shí),SQW腳可進(jìn)行方波輸出,此時(shí)用戶可以通過(guò)對(duì)控制寄存器編程來(lái)得到13種方波信號(hào)的輸出。
AD0~AD7:復(fù)用地址數(shù)據(jù)總線,該總線采用時(shí)分復(fù)用技術(shù),在總線周期的前半部分,出現(xiàn)在AD0~AD7上的是地址信息,可用以選通DS12C887內(nèi)的RAM,總線周期的后半部分出現(xiàn)在AD0~AD7上的數(shù)據(jù)信息。
AS:地址選通輸入腳,在進(jìn)行讀寫操作時(shí),AS的上升沿將AD0~AD7上出現(xiàn)的地址信息鎖存到DS12C887上,而下一個(gè)下降沿清除AD0~AD7上的地址信息,不論是否有效,DS12C887都將執(zhí)行該操作。
DS/RD:數(shù)據(jù)選擇或讀輸入腳,該引腳有兩種工作模式,當(dāng)MOT接VCC時(shí),選用Motorola工作模式,在這種工作模式中,每個(gè)總線周期的后一部分的DS為高電平,被稱為數(shù)據(jù)選通。在讀操作中,DS的上升沿使DS12C887將內(nèi)部數(shù)據(jù)送往總線AD0~AD7上,以供外部讀取。在寫操作中,DS的下降沿將使總線 AD0~AD7上的數(shù)據(jù)鎖存在DS12C887中。
R/W:讀/寫輸入端,該管腳也有2種工作模式,當(dāng)MOT接VCC時(shí),R/W工作在Motorola模式。此時(shí),該引腳的作用是區(qū)分進(jìn)行的是讀操作還是寫操作,當(dāng)R/W為高電平時(shí)為讀操作,R/W為低電平時(shí)為寫操作;當(dāng)MOT接GND時(shí),該腳工作在Intle模式,此時(shí)該作為寫允許輸入。
CS:片選輸入,低電平有效。
ds12c887內(nèi)部結(jié)構(gòu)
上 電/掉 電
當(dāng)VCC高于4.25V 200ms后,芯片可以被外部程序操作; 當(dāng)VCC低于4.25V時(shí),芯片處于寫保護(hù)狀態(tài)(所有的輸入均無(wú)效),同時(shí)所有輸出呈高阻狀態(tài); 當(dāng)VCC低于3V時(shí),芯片將自動(dòng)把供電方式切換為由內(nèi)部電池供電。
ds12c887應(yīng)用電路(一)
基于8031單片機(jī)和DS12C887構(gòu)成的時(shí)間獲取電路
在各種設(shè)備、家電、儀器、工業(yè)控制系統(tǒng)中,可以很容易地用DS12C887 來(lái)組成時(shí)間獲取單元,以實(shí)現(xiàn)各種時(shí)間的獲取。圖2 是用 8031 單片機(jī)和 DS12C887 構(gòu)成的時(shí)間獲取電路圖,其中DS12C887 的基地址為7F00H,相應(yīng)的程序采用 C51 語(yǔ)言編寫(以 Intel 工作模式為 例)。
由 8031 單片機(jī)和 DS12C887 構(gòu) 成的時(shí)間獲取電路的初始化程序如 下:
XBYTE[0x7F00+0x0B]=0x82;
XBYTE[0x7F00+0x0A]=0xA0;
XBYTE[0x7F00+0x0A]=0x20;
XBYTE[0x7F00+0x0B]=0x02;
/*所有的中斷禁止,24小時(shí)制,BCD碼模式*/
以下均獲取時(shí)間程序:
unsigned char data t-century;
unsigned char data t-year;
unsigned char data t-month;
unsigned char data t-date;
unsigned char data t-week;
unsigned char data t-hour;
unsigned char data t-minute;
unsigned char data t-second;
if((XBYTE[7F00+0x0A]&0x80)!=0){
t-century=XBYTE[0x7F00+0x32];/*讀取世紀(jì)*/
t-year=XBYTE[Ox7F00+0x09];/*讀取年份*/
t-month=XBYTE[Ox7F00+0x08];/*讀取月份*/
t-date=XBYTE[Ox7F00+0x07];/*讀取日期*/
t-week=XBYTE[Ox7F00+0x06];/*讀取星期幾*/
t-hour=XBYTE[Ox7F00+0x04];/*讀取小時(shí)*/
t-minute=XBYTE[DS12887+0x02];/*讀取分鐘*/
t-second=XBYTE[Ox7F00+0x00];}/*讀取秒*/
ds12c887應(yīng)用電路(二)
基于51單片機(jī)的DS12C887時(shí)鐘電路圖
?