|
51单片机波特率计算的公式和方法51单片机芯片的串口可以工作在几个不同的工作模式下,其工作
( P: M2 S ^& {6 p" F" R模式的设置就是使用SCON寄存器。它的各个位的具体定义如下: SMOSM1SM2RENTB8RB8TIRIS7 y& s, Q+ ]& |6 {1 d, k* F
M0、SM1为串行口工作模式设置位,这样两位可以对应进行四种模式的设置。串行口工作模式设
' C0 F/ W4 N# Y _( l置。波特率在使用串口做通讯时,-个很重要的参数就是波特率,只有上下位机的波特率一样时才可3 x# j: n+ C1 L6 I2 t d: c- E ]
以进行正常通讯。波特率是指串行端口每秒内可以传输的波特位数。这里所指的波特率,如标准960
. ?! X% [1 l0 n3 `# I6 F0不是每秒种可以传送9600个字节,而是指每秒可以传送9600个二进位,而一个字节要8个二进位,$ T6 I( H& M& d' w
如用串口模式1来传输那么加上起始位和停止位,每个数据字节就要占用10个二进位,9600波特率# e' E- W* T% h) l
用模式1传输时,每秒传输的字节数是9600+ 10= 960字节。51芯片的串口工作模式0的波特率是固 o* r. v7 U* Y6 s* y4 a4 V+ u9 g
定的,为fosc/12,以一个12M的晶振来计算,那么它的波特率可以达到1M。模式2的波特率是固定# A' ?9 x m, C2 Z3 f+ x) z
在fosc/64或fosc/32,具体用那一种就取决于PCON寄存器中的SMOD位,如SMOD为0,波特率focs/64,SMOD为1,波特率为focs/32。模式1和模式3的波特率是可变的,取决于定时器1或2 (52芯片)的溢出速率,就是说定时器1每溢出一-次,串口发送一次数据。 那么我们怎么去计算这两个模式的波特率设置时相关的寄存器的值呢?可以用以下的公式去计算。上式中如设置 了PCON寄存器中的SMOD |
|