1.工作方式介绍:

方式 0 :这种工作方式比较特殊,与常见的微型计算机的串行口不同,它又叫同步移位寄存器输出方式。在这种方式下,数据从 RXD 端串行输出或输入,同步信号从 TXD 端输出,波特率固定不变,为振荡率的 1/12 。该方式是以 8 位数据为一帧,没有起始位和停止位,先发送或接收最低位。

常用于串行口外接移位寄存器,以扩展并行I/O口,这种方式不适用与两个MCS-51之间的串行通信。

方式1:真正用于数据的串行发送和接收。TXD引脚和RXD引脚分别用于发送和接收数据。

方式1收发1帧数据为10位,1个起始位(0),8个数据位,1个停止位(1),先发送或接收最低位。

方式 2 :串行口工作于方式2和方式3时,被定义为9位异步通信接口。每帧数据均为11位,1位起始位0,8位数据位(先低位),1位可程控为1或0的第九位数据和1位停止位1。采用这种方式可接收或发送 11 位数据,以 11 位为一帧,比方式 1 增加了一个数据位,其余相同。第 9 个数据即 D8 位具有特别的用途,可以通过软件控制它,再加特殊功能寄存器 SCON 中的 SM2 位的配合,可使 MCS-51 单片机串行口适用于多机通信。方式 2 的波特率固定,只有两种选择,为振荡率的 1/64 或 1/32 ,可由 PCON 的最高位选择。

方式 3 :方式 3 与方式 2 完全类似,唯一的区别是方式 3 的波特率是可变的。而帧格式与方式 2- 样为 11 位一帧。所以方式 3 也适合于多机通信。

SM0  SM1   方式   功 能 说 明

0      0        0   同步移位寄存器方式(用于扩展I/O口)

0      1        1   8位异步收发,波特率可变(由定时器控制)

1      0        2   9位异步收发,波特率为fosc/64或fosc/32

1      1        3   9位异步收发,波特率可变(由定时器控制)

2.计算公式总结:

方式0波特率固定为:fosc / 12

方式1波特率的计算公式为:(串行口为波特率可变的8位异步通信接口,SMOD为PCON寄存器的最高位值(0或1))

方式1波特率 =(2^SMOD / 32) * 定时器T1的溢出率

(注:当SMOD=1时,要比SMOD=0时的波特率加倍,所以也称SMOD位为波特率倍增位)

方式2的波特率由下式确定:

方式2波特率=( 2^SMOD / 64) * fosc

方式3的波特率由下式确定:

方式3波特率 = (2^SMOD / 32) * 定时器T1的溢出率

溢出速率 = 1 / 溢出时间

溢出时间(相当于定时时间)= (2^8 – TH1初值)* Tcy

机器周期Tcy = 12时钟周期 = 12*(1/fosc)

故:溢出速率 = 1 / 溢出时间 = 1 / [(256 - TH1初值)* (12 / fosc)] = fosc / [12 *(256-TH1初值)]

计数速率 = 1 / 计数时间 = 1 / (12 / fosc) = fosc / 12

故也可写成:溢出速率 = 计数速率 / (256-TH1初值) = fosc / [12 *(256-TH1初值)]

注:一般来说,定时器方式2用来确定波特率是比较理想的,它不需要中断服务程序设置初值,且算出的波特率比较准确。在用户使用的波特率不是很低的情况下,建议使用定时器T1的方式2来确定波特率。定时器方式1或方式3定时,常用T1作为波特率发生器。

而对于定时器方式0和方式1的最大特点是计数溢出后,计数器为全0。因而在循环定时或循环计数应用时就存在反复装入计数初值的问题。这不仅影响定时精度,而且也给程序设计带来麻烦。方式2就是针对此问题而设置的。定时器/计数器的方式2位自动恢复初值的(初值自动装入)8位定时器/计数器,TLX作为常数缓冲器,当TLX计数器溢出时,在置1溢出标志位TFX的同时,还自动的将THX中的初值送入至TLX,使TLX从处置开始重新计数。这种方式可以省去用户软件中重装处置的程序,简化定时器初值的计算方法,可以相当精确的确定定时时间。

而定时器方式3是为了增加1个附加的8位定时器/计数器而提供的,从而使MCS-51具有3个定时器/计数器。方式3只适用于定时器/计数器T0,定时器/计数器T1不能工作在方式3。T1处于方式3时相当于TR0=0,停止计数(此时T1可以用来做串口波特率发生器。)

