标题:
关于STC12C5A32S2单片机波特率计算问题
[打印本页]
作者:
a超人
时间:
2018-11-7 16:09
标题:
关于STC12C5A32S2单片机波特率计算问题
1 圈1选哪一个 希望告知为什么,2 圈2TH1怎么算的 3 圈三的值 4 SMOD 是否应该选1 谢谢
2.png
(303.11 KB, 下载次数: 57)
下载附件
2018-11-7 15:59 上传
3.png
(29.86 KB, 下载次数: 55)
下载附件
2018-11-7 15:59 上传
作者:
cuihaodianzi
时间:
2018-11-7 16:09
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 ?
其他的波特率自己算吧,就这两个公式
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1