通過你強調的 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開始計時
}
|