您现在的位置是:首页 > 智能机电

51单片机:波特率的计算和定时器初始值的计算(含代码)

智慧创新站 2025-01-19【智能机电】51人已围观

简介大家好,今天给大家介绍,下方附有本文涉及的全部资料和源代码的获取方式,可进群免费领取。前言本文承接上篇,留下的悬念,我们来对串口通信中的波特率进行详细讲解比如我要配置相应的串口波特率,那么定时器的初值该如何计算。知道了定时器的初始值,该如何通过定时器的初始值来计算波特率这里注意,其实波特率的计算完全...

大家好,今天给大家介绍,下方附有本文涉及的全部资料和源代码的获取方式,可进群免费领取。


前言

本文承接上篇,留下的悬念,我们来对串口通信中的波特率进行详细讲解

比如我要配置相应的串口波特率,那么定时器的初值该如何计算。知道了定时器的初始值,该如何通过定时器的初始值来计算波特率

这里注意,其实波特率的计算完全可以通过stc-isp软件直接生成,如下图所示,选择波特率为4800,因为我们是通过定时器1的模式二来产生波特率的,在波特率发生器这一部分选择模式二八位重装模块。选择波特率倍速,即SMOD=1。定时器时钟为12T。这样就生成了串口波特率的初始状态。
这里解释一下配置的各个寄存器

PCON|=0x80,SMOD最高位为1,波特率加倍。

SCON=0x50,配置串口模式1,对应的SM0SM1位位01,也即是SCON寄存器的高四位,被置成了0101,软件把REN位默认置1了,可以允许接收数据。

定时器的相关配置位,定时器1,模式二,八位自动重装模式,不开启定时器1的中断,启动定时功能。


一、根据要配置的波特率来计算定时器T1的初始值

通常情况下,我们在进行串口通信的时候,要保持双机通信时的波特率相同,不然就会出现收发数据不对的情况。下面就直接上图,告诉该如何配置定时器T1的初始值。

首先要明确四点,以此来举例

假定开发板的晶振为12MHZ。

定时器T1选择模式二,八位自动重装模式。

串口选择方式1,10位异步收发模式,且波特率加倍。

配置的波特率为4800
好了,来吧!直接上图,简洁易懂:

串口计算波特率的公式:
根据下图来直接计算
明确两点:

1.串口模式的选择

2.波特率是否加倍,即SMOD是为0OR1

二、根据定时器的初始值来计算波特率

经过了上面的阅读,相信你对串口通信的波特率有了一个深刻的印象。
那么我们根据定时器的初始值该如何计算波特率呢?
串口结构图:

来吧,直接上图:

总结

以上就是对串口波特率的计算和定时器初始值的计算总结。

掌握串口波特率的计算,将会使你对串口通信的理解更深一步

加油加油!

完整资料可进群免费领取!!!

很赞哦!(7)