資源簡介
STC15F2K48S2單片機,DS1302獲取當前時間,并且將時間通過串口2發出去
代碼片段和文件信息
#include“ds1302.h“
//---DS1302寫入和讀取時分秒的地址命令---//
//---秒分時日月周年?最低位讀寫位;-------//
uchar?code?READ_RTC_ADDR[7]?=?{0x81?0x83?0x85?0x87?0x89?0x8b?0x8d};
uchar?code?WRITE_RTC_ADDR[7]?=?{0x80?0x82?0x84?0x86?0x88?0x8a?0x8c};
extern?uchar?xdata?TIMES[7];
/*******************************************************************************
*?函?數?名?????????:?Ds1302Write
*?函數功能 ?????:?向DS1302寫時間
*?輸????入?????????:?addrdat
*?輸????出?????????:?無
*******************************************************************************/
void?Ds1302Write_time(uchar?addr?uchar?dat)
{
Ds1302Write(0x8E0x00); ?//禁止寫保護,就是關閉寫保護功能
Ds1302Write(addrdat);
??Ds1302Write(0x8E0x80); ?//打開寫保護功能
}
/*******************************************************************************
*?函?數?名?????????:?Ds1302Write
*?函數功能 ?????:?向DS1302命令(地址+數據)
*?輸????入?????????:?addrdat
*?輸????出?????????:?無
*******************************************************************************/
void?Ds1302Write(uchar?addr?uchar?dat)
{
????uchar?n;
????RST?=?0;
????_nop_();
????SCLK?=?0;//先將SCLK置低電平。
????_nop_();
????RST?=?1;?//然后將RST(CE)置高電平。
????_nop_();
????for?(n=0;?n<8;?n++)//開始傳送八位地址命令
????{
????????DSIO?=?addr?&?0x01;//數據從低位開始傳送
????????addr?>>=?1;
????????SCLK?=?1;//數據在上升沿時,DS1302讀取數據
????????_nop_();
????????SCLK?=?0;
????????_nop_();
????}
????for?(n=0;?n<8;?n++)//寫入8位數據
????{
????????DSIO?=?dat?&?0x01;
????????dat?>>=?1;
????????SCLK?=?1;//數據在上升沿時,DS1302讀取數據
????????_nop_();
????????SCLK?=?0;
????????_nop_();
????}
????RST?=?0;//傳送數據結束
????_nop_();
}
/*******************************************************************************
*?函?數?名?????????:?Ds1302Read
*?函數功能 ?????:?讀取一個地址的數據
*?輸????入?????????:?addr
*?輸????出?????????:?dat
*******************************************************************************/
uchar?Ds1302Read(uchar?addr)
{
????uchar?ndatdat1;
????RST?=?0;
????_nop_();
????SCLK?=?0;//先將SCLK置低電平。
????_nop_();
????RST?=?1;//然后將RST(CE)置高電平。
????_nop_();
????for(n=0;?n<8;?n++)//開始傳送八位地址命令
????{
????????DSIO?=?addr?&?0x01;//數據從低位開始傳送
????????addr?>>=?1;
????????SCLK?=?1;//數據在上升沿時,DS1302讀取數據
????????_nop_();
????????SCLK?=?0;//DS1302下降沿時,放置數據
????????_nop_();
????}
????_nop_();
????for(n=0;?n<8;?n++)//讀取8位數據
????{
????????dat1?=?DSIO;//從最低位開始接收
????????dat?=?(dat>>1)?|?(dat1<<7);
????????SCLK?=?1;
????????_nop_();
????????SCLK?=?0;//DS1302下降沿時,放置數據
????????_nop_();
????}
????RST?=?0;
????_nop_(); //以下為DS1302復位的穩定時間必須的。
????SCLK?=?1;
????_nop_();
????DSIO?=?0;
????_nop_();
????DSIO?=?1;
????_nop_();
????return?dat;
}
/*******************************************************************************
*?函?數?名?????????:?Ds1302Init
*?函數功能 ?? ???:?初始化DS1302.
*?輸????入?????????:?無
*?輸????出?????????:?無
*******************************************************************************/
void?Ds1302Init()
{
????uchar?n;
????Ds1302Write(0x8E0X00); ?//禁止寫保護,就是關閉寫保護功能
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????1239??2018-06-04?20:10??ds1302+uart2\12T\ASM\DS1302
?????文件???????5090??2018-06-04?20:10??ds1302+uart2\12T\ASM\DS1302.ASM
?????文件????????550??2018-06-04?20:10??ds1302+uart2\12T\ASM\DS1302.hex
?????文件?????????44??2018-06-04?20:10??ds1302+uart2\12T\ASM\DS1302.lnp
?????文件??????12544??2018-06-04?20:10??ds1302+uart2\12T\ASM\DS1302.LST
?????文件???????5957??2018-06-04?20:10??ds1302+uart2\12T\ASM\DS1302.M51
?????文件???????1310??2018-06-04?20:10??ds1302+uart2\12T\ASM\DS1302.OBJ
?????文件????????847??2018-06-04?20:10??ds1302+uart2\12T\ASM\DS1302.Opt
?????文件????????172??2018-06-04?20:10??ds1302+uart2\12T\ASM\DS1302.plg
?????文件???????1705??2018-06-04?20:10??ds1302+uart2\12T\ASM\DS1302.Uv2
?????文件????????851??2018-06-04?20:10??ds1302+uart2\12T\ASM\DS1302_Opt.Bak
?????文件???????1706??2018-06-04?20:10??ds1302+uart2\12T\ASM\DS1302_Uv2.Bak
?????文件???????6883??2018-06-04?20:10??ds1302+uart2\12T\C\DS1302
?????文件???????4341??2018-06-04?20:10??ds1302+uart2\12T\C\DS1302.C
?????文件???????1061??2018-06-04?20:10??ds1302+uart2\12T\C\DS1302.hex
?????文件?????????44??2018-06-04?20:10??ds1302+uart2\12T\C\DS1302.lnp
?????文件???????7813??2018-06-04?20:10??ds1302+uart2\12T\C\DS1302.LST
?????文件??????11426??2018-06-04?20:10??ds1302+uart2\12T\C\DS1302.M51
?????文件???????7922??2018-06-04?20:10??ds1302+uart2\12T\C\DS1302.OBJ
?????文件????????843??2018-06-04?20:10??ds1302+uart2\12T\C\DS1302.Opt
?????文件????????170??2018-06-04?20:10??ds1302+uart2\12T\C\DS1302.plg
?????文件???????1701??2018-06-04?20:10??ds1302+uart2\12T\C\DS1302.Uv2
?????文件????????856??2018-06-04?20:10??ds1302+uart2\12T\C\DS1302_Opt.Bak
?????文件???????1702??2018-06-04?20:10??ds1302+uart2\12T\C\DS1302_Uv2.Bak
?????文件???????1189??2018-06-04?20:10??ds1302+uart2\1T\ASM\DS1302
?????文件???????5002??2018-06-04?20:10??ds1302+uart2\1T\ASM\DS1302.ASM
?????文件????????550??2018-06-04?20:10??ds1302+uart2\1T\ASM\DS1302.hex
?????文件?????????44??2018-06-04?20:10??ds1302+uart2\1T\ASM\DS1302.lnp
?????文件??????12041??2018-06-04?20:10??ds1302+uart2\1T\ASM\DS1302.LST
?????文件???????5587??2018-06-04?20:10??ds1302+uart2\1T\ASM\DS1302.M51
............此處省略52個文件信息
- 上一篇:r語言計算標準化降水指數
- 下一篇:3d重建CT圖像重建代碼
評論
共有 條評論