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

📄 c51_check.c

📁 PC机与单片机之间进行通讯连接的C51代码和PC机的VC++代码
💻 C
字号:
/*********************************************************/
/*DS1202.C: DS1202 real time clock chip BIOS--c51_check.c*/
/*单片机各功能测试程序                                   */
/*********************************************************/ 

/* Bit Address Assignment*/
sbit RTC_RST= 0x95; /* P1.5 */
sbit RTC_CLK= 0x96; /* P1.6 */
sbit RTC_DIO= 0x97; /* P1.7 */

void RtcDelay(void); /* Photo type of routine */
void RtcDelay()
{
    xdata unsigned char i;
    for (i=0;i<50;i++);
}

void RtcWrite(char, char); /* Photo type of routine */
void RtcWrite(char command, char byte_data)
{ 
    xdata unsigned char i;
    command=((command<<1)&0xfe)|0x80; 
    RTC_CLK= 0;
    RtcDelay();
    RTC_RST= 0;
    RtcDelay();
    RTC_RST= 1;
    RtcDelay();
    for (i=0;i<8;i++)
   { 
      RTC_CLK=0;
      RtcDelay();
      RTC_DIO=((command>>i) & 0x01);
      RtcDelay();
      RTC_CLK=1;
      RtcDelay();
    }
    for (i=0;i<8;i++)
   { 
      RTC_CLK=0;
      RtcDelay();
      RTC_DIO=((byte_data>>i)& 0x01); 
      RtcDelay();
      RTC_CLK=1;
      RtcDelay();
   }
   RTC_RST=0; 
   RtcDelay();
   RTC_CLK=0;
   RtcDelay(); 
   RTC_RST=1;
   RtcDelay();
   RTC_CLK=1;
   RtcDelay();
   RTC_RST=0;
   RtcDelay();
   RTC_CLK=0;
   RtcDelay();
}

char RtcRead(char); /* Photo type of routine */
char RtcRead(char command)
{ 
    xdata unsigned char i,j;
    command=(command<<1)|0x81;
    RTC_CLK=0;
    RtcDelay();
    RTC_RST= 0;
    RtcDelay();
    RTC_RST= 1;
    RtcDelay();
    for (i=0;i<8;i++)
   { 
      RTC_CLK=0;
      RtcDelay();
      RTC_DIO=((command>>i) & 0x01);
      RtcDelay();
      RTC_CLK=1;
      RtcDelay();
   }
   RTC_DIO=1;
   RTC_CLK=0;
   RtcDelay();
   for (i=0;i<8;i++)
  { 
      RTC_CLK=1;
      RtcDelay();
      if (RTC_DIO==1)
          j=(j>>1)|0x80;
      else
          j=(j>>1)&0x7f;
     RTC_CLK=0;
     RtcDelay();
   }
   RTC_RST=0;
   RTC_DIO=0;
   RtcDelay();
   return (j);
}

void RtcSetup(char, char); /* Photo type of routine */
void RtcSetup(char command, char byte_data)
{ 
    RtcWrite(0x07,0x00);
    RtcWrite(command,byte_data);
    RtcWrite(0x07,0x80);
}
 
1999-10-20 
《单片机编程世界》 

返回

⌨️ 快捷键说明

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