通过你强调的 0xFA 我查了一下,定时器1, 8位自动重载, 22.1184MHz 的晶振,才能,0xFA 达到9600 波特率。
但是!! 转折来了哦, 只限于标准51单片机,或者 STC89, 90 系列单片机。
所以,你如果是 STC8h 那么,只能用 16位自动重载模式,代码一起给你吧。
void UartInit(void) //9600bps@22.1184MHz
{
SCON = 0x50; //8位数据,可变波特率
AUXR |= 0x40; //定时器时钟1T模式
AUXR &= 0xFE; //串口1选择定时器1为波特率发生器
TMOD &= 0x0F; //设置定时器模式
TL1 = 0xC0; //设置定时初始值
TH1 = 0xFD; //设置定时初始值
ET1 = 0; //禁止定时器%d中断
TR1 = 1; //定时器1开始计时
}
|