不要这样啊,EA=1;不要放在前面,要放在while(1)前面,这样可以避免串口中断了。你连初始化都没进行完,就开EA,谁知道会产生什么莫名其妙的问题哦!
void uart0_rx() interrupt 4串口中断没有清除中断标志。
EA=1挪到主循环前一行,在EA=1之前,把TI、RI都给清下