你程序目的不明,特别是其中
while((S2CON & 0x02)==0); 目的是什么,完全看不出来
此外do while循环中utemp没有初始条件,即没有提前初始化
你使用#if 的条件编译这个其实不是太好的习惯。