|
全部資料下載地址:
1302高精度不可調(diào)節(jié)時(shí)鐘.zip
(40.5 KB, 下載次數(shù): 8)
2017-9-28 13:08 上傳
點(diǎn)擊文件名下載附件
完整項(xiàng)目文件 下載積分: 黑幣 -5
- 2017年9月7日
- 21:07
- //DS1302寫入數(shù)據(jù)
- void writebety_ds(uchar dat)
- {
- uchar i;
- SCLK=0; //初始時(shí)鐘線置為 0
- delayus(2);
- for(i=0;i<8;i++) //開始傳輸8個(gè)字節(jié)的數(shù)據(jù)
- {
- SDA=dat&0x01; // 取最低位,注意DS1302的數(shù)據(jù)和地址都是從最低位開始傳輸?shù)?br />
- delayus(2);
- SCLK=1; // 時(shí)鐘線拉高,制造上升沿,SDA的數(shù)據(jù)被傳輸
- delayus(2);
- SCLK=0; // 時(shí)鐘線拉低,為下一個(gè)上升沿做準(zhǔn)備
- dat>>=1; // 數(shù)據(jù)右移一位,準(zhǔn)備傳輸下一位數(shù)據(jù)
- }
- }
- //DS1302讀出數(shù)據(jù)
- uchar readbety_ds()
- {
- uchar i,dat;
- delayus(2);
- for(i=0;i<8;i++)
- {
- dat>>=1; // 要返回的數(shù)據(jù)右移一位
- if(SDA==1) // 當(dāng)數(shù)據(jù)線為高時(shí),證明該位數(shù)據(jù)為 1
- dat|=0x80; // 要傳輸數(shù)據(jù)的當(dāng)前值置為1
- SCLK=1; //拉高時(shí)鐘線
- delayus(2);
- SCLK=0; // 制造下降沿
- delayus(2);
- }
- return dat; // 返回讀取出的數(shù)據(jù)
- }
- //DS1302寫入單個(gè)時(shí)間
- void dswrite_data(uchar add,uchar dat)
- {
-
- RST=0; // 初始 CE 線置為 0
- SCLK=0; // 初始時(shí)鐘線置為 0
- RST=1; // 初始 CE 置為 1 ,傳輸開始
- writebety_ds(add);
- writebety_ds(dat); // 寫入要修改的時(shí)間,日期
- SCLK=1; // 時(shí)鐘線拉高
- RST=0; //
- }
- //DS1302讀出單個(gè)時(shí)間
- uchar dsread_data(uchar add)
- {
- uchar temp_date;
- RST=0; // 初始 CE 線置為 0 0 0 0
- SCLK=0; // 初始時(shí)鐘線置為 0 0 0 0
- RST=1; // 初始 CE 置為 1 1 1 1 ,傳輸開始
- writebety_ds(add); // 傳輸命令字,要讀取的時(shí)間 日歷地址
- temp_date=readbety_ds(); // 讀取要得到的時(shí)間/ / / / 日期
- SCLK=1; // 時(shí)鐘線拉高
- RST=0; // 讀取結(jié)束, CE 置為 0 0 0 0 ,結(jié)束數(shù)據(jù)的傳輸
- return temp_date; //返回得到的時(shí)間/ / / /
-
-
- }
復(fù)制代碼
|
|