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

📄 ds1302.h

📁 单片机控制电子门 密码锁
💻 H
字号:
void delay(uint time)
{
	uint i,j;
	for(i=time;i>0;i--)
		for(j=100;j>0;j--);
}
uchar read_bit()
{
	uchar i;
	_nop_();_nop_();_nop_();
	for(i=0;i<8;i++)
   	{
      	ACC_7=DS1302_DAT;
	  	DS1302_SCK=1;
	  	_nop_();_nop_();_nop_();
		ACC>>=1;
	 	DS1302_SCK=0;					//下降沿读取数据
	 	_nop_();_nop_();_nop_();
   }
   return ACC;
}
void write_bit(uchar temp)
{
	uchar i;
	uchar tmp;
	tmp=temp;
 	for(i=0;i<8;i++)
	{
		DS1302_SCK=0;
		_nop_();_nop_();
		DS1302_DAT=(tmp&0x01);
		DS1302_SCK=1;
		_nop_();_nop_();
		tmp=tmp>>1;
	}
}
void write1302(uchar add,uchar dat)
{
	 DS1302_CE=0;//CE=0,禁止数据发送
	 DS1302_SCK=0;//时钟线拉为低,准备时钟
	 DS1302_CE=1;//CE=1,允许发送数据
	 write_bit(add);//按位发地址
	 write_bit(dat);//按位发数据
	 DS1302_SCK=1;
	 DS1302_CE=0;
}
void DS1302_init()
{
	write1302(Wp,0x00);			//禁止写保护
	write1302(Writesec,0x55);	//写秒
	write1302(Writemin,0x58);	//写分	
	write1302(Writehour,0x21);	//写时
	write1302(Writeday,0x17);	//写天
	write1302(Writemon,0x08);	//写月
	write1302(Writeweek,0x00);	//写星期
	write1302(Writeyear,0x23);	//写年
}
uchar read1302(uchar addr)
{
	uchar tmep;
	uchar tmph,tmpl;
	DS1302_CE=0;
	DS1302_SCK=0;
	DS1302_CE=1;
	write_bit(addr);
	tmep=read_bit();
	DS1302_SCK=1;
	DS1302_CE=0;

	tmph=tmep/16;
	tmpl=tmep%16;
	tmep=tmph*10+tmpl;
	return tmep;
}
void gettime()
{
	uchar tmp;
	tmp=read1302(Readsec);
	t[4]=tmp/10;
	t[5]=tmp%10;
	tmp=read1302(Readmin);
	t[2]=tmp/10;
	t[3]=tmp%10;
	tmp=read1302(Readhour);
	t[0]=tmp/10;
	t[1]=tmp%10;
	tmp=read1302(Readday);
	t[10]=tmp/10;
	t[11]=tmp%10;
	tmp=read1302(Readmon);
	t[8]=tmp/10;
	t[9]=tmp%10;
	tmp=read1302(Readyear);
	t[6]=tmp/10;
	t[7]=tmp%10;
	tmp=read1302(Readweek);
	t[12]=tmp/10;
	t[13]=tmp%10;
}

⌨️ 快捷键说明

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