文章目录

  • 前言
  • 一、根据要配置的波特率来计算定时器T1的初始值
  • 二、根据定时器的初始值来计算波特率
  • 总结

前言

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

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

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

  • PCON | =0x80,SMOD最高位为1,波特率加倍。
  • SCON=0x50,配置串口模式1,对应的SM0 SM1位位 0 1,也即是SCON寄存器的高四位,被置成了 0 1 0 1,软件把REN位默认置1了,可以允许接收数据。
  • 定时器的相关配置位,定时器1,模式二,八位自动重装模式,不开启定时器1的中断,启动定时功能。


但是光知道了怎么使用软件自动生成,而不知道其底层的原理,那也不行,所以下文会详细介绍该如何计算波特率以及定时器的初值。


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

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

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

    1. 假定开发板的晶振为12MHZ。
    1. 定时器T1选择模式二,八位自动重装模式。
    1. 串口选择方式1,10位异步收发模式,且波特率加倍。
    1. 配置的波特率为4800
      好了,来吧!直接上图,简洁易懂:


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

  • 1. 串口模式的选择
  • 2. 波特率是否加倍,即SMOD是为0 OR 1

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

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

来吧,直接上图:


总结

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

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

加油加油!

希望本文对你有帮助。

最后行文仓促,还请谅解,欢迎指错。

51单片机-波特率的计算定时器初始值的计算相关推荐

  1. AutoLeaders控制组——51单片机学习笔记(定时器、串口通信)

    本篇内容是观看B站江科大自化协UP主的教学视频所做的笔记,对其中内容有所引用,并结合自己的单片机板块进行了更改调整. 以下笔记内容以一个视频为一个片段(内容较多,可能不适合速食,望见谅) 一些内容涉及 ...

  2. 51单片机 (九)定时器

    什么是定时器? 定时器是单片机的重要功能模块之一,在检测.控制领域有广泛应用.定时器常用作定时时钟,以实现定时检测,定时响应.定时控制,并且可以产生ms宽的脉冲信号,驱动步进电机.定时和计数的最终功能 ...

  3. 51单片机电路原理图_10个定时器精选电路方案带你学习时钟脉冲的工作方式

    可编程控制器中的定时器是根据时钟脉冲累积计时的,时钟脉冲有 1ms.10ms.100ms等不同规格.(定时器的工作过程实际上是对时钟脉冲计数)因工作需要,定时器除了占有自己编号的存储器位外,还占有一个 ...

  4. 51单片机:有趣的定时器实验

    51单片机:有趣的定时器实验 本以为考完试搞完课设就没啥单片机啥事了,结果莫名的来了软件工程软件基础训练,训练Proteus和Keil软件.我嘞天,之前天天用好不?这课程安排的emmmmm,我还要其他 ...

  5. 在电路中运用叠加定理时,储能元件(电容,电感)的初始值只能计算一次

    我们在<>讲到:含有电容.电感的电路也是线性电路.其实这句话是存在瑕疵的,应该说当电感,电容中不储能,即其初始值为零的时候,电感,电容是线性元件(线性系统).这个我们从线性系统的定义可以看 ...

  6. 【Proteus仿真】51单片机+555可调定时器电路

    [Proteus仿真]51单片机+555可调定时器电路 Proteus仿真 程序代码 #include <reg52.h> #define uint unsigned int #defin ...

  7. 10 51单片机汇编:让定时器产生中断(使用Keil模拟器)[系列教程之10]

    10 51单片机汇编:让定时器产生中断(使用Keil模拟器)[系列教程之10] 该系列主仓库地址:https://gitee.com/langcai1943/8051-from-boot-to-app ...

  8. 入门51单片机(STC8952RC)定时器、有关中断原理简述、寄存器设置与程序示例(包括流水灯和计时器)

    目录 1.单片机之定时器 1.1 STC89C52RC定时器模式1工作流程 1.1.1 计数部分 1.1.2 时钟部分 1.1.3 中断部分 1.2 定时器T0.T1相关寄存器 1.2.1 TCOM寄 ...

  9. 51单片机配置中断与定时器应用

    //首先定时器根据时钟的输出信号每隔一段时间对计数单元进行加1 //当计数单元加1到设定提醒时间就进行中断申请,使程序跳转到中断函数中执行//1.工作模式寄存器TMOD,不可位寻址TMOD & ...

  10. 51单片机(十七)—— 定时器2寄存器介绍及功能描述

    这篇文章,我们对51单片机的定时器2的寄存器和功能进行介绍. 1 定时器2控制寄存器T2CON 定时器2是一个16位定时器/计数器,通过设置特殊功能寄存器T2CON中的C/T2位,可将其作为定时器或计 ...

最新文章

  1. POJ - 3660 Cow Contest(flod)
  2. Github开源趋势榜Top 1:英伟达升级发布二代StyleGAN,效果更完美
  3. 设置Mybatis(3.2.8)实体嵌套关系(一对多,多对多)遇到的问题及经验总结记录...
  4. IE6 式样表 Bug
  5. 第二次结对编程作业——毕设导师智能匹配
  6. 夜貓子”必需的!——融合夜視技術
  7. php怎么获取用户所在地址,php获取客户端ip及获取ip所在地址
  8. 学什么c语言标准,C语言的标准 “输入输出”!今天是你学C语言的第几天?
  9. 第四章:更多的bash shell命令
  10. OpenGL基础29:深度测试
  11. 动态下拉框中如何使用常量?
  12. java编程50题和解释_最新JAVA编程题全集(50题及答案)29515
  13. 后台管理系统--毕业设计02
  14. java虚拟机扫盲文
  15. 精选大数据面试真题10道(附答案详细解析)
  16. 一个初创企业的“生还”记录
  17. 素数算法,看看电脑是怎么找素数的
  18. Java 实现四位数的吸血鬼算法
  19. Centos 7 虚拟机安装 jenkins
  20. 前端 input 自动填充功能

热门文章

  1. 单片机程序配置成开漏输出_单片机的GPIO配置
  2. 青少年软件编程C++二级题库(11-20)
  3. 市场细分与目标群体定位
  4. http://txt.mop.com/static/788/231/5231788.html
  5. 在Word文档里如何快速返回目录页-Office学习
  6. Java--------面向对象
  7. jsp定义java方法_jsp中java成员变量、方法的声明以及使用
  8. thinkphp 模板写php,thinkphp 模版继承的使用
  9. grammarly怎么安装到word
  10. 东芝Q300 PS3110主控 开卡教程+软件(技术篇)