晶振一定要用11.0592的,不然9600波特率的时候会有8.51%的误差,会传输错误,你一定要用12M的话采用2400波特率,只有0.21%(好像忘了)。可以凑合,一定是这样的,相信我,我很有体会!
PCON &= 0xef; // 波特率不倍增 最好是PCON&=0x6f 不过不知道你为什么这样写
延时子程序 11.0592M 延时1ms
void delay(void) //误差 -0.651041666667us
{
unsigned char a,b;
for(b=102;b>0;b--)
for(a=3;a>0;a--);
}
还有你的晶振频率是12m吗 如果是的话9600的波特率就会出现乱码
接受方式有没设置 是文本接受还是二进制接受?