51单片机, 晶振22.1184M ,波特率要求115200,算一下TH1 TL1初值分别多少~时间紧啊

2025-04-26 11:49:47
推荐回答(3个)
回答1:

TH1=0XFF;
TL1=0XFF;
SMOD=1; 波特率加倍
这已经是极限的波特率,不是特殊情况,不要使用!

回答2:

一条指令一个震荡周期!误差0%
#include
void InitUART(void)
{
TMOD = 0x20;
SCON = 0x50;
TH1 = 0xFA;
TL1 = TH1;
PCON = 0x00;
EA = 1;
ES = 1;
TR1 = 1;
}
void main(void)
{
InitUART();
}
void UARTInterrupt(void) interrupt 4
{
if(RI)
{
RI = 0;
//add your code here!
}
else
TI = 0;
}
void SendOneByte(unsigned char c)
{
SBUF = c;
while(!TI);
TI = 0;
}

回答3:

你要定时多少,说清楚,哎