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

📄 ds1302_driver.c

📁 该压缩包内还有51单片机常用各类外设驱动C程序源码(128*64点阵屏
💻 C
字号:
#include "AT89S52.H"
#include "CONFIG.H"
#include "DS1302_Driver.h"
#include <intrins.h>




uchar bdata SHIFT_BUF;
sbit SHIFT_BUF_0=SHIFT_BUF^0;

/*--------------------------
	DS1302读写启动程序
--------------------------*/
void DSReset_Start(void)
{
RST=0;
SCLK=0;
RST=1;
}

/*--------------------------
	DS1302读写终止程序
--------------------------*/
void Reset_End(void)
{
RST=0;
}


/*----------------------------
	DS1302写字节程序
----------------------------*/
void DSByte_Write(uchar byte)
{
uchar data i;
SHIFT_BUF=byte;
	for(i=0;i<8;i++)
	{
		SCLK=0;
		I0=SHIFT_BUF_0;
		SCLK=1;
		SHIFT_BUF=_cror_(SHIFT_BUF,1);
	}

}


/*----------------------------
	DS1302读字节程序
----------------------------*/
uchar DSByte_Read(void)
{
uchar data i;
I0=1;
	for(i=0;i<8;i++)
	{
		SCLK=0;
		SHIFT_BUF_0=I0;
		SCLK=1;
		SHIFT_BUF=_cror_(SHIFT_BUF,1);
	}
    return SHIFT_BUF;
}


/*--------------------------------
	DS1302初始化程序
--------------------------------*/
void RTC_Init(uchar *rtc)
{
uchar data i;

DSReset_Start();
DSByte_Write(0x8E);//去WP保护
DSByte_Write(0);
Reset_End();
DSReset_Start();
DSByte_Write(90);//禁止充电
DSByte_Write(0);
Reset_End();
DSReset_Start();
		DSByte_Write(0xBE);
		for(i=0;i<7;i++)
		{
			DSByte_Write(*rtc++);
		}
		DSByte_Write(0x80);
Reset_End();
}


/*--------------------------------
	DS1302读取RT程序
--------------------------------*/
void RTC_Read(uchar *rtc)
{
uchar data i;
DSReset_Start();
		DSByte_Write(0xBF);
		for(i=0;i<7;i++)
		{
			*rtc++=DSByte_Read();
		}
Reset_End();
}

⌨️ 快捷键说明

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