波特率=9600,fosc=11.059M,则设置 PCON=0x00; TMOD=0x20; TH1=0xfd; TL1=0xfd; TR1=1; ES=1;EA=1为什么

为什么这样设置。

PCON=0x00,是设置波特率不加倍(0x80加倍)
TMOD=0x20,是设置波特率发生器为定时器2为8位自动重装载模式
TH1=TL1=0xfd,设置波特率9600=11.0592*1000000/12/(0x100-0xfd)/32
TR1=1;是开启定时器1
ES=1;是开启串口中断;
EA=1;是开启总中断。追问

波特率的单位是bit/s吗,波特率9600=11.0592*1000000/12/(0x100-0xfd)/32,我算了一下,最后得出的是96000000,是单位的问题吗?

追答

最后结果为9600,你计算错了吧

来自:求助得到的回答
温馨提示:内容为网友见解,仅供参考
无其他回答

...PCON=0x00; TMOD=0x20; TH1=0xfd; TL1=0xfd; TR1=1; ES=1;EA=1...
PCON=0x00,是设置波特率不加倍(0x80加倍)TMOD=0x20,是设置波特率发生器为定时器2为8位自动重装载模式 TH1=TL1=0xfd,设置波特率9600=11.0592*1000000\/12\/(0x100-0xfd)\/32 TR1=1;是开启定时器1 ES=1;是开启串口中断;EA=1;是开启总中断。

单片机11.0592MHZ和12MHZ
波特率=9600,fosc=11.059M,则设置 PCON=0x00; TMOD=0x20; TH1=0xfd; TL1=0xfd 波特率计算公式:2^SMOD\/32*T1的溢出率 其中:定时时间T=(256-253)*12\/(11.0592*10^6)则溢出率为1\/T=11.0592*10^6\/((256-253)*12)=307200 那么波特率:2^0*307200\/32=9600而如果用12MHZ代入则有...

相似回答