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

📄 ds1302.c

📁 基于51单片机下的时钟芯片ds1302的读写子程序
💻 C
字号:
#include <reg51.h>
#include <intrins.h>
sbit clock_Rst = P3 ^ 4;
sbit clock_dat = P3 ^ 3;
sbit clock_clk = P3 ^ 2;

void clock_out(unsigned char dd);
void write_clock(unsigned char ord,unsigned char dd);
unsigned char clock_in(void);
unsigned char read_clock(unsigned char ord);

/*===============================================================================/
 *函数名称:clock_out
 *入口参数:dd
 *函数功能:写入指令或数据
/===============================================================================*/
void clock_out(unsigned char dd)
{

	unsigned char i,temp;
	temp=dd;
	for(i=8;i>0;i--)
	{
		
//	if((temp&0x01)==1)
//	clock_dat=1;
//	else clock_dat=0;
	clock_dat =( temp & 0x01);
	clock_clk=1; _nop_();
	clock_clk=0;
	temp=temp>>1;
	 }
	
    
}
/*===============================================================================/
 *函数名称:write_clock
 *入口参数:命令ord,数据dd
 *函数功能:时钟调整
/================================================================================*/
void write_clock(unsigned char ord,unsigned char dd)
{
	clock_clk=0;
	clock_Rst=0;
	clock_Rst=1;
	clock_out(ord);
	clock_out(dd);
	clock_Rst=0;
	
}


/*=================================================================================/
 *函数名称:clock_in
 *返回  值:ACC
 *函数功能:输出数据
/=================================================================================*/
unsigned char clock_in(void)
{

	unsigned char i,temp;
	temp=0x00;
	for(i=8;i>0;i--)
	{
	temp=temp>>1;
	if(clock_dat==1) temp = temp | 0x80;
	clock_clk=1;
	clock_clk=0;	
    }
//	if(clock_dat==1) temp|=0x80;
	return(temp);
}
/*****************************************************************************/
//DS1302读数据(底层协议)
unsigned char read_clock(unsigned char ord)
{
	unsigned char dd = 0;

	clock_clk=0;
	clock_Rst=0; _nop_();
	clock_Rst=1;
	clock_out(ord);
	dd=clock_in();
//	clock_clk=1;
	clock_Rst=0;
//	k=dd>>4;
//	dd=dd&0x0f;
//	dd=dd+k*10;
	return (dd);
}



⌨️ 快捷键说明

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