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

📄 rtc.i

📁 AVRkaifashili.rar
💻 I
字号:
#line 1 "C:\DOCUME~1\Administrator\桌面\张军\PS2-ICC\RTC.C"
#line 1 "C:/icc/include/io8535v.h"




#line 7 "C:/icc/include/io8535v.h"


#line 10 "C:/icc/include/io8535v.h"




























































































































































































































































































































































































































#line 2 "C:\DOCUME~1\Administrator\桌面\张军\PS2-ICC\RTC.C"
#line 1 "C:/icc/include/macros.h"






























#line 33 "C:/icc/include/macros.h"











void _StackCheck(void);
void _StackOverflowed(char);




#line 3 "C:\DOCUME~1\Administrator\桌面\张军\PS2-ICC\RTC.C"







 unsigned char F_Flag;
 unsigned char Table[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

void DelayMs(unsigned int i)
{unsigned char j;
 for(;i!=0;i--)
  {for(j=2000;j!=0;j--) {;}}
}

void Display(unsigned char *p)
{unsigned char i,sel=0x01;
 for(i=0;i<4;i++)
  {(*(volatile unsigned char *)0x38)=~sel;
(*(volatile unsigned char *)0x3B)=Table[*p];
   p++;
   DelayMs(20);
   sel=sel<<1;
  }
}


void NOPNOP(unsigned char i)
{for(;i!=0;i--)asm("nop");}


void SetSCL(unsigned char i)
{if(i==1)(*(volatile unsigned char *)0x35)=(*(volatile unsigned char *)0x35)|0x01;
 else(*(volatile unsigned char *)0x35)=(*(volatile unsigned char *)0x35)&0xfe;}


void SetSDA(unsigned char i)
{if(i==1)(*(volatile unsigned char *)0x35)=(*(volatile unsigned char *)0x35)|0x02;
 else(*(volatile unsigned char *)0x35)=(*(volatile unsigned char *)0x35)&0xfd;}
 K



void Start()
{SetSDA(1);
 SetSCL(1);
 NOPNOP(50);


 SetSDA(0);
  NOPNOP(50);




 SetSCL(0);
}

void Stop()
{SetSDA(0);
 SetSCL(1);
 NOPNOP(50);


 SetSDA(1);
 NOPNOP(50);




 SetSCL(0);
}

void Ack()
{SetSDA(0);
 SetSCL(1);
 NOPNOP(50);




 SetSCL(0);
 SetSDA(1);
}

void Nack()
{SetSDA(1);
 SetSCL(1);
 NOPNOP(50);




 SetSCL(0);
 SetSDA(0);
}

void Check_Ack()
{SetSDA(1);
 SetSCL(1);
 F_Flag=0;
(*(volatile unsigned char *)0x34)=(*(volatile unsigned char *)0x34)&0xfd;

 if(((*(volatile unsigned char *)0x33)&0x02)==0)
   {
        SetSCL(0);
        NOPNOP(50);




    }
 else
    {
         F_Flag=1;
         SetSCL(0);
         NOPNOP(50);




     }
(*(volatile unsigned char *)0x34)=(*(volatile unsigned char *)0x34)|0x02;
}

void Write_Bit0()
{SetSDA(0);
 SetSCL(1);
 NOPNOP(50);




 SetSCL(0);
}

void Write_Bit1()
{SetSDA(1);
 SetSCL(1);
 NOPNOP(50);




 SetSCL(0);
 SetSDA(0);
}

void Write_Byte(unsigned char Data)
{unsigned char i;
 for(i=0;i<8;i++)
   {if((Data&0x80)>0)
         Write_Bit1();
    else
         Write_Bit0();
    Data<<=1;
    }
}


 unsigned char Read_Byte()
{unsigned char nn=0xff;
 unsigned char j;
 for (j=0;j<8;j++)
    {SetSDA(1);
     SetSCL(1);
(*(volatile unsigned char *)0x34)=(*(volatile unsigned char *)0x34)&0xfd;

       if(((*(volatile unsigned char *)0x33)&0x02)==0)
	    {nn<<=1;
         nn=(nn&0xfe);
         SetSCL(0);}
     else
        {nn<<=1;
         nn=(nn|0x01);
         SetSCL(0);}
    }
(*(volatile unsigned char *)0x34)=(*(volatile unsigned char *)0x34)|0x02;
 return(nn);
}







void Write_Nbyte(unsigned char Slave,unsigned char Address,unsigned char *Array,unsigned char Number)
{unsigned char k;
 writ:do
    {Start();
     Write_Byte(Slave);
     Check_Ack();
    }while(F_Flag==1);
   do
    {Write_Byte(Address<<4);
     Check_Ack();
    }while(F_Flag==1);
   for(k=0;k<Number;k++)
    {Write_Byte(*Array);
	 Array++;
     Check_Ack();

	 }
   Stop();
}


void Write_1byte(unsigned char Slave,unsigned char Address,unsigned char Data)
{writ:do
    {Start();
     Write_Byte(Slave);
     Check_Ack();
    }while(F_Flag==1);
   do
    {Write_Byte(Address<<4);
     Check_Ack();
    }while(F_Flag==1);
   Write_Byte(Data);
   Check_Ack();

   Stop();
}








void Read_Nbyte(unsigned char Slave,unsigned char Address,unsigned char *Array,unsigned char Number)
{unsigned char data0,x;

	do{Start();Write_Byte(Slave);Check_Ack();}while(F_Flag==1);

    do {Write_Byte(Address<<4);Check_Ack();}while(F_Flag==1);

    do{Start();Write_Byte(Slave+1);Check_Ack();}while(F_Flag==1);

    for(x=0;x<Number;x++)
     {data0=Read_Byte();*Array=data0;Array++;
	  if(x<(Number-1)) { Ack(); }}
    Nack();

    Stop();
}

void main(void)
{unsigned char i;
 unsigned char time[15]={2,0,0,4,1,2,2,7,1,1,7,3,0,5,0};
 unsigned char Set_Time[7]={0x50,0x30,0x17,0x01,0x27,0x12,0x04};

 unsigned char SD2303_Controller1=0x00;
 unsigned char SD2303_Controller2=0x20;

(*(volatile unsigned char *)0x3A)=0xff;
(*(volatile unsigned char *)0x37)=0xff;
(*(volatile unsigned char *)0x34)=0xFF;
 Write_1byte(0x64,0x0e,SD2303_Controller1);
 Write_1byte(0x64,0x0f,SD2303_Controller2);
 Write_Nbyte(0x64,0x00,Set_Time,7);

 while(1)
	{Read_Nbyte(0x64,0x00,Set_Time,7);
     time[2]=Set_Time[6]>>4;
	 time[3]=Set_Time[6]&0x0f;
	 time[4]=Set_Time[5]>>4;
     time[5]=Set_Time[5]&0x0f;
	 time[6]=Set_Time[4]>>4;
	 time[7]=Set_Time[4]&0x0f;
	 time[8]=Set_Time[3];
	 time[9]=Set_Time[2]>>4;
	 time[10]=Set_Time[2]&0x0f;
	 time[11]=Set_Time[1]>>4;
     time[12]=Set_Time[1]&0x0f;
	 time[13]=Set_Time[0]>>4;
	 time[14]=Set_Time[0]&0x0f;
	 for(i=0;i<200;i++)
	 	 Display(time);
     for(i=0;i<200;i++)
	 	 Display(time+4);
	 for(i=0;i<200;i++)
	 	 Display(time+9);
	 for(i=0;i<200;i++)
	 	 Display(time+11);
	Display(time);

  }
}

⌨️ 快捷键说明

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