AT89S51单片机串行口工作模式与通信细节
需积分: 0 141 浏览量
更新于2024-08-19
收藏 1.25MB PPT 举报
"AT89S51单片机的串行口使用和配置注意事项"
AT89S51单片机的串行口是一个全双工的通用异步收发(UART)接口,允许数据同时双向传输。串行通信的特点在于收发双方使用各自独立的时钟,无需同步时钟线,简化了连接并易于实现。本节主要讨论串行口的结构、工作方式和控制寄存器SCON。
串行口由两个独立的接收和发送缓冲器SBUF组成,它们共享一个特殊功能寄存器地址(99H)。发送缓冲器只能写入数据,而接收缓冲器只能读取。串行口的控制寄存器SCON(字节地址98H)用于设置工作模式和管理通信参数。
SCON寄存器的各个位具有特定功能:
1. SM0和SM1:这两位决定了串行口的工作方式,共有4种工作模式,每种模式对应不同的波特率和通信特性,如方式0用于简单的波特率固定的波特率通信,方式1和方式2支持可变波特率,方式3则支持多机通信。
2. SM2:在方式2和方式3下,此位用于多机通信控制。若SM2置1,在接收时,只有当接收到的第9位数据为1时,才会引发中断并存储数据。如果SM2为0,不论第9位数据如何,都会存储前8位数据并触发中断。
3. REN:该位控制串行接收的允许。当REN为1时,串行口可以接收数据;为0时,接收被禁止。
4. TB8:在方式2和方式3中,TB8是待发送的第9位数据,通常用于奇偶校验或在多机通信中表示数据帧类型(TB8=1为地址帧,TB8=0为数据帧)。
5. RB8:在接收时,此位存储接收到的第9位数据,其含义取决于当前的工作模式。
关于波特率的设定,特别需要注意的是,在12MHz或6MHz的时钟频率下,计算出的波特率可能会有误差。为了获得更精确的波特率,可以选择11.0592MHz的时钟频率。此外,如果选择非常低的波特率,如55,可以设置定时器T1为方式1定时,但此时由于中断响应时间和指令执行时间的影响,波特率会有误差,可以通过调整初值来修正。
在实际应用中,还需要考虑中断服务程序的编写,特别是在低波特率和方式1下,当T1溢出时,需要在中断服务程序中重新加载初值以维持正确的波特率。
串行通信的标准和C51编程也是理解串行口操作的重要部分,涵盖了不同接口协议(如RS-232)的使用,以及如何用C51语言编写串行通信程序。熟悉这些知识可以帮助开发者有效地利用AT89S51单片机的串行口功能进行通信设计。
2011-04-21 上传
2022-11-17 上传
2010-12-30 上传
2024-06-24 上传
2022-11-02 上传
2022-11-04 上传
2015-06-30 上传
2021-11-29 上传
2021-10-09 上传
theAIS
- 粉丝: 60
- 资源: 2万+
最新资源
- 近探拓客软件-实现日更新的全国工商数据采集的工具-工商数据采集工具免费下载V21.4.1
- telescope_hoogle:望远镜的Hoogle搜索集成
- passwordGenerator:此分配使用math.random为用户生成密码
- dotnet C# 根据椭圆长度和宽度和旋转角计算出椭圆中心点的方法.rar
- ProjectManager:.NET Core中的简单项目管理
- Muzisung_FE:这是无知项目前端的存储库。
- Mysis_DVM_Modeling:我的高级论文项目“为 Diluviana 的 Diel 垂直迁移模式建模”的代码和头脑风暴。
- torch_spline_conv-1.2.1-cp36-cp36m-linux_x86_64whl.zip
- CMTraerPhysics:Traer v3.0物理引擎的Objective-CCocoa端口; 与iOS演示应用程序
- bilingual-pdf:由英文PDF生成双语PDF,回归原生加速长篇英文阅读!
- js-demo:关于本人博客中关于js的使用的代码示例
- 清水混凝土模板支撑施工方案.zip
- 来自“菜鸟教程”JavaScript实例练习【二】web.zip
- 仿天猫静态页面 登陆/注册/首页/天猫超市页/购物车/手机列表页 Tmall.zip
- 淘特新闻管理系统 v4.0.4
- Class-33