版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、Good is good, but better carries it.精益求精,善益求善。DS12887使用-DS12887為DALLAS公司生產(chǎn)的實(shí)時時鐘芯片,除具有實(shí)時鐘功能外,它還具有114字節(jié)的通用RAM。內(nèi)藏鋰電池,并與廣泛應(yīng)用的DS1287、MC146818B腳對腳兼容。本文從應(yīng)用角度出發(fā),概述了其功能特點(diǎn)、外部特性、內(nèi)部結(jié)構(gòu)及與微機(jī)芯片的接口應(yīng)用。關(guān)鍵詞:更新周期;非易失RAM;各總線兼容;定鬧中斷;周期性中斷1.DS12887的功能特點(diǎn)DS12887是美國達(dá)拉斯半導(dǎo)體公司最新推出的時鐘芯片,采用CMOS技術(shù)制成,把時鐘芯片所需的晶振和外部鋰電池相關(guān)電路集于芯片內(nèi)部,同時它與目
2、前IBMAT計算機(jī)常用的時鐘芯片MC146818B和DS1287管腳兼容,可直接替換。采用DS12887芯片設(shè)計的時鐘電路勿需任何外圍電路并具有良好的微機(jī)接口。DS12887芯片具有微軾耗、外圍接口簡單、精度高、工作穩(wěn)定可靠等優(yōu)點(diǎn),可廣泛用于各種需要較高精度的實(shí)時時鐘場合中。其主要功能如下:(1)內(nèi)含一個鋰電池,斷電情況運(yùn)行十年以上不丟失數(shù)據(jù)。(2)計秒、分、時、天、星期、日、月、年,并有閏年補(bǔ)償功能。(3)二進(jìn)制數(shù)碼或BCD碼表示時間、日歷和定鬧。(4)12小時或24小時制,12小時時鐘模式帶有PWM和AM指導(dǎo),有夏令時功能。(5)MOTOROLA5和INATAEL總線時序選擇。(6)有12
3、8個RAM單元與軟件音響器,其中14個作為字節(jié)時鐘和控制寄存器,114字節(jié)為通用RAM,所有ARAM單元數(shù)據(jù)都具有掉電保護(hù)功能。(7)可編程方波信號輸出。(8)中斷信號輸出(IRQ)和總線兼容,定鬧中斷、周期性中斷、時鐘更新周期結(jié)束中斷可分別由軟件屏蔽,也可分別進(jìn)行測試。2.DS12887的原理及管腳說明DS12887內(nèi)部原理如圖1所示,由振蕩電路、分頻電路、周期中斷/方波選擇電路、14字節(jié)時鐘和控制單元、114字節(jié)用戶非易失RAM、十進(jìn)制/二進(jìn)制計加器、總線接口電路、電源開關(guān)寫保護(hù)單元和內(nèi)部鋰電池等部分組成。圖2顯示了DS12887管腳排列圖。下面分別說明管腳功能:GND,VCC:直流電源+
4、5V電壓。當(dāng)5V電壓在正常范圍內(nèi)時,數(shù)據(jù)可讀寫;當(dāng)VCC低于4.25V,讀寫被禁止,計時功能仍繼續(xù);當(dāng)VCC下降到3V以下時,RAM和計時器被切換到內(nèi)部鋰電池。MOT(模式選擇):MOT管腳接到VCC時,選擇MOTOROLA時序,當(dāng)接到GFND時,選擇INTEL時序。SQW(方波信號同):SQW管腳能從實(shí)時時鐘內(nèi)部15級分頻器的13個抽頭中選擇一個作為輸出信號,其輸出頻率可通過對寄存器A編程改變。AD0AD7(雙向地址/數(shù)據(jù)復(fù)用線):總線接口,可與MOTOROLA微機(jī)系列和INTEL微機(jī)系列接口。AS(地址選通輸入):用于實(shí)現(xiàn)信號分離,在AD/ALE的下降沿把地址鎖入DS12887。DS(數(shù)據(jù)
5、選通或讀輸入):DS/RD客腳有兩種操作模式,取決于MOT管腳的電平,當(dāng)使用MOTOROLA時序時,DS是一正脈沖,出現(xiàn)在總線周期的后段,稱為數(shù)據(jù)選通;在讀周期,DS指示DS12887驅(qū)動雙向總的時刻,在寫周期,DS的后沿使DS12887鎖存寫數(shù)據(jù)。選擇INTEL時序時,DS稱作(RD),RD與典型存貯器的允許信號(OE)的定義相同。R/W(讀/寫輸入):R/W管腳也有兩種操作模式。選MOTOROLA時序時,R/W是一電平信號,指示當(dāng)前周期是讀或?qū)懼芷?,DSO為高電平時,R/W高電平指示讀周期,R/W低電平指示寫周期;選INTEL時序,R/W信號是一低電平信號,稱為WR。在此模式下,R/W管腳
6、與通用RAM的寫允許信號(WE)的含義相同。CS(片選輸入):在訪問DS12887的總線周期內(nèi),片選信號必須保持為低。IRQ(中斷申請輸入):低電平有效,可作微處理的中斷輸入。沒有中斷條件滿足時,IRQ處于高阻態(tài)。IRQ線是漏極開路輸入,要求外接上接電阻。RESET(復(fù)位輸出):當(dāng)該腳保持低電平時間大于200ms,保證DS12887有效復(fù)位。3.DS12887的內(nèi)部功能3.1地址分配圖DS12887的地下分配圖如圖3所示,由114字節(jié)的用戶RAM,10字節(jié)的存放實(shí)時時鐘時間。日歷和定鬧RAM及用于控制和狀態(tài)的4字節(jié)特殊寄存器組成,幾乎所有的128個字節(jié)可直接讀寫。3.2時間、日歷和定鬧單元時間
7、和日歷信息通過讀相應(yīng)的內(nèi)存字節(jié)來獲取,時間、日歷和定鬧通過寫相應(yīng)的內(nèi)存字節(jié)設(shè)置或初始化,其字節(jié)內(nèi)容可以是十進(jìn)制或BCD形式。時間可選擇12小時制或24小時制,當(dāng)選擇12小時制時,小時字節(jié)搞位為邏輯“1”代表PM。時間、日歷和定鬧字節(jié)是雙緩沖的,總是可訪問的。每秒鐘這10個字節(jié)走時1秒,檢查一次定鬧條件,如在更新時,讀時間和日歷可能引起錯誤。三個字節(jié)的定鬧字節(jié)有兩種使用方法。第一種,當(dāng)定鬧時間寫入相應(yīng)時、分、秒定鬧單元,在定允許鬧位置高的條件下,定鬧中斷每天準(zhǔn)時起動一次。第二種,在三個定鬧字節(jié)中插入一個或多個不關(guān)心碼。不關(guān)心碼是任意從C到FF的16進(jìn)制數(shù)。當(dāng)小時字節(jié)的不關(guān)心碼位置位時,定鬧為小時
8、發(fā)生一次由于相線小時和分鐘定鬧字節(jié)置不關(guān)心位時,每分鐘定鬧一次;當(dāng)三個字節(jié)都置不關(guān)心位時,每秒中斷一次。3.3非易失RAM在DS12887中,114字節(jié)通用非易失RAM不專用于任何特殊功能,它們可被處理器程序用作非易失內(nèi)存,。在更新周期也可訪問。3.4中斷RTC實(shí)時時鐘加RAM向處理器提供三個獨(dú)立的、自動的中斷源。定鬧中斷的發(fā)生率可編程,從每秒一次到每天一次,周期性中斷的發(fā)生率可從500ms到122s選擇。更新結(jié)束中斷用于向程序指示一個更新周期完成。中斷控制和狀態(tài)位在寄存器B和C中,本文的其它部分將詳細(xì)描述每個中斷發(fā)生條件。3.5晶振控制位DS12887出廠時,其內(nèi)部晶振被關(guān)掉,以防止鋰電池在
9、芯片裝入系統(tǒng)前被消耗。寄存器A的BIT4BIT6為010時打開晶振,分頻鏈復(fù)位,BIT4BIT6的其它組合都是使晶振關(guān)閉。3.6方波輸出選擇如圖1原理圖所示,15級分步抽著中的13個可用于15選1選擇器,選擇分頻器抽頭的目的是在SQW管腳產(chǎn)生一個方波信號,其頻率由寄存器A的RS0RS3位設(shè)置。SQW頻率選擇與周期中斷發(fā)生器共離15選1選擇器,一旦頻率選擇好,通過用程序控制方波輸出允許位SWQE來控制SQW管腳輸出的開關(guān)。3.7周期中斷選擇周期中斷可在IRQ腳產(chǎn)生500ms一次到每122s一次的中斷,中斷頻率同樣由寄存A確定,它的控制位為寄存器B中的PIE位。3.8更新周期DS12887每秒執(zhí)行
10、一次更新周期還比較每一定鬧字節(jié)與相應(yīng)的時間字節(jié),如果匹配枵三個字節(jié)都是不關(guān)心碼,則產(chǎn)生一次定鬧中斷。4.DS12887狀態(tài)控制寄存器DS12887有4個控制寄存器,它們在任何時間都可訪問,即使更新周期也不例外。4.1寄存器ABIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0UIPDV2DV1DV0RS3RS2RS1RS0UIP:更新周期正在進(jìn)行位。當(dāng)UIP為1,更新轉(zhuǎn)換將很快發(fā)生,當(dāng)UIP為0,更新轉(zhuǎn)換至少在244s內(nèi)不會發(fā)生。DV0,DV1,DV2:用于開關(guān)晶振和復(fù)位分頻鏈。這些位的010唯一組合將打開晶振并允許RTC計時。表1列了郵周期中斷率和方波頻率。RS3,RS2,RS1
11、,RS0:頻率選擇位,從15級頻率器13個抽頭中選一個,或禁止分頻器輸入,選擇好的抽頭用于產(chǎn)生方波(SQW管腳)輸出和周期中斷,用戶可以:(1)用PIE位允許中斷:(2)用SQWE位允許SQAW輸出;(3)二者同時允許并用相同的頻率;(4)都不允許4.2寄存器BBIT7BIT6BIT5BIT4BIOT3BIT2BIT2BIT1SETPIEALE0VIESQWEDM24/12DSESET:SET為0,時間更新正常進(jìn)行,每秒計數(shù)走時一次,當(dāng)SET位寫入1,時間更新被禁止,程序可初始化時間和日歷字節(jié)。PIE:周期中斷勁旅位,PIE為1,則允許以選定的頻率拉低IRQ管腳,產(chǎn)和不足齒數(shù)民:PIE為0,則
12、禁止中斷。AIE:定鬧中斷允許位,PIE為1,允許中斷,否則禁止中斷。SQWE:方波允許位,置1選定頻率方波從SQW腳輸出;為0-時,SQW腳為低。DM:數(shù)據(jù)模式位,DM為1青蛙為十進(jìn)制數(shù)據(jù),而0表明是BCD碼的數(shù)據(jù)。24/12:小時格式位,1表明24小時械,而0表明12小時械。DSE:P夏令時允許位,當(dāng)DSE置1時允許兩個特殊的更新,在四月份的第一時期日、時間從1:59:59AM時改變?yōu)?:00:00AM,當(dāng)DSE位為0,這種特殊修正不發(fā)生。4.3寄存器CBIT7BIY6BIT5BIT4BIT3BIT2BIT1BIT0IRQFPFAFVF0000IRQF:中斷申請標(biāo)志位。當(dāng)下列表達(dá)式中一個或
13、多個為真時,置1。PF=PIE=1;AF=AIE=1;UF=UIE=1;即:IRQF=PFPIE+AFAIE+UFUIE只要IRQF為1,IRQ管腳輸出低,程序讀寄存器C以后或RESET管腳為低后,所有標(biāo)志位清零。AF:定鬧中斷標(biāo)志位,只讀,AF為1表明現(xiàn)在時間與定鬧時間匹配。VF:更新周期結(jié)束標(biāo)志位。VF為1表明更新周期結(jié)束。BIAT0BIT3:未用狀態(tài)位,讀出總為0,不能寫入。4.4寄存器DBIT7BIT6BIT5BIT4BIOT3BIT2BIT1BIT0VRT0000000VRT:內(nèi)部鋰電池狀態(tài)位,平時應(yīng)總讀出1,如出現(xiàn)0,表明內(nèi)部鋰電池耗盡。BIT0BIT6:未用狀態(tài)位,讀出總為0,不
14、能寫入。5.硬件接口電路DS12887時鐘芯片和80C31單微機(jī)的接口電路如圖4所示。模式選擇腳MOT拉地,選擇不NTEL時序,選擇DS12887時鐘芯片的地址總線及AS端口和80C31單片微機(jī)的P0及ALE端直接相聯(lián);而DS、R/W讀寫控制線與單片機(jī)的RD、WAR控制線相連;DS12887的高位地址由80C31半日片機(jī)的P2.7端口來片選,則DS12887的高8位地址定為7FH,而其低8俠地址則由芯片內(nèi)部各單元的地址來決定(00H3FH);DS12887的中斷輸出端IRQ和80C的外部INT0端相聯(lián),給單片機(jī)提供中斷信號;DS12887的SQW端口可編程產(chǎn)生方波輸出信號。6.接口軟件下面為D
15、S12887時鐘芯片和80C31單片機(jī)的接口軟件,假定采用每天24小時制的非夏令時,時間數(shù)據(jù)格式為BCD碼,初始化時間為1996年1月1日9時00分00秒,1k方波輸出。時鐘芯片每一秒種向單片機(jī)申請中斷一次,一方面讓單片機(jī)修改一次時鐘顯示,另一方面也給單片微機(jī)系統(tǒng)提供時間基準(zhǔn)。(1)DS12887時鐘芯片的初始化寫入程序MOVDPTR,#7F0AH;寄存器A地址MOVA,#70H:DV2DV0=111,分頻復(fù)位MOVXDPTR,AAINCDPTR:到寄存器B地址MOVA,#8AH:停止更新,允許更新中斷,選BCD碼,24小時制MOVXDPRT,AMOVQPL,#00H,秒單元地址CLRA:00
16、秒MOVXDPTR,AMOVDPL,#02H;分單元地址CLRA:00分MOVXDPTR,AMOVDPL,#04H;時單元地址MOVA,#09H;9時MOVXDPTR,AMOVDPL#07H;日單元地址MOVA,01H:1日MOVXDPTR,AINCDPTR:到月單元地址MOVA,01H;1月MOVXDPTR,AICDPTR:到年單元地址MOVA,#96H;1996年MOVXDPTR,AINCDPTR;到寄存器A地址MOVA,#26H;DV2DV0=010RS3RS0=0110MOVXDPTR,A:選周期中斷率為976.5625s,允許方波輸出,頻率1kHzINCDPTR:到寄存器BMOVA,
17、#1AH;每秒更新一次,允許方波輸出,24小時制MOVXDPTR,A:時鐘開始運(yùn)行(2)讀取DS12887時鐘日歷數(shù)據(jù)程序DS12887的日歷時鐘通常有中斷和查詢兩種方法讀出。但在讀數(shù)據(jù)時,首先要判斷數(shù)據(jù)是否更新結(jié)束,只有在數(shù)據(jù)更新結(jié)束時數(shù)據(jù)讀出才有效。采用查詢法讀取數(shù)據(jù):查詢寄存器A的UIP位,當(dāng)UIP=0時,數(shù)據(jù)更新結(jié)束,可以讀出。以下是采用查詢方法,從秒至年單元的數(shù)據(jù)讀出后存入80C31內(nèi)部RAM的3035H單元中,該部分程序如下:MOVDPTR,#7F0AH;寄存器A地址MOVXA,DPTRWAIT:JBACC,7,WAIT:UIP=1則等待更新完畢MOVDPL,00H;秒地址MOVR
18、0,#30H;取目標(biāo)首地址MOVXA,DPTR;取秒數(shù)據(jù)MOVR0,A:送入80C31的內(nèi)部RAM緩沖區(qū)ICDPTR:移指針I(yè)CR0;以下略采用中斷法讀取數(shù)據(jù)當(dāng)DS12887發(fā)出中斷請示,單片微機(jī)可以響應(yīng)中斷而讀取日歷數(shù)據(jù)。對于更新結(jié)束中斷,中斷時更新結(jié)束,數(shù)據(jù)有效,可以直接讀取日歷數(shù)據(jù);對于鬧鐘中斷和周期中斷也需查詢寄存器A的UIP位,當(dāng)UIP=0時,數(shù)據(jù)更新結(jié)束,再讀出日歷時鐘,具體指令這里不再列出。DS12887時鐘驅(qū)動程序/*文件名稱:ds12c887.c適用范圍:時鐘芯片ds12c887的驅(qū)動程序*/#include/*命令常量定義*/#defineCMD_START_DS12C88
19、70 x20/*開啟時鐘芯片*/#defineCMD_START_OSCILLATOR0 x70/*開啟振蕩器,處于抑制狀態(tài)*/#defineCMD_CLOSE_DS12C8870 x30/*關(guān)掉時鐘芯片*/*所有的置位使用或操作,清除使用與操作*/#defineMASK_SETB_SET0 x80/*禁止刷新*/#defineMASK_CLR_SET0 x7f/*使能刷新*/#defineMASK_SETB_DM0 x04/*使用HEX格式*/#defineMASK_CLR_DM0 xfb/*使用BCD碼格式*/#defineMASK_SETB_24120 x02/*使用24小時模式*/#d
20、efineMASK_CLR_24120 xfd/*使用12小時模式*/#defineMASK_SETB_DSE0 x01/*使用夏令時*/#defineMASK_CLR_DSE0 xfe/*不使用夏令時*/*寄存器地址通道定義*/xdatacharchSecondsChannel_at_0 xdf00;xdatacharchMinutesChannel_at_0 xdf02;xdatacharchHoursChannel_at_0 xdf04;xdatacharchDofWChannel_at_0 xdf06;xdatacharchDateChannel_at_0 xdf07;xdatacha
21、rchMonthChannel_at_0 xdf08;xdatacharchYearChannel_at_0 xdf09;xdatacharchCenturyChannel_at_0 xdf32;xdatacharchRegA_at_0 xdf0a;xdatacharchRegB_at_0 xdf0b;xdatacharchRegC_at_0 xdf0c;xdatacharchRegD_at_0 xdf0d;/*函數(shù)聲明部分*/voidStartDs12c887(void);voidCloseDs12c887(void);voidInitDs12c887(void);unsignedcharG
22、etSeconds(void);unsignedcharGetMinutes(void);unsignedcharGetHours(void);unsignedcharGetDate(void);unsignedcharGetMonth(void);unsignedcharGetYear(void);unsignedcharGetCentury(void);voidSetTime(unsignedcharchSeconds,unsignedcharchMinutes,unsignedcharchHours);voidSetDate(unsignedcharchDate,unsignedchar
23、chMonth,unsignedcharchYear);/*函數(shù)功能:該函數(shù)用來啟動時鐘芯片工作應(yīng)用范圍:僅在時鐘芯片首次使用時用到一次入口參數(shù):出口參數(shù):*/voidStartDs12c887(void)chRegA=CMD_START_DS12C887;/*函數(shù)功能:該函數(shù)用來關(guān)閉時鐘芯片應(yīng)用范圍:一般用不到入口參數(shù):出口參數(shù):*/voidCloseDs12c887(void)chRegA=CMD_CLOSE_DS12C887;voidInitDs12c887()StartDs12c887();chRegB=chRegB|MASK_SETB_SET;/*禁止刷新*/chRegB=chReg
24、B&MASK_CLR_DM|MASK_SETB_2412&MASK_CLR_DSE;/*使用BCD碼格式、24小時模式、不使用夏令時*/chCenturyChannel=0 x21;/*設(shè)置為21世紀(jì)*/chRegB=chRegB&MASK_CLR_SET;/*使能刷新*/*函數(shù)功能:該函數(shù)用來從時鐘芯片讀取秒字節(jié)應(yīng)用范圍:入口參數(shù):出口參數(shù):*/unsignedcharGetSeconds(void)return(chSecondsChannel);/*函數(shù)功能:該函數(shù)用來從時鐘芯片讀取分字節(jié)應(yīng)用范圍:入口參數(shù):出口參數(shù):*/unsignedcharGetMinutes(void)return(chMinutesChannel);/*函數(shù)功能:該函數(shù)用來從時鐘芯片讀取小時字節(jié)應(yīng)用范圍:入口參數(shù):出口參數(shù):*/unsignedcharGetHours(void)return(chHoursChannel);/*函數(shù)功能:該函數(shù)用來從時鐘芯片讀取日字節(jié)應(yīng)用范圍:入口參數(shù):出口參數(shù):*/unsignedcharGetDate(void)return(chDateChannel);/*函數(shù)功能:該函數(shù)用來從時鐘芯片讀取月字
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度籃球運(yùn)動員個人榮譽(yù)獎勵合同3篇
- 公益性崗位勞動合同協(xié)議書(2025年度)-社區(qū)健康促進(jìn)3篇
- 2025年度新能源汽車合伙人股權(quán)分配與產(chǎn)業(yè)鏈整合合同3篇
- 2025年度農(nóng)村宅基地房屋租賃與鄉(xiāng)村旅游資源開發(fā)合同2篇
- 2025年農(nóng)村自建房安全責(zé)任追究協(xié)議書
- 二零二五年度智能機(jī)器人研發(fā)項目采購合同風(fēng)險管理與防范3篇
- 2025年度智能制造企業(yè)監(jiān)事聘用合同規(guī)范文本3篇
- 二零二五石材品牌授權(quán)與市場營銷合作合同3篇
- 二零二五年度日本語言學(xué)校入學(xué)合同2篇
- 二零二五年度公司與公司簽訂的智慧社區(qū)建設(shè)合作協(xié)議3篇
- T-CECS120-2021套接緊定式鋼導(dǎo)管施工及驗(yàn)收規(guī)程
- 2025年高考化學(xué)二、三輪復(fù)習(xí)策略講座
- 2022年高考數(shù)學(xué)試卷(上海)(秋考)(空白卷)
- 山東省濟(jì)南市語文小升初2024年模擬試題與參考答案
- 裝配式建筑復(fù)習(xí)試題及答案
- 空氣動力學(xué)仿真技術(shù):湍流模型:k-ε湍流模型原理與應(yīng)用
- 高中期末考試考風(fēng)考紀(jì)及誠信教育
- 2025屆廣東省深圳市深圳外國語九年級物理第一學(xué)期期末經(jīng)典試題含解析
- 機(jī)械工程技術(shù)訓(xùn)練智慧樹知到期末考試答案章節(jié)答案2024年北京航空航天大學(xué)
- 醫(yī)生與患者關(guān)系中的信任與治療
- 心衰患者的容量管理中國專家共識-共識解讀
評論
0/150
提交評論