⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ds1302.c

📁 64*16的点阵显示
💻 C
字号:
//========================================================================================
// 程序功能: 取出DS1302时间地址所对应的时间
// 程序接口: void DS1302_GetTime();
// 编写时间: 2009-03-02
//========================================================================================

#include<Module.h>

sbit CLK=P3^4;
sbit IO=P3^5;           						//ds1302
sbit RST=P3^6;

uc G_ucTime[7];     							//秒,分,时,星期,日,月,年 注意为BCD码
//========================================================================================
// 函数功能: 读取DS1302某地址的数据
// 函数接口: uc DS1302_ReadByte(uc ucAddr);
// 入口参数: ucAddr: DS1302地址
// 出口参数: k
//========================================================================================
uc DS1302_ReadByte(uc ucAddr)
{
	uc i,k;
	
	RST = 0;
	CLK = 0;									//clk为低电平时才能将rst置高
	RST=1;       								//启动数据传送

	ucAddr |= 0x01;
	k=1;
	for(i=0;i<8;i++)
	{
		CLK = 0;
	    if( ucAddr&k )
			IO = 1;
		else
			IO = 0;
		CLK = 1;
		k<<=1;
	}//for
	k=0;
	IO = 1;
	CLK = 1;

	for(i=0;i<8;i++)
	{
		k >>= 1;
		CLK = 0;
		if( IO ) 
			k|= 0x80;
		CLK = 1;
	}//for
	CLK = 1;
	RST =0;

	return k;
} 
//========================================================================================
// 函数功能: 读取DS1302当前时间
// 函数接口: void DS1302_GetTime();
// 入口参数: DS1302_ReadByte(ucAddr): 保存当前时间地址。
// 出口参数: unsigned char G_ucTime[i] ;
//========================================================================================
void DS1302_GetTime()
{
	uc i, ucAddr = 0x81;
	
	for(i=0;i<7;i++)
	{
		G_ucTime[i] = DS1302_ReadByte(ucAddr);  //格式为: 秒 分 时 日 月 星期 年
		ucAddr += 2;
	}//for
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -