1、 基本概念

常用于数据通信的传输方式有单工、半双工、全双工和多工方式。

单工方式:数据仅按一个固定方向传送。因而这种传输方式的用途有限,常用于串行口的打印数据传输与简单系统间的数据采集。

半双工方式:数据可实现双向传送,但不能同时进行,实际的应用采用某种协议实现收/发开关转换。

全双工方式:允许双方同时进行数据双向传送,但一般全双工传输方式的线路和设备较复杂。

串行通信是指数据一位一位地按顺序传送的通信方式,其突出优点是只需一根传输线,可大大降低硬件成本,适合远距离通信。其缺点是传输速度较低。

2、串行口内部结构图

3、

与之前一样,首先我们来了解单片机串口相关的寄存器。

   SBUF 寄存器:它是两个在物理上独立的接收、发送缓冲器,可同时发送、接收数据,可通过指令对SBUF 的读写来区别是对接收缓冲器的操作还是对发送缓冲器的操作。

从而控制外部两条独立的收发信号线RXD(P3.0)、TXD(P3.1),同时发送、接收数据,实现全双工

串行口控制寄存器SCON

 表中各位(从左至右为从高位到低位)含义如下。

 SM0 和SM1 :串行口工作方式控制位,其定义如表2

下面我们对各控制位功能介绍如下:
    (1).SM0、SM1:串行口工作方式控制位。
        SM0,SM1    工作方式
            00      方式0   
            01      方式1
            10      方式2
            11      方式3

(2)

 其中,fOSC 为单片机的时钟频率;波特率指串行口每秒钟发送(或接收)的位数。

   SM2 :多机通信控制位。 该仅用于方式2 和方式3 的多机通信。其中发送机SM2 = 1(需要程序控制设置)。

接收机的串行口工作于方式2 或3,SM2=1 时,只有当接收到第9 位数据(RB8)为1 时,才把接收到的前8 位数据送入SBUF,且置位RI 发出中断申请引发串行接收中断,否则会将接受到的数据放弃。

当SM2=0 时,就不管第位数据是0 还是1,都将数据送入SBUF,并置位RI 发出中断申请。工作于方式0 时,SM2 必须为0。

  REN :串行接收允许位:REN =0 时,禁止接收;REN =1 时,允许接收。

  TB8 :在方式2、3 中,TB8 是发送机要发送的第9 位数据。在多机通信中它代表传输的地址或数据,TB8=0 为数据,TB8=1 时为地址。

  RB8 :在方式2、3 中,RB8 是接收机接收到的第9 位数据,该数据正好来自发送机的TB8,从而识别接收到的数据特征。

  TI :串行口发送中断请求标志。当CPU 发送完一串行数据后,此时SBUF 寄存器为空,硬件使TI 置1,请求中断。CPU 响应中断后,由软件对TI 清零。

  RI :串行口接收中断请求标志。当串行口接收完一帧串行数据时,此时SBUF 寄存器为满,硬件使RI 置1,请求中断。CPU 响应中断后,用软件对RI 清零。

(3)

电源管理寄存器PCON
    PCON主要是为CHMOS型单片机的电源控制而设置的专用寄存器,单元地址是87H,其结构格式如下:

(4)中断允许寄存器IE
    中断允许寄存器在前一节中已阐述,这里重述一下对串行口有影响的位ES。ES为串行中断允许控制位,ES=1允许串行中断,ES=0,禁止串行中断。

_______________________________________________________________________________________________________________________________________________________

转载于:https://www.cnblogs.com/shengruxiahua/p/5079550.html

(九)单片机串行口 内部结构的讲解 01相关推荐

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

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

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

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

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

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

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

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

  5. (九)串行口方式0 拓展并行输出端口 02 74LS164芯片

    1.先讲解74LS164 移位芯片: 74HC164.74HCT164 是 8 位边沿触发式移位寄存器,串行输入数据,然后并行输出. 数据通过两个输入端(DSA 或 DSB)之一串行输入:任一输入端可 ...

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

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

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

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

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

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

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

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

最新文章

  1. 单身的我听着单身情歌。。。看着那些儿时看过的小说。。。
  2. 动态加载DLL(C#)
  3. python中zip( )的使用
  4. java 数据库中获取省市级json数据
  5. java逻辑代码_Java逻辑代码判断字数
  6. 16、Event事件(定时任务)是什么?
  7. android视频闪退,安卓 app 视频闪退问题
  8. 安装 Alibaba Cloud Toolkit
  9. 如果创业遍地,你觉得会是怎么样的景象
  10. java日期转换_java日期格式转换
  11. 机构关注的数据治理问题
  12. 在 Java 应用程序中定时执行任务
  13. visio画图(保存为pdf,不留空白)
  14. Linux fork函数
  15. python统计套利_基于python的统计套利实战(二)之协整检验
  16. 同步(双向)BUCK电路设计
  17. 【重磅】新智元推出百万级AI智库资讯互动平台,AI World2017世界人工智能大会TOP10大奖榜单发布
  18. 用Java实现信号量机制
  19. linux脚本解密,shell脚本加密与解密
  20. 商城客服功能-------环信即时通讯

热门文章

  1. 继承WebMvcConfigurer 和 WebMvcConfigurerAdapter类依然CORS报错? springboot 两种方式稳定解决跨域问题
  2. python的知识点注意事项
  3. dataframe重命名
  4. List再整理,从代码底层全面解析List(看完后保证收获满满)
  5. LeetCode简单题之作为子字符串出现在单词中的字符串数目
  6. 客快物流大数据项目(五十):项目框架初始化
  7. [C] [最短路] 只有5行的算法:Floyd-Warshall
  8. [JS]请给Array本地对象增加一个原型方法,它用于删除数组条目中重复的条目(可能有多个),返回值是一个包含被删除的重复条目的新数组。
  9. Android 属性动画(Property Animation) ValueAnimator 的介绍
  10. ERROR: Unable to load class 'org.gradle.api.internal.component.Usage'.