樓主串口初始化設置不當,根據晶振頻率選擇如下設置:
void UartInit() //9600bps@11.0592MHz
{
PCON = 0x00; //波特率不倍速
SCON = 0x50; //8位數據,可變波特率
TMOD = 0x20; //設定定時器1為8位自動重裝方式
TL1 = 0xFD; //設定定時初值
TH1 = 0xFD; //設定定時器重裝值
TR1 = 1; //啟動定時器1
ES=1; //打開接收中斷
EA=1; //打開總中斷
}
void UartInit() //4800bps@12.000MHz
{
PCON = 0x80; //使能波特率倍速位SMOD
SCON = 0x50; //8位數據,可變波特率
TMOD|= 0x20; //設定定時器1為8位自動重裝方式
TL1 = 0xF3; //設定定時初值
TH1 = 0xF3; //設定定時器重裝值
TR1 = 1; //啟動定時器1
ES=1; //打開接收中斷
EA=1; //打開總中斷
}
|