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

📄 ds1302.h

📁 显示128*64LCD,并显示 模数时间和日期
💻 H
字号:
sbit RST=P1^0;
sbit SCLK=P1^1;
sbit I_O=P1^2;
uchar read_data[7];//存取时间数据

//写指令数据字节,低位在前
void write_ds1302_data(uchar ds1302_data)
{
  uchar i;
  for(i=0;i<8;i++)
  {
    I_O=(bit)(ds1302_data&0x01);
	SCLK=0;
	SCLK=1;
	ds1302_data>>=1;
  }
}
//读数据字节,低位在前
uchar read_ds1302_data(void)
{
  uchar i,temp=0;
  for(i=0;i<8;i++)
  {
    if(I_O)
	  { temp|=0x80;}
	  SCLK=1;
	  SCLK=0;
	  temp>>=1;
  } 
  return(temp);
}
//写指令数据
void write_ds1302(uchar data_address,uchar ds1302_data)
{
  RST=0;
  RST=1;
  write_ds1302_data(data_address);
  write_ds1302_data(ds1302_data);
  RST=0;
  
}
//读显示数据
uchar read_ds1302(uchar data_address)
{
  uchar temp;
  RST=0;
  RST=1;
  write_ds1302_data(data_address);
  temp=read_ds1302_data();
  RST=0;
  return(temp);
}
//时钟开关:0 关; 1 开
void start_ds1302_onoff(uchar onoff)
{ 
  if(onoff)
	 {onoff=0x00;}
  else 
     {onoff=0x80;}
  write_ds1302(0x80,onoff);
 
}
//写保护位 	:0 允许写字节;1 禁止写字节
/*void set_protect_bit(uchar protect_bit)
{  
  if(!protect_bit)
  { protect_bit=0x00;}
  else
  { protect_bit=0x80;}
  write_ds1302(0x8e,protect_bit);
}*/
//设置VCC1与VCC2的连接属性(2个二极管,4K欧姆电阻)
void set_vcc1_vcc2_property(void)
{ 
  write_ds1302(0x90,0xaa);
}
//连续写入ds1302的时间
void  write_serial_ds1302(uchar * init_time)
{
  uchar i,j;
  //set_protect_bit(0);
  
  RST=0;
  RST=1;
  write_ds1302_data(0xbe);
  RST=0;
  for(j=0,i=0x80;j<7;j++)
  {
   write_ds1302(i,* init_time);
   i+=2;
   init_time++;
  }
 
  //set_protect_bit(1); 
}
//连续读取ds1302内的时间数据
void read_serial_ds1302(void)
{
  uchar i,j;
  write_ds1302_data(0xbf);
  for(j=0,i=0x81;j<8;j++)
  {
    read_data[j]=read_ds1302(i);
	i+=2; 
  }
}
//初始化ds1302
void Init_ds1302(void)
{
  uchar * temp,Init_time[7]={0x50,0x59,0x23,0x26,0x03,0x07,0x07};
  temp=&Init_time[0];
  start_ds1302_onoff(1);
  set_vcc1_vcc2_property();
  write_serial_ds1302(temp);
}

⌨️ 快捷键说明

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