時鐘芯片DS及其應用_第1頁
時鐘芯片DS及其應用_第2頁
時鐘芯片DS及其應用_第3頁
時鐘芯片DS及其應用_第4頁
時鐘芯片DS及其應用_第5頁
已閱讀5頁,還剩28頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、 時鐘計數功效,能夠對秒、分鐘、小時、月、星期、年計數。年計數可到達 2100 年。 有 31*8 位額外數據暫存存放器 最少 I/O 引腳傳輸,經過三引腳SCLK,RST,IO控制 工作電壓: 2.0-5.5V 工作電流小于 320 納安( 2.0V ) 讀寫時鐘存放器或內部 RAM ( 31*8 位額外數據暫存存放)能夠采取單字節模式和突發模式 8-pin DIP 封裝或 8-pin SOICs 兼容 TTL ( 5.0V ) 可選工業級別,工作溫度 -40 85 攝氏度 兼容 DS1202 較 DS1202 增加功效: 1. 可經過 Vcc1 進行涓流充電 2. 雙重電源補給 3. 備用

2、電源可采取電池或者超級電容 (0.1F以上 ) ,能夠用傳統電腦主板上 3.6V 充電電池。功效介紹時鐘芯片DS及其應用第1頁引腳分布時鐘芯片DS及其應用第2頁引腳功效VCC1 VCC1提供了在電池供電系統低功耗模式,以及低功耗電池備用。VCC2 - VCC2是主電源,雙電源配置電源引腳。VCC1連接到備份源在主電源情況下維持時間和日期。 當VCC2 0;i-) DS1302_IO = a & 0 x01;a = 1;DS1302_CLK=1;_nop_();DS1302_CLK=0;_nop_(); 函數功效:單片機向DS1302寫一個字節子程序IO=字節a最低位字節右移1位CLK=1,延時

3、CLK=0,延時到8次了?結束時鐘芯片DS及其應用第22頁函數功效:單片機從DS1302讀一個字節子程序 uchar readbyte(void) uchar i,dat=0;for(i=8;i0;i-) dat = 1; if(DS1302_IO)dat|=0 x80; DS1302_CLK=1; nop; DS1302_CLK=0;return dat; 經過 8 個時鐘周期控制讀指令輸入,控制指令串行輸入后,一個字節數據將在下個 8 個時鐘周期下降沿被輸出,注意:先輸出字節低位。時鐘芯片DS及其應用第23頁將上面寫字節和讀字節放在一起研究void sendbyte(uchar a) uc

4、har i; for(i=8;i0;i-) DS1302_IO = a & 0 x01;a = 1;DS1302_CLK=1;_nop_();DS1302_CLK=0;_nop_(); 讀一個字節子程序 uchar readbyte(void) uchar i,dat=0;for(i=8;i0;i-) dat = 1; if(DS1302_IO)dat|=0 x80; DS1302_CLK=1; nop; DS1302_CLK=0;return dat; 寫一個字節子程序這是一個方案在控制字節最終一位寫完后下降沿,第一個讀數據位就出現了此句看上去,在沒有先產生下降沿情況下就讀了數據,其實在左邊

5、已經產生了第一個數據位時鐘芯片DS及其應用第24頁將上面寫字節和讀字節放在一起研究void sendbyte(uchar a) uchar i; for(i=8;i0;i-) DS1302_CLK=0; nop; DS1302_IO = a & 0 x01; a = 1; DS1302_CLK=1; nop; 讀一個字節子程序 uchar readbyte(void) uchar i,dat=0; for(i=8;i0;i-) DS1302_CLK=1;nop;DS1302_CLK=0;dat=1;if(DS1302_IO) dat|=0 x80; return dat; 寫一個字節子程序這是

6、另一個方案這里是先產生數據,再產生上升沿方式送數據,最終沒有產生下降沿。這里要先產生下降沿,再讀數據時鐘芯片DS及其應用第25頁/*函數功效:寫DS1302地址子程序 向address地址上寫入數據dat*/void write_DS1302(uchar address,uchar dat)DS1302_RST=0;nop;DS1302_CLK=0;nop;DS1302_RST=1;nop;sendbyte(address);nop;sendbyte(dat);nop;DS1302_RST=0;nop;DS1302_CLK=0;經過 8 個時鐘周期控制字節輸入,一個字節輸入將在下 8 個時鐘周

