版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、ds1302實(shí)時時鐘C程序*/ /*51會員經(jīng)典作品已經(jīng)測試成功/#include #include #define uchar unsigned charsbit T_CLK = P3A4; /*實(shí)時時鐘時鐘線引腳*/sbit T_IO = P3A3; /*實(shí)時時鐘數(shù)據(jù)線引腳*/sbit T_RST = P3A2; /*實(shí)時時鐘復(fù)位線引腳*/sbit OE=P3A6;sbit ACC0=ACCA0;sbit ACC7=ACCA7;uchar time8=:;uchar min,hou,day,mon,yea;void Init1302(void);/ 初始化 DS1302void v_W13
2、02(uchar ucAddr, uchar ucDa);/ 往 DS1302 寫入數(shù)據(jù)uchar uc_R1302(uchar ucAddr);/ 讀取 DS1302 某地址的數(shù)據(jù)void v_BurstW1302T(uchar *pSecDa);/ 往 DS1302 寫入時鐘數(shù)據(jù)(多字節(jié)方式)void v_BurstR1302T(uchar *pSecDa);/ 讀取 DS1302 時鐘數(shù)據(jù)void v_BurstW1302R(uchar *pReDa);/往DS1302寄存器數(shù)寫入數(shù)據(jù)(多字節(jié)方式)void v_BurstR1302R(uchar *pReDa);/ 讀取 DS1302
3、寄存器數(shù)據(jù)void v_Set1302(uchar *pSecDa);/ 設(shè)置初始時間void v_Get1302(uchar ucCurtime);/讀取 DS1302 當(dāng)前時間void donetime(void);時間處理void bcd_int(uchar i);void bcdtoInt(void);void SetTime(void);/ 時間設(shè)置* 名稱:v_RTInputByte*說明:*功能:往DS1302寫入IByte數(shù)據(jù)*調(diào)用:*輸入:ucDa寫入的數(shù)據(jù)*返回值:無 void v_WTInputByte(uchar ucDa)uchar i;/OE=0;ACC= ucDa
4、;for(i=8; i0; i-)T_IO = ACC0; /* 名稱:uchar uc_RTOutputByte*說明:*功能:從DS1302讀取1Byte數(shù)據(jù)*調(diào)用:*輸入:*返回值:ACC相當(dāng)于匯編中的RRCT_CLK = 1;T_CLK = 0;ACC =ACC 1;/ OE=1;uchar uc_RTOutputByte(void)uchar i;/OE=0;for(i=8; i0; i-)ACC = ACC1; /*相當(dāng)于匯編中的RRCACC7 = T_IO;T_CLK = 1;T_CLK = 0;/OE=1;return(ACC);*名稱:v_W1302*說明:先寫地址,后寫命令
5、/數(shù)據(jù)*功能:往DS1302寫入數(shù)據(jù)調(diào)用:v_RTInputByte()*輸入:ucAddr: DS1302地址,ucDa:要寫的數(shù)據(jù)*返回值:無 void v_W1302(uchar ucAddr, uchar ucDa)/OE=0;T_RST = 0;T_CLK = 0;T_RST = 1;v_WTInputByte(ucAddr); /* 地址,命令 */ v_WTInputByte(ucDa); /* 寫 IByte 數(shù)據(jù)*/T_CLK = 1;T_RST =0;/OE=1;*名稱:uc_R1302*說明:先寫地址,后讀命令/數(shù)據(jù)*功能:讀取DS1302某地址的數(shù)據(jù)調(diào)用:v_RTInp
6、utByte() , uc_RTOutputByte()輸入:ucAddr: DS1302 地址*返回值:ucDa :讀取的數(shù)據(jù) uchar uc_R1302(uchar ucAddr)uchar ucDa;/OE=0;T_RST = 0;T_CLK = 0;T_RST = 1;v_WTInputByte(ucAddr); /* 地址,命令 */ucDa = uc_RTOutputByte(); /* 讀 1Byte 數(shù)據(jù) */T_CLK = 1;T_RST =0;/ OE=1;return(ucDa);名稱:v_BurstW1302T*說明:先寫地址,后寫數(shù)據(jù)(時鐘多字節(jié)方式)*功能:往DS
7、1302寫入時鐘數(shù)據(jù)(多字節(jié)方式)調(diào)用:v_RTInputByte()*輸入:pSecDa:時鐘數(shù)據(jù)地址格式為:秒分時日月星期年控制8Byte (BCD 碼)1B 1B 1B 1B 1B 1B 1B 1B*返回值:無/* 名稱:v_BurstR1302T*說明:先寫地址,后讀命令/數(shù)據(jù)(時鐘多字節(jié)方式)*功能:讀取DS1302時鐘數(shù)據(jù)void v_BurstW1302T(uchar *pSecDa)uchar i;v_W1302(0 x8e,0 x00); /* 控制命令,WP=0,寫操作?T_RST = 0;T_CLK = 0;T_RST = 1;v_WTInputByte(0 xbe);
8、/* 0 xbe:時鐘多字節(jié)寫命令for (i=8;i0;i-) /*8Byte = 7Byte 時鐘數(shù)據(jù) + 1Byte 控制v_WTInputByte(*pSecDa);/* 寫 1Byte 數(shù)據(jù)pSecDa+;T_CLK = 1;T_RST =0; */* 調(diào)用:v_RTInputByte() , uc_RTOutputByte() *輸入:pSecDa:時鐘數(shù)據(jù)地址格式為:秒分時日月星期年 * 7Byte (BCD 碼)1B 1B 1B 1B 1B 1B 1B *返回值:ucDa :讀取的數(shù)據(jù)/*void v_BurstR1302T(uchar *pSecDa)uchar i;T_RS
9、T = 0;T_CLK = 0;T_RST = 1;v_WTInputByte(0 xbf); /* 0 xbf:時鐘多字節(jié)讀命令for (i=8; i0; i-)*pSecDa = uc_RTOutputByte(); /* 讀 1Byte 數(shù)據(jù) pSecDa+;T_CLK = 1;T_RST =0; */*名稱:v_BurstW1302R*說明:先寫地址,后寫數(shù)據(jù)(寄存器多字節(jié)方式)*功能:往DS1302寄存器數(shù)寫入數(shù)據(jù)(多字節(jié)方式)調(diào)用:v_RTInputByte()*輸入:pReDa:寄存器數(shù)據(jù)地址*返回值:無/*void v_BurstW1302R(uchar *pReDa)ucha
10、r i;v_W1302(0 x8e,0 x00); /* 控制命令,WP=0,寫操作?T_RST = 0;T_CLK = 0;T_RST = 1;v_WTInputByte(0 xfe); /* 0 xbe :時鐘多字節(jié)寫命令for (i=31;i0;i-) /*31Byte 寄存器數(shù)據(jù)v_WTInputByte(*pReDa); /* 寫 1Byte 數(shù)據(jù)pReDa+;T_CLK = 1;T_RST =0; */*名稱:uc_BurstR1302R*說明:先寫地址,后讀命令/數(shù)據(jù)(寄存器多字節(jié)方式)*功能:讀取DS1302寄存器數(shù)據(jù)調(diào)用:v_RTInputByte() , uc_RTOutp
11、utByte()*輸入:pReDa:寄存器數(shù)據(jù)地址*返回值:無/*void v_BurstR1302R(uchar *pReDa)uchar i;T_RST = 0;T_CLK = 0;T_RST = 1;v_WTInputByte(0 xff); /* 0 xbf:時鐘多字節(jié)讀命令for (i=31; i0; i-) /*31Byte 寄存器數(shù)據(jù)*pReDa = uc_RTOutputByte(); /* 讀 1Byte 數(shù)據(jù) pReDa+;T_CLK = 1;T_RST =0; */*名稱:v_Set1302*說明:*功能:設(shè)置初始時間調(diào)用:v_W1302()*輸入:pSecDa:初始時間
12、地址。初始時間格式為:秒分 時日月 星期年7Byte (BCD 碼)1B 1B 1B 1B 1B 1B 1B*返回值:無/*void v_Set1302(uchar *pSecDa)uchar i;uchar ucAddr = 0 x80;v_W1302(0 x8e,0 x00); / 控制命令,WP=0,寫操作?for(i =7;i0;i-)v_W1302(ucAddr,*pSecDa); /秒分時日月星期年pSecDa+;ucAddr +=2;v_W1302(0 x8e,0 x80); / 控制命令,WP=1,寫保護(hù)? */名稱:v_Get1302*說明:*功能:讀取DS1302當(dāng)前時間調(diào)用:uc_R1302()*輸入:ucCurtime:保存當(dāng)前時間地址。當(dāng)前時間格式為:秒分時日月星期年7Byte (BCD 碼)1B 1B 1B 1B 1B 1B 1B*返回值:無/*void v_Get1302(uchar ucCurtime) uchar i;uchar ucAddr = 0 x81;for (i=0;i4;time1=(j&0 x0f)+48; */*void bcdtoInt(void)uchar i;for(i=0;i7;i+)bcd_int(ucCurtmi
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 物聯(lián)網(wǎng)環(huán)境下資源受限的進(jìn)程通信-洞察分析
- 云端人力資源平臺-洞察分析
- 醫(yī)療機(jī)器人與自動化-洞察分析
- 2024年國家助學(xué)貸款大學(xué)生貸款合同解除服務(wù)合同3篇
- 線段樹支持網(wǎng)絡(luò)圖譜構(gòu)建-洞察分析
- 血管內(nèi)皮功能研究進(jìn)展-洞察分析
- 采購合同管理心得3篇
- 2024年版:建筑項(xiàng)目基坑支護(hù)勞務(wù)外包合同
- 2024年度家政服務(wù)人員勞務(wù)合同范本3篇
- 采購合同模板準(zhǔn)則3篇
- 伴瘤內(nèi)分泌綜合征課件
- 婦科手術(shù)快速康復(fù)治療
- 常州鄰里中心課件
- 客車交通安全培訓(xùn)課件
- 某建筑公司項(xiàng)目部qc小組活動課題-《提高內(nèi)墻抹灰質(zhì)量》成果總結(jié)報告
- 遼寧省大連市2023-2024學(xué)年高二上學(xué)期期末考試數(shù)學(xué)試題(解析版)
- 南京市2023-2024學(xué)年八年級上學(xué)期期末道德與法治試卷(含答案解析)
- SJG 09-2024 建筑基樁檢測標(biāo)準(zhǔn)
- 湖南師范大學(xué)學(xué)位英語歷年考試真題
- 發(fā)運(yùn)員工作總結(jié)匯報
- 露營餐廳經(jīng)營方案
評論
0/150
提交評論