芯片手冊時鐘pcf8563時序程序_第1頁
芯片手冊時鐘pcf8563時序程序_第2頁
芯片手冊時鐘pcf8563時序程序_第3頁
芯片手冊時鐘pcf8563時序程序_第4頁
已閱讀5頁,還剩8頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、PCF8563 的驅動方實時時鐘日歷PCF8563 的驅動方法實時時鐘日歷PCF8563 是低功耗的 CMOS 實時時鐘日歷,它提供一個可編程時鐘輸出,一個中斷輸出和掉電檢測器,所有的地址和數據通過 I2C 總線接口串行傳遞。最大總線速度為400Kbits/s,每次讀寫數據后,內嵌的字地址寄存器會自動產生增量。它在實際的開發中有著廣泛的應用,如移動其特性如下:、便攜儀器、傳真機、電池電源等。1、2、3、4、5、6、7、8、9、低工作電流:典型值為 0.25A(VDD=3.0V,Tamb=25時)。世紀標志大工作電壓范圍:1.05.5低休眠電流;典型值為 0.25A(VDD=3.0V,Tamb=

2、25) 400KHz 的 I2C 總線接口(VDD=1.85.5V 時)??删幊虝r鐘輸出頻率為:32.768KHz,1024Hz,32Hz,1Hz。和定時器。掉電檢測器。內部集成的振電容。10、片內電源復位功能。11、I2C 總線從地址:讀,0A3H;寫,0A2H。12、開漏中斷引腳。PCF8563 的引腳配置圖:引腳功能詳述如下:PCF8563 的功能框圖:功能描述:PCF8563 有 16 個位寄存器:一個可自動增量的地址寄存器,一個內置 32.768KHz 的振(帶有一個內部集成的電容),一個分頻器(用于給實時時鐘 RTC 提供源時鐘),一個可編程時鐘輸出,一個定時器,一個器,一個掉電檢

3、測器和一個 400KHz I2C總線接口。所有 16 個寄存器設計尋址的 8 位并行寄存器,但不是所有位都有用。前兩個寄存器(內存地址 00H,01H)用于寄存器和狀態寄存器,內存地址 02H08H 用于時鐘計數器(秒年計數器),地址 09H0CH 用于制 CLKOUT 管腳的輸出頻率,地址 0EH 和 0FH寄存器(定義分別用于定時器條件),地址 0DH 控寄存器和定時器寄存警、日寄存器,編碼格式為 BCD,器。秒、分鐘、小時、日、月、年、分鐘、小和寄存器不以 BCD 格式編碼。當一個 RTC 寄存器被讀時,所有計數器的內容被鎖存,因此,在傳送條件下, 可以對時鐘日歷的錯讀。1)功能模式名稱

4、引腳編號功能描述OSCI1振輸入OSCO2振輸出/INT3中斷輸出(開漏;低電平有效)VSS4地SDA5串行數據 I/OSCL6串行時鐘輸入CLKOUT7時鐘輸出 (開漏)VDD8正電源一個或多個寄存器 MSB(AE=Alarm Enable使能位)清 0 時,相應的條將在每分鐘至每范圍內產生一次。設置標志位 AF(件有效,這樣,一個狀態寄存器 2 的位 3)用于產生中斷,AF 只可以用軟件清除。2)定時器8 位的倒計數器(地址 0FH)由定時器寄存器(地址 0EH),定時器寄存器用于設定定時器的頻率(4096,64,1,或 1/60Hz),以及設定定時器有效或無效。定時器從軟件設置的 8 位

5、二進制數倒計數,每次倒計數結束,定時器設置標志位 TF,定時器標志位 TF 只可以用軟件清除,TF 用于產生一個中斷(/INT),每個倒計數周期產生一個脈沖作為中斷信號。TI/TP中斷產生的條件。當讀定時器時,返回當前倒計數的數值。3) CLKOUT 輸出管腳 CLKOUT 可以輸出可編程的方波。CLKOUT 頻率寄存器(地址 0DH)決定方波的頻率,CLKOUT 可以輸出 32.768KHz( 缺省值),1024,32,1Hz 的方波。CLKOUT為開漏輸出管腳,通電時有效,無效時為高阻抗。4) 復位PCF8563 包含一個片內復位電路,當振下,I2C 總線初始化,寄存器 TF、V器和地址指

