楼主串口初始化设置不当,根据晶振频率选择如下设置:
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; //打开总中断
}
|