51单片机串行口波特率计算相关推荐

  1. 51单片机串行口的使用与串行通信

    51单片机串行口的使用与串行通信 串行通信: 俩个概念: RS232接口标准: 串行口的使用: 串行口的结构: 串行口相关寄存器: 串行口的工作方式: 方式0:同步移位寄存器方式 利用方式0扩展并行I ...

  2. 51单片机串行口程序c语言编程,单片机C语言编程串行口通讯.ppt

    单片机C语言编程串行口通讯 第7章 MCS-51单片机串行口 第7章 MCS-51单片机串行口 目 录 7.1 串行通信基本知识 7.2 串行口结构及控制 7.3 串行口工作方式 7.4 串行口应用举 ...

  3. 51单片机串行口c语言编程,51单片机串口通信c语言编程

    这只是个模板,参考一下 /*----------------------------------------------- 名称:串口通信 网站:www.doflye.net 编写:shifang 日 ...

  4. 单片机实验汇编案例---单片机串行口与PC机通讯实验

    一.实验要求 利用8031单片机串行口,实现与PC机通讯. 本实验实现以下功能,将从实验机键盘上键入的数字,字母显示到PC机显示器上,将PC机键盘输入的字符(0-F)显示到实验机的数码管上. 二.实验 ...

  5. 单片机 串行口实验解数据流怎么到发光二极管来显示的

    [斯鹭]徐良军利用8031单片机串行口,实现与PC机通讯.本实验实现以下功能,将从实验机键盘上键入的数字,字母显示到PC机显示器上,将PC机键盘输入的字符(0-F)显示到实验机的数码管上.二.实验目的 ...

  6. 串行异步通信_单片机串行口介绍

    串行口是单片机与外界进行信息交换的工具,8051单片机的通信方式有两种: 并行通信:数据的各位同时发送或接收. 串行通信:数据一位一位次序发送或接收. 串行通信的方式 异步通信 用一个起始位0表示字符 ...

  7. C51单片机-串行口2-蓝牙模块-应用例程

    一.例程简介 本例程51单片机与蓝牙模块连接,可通过蓝牙模块接收和发送字符串,从而控制测试灯的亮灭.其中使用51单片机的串行口2的工作方式1,即8位UART,波特率可变.波特率设为9600.缺省UAR ...

  8. (九)单片机串行口 内部结构的讲解 01

    1. 基本概念 常用于数据通信的传输方式有单工.半双工.全双工和多工方式. 单工方式:数据仅按一个固定方向传送.因而这种传输方式的用途有限,常用于串行口的打印数据传输与简单系统间的数据采集. 半双工方 ...

  9. 串行口通信c语言代码,问一下单片机串行口通信用c语言实现的问题

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 这个是上面项目中用的子程序: /************************************************************* ...

  10. 51单片机串行通讯方式2

    要求使用单片机的串口方式2,波特率自定,晶振频率:11.0592MHz,完成双机点对点通信. 功能要求: 1.1号单片机循环发送0-15的数据给2号单片机,同时发送奇偶校验位,然后接收2号单片机返回的 ...

最新文章

  1. [deviceone开发]-组件功能演示示例
  2. AI 医生正式上岗了?AI 医疗结合迎爆发点!
  3. 从0开始的Python学习001快速上手手册
  4. MySQL优化学习总结
  5. 事理图谱概念辨析及其与风险标签分类结合的应用探讨
  6. ai可以滚轮缩放吗_AI侵入艺术天堂!艺术也可以“量产”了吗?
  7. linux设置gmt时区,关于GMT UTC CST和Linux时区设置
  8. 阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第1节 常用函数接口_2_函数式接口的使用...
  9. 嵌入式学习二:怎么学习Linux操作系统
  10. 从零开始学习OpenWrt完美教程
  11. 打开OpenProj 出现Your Java Vendor is Oracle Corporation. To run OpenProj, you need the Sun Java......
  12. CefSharp 中过滤图片 RequestHandler
  13. matlab仿真界面设计,基于MATLAB图形用户界面GUI的电路仿真实验的制作
  14. OMNeT 例程 Tictoc13 学习笔记
  15. UMail轻松搭建linux邮件服务器(一体盘安装)
  16. 【百问网】物联网项目学习总结
  17. LeetCode - 441 - 排列硬币(arranging-coins)
  18. Kubernetes入门一:介绍及环境准备
  19. blender bpy
  20. LPC1768 IAR环境下使用完整64K内存的方法

热门文章

  1. 华为交换机:配置基于IP子网划分 VLAN
  2. IP地址及子网划分计算题
  3. 数电 3 逻辑门电路
  4. 管家婆婆分销ERP V3 打印报错
  5. CNC:机械工程之机械制图的几何特征、测量、配合、公差带、图纸标注、公差、配合、表面粗糙度之详细攻略
  6. 计算机软件用户体验报告,软件项目用户体验性测试报告.doc
  7. HTML分页插件功能实现
  8. [SUCTF 2019]EasyWeb---无参数RCE
  9. 【工作笔记】从零开始学ExtJs6(四)—— 常用api小记
  10. Web前端课程设计-疫情解读网页