void UartInit(void) //115200bps@11.0592MHz
{
SCON = 0x50; //8位数据,可变波特率
AUXR |= 0x40; //定时器1时钟为Fosc,即1T
AUXR &= 0xFE; //串口1选择定时器1为波特率发生器
TMOD &= 0x0F; //设定定时器1为16位自动重装方式
TL1 = 0xE8; //设定定时初值
TH1 = 0xFF; //设定定时初值
ET1 = 0; //禁止定时器1中断
TR1 = 1; //启动定时器1
}
或者
UARTINIT: ;115200bps@11.0592MHz
MOV SCON,#50H ;8位数据,可变波特率
ORL AUXR,#40H ;定时器1时钟为Fosc,即1T
ANL AUXR,#0FEH ;串口1选择定时器1为波特率发生器
ANL TMOD,#0FH ;设定定时器1为16位自动重装方式
MOV TL1,#0E8H ;设定定时初值
MOV TH1,#0FFH ;设定定时初值
CLR ET1 ;禁止定时器1中断
SETB TR1 ;启动定时器1
RET
追问直接写AUXR |= 0x40;不就完了吗,还用写 AUXR &= 0xFE;吗
追答当然如果你没有设置 AUXR 的其他位 ,就可以
你可以用 STC-ISP 下载软件 的 波特率计算器 直接生成这个数据