DS1302的整理與使用 筆記篇

2021-10-06 02:23:23 字數 2222 閱讀 6798

/*巨集定義*/

#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...