【蓝桥杯】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

posted @ 2023-02-02 17:36  寥若辰星  阅读(12)  评论(0编辑  收藏  举报