📄 firmware.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 + -