




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、ds1302實時時鐘C程序*/ /*51會員經(jīng)典作品已經(jīng)測試成功/#include #include #define uchar unsigned charsbit T_CLK = P3A4; /*實時時鐘時鐘線引腳*/sbit T_IO = P3A3; /*實時時鐘數(shù)據(jù)線引腳*/sbit T_RST = P3A2; /*實時時鐘復位線引腳*/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);/ 設置初始時間void v_Get1302(uchar ucCurtime);/讀取 DS1302 當前時間void donetime(void);時間處理void bcd_int(uchar i);void bcdtoInt(void);void SetTime(void);/ 時間設置* 名稱: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相當于匯編中的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; /*相當于匯編中的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*說明:*功能:設置初始時間調(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,寫保護? */名稱:v_Get1302*說明:*功能:讀取DS1302當前時間調(diào)用:uc_R1302()*輸入:ucCurtime:保存當前時間地址。當前時間格式為:秒分時日月星期年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)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 ISO 22040-3:2025 EN Life cycle management of concrete structures - Part 3: Execution stage
- 解除買賣土地合同范本
- pvc管道銷售合同范本
- 別墅施工改造合同范本
- 現(xiàn)金贊助合同范本模板
- 上海租賃合同范本個人
- 橋梁護欄采購合同范本
- 從化房屋購銷合同范本
- 廚電工程合同范例
- 代理買賣股票合同范例
- FMEA手冊新中文版(第五版)
- DB4101T 64-2023 智慧養(yǎng)老服務平臺建設規(guī)范
- 2023年國家藥品監(jiān)督管理局特殊藥品檢查中心招聘考試真題
- 安全(HSE)監(jiān)督檢查的方法和技巧
- 第七章-生物醫(yī)學工程的倫理問題
- 儀表常見故障分析及解決方法
- 五上數(shù)學簡便運算500道及答案
- 卜算子-送鮑浩然之浙東課件
- 醫(yī)療護理員五級理論知識考核試題
- 戶外體育場音視頻設計投標方案(技術(shù)方案)
- 2023年全國職業(yè)院校技能大賽賽項-ZZ019 智能財稅基本技能賽題 - 模塊二-答案
評論
0/150
提交評論