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

📄 1302.c

📁 该程序能是对DS1302时钟芯片的操作程序
💻 C
字号:
#include<pic.h>
#include"1302.h"

//ds1302的初始化函数
void init_1302(void)
{
	DS1302CK_O;
	DS1302CE_O;
	DS1302CE_0;
	DS1302CK_0;
	DS1302IO_1;
	DS1302IO_I;
}

//DS1302的读函数
unsigned char Read_DS1302(unsigned char Address)
{
	unsigned char i;
	unsigned int  temp;
	DS1302CE_0;
	DS1302CK_0;
	DS1302IO_O;
	asm("nop");
	asm("nop");
	DS1302CE_1;
	asm("nop");
	asm("nop");
	for(i=8;i>0;i--)
	{
		if(Address & 0x01)DS1302IO_1;

		else DS1302IO_0;//DS1302高低电平都有效
		asm("nop");
		asm("nop");
		DS1302CK_1;
		asm("nop");
		asm("nop");
		DS1302CK_0;
		asm("nop");
		asm("nop");
		Address>>=1;
	}
	DS1302IO_1;
	asm("nop");
	asm("nop");
	DS1302IO_I;
	asm("nop");
	asm("nop");
	temp=0;
	if(DS1302IO_D)temp|=0x8000;
	temp>>=1;
	for(i=7;i>0;i--)//为什么是7,而不是8
	{
		asm("nop");
		asm("nop");
		DS1302CK_1;
		asm("nop");
		asm("nop");
		DS1302CK_0;
		asm("nop");
		asm("nop");
		if(DS1302IO_D)temp|=0x8000;
		temp>>=1;
	}
	DS1302CE_0;
	temp<<=1;
	return(temp/256);
}

//DS1302的写函数
void Write_DS1302(unsigned char Address,unsigned char Data)
{
	unsigned char i;
	DS1302CE_0;
	DS1302CK_0;
	DS1302IO_0;
	asm("nop");
	asm("nop");
	DS1302CE_1;
	asm("nop");
	asm("nop");
	for(i=8;i>0;i--)//一个字符八个字节,故要执行八次
	{
		if(Address & 0x01)DS1302IO_1;
	
		else DS1302IO_0;
		asm("nop");
		asm("nop");
		DS1302CK_1;
		asm("nop");
		asm("nop");
		DS1302CK_0;
		asm("nop");
		asm("nop");
		Address>>=1;
	}	
	for(i=8;i>0;i--)
	{
		if(Address & 0x01)DS1302IO_1;

		else DS1302IO_0;
		asm("nop");
		asm("nop");
		DS1302CK_1;
		asm("nop");
		asm("nop");
		DS1302CK_0;
		asm("nop");
		asm("nop");
		Data>>=1; 
	}
	DS1302CE_0;
}

⌨️ 快捷键说明

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