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

📄 txt.c

📁 keil uvision 写24c02
💻 C
字号:
/************************************************/

/************************************************/
#include <REG52.H>
#include <stdio.h>

#ifdef MONITOR51                         /* Debugging with Monitor-51 needs   */
char code reserve [3] _at_ 0x23;         /* space for serial interrupt if     */
#endif                                   /* Stop Exection with Serial Intr.   */
                                         /* is enabled                        */
const char Ledbuf[18]=/*digit convert table*//* 共阴*/
	{ 0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F,		
	/* 0     1     2     3     4     5     6     7     8     9 */
	 0x77, 0x7C, 0x39, 0x500E, 0x79, 0x71, 0x00, 0x40 };
	/* a    b     c     d     e     f           - */


sbit P10=P1^0;
sbit P11=P1^1;
sbit P12=P1^2;
sbit P13=P1^3;
sbit P14=P1^4;
sbit P15=P1^5;
sbit sda=P1^6;
sbit cclk=P1^7;
sbit P33=P3^3;
sbit P32=P3^2;
sbit din=P3^0;
sbit aclk=P3^1;
unsigned int kl=0,kh=0;

unsigned char ATdata;

unsigned int retdate;


void Delay(unsigned int DelayTime)
{
	if (DelayTime == 0)return;
	 	while(DelayTime != 0)
			{DelayTime--; }
}

void display(ledtim)
		char ledtim[4];
{ if(ledtim[3]==0x3F)
			 {	P0=ledtim[0];
			 	P2=0x01;
			 	Delay(500);
				P0=ledtim[1];
			 	P2=0x02;
			 	Delay(500);
			 	P0=ledtim[2];
			 	P2=0x04;
			 	Delay(500);
				P0=0x00;
			 	P2=0x08;
			 	Delay(500);
				}
		 else{P0=ledtim[0];
		 		P2=0x01;
		 		Delay(500);
				P0=ledtim[1];
		 		P2=0x02;
		 		Delay(500);
		 		P0=ledtim[2];
			 	P2=0x04;
			 	Delay(500);
				P0=ledtim[3];
		 		P2=0x08;
		 		Delay(500);}
}

void computer(unsigned int dt)
{	char cledtim[4];
		int dth,dtm,dtl;
		 dth=dt%10000;
		 cledtim[3]=Ledbuf[dth/1000];
	   	 dtm=dth%1000;
		 cledtim[2]=Ledbuf[dtm/100];
		 cledtim[2]|=0x80;
		 dtl=dtm%100;
		 cledtim[1]=Ledbuf[dtl/10];
		 cledtim[0]=Ledbuf[dtl%10];
		 display(cledtim);
}

static void ATStart(void)
{
sda=1;
cclk=0;
cclk=1;
sda=0;
cclk=0;
}

static void ATStop(void) 
{
sda=0;
cclk=1;
sda=1;
}

void ATsWrite(unsigned char ch) 
{	  
      unsigned char i;
	  unsigned char temp;
      ATdata=ch;
	  temp=ATdata;
      for (i=0;i<8;i++)
			{	temp&=0x80;
				if(temp==0x80)
					{sda=1;}
				else {sda=0;}
                cclk=1; 
                cclk=0;
				temp=ATdata;
                temp<<=1;
				ATdata=temp;
     	 }
	 cclk=1;
	 cclk=0;
}

unsigned char ATsRead(void) 
{
	unsigned char i;
	unsigned char temp;
        ATdata=0x00;
		temp=0x00;
				cclk=0;
        for (i=0;i<8;i++) 
				{cclk=1;
                 if(sda==1){temp|=0x01;}
				 else {temp|=0x00;}
                ATdata=temp;
			    temp<<=1;
                cclk=0;   
        }
		 sda=0;
		 cclk=1;
		 cclk=0;
 		 sda=1;
return ATdata;
}

unsigned int ATRead(unsigned char add,unsigned char cou)  
{
unsigned int ret;
unsigned char rtim[2];
unsigned char i;

ATStart();
ATsWrite(0xA0);       
ATsWrite(add);
ATStart();
ATsWrite(0xA1);
for(i=0;i<cou;i++){
rtim[i]=ATsRead();}
ATStop();

ret=rtim[1];
ret<<=8;
ret|=rtim[0];
return ret;
}

void ATWrite(unsigned char addr,unsigned int dat) 
{
unsigned char subaddr;
unsigned char wdat,i;
unsigned int ATtemp,ATtemp1;
unsigned char tim[2];

	 ATtemp=dat;
	 ATtemp1=ATtemp;
	 tim[0]=ATtemp1;
	 ATtemp1&=0xff00;
	 ATtemp1>>=8;
	 tim[1]=ATtemp1;	
   	 subaddr=addr;
for(i=0;i<2;i++){
wdat=tim[i];
ATStart();
ATsWrite(0xA0);       //0xa1
ATsWrite(subaddr);

ATsWrite(wdat);
ATStop();
Delay(10000); 
subaddr+=1;}

}

void DA()
{	unsigned int i;
	unsigned int temp;
	unsigned int dad;
		 P33=1;
		 dad=0x0BB8;
		 temp=dad;
		 for(i=0;i<16;i++)
		 {P33=0;
		  aclk=0;
		  temp=temp&0x8000;
   		  if (temp==0x8000)
			{din=1;}
		    else{din=0;}
			temp=dad;
        temp=temp<<1;
		aclk=1;
		dad=temp;
		 	}
		  Delay(500);
}	

void main()
	{unsigned char ad;
		 unsigned int da;
			P1=0x00;
			ad=0x00;
			da=0x2592;
		ATWrite(ad,da);
		retdate=ATRead(ad,0x02);

		DA();
		for(;;)
		{
		
		
		computer(retdate);
		}
}

⌨️ 快捷键说明

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