51单片机-80C51的串行口

news/2025/2/24 1:38:10

目录

1、80C51的串行口

1.1、80C51串行口的控制寄存器

1.2、80C51串行口的工作方式

1.3、波特率的计算

1.4、串口如何使用

2、单片机单片机的通信


1、80C51的串行口

有两个物理上独立的接收、发送缓冲器SBUF,它们占用同一个地址99H;接收器是双缓冲结构;发送缓冲器,因为发送时CPU是主动的,不会产生重叠错误。

1.1、80C51串行口的控制寄存器

(1)SCON是一个特殊功能寄存器,用以设定串行口的工作方式、接收/发送控制以及设置状态标志:

  •  SM2,多机通信控制位,主要用于方式2和方式3。当接收机的SM2=1可以利用收到的RB8来控制是否激活RI(RB8=0时不激活RI,收到的信息丢弃;RB8=1时收到的数据进入SBUF,并激活RI,进而在中断服务中将数据从SBUF读走)。当SM2=0时,不论收到的RB8为0和1,,均可以使收到的数据进入SBUF,并激活RI(即此时RB8不具有控制RI激活的功能)。通过控制SM2,可以实现多机通信。

在方式0时,SM2必须是0。在方式1时,如果SM2=1,则只有接收到有效停止位时,RI才置1。

SCON寄存器中的RB8位是由硬件自动控制的‌。在多机通信中,RB8位用于存放接收到的第9位数据,代表接收到的某种特征,因此应根据其状态对接收数据进行操作‌12。

SCON寄存器(Serial Control Register)用于控制串行通信的方式选择、接收和发送,并指示串口的状态。它包括多个位,其中RB8位在多机通信中起到重要作用。当串口接收到数据时,RB8位会自动存放接收到的第9位数据,这个过程是由硬件自动完成的‌

  •  REN,允许串行接收位。由软件置REN=1,则启动串行口接收数据;若软件置REN=0,则禁止接收。
  • TB8,在方式2或方式3中,是发送数据的第九位,可以用软件规定其作用。可以用作数据的奇偶校验位,或在多机通信中࿰

http://www.niftyadmin.cn/n/5863912.html

相关文章

使用postman测试api接口基本步骤

测试一个已写好的 API 接口需要系统性地验证其功能、性能、安全性及异常处理能力。以下是使用 Postman 进行 API 接口测试的详细步骤和注意事项: 1. 确认接口文档 明确输入输出:了解接口的请求方法(GET/POST/PUT/DELETE)、URL、请…

12.Docker 的资源限制

Docker 的资源限制 Docker 的资源限制1. Stress-ng 压力测试工具2. OOM (Out of Memory Exception)3. 容器的内存限制4. 容器的 CPU 限制 Docker 的资源限制 官方文档:https://docs.docker.com/engine/containers/resource_constraints/ 默…

DNS, domain name system

DNS 是一种应用层协议和http/https是同一等级的 其传输层主要用的是udp,也可能用tcp DNS协议完成的作用:查 域名对应的 ip DNS服务器完成的作用:存储 域名 -> ip 的映射 DNS服务器有三个等级:根DNS,顶级域DNS&…

[Android]如何在代码中访问LayoutParams修改layout_weight?

代码如下&#xff0c;如何在代码中修改NumberWheelView的layout_weight&#xff1f; yearWheelView findViewById(R.id.wheel_picker_date_year_wheel); <com.github.androidpicker.wheelview.widget.NumberWheelViewandroid:id"id/wheel_picker_date_year_wheel&quo…

git从本地其他设备上fetch分支

在 Git 中&#xff0c;如果你想从本地其他设备上获取分支&#xff0c;可以通过以下几种方式实现。不过&#xff0c;需要注意的是&#xff0c;Git 本身是分布式版本控制系统&#xff0c;通常我们是从远程仓库&#xff08;如 GitHub、GitLab 等&#xff09;拉取分支&#xff0c;而…

在UBUNTU下搭建Deepseek

在UBUNTU下搭建Deepseek 一、安装UBUNTU 这个就不多说了&#xff0c;无外乎下载UBUNTU的iso&#xff0c;然后用UltraIso制作U盘&#xff0c;然后重启设置启动盘&#xff0c;安装… 二、安装Ollama curl -sSfL https://ollama.com/install.sh | sh这里可能需要你先安装curl工…

MATLAB | 设置滑动窗口计算栅格数据的CV变异系数

一、变异系数 变异系数&#xff08;CV&#xff09;是衡量数据稳定性的重要指标&#xff0c;表示数据的波动程度&#xff0c;计算方式是标准差与均值的比值。在栅格数据分析中&#xff0c;较低的变异系数意味着数据变化较小、稳定性较高&#xff0c;而较高的变异系数则表明数据…

Python项目源码34:网页内容提取工具1.0(Tkinter+requests+html2text)

------★Python练手项目源码★------- Python项目32&#xff1a;订单销售额管理系统1.0&#xff08;TkinterCSV&#xff09; Python项目31&#xff1a;初学者也能看懂的聊天机器人1.0源码&#xff08;命令行界面Re正则表达式&#xff09; Python项目源码30&#xff1a;待办事…