MCS-51串行口详解:4种工作模式与控制寄存器SCON
需积分: 4 161 浏览量
更新于2024-08-02
收藏 250KB PDF 举报
"MCS-51的串行口.pdf主要介绍了MCS-51单片机的串行通信接口,包括其结构、工作方式、控制寄存器SCON和PCON的功能,以及如何进行全双工的异步通信。"
MCS-51单片机的串行口是一个重要的通信接口,它支持全双工的异步通讯,具备四种不同的工作方式,这些工作方式由控制寄存器SCON中的SM0和SM1位来选择。在不同工作模式下,串行口可以用于数据传输或者扩展并行I/O口。
串行口的结构包括两个独立的接收和发送缓冲器,允许同时进行数据的发送与接收。这两个缓冲器共享同一个特殊功能寄存器SBUF(地址99H),而控制寄存器则由SCON(地址98H)和PCON构成。SCON寄存器中包含了决定串行口行为的关键位:
1. SM0和SM1:这两个位决定了串行口的工作方式。在00状态下,串行口工作在同步移位寄存器方式,常用于扩展I/O口。01表示8位异步收发,波特率可变,由定时器/计数器控制。10和11分别表示9位异步收发,其中波特率在10状态时固定为fosc/64或fosc/32,在11状态时可变。
2. SM2:多机通信控制位。在方式2和方式3中,如果SM2设为1,串行口只接收第9位为1的数据,否则接收所有数据。在方式1下,SM2=1时,只有在接收到停止位时才会使RI置位。而在方式0中,SM2必须保持为0。
3. REN:允许串行接收位。当REN为1时,串行口开始接收数据,设置为0则禁止接收。
4. TB8:在方式2和3中,TB8用作发送的第9位数据,可以作为奇偶校验位或者帧标识。如果TB8设为1,表示发送的是地址帧;设为0,表示发送数据帧。
5. RB8:在方式2和3中,RB8存储接收到的第9位数据,可用于判断数据帧类型或进行奇偶校验。在方式1下,如果SM2为0,RB8表示接收到的停止位。在方式0中,RB8不被使用。
6. TI:发送中断标志位。在方式0中,当发送完第8位数据时,TI由硬件置位;在其他工作方式下,TI在发送停止位开始时置位。TI=1表示一帧数据发送完成,可触发中断,CPU响应后,SBUF会被加载新的数据准备发送。
除了SCON寄存器外,PCON寄存器通常用于控制电源模式和波特率分频因子,但在这里没有详细展开。MCS-51的串行口提供了灵活的通信选项,适用于各种应用场合,通过精细控制SCON寄存器的各个位,可以实现高效的串行通信。
2021-12-30 上传
2022-11-04 上传
2022-10-31 上传
2023-03-01 上传
2009-04-06 上传
2010-04-17 上传
2021-06-11 上传
2022-01-21 上传
2021-10-30 上传
yongkaidong
- 粉丝: 0
- 资源: 3
最新资源
- 火炬连体网络在MNIST的2D嵌入实现示例
- Angular插件增强Application Insights JavaScript SDK功能
- 实时三维重建:InfiniTAM的ros驱动应用
- Spring与Mybatis整合的配置与实践
- Vozy前端技术测试深入体验与模板参考
- React应用实现语音转文字功能介绍
- PHPMailer-6.6.4: PHP邮件收发类库的详细介绍
- Felineboard:为猫主人设计的交互式仪表板
- PGRFileManager:功能强大的开源Ajax文件管理器
- Pytest-Html定制测试报告与源代码封装教程
- Angular开发与部署指南:从创建到测试
- BASIC-BINARY-IPC系统:进程间通信的非阻塞接口
- LTK3D: Common Lisp中的基础3D图形实现
- Timer-Counter-Lister:官方源代码及更新发布
- Galaxia REST API:面向地球问题的解决方案
- Node.js模块:随机动物实例教程与源码解析