1.先回答你的第三个问题:波特率是你想用多少,而不是算出来是多少,要看你的设备选的是多少,加入两台电脑,9600 就都是9600,4800 那就都是 4800 2.再回答你的第一个问题:T1 选 1 还是 0 是你自己的事, 选 1 就是 1T 模式,选 0 是 12T 模式,有什么区别吗 ?继续看! 3.在回答你的第四个问题:SMOD 选 1 还是 0,同上 你自己的事。选 1 波特率 倍速,选 0 不倍速,有什么区别吗 ?继续看 ! 4.回答你的第二个问题: 当 T1 = 1 的时候,TH = 256 - ( ( 晶振频率 / 32 / 波特率 ) *( SMOD + 1)) 当 T1 = 0 的时候,TH = 256 - ( ( 晶振频率 / 12 / 32 / 波特率 ) *( SMOD + 1)) 图中你的晶振是 22.1184M = 22118400 ,假如一台设备波特率 9600 假如你选了 T1 = 1, SMOD = 0 // 1T 模式 不倍速 那么 AUXR |= 0x40; PCON &= 0x7F; TH = 256 - ( 22118400 / 32 / 9600 )* 1 = 256 - 72 = 184 = 0xB8 假如你选了 T1 = 1, SMOD = 1 // 1T 模式 倍速 那么 AUXR |= 0x40; PCON |= 0x80; TH = 256 - ( 22118400 / 32 / 9600 )* 2 = 256 - 72 * 2 = 256 - 144 = 112 = 0x70 假如你选了 T1 = 0, SMOD = 0 // 12T 模式 不倍速 那么 AUXR &= 0xBF; PCON &= 0x7F; TH = 256 - ( 22118400 / 12 / 32 / 9600 )* 1 = 256 - 6 = 250 =0xFA 假如你选了 T1 = 0, SMOD = 1 // 12T 模式 倍速 那么 AUXR &= 0xBF; PCON |= 0x80; TH = 256 - ( 22118400 / 12 / 32 / 9600 )* 2 = 256 - 6 * 2 = 256 - 12 = 244 =0xF4 就这么回事 数据手册 有没有说 HL = TH ? 其他的波特率自己算吧,就这两个公式 |