AT89S51单片机串行口工作模式与通信细节
下载需积分: 0 | PPT格式 | 1.25MB |
更新于2024-08-19
| 68 浏览量 | 举报
"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单片机的串行口功能进行通信设计。
相关推荐










theAIS
- 粉丝: 61
最新资源
- Wenyu Zhao的个人技术网站构建指南
- DBSync V1.9:实现数据库实时同步与异构兼容
- C++实现的学生信息管理系统的增删改查功能
- 美团点评2018技术年货盘点(上)
- 多功能JS下拉列表,支持搜索和样式定制
- 安卓图标设计精选集:开发者必备图标大全
- Linux环境下自动化分发Windows OVA实例教程
- Play框架Scala编译时依赖注入示例项目分析
- 安卓CWM.ZIP自定义刷机包压缩文件解压缩指南
- Win64OpenSSL安装与环境变量配置指南
- 掌握键盘快捷操作:typing-cheatsheets快捷键指南
- Go开发的分布式内存 MMO 游戏服务器架构设计
- Delphi字符串分割方法及示例源码解析
- FPGA实现经典俄罗斯方块游戏教程
- QtCustomControls:实用的自定义控件库
- 深入剖析J2EE经典实例及其应用