




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 項(xiàng)目6 實(shí)時(shí)時(shí)鐘芯片實(shí)時(shí)時(shí)鐘芯片DS1302DS1302的應(yīng)用實(shí)例的應(yīng)用實(shí)例 6.1 6.1 項(xiàng)目任務(wù)項(xiàng)目任務(wù)在許多的單片機(jī)系統(tǒng)中,通常進(jìn)行一些與時(shí)間有關(guān)的控制,這就需要使用實(shí)時(shí)時(shí)鐘。例如在測(cè)量控制系統(tǒng)中,特別是長(zhǎng)時(shí)間無(wú)人值守的測(cè)控系統(tǒng)中,經(jīng)常需要記錄某些具有特殊意義的數(shù)據(jù)及其出現(xiàn)的時(shí)間。在系統(tǒng)中采用實(shí)時(shí)時(shí)鐘芯片能很好的解決這個(gè)問(wèn)題。 實(shí)時(shí)時(shí)鐘(RTC)是一個(gè)由晶體控制精度的,向主系統(tǒng)提BCD碼表示的時(shí)間和日期的器件。主系統(tǒng)與RTC間的通信可通過(guò)并行口也可通過(guò)串行口,并行器件速度快但需較大的底板空間和較昂貴,串行器件體積較小且價(jià)格也相對(duì)便宜。 希望讀者在學(xué)完本節(jié)后,能完成相關(guān)的電路設(shè)計(jì),并
2、掌握如下知識(shí)點(diǎn):掌握時(shí)鐘芯片DS1302的原理、特性及選擇;51單片機(jī)和時(shí)鐘芯片DS1302的接口電路設(shè)計(jì);掌握時(shí)鐘芯片DS1302的C51程序設(shè)計(jì)。6.2 DS13026.2 DS1302的結(jié)構(gòu)及工作原理的結(jié)構(gòu)及工作原理 DS1302 是美國(guó)DALLAS公司推出的一種高性能、低功耗帶RAM的實(shí)時(shí)時(shí)鐘電路,它可以對(duì)年、月、日、周、日、時(shí)、分、秒進(jìn)行計(jì)時(shí),具有閏年補(bǔ)償功能,工作電壓為2.5V5.5V。采用三線接口與CPU進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)或RAM數(shù)據(jù)。DS1302內(nèi)部有一個(gè)318的用于臨時(shí)性存放數(shù)據(jù)的RAM寄存器。 下圖14-1示出DS1302的實(shí)物圖及引腳
3、排列,其中Vcc1為后備電源,VCC2為主電源。在主電源關(guān)閉的情況下,也能保持時(shí)鐘的連續(xù)運(yùn)行。DS1302由Vcc1或Vcc2兩者中的較大者供電。當(dāng)Vcc2大于Vcc10.2V時(shí),Vcc2給DS1302供電。當(dāng)Vcc2小于Vcc1時(shí),DS1302由Vcc1供電。X1和X2是振蕩6.3 DS13026.3 DS1302的引腳功能及內(nèi)部結(jié)構(gòu)的引腳功能及內(nèi)部結(jié)構(gòu) DS1302是DS1202的升級(jí)產(chǎn)品,與DS1202兼容,但增加了主電源/后背電源雙電源引腳,同時(shí)提供了對(duì)后背電源進(jìn)行涓細(xì)電流充電的能力。 源,外接32.768kHz晶振。RST是復(fù)位/片選線,通過(guò)把RST輸入驅(qū)動(dòng)置高電平來(lái)啟動(dòng)所有的數(shù)據(jù)傳
4、送。RST輸入有兩種功能:首先,RST接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,RST提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。 當(dāng)RST為高電平時(shí),所有的數(shù)據(jù)傳送被初始化,允許對(duì)DS1302進(jìn)行操作。如果在傳送過(guò)程中RST置為低電平,則會(huì)終止此次數(shù)據(jù)傳送,I/O引腳變?yōu)楦咦钁B(tài)。上電運(yùn)行時(shí),在Vcc2.5V之前,RST必須保持低電平。只有在SCLK為低電平時(shí),才能將RST置為高電平。I/O為串行數(shù)據(jù)輸入輸出端(雙向), SCLK始終是輸入端。 圖圖6-1 DS1302的實(shí)物圖及引腳排列的實(shí)物圖及引腳排列其內(nèi)部結(jié)構(gòu)如下圖其內(nèi)部結(jié)構(gòu)如下圖6-26-2所示所示圖圖6-2 DS1302內(nèi)部結(jié)構(gòu)
5、圖內(nèi)部結(jié)構(gòu)圖6.4 DS13026.4 DS1302的寄存器和控制命令的寄存器和控制命令DS1302DS1302內(nèi)部主要寄存器功能如下表所示內(nèi)部主要寄存器功能如下表所示 其中CH:時(shí)鐘停止位;為0時(shí)振蕩器工作;為1時(shí)振蕩器停止;AP=1時(shí)為下午模式,為0時(shí)上午模式DS1302的控制字節(jié)說(shuō)明 1)DS1302的控制字節(jié)的最高有效位(位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入到DS1302中:位6如果為0,則表示存取日歷時(shí)鐘數(shù)據(jù),為1表示存取RAM數(shù)據(jù);位5至位1指示操作單元的地址:最低有效位(位0)為0表示要進(jìn)行寫操作,為1表示進(jìn)行讀操作,控制字節(jié)總是從最低位開始輸出。 2)在控制指令字輸
6、入后的下一個(gè)SCLK時(shí)鐘的上升沿時(shí)數(shù)據(jù)被寫入DS1302,數(shù)據(jù)輸入從低位即位0開始。同樣,在緊跟8位的控制指令字后的下一個(gè)SCLK脈沖的下降沿讀出DS1302的數(shù)據(jù),讀出數(shù)據(jù)時(shí)從低位0位至高位7。6.5 DS13026.5 DS1302的讀寫時(shí)序的讀寫時(shí)序 不僅要向寄存器寫入控制字。還需要讀取相應(yīng)寄存器的數(shù)據(jù)。要想與DS1302通信,首先要先了解DS1302的控制字。DS1302的控制字見(jiàn)5.4節(jié)內(nèi)容。控制字的最高有效位(位7)必須是邏輯1,如果它為0。則不能把數(shù)據(jù)寫入到DS1302中。位6:如果為0,則表示存取日歷時(shí)鐘數(shù)據(jù),為1表示存取RAM數(shù)據(jù);位5至位1(A4A0):指示操作單元的地址;
7、位0(最低有效位):如為0。表示要進(jìn)行寫操作,為1表示進(jìn)行讀操作。控制字總是從最低位開始輸出。在控制字指令輸入后的下一個(gè)SCLK時(shí)鐘的上升沿時(shí),數(shù)據(jù)被寫入DS1302,數(shù)據(jù)輸入從最低位(0位)開始。 同樣,在緊跟8位的控制字指令后的下一個(gè)SCLK脈沖的下降沿,讀出DS1302的數(shù)據(jù)。讀出的數(shù)據(jù)也是從最低位到最高位。數(shù)據(jù)讀寫時(shí)序如下圖14-3所示。具體操作見(jiàn)驅(qū)動(dòng)程序。圖圖6-3 DS13026-3 DS1302數(shù)據(jù)讀寫時(shí)序圖數(shù)據(jù)讀寫時(shí)序圖6.6 DS13026.6 DS1302的程序設(shè)計(jì)的程序設(shè)計(jì) 1)DS1302和單片機(jī)連接示意圖如下圖圖6-4 DS13026-4 DS1302和單片機(jī)連接示意
8、圖和單片機(jī)連接示意圖2)DS1302應(yīng)用程序設(shè)計(jì)流程圖如下所示:圖圖6-5 DS13026-5 DS1302應(yīng)用程序設(shè)計(jì)流程圖應(yīng)用程序設(shè)計(jì)流程圖 3)應(yīng)用程序清單如下: 程序用按鍵設(shè)置秒、分、時(shí),用液晶LCD1602顯示設(shè)置的時(shí)間。/*程序描述程序描述:以下程序?yàn)镈S1302的頭函數(shù)文件,在建立項(xiàng)目的時(shí)候該部分要保存為DS1302.H。該頭文件中有對(duì)DS1302基本的單字節(jié)讀寫函數(shù),取時(shí)間函數(shù),設(shè)置時(shí)間函數(shù),在主函數(shù)中要調(diào)用這些函數(shù)。 * /#define uchar unsigned char /宏定義sbit T_CLK = P10; /設(shè)置實(shí)時(shí)時(shí)鐘時(shí)鐘線引腳 /sbit T_IO = P
9、11; /設(shè)置實(shí)時(shí)時(shí)鐘數(shù)據(jù)線引腳 /sbit T_RST = P12; /設(shè)置實(shí)時(shí)時(shí)鐘復(fù)位線引腳 /sbit ACC0=ACC0; /定義ACC的位,利用ACC操作速度最快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寫入1By
10、te數(shù)據(jù)*/ void v_WTInputByte(uchar ucDa) uchar i;ACC= ucDa;for(i=8; i0; i-)T_IO = ACC0; /*相當(dāng)于匯編中的 RRC T_CLK = 1; T_CLK = 0;ACC =ACC 1; /*從DS1302讀取1Byte數(shù)據(jù)*/uchar uc_RTOutputByte(void) uchar i;for(i=8; i0; i-)ACC = ACC1; /*相當(dāng)于匯編中的 RRCACC7 = T_IO;T_CLK = 1; T_CLK = 0; return(ACC); /*往DS1302寫入數(shù)據(jù),先寫地址,后寫命令/
11、數(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ù)*/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); /* 地址,命令 */ucDa =
12、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);v_W1302(0 x80,0 x00); /秒v_W1302(0 x82,0 x59); /分v_W1302(0 x84,0 x10); /時(shí)v_W1302(0 x86,0 x01); /日v_W1302(0 x88,0 x08); /月v_W1302(0 x8a,0 x03); /星期v_W13
13、02(0 x8c,0 x07); /年 v_W1302(0 x8e,0 x80);/*取出時(shí)間并處理,以便送數(shù)碼管顯示*/ void get_time(void)uchar d;d=uc_R1302(0 x81);counter0=d/16*10+d%16; /十六進(jìn)制轉(zhuǎn)換為BCD碼time10=d&0 x0f;time11=(d4)&0 x0f;d=uc_R1302(0 x83);counter1=d/16*10+d%16; /十六進(jìn)制轉(zhuǎn)換為BCD碼time12=d&0 x0f;time13=(d4)&0 x0f;d=uc_R1302(0 x85);count
14、er2=d/16*10+d%16; /十六進(jìn)制轉(zhuǎn)換為BCD碼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.H文件,在主函數(shù)中要調(diào)用該函數(shù)/*程序
15、描述程序描述:該程序能通過(guò)和單片機(jī)連接的按鍵調(diào)整并設(shè)置DS1302的時(shí)間,并能將從DS1302中讀出的時(shí)間在六個(gè)七段數(shù)碼管上顯示,P0口驅(qū)動(dòng)數(shù)碼管的各段,P2口低六位連接到六個(gè)數(shù)碼管的公共端,數(shù)碼管為共陽(yáng)。*/#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 bit_select6 = 0 xfe,0 xf
16、d,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個(gè)按鍵的端口sbit key2 = P31;sbit key3 = P32; sbit key4 = P33;/*時(shí)間延遲函數(shù)*/void delay(int
17、 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 = 60) counter1 = 0; if(key3 = 0 )
18、key3 = 1; ;if(key3 = 0)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 = 1) key3_state = 0;counter2-; if(cou
19、nter2 0 & d = 0) counter2 = 23;if(counter2 1 & d = 1) counter2 = 12; c = dot*0 xff;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);P0 = 0 xff;P2 = bit_select1;P0 = a|seven_t
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 管道工程法律法規(guī)政策學(xué)習(xí)與應(yīng)用考核試卷
- 紡織品批發(fā)商物流配送網(wǎng)絡(luò)優(yōu)化考核試卷
- 紡織品供應(yīng)鏈管理考核試卷
- 漁業(yè)資源養(yǎng)護(hù)與海洋資源全球合作機(jī)制加強(qiáng)考核試卷
- 電視節(jié)目的虛擬現(xiàn)實(shí)與增強(qiáng)現(xiàn)實(shí)體驗(yàn)考核試卷
- 植物油加工廠的智能化生產(chǎn)調(diào)度優(yōu)化考核試卷
- 硅冶煉廠的工藝優(yōu)化與產(chǎn)能提升考核試卷
- 煤炭行業(yè)技術(shù)創(chuàng)新與研發(fā)考核試卷
- 滌綸纖維在防油地毯材料中的應(yīng)用考核試卷
- 眼科光學(xué)相干斷層掃描設(shè)備考核試卷
- 侵占財(cái)產(chǎn)起訴狀
- 2023年某路橋工程有限公司生產(chǎn)安全事故綜合應(yīng)急預(yù)案
- 靜壓樁機(jī)安裝拆卸方案
- 電腦故障維修
- 2023山東春季高考數(shù)學(xué)真題(含答案)
- 煤礦機(jī)電運(yùn)輸提升安全知識(shí)考試題庫(kù)(帶答案)
- 2022年初中歷史課程標(biāo)準(zhǔn)電子版
- 平面四桿機(jī)構(gòu)的急回特性
- 考研經(jīng)驗(yàn)分享課件
- iFix培訓(xùn)手冊(cè)的資料
- 夜空中最亮的星二部合唱簡(jiǎn)譜
評(píng)論
0/150
提交評(píng)論