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

📄 text1.c

📁 DS1302的仿真图及程序
💻 C
字号:
#include <at89x51.h>
#include <DS1302.h>
#define  din  P2_0
#define  load  P2_1
#define  clk  P2_2
#define uchar unsigned char 
#define uint  unsigned int
unsigned char code dispcode[]={0x7e,0x30,0x6d,0x79,0x33,0x5b,0x5f,0x70,0x7f,0x7b,0x01};
uchar buf[]={0,0,0,0,0,0,0,0};
SYSTEMTIME  time1;
void csh()
{
  load=1;
  clk=1;
  din=1;
}
  Delayms(uint c)
{  
   uint a,b;
   for(a=0;a<c;a++)
   for(b=0;b<120;b++);
}
void write(uchar com,uchar da)
{
   uchar temp,i,j;
   load=0;
   clk=0;
       for(i=0;i<8;i++)
      { temp=com;
  	    if((temp&(0x80>>i))!=0)
		      din=1;
		 else din=0;
	     clk=1;
         for(j=0;j<5;j++);
		 clk=0;
	  }
    for(i=0;i<8;i++)
	   { temp=da;
          if((temp&(0x80>>i))!=0)
		  din=1;
  		  else din=0;
 		  clk=1;
		  for(j=0;j<5;j++);
		  clk=0;
	   }
	 load=1;

}

void main()

{  
   
   csh(); 
   write(0x0c,0x01);//正常工作状态,关断模式
   write(0x09,0x00);//译码选择,非BCD码
   write(0x0a,0x0f);//亮度调节
   write(0x0b,0x07);//显示位数
   Initial_DS1302();   
   while(1)
     {	 
	   DS1302_GetTime(&time1);
       buf[7]=(time1.Second)%10;
       buf[6]=(time1.Second)/10;
       buf[4]=(time1.Minute)%10;
       buf[3]=(time1.Minute)/10;
       buf[1]=(time1.Hour)%10;
       buf[0]=(time1.Hour)/10;
       write(0x08,dispcode[buf[7]]);
       write(0x07,dispcode[buf[6]]);
       write(0x06,dispcode[10]);
       write(0x05,dispcode[buf[4]]);
       write(0x04,dispcode[buf[3]]);
	   write(0x03,dispcode[10]);
	   write(0x02,dispcode[buf[1]]);
	   write(0x01,dispcode[buf[0]]);
      // Delayms(200);  
	   }
}

⌨️ 快捷键说明

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