ds1302.c

来自「本人开发的测量水的浊度的仪器」· C语言 代码 · 共 89 行

C
89
字号
#ifndef DS1302_C
#define DS1302_C
#include "ds1302.h"

uchar readdata(uchar addr)
{
	uchar c,i;

	EA = 0;

	DS1302_RST = 1;

//	DS1302_CLK = 0;
	for(i=0;i<8;i++)
	{
		DS1302_CLK = 0;
		if(addr&0x01)
			DS1302_IO = 1;
		else
			DS1302_IO = 0;
		addr >>= 1;
		DS1302_CLK = 1;
	}
	for(i=0;i<8;i++)
	{
		c >>= 1;
		DS1302_CLK = 0;
		DS1302_IO = 1;
		if(DS1302_IO == 1)
			c |= 0x80;
		DS1302_CLK = 1;
	}

	DS1302_RST = 0;
	DS1302_CLK = 0;

	EA = 1;

	return c;
}

void writedata(uchar addr,uchar dat)
{
	uchar i;

	EA = 0;

	DS1302_RST = 1;

//	DS1302_CLK = 0;
	for(i=0;i<8;i++)
	{
		DS1302_CLK = 0;
		if(addr&0x01)
			DS1302_IO = 1;
		else
			DS1302_IO = 0;
		addr >>= 1;
		DS1302_CLK = 1;
	}

	for(i=0;i<8;i++)
	{
		DS1302_CLK = 0;
		if(dat&0x01)
			DS1302_IO = 1;
		else
			DS1302_IO = 0;
		dat >>= 1;
		DS1302_CLK = 1;
	}

	DS1302_RST = 0;
	DS1302_CLK = 0;

	EA = 1;
}

void initds1302()
{
	EA = 0;
	DS1302_RST = 0;
	DS1302_CLK = 0;
	DS1302_IO = 0;
	EA = 1;
}

#endif

⌨️ 快捷键说明

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