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

📄 ds1302.h

📁 用51单片机实现的DS1302的驱动程序
💻 H
字号:
////////////////////////////////////////////////////////////////////////////////////////////
//                                                      H.C.H
//                                  DS1302驱动程序(DS1302.h)
//                                              NNU通信工程
//                
//                                                函数说明:
//   void   set_time() ;           设置实时时钟(DS1302)的时间
//   void   read_time();          读时间
//   全局变量: year,week,month,day,hour,minute,second(以BCD码表示)         
////////////////////////////////////////////////////////////////////////////////////////////


#include<reg51.h>
#define uchar unsigned char 

sbit sclk=P1^0;
sbit sdata=P1^1;
sbit reset=P1^2;
uchar year,week,month,day,hour,minute,second;


void delay(uchar d)                    //延时程序
{
  while(--d);
}



void send_char(uchar sendchar)        
{
  uchar i;
  for(i=0;i<8;i++)
  {
     sclk=0;
     if(sendchar&1)  sdata=1;
     else sdata=0;
     sclk=1;
     sendchar=sendchar>>1;
   }
}


uchar get_char()
{
  uchar i,temp=1,din=0;
  for(i=0;i<8;i++)
  {
     sclk=0;
     sdata=1;
     if(sdata==1) din=din|temp;
     sclk=1;
     temp=temp<<1;
   }
   return(din);
}



void set_off()      //寄存器数据能写入WP=0
{
  reset=1;
  send_char(0x8e);
  send_char(0);
  sclk=0;
  reset=0;
}


void set_on()      //寄存器数据不能写入WP=1
{
  reset=1;
  send_char(0x8e);
  send_char(0x80);
  sclk=0;
  reset=0;
}

void read_time()
{
  uchar temp;
  reset=1;
  send_char(0xbf);


  second=get_char();
  minute=get_char();
  hour=get_char();
  day=get_char();
  month=get_char();
  week=get_char(); 
  year=get_char();
  temp=get_char();
  
  sclk=0;
  reset=0;

}

void set_time()
{
  set_off();
  reset=1;
  send_char(0xbe);

  send_char(second);
  send_char(minute);
  send_char(hour);
  send_char(day);
  send_char(month);
  send_char(week);
  send_char(year);
  send_char(0);

  sclk=0;
  reset=0;
  set_on();
}

⌨️ 快捷键说明

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