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

📄 firmware.c

📁 EEPROM仿真器
💻 C
字号:
/****************************************************/
/**  Rom Emulator Software                   ********/ 
/**  Edited Starting  From  2005.1 By CGH    ********/
/****************************************************

Firmware : CPU --- AT89LV51 11.0592MHz
          
Function:
      1. Rom emulator  
     
Solft Serials:
 V1.0.0
Copyright   Start Date  FinalDate     Author         
Uinsmmw     2005.1.26              honeyandy.chan 
****************************************************/


/* -----delay  only at 8051 at 11.0592MHz---*/

void D10us(void)       /* -----软件延迟10us------*/
{
    	dj0=0; /*Nop*/
 	dj0=0; /*Nop*/
  	dj0=0; /*Nop*/
      
}
void D20us(void)       /* -----软件延迟20us------*/
{
	D10us();
  	
  	dj0=0; /*Nop*/
 	dj0=0; /*Nop*/
  	dj0=0; /*Nop*/
  	dj0=0; /*Nop*/
}

void D100us(void)       /* -----软件延迟100us------*/
    {for(dj0=0;dj0<10;dj0++)
       {;}
     }  

void D1ms(void)       /* -----软件延迟1ms------*/
    {for(dj0=0;dj0<100;dj0++)
       {;}
     } 
void D5ms(void)       /* -----软件延迟5ms------*/
    {for(dj1=0;dj1<5;dj1++)
       {D1ms();}
     } 
void D10ms(void)       /* -----软件延迟10ms------*/
    {for(dj1=0;dj1<10;dj1++)
       {D1ms();}
     } 
void D50ms(void)     /* -----软件延迟100ms------*/
    {dj1=50;
     while(dj1--)
      {D1ms();}
      }

void D200ms(void)    /* -----软件延迟200ms------*/    
    {dj1=200;
     while(dj1--)
      {D1ms();}
     } 

/*-------uart initial-----------*/
void UartInit(void)
 { ES=0; 
   
   TR1=0;REN=0;TMOD=TMOD&0x0f;TMOD=TMOD+0x20;
   SCON=0x50;
   sj=BaudRateID;
      
   switch(sj)
     {
      /* only for 11.0592MHz !!*/	
      case 0:{TH1=0xff;TL1=0xff;PCON=0x80;}  break; /* ---57600---*/
      case 1:{TH1=0xfd;TL1=0xfd;PCON=0x80;}  break; /* --- 19200---*/
      default :{TH1=0xfd;TL1=0xfd;PCON=0x00;}  break; /* --- 9600---*/
  				  	 
        }
  
    TR1=1;
    D20us();
    RI=0;TI=0;PS=1;
    
 }

void UartOpen( void )
{
  Salrd_bit=1;Ralrd_bit=0;	
  ES = 1;	
  REN = 1;	
}

void UartClose( void )
{
  REN = 0;	
  ES =0;
  RI=0;TI=0;
  
  Salrd_bit=1;Ralrd_bit=0;	
}

/****** Uart Interrupt Routine  **********/

void UartInt(void) interrupt 4
{
 ES=0;
 if(RI)
  {
   	RI=0;
   	Udata=SBUF;
   
   	if( !ComAA_bit )
   	{
   	  	if( Udata == 0xAA )	
   	 		ComAA_bit = 1;
    	}
   	else if(!Com55_bit ){
   	  	if( Udata == 0x55 )
   	    	Com55_bit = 1;
   	}
   	else if(!ComID_bit )
   	{
   	  			
   	  	ComID = Udata;
   	 	Upt = 0 ;
   	  	ComID_bit = 1;
   	  		    	
   	}
   	else  ubuf[ Upt++ ] = Udata;
   	   	   	
   	Ralrd_bit = 1;
 }
 
 if(TI)	
   {
   TI=0;
   Salrd_bit=1;	
   }	
	
 ES=1;	
} 

void putc( uchar c )
{
   	while( !Salrd_bit );
	
	Salrd_bit = 0; 
	SBUF = c;

}

uchar getc( void )
{
   	while( !Ralrd_bit );

	Ralrd_bit = 0;
	
	return SBUF;

}

⌨️ 快捷键说明

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