6、針被清。5)掉電檢測器和時鐘停止工作時,復位電路開始工作。在復位狀態1、TD0、TESTC、AE 被置邏輯,其它的寄存PCF8563 內嵌掉電檢測器,當 VDD低于 Vlow 時,位 VL(Voltage Low,秒寄存器的位 7)被置,用于指明可能產生確的時鐘日歷信息,VL 標志位只可以用軟件清除當VDD 慢速降低(例如以電池供電)達到 Vlow 時,標志位 VL 被設置,這時可能會產生中斷。6)寄存器結構寄存器概況如下:BCD 格式寄存器概況如下:地址寄存器名稱D7D6D5D4D3D2D1D002H秒VL0059BCD 碼格式數03H分鐘0059BCD 碼格式數04H小時0059BCD 碼

7、格式數05H日0131BCD 碼格式數06H0607H月世紀C0112BCD 碼格式數08H年0099BCD 碼格式數09H分鐘AE0059BCD 碼格式數0AH小警AE0023BCD 碼格式數地址寄存器名稱D7D6D5D4D3D2D1D000H狀態寄存器 1TEST0STOP0TESTC00001H狀態寄存器 2000TI/TPAFTFAIETIE0DHCLKOUT 頻率寄存器FE-FD1FD00EH定時器寄存器TE-TD1FD10FH定時器倒計數數值寄存器定時器倒計數數值1.狀態寄存器 1狀態寄存器 1 位描述(地址 00H)2.狀態寄存器 2狀態寄存器 2 位描述(地址 01H)位符號描

8、述7,6,50缺省值置邏輯 04TI/TFTI/TP=0:當 TF 有效時 INT 有效 (取決于 TIE 的狀態) TI/TP=1:INT 脈沖有效 (取決于 TIE 的狀態)注意:若 AF 和 AIE 都有效時,則 INT 一直有效3AF當發生時,AF 被置邏輯 1;在定時器倒計數結束時TF 被置邏輯 1,它們在被軟件重寫前一直保持原有值, 若定時器和中斷都請求時,中斷源由AF 和TF 決定, 若要使清除一個標志位而防止另一標志位被重寫,應運 用邏輯指令 AND。2TF1AIE標志位 AIE 和 TIE 決定一個中斷的請求有效或無效,當AF 或 TF 中一個為“1”時中斷是 AIE 和 T

9、IE 都置“1” 時的邏輯或。AE=0:中斷無效;AIE=1:中斷有效0TIE位符號描述7TEST1TEST1=0 普通模式TEST1=1 EXT_CLK 測試模式5STOPSTOP=0時鐘運行STOP=1 所有分頻器異步置邏輯 0時鐘停止運行(CLKOUT 在 32768Hz 時可用)3TESTCTESTC=0 電源復位功能失效(普通模式時置邏輯 0) TESTC=1 電源復位功能有效6,4,2,1,00缺省值置邏輯 00BH日AE0131BCD 碼格式數0CHAE06/INT 操作(位 TI/TP=1)注 1.TF 與/INT 同時有效注 2.n 為倒計數定時器的數值,當 n=0 時定時器

10、停止工作。AF 與 TF 值描述3.秒、分鐘與小時寄存器秒VL 寄存器位描述(地址 02H)分鐘寄存器位描述(地址 03H)小時寄存器位描述(地址 04H)位符號描述76無效50<小時>代表 BCD 格式的當前小時數值, 值為 0023位符號描述7無效60<分鐘>代表 BCD 格式的當前分鐘數值, 值為 0059位符號描述7VLVL=0:保證準確的時鐘日歷數據VL=1:不保證準確的時鐘日歷數據60<秒>代表 BCD 格式的當前秒數值,值為 0059例如:<秒>=1011001,代碼 59 秒R/W位:AF位:TF值描述值描述Read 讀01標志無

11、效標志有效01定時器標志無效定時器標志有效Write 寫01標志被清除 標志保持不變01定時器標志被清除 定時器標志保持不變源 時 鐘(Hz)/INT 周期n=1n>140961/81921/4096641/1281/6411/641/641/601/641/64TIE=0:定時器中斷無效;TIE=1:定時器中斷有效4.日、月世紀與年寄存器日寄存器位描述(地址 05H)寄存器位描述(地址 06H)分配表月世紀寄存器位描述(地址 07H)月分配表:月份位 4位 3位 2位 1位 0一月00001二月00010三月00011四月00100五月0010100110七月00111八月01000位

