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

📄 ds1302串口显示秒.c

📁 采用AT89S51单片机的经典时钟程序
💻 C
字号:
#include <reg52.h>
#include <intrins.h>
#define uint   unsigned int
#define uchar  unsigned char 

sbit CLK =P3^5;
sbit IO  =P3^6;
sbit RST =P3^7;

/***********************************************************/ 
void delay(uint x)
{
    uint i;
    for(i=0;i<x;i++){
        _nop_();
    }
}
/******************WriteOneByteData*************************/
void WriteByte(uchar ucda)
    {
	  uchar i; 	  
	  for(i=8;i>0;i--)
	     {
		   IO=(bit)(ucda&0x01);
		   CLK=1;		   
		   CLK=0;
		   ucda>>=1;
		 }
	}
/**************************ReadOneByteData*********************/
uchar ReadByte(void)
    {
	  uchar i,a;
	  for(i=8;i>0;i--)
	     { 		   		   
		   a>>=1;
		   if(IO)a|=0x80;
		   CLK=1;           
		   CLK=0;
		 }	
	  return(a);
	}
/************WriteAddrFist,ThenWriteData**********************/
void write1302(uchar Addr,uchar Data)
    {
	  RST=0;
	  CLK=0;
	  RST=1;
	  WriteByte(Addr);
	  WriteByte(Data);
	  CLK=1;
	  RST=0;
	}
/**************WriteAddrFirst,ThenReadData*********************/
uchar read1302(uchar Addr)
    {
	  uchar Data;
	  RST=0;
	  CLK=0;	
	  RST=1;
	  WriteByte(Addr);
	  Data=ReadByte();
	  CLK=1;
	  RST=0;
	  return(Data);
	}
 ////////////////ds1302初始化//////////////////
void csh1302(void)
{  	CLK=0;
	RST=0; 
  write1302(0x8e,0x00);//打开写保护
  write1302(0x90,0x06);//禁止充电
  /////////////////////////////////////////////////
  write1302(0x80,0x00);//预置秒
  write1302(0x82,0x08);//预置分
  write1302(0x84,0x13);//预置时
  write1302(0x86,0x21);//预置日期
  write1302(0x88,0x11);//预置月
  write1302(0x8a,0x02);//预置星期
  write1302(0x8c,0x07);//预置年	  
  ////////////////////////////////////////////////
  write1302(0x80,0x00);//启动时钟
  write1302(0x8e,0x80);//关闭写保护
}

uchar sec10;
uchar sec;

main()
{
 TMOD=0x20;
 SCON=0x50;
 TH1=0xfd;
 TL1=0xfd;
 TR1=1;
 csh1302(); //初始化
 while(1)
	{
	  sec=read1302(0x81);
	  SBUF=sec;
	   
	  while(TI==0) ;	//等待发送结束
      TI=0;				//软件清零
      delay(5000); 		//延时
  }	

}

⌨️ 快捷键说明

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