8051单片机SCON寄存器详解:串行通信与控制
需积分: 12 164 浏览量
更新于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-07-14 上传
2022-06-19 上传
点击了解资源详情
2009-08-16 上传
2012-07-10 上传
GD_103923
- 粉丝: 0
- 资源: 2
最新资源
- protGear:protGear是在进行主要分析之前用于蛋白质微阵列数据处理的软件包
- Excel模板多媒体课件统计表.zip
- 第二周作业:第二周作业
- twitter:()–用于在Twitter上自动:cyclone:更新媒体和:artist_palette:艺术作品的插件
- Excel模板大学优秀学生申请校内专业调整拟录取名单公示.zip
- statistical_rethinking
- HxgcIDReader_20180821.rar
- bookmanage
- CloudSimPerSimple
- Story:我的杰作
- Excel模板大学学期教学进程计划.zip
- gtk-js-app:标准GtkGNOME JS应用程序的模板
- 离子项目
- 2014-2020年扬州大学341农业知识综合三考研真题
- chat-app
- typescript-rest-api:该存储库需要