12、符號描述7C世紀位:C=0 指定世紀數為 20×× ,C=1 指定世紀數為 19×× ,“××”為年寄存器中的值,參見表 18。當年寄存器中的值由 99 變為 00 時世紀位會改變。65無用40<月>代碼 BCD 格式的當前月份,值為 0112日(day)位 2位 1位 0日000一001二010三011四100五101六110位符號描述76無效50<日>代表 BCD 格式的當前日數值,值為 0131。當年計數器的值是閏年時,PCF8563 自動給二月增加一個值,使其成為 29 天位符號描述76無效50<

13、日>代表 BCD 格式的當前日數值,值為 0131。當年計數器的值是閏年時,PCF8563 自動給二月增加一個值,使其成為 29 天年寄存器位描述(地址 08H)5.寄存器當一個或多個寄存器寫入合法的分鐘、小時、日或數值并且它們相應的 AE(Alarm Enable)位為邏輯,以及這些數值與當前的分鐘、小時、日或數值相等,標志位 AF(Alarm Flag)被設置,AF 保存設置值直到被軟件清除為止,AF 被清除后,只有被設置。寄存器在它們相應位 AE在時間增量與條件再次相匹配時時將被忽略。置為邏輯分鐘寄存器位描述(地址 09H)小警寄存器位描述(地址 0AH)寄存器位描述(地址 0BH

14、)日寄存器位描述(地址 0CH)6.CLKOUT 頻率寄存器CLKOUT 頻率寄存器位描述(地址 0DH)位符號描述7AEAE=0;有效。AE=1;無效60<>代表 BCD 格式的數值, 值為 06位符號描述7AEAE=0:日有效。AE=1:日無效。60<日>代表 BCD 格式的日數值, 值為 0031位符號描述7AEAE=0AE=0:小警有效,AE=1:無效60<小警>代表 BCD 格式的小警數值, 值為 0023位符號描述7AEAE=0,分鐘有效;AE=1,分鐘無效60<分鐘>代表 BCD 格式的分鐘數值, 值為 0059位符號描述70<

15、;年>代表 BCD 格式的當前年數值,值為 0099。九月01001十月10000十一月10001十二月10010CLKOUT 頻率選擇表7.倒計數定時器寄存器定時器寄存器是一個 8 位字節的倒計數定時器,它由定時器器中位 TE 決定有效或無效,定時器的時鐘也可以由定時器器選擇,其它定時器功能,如中斷產生,由狀態寄存器 2。為了能精確讀回倒計數的數值,I2C總線時鐘 SCL 的頻率應至少為所選定定時器時鐘頻率的兩倍。定時器器寄存器位描述(地址 OEH)定時器時鐘頻率選擇定時器倒計數數值寄存器位描述(地址 OFH)7)EXT_CLK 測試模式測試模式用于測試、建立測試模式和RTC的操作。測

16、試模式由狀態寄存器的位 TEST1 設定,這時 CLKOUT 管腳成為輸入管腳。在測試模式狀態下,通過 CLKOUT 管腳輸入的頻率信號代替片內的 64Hz 頻率信號,每 64 個上升沿將產生秒的時間增量。位符號描述70<定時器倒計數數值>倒計數數值“n”,倒計數周期=n/時鐘頻率TD1TD0定時器時鐘頻率(Hz)0040960164101111/60位符號描述7TETE=0:定時器無效。TE=1:定時器有效。62無用1TD1定時器時鐘頻率選擇位,決定倒計數定時器的時鐘頻率,參見表 26,不用時 TD1 和 TD0 應設為“11”(1/60Hz),以降低電源損耗。0TD0FD1FD

17、0fCLKOUT0032768Hz011024Hz1032Hz111Hz位符號描述7FEFE=0:CLKOUT 輸出被并設成高阻抗。FE=1:CLKOUT 輸出有效。62無效10FD1 FD0用 于CLKOUT 的 頻 率 輸 出 管 腳(fCLKOUT )注意:進入 EXT_CLK 測試模式時時鐘不與片內 64Hz 始終時鐘同步,也確定不出預分頻的狀態。1.操作舉例、進入 EXT_CLK 測試模式:設置狀態寄存器的位 7(TEST=1)。、設置、清除狀態寄存器的位 5(STOP=1)。狀態寄存器的位 5(STOP=0)。、設置時間寄存器(秒、分鐘、小時、日、提供 32 個時鐘脈沖給 CLKO

18、UT。 、讀時間寄存器觀察第一次變化。、提供 64 個時鐘脈沖給 CLKOUT。8)電源復位(POR)失敗模式、月世紀和年)為期望值。POR 的持續時間直接與振的起動時間有關。一種內嵌的長時間起動的電路可使 POR 失效,這樣可使設備測試。這種模式的設定要求 I2C 總線管腳 SDA 和 SCL 的信號波形如下圖所示,圖中所有的時間值為所需的最小值。當進入失敗模式時,立即停止復位,操作通過 I2C 總線進入 EXT_CLK 測試模式。設置位 TESTC 邏輯 0 可消除失敗模式,再次進入失敗模式只有在設置 TESTC 為邏輯后進行。在普通模式時設置 TESTC 為邏輯 0 沒有意義,除非想進入

