




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 項目6 實時時鐘芯片實時時鐘芯片ds1302ds1302的應用實例的應用實例 1學習課件6.1 6.1 項目任務項目任務在許多的單片機系統(tǒng)中,通常進行一些與時間有關(guān)的控制,這就需要使用實時時鐘。例如在測量控制系統(tǒng)中,特別是長時間無人值守的測控系統(tǒng)中,經(jīng)常需要記錄某些具有特殊意義的數(shù)據(jù)及其出現(xiàn)的時間。在系統(tǒng)中采用實時時鐘芯片能很好的解決這個問題。2學習課件 實時時鐘(rtc)是一個由晶體控制精度的,向主系統(tǒng)提bcd碼表示的時間和日期的器件。主系統(tǒng)與rtc間的通信可通過并行口也可通過串行口,并行器件速度快但需較大的底板空間和較昂貴,串行器件體積較小且價格也相對便宜。 希望讀者在學完本節(jié)后,能完成
2、相關(guān)的電路設計,并 掌握如下知識點:3學習課件掌握時鐘芯片ds1302的原理、特性及選擇;51單片機和時鐘芯片ds1302的接口電路設計;掌握時鐘芯片ds1302的c51程序設計。6.2 ds13026.2 ds1302的結(jié)構(gòu)及工作原理的結(jié)構(gòu)及工作原理4學習課件 ds1302 是美國dallas公司推出的一種高性能、低功耗帶ram的實時時鐘電路,它可以對年、月、日、周、日、時、分、秒進行計時,具有閏年補償功能,工作電壓為2.5v5.5v。采用三線接口與cpu進行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或ram數(shù)據(jù)。ds1302內(nèi)部有一個318的用于臨時性存放數(shù)據(jù)的ram寄存器。5學
3、習課件 下圖14-1示出ds1302的實物圖及引腳排列,其中vcc1為后備電源,vcc2為主電源。在主電源關(guān)閉的情況下,也能保持時鐘的連續(xù)運行。ds1302由vcc1或vcc2兩者中的較大者供電。當vcc2大于vcc10.2v時,vcc2給ds1302供電。當vcc2小于vcc1時,ds1302由vcc1供電。x1和x2是振蕩6.3 ds13026.3 ds1302的引腳功能及內(nèi)部結(jié)構(gòu)的引腳功能及內(nèi)部結(jié)構(gòu) ds1302是ds1202的升級產(chǎn)品,與ds1202兼容,但增加了主電源/后背電源雙電源引腳,同時提供了對后背電源進行涓細電流充電的能力。 6學習課件源,外接32.768khz晶振。rst是
4、復位/片選線,通過把rst輸入驅(qū)動置高電平來啟動所有的數(shù)據(jù)傳送。rst輸入有兩種功能:首先,rst接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,rst提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。 當rst為高電平時,所有的數(shù)據(jù)傳送被初始化,允許對ds1302進行操作。如果在傳送過程中rst置為低電平,則會終止此次數(shù)據(jù)傳送,i/o引腳變?yōu)楦咦钁B(tài)。上電運7學習課件行時,在vcc2.5v之前,rst必須保持低電平。只有在sclk為低電平時,才能將rst置為高電平。i/o為串行數(shù)據(jù)輸入輸出端(雙向), sclk始終是輸入端。 圖圖6-1 ds1302的實物圖及引腳排列的實物圖及引腳排列8學習課件其內(nèi)
5、部結(jié)構(gòu)如下圖其內(nèi)部結(jié)構(gòu)如下圖6-26-2所示所示圖圖6-2 ds1302內(nèi)部結(jié)構(gòu)圖內(nèi)部結(jié)構(gòu)圖9學習課件6.4 ds13026.4 ds1302的寄存器和控制命令的寄存器和控制命令日歷、 時鐘寄存器及其控制字對照表 寄存器名稱 765432101ram/ck a4 a3a2a1a0rd/w 秒寄存器 10000001/0 分寄存器 10000011/0 時寄存器 10000101/0 日寄存器 10000111/0 月寄存器 10001001/0 周寄存器 10001011/0 年寄存器 10001101/0 寫保護寄存器 10001111/0 慢充電寄存器 10010001/0 時鐘突發(fā)秒寄存
6、器 10111111/0 10學習課件ds1302ds1302內(nèi)部主要寄存器功能如下表所示內(nèi)部主要寄存器功能如下表所示ds1302內(nèi)部主要寄存器功能表 名稱命令字 取值范圍 各位內(nèi)容讀寫76543210秒寄存器 80h 81h00-59 ch 10sec sec 分寄存器 82h 83h00-59 0 10min min 時寄存器 84h 85h1-12或0-23 12/24 0a/p hr hr 日寄存器 86h 87h1-28,29,30,31 0010date date 月寄存器 88h 89h1-12 00010m month 周寄存器 8ah 8bh1-7 00000day 年寄存器
7、 8ch 8dh0-99 10year year 11學習課件 其中ch:時鐘停止位;為0時振蕩器工作;為1時振蕩器停止;ap=1時為下午模式,為0時上午模式ds1302的控制字節(jié)說明 1)ds1302的控制字節(jié)的最高有效位(位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入到ds1302中:位6如果為0,則表示存取日歷時鐘數(shù)據(jù),為1表示存取ram數(shù)據(jù);位5至位1指示操作單元的地址:最低有效位(位0)為012學習課件表示要進行寫操作,為1表示進行讀操作,控制字節(jié)總是從最低位開始輸出。 2)在控制指令字輸入后的下一個sclk時鐘的上升沿時數(shù)據(jù)被寫入ds1302,數(shù)據(jù)輸入從低位即位0開始。同樣,在緊
8、跟8位的控制指令字后的下一個sclk脈沖的下降沿讀出ds1302的數(shù)據(jù),讀出數(shù)據(jù)時從低位0位至高位7。13學習課件6.5 ds13026.5 ds1302的讀寫時序的讀寫時序 不僅要向寄存器寫入控制字。還需要讀取相應寄存器的數(shù)據(jù)。要想與ds1302通信,首先要先了解ds1302的控制字。ds1302的控制字見5.4節(jié)內(nèi)容??刂谱值淖罡哂行?位7)必須是邏輯1,如果它為0。則不能把數(shù)據(jù)寫入到ds1302中。位6:如果為0,則表示存取日歷時鐘數(shù)據(jù),為1表示存取ram數(shù)據(jù);位5至位1(a4a0):指示操作單元的地址;位0(最低有效位):如為0。表示要進行寫操作,為1表示進行讀操作??刂谱挚偸菑淖畹?/p>
9、位開始輸出。14學習課件在控制字指令輸入后的下一個sclk時鐘的上升沿時,數(shù)據(jù)被寫入ds1302,數(shù)據(jù)輸入從最低位(0位)開始。 同樣,在緊跟8位的控制字指令后的下一個sclk脈沖的下降沿,讀出ds1302的數(shù)據(jù)。讀出的數(shù)據(jù)也是從最低位到最高位。數(shù)據(jù)讀寫時序如下圖14-3所示。具體操作見驅(qū)動程序。15學習課件圖圖6-3 ds13026-3 ds1302數(shù)據(jù)讀寫時序圖數(shù)據(jù)讀寫時序圖16學習課件6.6 ds13026.6 ds1302的程序設計的程序設計 1)ds1302和單片機連接示意圖如下圖圖6-4 ds13026-4 ds1302和單片機連接示意圖和單片機連接示意圖17學習課件2)ds130
10、2應用程序設計流程圖如下所示:圖圖6-5 ds13026-5 ds1302應用程序設計流程圖應用程序設計流程圖 18學習課件3)應用程序清單如下: 程序用按鍵設置秒、分、時,用液晶lcd1602顯示設置的時間。/*程序描述程序描述:以下程序為ds1302的頭函數(shù)文件,在建立項目的時候該部分要保存為ds1302.h。該頭文件中有對ds1302基本的單字節(jié)讀寫函數(shù),取時間函數(shù),設置時間函數(shù),在主函數(shù)中要調(diào)用這些函數(shù)。 * /#define uchar unsigned char /宏定義sbit t_clk = p10; /設置實時時鐘時鐘線引腳 /sbit t_io = p11; /設置實時時鐘
11、數(shù)據(jù)線引腳 /sbit t_rst = p12; /設置實時時鐘復位線引腳 /sbit acc0=acc0; /定義acc的位,利用acc操作速度最快19學習課件sbit acc7=acc7;uchar time16;char counter3;uchar sec,min,hou,day,mon,yea;void init1302(void);void v_w1302(uchar ucaddr, uchar ucda);uchar uc_r1302(uchar ucaddr);void get_time(void);void set_time(void);/*往ds1302寫入1byte數(shù)據(jù)*
12、/ void v_wtinputbyte(uchar ucda) uchar i;acc= ucda;for(i=8; i0; i-)t_io = acc0; /*相當于匯編中的 rrc t_clk = 1; t_clk = 0;acc =acc 1; /*從ds1302讀取1byte數(shù)據(jù)*/20學習課件uchar uc_rtoutputbyte(void) uchar i;for(i=8; i0; i-)acc = acc1; /*相當于匯編中的 rrcacc7 = t_io;t_clk = 1; t_clk = 0; return(acc); /*往ds1302寫入數(shù)據(jù),先寫地址,后寫命令
13、/數(shù)據(jù)*/void v_w1302(uchar ucaddr, uchar ucda)t_rst = 0;t_clk = 0;t_rst = 1;v_wtinputbyte(ucaddr); /* 地址,命令 */v_wtinputbyte(ucda); /* 寫1byte數(shù)據(jù)*/21學習課件t_clk = 1;t_rst =0;/*讀取ds1302某地址的數(shù)據(jù),先寫地址,后讀命令/數(shù)據(jù)*/uchar uc_r1302(uchar ucaddr)uchar ucda;t_rst = 0;t_clk = 0;t_rst = 1;v_wtinputbyte(ucaddr); /* 地址,命令 */
14、ucda = uc_rtoutputbyte(); /* 讀1byte數(shù)據(jù) */t_clk = 1;t_rst = 0;return(ucda);/*初始化ds1302*/void init1302(void)v_w1302(0 x8e,0 x00); /控制寫入wp=0v_w1302(0 x90,0 xa5);22學習課件v_w1302(0 x80,0 x00); /秒v_w1302(0 x82,0 x59); /分v_w1302(0 x84,0 x10); /時v_w1302(0 x86,0 x01); /日v_w1302(0 x88,0 x08); /月v_w1302(0 x8a,0 x
15、03); /星期v_w1302(0 x8c,0 x07); /年 v_w1302(0 x8e,0 x80);/*取出時間并處理,以便送數(shù)碼管顯示*/ void get_time(void)uchar d;d=uc_r1302(0 x81);counter0=d/16*10+d%16; /十六進制轉(zhuǎn)換為bcd碼time10=d&0 x0f;time11=(d4)&0 x0f;d=uc_r1302(0 x83);counter1=d/16*10+d%16; /十六進制轉(zhuǎn)換為bcd碼time12=d&0 x0f;time13=(d4)&0 x0f;d=uc_r1302
16、(0 x85);counter2=d/16*10+d%16; /十六進制轉(zhuǎn)換為bcd碼23學習課件time14=d&0 x0f;time15=(d4)&0 x0f;void set_time(void)v_w1302(0 x8e,0 x00);v_w1302(0 x80,0 x80);v_w1302(0 x82,min);v_w1302(0 x84,hou);v_w1302(0 x86,day);v_w1302(0 x88,mon);v_w1302(0 x8c,yea);v_w1302(0 x80,0 x00);v_w1302(0 x8e,0 x80);以上函數(shù)為ds1302.
17、h文件,在主函數(shù)中要調(diào)用該函數(shù)24學習課件/*程序描述程序描述:該程序能通過和單片機連接的按鍵調(diào)整并設置ds1302的時間,并能將從ds1302中讀出的時間在六個七段數(shù)碼管上顯示,p0口驅(qū)動數(shù)碼管的各段,p2口低六位連接到六個數(shù)碼管的公共端,數(shù)碼管為共陽。*/#include #include #include ds1302.h#define uchar unsigned char#define uint unsigned intcode seven_tab10 = 0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90;code
18、 bit_select6 = 0 xfe,0 xfd,0 xfb,0 xf7,0 xef,0 xdf;uint get_time_flag;uchar dot,flash,a,b,c,d;uchar year,month,day,hour,minute,second,week;uchar key1_state,key2_state,key3_state,key4_state,ttt;static uchar key1_flag=0;/定義靜態(tài)變量sbit key1 = p30; /定義4個按鍵的端口sbit key2 = p31;sbit key3 = p32; sbit key4 = p33
19、;/*時間延遲函數(shù)*/25學習課件void delay(int delaytime)while(delaytime-) _nop_();void delayms(unsigned int delaytime)uint i,j;for( i = 0;i delaytime;i+ )for(j = 0;j = 60) counter0 = 0; if(key3 = 0 ) key3 = 1; ;if(key3 = 0)key3_state = 1; if(key3 = 1 & key3_state = 1) key3_state = 0;counter0-; if(counter0 = 6
20、0) counter1 = 0; if(key3 = 0 ) key3 = 1; ;if(key3 = 0)31學習課件key3_state = 1; if(key3 = 1 & key3_state = 1) key3_state = 0;counter1-; if(counter1 23 & d = 0) counter2 = 0;if(counter2 12 & d = 1) counter2 = 1; if(key3 = 0) key3 = 1; ;if(key3 = 0)key3_state = 1; if(key3 = 1 & key3_state
21、= 1) key3_state = 0;counter2-; if(counter2 0 & d = 0) counter2 = 23;if(counter2 1 & d = 1) counter2 = 12; c = dot*0 xff;34學習課件else c = 0;if(key4 = 0) key4 = 1; ; if(key4 = 0) key4_state = 1; if(key4 = 1 & key4_state = 1) d = !d;key4_state = 0;/*顯示函數(shù)*/void display()uchar i;p0 = 0 xff;p2 = bit_select0;p0 = a|seven_tabcounter0%10;delay(100);
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 印刷業(yè)互聯(lián)網(wǎng)+與融合發(fā)展考核試卷
- 冷藏車運輸企業(yè)風險管理與內(nèi)部控制系統(tǒng)考核試卷
- 天然氣藏動態(tài)模擬與預測考核試卷
- 影視錄放設備顯示技術(shù)考核試卷
- 文化藝術(shù)與城市品牌建設考核試卷
- 木片干燥技術(shù)與木材應力釋放考核試卷
- 健身器材行業(yè)企業(yè)文化建設與品牌形象提升考核試卷
- 保險業(yè)與新能源保險市場的機遇與挑戰(zhàn)應對策略案例分析考核試卷
- 制糖業(yè)的可持續(xù)發(fā)展評估考核試卷
- 木材的采伐和森林管理考核試卷
- 高等數(shù)學上冊目錄同濟第七版
- 中國古代餐具
- 電動執(zhí)行機構(gòu)安裝施工工藝標準
- 儒釋道文化秒解詳解課件
- 施工日志模板
- 粗原料氣的凈化-二氧化碳的脫除(合成氨生產(chǎn))
- Agilent7820A氣相色譜儀操作規(guī)程知識講解
- 中醫(yī)適宜技術(shù)模擬試題(附答案)
- 加涅的信息加工理論-課件
- 400字作文稿紙(方格)A4打印模板
- 不領(lǐng)證的夫妻離婚協(xié)議書
評論
0/150
提交評論