7、期上升沿完成,數據傳輸從字節最低位開始。這3句目標是將CLK置0,不過不知道會不會產生下降沿而送錯數據,所以先RST=0,停頓全部數據傳送,高阻態,等CLK=0之后,再回復RST=1;時鐘芯片DS及其應用第26頁/*函數功效:讀DS1302地址子程序 入口參數:add出口參數:readtimeR*/uchar read_DS1302(uchar address) uchar timer;DS1302_RST=0;delays(2);DS1302_CLK=0;delays(2);DS1302_RST=1;nop;sendbyte(address); timer=readbyte();DS1302

8、_RST=0;nop;DS1302_CLK=0;return timer;時鐘芯片DS及其應用第27頁/*函數功效:初始化DS1302子程序入口參數:wr_data(全局變量)出口參數:*/void DS1302_init() write_DS1302(0 x8e,0 x00); /關閉保護,bit7=0 write_DS1302(0 x8c,wr_data0);/年 write_DS1302(0 x88,wr_data1);/月 write_DS1302(0 x86,wr_data2);/日 write_DS1302(0 x8A,wr_data3);/星期 write_DS1302(0 x8

9、4,wr_data4);/時 write_DS1302(0 x82,wr_data5);/分 write_DS1302(0 x80,wr_data6);/秒 write_DS1302(0 x8e,0 x80); /開寫保護,bit7=1時鐘芯片DS及其應用第28頁void clock_start(void) uchar val; val = read_DS1302(0 x81); /讀秒存放器 val &= 0 x7f; /秒存放器最高位0, 時鐘振蕩開啟 write_DS1302(0 x8e,0 x00); /關寫保護 write_DS1302(0 x80,val); /寫回秒存放器 wri

10、te_DS1302(0 x90,0 xa5); /1010使能涓電流充電,DS=01: 選擇一個二極管,RS=01: R1=2k write_DS1302(0 x8e,0 x80); /開寫保護 開啟振蕩器,開啟涓電流充電(競賽可省略)(競賽可省略)能夠省略理由:1.因為秒存放器是內容0 x000 x59,顯然初始化時最高位也同時清零了;2.使用電池,不充電,能夠不對電池充電。時鐘芯片DS及其應用第29頁/*函數功效:讀DS1302時間子程序讀到數組readtimeR中*/void read_time(void)readtimeR0=read_DS1302(0 x8d); /年BCD碼read

11、timeR1=read_DS1302(0 x89); /月BCD碼readtimeR2=read_DS1302(0 x87); /日BCD碼readtimeR3=read_DS1302(0 x8b); /周BCD碼readtimeR4=read_DS1302(0 x85); /時BCD碼readtimeR5=read_DS1302(0 x83); /分BCD碼readtimeR6=read_DS1302(0 x81); /秒BCD碼時鐘芯片DS及其應用第30頁送顯示數據處理方式year_h = readtimeR04; /年十位year_l = readtimeR0&0 x0f; /年個位mo

12、nth_h = readtimeR14; /月十位month_l = readtimeR1&0 x0f; /月個位 date_h = readtimeR24; /日十位date_l = readtimeR2&0 x0f; /日個位 hour_h = readtimeR44; /時十位hour_l = readtimeR4&0 x0f; /時個位minute_h = readtimeR54; /分十位minute_l = readtimeR5&0 x0f; /分個位 second_h = readtimeR64; /秒十位second_l = readtimeR6&0 x0f; /秒個位disT

13、ime0=hour_h;disTime1=hour_l;disTime3=minute_h;disTime4=minute_l;disTime6=second_h;disTime7=second_l;display(disTime);disDate0=year_h;disDate1=year_l;disDate3=month_h;disDate4=month_l;disDate6=date_h;disDate7=date_l;display(disDate)時鐘芯片DS及其應用第31頁作判斷數據處理方式uchar sec,min,hour,dat,mon,year;sec= second_h

14、*10+ second_l;min= minute_h*10+ minute_l ;year_h = readtimeR04; /年十位year_l = readtimeR0&0 x0f; /年個位month_h = readtimeR14; /月十位month_l = readtimeR1&0 x0f; /月個位 date_h = readtimeR24; /日十位date_l = readtimeR2&0 x0f; /日個位 hour_h = readtimeR44; /時十位hour_l = readtimeR4&0 x0f; /時個位minute_h = readtimeR54; /分十位minute_l = readtimeR5&0 x0f; /分個位 second_h = readtimeR64; /秒十位second_l = readtimeR6&0 x0f; /

溫馨提示

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

評論

0/150

提交評論