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

📄 ds1302.h

📁 ds1602汇编程序还带有protues仿真图
💻 H
字号:
#include <reg51.h>
#include <intrins.h> 
// common PreDefinition 
#define  HIGH     1
#define  LOW      0
#define  TRUE      1
#define  ZERO      0 
#define  MSB       0x80
#define  LSB       0x01
// ds1302 PreDefinition
#define  DS1302_RESET   RST=LOW;SCL=LOW;RST=HIGH

sbit SCL = P2^3;// DS1302时钟信号  7脚
sbit SDA = P2^4;// DS1302数据信号  6脚
sbit RST = P2^5;// DS1302片选   5脚

/* **********************************************************************/     
//void delay_DS1302(unsigned int d_time);      //延时子函时,
void Write_DS1302_byte(unsigned char temp); 
void Write_DS1302_RTC( unsigned char address,unsigned char dat );
unsigned char Read_DS1302_RTC( unsigned char address );
void dis_delay(void);

/* *************************************************************************** */

void Write_Ds1302_Byte(unsigned  char temp) 
{
 unsigned char i;
 for (i=0;i<8;i++)      //循环8次 写入数据
  {  
     SCL=LOW;
	 _nop_();
     SDA=temp&LSB;      //每次传输低字节 
     temp>>=1;          //右移一位
     SCL=HIGH;
   }
}   
/****************************************************************************/
void Write_DS1302_RTC( unsigned char address,unsigned char dat )     
{
 DS1302_RESET;  //启动
 _nop_();
 Write_Ds1302_Byte(address); //发送地址
 _nop_();
 Write_Ds1302_Byte(dat);  //发送数据
 RST=LOW;    //恢复
}
/****************************************************************************/
unsigned char Read_DS1302_RTC( unsigned char address )
{
 unsigned char i,temp=0x00;
 DS1302_RESET;  //启动
 Write_Ds1302_Byte(address);
 for (i=0;i<8;i++)   //循环8次 读取数据
 { 
  if(SDA)
   temp|=0x80;   //每次传输低字节
  SCL=HIGH;
  _nop_();
  temp>>=1;   //右移一位
  SCL=LOW;	
 } 
 RST=LOW;
 return (temp);   //返回
}

⌨️ 快捷键说明

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