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

📄 de1302_rw.c

📁 主要为一时钟芯片的控制程序
💻 C
字号:
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar sec,min,hr;
sbit clk=P1^0;
sbit dat=P1^1;
sbit rst=P1^2;
sbit A0=ACC^0;
sbit A1=ACC^1;
sbit A2=ACC^2;      
sbit A3=ACC^3;
sbit A4=ACC^4;
sbit A5=ACC^5;
sbit A6=ACC^6;
sbit A7=ACC^7;
sbit blue=P1^5;
sbit green=P1^6;
sbit red=P1^7;
void InputByte(uchar dd)//mcu to ds1302
   {
     uchar i;
     ACC=dd;
     for(i=8;i>0;i--)
      {
       dat=A0;
       clk=1;
       clk=0;
       ACC=ACC>>=1;
        }
     }  
//-------------------------------------------------------
uchar OutputByte(void) //ds1302 to mcu
   {
     uchar i;
     dat=1;      
     for(i=8;i>0;i--)
      {
        ACC=ACC>>1;
        A7=dat;
        clk=1;
        clk=0;
        }      
      return(ACC);
     }
//--------------------------------------------------
void Write(uchar addr,uchar num)
  {
    rst=0;
    clk=0;
    rst=1;
    InputByte(addr);   // address
    InputByte(num);    //data
    clk=1;
    rst=0;
    }
//-------------------------------------------------
uchar Read(uchar addr)
  {
    uchar dd=0;
    rst=0;
    clk=0;
    rst=1;
    InputByte(addr);
    dd=OutputByte();
    clk=1;
    rst=0;
    return(dd);
   }
//--------------------------------------------------------------
uchar ReadSec()
  {
   uchar dd; 
   dd=Read(0x81);
   return(dd);
   }
//--------------------------------------------------------------
uchar ReadMin()
  {
   uchar dd; 
   dd=Read(0x83);
   return(dd);
    }       
//--------------------------------------------------------------
uchar ReadHr()
  {
    uchar dd; 
    dd=Read(0x85);
    return(dd);
   }
//------------------------------------------------------------   
uchar ReadWe()
  {
    uchar dd; 
    dd=Read(0x8b);
    return(dd);
    }
//------------------------------------------------------------
uchar ReadDay()
  {
    uchar dd; 
    dd=Read(0x87);
    return(dd);
   }
//------------------------------------------------------------
uchar ReadMn()
  {
    uchar dd; 
    dd=Read(0x89);
    return(dd);
   }
//------------------------------------------------------------
uchar ReadYs()
  {
    uchar dd; 
    dd=Read(0x8d);
    return(dd);
   }
//------------------------------------------------------------
void WriteSec(uchar num)
      {
       Write(0x80,num);
       }
//-----------------------------------------------------------
void WriteMin(uchar num)
  {
    Write(0x82,num);
   }
//-----------------------------------------------------------
void WriteHr(uchar num)
  {
    Write(0x84,num);
   }
//-----------------------------------------------------------
void WriteDay(uchar num)
 {
   Write(0x86,num);
  }
//-----------------------------------------------------------
void WriteMn(uchar num)
  {
    Write(0x88,num);
   }
//-----------------------------------------------------------
void WriteWe(uchar num)
 {
   Write(0x8a,num);
   }
//-----------------------------------------------------------
void WriteYs(uchar num)
  {
    Write(0x8c,num);
   }
//-----------------------------------------------------------
void DisableWP(void)        //write data,read 0
 {
   Write(0x8e,0x00);
   }
//----------------------------------------------------------
void EnableWP(void)              //can''d write,read data   
 {
   Write(0x85,0x80);
   }
   void delay()
   {uint i,j;
   for(i=0;i<1000;i++)    
     {
     for(j=0;j<40;j++){}
     } 
   }
   
   void main(void)
   {
          
DisableWP();
 WriteSec(0x00);
  WriteMin(0x57);
 WriteHr(0x10);
WriteDay(0x07);
WriteMn(0x06);
  WriteWe(0x02);
 WriteYs(0x05);
       }

⌨️ 快捷键说明

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