/*巨集定義*/
#define uchar unsigned char
#define write_second 0x80
//寫秒
#define read_second 0x81
//讀秒
#define write_minute 0x82
//寫分
#define read_minute 0x83
//讀分
#define write_hour 0x84
//寫時
#define read_hour 0x85
//讀時
#define write_day 0x86
//寫日
#define read_day 0x87
//讀日
#define write_month 0x88
//寫月
#define read_month 0x89
//讀月
#define write_week 0x8a
//寫星期
#define read_week 0x8b
//讀星期
#define write_year 0x8c
//寫年
#define read_year 0x8d
//讀年
#define write_protect 0x8e
//寫保護
/*自定義結構體陣列*/
typedef
struct __systemtime__
systemtime;
/*宣告*/
void
ds1302write
(uchar reg, uchar dat)
;uchar ds1302read
(uchar addr)
;void
ds1302_init()
;void
ds1302_gettime
(systemtime *time)
;#endif
void
ds1302write
(uchar reg, uchar dat)
//單位元組寫操作 reg 暫存器 dat 要寫的資料
else
ds1302ck =1;
ds1302ck =0;
}for
(detect =
0x01
; detect !=
0; detect <<=1)
else
ds1302ck =1;
ds1302ck =0;
} ds1302rst =0;
}
uchar ds1302read
(uchar addr)
//單位元組讀操作 addr 要讀的位址
else
ds1302ck =1;
ds1302ck =0;
}for
(detect =
0x01
; detect !=
0; detect <<=1)
ds1302ck =1;
ds1302ck =0;
} ds1302rst =0;
return dat;
}
void
ds1302_gettime
(systemtime *time)
//獲取ds1302時間存放在自定義結構體
void
ds1302_init()
//初始化寫入20年5月20日13時14分0秒星期三
DS1302的使用(by 51微控制器)
最近在準備藍橋杯微控制器組的比賽,在學習這款微控制器時,裡面涉及到ds1302晶元的使用,所以今天就在這裡把學習使用ds1302的過程寫下來,以方便日後查閱。ds1302是由dallas公司推出的涓流充電時鐘晶元,片內含有乙個實時時鐘和31位元組靜態ram.可通過簡單序列介面與微控制器進行通訊。與微...
STM32與DS1302的介面電路
1 硬體 clk pa4,dat pa5,rst pa6 2 硬體初始化 clk與rst均為輸出,而dat是開漏型的輸出。因為在這種方式下,io口的讀仍然存在,因此是真正的雙向io模式。dsck pa4 dat pa5 rst dat define ds1302clk gpio pin 4 與時鐘線...
STM32與DS1302的介面電路
作者在某stm32的應用中外置了一塊ds1302,借鑑原來寫過的pic 很快移植成功。在這裡與大家分享一下。1 硬體 clk pa4,dat pa5,rst pa6 2 硬體初始化 clk與rst均為輸出,而dat是開漏型的輸出。因為在這種方式下,io口的讀仍然存在,因此是真正的雙向io模式。dsc...