19、 POR 失敗模式。PCF8563 的驅動程序如下:/*PCF8563 I2C 總線從地址:讀:0A3H;寫:0A2H;寄存器(地址 00H,01H) 用于寄存器和狀態寄存器(地址 02H08H) 用于時鐘計數器(秒年計數器)(地址 09H0CH ) 用于(地址 0DH)寄存器(定義條件)CLKOUT 管腳的輸出頻率(地址 0EH 和 0FH) 分別用于定時器秒、分鐘、小時、日、月、年、分鐘寄存器和定時器寄存器。、小警、日寄存器,編碼格式為 BCD,寄存器不以 BCD 格式編碼。和5:BCD 格式寄存器概況標明“”的位無效地址 寄存器名稱 Bit7 Bit6 Bit5 Bit4 Bit3 Bi

20、t2 Bit1 Bit002h 03h 04h 05h 06h 07h 08h09h秒 VL 0059BCD 碼格式數分鐘 - 0059BCD 碼格式數小時 - - 0059BCD 碼格式數日 - - 0131BCD 碼格式數- - - - - 06月/世紀 C - - 0112 BCD 碼格式數年 0099 BCD 碼格式數分鐘AE 0059 BCD 碼格式數警 AE - 0023 BCD 碼格式數AE - 0131 BCD 碼格式數AE060Ah 小0BH 日0CH*/void Time_putnum(unsigned char datax)unsigned char temp; temp

21、=datax;Store0=(temp>>4)&0x0f; /*十位*/ Store1=temp&0x0f; /*個位*/*內部函數,I2C 開始*/ void Start()/EA=0; SDA=1; SCL=1;delay(2); SDA=0;delay(2); SCL=0;/*內部函數,I2C 結束*/ void Stop()SDA=0;SCL=0;delay(2); SCL=1;delay(2); SDA=1;delay(2);/EA=1;/*內部函數,輸出 ACK ,每個字節傳輸完成,輸出 ack=0,結束讀書據,ack=1;*/ void WriteAC

22、K(unsigned char ack)SDA=ack; delay(2); SCL=1;delay(2);SCL=0;/*內部函數,等待 ACK*/ void WaitACK()unsigned char errtime=20; SDA=1;delay(2); /*讀 ACK*/ SCL=1;delay(2); while(SDA)errtime-; if(!errtime) Stop(); SCL=0;delay(2);/*內部函數.輸出數據字節:B=數據*/ void writebyte(unsigned char wdata)unsigned char i; for(i=0;i<

23、8;i+)if(wdata&0x80) SDA=1; else SDA=0; wdata<<=1;SCL=1;delay(2); SCL=0;WaitACK(); /I2C 器件或通訊出錯,將會I2C 通訊/*內部函數.輸入數據出口:B*/unsigned char Readbyte()unsigned char i,bytedata; SDA=1;for(i=0;i<8;i+)SCL=1;bytedata<<=1; bytedata|=SDA; SCL=0;delay(2);return(bytedata);/*輸出數據->pcf8563*/ vo

24、id writeData(unsigned char address,unsigned char mdata)Start();writebyte(0xa2); /*寫命令*/ writebyte(address); /*寫地址*/ writebyte(mdata); /*寫數據*/ Stop();/*輸入數據<-pcf8563*/ unsigned char ReadData(unsigned char address) /*單字節*/unsigned char rdata; Start();writebyte(0xa2); /*寫命令*/ writebyte(address); /*寫

25、地址*/ Start();writebyte(0xa3); /*讀命令*/ rdata=Readbyte(); WriteACK(1);Stop(); return(rdata);void ReadData1(unsigned char address,unsigned char count,unsigned char * buff) /*多字節*/unsigned char i;Start();writebyte(0xa2); /*寫命令*/ writebyte(address); /*寫地址*/ Start();writebyte(0xa3); /*讀命令*/ for(i=0;i<count;i+)buffi=Readbyte(); if(i<count-1) WriteACK(0);WriteACK(1); Stop();/*內部函數,讀入時間到內部緩沖區

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論