【蓝桥杯】DS1302时钟芯片
ds1302.c
unsigned char code DS1302_WriteAdd[7] = {0x80, 0x82, 0x84, 0x86, 0x88, 0x8a, 0x8c};
unsigned char code DS1302_ReadAdd[7] = {0x81, 0x83, 0x85, 0x87, 0x89, 0x8b, 0x8d};
unsigned char Time[7] = {0x55, 0x59, 0x23, 0, 0, 0, 0};//秒,分,时,日,月,星期,年
void DS1302_init() {
unsigned char i;
Write_Ds1302_Byte(0x8e, 0x00);
for (i = 0; i < 7; i ++) {
Write_Ds1302_Byte(DS1302_WriteAdd[i], Time[i]);
}
Write_Ds1302_Byte(0x8e, 0x80);
}
void DS1302_Read() {
unsigned char i;
for (i = 0; i < 7; i ++) {
Time[i] = Read_Ds1302_Byte(DS1302_ReadAdd[i]);
}
}
ds1302.h
#ifndef __DS1302_H
#define __DS1302_H
void DS1302_init();
void DS1302_Read();
extern unsigned char Time[7];
#endif
调用方法
DS1302_init(); //放在while(1)之前
DS1302_Read();
SMG_data[0] = Time[2] / 16;//时
SMG_data[1] = Time[2] % 16;
SMG_data[2] = Time[1] / 16;//分
SMG_data[3] = Time[1] % 16;
SMG_data[4] = Time[0] / 16;//秒
SMG_data[5] = Time[0] % 16;
2023 / 2 / 2 17:35
GJY in AnShan