/***********************************************************************************/
void main (void)
{ unsigned char ci;
unsigned int iadr;
EA = 0; /* 禁止中断 */
AUXR=0x40; /* T0x12,T1x12,UART_M0x6,EADCI,ESPI,ELVDI,-,- */
PCON = 0; /* 波特率不加倍 */
SCON = 0x50; /* 置串口工作方式1(T1用作串口波特率发生) */
TMOD = 0x21; /* 置定时器1工作方式2,定时器0工作方式1 */
TH0 = CON_MSH; /* 10mS时间常数 */
TL0 = CON_MSL; /* 10mS时间常数 */
TR0 = 1; /* 启动定时器0 */
ET0 = 1; /* 允许定时器0中断 */
EX0 = 0; /* 禁止INT0中断 */
EX1 = 0; /* 禁止INT1中断 */
ET1 = 0; /* 禁止定时器1中断 */
TH1 = CON_BPS; /* 波特率时间常数 */
TL1 = CON_BPS;
TR1 = 1; /* 启动定时器1 */
ES = 1; /* 开串口中断 */
EA = 1; /* 允许中断 */
P_KEY1 = 1; /* 按键1输入 */
P_KEY2 = 1; /* 按键2输入 */
boot_id=0;
com_in=1; com_cur=' ';
while(1)
{ if((P_KEY1==0)&&(P_KEY2==0)) boot_id=1; /* 两个按键都按下,进监控 */
if(sec_id) /* 每秒 */
{ sec_id=0;
WDT_CONTR=0x35; /* 开Watch-Dog-Timer(2秒喂狗) */
}
if(com_in) /* 串口接收到指令 */
{ if(com_cur=='R')
{ iadr=FDAT_ADR;
printf("Read EEPROM Pg.1 adr 0x%04X:\r\n",iadr);
for(ci=0;ci<0x10;ci++) printf("%02X",(unsigned int)byte_read(iadr+ci));
printf("\r\n");
iadr=FDAT_ADR+0x200;
printf("Read EEPROM Pg.2 adr 0x%04X:\r\n",iadr);
for(ci=0;ci<0x10;ci++) printf("%02X",(unsigned int)byte_read(iadr+ci));
printf("\r\n");
}
else if(com_cur=='E')
{ iadr=FDAT_ADR;
printf("Erase EEPROM Pg.1 adr 0x%04X\r\n",iadr);
sector_erase(iadr);
iadr=FDAT_ADR+0x200;
printf("Erase EEPROM Pg.2 adr 0x%04X\r\n",iadr);
sector_erase(iadr);
}
else if(com_cur=='W')
{ iadr=FDAT_ADR;
printf("Write EEPROM Pg.1 adr 0x%04X:\r\n",iadr);
for(ci=0;ci<0x10;ci++) { printf("%02X",(unsigned int)(ci|0x20)); byte_program(iadr+ci,ci|0x20); }
printf("\r\n");
iadr=FDAT_ADR+0x200;
printf("Write EEPROM Pg.2 adr 0x%04X:\r\n",iadr);
for(ci=0;ci<0x10;ci++) { printf("%02X",(unsigned int)(ci|0x30)); byte_program(iadr+ci,ci|0x30); }
printf("\r\n");
}
else
{ printf("\r\n\r\nTEST AP Program 2009-6-25\r\nPlease choose function:\r\n[R]. Read EEPROM\r\n[E]. Ereas EEPROM\r\n[W]. Write EEPROM\r\n[Zz]. Goto ISP_DEMO\r\n");
}
com_in=0;
}
if(boot_id) /* 进入监控程序升级 */
{ boot_id=0;
printf("\r\nGoto ISP_DEMO ...\r\n");
f_boot();
}
}
// reset_from_ISP_to_AP(); /* 软复位 */
}
/***********************************************************************************/