8051单片机SCON寄存器详解:串行通信与控制
需积分: 12 79 浏览量
更新于2024-09-12
1
收藏 164KB DOC 举报
C51单片机的特殊功能寄存器SCON主要负责串行通信的配置和状态控制,其中包含了多个关键位,如SM0、SM1、SM2、REN、TB8、RB8、TI和RI。这些位分别对应不同的串行通信模式和功能。
1. **SM0** 和 **SM1** 是串行口工作方式选择位。这两位的组合定义了四种不同的工作方式:
- 方式0:同步移位寄存器方式,用于扩展I/O口。
- 方式1:8位异步收发,波特率可变,由定时器T1控制。
- 方式2:9位异步收发,波特率固定为Fosc/64或Fosc/32。
- 方式3:同方式2,但波特率可变,由定时器T1控制。
2. **SM2** 是多级通信控制位。在方式2和3中,SM2用于实现多机通信。如果SM2设为1,在接收状态下,当接收到的第九位(RB8)为0时,数据被舍弃且RI被清0;若RB8为1,则数据被送入接收SBUF并使RI置1。在方式1中,接收到有效的停止位会激活RI;而在方式0中,应将SM2设置为0。
3. **REN** 允许接收位。当REN设为1时,允许串行口接收数据;设为0则禁止接收。REN状态由软件指令设定。
4. **TB8** 是发送的第9位数据位。在多机通信(方式2和3)中,TB8用来区分发送的是地址还是数据,TB8=0表示数据,TB8=1表示地址。此位由软件指令置位或复位。
5. **RB8** 存储接收到的第9位数据。在方式2和3中,RB8保存接收到的第9位;在方式1,如果SM2=0,RB8表示接收的停止位;在方式0,RB8不被使用。
6. **TI** 发送中断标志位。在方式0下,TI在串行发送第8位结束后由硬件置1;在其他方式中,TI在发送停止位开始时置1。TI=1表示一帧数据发送完成,可以触发中断或供软件查询。中断服务程序中,TI需由软件清0以准备发送新的数据。
7. **RI** 接收中断标志位。在方式0下,RI在接收完第8位时由硬件置1;在其他方式中,RI在接收到停止位时置1。RI=1表明一帧数据接收完毕,并申请中断,要求CPU从SBUF读取数据。同样,RI也需要由软件清0。
此外,提到了TCON定时器/计数器控制寄存器,它控制定时器的工作模式,包括:
- 方式0:13位定时器/计数器。
- 方式1:16位定时器/计数器。
- 方式2:8位自动重载定时器/计数器。
- 方式3:仅适用于T0,将其分为两个8位计数器,T1停止计数。
这些寄存器和它们的位设置在C51单片机的串行通信中起到至关重要的作用,通过灵活配置这些位,可以实现不同需求的串行通信协议和控制。
2022-06-19 上传
2022-07-14 上传
点击了解资源详情
2009-08-16 上传
2012-07-10 上传
2011-03-29 上传
2021-10-08 上传
点击了解资源详情
GD_103923
- 粉丝: 0
- 资源: 2
最新资源
- 高清艺术文字图标资源,PNG和ICO格式免费下载
- mui框架HTML5应用界面组件使用示例教程
- Vue.js开发利器:chrome-vue-devtools插件解析
- 掌握ElectronBrowserJS:打造跨平台电子应用
- 前端导师教程:构建与部署社交证明页面
- Java多线程与线程安全在断点续传中的实现
- 免Root一键卸载安卓预装应用教程
- 易语言实现高级表格滚动条完美控制技巧
- 超声波测距尺的源码实现
- 数据可视化与交互:构建易用的数据界面
- 实现Discourse外聘回复自动标记的简易插件
- 链表的头插法与尾插法实现及长度计算
- Playwright与Typescript及Mocha集成:自动化UI测试实践指南
- 128x128像素线性工具图标下载集合
- 易语言安装包程序增强版:智能导入与重复库过滤
- 利用AJAX与Spotify API在Google地图中探索世界音乐排行榜